summaryrefslogtreecommitdiff
path: root/localrepo/malyon-20161208.2125.tar
blob: 439128bda7d1cd3f7a36091d31d5b3aa91294591 (plain)
ofshex dumpascii
0000 6d 61 6c 79 6f 6e 2d 32 30 31 36 31 32 30 38 2e 32 31 32 35 2f 00 00 00 00 00 00 00 00 00 00 00 malyon-20161208.2125/...........
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 33 30 35 00 20 35 00 00 00 0000000.00000000000.012305..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 6d 61 6c 79 6f 6e 2d 32 30 31 36 31 32 30 38 2e 32 31 32 35 2f 6d 61 6c 79 6f 6e 2d 70 6b 67 2e malyon-20161208.2125/malyon-pkg.
0220 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 el..............................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 30 31 31 34 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 30 35 00 20 30 00 00 00 0001144.00000000000.014705..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 6d 61 6c 79 6f 6e 22 20 22 32 30 31 36 31 32 (define-package."malyon"."201612
0420 30 38 2e 32 31 32 35 22 20 22 6d 6f 64 65 20 74 6f 20 65 78 65 63 75 74 65 20 5a 2d 63 6f 64 65 08.2125"."mode.to.execute.Z-code
0440 20 66 69 6c 65 73 20 76 65 72 73 69 6f 6e 20 33 2c 20 35 2c 20 38 22 0a 20 20 27 28 28 63 6c 2d .files.version.3,.5,.8"...'((cl-
0460 6c 69 62 20 22 30 2e 35 22 29 29 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 30 64 39 38 38 32 36 35 30 lib."0.5"))...:commit."0d9882650
0480 37 32 30 62 34 61 37 39 31 35 35 36 66 35 65 32 64 39 31 37 33 38 38 39 36 35 64 36 66 63 30 22 720b4a791556f5e2d917388965d6fc0"
04a0 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28 22 50 65 74 65 72 20 49 6c 62 65 72 67 20 3c 70 65 .:authors...'(("Peter.Ilberg.<pe
04c0 74 65 72 2e 69 6c 62 65 72 67 40 67 6d 61 69 6c 2e 63 6f 6d 3e 2c 20 43 68 72 69 73 74 6f 70 68 ter.ilberg@gmail.com>,.Christoph
04e0 65 72 20 4d 61 64 73 65 6e 20 3c 63 6a 6d 40 63 6a 6d 77 65 62 2e 6e 65 74 3e 2c 20 45 72 69 6b er.Madsen.<cjm@cjmweb.net>,.Erik
0500 20 53 65 6c 62 65 72 67 22 20 2e 20 22 65 72 69 6b 40 73 65 6c 62 65 72 67 2e 6f 72 67 22 29 29 .Selberg"..."erik@selberg.org"))
0520 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 22 43 68 72 69 73 74 6f 70 68 65 ...:maintainers...'(("Christophe
0540 72 20 4d 61 64 73 65 6e 20 3c 63 6a 6d 40 63 6a 6d 77 65 62 2e 6e 65 74 3e 2c 20 45 72 69 6b 20 r.Madsen.<cjm@cjmweb.net>,.Erik.
0560 53 65 6c 62 65 72 67 22 20 2e 20 22 65 72 69 6b 40 73 65 6c 62 65 72 67 2e 6f 72 67 22 29 29 0a Selberg"..."erik@selberg.org")).
0580 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 43 68 72 69 73 74 6f 70 68 65 72 20 4d ..:maintainer...'("Christopher.M
05a0 61 64 73 65 6e 20 3c 63 6a 6d 40 63 6a 6d 77 65 62 2e 6e 65 74 3e 2c 20 45 72 69 6b 20 53 65 6c adsen.<cjm@cjmweb.net>,.Erik.Sel
05c0 62 65 72 67 22 20 2e 20 22 65 72 69 6b 40 73 65 6c 62 65 72 67 2e 6f 72 67 22 29 0a 20 20 3a 6b berg"..."erik@selberg.org")...:k
05e0 65 79 77 6f 72 64 73 0a 20 20 27 28 22 67 61 6d 65 73 22 20 22 65 6d 75 6c 61 74 69 6f 6e 73 22 eywords...'("games"."emulations"
0600 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 70 65 )...:url."https://github.com/spe
0620 65 64 65 6e 61 74 6f 72 2f 6d 61 6c 79 6f 6e 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 edenator/malyon").;;.Local.Varia
0640 62 6c 65 73 3a 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 bles:.;;.no-byte-compile:.t.;;.E
0660 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nd:.............................
0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 6d 61 6c 79 6f 6e 2d 32 30 31 36 31 32 30 38 2e 32 31 32 35 2f 6d 61 6c 79 6f 6e 2e 65 6c 00 00 malyon-20161208.2125/malyon.el..
0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0880 30 33 36 35 31 35 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 31 34 30 00 20 30 00 00 00 0365150.00000000000.014140..0...
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 3b 3b 3b 20 6d 61 6c 79 6f 6e 2e 65 6c 20 2d 2d 2d 20 6d 6f 64 65 20 74 6f 20 65 78 65 63 75 74 ;;;.malyon.el.---.mode.to.execut
0a20 65 20 5a 2d 63 6f 64 65 20 66 69 6c 65 73 20 76 65 72 73 69 6f 6e 20 33 2c 20 35 2c 20 38 0a 0a e.Z-code.files.version.3,.5,.8..
0a40 3b 3b 20 41 75 74 68 6f 72 3a 20 50 65 74 65 72 20 49 6c 62 65 72 67 20 3c 70 65 74 65 72 2e 69 ;;.Author:.Peter.Ilberg.<peter.i
0a60 6c 62 65 72 67 40 67 6d 61 69 6c 2e 63 6f 6d 3e 2c 20 43 68 72 69 73 74 6f 70 68 65 72 20 4d 61 lberg@gmail.com>,.Christopher.Ma
0a80 64 73 65 6e 20 3c 63 6a 6d 40 63 6a 6d 77 65 62 2e 6e 65 74 3e 2c 20 45 72 69 6b 20 53 65 6c 62 dsen.<cjm@cjmweb.net>,.Erik.Selb
0aa0 65 72 67 20 3c 65 72 69 6b 40 73 65 6c 62 65 72 67 2e 6f 72 67 3e 0a 3b 3b 20 4d 61 69 6e 74 61 erg.<erik@selberg.org>.;;.Mainta
0ac0 69 6e 65 72 3a 20 43 68 72 69 73 74 6f 70 68 65 72 20 4d 61 64 73 65 6e 20 3c 63 6a 6d 40 63 6a iner:.Christopher.Madsen.<cjm@cj
0ae0 6d 77 65 62 2e 6e 65 74 3e 2c 20 45 72 69 6b 20 53 65 6c 62 65 72 67 20 3c 65 72 69 6b 40 73 65 mweb.net>,.Erik.Selberg.<erik@se
0b00 6c 62 65 72 67 2e 6f 72 67 3e 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 32 30 31 36 31 32 30 34 0a lberg.org>.;;.Version:.20161204.
0b20 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 63 6c 2d 6c 69 62 20 22 30 ;;.Package-Requires:.((cl-lib."0
0b40 2e 35 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 67 61 6d 65 73 2c 20 65 6d 75 6c 61 74 .5")).;;.Keywords:.games,.emulat
0b60 69 6f 6e 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ions.;;.URL:.https://github.com/
0b80 73 70 65 65 64 65 6e 61 74 6f 72 2f 6d 61 6c 79 6f 6e 0a 0a 3b 3b 20 4f 6c 64 2d 4d 61 69 6e 74 speedenator/malyon..;;.Old-Maint
0ba0 61 69 6e 65 72 3a 20 50 65 74 65 72 20 49 6c 62 65 72 67 20 3c 70 65 74 65 72 2e 69 6c 62 65 72 ainer:.Peter.Ilberg.<peter.ilber
0bc0 67 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 28 49 20 61 6d 20 75 6e 61 62 6c 65 20 74 6f 20 g@gmail.com>.;;.(I.am.unable.to.
0be0 63 6f 6e 74 69 6e 75 65 20 73 75 70 70 6f 72 74 69 6e 67 20 6d 61 6c 79 6f 6e 2e 65 6c 2e 20 50 continue.supporting.malyon.el..P
0c00 6c 65 61 73 65 20 73 65 6e 64 20 6d 65 20 61 6e 0a 3b 3b 20 20 65 6d 61 69 6c 20 69 66 20 79 6f lease.send.me.an.;;..email.if.yo
0c20 75 20 61 72 65 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e 20 74 61 6b 69 6e 67 20 6f 76 65 72 20 u.are.interested.in.taking.over.
0c40 74 68 65 20 70 72 6f 6a 65 63 74 2e 20 54 68 61 6e 6b 73 2e 29 0a 0a 3b 3b 20 43 6f 70 79 72 69 the.project..Thanks.)..;;.Copyri
0c60 67 68 74 20 28 43 29 20 31 39 39 39 2d 32 30 31 36 20 50 65 74 65 72 20 49 6c 62 65 72 67 2c 20 ght.(C).1999-2016.Peter.Ilberg,.
0c80 43 68 72 69 73 74 6f 70 68 65 72 20 4d 61 64 73 65 6e 2c 20 45 72 69 6b 20 53 65 6c 62 65 72 67 Christopher.Madsen,.Erik.Selberg
0ca0 0a 0a 3b 3b 20 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 72 61 6e 74 65 ..;;.Permission.is.hereby.grante
0cc0 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e d,.free.of.charge,.to.any.person
0ce0 20 6f 62 74 61 69 6e 69 6e 67 20 61 0a 3b 3b 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 73 6f 66 .obtaining.a.;;.copy.of.this.sof
0d00 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 tware.and.associated.documentati
0d20 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 0a 3b 3b 20 74 6f on.files.(the."Software"),.;;.to
0d40 20 64 65 61 6c 20 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 .deal.in.the.Software.without.re
0d60 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d striction,.including.without.lim
0d80 69 74 61 74 69 6f 6e 0a 3b 3b 20 74 68 65 20 72 69 67 68 74 73 20 74 6f 20 75 73 65 2c 20 63 6f itation.;;.the.rights.to.use,.co
0da0 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 py,.modify,.merge,.publish,.dist
0dc0 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 0a 3b 3b 20 61 6e 64 2f 6f 72 20 73 65 ribute,.sublicense,.;;.and/or.se
0de0 6c 6c 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 ll.copies.of.the.Software,.and.t
0e00 6f 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 0a 3b 3b 20 o.permit.persons.to.whom.the.;;.
0e20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 20 74 6f 20 64 6f 20 73 6f 2c 20 Software.is.furnished.to.do.so,.
0e40 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 subject.to.the.following.conditi
0e60 6f 6e 73 3a 0a 0a 3b 3b 20 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 ons:..;;.The.above.copyright.not
0e80 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 ice.and.this.permission.notice.s
0ea0 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 0a 3b 3b 20 61 6c 6c 20 63 6f 70 69 65 hall.be.included.in.;;.all.copie
0ec0 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 s.or.substantial.portions.of.the
0ee0 20 53 6f 66 74 77 61 72 65 2e 0a 0a 3b 3b 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 .Software...;;.THE.SOFTWARE.IS.P
0f00 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 ROVIDED."AS.IS",.WITHOUT.WARRANT
0f20 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 45 53 53 20 4f 52 0a 3b 3b 20 49 4d 50 Y.OF.ANY.KIND,.EXPRESS.OR.;;.IMP
0f40 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 LIED,.INCLUDING.BUT.NOT.LIMITED.
0f60 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 TO.THE.WARRANTIES.OF.MERCHANTABI
0f80 4c 49 54 59 2c 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 LITY,.;;.FITNESS.FOR.A.PARTICULA
0fa0 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 20 49 R.PURPOSE.AND.NONINFRINGEMENT..I
0fc0 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 3b 3b 20 41 55 54 48 4f 52 53 20 N.NO.EVENT.SHALL.THE.;;.AUTHORS.
0fe0 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 OR.COPYRIGHT.HOLDERS.BE.LIABLE.F
1000 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 45 52 0a 3b OR.ANY.CLAIM,.DAMAGES.OR.OTHER.;
1020 3b 20 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 4f ;.LIABILITY,.WHETHER.IN.AN.ACTIO
1040 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 45 N.OF.CONTRACT,.TORT.OR.OTHERWISE
1060 2c 20 41 52 49 53 49 4e 47 0a 3b 3b 20 46 52 4f 4d 2c 20 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 ,.ARISING.;;.FROM,.OUT.OF.OR.IN.
1080 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 CONNECTION.WITH.THE.SOFTWARE.OR.
10a0 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 0a 3b 3b 20 44 45 41 4c 49 4e 47 53 20 49 4e 20 THE.USE.OR.OTHER.;;.DEALINGS.IN.
10c0 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 0a 3b 3b 3b 20 43 72 65 64 69 74 73 3a 0a 0a 3b 3b 20 THE.SOFTWARE...;;;.Credits:..;;.
10e0 20 20 54 68 65 20 61 75 74 68 6f 72 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 74 68 61 6e 6b ..The.author.would.like.to.thank
1100 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 65 6f 70 6c 65 20 66 6f 72 20 72 65 70 6f 72 74 .the.following.people.for.report
1120 69 6e 67 0a 3b 3b 20 20 20 62 75 67 73 2c 20 74 65 73 74 69 6e 67 2c 20 73 75 67 67 65 73 74 69 ing.;;...bugs,.testing,.suggesti
1140 6e 67 20 61 6e 64 2f 6f 72 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 69 6d 70 72 6f 76 65 6d 65 ng.and/or.contributing.improveme
1160 6e 74 73 3a 0a 3b 3b 20 20 20 20 20 42 65 72 6e 68 61 72 64 20 42 61 72 64 65 2c 20 4a 6f 6e 61 nts:.;;.....Bernhard.Barde,.Jona
1180 74 68 61 6e 20 43 72 61 76 65 6e 2c 20 41 6c 62 65 72 74 6f 20 50 65 74 72 6f 66 73 6b 79 2c 20 than.Craven,.Alberto.Petrofsky,.
11a0 41 6c 61 6e 20 53 68 75 74 6b 6f 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b Alan.Shutko..;;;.Commentary:..;;
11c0 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 61 20 62 61 73 69 63 20 69 .This.package.provides.a.basic.i
11e0 6e 74 65 72 70 72 65 74 65 72 20 66 6f 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 35 2c 20 38 20 5a nterpreter.for.version.3,.5,.8.Z
1200 2d 63 6f 64 65 0a 3b 3b 20 73 74 6f 72 79 20 66 69 6c 65 73 20 61 73 20 67 65 6e 65 72 61 74 65 -code.;;.story.files.as.generate
1220 64 20 62 79 20 49 6e 66 6f 72 6d 20 28 43 29 20 47 72 61 68 61 6d 20 4e 65 6c 73 6f 6e 20 61 6e d.by.Inform.(C).Graham.Nelson.an
1240 64 20 49 6e 66 6f 63 6f 6d 2e 0a 0a 3b 3b 20 49 66 20 79 6f 75 20 65 6e 63 6f 75 6e 74 65 72 20 d.Infocom...;;.If.you.encounter.
1260 61 20 62 75 67 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 72 65 70 6f 72 74 20 74 6f 20 50 65 a.bug.please.send.a.report.to.Pe
1280 74 65 72 20 49 6c 62 65 72 67 20 61 74 0a 3b 3b 20 70 65 74 65 72 2e 69 6c 62 65 72 67 40 67 6d ter.Ilberg.at.;;.peter.ilberg@gm
12a0 61 69 6c 2e 63 6f 6d 2e 20 54 68 61 6e 6b 20 79 6f 75 21 0a 0a 3b 3b 20 54 6f 20 70 6c 61 79 20 ail.com..Thank.you!..;;.To.play.
12c0 61 20 73 74 6f 72 79 20 66 69 6c 65 20 73 69 6d 70 6c 79 20 74 79 70 65 20 4d 2d 78 20 6d 61 6c a.story.file.simply.type.M-x.mal
12e0 79 6f 6e 20 61 6e 64 20 65 6e 74 65 72 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 0a 3b 3b yon.and.enter.the.path.to.the.;;
1300 20 73 74 6f 72 79 20 66 69 6c 65 2e 20 49 66 20 61 6e 79 74 68 69 6e 67 20 67 6f 65 73 20 77 72 .story.file..If.anything.goes.wr
1320 6f 6e 67 20 61 6e 64 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 ong.and.you.want.to.manually.cle
1340 61 6e 0a 3b 3b 20 75 70 20 74 79 70 65 20 4d 2d 78 20 6d 61 6c 79 6f 6e 2d 71 75 69 74 2e 20 49 an.;;.up.type.M-x.malyon-quit..I
1360 6e 20 61 64 64 69 74 69 6f 6e 2c 20 79 6f 75 20 63 61 6e 20 73 77 69 74 63 68 20 62 61 63 6b 20 n.addition,.you.can.switch.back.
1380 74 6f 20 61 20 67 61 6d 65 20 69 6e 0a 3b 3b 20 70 72 6f 67 72 65 73 73 20 62 79 20 74 79 70 69 to.a.game.in.;;.progress.by.typi
13a0 6e 67 20 4d 2d 78 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2e 0a 0a 3b 3b 20 41 20 6e 6f 74 ng.M-x.malyon-restore...;;.A.not
13c0 65 20 6f 6e 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 73 61 76 65 64 20 67 61 6d 65 20 73 74 e.on.the.format.of.saved.game.st
13e0 61 74 65 73 3a 0a 0a 3b 3b 20 41 73 20 6f 66 20 76 65 72 73 69 6f 6e 20 31 2e 30 2c 20 4d 61 6c ates:..;;.As.of.version.1.0,.Mal
1400 79 6f 6e 20 73 75 70 70 6f 72 74 73 20 74 68 65 20 71 75 65 74 7a 61 6c 20 66 69 6c 65 20 66 6f yon.supports.the.quetzal.file.fo
1420 72 6d 61 74 20 66 6f 72 20 73 61 76 65 64 0a 3b 3b 20 67 61 6d 65 73 2e 20 53 75 70 70 6f 72 74 rmat.for.saved.;;.games..Support
1440 20 66 6f 72 20 74 68 69 73 20 66 6f 72 6d 61 74 20 72 65 71 75 69 72 65 64 20 63 68 61 6e 67 65 .for.this.format.required.change
1460 73 20 74 6f 20 73 65 76 65 72 61 6c 20 69 6e 74 65 72 6e 61 6c 0a 3b 3b 20 64 61 74 61 20 73 74 s.to.several.internal.;;.data.st
1480 72 75 63 74 75 72 65 73 20 28 73 74 61 63 6b 20 66 72 61 6d 65 73 20 61 6e 64 20 63 61 74 63 68 ructures.(stack.frames.and.catch
14a0 2d 74 68 72 6f 77 29 20 74 68 61 74 20 61 72 65 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 0a 3b 3b -throw).that.are.incompatible.;;
14c0 20 77 69 74 68 20 74 68 65 20 6f 6c 64 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2e 20 55 6e .with.the.old.implementation..Un
14e0 66 6f 72 74 75 6e 61 74 65 6c 79 2c 20 74 68 65 20 6f 6c 64 20 66 69 6c 65 20 66 6f 72 6d 61 74 fortunately,.the.old.file.format
1500 20 66 6f 72 0a 3b 3b 20 73 61 76 65 64 20 67 61 6d 65 73 20 63 61 6e 6e 6f 74 20 62 65 20 63 6f .for.;;.saved.games.cannot.be.co
1520 6e 76 65 72 74 65 64 20 69 6e 74 6f 20 71 75 65 74 7a 61 6c 2e 0a 0a 3b 3b 20 46 6f 72 20 62 61 nverted.into.quetzal...;;.For.ba
1540 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c 20 68 6f 77 65 76 65 72 2c 20 ckwards.compatibility,.however,.
1560 4d 61 6c 79 6f 6e 20 73 74 69 6c 6c 20 73 75 70 70 6f 72 74 73 20 74 68 65 20 6f 6c 64 0a 3b 3b Malyon.still.supports.the.old.;;
1580 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e 20 41 6e 64 20 79 6f 75 20 63 61 6e 20 63 6f 6e 74 69 6e .file.format..And.you.can.contin
15a0 75 65 20 74 6f 20 70 6c 61 79 20 79 6f 75 72 20 6f 6c 64 20 67 61 6d 65 20 73 74 61 74 65 73 2e ue.to.play.your.old.game.states.
15c0 0a 0a 3b 3b 20 42 65 63 61 75 73 65 20 6f 66 20 74 68 65 20 69 6e 63 6f 6d 70 61 74 69 62 69 6c ..;;.Because.of.the.incompatibil
15e0 69 74 79 20 6f 66 20 74 68 65 20 74 77 6f 20 66 69 6c 65 20 66 6f 72 6d 61 74 73 2c 20 4d 61 6c ity.of.the.two.file.formats,.Mal
1600 79 6f 6e 20 6e 6f 77 0a 3b 3b 20 72 75 6e 73 2c 20 61 73 20 66 6f 6c 6c 6f 77 73 2c 20 69 6e 20 yon.now.;;.runs,.as.follows,.in.
1620 65 69 74 68 65 72 20 6f 66 20 74 77 6f 20 6d 6f 64 65 73 3a 20 71 75 65 74 7a 61 6c 20 61 6e 64 either.of.two.modes:.quetzal.and
1640 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 0a 0a 3b 3b 20 2d 20 69 6e 20 71 75 65 74 7a 61 6c .compatibility...;;.-.in.quetzal
1660 20 6d 6f 64 65 2c 20 67 61 6d 65 20 73 74 61 74 65 73 20 61 72 65 20 73 61 76 65 64 20 69 6e 20 .mode,.game.states.are.saved.in.
1680 71 75 65 74 7a 61 6c 20 66 6f 72 6d 61 74 0a 3b 3b 20 2d 20 69 6e 20 63 6f 6d 70 61 74 69 62 69 quetzal.format.;;.-.in.compatibi
16a0 6c 69 74 79 20 6d 6f 64 65 2c 20 67 61 6d 65 73 20 73 74 61 74 65 73 20 61 72 65 20 73 61 76 65 lity.mode,.games.states.are.save
16c0 64 20 69 6e 20 74 68 65 20 6f 6c 64 20 66 6f 72 6d 61 74 0a 3b 3b 20 2d 20 6c 6f 61 64 69 6e 67 d.in.the.old.format.;;.-.loading
16e0 20 61 20 67 61 6d 65 20 73 74 61 74 65 20 69 6e 20 71 75 65 74 7a 61 6c 20 66 6f 72 6d 61 74 20 .a.game.state.in.quetzal.format.
1700 73 77 69 74 63 68 65 73 20 74 6f 20 71 75 65 74 7a 61 6c 20 6d 6f 64 65 0a 3b 3b 20 2d 20 6c 6f switches.to.quetzal.mode.;;.-.lo
1720 61 64 69 6e 67 20 61 6e 20 6f 6c 64 20 67 61 6d 65 20 73 74 61 74 65 20 73 77 69 74 63 68 65 73 ading.an.old.game.state.switches
1740 20 74 6f 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 6d 6f 64 65 0a 3b 3b 20 2d 20 71 75 65 74 .to.compatibility.mode.;;.-.quet
1760 7a 61 6c 20 6d 6f 64 65 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67 0a zal.mode.is.the.default.setting.
1780 0a 3b 3b 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 4d 61 6c 79 6f 6e 20 77 69 6c 6c 20 .;;.In.other.words,.Malyon.will.
17a0 6f 6e 6c 79 20 75 73 65 20 74 68 65 20 6f 6c 64 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 69 66 20 only.use.the.old.file.format.if.
17c0 79 6f 75 27 76 65 0a 3b 3b 20 72 65 73 74 6f 72 65 64 20 61 20 67 61 6d 65 20 73 74 61 74 65 20 you've.;;.restored.a.game.state.
17e0 73 61 76 65 64 20 69 6e 20 74 68 65 20 6f 6c 64 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e 0a 0a 3b saved.in.the.old.file.format...;
1800 3b 20 45 6e 6a 6f 79 21 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 20 67 6c 6f 62 61 6c 20 76 ;.Enjoy!..;;;.Code:..;;.global.v
1820 61 72 69 61 62 6c 65 73 20 2d 20 6d 6f 76 65 64 20 68 65 72 65 20 74 6f 20 61 70 70 65 61 73 65 ariables.-.moved.here.to.appease
1840 20 74 68 65 20 62 79 74 65 2d 63 6f 64 65 20 63 6f 6d 70 69 6c 65 72 0a 0a 3b 3b 20 72 65 71 75 .the.byte-code.compiler..;;.requ
1860 69 72 65 6d 65 6e 74 73 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 irements..(require.'cl-lib).(req
1880 75 69 72 65 20 27 62 69 6e 64 61 74 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6d 61 6c 79 6f 6e 2d uire.'bindat)..(defconst.malyon-
18a0 76 65 72 73 69 6f 6e 20 22 31 2e 32 22 20 22 4d 61 6c 79 6f 6e 20 76 65 72 73 69 6f 6e 20 6e 75 version."1.2"."Malyon.version.nu
18c0 6d 62 65 72 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 6d 61 6c 79 6f 6e 20 6e 69 6c 0a 20 20 22 mber")..(defgroup.malyon.nil..."
18e0 50 6c 61 79 20 5a 2d 6d 61 63 68 69 6e 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 69 63 74 69 Play.Z-machine.interactive.ficti
1900 6f 6e 20 67 61 6d 65 73 2e 22 0a 20 20 3a 70 72 65 66 69 78 20 22 6d 61 6c 79 6f 6e 2d 22 0a 20 on.games."...:prefix."malyon-"..
1920 20 3a 67 72 6f 75 70 20 27 67 61 6d 65 73 29 0a 0a 3b 3b 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 .:group.'games)..;;.customizable
1940 20 76 61 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6d 61 6c 79 6f 6e 2d 73 74 .variables..(defcustom.malyon-st
1960 6f 72 69 65 73 2d 64 69 72 65 63 74 6f 72 79 20 6e 69 6c 0a 20 20 22 54 68 65 20 64 65 66 61 75 ories-directory.nil..."The.defau
1980 6c 74 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 73 74 6f 72 79 20 66 lt.directory.to.look.for.story.f
19a0 69 6c 65 73 2e 0a 4e 69 6c 20 6d 65 61 6e 73 20 75 73 65 20 74 68 65 20 62 75 66 66 65 72 27 73 iles..Nil.means.use.the.buffer's
19c0 20 64 65 66 61 75 6c 74 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 .default.directory."...:type.'(c
19e0 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 6e 69 6c 29 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 3a hoice.(const.nil).directory)...:
1a00 67 72 6f 75 70 20 27 6d 61 6c 79 6f 6e 29 0a 0a 0a 3b 3b 20 73 74 6f 72 79 20 66 69 6c 65 20 69 group.'malyon)...;;.story.file.i
1a20 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 nformation..(defvar.malyon-story
1a40 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 -file-name.nil..."The.name.of.th
1a60 65 20 73 74 6f 72 79 20 66 69 6c 65 20 62 65 69 6e 67 20 65 78 65 63 75 74 65 64 2e 22 29 0a 0a e.story.file.being.executed.")..
1a80 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 (defvar.malyon-story-file.nil...
1aa0 22 54 68 65 20 73 74 6f 72 79 20 66 69 6c 65 20 77 68 69 63 68 20 69 73 20 63 75 72 72 65 6e 74 "The.story.file.which.is.current
1ac0 6c 79 20 62 65 69 6e 67 20 72 75 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d ly.being.run.")..(defvar.malyon-
1ae0 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 6e 69 6c 0a 20 20 22 54 68 65 20 73 74 6f 72 79 20 66 story-version.nil..."The.story.f
1b00 69 6c 65 20 76 65 72 73 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 ile.version.")..(defvar.malyon-s
1b20 75 70 70 6f 72 74 65 64 2d 76 65 72 73 69 6f 6e 73 20 27 28 33 20 35 20 38 29 0a 20 20 22 41 20 upported-versions.'(3.5.8)..."A.
1b40 6c 69 73 74 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 73 74 6f 72 79 20 66 69 6c 65 20 76 65 72 list.of.supported.story.file.ver
1b60 73 69 6f 6e 73 2e 22 29 0a 0a 3b 3b 20 73 74 61 74 75 73 20 61 6e 64 20 74 72 61 6e 73 63 72 69 sions.")..;;.status.and.transcri
1b80 70 74 20 62 75 66 66 65 72 73 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 pt.buffers..(defvar.malyon-trans
1ba0 63 72 69 70 74 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 61 69 6e 20 74 72 61 cript-buffer.nil..."The.main.tra
1bc0 6e 73 63 72 69 70 74 20 62 75 66 66 65 72 20 6f 66 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 nscript.buffer.of.the.story.file
1be0 20 65 78 65 63 75 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 74 72 .execution.")..(defvar.malyon-tr
1c00 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 2d 62 75 66 66 65 72 65 64 20 6e 69 6c 0a 20 20 22 anscript-buffer-buffered.nil..."
1c20 49 73 20 6f 75 74 70 75 74 20 69 6e 20 74 68 65 20 74 72 61 6e 73 63 72 69 70 74 20 62 75 66 66 Is.output.in.the.transcript.buff
1c40 65 72 20 62 75 66 66 65 72 65 64 3f 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 er.buffered?")..(defvar.malyon-s
1c60 74 61 74 75 73 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 73 74 61 74 75 73 20 62 tatus-buffer.nil..."The.status.b
1c80 61 72 20 62 75 66 66 65 72 20 6f 66 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 20 65 78 65 63 ar.buffer.of.the.story.file.exec
1ca0 75 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d ution.")..(defvar.malyon-status-
1cc0 62 75 66 66 65 72 2d 6c 69 6e 65 73 20 6e 69 6c 0a 20 20 22 54 68 65 20 6e 75 6d 62 65 72 20 6f buffer-lines.nil..."The.number.o
1ce0 66 20 6c 69 6e 65 73 20 69 6e 20 74 68 65 20 73 74 61 74 75 73 20 62 61 72 20 62 75 66 66 65 72 f.lines.in.the.status.bar.buffer
1d00 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 .")..(defvar.malyon-status-buffe
1d20 72 2d 64 65 6c 61 79 65 64 2d 73 70 6c 69 74 20 6e 69 6c 0a 20 20 22 49 66 20 74 68 65 20 6e 75 r-delayed-split.nil..."If.the.nu
1d40 6d 62 65 72 20 6f 66 20 6c 69 6e 65 73 20 69 6e 20 74 68 65 20 73 74 61 74 75 73 20 62 75 66 66 mber.of.lines.in.the.status.buff
1d60 65 72 20 69 73 20 72 65 64 75 63 65 64 2c 0a 74 68 65 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 67 er.is.reduced,.the.window.config
1d80 75 72 61 74 69 6f 6e 20 69 73 20 6e 6f 74 20 63 68 61 6e 67 65 64 20 69 6d 6d 65 64 69 61 74 65 uration.is.not.changed.immediate
1da0 6c 79 2e 20 49 74 0a 69 73 20 63 68 61 6e 67 65 64 20 61 66 74 65 72 20 74 68 65 20 6e 65 78 74 ly..It.is.changed.after.the.next
1dc0 20 74 75 72 6e 20 28 72 65 61 64 20 6f 72 20 72 65 61 64 5f 63 68 61 72 29 2e 22 29 0a 0a 28 64 .turn.(read.or.read_char).")..(d
1de0 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 70 6f 69 6e 74 efvar.malyon-status-buffer-point
1e00 20 6e 69 6c 0a 20 20 22 54 68 65 20 70 6f 69 6e 74 20 6c 6f 63 61 74 69 6f 6e 20 69 6e 20 74 68 .nil..."The.point.location.in.th
1e20 65 20 73 74 61 74 75 73 20 62 61 72 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 e.status.bar.buffer.")..(defvar.
1e40 6d 61 6c 79 6f 6e 2d 6d 61 78 2d 63 6f 6c 75 6d 6e 20 37 32 0a 20 20 22 4d 61 78 69 6d 75 6d 20 malyon-max-column.72..."Maximum.
1e60 63 6f 6c 75 6d 6e 20 66 6f 72 20 74 65 78 74 20 64 69 73 70 6c 61 79 2e 22 29 0a 0a 3b 3b 20 77 column.for.text.display.")..;;.w
1e80 69 6e 64 6f 77 20 6d 61 6e 61 67 65 6d 65 6e 74 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e indow.management..(defvar.malyon
1ea0 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 54 68 65 -window-configuration.nil..."The
1ec0 20 63 75 72 72 65 6e 74 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6f 66 .current.window.configuration.of
1ee0 20 74 68 65 20 6d 61 6c 79 6f 6e 20 69 6e 74 65 72 70 72 65 74 65 72 2e 22 29 0a 0a 28 64 65 66 .the.malyon.interpreter.")..(def
1f00 76 61 72 20 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 20 6e 69 6c 0a 20 20 var.malyon-current-window.nil...
1f20 22 54 68 65 20 63 75 72 72 65 6e 74 6c 79 20 61 63 74 69 76 65 20 77 69 6e 64 6f 77 20 66 6f 72 "The.currently.active.window.for
1f40 20 74 65 78 74 20 6f 75 74 70 75 74 2e 22 29 0a 0a 3b 3b 20 7a 20 6d 61 63 68 69 6e 65 20 72 65 .text.output.")..;;.z.machine.re
1f60 67 69 73 74 65 72 73 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 20 6e 69 gisters..(defvar.malyon-stack.ni
1f80 6c 0a 20 20 22 54 68 65 20 73 74 61 63 6b 20 6f 66 20 74 68 65 20 7a 20 6d 61 63 68 69 6e 65 2e l..."The.stack.of.the.z.machine.
1fa0 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 ")..(defvar.malyon-stack-pointer
1fc0 20 6e 69 6c 0a 20 20 22 54 68 65 20 73 74 61 63 6b 20 70 6f 69 6e 74 65 72 20 6f 66 20 74 68 65 .nil..."The.stack.pointer.of.the
1fe0 20 7a 20 6d 61 63 68 69 6e 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 66 72 .z.machine.")..(defvar.malyon-fr
2000 61 6d 65 2d 70 6f 69 6e 74 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 66 72 61 6d 65 20 70 6f 69 ame-pointer.nil..."The.frame.poi
2020 6e 74 65 72 20 6f 66 20 74 68 65 20 7a 20 6d 61 63 68 69 6e 65 2e 22 29 0a 0a 28 64 65 66 76 61 nter.of.the.z.machine.")..(defva
2040 72 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 6e 69 6c r.malyon-instruction-pointer.nil
2060 0a 20 20 22 54 68 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 70 6f 69 6e 74 65 72 20 6f 66 20 74 ..."The.instruction.pointer.of.t
2080 68 65 20 7a 20 6d 61 63 68 69 6e 65 2e 22 29 0a 0a 3b 3b 20 67 61 6d 65 20 66 69 6c 65 20 72 65 he.z.machine.")..;;.game.file.re
20a0 6c 61 74 65 64 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 76 61 72 20 lated.global.variables..(defvar.
20c0 6d 61 6c 79 6f 6e 2d 73 63 6f 72 65 2d 67 61 6d 65 20 6e 69 6c 0a 20 20 22 41 20 66 6c 61 67 20 malyon-score-game.nil..."A.flag.
20e0 69 6e 64 69 63 61 74 69 6e 67 20 77 68 65 74 68 65 72 20 74 68 69 73 20 73 74 6f 72 79 20 75 73 indicating.whether.this.story.us
2100 65 73 20 73 63 6f 72 65 20 6f 72 20 74 69 6d 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c es.score.or.time.")..(defvar.mal
2120 79 6f 6e 2d 70 61 63 6b 65 64 2d 6d 75 6c 74 69 70 6c 69 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 yon-packed-multiplier.nil..."The
2140 20 61 6d 6f 75 6e 74 20 62 79 20 77 68 69 63 68 20 70 61 63 6b 65 64 20 61 64 64 72 65 73 73 65 .amount.by.which.packed.addresse
2160 73 20 61 72 65 20 6d 75 6c 74 69 70 6c 69 65 64 20 74 6f 20 67 65 74 20 62 79 74 65 0a 61 64 64 s.are.multiplied.to.get.byte.add
2180 72 65 73 73 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 67 6c 6f 62 61 6c resses.")..(defvar.malyon-global
21a0 2d 76 61 72 69 61 62 6c 65 73 20 6e 69 6c 0a 20 20 22 41 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 -variables.nil..."A.pointer.to.t
21c0 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 73 65 63 74 69 6f 6e 20 69 6e 20 74 68 he.global.variable.section.in.th
21e0 65 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d e.story.file.")..(defvar.malyon-
2200 61 62 62 72 65 76 69 61 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 41 20 70 6f 69 6e 74 65 72 20 74 abbreviations.nil..."A.pointer.t
2220 6f 20 74 68 65 20 61 62 62 72 65 76 69 61 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 73 74 6f 72 79 o.the.abbreviations.in.the.story
2240 20 66 69 6c 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 61 6c 70 68 61 62 65 .file.")..(defvar.malyon-alphabe
2260 74 20 6e 69 6c 0a 20 20 22 54 68 65 20 7a 20 6d 61 63 68 69 6e 65 27 73 20 74 65 78 74 20 61 6c t.nil..."The.z.machine's.text.al
2280 70 68 61 62 65 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 77 68 69 74 65 73 phabet.")..(defvar.malyon-whites
22a0 70 61 63 65 20 6e 69 6c 0a 20 20 22 41 20 73 74 72 69 6e 67 20 6f 66 20 77 68 69 74 65 73 70 61 pace.nil..."A.string.of.whitespa
22c0 63 65 20 63 68 61 72 61 63 74 65 72 73 20 72 65 63 6f 67 6e 69 7a 65 64 20 62 79 20 74 68 65 20 ce.characters.recognized.by.the.
22e0 69 6e 74 65 72 70 72 65 74 65 72 2e 22 29 0a 0a 3b 3b 20 6f 62 6a 65 63 74 20 74 61 62 6c 65 73 interpreter.")..;;.object.tables
2300 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 74 61 62 6c 65 20 6e 69 ..(defvar.malyon-object-table.ni
2320 6c 0a 20 20 22 41 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 20 74 61 62 l..."A.pointer.to.the.object.tab
2340 6c 65 20 69 6e 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 le.in.the.story.file.")..(defvar
2360 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 74 61 62 6c 65 2d 65 6e 74 72 79 2d 73 69 7a 65 20 .malyon-object-table-entry-size.
2380 6e 69 6c 0a 20 20 22 54 68 65 20 73 69 7a 65 20 6f 66 20 6f 6e 65 20 65 6e 74 72 79 20 69 6e 20 nil..."The.size.of.one.entry.in.
23a0 74 68 65 20 6f 62 6a 65 63 74 20 74 61 62 6c 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c the.object.table.")..(defvar.mal
23c0 79 6f 6e 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 69 65 73 20 6e 69 6c 0a 20 20 22 54 68 65 yon-object-properties.nil..."The
23e0 20 6e 75 6d 62 65 72 20 6f 66 20 70 72 6f 70 65 72 74 69 65 73 20 70 65 72 20 6f 62 6a 65 63 74 .number.of.properties.per.object
2400 20 6d 69 6e 75 73 20 6f 6e 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 6f 62 .minus.one.")..(defvar.malyon-ob
2420 6a 65 63 74 2d 70 72 6f 70 65 72 74 79 2d 6f 66 66 73 65 74 20 6e 69 6c 0a 20 20 22 54 68 65 20 ject-property-offset.nil..."The.
2440 62 79 74 65 20 6f 66 66 73 65 74 20 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 74 61 byte.offset.of.the.properties.ta
2460 62 6c 65 20 69 6e 20 74 68 65 20 6f 62 6a 65 63 74 2e 22 29 0a 0a 3b 3b 20 64 69 63 74 69 6f 6e ble.in.the.object.")..;;.diction
2480 61 72 69 65 73 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 aries..(defvar.malyon-dictionary
24a0 20 6e 69 6c 0a 20 20 22 41 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 64 69 63 74 69 6f 6e .nil..."A.pointer.to.the.diction
24c0 61 72 79 20 6f 66 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 29 0a 0a 28 64 65 66 76 61 ary.of.the.story.file.")..(defva
24e0 72 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 65 6e 74 72 79 2d 6c 65 6e 67 74 68 r.malyon-dictionary-entry-length
2500 20 6e 69 6c 0a 20 20 22 54 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 61 20 64 69 63 74 69 6f 6e 61 .nil..."The.length.of.a.dictiona
2520 72 79 20 65 6e 74 72 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 ry.entry.")..(defvar.malyon-dict
2540 69 6f 6e 61 72 79 2d 6e 75 6d 2d 65 6e 74 72 69 65 73 20 6e 69 6c 0a 20 20 22 54 68 65 20 6e 75 ionary-num-entries.nil..."The.nu
2560 6d 62 65 72 20 6f 66 20 64 69 63 74 69 6f 6e 61 72 79 20 65 6e 74 72 69 65 73 2e 22 29 0a 0a 28 mber.of.dictionary.entries.")..(
2580 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 65 6e 74 72 69 65 73 defvar.malyon-dictionary-entries
25a0 20 6e 69 6c 0a 20 20 22 41 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 64 .nil..."A.pointer.to.the.first.d
25c0 69 63 74 69 6f 6e 61 72 79 20 65 6e 74 72 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 ictionary.entry.")..(defvar.maly
25e0 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 77 6f 72 64 2d 6c 65 6e 67 74 68 20 6e 69 6c 0a 20 20 on-dictionary-word-length.nil...
2600 22 54 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 61 20 64 69 63 74 69 6f 6e 61 72 79 20 77 6f 72 64 "The.length.of.a.dictionary.word
2620 2e 22 29 0a 0a 3b 3b 20 67 61 6d 65 20 73 74 61 74 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a .")..;;.game.state.information..
2640 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 72 65 73 74 61 72 (defvar.malyon-game-state-restar
2660 74 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 61 63 68 69 6e 65 20 73 74 61 74 65 20 66 6f 72 20 69 t.nil..."The.machine.state.for.i
2680 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 72 65 73 74 61 72 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 mplementing.restart.")..(defvar.
26a0 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 75 6e 64 6f 20 6e 69 6c 0a 20 20 22 54 68 malyon-game-state-undo.nil..."Th
26c0 65 20 6d 61 63 68 69 6e 65 20 73 74 61 74 65 20 66 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 e.machine.state.for.implementing
26e0 20 75 6e 64 6f 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 .undo.")..(defvar.malyon-game-st
2700 61 74 65 2d 71 75 65 74 7a 61 6c 20 74 0a 20 20 22 53 74 6f 72 65 20 67 61 6d 65 20 73 74 61 74 ate-quetzal.t..."Store.game.stat
2720 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 71 75 65 74 7a 61 6c 2e 22 29 0a 0a 3b 3b e.information.for.quetzal.")..;;
2740 20 76 61 72 69 6f 75 73 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e 74 .various..(defvar.malyon-current
2760 2d 66 61 63 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 75 72 72 65 6e 74 20 66 61 63 65 20 69 6e -face.nil..."The.current.face.in
2780 20 77 68 69 63 68 20 74 6f 20 64 69 73 70 6c 61 79 20 74 65 78 74 2e 22 29 0a 0a 28 64 65 66 76 .which.to.display.text.")..(defv
27a0 61 72 20 6d 61 6c 79 6f 6e 2d 6c 61 73 74 2d 63 75 72 73 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 61 ar.malyon-last-cursor-position-a
27c0 66 74 65 72 2d 69 6e 70 75 74 20 6e 69 6c 0a 20 20 22 54 68 65 20 6c 61 73 74 20 63 75 72 73 6f fter-input.nil..."The.last.curso
27e0 72 20 70 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 72 65 61 64 69 6e 67 20 69 6e 70 75 74 20 66 r.position.after.reading.input.f
2800 72 6f 6d 20 74 68 65 20 6b 65 79 62 6f 61 72 64 2e 22 29 0a 0a 3b 3b 20 65 72 72 6f 72 20 74 72 rom.the.keyboard.")..;;.error.tr
2820 61 70 70 69 6e 67 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6d 61 6c 79 6f 6e 2d 68 69 64 65 2d 69 6e apping..(defmacro.malyon-hide-in
2840 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 20 28 6d 65 73 73 61 67 65 20 62 6f 64 79 66 6f 72 6d 29 ternal-errors.(message.bodyform)
2860 0a 20 20 22 45 76 61 6c 75 61 74 65 20 42 4f 44 59 46 4f 52 4d 2c 20 73 75 62 73 74 69 74 75 74 ..."Evaluate.BODYFORM,.substitut
2880 69 6e 67 20 4d 45 53 53 41 47 45 20 66 6f 72 20 61 6e 79 20 65 72 72 6f 72 2e 22 0a 20 20 28 64 ing.MESSAGE.for.any.error."...(d
28a0 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 60 28 63 6f 6e 64 69 74 69 6f 6e eclare.(indent.1))...`(condition
28c0 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 2c 62 6f 64 79 66 6f 72 6d 0a 20 20 20 20 28 65 -case.nil.......,bodyform.....(e
28e0 72 72 6f 72 0a 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 61 6c 2d 65 72 72 6f 72 20 2c 6d rror......(malyon-fatal-error.,m
2900 65 73 73 61 67 65 29 29 29 29 0a 0a 3b 3b 20 77 68 65 6e 20 64 65 62 75 67 67 69 6e 67 2c 20 75 essage))))..;;.when.debugging,.u
2920 6e 63 6f 6d 6d 65 6e 74 20 74 68 69 73 20 4e 4f 50 20 76 65 72 73 69 6f 6e 20 6f 66 20 6d 61 6c ncomment.this.NOP.version.of.mal
2940 79 6f 6e 2d 68 69 64 65 2d 69 6e 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 0a 3b 28 64 65 66 6d 61 yon-hide-internal-errors.;(defma
2960 63 72 6f 20 6d 61 6c 79 6f 6e 2d 68 69 64 65 2d 69 6e 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 20 cro.malyon-hide-internal-errors.
2980 28 6d 73 67 20 62 6f 64 79 29 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 20 (msg.body).(declare.(indent.1)).
29a0 62 6f 64 79 29 0a 0a 3b 3b 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 73 0a body)..;;.interactive.functions.
29c0 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 20 28 66 69 ;;;###autoload.(defun.malyon.(fi
29e0 6c 65 2d 6e 61 6d 65 29 0a 20 20 22 50 6c 61 79 20 61 20 5a 2d 6d 61 63 68 69 6e 65 20 69 6e 74 le-name)..."Play.a.Z-machine.int
2a00 65 72 61 63 74 69 76 65 20 66 69 63 74 69 6f 6e 20 67 61 6d 65 2e 0a 49 66 20 61 20 67 61 6d 65 eractive.fiction.game..If.a.game
2a20 20 69 73 20 69 6e 20 70 72 6f 67 72 65 73 73 2c 20 72 65 73 74 6f 72 65 73 20 74 68 65 20 67 61 .is.in.progress,.restores.the.ga
2a40 6d 65 27 73 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 0a 4f 74 68 65 72 me's.window.configuration..Other
2a60 77 69 73 65 2c 20 79 6f 75 20 61 72 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 73 74 6f wise,.you.are.prompted.for.a.sto
2a80 72 79 20 66 69 6c 65 20 74 6f 20 6c 6f 61 64 2c 20 77 68 69 63 68 20 6d 61 79 20 62 65 0a 65 69 ry.file.to.load,.which.may.be.ei
2aa0 74 68 65 72 20 61 20 72 61 77 20 5a 2d 63 6f 64 65 20 66 69 6c 65 20 6f 72 20 6f 6e 65 20 70 61 ther.a.raw.Z-code.file.or.one.pa
2ac0 63 6b 61 67 65 64 20 69 6e 20 61 20 42 6c 6f 72 62 20 66 69 6c 65 2e 0a 5a 2d 63 6f 64 65 20 76 ckaged.in.a.Blorb.file..Z-code.v
2ae0 65 72 73 69 6f 6e 73 20 33 2c 20 35 2c 20 61 6e 64 20 38 20 61 72 65 20 73 75 70 70 6f 72 74 65 ersions.3,.5,.and.8.are.supporte
2b00 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 d."...(interactive....(list.....
2b20 28 69 66 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 20 20 20 20 (if.malyon-story-file.nil.......
2b40 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 53 74 6f 72 79 20 66 69 6c 65 20 6e 61 6d 65 (read-file-name."Story.file.name
2b60 3a 20 22 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 69 65 73 2d 64 69 72 65 63 74 6f 72 79 20 6e 69 6c :.".malyon-stories-directory.nil
2b80 20 74 29 29 29 29 0a 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 0a 20 .t))))...(if.malyon-story-file..
2ba0 20 20 20 20 20 28 69 66 20 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 28 65 72 .....(if.file-name...........(er
2bc0 72 6f 72 20 22 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 79 20 70 6c 61 79 69 6e 67 20 61 20 67 ror."You.are.already.playing.a.g
2be0 61 6d 65 2e 22 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 29 29 ame.").........(malyon-restore))
2c00 0a 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 77 65 27 72 65 20 73 74 61 72 74 69 6e .....;;.Otherwise,.we're.startin
2c20 67 20 61 20 6e 65 77 20 67 61 6d 65 3a 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 73 g.a.new.game:.....(cond......((s
2c40 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 5c 5c 28 3f 3a 7a 3f 62 6c 6f 72 62 5c 5c 7c 62 tring-match."\\.\\(?:z?blorb\\|b
2c60 6c 62 5c 5c 7c 7a 6c 62 5c 5c 29 24 22 20 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 lb\\|zlb\\)$".file-name).......(
2c80 6d 61 6c 79 6f 6e 2d 6c 6f 61 64 2d 62 6c 6f 72 62 2d 66 69 6c 65 20 66 69 6c 65 2d 6e 61 6d 65 malyon-load-blorb-file.file-name
2ca0 29 29 0a 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 7a 5b 33 35 38 ))......((string-match."\\.z[358
2cc0 5d 24 22 20 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 68 69 64 ]$".file-name).......(malyon-hid
2ce0 65 2d 69 6e 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 20 22 6c 6f 61 64 69 6e 67 20 6f 66 20 73 74 e-internal-errors."loading.of.st
2d00 6f 72 79 20 66 69 6c 65 20 66 61 69 6c 65 64 2e 22 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f ory.file.failed.".........(malyo
2d20 6e 2d 6c 6f 61 64 2d 73 74 6f 72 79 2d 66 69 6c 65 20 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 n-load-story-file.file-name)))..
2d40 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 25 73 20 69 73 20 6e 6f 74 20 61 ....(t.......(error."%s.is.not.a
2d60 20 76 65 72 73 69 6f 6e 20 33 2c 20 35 2c 20 6f 72 20 38 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 .version.3,.5,.or.8.story.file."
2d80 20 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 .file-name))).....(setq.malyon-s
2da0 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d tory-version.(aref.malyon-story-
2dc0 66 69 6c 65 20 30 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6d 65 6d 71 20 6d 61 6c 79 6f 6e file.0)).....(cond.((memq.malyon
2de0 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 6d 61 6c 79 6f 6e 2d 73 75 70 70 6f 72 74 65 64 2d -story-version.malyon-supported-
2e00 76 65 72 73 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 68 69 64 versions)............(malyon-hid
2e20 65 2d 69 6e 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 20 22 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f e-internal-errors."initializatio
2e40 6e 20 6f 66 20 69 6e 74 65 72 70 72 65 74 65 72 20 66 61 69 6c 65 64 2e 22 0a 20 20 20 20 20 20 n.of.interpreter.failed.".......
2e60 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 7a 65 29 29 0a 20 20 20 20 .......(malyon-initialize)).....
2e80 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 74 65 72 70 72 65 74 65 72 29 29 0a 20 20 20 .......(malyon-interpreter))....
2ea0 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 .......(t............(message."%
2ec0 73 20 69 73 20 6e 6f 74 20 61 20 76 65 72 73 69 6f 6e 20 33 2c 20 35 2c 20 6f 72 20 38 20 73 74 s.is.not.a.version.3,.5,.or.8.st
2ee0 6f 72 79 20 66 69 6c 65 2e 22 20 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 ory.file.".file-name)...........
2f00 20 28 6d 61 6c 79 6f 6e 2d 63 6c 65 61 6e 75 70 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 .(malyon-cleanup)))))..(defun.ma
2f20 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 20 28 29 0a 20 20 22 52 65 73 74 6f 72 65 20 74 68 65 20 73 lyon-restore.()..."Restore.the.s
2f40 61 76 65 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 ave.window.configuration.for.the
2f60 20 69 6e 74 65 72 70 72 65 74 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 .interpreter."...(interactive)..
2f80 20 28 6d 61 6c 79 6f 6e 2d 68 69 64 65 2d 69 6e 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 20 22 72 .(malyon-hide-internal-errors."r
2fa0 65 73 74 6f 72 69 6e 67 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 61 estoring.window.configuration.fa
2fc0 69 6c 65 64 2e 22 0a 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d iled.".....(progn.......(malyon-
2fe0 72 65 73 74 6f 72 65 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 0a 20 20 restore-window-configuration)...
3000 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 6a 75 73 74 2d 74 72 61 6e 73 63 72 69 70 74 29 29 29 ....(malyon-adjust-transcript)))
3020 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 71 75 69 74 20 28 29 0a 20 20 22 45 78 69 74 )..(defun.malyon-quit.()..."Exit
3040 20 74 68 65 20 6d 61 6c 79 6f 6e 20 69 6e 74 65 72 70 72 65 74 65 72 2e 22 0a 20 20 28 69 6e 74 .the.malyon.interpreter."...(int
3060 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c eractive)...(if.malyon-story-fil
3080 65 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 e.......(progn.........(malyon-r
30a0 65 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 61 6c 79 6f 6e 2d 79 65 73 2d estore).........(if.(malyon-yes-
30c0 6f 72 2d 6e 6f 2d 70 2d 6d 69 6e 69 62 75 66 20 22 44 6f 20 79 6f 75 20 72 65 61 6c 6c 79 20 77 or-no-p-minibuf."Do.you.really.w
30e0 61 6e 74 20 74 6f 20 71 75 69 74 3f 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c ant.to.quit?.").............(mal
3100 79 6f 6e 2d 63 6c 65 61 6e 75 70 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 yon-cleanup)))))..;;;###autoload
3120 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6d 6f 64 65 20 28 29 0a 20 20 22 54 68 69 73 20 6d .(defun.malyon-mode.()..."This.m
3140 6f 64 65 20 70 72 6f 76 69 64 65 73 20 61 20 62 61 73 69 63 20 69 6e 74 65 72 70 72 65 74 65 72 ode.provides.a.basic.interpreter
3160 20 66 6f 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 35 2c 20 38 20 5a 2d 63 6f 64 65 0a 73 74 6f 72 .for.version.3,.5,.8.Z-code.stor
3180 79 20 66 69 6c 65 73 20 61 73 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 49 6e 66 6f 72 6d 20 28 y.files.as.generated.by.Inform.(
31a0 43 29 20 47 72 61 68 61 6d 20 4e 65 6c 73 6f 6e 20 61 6e 64 20 49 6e 66 6f 63 6f 6d 2e 0a 0a 4e C).Graham.Nelson.and.Infocom...N
31c0 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 73 20 62 79 20 6e 6f 20 6d ote.that.this.package.is.by.no.m
31e0 65 61 6e 73 20 63 6f 6d 70 6c 65 74 65 20 61 6e 64 20 62 75 67 20 66 72 65 65 2e 0a 49 66 20 79 eans.complete.and.bug.free..If.y
3200 6f 75 20 65 6e 63 6f 75 6e 74 65 72 20 61 20 62 75 67 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 ou.encounter.a.bug.please.send.a
3220 20 72 65 70 6f 72 74 20 74 6f 20 50 65 74 65 72 20 49 6c 62 65 72 67 20 61 74 0a 70 65 74 65 72 .report.to.Peter.Ilberg.at.peter
3240 2e 69 6c 62 65 72 67 40 6e 61 74 69 6e 73 74 2e 63 6f 6d 2e 20 54 68 61 6e 6b 20 79 6f 75 21 0a .ilberg@natinst.com..Thank.you!.
3260 0a 54 6f 20 70 6c 61 79 20 61 20 73 74 6f 72 79 20 66 69 6c 65 20 73 69 6d 70 6c 65 20 74 79 70 .To.play.a.story.file.simple.typ
3280 65 20 4d 2d 78 20 6d 61 6c 79 6f 6e 20 61 6e 64 20 65 6e 74 65 72 20 74 68 65 20 70 61 74 68 20 e.M-x.malyon.and.enter.the.path.
32a0 74 6f 20 74 68 65 0a 73 74 6f 72 79 20 66 69 6c 65 2e 20 49 66 20 61 6e 79 74 68 69 6e 67 20 67 to.the.story.file..If.anything.g
32c0 6f 65 73 20 77 72 6f 6e 67 20 61 6e 64 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6d 61 6e 75 61 6c oes.wrong.and.you.want.to.manual
32e0 6c 79 20 63 6c 65 61 6e 0a 75 70 20 74 79 70 65 20 4d 2d 78 20 6d 61 6c 79 6f 6e 2d 71 75 69 74 ly.clean.up.type.M-x.malyon-quit
3300 2e 20 49 6e 20 61 64 64 69 74 69 6f 6e 2c 20 79 6f 75 20 63 61 6e 20 73 77 69 74 63 68 20 62 61 ..In.addition,.you.can.switch.ba
3320 63 6b 20 74 6f 20 61 20 67 61 6d 65 20 69 6e 0a 70 72 6f 67 72 65 73 73 20 62 79 20 74 79 70 69 ck.to.a.game.in.progress.by.typi
3340 6e 67 20 4d 2d 78 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2e 0a 0a 54 68 65 20 61 75 74 68 ng.M-x.malyon-restore...The.auth
3360 6f 72 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 74 68 61 6e 6b 20 74 68 65 20 66 6f 6c 6c 6f or.would.like.to.thank.the.follo
3380 77 69 6e 67 20 70 65 6f 70 6c 65 20 66 6f 72 20 72 65 70 6f 72 74 69 6e 67 0a 62 75 67 73 2c 20 wing.people.for.reporting.bugs,.
33a0 74 65 73 74 69 6e 67 2c 20 73 75 67 67 65 73 74 69 6e 67 20 61 6e 64 2f 6f 72 20 63 6f 6e 74 72 testing,.suggesting.and/or.contr
33c0 69 62 75 74 69 6e 67 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 3a 0a 20 20 20 20 42 65 72 6e 68 61 ibuting.improvements:.....Bernha
33e0 72 64 20 42 61 72 64 65 2c 20 4a 6f 6e 61 74 68 61 6e 20 43 72 61 76 65 6e 2c 20 41 6c 62 65 72 rd.Barde,.Jonathan.Craven,.Alber
3400 74 6f 20 50 65 74 72 6f 66 73 6b 79 2c 20 41 6c 61 6e 20 53 68 75 74 6b 6f 22 0a 20 20 28 6d 65 to.Petrofsky,.Alan.Shutko"...(me
3420 73 73 61 67 65 20 22 55 73 65 20 4d 2d 78 20 6d 61 6c 79 6f 6e 20 69 66 20 79 6f 75 20 77 61 6e ssage."Use.M-x.malyon.if.you.wan
3440 74 20 74 6f 20 70 6c 61 79 20 61 20 7a 63 6f 64 65 20 67 61 6d 65 2e 22 29 29 0a 0a 3b 3b 20 63 t.to.play.a.zcode.game."))..;;.c
3460 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 47 4e 55 20 65 ompatibility.functions.for.GNU.e
3480 6d 61 63 73 0a 3b 3b 20 6e 75 6b 65 64 20 31 32 2f 34 2f 31 36 20 62 79 20 65 72 69 6b 40 73 65 macs.;;.nuked.12/4/16.by.erik@se
34a0 6c 62 65 72 67 2e 6f 72 67 20 2d 2d 2d 20 74 68 65 73 65 20 61 72 65 6e 27 74 20 6e 65 65 64 65 lberg.org.---.these.aren't.neede
34c0 64 0a 0a 3b 3b 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 61 64 72 29 0a 3b 3b 20 20 20 20 d..;;.(if.(fboundp.'cadr).;;....
34e0 20 28 64 65 66 61 6c 69 61 73 20 27 6d 61 6c 79 6f 6e 2d 63 61 64 72 20 27 63 61 64 72 29 0a 3b .(defalias.'malyon-cadr.'cadr).;
3500 3b 20 20 20 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 63 61 64 72 20 28 6c 69 73 74 29 0a 3b 3b ;...(defun.malyon-cadr.(list).;;
3520 20 20 20 20 20 22 54 61 6b 65 20 74 68 65 20 63 61 64 72 20 6f 66 20 74 68 65 20 6c 69 73 74 2e ....."Take.the.cadr.of.the.list.
3540 22 0a 3b 3b 20 20 20 20 20 28 63 61 72 20 28 63 64 72 20 6c 69 73 74 29 29 29 29 0a 0a 3b 3b 20 ".;;.....(car.(cdr.list))))..;;.
3560 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 61 64 64 72 29 0a 3b 3b 20 20 20 20 20 28 64 65 66 (if.(fboundp.'caddr).;;.....(def
3580 61 6c 69 61 73 20 27 6d 61 6c 79 6f 6e 2d 63 61 64 64 72 20 27 63 61 64 64 72 29 0a 3b 3b 20 20 alias.'malyon-caddr.'caddr).;;..
35a0 20 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 63 61 64 64 72 20 28 6c 69 73 74 29 0a 3b 3b 20 20 .(defun.malyon-caddr.(list).;;..
35c0 20 20 20 22 54 61 6b 65 20 74 68 65 20 63 61 64 64 72 20 6f 66 20 74 68 65 20 6c 69 73 74 2e 22 ..."Take.the.caddr.of.the.list."
35e0 0a 3b 3b 20 20 20 20 20 28 63 61 72 20 28 63 64 72 20 28 63 64 72 20 6c 69 73 74 29 29 29 29 29 .;;.....(car.(cdr.(cdr.list)))))
3600 0a 0a 3b 3b 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 64 64 64 72 29 0a 3b 3b 20 20 20 20 ..;;.(if.(fboundp.'cdddr).;;....
3620 20 28 64 65 66 61 6c 69 61 73 20 27 6d 61 6c 79 6f 6e 2d 63 64 64 64 72 20 27 63 64 64 64 72 29 .(defalias.'malyon-cdddr.'cdddr)
3640 0a 3b 3b 20 20 20 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 63 64 64 64 72 20 28 6c 69 73 74 29 .;;...(defun.malyon-cdddr.(list)
3660 0a 3b 3b 20 20 20 20 20 22 54 61 6b 65 20 74 68 65 20 63 64 64 64 72 20 6f 66 20 74 68 65 20 6c .;;....."Take.the.cdddr.of.the.l
3680 69 73 74 2e 22 0a 3b 3b 20 20 20 20 20 28 63 64 72 20 28 63 64 72 20 28 63 64 72 20 6c 69 73 74 ist.".;;.....(cdr.(cdr.(cdr.list
36a0 29 29 29 29 29 0a 0a 3b 3b 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 68 61 72 2d 62 65 66 )))))..;;.(if.(fboundp.'char-bef
36c0 6f 72 65 29 0a 3b 3b 20 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 6d 61 6c 79 6f 6e 2d 63 68 ore).;;.....(defalias.'malyon-ch
36e0 61 72 2d 62 65 66 6f 72 65 20 27 63 68 61 72 2d 62 65 66 6f 72 65 29 0a 3b 3b 20 20 20 28 64 65 ar-before.'char-before).;;...(de
3700 66 75 6e 20 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 62 65 66 6f 72 65 20 28 29 0a 3b 3b 20 20 20 20 fun.malyon-char-before.().;;....
3720 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 62 65 66 6f 72 65 20 74 68 ."Return.the.character.before.th
3740 65 20 70 6f 69 6e 74 2e 22 0a 3b 3b 20 20 20 20 20 28 63 68 61 72 2d 61 66 74 65 72 20 28 2d 20 e.point.".;;.....(char-after.(-.
3760 28 70 6f 69 6e 74 29 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 63 68 61 (point).1))))..(defun.malyon-cha
3780 72 2d 74 6f 2d 69 6e 74 20 28 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 63 68 61 72 61 63 r-to-int.(c)..."Convert.a.charac
37a0 74 65 72 20 69 6e 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 2e 22 0a 20 20 28 69 66 20 28 66 62 6f ter.into.an.integer."...(if.(fbo
37c0 75 6e 64 70 20 27 63 68 61 72 2d 74 6f 2d 69 6e 74 29 0a 20 20 20 20 20 20 28 63 68 61 72 2d 74 undp.'char-to-int).......(char-t
37e0 6f 2d 69 6e 74 20 63 29 0a 20 20 20 20 63 29 29 0a 0a 3b 3b 20 28 69 66 20 28 66 62 6f 75 6e 64 o-int.c).....c))..;;.(if.(fbound
3800 70 20 27 63 68 61 72 61 63 74 65 72 70 29 0a 3b 3b 20 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 p.'characterp).;;.....(defalias.
3820 27 6d 61 6c 79 6f 6e 2d 63 68 61 72 61 63 74 65 72 70 20 27 63 68 61 72 61 63 74 65 72 70 29 0a 'malyon-characterp.'characterp).
3840 3b 3b 20 20 20 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 63 68 61 72 61 63 74 65 72 70 20 28 78 ;;...(defun.malyon-characterp.(x
3860 29 0a 3b 3b 20 20 20 20 20 22 54 65 73 74 20 66 6f 72 20 61 20 63 68 61 72 61 63 74 65 72 2e 22 ).;;....."Test.for.a.character."
3880 0a 3b 3b 20 20 20 20 20 28 61 6e 64 20 28 6e 75 6d 62 65 72 70 20 78 29 20 28 3c 3d 20 30 20 78 .;;.....(and.(numberp.x).(<=.0.x
38a0 29 20 28 3c 20 78 20 32 35 36 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 64 69 ).(<.x.256))))..(defun.malyon-di
38c0 73 61 62 6c 65 2d 6d 75 6c 74 69 62 79 74 65 20 28 29 0a 20 20 22 44 69 73 61 62 6c 65 20 6d 75 sable-multibyte.()..."Disable.mu
38e0 6c 74 69 62 79 74 65 20 73 75 70 70 6f 72 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 ltibyte.support.in.the.current.b
3900 75 66 66 65 72 2e 22 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 20 28 73 uffer."...(condition-case.nil.(s
3920 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 20 28 65 72 72 6f 72 29 et-buffer-multibyte.nil).(error)
3940 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 65 72 61 73 65 2d 62 75 66 66 65 72 20 28 ))..(defun.malyon-erase-buffer.(
3960 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 66 65 72 29 0a 20 20 22 45 72 61 73 65 20 74 68 65 20 67 &optional.buffer)..."Erase.the.g
3980 69 76 65 6e 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a iven.buffer."...(save-excursion.
39a0 20 20 20 20 28 69 66 20 62 75 66 66 65 72 20 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 ....(if.buffer.(set-buffer.buffe
39c0 72 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 62 75 66 66 65 72 20 28 65 71 20 62 75 66 66 r)).....(if.(and.buffer.(eq.buff
39e0 65 72 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 29 29 0a 20 20 er.malyon-transcript-buffer))...
3a00 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 62 65 67 69 6e 2d 73 65 63 74 69 6f 6e 29 0a 20 20 20 ......(malyon-begin-section)....
3a20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c ...(erase-buffer))))..(defun.mal
3a40 79 6f 6e 2d 69 6e 74 2d 74 6f 2d 63 68 61 72 20 28 69 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 yon-int-to-char.(i)..."Convert.a
3a60 6e 20 69 6e 74 65 67 65 72 20 69 6e 74 6f 20 61 20 63 68 61 72 61 63 74 65 72 2e 22 0a 20 20 28 n.integer.into.a.character."...(
3a80 69 66 20 28 66 62 6f 75 6e 64 70 20 27 69 6e 74 2d 74 6f 2d 63 68 61 72 29 0a 20 20 20 20 28 69 if.(fboundp.'int-to-char).....(i
3aa0 6e 74 2d 74 6f 2d 63 68 61 72 20 69 29 0a 20 20 20 20 69 29 29 0a 0a 3b 3b 20 28 69 66 20 28 66 nt-to-char.i).....i))..;;.(if.(f
3ac0 62 6f 75 6e 64 70 20 27 6d 61 70 63 29 0a 3b 3b 20 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 boundp.'mapc).;;.....(defalias.'
3ae0 6d 61 6c 79 6f 6e 2d 6d 61 70 63 20 27 6d 61 70 63 29 0a 3b 3b 20 20 20 28 64 65 66 75 6e 20 6d malyon-mapc.'mapc).;;...(defun.m
3b00 61 6c 79 6f 6e 2d 6d 61 70 63 20 28 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 29 0a 3b 3b 20 20 20 alyon-mapc.(function.list).;;...
3b20 20 20 22 41 70 70 6c 79 20 66 75 6e 20 74 6f 20 65 76 65 72 79 20 65 6c 65 6d 65 6e 74 20 6f 66 .."Apply.fun.to.every.element.of
3b40 20 61 72 67 73 20 69 67 6e 6f 72 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 73 2e 22 0a 3b 3b 20 .args.ignoring.the.results.".;;.
3b60 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 6c 69 73 74 29 0a 3b 3b 20 09 27 28 29 0a 3b 3b 20 20 ....(if.(null.list).;;..'().;;..
3b80 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 20 28 63 61 72 20 6c 69 73 74 .....(funcall.function.(car.list
3ba0 29 29 0a 3b 3b 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6d 61 70 63 20 66 75 6e 63 74 69 6f )).;;.......(malyon-mapc.functio
3bc0 6e 20 28 63 64 72 20 6c 69 73 74 29 29 29 29 29 0a 0a 3b 3b 20 28 69 66 20 28 66 62 6f 75 6e 64 n.(cdr.list)))))..;;.(if.(fbound
3be0 70 20 27 6d 61 70 63 61 6e 29 0a 3b 3b 20 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 6d 61 6c p.'mapcan).;;.....(defalias.'mal
3c00 79 6f 6e 2d 6d 61 70 63 61 6e 20 27 6d 61 70 63 61 6e 29 0a 3b 3b 20 20 20 28 64 65 66 75 6e 20 yon-mapcan.'mapcan).;;...(defun.
3c20 6d 61 6c 79 6f 6e 2d 6d 61 70 63 61 6e 20 28 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 29 0a 3b 3b malyon-mapcan.(function.list).;;
3c40 20 20 20 20 20 22 41 70 70 6c 79 20 66 75 6e 20 74 6f 20 65 76 65 72 79 20 65 6c 65 6d 65 6e 74 ....."Apply.fun.to.every.element
3c60 20 6f 66 20 61 72 67 73 20 6e 63 6f 6e 63 27 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 2e 22 0a .of.args.nconc'ing.the.result.".
3c80 3b 3b 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 6c 69 73 74 29 0a 3b 3b 20 09 27 28 29 0a 3b ;;.....(if.(null.list).;;..'().;
3ca0 3b 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 74 69 6f 6e ;.......(nconc.(funcall.function
3cc0 20 28 63 61 72 20 6c 69 73 74 29 29 0a 3b 3b 20 09 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6d 61 .(car.list)).;;.......(malyon-ma
3ce0 70 63 61 6e 20 66 75 6e 63 74 69 6f 6e 20 28 63 64 72 20 6c 69 73 74 29 29 29 29 29 29 0a 0a 0a pcan.function.(cdr.list))))))...
3d00 3b 20 44 6f 20 6e 6f 74 20 75 73 65 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 63 6f 6e 76 65 72 ;.Do.not.use.the.built-in.conver
3d20 73 69 6f 6e 20 76 69 61 20 27 6d 75 6c 74 69 62 79 74 65 2d 63 68 61 72 2d 74 6f 2d 75 6e 69 62 sion.via.'multibyte-char-to-unib
3d40 79 74 65 2e 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6d 75 6c 74 69 62 79 74 65 2d 63 68 61 yte..(defun.malyon-multibyte-cha
3d60 72 2d 74 6f 2d 75 6e 69 62 79 74 65 20 28 63 68 61 72 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 r-to-unibyte.(char)..."Convert.a
3d80 20 6d 75 6c 74 69 62 79 74 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 75 6e 69 62 79 74 65 2e .multibyte.character.to.unibyte.
3da0 22 0a 20 20 63 68 61 72 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 70 6f 69 6e 74 2d 6d "...char)..(defun.malyon-point-m
3dc0 61 78 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 66 65 72 29 0a 20 20 22 47 65 74 20 74 68 65 ax.(&optional.buffer)..."Get.the
3de0 20 70 6f 69 6e 74 2d 6d 61 78 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 62 75 66 66 65 72 2e 22 .point-max.of.the.given.buffer."
3e00 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 69 66 20 62 75 66 66 65 ...(save-excursion.....(if.buffe
3e20 72 20 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 70 6f 69 6e r.(set-buffer.buffer)).....(poin
3e40 74 2d 6d 61 78 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 64 69 73 70 6c 61 t-max)))..(defun.malyon-redispla
3e60 79 2d 66 72 61 6d 65 20 28 66 72 61 6d 65 20 26 72 65 73 74 20 69 67 6e 6f 72 65 29 0a 20 20 22 y-frame.(frame.&rest.ignore)..."
3e80 52 65 64 69 73 70 6c 61 79 20 74 68 65 20 67 69 76 65 6e 20 66 72 61 6d 65 2e 22 0a 20 20 28 69 Redisplay.the.given.frame."...(i
3ea0 66 20 28 66 62 6f 75 6e 64 70 20 27 72 65 64 69 73 70 6c 61 79 2d 66 72 61 6d 65 29 0a 20 20 20 f.(fboundp.'redisplay-frame)....
3ec0 20 20 20 28 72 65 64 69 73 70 6c 61 79 2d 66 72 61 6d 65 20 66 72 61 6d 65 20 69 67 6e 6f 72 65 ...(redisplay-frame.frame.ignore
3ee0 29 29 29 0a 0a 0a 3b 3b 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 72 65 6d 6f 76 65 29 0a 3b )))...;;.(if.(fboundp.'remove).;
3f00 3b 20 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 6d 61 6c 79 6f 6e 2d 72 65 6d 6f 76 65 20 27 ;.....(defalias.'malyon-remove.'
3f20 72 65 6d 6f 76 65 29 0a 3b 3b 20 20 20 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 6d 6f 76 remove).;;...(defun.malyon-remov
3f40 65 20 28 65 6c 65 6d 65 6e 74 20 6c 69 73 74 29 0a 3b 3b 20 20 20 20 20 22 52 65 6d 6f 76 65 20 e.(element.list).;;....."Remove.
3f60 74 68 65 20 65 6c 65 6d 65 6e 74 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 2e 22 0a 3b 3b 20 20 the.element.from.the.list.".;;..
3f80 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 6c 69 73 74 29 0a 3b 3b 20 09 20 20 20 27 28 29 ...(cond.((null.list).;;.....'()
3fa0 29 0a 3b 3b 20 09 20 20 28 28 65 71 20 65 6c 65 6d 65 6e 74 20 28 63 61 72 20 6c 69 73 74 29 29 ).;;....((eq.element.(car.list))
3fc0 0a 3b 3b 20 09 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 6d 6f 76 65 20 65 6c 65 6d 65 6e 74 20 28 .;;.....(malyon-remove.element.(
3fe0 63 64 72 20 6c 69 73 74 29 29 29 0a 3b 3b 20 09 20 20 28 28 65 71 75 61 6c 20 65 6c 65 6d 65 6e cdr.list))).;;....((equal.elemen
4000 74 20 28 63 61 72 20 6c 69 73 74 29 29 0a 3b 3b 20 09 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 6d t.(car.list)).;;.....(malyon-rem
4020 6f 76 65 20 65 6c 65 6d 65 6e 74 20 28 63 64 72 20 6c 69 73 74 29 29 29 0a 3b 3b 20 09 20 20 28 ove.element.(cdr.list))).;;....(
4040 74 0a 3b 3b 20 09 20 20 20 28 63 6f 6e 73 20 28 63 61 72 20 6c 69 73 74 29 0a 3b 3b 20 09 09 20 t.;;.....(cons.(car.list).;;....
4060 28 6d 61 6c 79 6f 6e 2d 72 65 6d 6f 76 65 20 65 6c 65 6d 65 6e 74 20 28 63 64 72 20 6c 69 73 74 (malyon-remove.element.(cdr.list
4080 29 29 29 29 29 29 29 0a 0a 3b 3b 20 6c 65 67 61 63 79 20 74 68 69 6e 67 2e 2e 2e 20 6e 6f 72 6d )))))))..;;.legacy.thing....norm
40a0 61 6c 6c 79 20 74 68 69 73 20 69 73 20 61 20 6e 6f 6f 70 20 66 6f 72 20 46 53 46 20 45 6d 61 63 ally.this.is.a.noop.for.FSF.Emac
40c0 73 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 65 74 2d 6b 65 79 6d 61 70 2d 6e 61 6d 65 20 s.(defun.malyon-set-keymap-name.
40e0 28 6b 65 79 6d 61 70 20 6e 61 6d 65 29 0a 20 20 22 53 65 74 20 74 68 65 20 6e 61 6d 65 20 6f 66 (keymap.name)..."Set.the.name.of
4100 20 74 68 65 20 6b 65 79 6d 61 70 2e 22 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 73 65 .the.keymap."...(if.(fboundp.'se
4120 74 2d 6b 65 79 6d 61 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 73 65 74 2d 6b 65 79 6d 61 70 t-keymap-name).......(set-keymap
4140 2d 6e 61 6d 65 20 6b 65 79 6d 61 70 20 6e 61 6d 65 29 29 29 0a 0a 3b 3b 20 28 69 66 20 28 66 62 -name.keymap.name)))..;;.(if.(fb
4160 6f 75 6e 64 70 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 29 0a 3b 3b 20 20 20 20 20 28 64 oundp.'string-to-list).;;.....(d
4180 65 66 61 6c 69 61 73 20 27 6d 61 6c 79 6f 6e 2d 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 20 27 efalias.'malyon-string-to-list.'
41a0 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 29 0a 3b 3b 20 20 20 28 64 65 66 75 6e 20 6d 61 6c 79 string-to-list).;;...(defun.maly
41c0 6f 6e 2d 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 20 28 73 29 0a 3b 3b 20 20 20 20 20 22 43 6f on-string-to-list.(s).;;....."Co
41e0 6e 76 65 72 74 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 63 68 nvert.a.string.into.a.list.of.ch
4200 61 72 61 63 74 65 72 73 2e 22 0a 3b 3b 20 20 20 20 20 28 6c 65 74 20 28 28 69 20 28 2d 20 28 6c aracters.".;;.....(let.((i.(-.(l
4220 65 6e 67 74 68 20 73 29 20 31 29 29 20 28 6c 20 27 28 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 28 ength.s).1)).(l.'())).;;.......(
4240 77 68 69 6c 65 20 28 3c 3d 20 30 20 69 29 0a 3b 3b 20 09 28 73 65 74 71 20 6c 20 28 63 6f 6e 73 while.(<=.0.i).;;..(setq.l.(cons
4260 20 28 61 72 65 66 20 73 20 69 29 20 6c 29 0a 3b 3b 20 09 20 20 20 20 20 20 69 20 28 2d 20 69 20 .(aref.s.i).l).;;........i.(-.i.
4280 31 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 6c 29 29 29 0a 0a 3b 3b 20 28 69 66 20 28 66 62 6f 75 1))).;;.......l)))..;;.(if.(fbou
42a0 6e 64 70 20 27 73 74 72 69 6e 67 2d 74 6f 2d 76 65 63 74 6f 72 29 0a 3b 3b 20 20 20 20 20 28 64 ndp.'string-to-vector).;;.....(d
42c0 65 66 61 6c 69 61 73 20 27 6d 61 6c 79 6f 6e 2d 73 74 72 69 6e 67 2d 74 6f 2d 76 65 63 74 6f 72 efalias.'malyon-string-to-vector
42e0 20 27 73 74 72 69 6e 67 2d 74 6f 2d 76 65 63 74 6f 72 29 0a 3b 3b 20 20 20 28 64 65 66 75 6e 20 .'string-to-vector).;;...(defun.
4300 6d 61 6c 79 6f 6e 2d 73 74 72 69 6e 67 2d 74 6f 2d 76 65 63 74 6f 72 20 28 73 29 0a 3b 3b 20 20 malyon-string-to-vector.(s).;;..
4320 20 20 20 22 43 6f 6e 76 65 72 74 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 76 65 63 74 ..."Convert.a.string.into.a.vect
4340 6f 72 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 2e 22 0a 3b 3b 20 20 20 20 20 28 6c 65 74 2a 20 or.of.characters.".;;.....(let*.
4360 28 28 69 20 30 29 20 28 6c 20 28 6c 65 6e 67 74 68 20 73 29 29 20 28 76 20 28 6d 61 6b 65 2d 76 ((i.0).(l.(length.s)).(v.(make-v
4380 65 63 74 6f 72 20 6c 20 30 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 ector.l.0))).;;.......(while.(<.
43a0 69 20 6c 29 0a 3b 3b 20 09 28 61 73 65 74 20 76 20 69 20 28 61 72 65 66 20 73 20 69 29 29 0a 3b i.l).;;..(aset.v.i.(aref.s.i)).;
43c0 3b 20 09 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 76 29 ;..(setq.i.(+.1.i))).;;.......v)
43e0 29 29 0a 0a 3b 20 44 6f 20 6e 6f 74 20 75 73 65 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 63 6f ))..;.Do.not.use.the.built-in.co
4400 6e 76 65 72 73 69 6f 6e 20 76 69 61 20 27 75 6e 69 62 79 74 65 2d 63 68 61 72 2d 74 6f 2d 6d 75 nversion.via.'unibyte-char-to-mu
4420 6c 74 69 62 79 74 65 2e 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 75 6e 69 62 79 74 65 2d 63 ltibyte..(defun.malyon-unibyte-c
4440 68 61 72 2d 74 6f 2d 6d 75 6c 74 69 62 79 74 65 20 28 63 68 61 72 29 0a 20 20 22 43 6f 6e 76 65 har-to-multibyte.(char)..."Conve
4460 72 74 20 61 20 75 6e 69 62 79 74 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 6d 75 6c 74 69 62 rt.a.unibyte.character.to.multib
4480 79 74 65 2e 22 0a 20 20 63 68 61 72 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 76 65 63 yte."...char)..(defun.malyon-vec
44a0 74 6f 72 2d 74 6f 2d 6c 69 73 74 20 28 76 20 62 65 67 69 6e 20 65 6e 64 29 0a 20 20 22 52 65 74 tor-to-list.(v.begin.end)..."Ret
44c0 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 76 20 69 6e 20 74 urn.a.list.of.elements.in.v.in.t
44e0 68 65 20 72 61 6e 67 65 20 5b 62 65 67 69 6e 2c 20 65 6e 64 29 2e 22 0a 20 20 28 6c 65 74 20 28 he.range.[begin,.end)."...(let.(
4500 28 72 65 73 75 6c 74 20 27 28 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 62 65 67 69 (result.'())).....(while.(<.begi
4520 6e 20 65 6e 64 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6f 6e 73 20 n.end).......(setq.result.(cons.
4540 28 61 72 65 66 20 76 20 62 65 67 69 6e 29 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 28 73 (aref.v.begin).result)).......(s
4560 65 74 71 20 62 65 67 69 6e 20 28 2b 20 31 20 62 65 67 69 6e 29 29 29 0a 20 20 20 20 28 72 65 76 etq.begin.(+.1.begin))).....(rev
4580 65 72 73 65 20 72 65 73 75 6c 74 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 77 erse.result)))...(defun.malyon-w
45a0 69 6e 64 6f 77 2d 64 69 73 70 6c 61 79 65 64 2d 68 65 69 67 68 74 20 28 26 6f 70 74 69 6f 6e 61 indow-displayed-height.(&optiona
45c0 6c 20 77 69 6e 64 6f 77 29 0a 20 20 22 47 65 74 20 74 68 65 20 68 65 69 67 68 74 20 6f 66 20 74 l.window)..."Get.the.height.of.t
45e0 68 65 20 77 69 6e 64 6f 77 27 73 20 64 69 73 70 6c 61 79 65 64 20 72 65 67 69 6f 6e 2e 22 0a 20 he.window's.displayed.region."..
4600 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 77 69 6e 64 6f 77 2d 64 69 73 70 6c 61 79 65 64 2d .(if.(fboundp.'window-displayed-
4620 68 65 69 67 68 74 29 0a 20 20 20 20 20 20 28 77 69 6e 64 6f 77 2d 64 69 73 70 6c 61 79 65 64 2d height).......(window-displayed-
4640 68 65 69 67 68 74 20 77 69 6e 64 6f 77 29 0a 20 20 20 20 28 2d 20 28 77 69 6e 64 6f 77 2d 68 65 height.window).....(-.(window-he
4660 69 67 68 74 29 20 31 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 79 65 73 2d 6f 72 ight).1)))..(defun.malyon-yes-or
4680 2d 6e 6f 2d 70 2d 6d 69 6e 69 62 75 66 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 41 73 6b 20 61 20 -no-p-minibuf.(prompt)..."Ask.a.
46a0 79 65 73 20 6f 72 20 6e 6f 20 71 75 65 73 74 69 6f 6e 2e 22 0a 20 20 28 69 66 20 28 66 62 6f 75 yes.or.no.question."...(if.(fbou
46c0 6e 64 70 20 27 79 65 73 2d 6f 72 2d 6e 6f 2d 70 2d 6d 69 6e 69 62 75 66 29 0a 20 20 20 20 20 20 ndp.'yes-or-no-p-minibuf).......
46e0 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 2d 6d 69 6e 69 62 75 66 20 70 72 6f 6d 70 74 29 0a 20 20 20 (yes-or-no-p-minibuf.prompt)....
4700 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 20 70 72 6f 6d 70 74 29 29 29 0a 0a 3b 3b 20 67 6c 6f 62 .(yes-or-no-p.prompt)))..;;.glob
4720 61 6c 20 76 61 72 69 61 62 6c 65 73 20 66 6f 72 20 74 68 65 20 6d 61 6c 79 6f 6e 20 6d 6f 64 65 al.variables.for.the.malyon.mode
4740 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 6e 69 ..(defvar.malyon-syntax-table.ni
4760 6c 0a 20 20 22 53 79 6e 74 61 78 20 74 61 62 6c 65 20 75 73 65 64 20 77 68 69 6c 65 20 69 6e 20 l..."Syntax.table.used.while.in.
4780 6d 61 6c 79 6f 6e 20 6d 6f 64 65 20 28 73 61 6d 65 20 61 73 20 69 6e 20 74 65 78 74 2d 6d 6f 64 malyon.mode.(same.as.in.text-mod
47a0 65 29 2e 22 29 0a 0a 28 69 66 20 6d 61 6c 79 6f 6e 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 0a 20 e).")..(if.malyon-syntax-table..
47c0 20 20 20 27 28 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 79 6e 74 61 78 2d 74 61 62 ...'()...(setq.malyon-syntax-tab
47e0 6c 65 20 28 6d 61 6b 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 0a 20 20 28 6d 6f 64 69 66 le.(make-syntax-table))...(modif
4800 79 2d 73 79 6e 74 61 78 2d 65 6e 74 72 79 20 3f 5c 22 20 22 2e 20 20 20 22 20 6d 61 6c 79 6f 6e y-syntax-entry.?\"."....".malyon
4820 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 0a 20 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74 61 78 2d -syntax-table)...(modify-syntax-
4840 65 6e 74 72 79 20 3f 5c 5c 20 22 2e 20 20 20 22 20 6d 61 6c 79 6f 6e 2d 73 79 6e 74 61 78 2d 74 entry.?\\."....".malyon-syntax-t
4860 61 62 6c 65 29 0a 20 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74 61 78 2d 65 6e 74 72 79 20 3f 27 20 able)...(modify-syntax-entry.?'.
4880 20 22 77 20 20 20 22 20 6d 61 6c 79 6f 6e 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 0a 0a 28 ."w...".malyon-syntax-table))..(
48a0 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 6e 69 6c 0a 20 20 defvar.malyon-keymap-read.nil...
48c0 22 4b 65 79 6d 61 70 20 66 6f 72 20 6d 61 6c 79 6f 6e 20 6d 6f 64 65 20 66 6f 72 20 72 65 61 64 "Keymap.for.malyon.mode.for.read
48e0 69 6e 67 20 69 6e 70 75 74 20 69 6e 74 6f 20 61 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 ing.input.into.a.buffer.")..(def
4900 76 61 72 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 73 61 76 65 64 2d 75 70 20 6e 69 6c 0a var.malyon-history-saved-up.nil.
4920 20 20 22 54 68 65 20 73 61 76 65 64 20 62 69 6e 64 69 6e 67 20 66 6f 72 20 74 68 65 20 75 70 20 .."The.saved.binding.for.the.up.
4940 61 72 72 6f 77 20 6b 65 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 68 69 73 arrow.key.")..(defvar.malyon-his
4960 74 6f 72 79 2d 73 61 76 65 64 2d 64 6f 77 6e 20 6e 69 6c 0a 20 20 22 54 68 65 20 73 61 76 65 64 tory-saved-down.nil..."The.saved
4980 20 62 69 6e 64 69 6e 67 20 66 6f 72 20 74 68 65 20 64 6f 77 6e 20 61 72 72 6f 77 20 6b 65 79 2e .binding.for.the.down.arrow.key.
49a0 22 29 0a 0a 28 69 66 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 0a 20 20 20 20 27 ")..(if.malyon-keymap-read.....'
49c0 28 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 28 6d ()...(setq.malyon-keymap-read.(m
49e0 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 65 ake-sparse-keymap))...(malyon-se
4a00 74 2d 6b 65 79 6d 61 70 2d 6e 61 6d 65 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 t-keymap-name.malyon-keymap-read
4a20 20 27 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 29 0a 20 20 28 73 65 74 71 20 6d 61 .'malyon-keymap-read)...(setq.ma
4a40 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 73 61 76 65 64 2d 75 70 20 20 20 28 67 6c 6f 62 61 6c 2d lyon-history-saved-up...(global-
4a60 6b 65 79 2d 62 69 6e 64 69 6e 67 20 5b 75 70 5d 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f key-binding.[up]))...(setq.malyo
4a80 6e 2d 68 69 73 74 6f 72 79 2d 73 61 76 65 64 2d 64 6f 77 6e 20 28 67 6c 6f 62 61 6c 2d 6b 65 79 n-history-saved-down.(global-key
4aa0 2d 62 69 6e 64 69 6e 67 20 5b 64 6f 77 6e 5d 29 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 -binding.[down]))...(define-key.
4ac0 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 22 5c 72 22 20 20 20 20 20 20 20 20 27 malyon-keymap-read."\r"........'
4ae0 6d 61 6c 79 6f 6e 2d 65 6e 64 2d 69 6e 70 75 74 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 malyon-end-input)...(define-key.
4b00 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 5b 75 70 5d 20 20 20 20 20 20 20 20 27 malyon-keymap-read.[up]........'
4b20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 70 72 65 76 69 6f 75 73 2d 63 68 61 72 29 0a 20 20 malyon-history-previous-char)...
4b40 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 5b (define-key.malyon-keymap-read.[
4b60 64 6f 77 6e 5d 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 6e 65 78 74 2d down]......'malyon-history-next-
4b80 63 68 61 72 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 char)...(define-key.malyon-keyma
4ba0 70 2d 72 65 61 64 20 22 5c 4d 2d 70 22 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f p-read."\M-p"......'malyon-histo
4bc0 72 79 2d 70 72 65 76 69 6f 75 73 2d 63 68 61 72 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 ry-previous-char)...(define-key.
4be0 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 22 5c 4d 2d 6e 22 20 20 20 20 20 20 27 malyon-keymap-read."\M-n"......'
4c00 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 6e 65 78 74 2d 63 68 61 72 29 0a 20 20 28 64 65 66 malyon-history-next-char)...(def
4c20 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 22 5c 43 2d 61 ine-key.malyon-keymap-read."\C-a
4c40 22 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 "......'malyon-beginning-of-line
4c60 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 )...(define-key.malyon-keymap-re
4c80 61 64 20 22 5c 43 2d 77 22 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 6b 69 6c 6c 2d 72 65 67 69 ad."\C-w"......'malyon-kill-regi
4ca0 6f 6e 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d on)...(define-key.malyon-keymap-
4cc0 72 65 61 64 20 22 5c 43 2d 6b 22 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 6b 69 6c 6c 2d 6c 69 read."\C-k"......'malyon-kill-li
4ce0 6e 65 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d ne)...(define-key.malyon-keymap-
4d00 72 65 61 64 20 22 5c 4d 2d 64 22 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 6b 69 6c 6c 2d 77 6f read."\M-d"......'malyon-kill-wo
4d20 72 64 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d rd)...(define-key.malyon-keymap-
4d40 72 65 61 64 20 22 5c 43 2d 79 22 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 79 61 6e 6b 29 0a 20 read."\C-y"......'malyon-yank)..
4d60 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 .(define-key.malyon-keymap-read.
4d80 22 5c 4d 2d 79 22 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 79 61 6e 6b 2d 70 6f 70 29 0a 20 20 "\M-y"......'malyon-yank-pop)...
4da0 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 22 (define-key.malyon-keymap-read."
4dc0 5c 43 2d 64 22 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 64 65 6c 65 74 65 2d 63 68 61 72 29 0a \C-d"......'malyon-delete-char).
4de0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 ..(define-key.malyon-keymap-read
4e00 20 22 5c 64 22 20 20 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 62 61 63 6b 77 61 72 64 2d 64 65 ."\d"........'malyon-backward-de
4e20 6c 65 74 65 2d 63 68 61 72 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d lete-char)...(define-key.malyon-
4e40 6b 65 79 6d 61 70 2d 72 65 61 64 20 5b 64 65 6c 5d 20 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d keymap-read.[del].......'malyon-
4e60 64 65 6c 65 74 65 2d 63 68 61 72 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f delete-char)...(define-key.malyo
4e80 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 20 5b 62 61 63 6b 73 70 61 63 65 5d 20 27 6d 61 6c 79 6f n-keymap-read.[backspace].'malyo
4ea0 6e 2d 62 61 63 6b 77 61 72 64 2d 64 65 6c 65 74 65 2d 63 68 61 72 29 0a 20 20 28 73 75 62 73 74 n-backward-delete-char)...(subst
4ec0 69 74 75 74 65 2d 6b 65 79 2d 64 65 66 69 6e 69 74 69 6f 6e 20 28 6c 6f 6f 6b 75 70 2d 6b 65 79 itute-key-definition.(lookup-key
4ee0 20 28 63 75 72 72 65 6e 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 22 61 22 29 0a 20 20 20 20 20 .(current-global-map)."a")......
4f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d ........................'malyon-
4f20 73 65 6c 66 2d 69 6e 73 65 72 74 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 self-insert-command.............
4f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 .................malyon-keymap-r
4f60 65 61 64 20 28 63 75 72 72 65 6e 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 29 29 29 0a 0a 28 64 65 66 ead.(current-global-map)))..(def
4f80 76 61 72 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 63 68 61 72 20 6e 69 6c 0a 20 var.malyon-keymap-readchar.nil..
4fa0 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 6d 61 6c 79 6f 6e 20 6d 6f 64 65 20 66 6f 72 20 77 61 69 ."Keymap.for.malyon.mode.for.wai
4fc0 74 69 6e 67 20 66 6f 72 20 69 6e 70 75 74 2e 22 29 0a 0a 28 69 66 20 6d 61 6c 79 6f 6e 2d 6b 65 ting.for.input.")..(if.malyon-ke
4fe0 79 6d 61 70 2d 72 65 61 64 63 68 61 72 0a 20 20 20 20 27 28 29 0a 20 20 28 73 65 74 71 20 6d 61 ymap-readchar.....'()...(setq.ma
5000 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 63 68 61 72 20 28 6d 61 6b 65 2d 73 70 61 72 73 lyon-keymap-readchar.(make-spars
5020 65 2d 6b 65 79 6d 61 70 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 65 74 2d 6b 65 79 6d 61 70 2d e-keymap))...(malyon-set-keymap-
5040 6e 61 6d 65 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 63 68 61 72 20 27 6d 61 6c name.malyon-keymap-readchar.'mal
5060 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 63 68 61 72 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b yon-keymap-readchar)...(define-k
5080 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 63 68 61 72 20 22 5c 72 22 20 27 ey.malyon-keymap-readchar."\r".'
50a0 6d 61 6c 79 6f 6e 2d 77 61 69 74 2d 63 68 61 72 29 0a 20 20 28 73 75 62 73 74 69 74 75 74 65 2d malyon-wait-char)...(substitute-
50c0 6b 65 79 2d 64 65 66 69 6e 69 74 69 6f 6e 20 28 6c 6f 6f 6b 75 70 2d 6b 65 79 20 28 63 75 72 72 key-definition.(lookup-key.(curr
50e0 65 6e 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 22 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ent-global-map)."a")............
5100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 77 61 69 74 2d 63 ..................'malyon-wait-c
5120 68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 har.............................
5140 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 63 68 61 72 20 28 63 75 72 72 65 6e 74 .malyon-keymap-readchar.(current
5160 2d 67 6c 6f 62 61 6c 2d 6d 61 70 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 6b -global-map)))..(defvar.malyon-k
5180 65 79 6d 61 70 2d 6d 6f 72 65 20 6e 69 6c 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 6d 61 6c eymap-more.nil..."Keymap.for.mal
51a0 79 6f 6e 20 6d 6f 64 65 20 66 6f 72 20 62 72 6f 77 73 69 6e 67 20 74 68 72 6f 75 67 68 20 74 65 yon.mode.for.browsing.through.te
51c0 78 74 2e 22 29 0a 0a 28 69 66 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 0a 20 20 xt.")..(if.malyon-keymap-more...
51e0 20 20 27 28 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 ..'()...(setq.malyon-keymap-more
5200 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 0a 20 20 28 6d 61 6c 79 6f 6e .(make-sparse-keymap))...(malyon
5220 2d 73 65 74 2d 6b 65 79 6d 61 70 2d 6e 61 6d 65 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d -set-keymap-name.malyon-keymap-m
5240 6f 72 65 20 27 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 29 0a 20 20 28 64 65 66 69 ore.'malyon-keymap-more)...(defi
5260 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 20 22 5c 72 22 20 27 ne-key.malyon-keymap-more."\r".'
5280 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 63 68 61 72 29 0a 20 20 28 73 75 62 73 74 69 74 75 74 65 2d malyon-more-char)...(substitute-
52a0 6b 65 79 2d 64 65 66 69 6e 69 74 69 6f 6e 20 28 6c 6f 6f 6b 75 70 2d 6b 65 79 20 28 63 75 72 72 key-definition.(lookup-key.(curr
52c0 65 6e 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 22 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ent-global-map)."a")............
52e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 63 ..................'malyon-more-c
5300 68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 har.............................
5320 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 20 28 63 75 72 72 65 6e 74 2d 67 6c 6f .malyon-keymap-more.(current-glo
5340 62 61 6c 2d 6d 61 70 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 bal-map)))..(defvar.malyon-keyma
5360 70 2d 6d 6f 72 65 2d 73 74 61 74 75 73 20 6e 69 6c 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 p-more-status.nil..."Keymap.for.
5380 6d 61 6c 79 6f 6e 20 6d 6f 64 65 20 66 6f 72 20 62 72 6f 77 73 69 6e 67 20 74 68 72 6f 75 67 68 malyon.mode.for.browsing.through
53a0 20 74 68 65 20 73 74 61 74 75 73 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 69 66 20 6d 61 6c 79 6f .the.status.buffer.")..(if.malyo
53c0 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 2d 73 74 61 74 75 73 0a 20 20 20 20 27 28 29 0a 20 20 28 n-keymap-more-status.....'()...(
53e0 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 2d 73 74 61 74 75 73 20 28 setq.malyon-keymap-more-status.(
5400 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 make-sparse-keymap))...(malyon-s
5420 65 74 2d 6b 65 79 6d 61 70 2d 6e 61 6d 65 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 et-keymap-name.malyon-keymap-mor
5440 65 2d 73 74 61 74 75 73 20 27 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 2d 73 74 61 e-status.'malyon-keymap-more-sta
5460 74 75 73 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 tus)...(define-key.malyon-keymap
5480 2d 6d 6f 72 65 2d 73 74 61 74 75 73 20 22 5c 72 22 20 27 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 63 -more-status."\r".'malyon-more-c
54a0 68 61 72 2d 73 74 61 74 75 73 29 0a 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 6b 65 79 2d 64 65 har-status)...(substitute-key-de
54c0 66 69 6e 69 74 69 6f 6e 20 28 6c 6f 6f 6b 75 70 2d 6b 65 79 20 28 63 75 72 72 65 6e 74 2d 67 6c finition.(lookup-key.(current-gl
54e0 6f 62 61 6c 2d 6d 61 70 29 20 22 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 obal-map)."a")..................
5500 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 63 68 61 72 2d 73 74 ............'malyon-more-char-st
5520 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atus............................
5540 20 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 2d 73 74 61 74 75 73 20 28 63 75 72 ..malyon-keymap-more-status.(cur
5560 72 65 6e 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 29 29 29 0a 0a 28 64 65 66 66 61 63 65 20 6d 61 6c rent-global-map)))..(defface.mal
5580 79 6f 6e 2d 66 61 63 65 2d 70 6c 61 69 6e 0a 20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 yon-face-plain...'((t.:inherit.d
55a0 65 66 61 75 6c 74 29 29 0a 20 20 22 42 61 73 69 63 20 66 61 63 65 20 66 6f 72 20 67 61 6d 65 20 efault))..."Basic.face.for.game.
55c0 74 65 78 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 61 6c 79 6f 6e 29 0a 0a 28 64 65 66 66 61 text."...:group.'malyon)..(deffa
55e0 63 65 20 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 62 6f 6c 64 0a 20 20 27 28 28 74 20 3a 69 6e 68 65 ce.malyon-face-bold...'((t.:inhe
5600 72 69 74 20 62 6f 6c 64 29 29 0a 20 20 22 42 6f 6c 64 20 66 61 63 65 20 66 6f 72 20 67 61 6d 65 rit.bold))..."Bold.face.for.game
5620 20 74 65 78 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 61 6c 79 6f 6e 29 0a 0a 28 64 65 66 66 .text."...:group.'malyon)..(deff
5640 61 63 65 20 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 65 72 72 6f 72 0a 20 20 27 28 28 74 20 3a 69 6e ace.malyon-face-error...'((t.:in
5660 68 65 72 69 74 20 65 72 72 6f 72 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 67 61 6d 65 20 65 herit.error))..."Face.for.game.e
5680 72 72 6f 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 61 6c 79 6f 6e 29 0a 0a 28 64 65 66 66 rrors."...:group.'malyon)..(deff
56a0 61 63 65 20 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 69 74 61 6c 69 63 0a 20 20 27 28 28 74 20 3a 69 ace.malyon-face-italic...'((t.:i
56c0 6e 68 65 72 69 74 20 69 74 61 6c 69 63 29 29 0a 20 20 22 49 74 61 6c 69 63 20 66 61 63 65 20 66 nherit.italic))..."Italic.face.f
56e0 6f 72 20 67 61 6d 65 20 74 65 78 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 61 6c 79 6f 6e 29 or.game.text."...:group.'malyon)
5700 0a 0a 28 64 65 66 66 61 63 65 20 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 72 65 76 65 72 73 65 0a 20 ..(defface.malyon-face-reverse..
5720 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 20 3a 69 6e 76 65 72 73 65 2d .'((t.:inherit.default.:inverse-
5740 76 69 64 65 6f 20 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 72 65 76 65 72 73 65 2d 76 69 video.t))..."Face.for.reverse-vi
5760 64 65 6f 20 74 65 78 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 61 6c 79 6f 6e 29 0a 0a 28 64 deo.text."...:group.'malyon)..(d
5780 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 66 61 63 65 73 0a 20 20 27 28 28 30 20 2e 20 6d 61 6c 79 efvar.malyon-faces...'((0...maly
57a0 6f 6e 2d 66 61 63 65 2d 70 6c 61 69 6e 29 0a 20 20 20 20 28 31 20 2e 20 6d 61 6c 79 6f 6e 2d 66 on-face-plain).....(1...malyon-f
57c0 61 63 65 2d 72 65 76 65 72 73 65 29 0a 20 20 20 20 28 32 20 2e 20 6d 61 6c 79 6f 6e 2d 66 61 63 ace-reverse).....(2...malyon-fac
57e0 65 2d 62 6f 6c 64 29 0a 20 20 20 20 28 34 20 2e 20 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 69 74 61 e-bold).....(4...malyon-face-ita
5800 6c 69 63 29 0a 20 20 20 20 28 38 20 2e 20 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 70 6c 61 69 6e 29 lic).....(8...malyon-face-plain)
5820 29 0a 20 20 22 41 6e 20 61 73 73 6f 63 69 61 74 69 6f 6e 20 6c 69 73 74 20 6f 66 20 74 65 78 74 )..."An.association.list.of.text
5840 20 66 61 63 65 73 20 75 73 65 64 20 62 79 20 74 68 65 20 6d 61 6c 79 6f 6e 20 6d 6f 64 65 2e 22 .faces.used.by.the.malyon.mode."
5860 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 65 70 61 72 61 74 6f )..(defvar.malyon-print-separato
5880 72 20 6e 69 6c 0a 20 20 22 41 20 66 6c 61 67 20 69 6e 64 69 63 61 74 69 6e 67 20 77 68 65 74 68 r.nil..."A.flag.indicating.wheth
58a0 65 72 20 74 6f 20 70 72 69 6e 74 20 74 68 65 20 2a 20 2a 20 2a 20 73 65 70 61 72 61 74 6f 72 2e er.to.print.the.*.*.*.separator.
58c0 22 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 62 65 67 69 6e 2d 73 65 63 74 69 6f 6e 20 ")..(defun.malyon-begin-section.
58e0 28 29 0a 20 20 22 50 72 69 6e 74 20 61 20 73 65 63 74 69 6f 6e 20 64 69 76 69 64 65 72 20 61 6e ()..."Print.a.section.divider.an
5900 64 20 62 65 67 69 6e 20 61 20 6e 65 77 20 73 65 63 74 69 6f 6e 2e 22 0a 20 20 28 69 66 20 6d 61 d.begin.a.new.section."...(if.ma
5920 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 28 70 72 6f 67 lyon-print-separator.......(prog
5940 6e 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 27 6d 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d n.........(mapc.'malyon-putchar-
5960 74 72 61 6e 73 63 72 69 70 74 20 27 28 3f 5c 6e 20 3f 5c 6e 20 3f 2a 20 3f 20 20 3f 2a 20 3f 20 transcript.'(?\n.?\n.?*.?..?*.?.
5980 20 3f 2a 29 29 0a 20 20 20 20 20 20 20 20 28 63 65 6e 74 65 72 2d 6c 69 6e 65 29 0a 20 20 20 20 .?*)).........(center-line).....
59a0 20 20 20 20 28 6d 61 70 63 20 27 6d 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d 74 72 61 6e 73 63 ....(mapc.'malyon-putchar-transc
59c0 72 69 70 74 20 27 28 3f 5c 6e 20 3f 5c 6e 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d ript.'(?\n.?\n)).........(setq.m
59e0 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 65 70 61 72 61 74 6f 72 20 6e 69 6c 29 29 29 0a 20 20 28 alyon-print-separator.nil)))...(
5a00 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 70 6f narrow-to-region.(point-max).(po
5a20 69 6e 74 2d 6d 61 78 29 29 29 0a 0a 28 69 66 20 6d 61 6c 79 6f 6e 2d 77 68 69 74 65 73 70 61 63 int-max)))..(if.malyon-whitespac
5a40 65 0a 20 20 20 20 27 28 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 77 68 69 74 65 73 70 e.....'()...(setq.malyon-whitesp
5a60 61 63 65 20 28 6c 69 73 74 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 74 6f 2d 69 6e 74 20 3f 20 ace.(list.(malyon-char-to-int.?.
5a80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
5aa0 20 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 74 6f 2d 69 6e 74 20 3f 5c 74 29 0a 20 20 20 20 20 ..(malyon-char-to-int.?\t)......
5ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 ...........................(maly
5ae0 6f 6e 2d 63 68 61 72 2d 74 6f 2d 69 6e 74 20 3f 5c 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 on-char-to-int.?\n).............
5b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 ....................(malyon-char
5b20 2d 74 6f 2d 69 6e 74 20 3f 5c 72 29 29 29 29 0a 0a 3b 3b 20 6d 65 6d 6f 72 79 20 75 74 69 6c 69 -to-int.?\r))))..;;.memory.utili
5b40 74 69 65 73 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 ties..(defsubst.malyon-read-byte
5b60 20 28 61 64 64 72 65 73 73 29 0a 20 20 22 52 65 61 64 20 61 20 62 79 74 65 20 61 74 20 61 64 64 .(address)..."Read.a.byte.at.add
5b80 72 65 73 73 20 69 6e 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 0a 20 20 28 69 66 20 28 ress.in.the.story.file."...(if.(
5ba0 3c 3d 20 30 20 61 64 64 72 65 73 73 29 0a 20 20 20 20 20 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e <=.0.address).......(aref.malyon
5bc0 2d 73 74 6f 72 79 2d 66 69 6c 65 20 61 64 64 72 65 73 73 29 0a 20 20 20 20 28 61 72 65 66 20 6d -story-file.address).....(aref.m
5be0 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 28 2b 20 36 35 35 33 36 20 61 64 64 72 65 73 alyon-story-file.(+.65536.addres
5c00 73 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 s))))..(defsubst.malyon-store-by
5c20 74 65 20 28 61 64 64 72 65 73 73 20 76 61 6c 75 65 29 0a 20 20 22 53 74 6f 72 65 20 61 20 62 79 te.(address.value)..."Store.a.by
5c40 74 65 20 61 74 20 61 64 64 72 65 73 73 20 69 6e 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 2e te.at.address.in.the.story.file.
5c60 22 0a 20 20 28 69 66 20 28 3c 3d 20 30 20 61 64 64 72 65 73 73 29 0a 20 20 20 20 20 20 28 61 73 "...(if.(<=.0.address).......(as
5c80 65 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 61 64 64 72 65 73 73 20 28 6c 6f et.malyon-story-file.address.(lo
5ca0 67 61 6e 64 20 32 35 35 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f gand.255.value)).....(aset.malyo
5cc0 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 28 2b 20 36 35 35 33 36 20 61 64 64 72 65 73 73 29 20 28 n-story-file.(+.65536.address).(
5ce0 6c 6f 67 61 6e 64 20 32 35 35 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 logand.255.value))))..(defsubst.
5d00 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 61 64 64 72 65 73 73 29 0a 20 20 22 52 65 malyon-read-word.(address)..."Re
5d20 61 64 20 61 20 77 6f 72 64 20 61 74 20 61 64 64 72 65 73 73 20 69 6e 20 74 68 65 20 73 74 6f 72 ad.a.word.at.address.in.the.stor
5d40 79 20 66 69 6c 65 2e 22 0a 20 20 28 69 66 20 28 3c 3d 20 30 20 61 64 64 72 65 73 73 29 0a 20 20 y.file."...(if.(<=.0.address)...
5d60 20 20 20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 ....(logior.(lsh.(aref.malyon-st
5d80 6f 72 79 2d 66 69 6c 65 20 61 64 64 72 65 73 73 29 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 ory-file.address).8)............
5da0 20 20 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 28 2b 20 31 20 ...(aref.malyon-story-file.(+.1.
5dc0 61 64 64 72 65 73 73 29 29 29 0a 20 20 20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 28 61 72 65 address))).....(logior.(lsh.(are
5de0 66 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 28 2b 20 36 35 35 33 36 20 61 64 64 f.malyon-story-file.(+.65536.add
5e00 72 65 73 73 29 29 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 6d 61 6c 79 ress)).8).............(aref.maly
5e20 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 28 2b 20 36 35 35 33 37 20 61 64 64 72 65 73 73 29 29 on-story-file.(+.65537.address))
5e40 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 )))..(defsubst.malyon-store-word
5e60 20 28 61 64 64 72 65 73 73 20 76 61 6c 75 65 29 0a 20 20 22 53 74 6f 72 65 20 61 20 77 6f 72 64 .(address.value)..."Store.a.word
5e80 20 61 74 20 61 64 64 72 65 73 73 20 69 6e 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 0a .at.address.in.the.story.file.".
5ea0 20 20 28 69 66 20 28 3c 3d 20 30 20 61 64 64 72 65 73 73 29 0a 20 20 20 20 20 20 28 70 72 6f 67 ..(if.(<=.0.address).......(prog
5ec0 6e 0a 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c n.........(aset.malyon-story-fil
5ee0 65 20 61 64 64 72 65 73 73 20 28 6c 6f 67 61 6e 64 20 32 35 35 20 28 6c 73 68 20 76 61 6c 75 65 e.address.(logand.255.(lsh.value
5f00 20 2d 38 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 .-8))).........(aset.malyon-stor
5f20 79 2d 66 69 6c 65 20 28 2b 20 31 20 61 64 64 72 65 73 73 29 20 28 6c 6f 67 61 6e 64 20 32 35 35 y-file.(+.1.address).(logand.255
5f40 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 .value))).....(aset.malyon-story
5f60 2d 66 69 6c 65 20 28 2b 20 36 35 35 33 36 20 61 64 64 72 65 73 73 29 20 28 6c 6f 67 61 6e 64 20 -file.(+.65536.address).(logand.
5f80 32 35 35 20 28 6c 73 68 20 76 61 6c 75 65 20 2d 38 29 29 29 0a 20 20 20 20 28 61 73 65 74 20 6d 255.(lsh.value.-8))).....(aset.m
5fa0 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 28 2b 20 36 35 35 33 37 20 61 64 64 72 65 73 alyon-story-file.(+.65537.addres
5fc0 73 29 20 28 6c 6f 67 61 6e 64 20 32 35 35 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 73 75 s).(logand.255.value))))..(defsu
5fe0 62 73 74 20 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 20 28 29 0a 20 20 22 bst.malyon-read-code-byte.()..."
6000 52 65 61 64 20 74 68 65 20 6e 65 78 74 20 62 79 74 65 20 61 74 20 74 68 65 20 70 72 6f 67 72 61 Read.the.next.byte.at.the.progra
6020 6d 20 63 6f 75 6e 74 65 72 20 6c 6f 63 61 74 69 6f 6e 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c m.counter.location."...(setq.mal
6040 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 28 2b 20 6d 61 6c 79 6f yon-instruction-pointer.(+.malyo
6060 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 31 29 29 0a 20 20 28 6d 61 6c n-instruction-pointer.1))...(mal
6080 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2d 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 yon-read-byte.(-.malyon-instruct
60a0 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 31 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 ion-pointer.1)))..(defsubst.maly
60c0 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 77 6f 72 64 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 on-read-code-word.()..."Read.the
60e0 20 6e 65 78 74 20 77 6f 72 64 20 61 74 20 74 68 65 20 70 72 6f 67 72 61 6d 20 63 6f 75 6e 74 65 .next.word.at.the.program.counte
6100 72 20 6c 6f 63 61 74 69 6f 6e 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 r.location."...(setq.malyon-inst
6120 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 28 2b 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 ruction-pointer.(+.malyon-instru
6140 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 32 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 ction-pointer.2))...(malyon-read
6160 2d 77 6f 72 64 20 28 2d 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e -word.(-.malyon-instruction-poin
6180 74 65 72 20 32 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 ter.2)))..(defsubst.malyon-pop-s
61a0 74 61 63 6b 20 28 29 0a 20 20 22 50 6f 70 20 61 20 76 61 6c 75 65 20 6f 66 66 20 74 68 65 20 73 tack.()..."Pop.a.value.off.the.s
61c0 74 61 63 6b 2e 22 0a 20 20 28 69 66 20 28 3e 20 30 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 tack."...(if.(>.0.malyon-stack-p
61e0 6f 69 6e 74 65 72 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 61 6c 2d 65 72 72 6f ointer).......(malyon-fatal-erro
6200 72 20 22 73 74 61 63 6b 20 75 6e 64 65 72 66 6c 6f 77 2e 22 29 29 0a 20 20 28 73 65 74 71 20 6d r."stack.underflow."))...(setq.m
6220 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 28 2d 20 6d 61 6c 79 6f 6e 2d 73 74 alyon-stack-pointer.(-.malyon-st
6240 61 63 6b 2d 70 6f 69 6e 74 65 72 20 31 29 29 0a 20 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 ack-pointer.1))...(aref.malyon-s
6260 74 61 63 6b 20 28 2b 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 31 29 29 tack.(+.malyon-stack-pointer.1))
6280 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 6c 6f 63 61 6c 2d 76 )..(defsubst.malyon-read-local-v
62a0 61 72 69 61 62 6c 65 20 28 76 61 72 69 61 62 6c 65 29 0a 20 20 22 52 65 61 64 20 61 20 6c 6f 63 ariable.(variable)..."Read.a.loc
62c0 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 61 al.variable."...(aref.malyon-sta
62e0 63 6b 20 28 2b 20 76 61 72 69 61 62 6c 65 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e ck.(+.variable.malyon-frame-poin
6300 74 65 72 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 67 6c ter)))..(defsubst.malyon-read-gl
6320 6f 62 61 6c 2d 76 61 72 69 61 62 6c 65 20 28 76 61 72 69 61 62 6c 65 29 0a 20 20 22 52 65 61 64 obal-variable.(variable)..."Read
6340 20 61 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 .a.global.variable."...(malyon-r
6360 65 61 64 2d 77 6f 72 64 20 28 2b 20 6d 61 6c 79 6f 6e 2d 67 6c 6f 62 61 6c 2d 76 61 72 69 61 62 ead-word.(+.malyon-global-variab
6380 6c 65 73 20 28 2a 20 32 20 76 61 72 69 61 62 6c 65 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 les.(*.2.variable))))..(defsubst
63a0 20 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 20 28 76 61 72 69 61 62 6c 65 29 .malyon-read-variable.(variable)
63c0 0a 20 20 22 52 65 61 64 20 61 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 ..."Read.a.variable."...(cond.((
63e0 3d 20 76 61 72 69 61 62 6c 65 20 30 29 20 20 28 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b =.variable.0)..(malyon-pop-stack
6400 29 29 0a 20 20 20 20 20 20 20 20 28 28 3c 20 76 61 72 69 61 62 6c 65 20 31 36 29 20 28 6d 61 6c )).........((<.variable.16).(mal
6420 79 6f 6e 2d 72 65 61 64 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 76 61 72 69 61 62 6c 65 yon-read-local-variable.variable
6440 29 29 0a 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c )).........(t...............(mal
6460 79 6f 6e 2d 72 65 61 64 2d 67 6c 6f 62 61 6c 2d 76 61 72 69 61 62 6c 65 20 28 2d 20 76 61 72 69 yon-read-global-variable.(-.vari
6480 61 62 6c 65 20 31 36 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 70 able.16)))))..(defsubst.malyon-p
64a0 75 73 68 2d 73 74 61 63 6b 20 28 76 61 6c 75 65 29 0a 20 20 22 50 75 73 68 20 61 20 76 61 6c 75 ush-stack.(value)..."Push.a.valu
64c0 65 20 6f 6e 74 6f 20 74 68 65 20 73 74 61 63 6b 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f e.onto.the.stack."...(setq.malyo
64e0 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 28 2b 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d n-stack-pointer.(+.malyon-stack-
6500 70 6f 69 6e 74 65 72 20 31 29 29 0a 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b pointer.1))...(aset.malyon-stack
6520 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 76 61 6c 75 65 29 29 0a 0a 28 .malyon-stack-pointer.value))..(
6540 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 defsubst.malyon-store-local-vari
6560 61 62 6c 65 20 28 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 29 0a 20 20 22 53 74 6f 72 65 20 61 able.(variable.value)..."Store.a
6580 20 76 61 6c 75 65 20 69 6e 20 61 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 .value.in.a.local.variable."...(
65a0 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 20 28 2b 20 76 61 72 69 61 62 6c 65 20 6d 61 aset.malyon-stack.(+.variable.ma
65c0 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 29 20 76 61 6c 75 65 29 29 0a 0a 28 64 65 lyon-frame-pointer).value))..(de
65e0 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 67 6c 6f 62 61 6c 2d 76 61 72 69 61 fsubst.malyon-store-global-varia
6600 62 6c 65 20 28 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 29 0a 20 20 22 53 74 6f 72 65 20 61 20 ble.(variable.value)..."Store.a.
6620 76 61 6c 75 65 20 69 6e 20 61 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 value.in.a.global.variable."...(
6640 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 28 2b 20 6d 61 6c 79 6f 6e 2d 67 6c 6f 62 malyon-store-word.(+.malyon-glob
6660 61 6c 2d 76 61 72 69 61 62 6c 65 73 20 28 2a 20 32 20 76 61 72 69 61 62 6c 65 29 29 20 76 61 6c al-variables.(*.2.variable)).val
6680 75 65 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 ue))..(defsubst.malyon-store-var
66a0 69 61 62 6c 65 20 28 76 61 72 20 76 61 6c 75 65 29 0a 20 20 22 53 74 6f 72 65 20 74 68 65 20 76 iable.(var.value)..."Store.the.v
66c0 61 6c 75 65 20 69 6e 20 61 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 73 65 74 71 20 76 61 6c alue.in.a.variable."...(setq.val
66e0 75 65 20 28 6c 6f 67 61 6e 64 20 36 35 35 33 35 20 76 61 6c 75 65 29 29 0a 20 20 28 63 6f 6e 64 ue.(logand.65535.value))...(cond
6700 20 28 28 3d 20 76 61 72 20 30 29 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 .((=.var.0)..(malyon-push-stack.
6720 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 28 28 3c 20 76 61 72 20 31 36 29 20 28 6d 61 6c value)).........((<.var.16).(mal
6740 79 6f 6e 2d 73 74 6f 72 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 76 61 72 20 76 61 6c yon-store-local-variable.var.val
6760 75 65 29 29 0a 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e ue)).........(t..........(malyon
6780 2d 73 74 6f 72 65 2d 67 6c 6f 62 61 6c 2d 76 61 72 69 61 62 6c 65 20 28 2d 20 76 61 72 20 31 36 -store-global-variable.(-.var.16
67a0 29 20 76 61 6c 75 65 29 29 29 29 0a 0a 3b 3b 20 6c 69 73 74 20 6f 66 20 6f 70 63 6f 64 65 73 0a ).value))))..;;.list.of.opcodes.
67c0 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 0a 20 20 5b 6d 61 6c 79 6f .(defvar.malyon-opcodes...[malyo
67e0 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 65 n-opcode-nop....malyon-opcode-je
6800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 6c 0a 20 ..............malyon-opcode-jl..
6820 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..malyon-opcode-jg..............
6840 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 65 63 2d 63 68 6b 0a 20 20 20 6d 61 6c 79 6f 6e 2d malyon-opcode-dec-chk....malyon-
6860 6f 70 63 6f 64 65 2d 69 6e 63 2d 63 68 6b 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 opcode-inc-chk.........malyon-op
6880 63 6f 64 65 2d 6a 69 6e 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 65 73 74 20 20 code-jin....malyon-opcode-test..
68a0 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6f 72 0a 20 20 20 6d 61 ..........malyon-opcode-or....ma
68c0 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 61 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 lyon-opcode-and.............maly
68e0 6f 6e 2d 6f 70 63 6f 64 65 2d 74 65 73 74 2d 61 74 74 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 on-opcode-test-attr....malyon-op
6900 63 6f 64 65 2d 73 65 74 2d 61 74 74 72 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f code-set-attr........malyon-opco
6920 64 65 2d 63 6c 65 61 72 2d 61 74 74 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 de-clear-attr....malyon-opcode-s
6940 74 6f 72 65 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 73 tore...........malyon-opcode-ins
6960 65 72 74 2d 6f 62 6a 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 77 20 20 ert-obj....malyon-opcode-loadw..
6980 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 62 0a 20 20 20 .........malyon-opcode-loadb....
69a0 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 20 20 20 20 20 20 20 6d 61 malyon-opcode-get-prop........ma
69c0 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 2d 61 64 64 72 0a 20 20 20 6d 61 6c lyon-opcode-get-prop-addr....mal
69e0 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 6e 65 78 74 2d 70 72 6f 70 20 20 20 6d 61 6c 79 6f yon-opcode-get-next-prop...malyo
6a00 6e 2d 6f 70 63 6f 64 65 2d 61 64 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 75 n-opcode-add....malyon-opcode-su
6a20 62 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 75 6c 0a b.............malyon-opcode-mul.
6a40 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 69 76 20 20 20 20 20 20 20 20 20 20 20 20 ...malyon-opcode-div............
6a60 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 6f 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 .malyon-opcode-mod....malyon-opc
6a80 6f 64 65 2d 63 61 6c 6c 73 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 ode-calls...........malyon-opcod
6aa0 65 2d 63 61 6c 6c 6e 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 6f 6c e-calln....malyon-opcode-set-col
6ac0 6f 72 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 68 72 6f 77 0a 20 20 20 or.......malyon-opcode-throw....
6ae0 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 malyon-opcode-nop.............ma
6b00 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 lyon-opcode-nop....malyon-opcode
6b20 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e -nop.............malyon-opcode-n
6b40 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 65 20 20 20 20 20 20 20 20 20 20 op....malyon-opcode-je..........
6b60 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 6c 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f ....malyon-opcode-jl....malyon-o
6b80 70 63 6f 64 65 2d 6a 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 pcode-jg..............malyon-opc
6ba0 6f 64 65 2d 64 65 63 2d 63 68 6b 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 63 ode-dec-chk....malyon-opcode-inc
6bc0 2d 63 68 6b 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 69 6e 0a 20 -chk.........malyon-opcode-jin..
6be0 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 65 73 74 20 20 20 20 20 20 20 20 20 20 20 20 ..malyon-opcode-test............
6c00 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6f 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 malyon-opcode-or....malyon-opcod
6c20 65 2d 61 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d e-and.............malyon-opcode-
6c40 74 65 73 74 2d 61 74 74 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 61 test-attr....malyon-opcode-set-a
6c60 74 74 72 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 6c 65 61 72 2d 61 ttr........malyon-opcode-clear-a
6c80 74 74 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 74 6f 72 65 20 20 20 20 20 20 ttr....malyon-opcode-store......
6ca0 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 73 65 72 74 2d 6f 62 6a 0a 20 20 .....malyon-opcode-insert-obj...
6cc0 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 77 20 20 20 20 20 20 20 20 20 20 20 6d .malyon-opcode-loadw...........m
6ce0 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 62 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 alyon-opcode-loadb....malyon-opc
6d00 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 ode-get-prop........malyon-opcod
6d20 65 2d 67 65 74 2d 70 72 6f 70 2d 61 64 64 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 e-get-prop-addr....malyon-opcode
6d40 2d 67 65 74 2d 6e 65 78 74 2d 70 72 6f 70 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 61 -get-next-prop...malyon-opcode-a
6d60 64 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 75 62 20 20 20 20 20 20 20 20 20 dd....malyon-opcode-sub.........
6d80 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 75 6c 0a 20 20 20 6d 61 6c 79 6f 6e 2d ....malyon-opcode-mul....malyon-
6da0 6f 70 63 6f 64 65 2d 64 69 76 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 opcode-div.............malyon-op
6dc0 63 6f 64 65 2d 6d 6f 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 73 20 code-mod....malyon-opcode-calls.
6de0 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 6e 0a 20 20 ..........malyon-opcode-calln...
6e00 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 6f 6c 6f 72 20 20 20 20 20 20 20 6d .malyon-opcode-set-color.......m
6e20 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 68 72 6f 77 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 alyon-opcode-throw....malyon-opc
6e40 6f 64 65 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 ode-nop.............malyon-opcod
6e60 65 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 20 20 20 20 20 20 e-nop....malyon-opcode-nop......
6e80 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 .......malyon-opcode-nop....maly
6ea0 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e on-opcode-je..............malyon
6ec0 2d 6f 70 63 6f 64 65 2d 6a 6c 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 67 20 20 -opcode-jl....malyon-opcode-jg..
6ee0 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 65 63 2d 63 68 ............malyon-opcode-dec-ch
6f00 6b 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 63 2d 63 68 6b 20 20 20 20 20 20 k....malyon-opcode-inc-chk......
6f20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 69 6e 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f ...malyon-opcode-jin....malyon-o
6f40 70 63 6f 64 65 2d 74 65 73 74 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 pcode-test............malyon-opc
6f60 6f 64 65 2d 6f 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 61 6e 64 20 20 20 20 20 ode-or....malyon-opcode-and.....
6f80 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 65 73 74 2d 61 74 74 72 0a ........malyon-opcode-test-attr.
6fa0 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 61 74 74 72 20 20 20 20 20 20 20 ...malyon-opcode-set-attr.......
6fc0 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 6c 65 61 72 2d 61 74 74 72 0a 20 20 20 6d 61 6c .malyon-opcode-clear-attr....mal
6fe0 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 74 6f 72 65 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f yon-opcode-store...........malyo
7000 6e 2d 6f 70 63 6f 64 65 2d 69 6e 73 65 72 74 2d 6f 62 6a 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 n-opcode-insert-obj....malyon-op
7020 63 6f 64 65 2d 6c 6f 61 64 77 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f code-loadw...........malyon-opco
7040 64 65 2d 6c 6f 61 64 62 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 de-loadb....malyon-opcode-get-pr
7060 6f 70 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 op........malyon-opcode-get-prop
7080 2d 61 64 64 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 6e 65 78 74 2d -addr....malyon-opcode-get-next-
70a0 70 72 6f 70 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 61 64 64 0a 20 20 20 6d 61 6c 79 prop...malyon-opcode-add....maly
70c0 6f 6e 2d 6f 70 63 6f 64 65 2d 73 75 62 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e on-opcode-sub.............malyon
70e0 2d 6f 70 63 6f 64 65 2d 6d 75 6c 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 69 76 -opcode-mul....malyon-opcode-div
7100 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 6f 64 0a 20 .............malyon-opcode-mod..
7120 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 73 20 20 20 20 20 20 20 20 20 20 20 ..malyon-opcode-calls...........
7140 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 6e 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 malyon-opcode-calln....malyon-op
7160 63 6f 64 65 2d 73 65 74 2d 63 6f 6c 6f 72 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f code-set-color.......malyon-opco
7180 64 65 2d 74 68 72 6f 77 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 20 20 20 de-throw....malyon-opcode-nop...
71a0 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 0a 20 20 20 6d ..........malyon-opcode-nop....m
71c0 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c alyon-opcode-nop.............mal
71e0 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d yon-opcode-nop....malyon-opcode-
7200 6a 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 6c je..............malyon-opcode-jl
7220 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 67 20 20 20 20 20 20 20 20 20 20 20 20 ....malyon-opcode-jg............
7240 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 65 63 2d 63 68 6b 0a 20 20 20 6d 61 6c 79 6f ..malyon-opcode-dec-chk....malyo
7260 6e 2d 6f 70 63 6f 64 65 2d 69 6e 63 2d 63 68 6b 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d n-opcode-inc-chk.........malyon-
7280 6f 70 63 6f 64 65 2d 6a 69 6e 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 65 73 74 opcode-jin....malyon-opcode-test
72a0 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6f 72 0a 20 20 20 ............malyon-opcode-or....
72c0 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 61 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 malyon-opcode-and.............ma
72e0 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 65 73 74 2d 61 74 74 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d lyon-opcode-test-attr....malyon-
7300 6f 70 63 6f 64 65 2d 73 65 74 2d 61 74 74 72 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 opcode-set-attr........malyon-op
7320 63 6f 64 65 2d 63 6c 65 61 72 2d 61 74 74 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 code-clear-attr....malyon-opcode
7340 2d 73 74 6f 72 65 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 -store...........malyon-opcode-i
7360 6e 73 65 72 74 2d 6f 62 6a 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 77 nsert-obj....malyon-opcode-loadw
7380 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 62 0a 20 ...........malyon-opcode-loadb..
73a0 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 20 20 20 20 20 20 20 ..malyon-opcode-get-prop........
73c0 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 2d 61 64 64 72 0a 20 20 20 6d malyon-opcode-get-prop-addr....m
73e0 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 6e 65 78 74 2d 70 72 6f 70 20 20 20 6d 61 6c alyon-opcode-get-next-prop...mal
7400 79 6f 6e 2d 6f 70 63 6f 64 65 2d 61 64 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d yon-opcode-add....malyon-opcode-
7420 73 75 62 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 75 sub.............malyon-opcode-mu
7440 6c 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 69 76 20 20 20 20 20 20 20 20 20 20 l....malyon-opcode-div..........
7460 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 6f 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f ...malyon-opcode-mod....malyon-o
7480 70 63 6f 64 65 2d 63 61 6c 6c 73 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 pcode-calls...........malyon-opc
74a0 6f 64 65 2d 63 61 6c 6c 6e 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 ode-calln....malyon-opcode-set-c
74c0 6f 6c 6f 72 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 68 72 6f 77 0a 20 olor.......malyon-opcode-throw..
74e0 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 ..malyon-opcode-nop.............
7500 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f malyon-opcode-nop....malyon-opco
7520 64 65 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 de-nop.............malyon-opcode
7540 2d 6a 7a 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 73 69 62 6c 69 6e 67 -jz....malyon-opcode-get-sibling
7560 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 63 68 69 6c 64 0a 20 20 20 .....malyon-opcode-get-child....
7580 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 61 72 65 6e 74 20 20 20 20 20 20 6d 61 malyon-opcode-get-parent......ma
75a0 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 2d 6c 65 6e 0a 20 20 20 6d 61 6c 79 lyon-opcode-get-prop-len....maly
75c0 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 63 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e on-opcode-inc.............malyon
75e0 2d 6f 70 63 6f 64 65 2d 64 65 63 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 -opcode-dec....malyon-opcode-pri
7600 6e 74 2d 61 64 64 72 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 73 nt-addr......malyon-opcode-calls
7620 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 6d 6f 76 65 2d 6f 62 6a 20 20 20 20 ....malyon-opcode-remove-obj....
7640 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 6f 62 6a 0a 20 20 20 6d 61 6c ..malyon-opcode-print-obj....mal
7660 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 74 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f yon-opcode-ret.............malyo
7680 6e 2d 6f 70 63 6f 64 65 2d 6a 75 6d 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 n-opcode-jump....malyon-opcode-p
76a0 72 69 6e 74 2d 70 61 64 64 72 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 rint-paddr.....malyon-opcode-loa
76c0 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 6e 20 20 20 20 20 20 20 20 d....malyon-opcode-calln........
76e0 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 7a 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 ...malyon-opcode-jz....malyon-op
7700 63 6f 64 65 2d 67 65 74 2d 73 69 62 6c 69 6e 67 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f code-get-sibling.....malyon-opco
7720 64 65 2d 67 65 74 2d 63 68 69 6c 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 de-get-child....malyon-opcode-ge
7740 74 2d 70 61 72 65 6e 74 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d t-parent......malyon-opcode-get-
7760 70 72 6f 70 2d 6c 65 6e 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 63 20 20 20 prop-len....malyon-opcode-inc...
7780 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 65 63 0a 20 20 20 6d ..........malyon-opcode-dec....m
77a0 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 61 64 64 72 20 20 20 20 20 20 6d 61 6c alyon-opcode-print-addr......mal
77c0 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 73 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 yon-opcode-calls....malyon-opcod
77e0 65 2d 72 65 6d 6f 76 65 2d 6f 62 6a 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d e-remove-obj......malyon-opcode-
7800 70 72 69 6e 74 2d 6f 62 6a 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 74 20 20 print-obj....malyon-opcode-ret..
7820 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 75 6d 70 0a 20 20 ...........malyon-opcode-jump...
7840 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 70 61 64 64 72 20 20 20 20 20 6d .malyon-opcode-print-paddr.....m
7860 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f alyon-opcode-load....malyon-opco
7880 64 65 2d 63 61 6c 6c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 de-calln...........malyon-opcode
78a0 2d 6a 7a 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 73 69 62 6c 69 6e 67 -jz....malyon-opcode-get-sibling
78c0 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 63 68 69 6c 64 0a 20 20 20 .....malyon-opcode-get-child....
78e0 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 61 72 65 6e 74 20 20 20 20 20 20 6d 61 malyon-opcode-get-parent......ma
7900 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 2d 6c 65 6e 0a 20 20 20 6d 61 6c 79 lyon-opcode-get-prop-len....maly
7920 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 63 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e on-opcode-inc.............malyon
7940 2d 6f 70 63 6f 64 65 2d 64 65 63 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 -opcode-dec....malyon-opcode-pri
7960 6e 74 2d 61 64 64 72 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 73 nt-addr......malyon-opcode-calls
7980 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 6d 6f 76 65 2d 6f 62 6a 20 20 20 20 ....malyon-opcode-remove-obj....
79a0 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 6f 62 6a 0a 20 20 20 6d 61 6c ..malyon-opcode-print-obj....mal
79c0 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 74 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f yon-opcode-ret.............malyo
79e0 6e 2d 6f 70 63 6f 64 65 2d 6a 75 6d 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 n-opcode-jump....malyon-opcode-p
7a00 72 69 6e 74 2d 70 61 64 64 72 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 rint-paddr.....malyon-opcode-loa
7a20 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 6e 20 20 20 20 20 20 20 20 d....malyon-opcode-calln........
7a40 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 74 72 75 65 0a 20 20 20 6d 61 6c 79 6f 6e ...malyon-opcode-rtrue....malyon
7a60 2d 6f 70 63 6f 64 65 2d 72 66 61 6c 73 65 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f -opcode-rfalse..........malyon-o
7a80 70 63 6f 64 65 2d 70 72 69 6e 74 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 pcode-print....malyon-opcode-pri
7aa0 6e 74 2d 72 65 74 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 0a 20 nt-ret.......malyon-opcode-nop..
7ac0 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 67 61 6c 20 20 20 20 20 20 20 20 20 ..malyon-opcode-illegal.........
7ae0 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 67 61 6c 0a 20 20 20 6d 61 6c 79 6f 6e 2d malyon-opcode-illegal....malyon-
7b00 6f 70 63 6f 64 65 2d 72 65 73 74 61 72 74 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 opcode-restart.........malyon-op
7b20 63 6f 64 65 2d 72 65 74 2d 70 6f 70 70 65 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 code-ret-popped....malyon-opcode
7b40 2d 63 61 74 63 68 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 71 -catch...........malyon-opcode-q
7b60 75 69 74 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 65 77 2d 6c 69 6e 65 20 20 20 uit....malyon-opcode-new-line...
7b80 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 67 61 6c 0a 20 20 20 6d 61 .....malyon-opcode-illegal....ma
7ba0 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 76 65 72 69 66 79 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 lyon-opcode-verify..........maly
7bc0 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 67 61 6c 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f on-opcode-illegal....malyon-opco
7be0 64 65 2d 70 69 72 61 63 79 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 de-piracy..........malyon-opcode
7c00 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 65 20 20 20 20 20 20 20 20 -nop....malyon-opcode-je........
7c20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 6c 0a 20 20 20 6d 61 6c 79 6f 6e ......malyon-opcode-jl....malyon
7c40 2d 6f 70 63 6f 64 65 2d 6a 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f -opcode-jg..............malyon-o
7c60 70 63 6f 64 65 2d 64 65 63 2d 63 68 6b 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 pcode-dec-chk....malyon-opcode-i
7c80 6e 63 2d 63 68 6b 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 69 6e nc-chk.........malyon-opcode-jin
7ca0 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 65 73 74 20 20 20 20 20 20 20 20 20 20 ....malyon-opcode-test..........
7cc0 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6f 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 ..malyon-opcode-or....malyon-opc
7ce0 6f 64 65 2d 61 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 ode-and.............malyon-opcod
7d00 65 2d 74 65 73 74 2d 61 74 74 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 e-test-attr....malyon-opcode-set
7d20 2d 61 74 74 72 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 6c 65 61 72 -attr........malyon-opcode-clear
7d40 2d 61 74 74 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 74 6f 72 65 20 20 20 20 -attr....malyon-opcode-store....
7d60 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 73 65 72 74 2d 6f 62 6a 0a .......malyon-opcode-insert-obj.
7d80 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 77 20 20 20 20 20 20 20 20 20 20 ...malyon-opcode-loadw..........
7da0 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 62 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f .malyon-opcode-loadb....malyon-o
7dc0 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 pcode-get-prop........malyon-opc
7de0 6f 64 65 2d 67 65 74 2d 70 72 6f 70 2d 61 64 64 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f ode-get-prop-addr....malyon-opco
7e00 64 65 2d 67 65 74 2d 6e 65 78 74 2d 70 72 6f 70 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 de-get-next-prop...malyon-opcode
7e20 2d 61 64 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 75 62 20 20 20 20 20 20 20 -add....malyon-opcode-sub.......
7e40 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 75 6c 0a 20 20 20 6d 61 6c 79 6f ......malyon-opcode-mul....malyo
7e60 6e 2d 6f 70 63 6f 64 65 2d 64 69 76 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d n-opcode-div.............malyon-
7e80 6f 70 63 6f 64 65 2d 6d 6f 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c opcode-mod....malyon-opcode-call
7ea0 73 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 6e 0a s...........malyon-opcode-calln.
7ec0 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 6f 6c 6f 72 20 20 20 20 20 20 ...malyon-opcode-set-color......
7ee0 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 68 72 6f 77 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f .malyon-opcode-throw....malyon-o
7f00 70 63 6f 64 65 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 pcode-nop.............malyon-opc
7f20 6f 64 65 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 20 20 20 20 ode-nop....malyon-opcode-nop....
7f40 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 73 0a 20 20 20 .........malyon-opcode-calls....
7f60 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 74 6f 72 65 77 20 20 20 20 20 20 20 20 20 20 6d 61 malyon-opcode-storew..........ma
7f80 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 74 6f 72 65 62 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 lyon-opcode-storeb....malyon-opc
7fa0 6f 64 65 2d 70 75 74 2d 70 72 6f 70 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 ode-put-prop........malyon-opcod
7fc0 65 2d 61 72 65 61 64 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 63 e-aread....malyon-opcode-print-c
7fe0 68 61 72 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 6e 75 6d har......malyon-opcode-print-num
8000 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 61 6e 64 6f 6d 20 20 20 20 20 20 20 20 ....malyon-opcode-random........
8020 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 75 73 68 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f ..malyon-opcode-push....malyon-o
8040 70 63 6f 64 65 2d 70 75 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 pcode-pull............malyon-opc
8060 6f 64 65 2d 73 70 6c 69 74 2d 77 69 6e 64 6f 77 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 ode-split-window....malyon-opcod
8080 65 2d 73 65 74 2d 77 69 6e 64 6f 77 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d e-set-window......malyon-opcode-
80a0 63 61 6c 6c 73 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 65 72 61 73 65 2d 77 69 6e calls....malyon-opcode-erase-win
80c0 64 6f 77 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 65 72 61 73 65 2d 6c 69 6e 65 0a dow....malyon-opcode-erase-line.
80e0 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 75 72 73 6f 72 20 20 20 20 20 ...malyon-opcode-set-cursor.....
8100 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 63 75 72 73 6f 72 0a 20 20 20 6d 61 6c .malyon-opcode-get-cursor....mal
8120 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 74 65 78 74 2d 73 74 79 6c 65 20 20 6d 61 6c 79 6f yon-opcode-set-text-style..malyo
8140 6e 2d 6f 70 63 6f 64 65 2d 62 75 66 66 65 72 2d 6d 6f 64 65 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f n-opcode-buffer-mode....malyon-o
8160 70 63 6f 64 65 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 pcode-output-stream...malyon-opc
8180 6f 64 65 2d 69 6e 70 75 74 2d 73 74 72 65 61 6d 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 ode-input-stream....malyon-opcod
81a0 65 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d e-nop.............malyon-opcode-
81c0 72 65 61 64 2d 63 68 61 72 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 63 61 6e 2d read-char....malyon-opcode-scan-
81e0 74 61 62 6c 65 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 74 0a 20 20 20 table......malyon-opcode-not....
8200 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 malyon-opcode-calln...........ma
8220 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 6e 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f lyon-opcode-calln....malyon-opco
8240 64 65 2d 74 6f 6b 65 6e 69 73 65 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 de-tokenise........malyon-opcode
8260 2d 65 6e 63 6f 64 65 2d 74 65 78 74 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 6f -encode-text....malyon-opcode-co
8280 70 79 2d 74 61 62 6c 65 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e py-table......malyon-opcode-prin
82a0 74 2d 74 61 62 6c 65 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 68 65 63 6b 2d 61 t-table....malyon-opcode-check-a
82c0 72 67 2d 63 6f 75 6e 74 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 61 76 65 0a 20 20 20 6d rg-count.malyon-opcode-save....m
82e0 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 73 74 6f 72 65 20 20 20 20 20 20 20 20 20 6d 61 6c alyon-opcode-restore.........mal
8300 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 67 2d 73 68 69 66 74 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f yon-opcode-log-shift....malyon-o
8320 70 63 6f 64 65 2d 61 72 74 2d 73 68 69 66 74 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 pcode-art-shift.......malyon-opc
8340 6f 64 65 2d 73 65 74 2d 66 6f 6e 74 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c ode-set-font....malyon-opcode-il
8360 6c 65 67 61 6c 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 legal.........malyon-opcode-ille
8380 67 61 6c 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 67 61 6c 20 20 20 20 gal....malyon-opcode-illegal....
83a0 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 67 61 6c 0a 20 20 20 6d 61 .....malyon-opcode-illegal....ma
83c0 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 61 76 65 2d 75 6e 64 6f 20 20 20 20 20 20 20 6d 61 6c 79 lyon-opcode-save-undo.......maly
83e0 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 73 74 6f 72 65 2d 75 6e 64 6f 0a 20 20 20 6d 61 6c 79 6f 6e on-opcode-restore-undo....malyon
8400 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 75 6e 69 63 6f 64 65 20 20 20 6d 61 6c 79 6f 6e 2d 6f -opcode-print-unicode...malyon-o
8420 70 63 6f 64 65 2d 63 68 65 63 6b 2d 75 6e 69 63 6f 64 65 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 pcode-check-unicode....malyon-op
8440 63 6f 64 65 2d 6e 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f code-nop.............malyon-opco
8460 64 65 2d 6e 6f 70 0a 20 20 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 70 5d 0a 20 20 22 de-nop....malyon-opcode-nop]..."
8480 41 20 76 65 63 74 6f 72 20 6f 66 20 61 6c 6c 20 6b 6e 6f 77 6e 20 6c 65 67 61 6c 20 5a 2d 63 6f A.vector.of.all.known.legal.Z-co
84a0 64 65 20 6f 70 63 6f 64 65 73 2e 22 29 0a 0a 3b 3b 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e de.opcodes.")..;;.initialization
84c0 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6c 6f 61 64 2d 73 74 6f 72 79 2d 66 72 6f 6d 2d ..(defun.malyon-load-story-from-
84e0 62 75 66 66 65 72 20 28 6d 69 6e 20 6d 61 78 29 0a 20 20 22 4c 6f 61 64 20 61 20 5a 2d 63 6f 64 buffer.(min.max)..."Load.a.Z-cod
8500 65 20 73 74 6f 72 79 20 69 6e 74 6f 20 61 6e 20 69 6e 74 65 72 6e 61 6c 20 76 65 63 74 6f 72 2e e.story.into.an.internal.vector.
8520 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 28 73 74 72 "...(setq.malyon-story-file.(str
8540 69 6e 67 2d 74 6f 2d 76 65 63 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ing-to-vector...................
8560 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 .........(buffer-substring-no-pr
8580 6f 70 65 72 74 69 65 73 20 6d 69 6e 20 6d 61 78 29 29 29 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 operties.min.max)))...(if.(not.(
85a0 65 71 20 3f 5c 5e 41 20 31 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 20 30 29 29 0a 20 eq.?\^A.1)).......(let.((i.0))..
85c0 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 28 6c 65 6e 67 74 68 20 6d 61 6c 79 6f .......(while.(<.i.(length.malyo
85e0 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d n-story-file))...........(aset.m
8600 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alyon-story-file................
8620 20 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d .i.................(malyon-char-
8640 74 6f 2d 69 6e 74 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 20 69 to-int.(aref.malyon-story-file.i
8660 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 29 )))...........(setq.i.(+.1.i))))
8680 29 0a 20 20 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6c 6f 61 64 2d 66 69 6c 65 20 28 )...)..(defun.malyon-load-file.(
86a0 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 22 4c 6f 61 64 20 61 20 62 69 6e 61 72 79 20 66 69 6c 65 file-name)..."Load.a.binary.file
86c0 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6d 61 .into.the.current.buffer."...(ma
86e0 6c 79 6f 6e 2d 64 69 73 61 62 6c 65 2d 6d 75 6c 74 69 62 79 74 65 29 0a 20 20 28 6d 61 6c 79 6f lyon-disable-multibyte)...(malyo
8700 6e 2d 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 64 69 6e 67 2d n-erase-buffer)...(let.((coding-
8720 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 27 62 69 6e 61 72 79 29 29 0a 20 20 20 20 28 69 system-for-read.'binary)).....(i
8740 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 69 6c 65 2d 6e 61 6d 65 29 29 29 nsert-file-contents.file-name)))
8760 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6d 61 6c 79 6f 6e 2d 69 66 66 2d 63 68 75 6e 6b 2d 73 70 65 ..(defconst.malyon-iff-chunk-spe
8780 63 0a 20 20 27 28 28 3a 69 64 20 20 20 20 20 73 74 72 20 34 29 0a 20 20 20 20 28 3a 6c 65 6e 67 c...'((:id.....str.4).....(:leng
87a0 74 68 20 75 33 32 29 29 0a 20 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 61 6e 20 49 46 th.u32))..."Description.of.an.IF
87c0 46 20 63 68 75 6e 6b 20 68 65 61 64 65 72 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6d 61 6c F.chunk.header.")..(defconst.mal
87e0 79 6f 6e 2d 52 49 64 78 2d 73 70 65 63 0a 20 20 27 28 28 3a 6e 75 6d 20 75 33 32 29 0a 20 20 20 yon-RIdx-spec...'((:num.u32)....
8800 20 28 3a 72 65 73 6f 75 72 63 65 73 20 72 65 70 65 61 74 20 28 3a 6e 75 6d 29 20 28 3a 75 73 61 .(:resources.repeat.(:num).(:usa
8820 67 65 20 73 74 72 20 34 29 20 28 3a 6e 75 6d 62 65 72 20 75 33 32 29 20 28 3a 73 74 61 72 74 20 ge.str.4).(:number.u32).(:start.
8840 75 33 32 29 29 29 0a 20 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 52 49 64 u32)))..."Description.of.the.RId
8860 78 20 63 68 75 6e 6b 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 75 6e 70 61 63 6b x.chunk.")..(defun.malyon-unpack
8880 20 28 73 70 65 63 20 73 74 61 72 74 20 6c 65 6e 67 74 68 29 0a 20 20 22 55 6e 70 61 63 6b 20 4c .(spec.start.length)..."Unpack.L
88a0 45 4e 47 54 48 20 62 79 74 65 73 20 61 74 20 30 2d 62 61 73 65 64 20 6f 66 66 73 65 74 20 53 54 ENGTH.bytes.at.0-based.offset.ST
88c0 41 52 54 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 53 50 45 43 2e 22 0a 20 20 28 62 69 6e 64 61 ART.according.to.SPEC."...(binda
88e0 74 2d 75 6e 70 61 63 6b 20 73 70 65 63 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d t-unpack.spec.(buffer-substring-
8900 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 31 2b 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 no-properties.(1+.start)........
8920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 31 20 73 74 61 72 74 20 6c 65 6e 67 74 68 ...............(+.1.start.length
8960 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6c 6f 61 64 2d 62 6c 6f 72 62 2d 66 ))))..(defun.malyon-load-blorb-f
8980 69 6c 65 20 28 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 22 4c 6f 61 64 20 61 20 5a 2d 63 6f 64 65 ile.(file-name)..."Load.a.Z-code
89a0 20 42 6c 6f 72 62 20 66 69 6c 65 20 69 6e 74 6f 20 61 6e 20 69 6e 74 65 72 6e 61 6c 20 76 65 63 .Blorb.file.into.an.internal.vec
89c0 74 6f 72 2e 22 0a 20 20 28 72 65 71 75 69 72 65 20 27 62 69 6e 64 61 74 29 0a 20 20 28 72 65 71 tor."...(require.'bindat)...(req
89e0 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 uire.'cl-lib)...(with-temp-buffe
8a00 72 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6c 6f 61 64 2d 66 69 6c 65 20 66 69 6c 65 2d 6e 61 6d r.....(malyon-load-file.file-nam
8a20 65 29 0a 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 2e 20 20 e).....;;.Check.the.signature...
8a40 4d 75 73 74 20 62 65 20 61 6e 20 49 46 46 20 66 69 6c 65 20 6f 66 20 74 79 70 65 20 49 46 52 53 Must.be.an.IFF.file.of.type.IFRS
8a60 0a 20 20 20 20 3b 3b 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 61 6e 20 52 49 64 78 20 63 68 .....;;.starting.with.an.RIdx.ch
8a80 75 6e 6b 2e 0a 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 73 74 72 69 6e 67 3d 20 22 46 4f 52 4d unk......(or.(and.(string=."FORM
8aa0 22 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 ".(buffer-substring-no-propertie
8ac0 73 20 31 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 22 49 s.1.5))..............(string=."I
8ae0 46 52 53 52 49 64 78 22 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 FRSRIdx".(buffer-substring-no-pr
8b00 6f 70 65 72 74 69 65 73 20 39 20 31 37 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 operties.9.17))).........(error.
8b20 22 4e 6f 74 20 61 20 42 6c 6f 72 62 20 66 69 6c 65 22 29 29 0a 20 20 20 20 3b 3b 20 55 6e 70 61 "Not.a.Blorb.file")).....;;.Unpa
8b40 63 6b 20 74 68 65 20 52 49 64 78 20 63 68 75 6e 6b 2c 20 66 69 6e 64 20 74 68 65 20 45 78 65 63 ck.the.RIdx.chunk,.find.the.Exec
8b60 20 63 68 75 6e 63 6b 2c 20 61 6e 64 20 75 6e 70 61 63 6b 20 69 74 73 20 68 65 61 64 65 72 2e 0a .chunck,.and.unpack.its.header..
8b80 20 20 20 20 28 6c 65 74 2a 20 28 28 72 69 64 78 2d 68 65 61 64 65 72 20 28 6d 61 6c 79 6f 6e 2d ....(let*.((ridx-header.(malyon-
8ba0 75 6e 70 61 63 6b 20 6d 61 6c 79 6f 6e 2d 69 66 66 2d 63 68 75 6e 6b 2d 73 70 65 63 20 31 32 20 unpack.malyon-iff-chunk-spec.12.
8bc0 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 69 64 78 20 20 20 20 20 20 20 20 28 6d 61 6c 8))............(ridx........(mal
8be0 79 6f 6e 2d 75 6e 70 61 63 6b 20 6d 61 6c 79 6f 6e 2d 52 49 64 78 2d 73 70 65 63 20 32 30 0a 20 yon-unpack.malyon-RIdx-spec.20..
8c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8c20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 71 20 3a 6c 65 6e 67 74 68 20 72 69 64 78 2d 68 65 ......(cdr.(assq.:length.ridx-he
8c40 61 64 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 78 65 63 20 28 63 6c 2d 66 69 ader))))............(exec.(cl-fi
8c60 6e 64 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f nd-if...................(functio
8c80 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 72 29 n....................(lambda.(r)
8ca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3d 20 30 20 ......................(and.(=.0.
8cc0 28 63 64 72 20 28 61 73 73 71 20 3a 6e 75 6d 62 65 72 20 72 29 29 29 0a 20 20 20 20 20 20 20 20 (cdr.(assq.:number.r))).........
8ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 22 45 78 65 63 ..................(string=."Exec
8d00 22 20 28 63 64 72 20 28 61 73 73 71 20 3a 75 73 61 67 65 20 72 29 29 29 29 29 29 0a 20 20 20 20 ".(cdr.(assq.:usage.r)))))).....
8d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 71 20 3a 72 65 73 6f 75 72 ..............(cdr.(assq.:resour
8d40 63 65 73 20 72 69 64 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 6f 72 79 2d 73 ces.ridx))))............(story-s
8d60 74 61 72 74 20 28 63 64 72 20 28 61 73 73 71 20 3a 73 74 61 72 74 20 65 78 65 63 29 29 29 0a 20 tart.(cdr.(assq.:start.exec)))..
8d80 20 20 20 20 20 20 20 20 20 20 28 65 78 65 63 2d 68 65 61 64 65 72 20 28 6d 61 6c 79 6f 6e 2d 75 ..........(exec-header.(malyon-u
8da0 6e 70 61 63 6b 20 6d 61 6c 79 6f 6e 2d 69 66 66 2d 63 68 75 6e 6b 2d 73 70 65 63 20 73 74 6f 72 npack.malyon-iff-chunk-spec.stor
8dc0 79 2d 73 74 61 72 74 20 38 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 45 6e 73 75 72 65 20 74 68 61 y-start.8))).......;;.Ensure.tha
8de0 74 20 74 68 65 20 45 78 65 63 20 63 68 75 6e 6b 20 69 73 20 5a 2d 63 6f 64 65 2e 0a 20 20 20 20 t.the.Exec.chunk.is.Z-code......
8e00 20 20 28 6f 72 20 28 73 74 72 69 6e 67 3d 20 22 5a 43 4f 44 22 20 28 63 64 72 20 28 61 73 73 71 ..(or.(string=."ZCOD".(cdr.(assq
8e20 20 3a 69 64 20 65 78 65 63 2d 68 65 61 64 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 .:id.exec-header)))...........(e
8e40 72 72 6f 72 20 22 4e 6f 74 20 61 20 5a 2d 63 6f 64 65 20 42 6c 6f 72 62 20 66 69 6c 65 22 29 29 rror."Not.a.Z-code.Blorb.file"))
8e60 0a 20 20 20 20 20 20 3b 3b 20 4c 6f 61 64 20 74 68 65 20 5a 2d 63 6f 64 65 20 66 72 6f 6d 20 74 .......;;.Load.the.Z-code.from.t
8e80 68 65 20 63 68 75 6e 6b 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 6f he.chunk........(setq.malyon-sto
8ea0 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 6d ry-file-name.file-name).......(m
8ec0 61 6c 79 6f 6e 2d 6c 6f 61 64 2d 73 74 6f 72 79 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 28 2b 20 alyon-load-story-from-buffer.(+.
8ee0 39 20 73 74 6f 72 79 2d 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 9.story-start)..................
8f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 39 20 73 74 6f 72 79 2d 73 ....................(+.9.story-s
8f20 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tart............................
8f40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 71 20 3a 6c 65 6e 67 74 68 20 .............(cdr.(assq.:length.
8f60 65 78 65 63 2d 68 65 61 64 65 72 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f exec-header)))))))..(defun.malyo
8f80 6e 2d 6c 6f 61 64 2d 73 74 6f 72 79 2d 66 69 6c 65 20 28 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 n-load-story-file.(file-name)...
8fa0 22 4c 6f 61 64 20 61 20 5a 2d 63 6f 64 65 20 73 74 6f 72 79 20 66 69 6c 65 20 69 6e 74 6f 20 61 "Load.a.Z-code.story.file.into.a
8fc0 6e 20 69 6e 74 65 72 6e 61 6c 20 76 65 63 74 6f 72 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 n.internal.vector."...(with-temp
8fe0 2d 62 75 66 66 65 72 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6c 6f 61 64 2d 66 69 6c 65 20 66 69 -buffer.....(malyon-load-file.fi
9000 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d le-name).....(setq.malyon-story-
9020 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e file-name.file-name).....(malyon
9040 2d 6c 6f 61 64 2d 73 74 6f 72 79 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 28 70 6f 69 6e 74 2d 6d -load-story-from-buffer.(point-m
9060 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f in).(point-max))))..(defun.malyo
9080 6e 2d 69 6e 69 74 69 61 6c 69 7a 65 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 n-initialize.()..."Initialize.th
90a0 65 20 5a 2d 63 6f 64 65 20 69 6e 74 65 72 70 72 65 74 65 72 2e 22 0a 3b 20 20 28 6d 61 6c 79 6f e.Z-code.interpreter.".;..(malyo
90c0 6e 2d 74 72 61 63 65 2d 66 69 6c 65 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 67 61 6d n-trace-file)...(setq.malyon-gam
90e0 65 2d 73 74 61 74 65 2d 71 75 65 74 7a 61 6c 20 74 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 e-state-quetzal.t)...(malyon-ini
9100 74 69 61 6c 69 7a 65 2d 73 74 61 74 75 73 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 tialize-status)...(malyon-initia
9120 6c 69 7a 65 2d 74 72 61 6e 73 63 72 69 70 74 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 lize-transcript)...(malyon-initi
9140 61 6c 69 7a 65 2d 77 69 6e 64 6f 77 73 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c alize-windows)...(malyon-initial
9160 69 7a 65 2d 73 74 6f 72 79 2d 68 65 61 64 65 72 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 74 ize-story-header)...(malyon-init
9180 69 61 6c 69 7a 65 2d 72 65 67 69 73 74 65 72 73 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 74 ialize-registers)...(malyon-init
91a0 69 61 6c 69 7a 65 2d 6f 70 63 6f 64 65 73 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 ialize-opcodes)...(malyon-histor
91c0 79 2d 63 6c 65 61 72 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 y-clear)...(setq.malyon-game-sta
91e0 74 65 2d 72 65 73 74 61 72 74 20 28 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e 74 2d 67 61 6d 65 2d te-restart.(malyon-current-game-
9200 73 74 61 74 65 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 68 65 61 64 65 72 29 29 state))...(malyon-print-header))
9220 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 73 74 61 74 75 ..(defun.malyon-initialize-statu
9240 73 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 73 74 61 74 75 73 20 62 75 s.()..."Initialize.the.status.bu
9260 66 66 65 72 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 ffer."...(setq.malyon-status-buf
9280 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 4d 61 6c 79 6f 6e 20 53 fer.(get-buffer-create."Malyon.S
92a0 74 61 74 75 73 22 29 29 0a 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 6d 61 6c tatus"))...(switch-to-buffer.mal
92c0 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 65 72 61 yon-status-buffer)...(malyon-era
92e0 73 65 2d 62 75 66 66 65 72 29 0a 20 20 28 6b 69 6c 6c 2d 61 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 se-buffer)...(kill-all-local-var
9300 69 61 62 6c 65 73 29 0a 20 20 28 73 65 74 71 20 63 75 72 73 6f 72 2d 69 6e 2d 6e 6f 6e 2d 73 65 iables)...(setq.cursor-in-non-se
9320 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 73 20 6e 69 6c 29 0a 20 20 28 73 65 74 71 20 6d 6f 64 65 lected-windows.nil)...(setq.mode
9340 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 6e 69 6c 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e -line-format.nil)...(setq.malyon
9360 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 -status-buffer-point.(point))...
9380 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 6c 69 6e 65 73 (setq.malyon-status-buffer-lines
93a0 20 30 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 .0)...(setq.malyon-status-buffer
93c0 2d 64 65 6c 61 79 65 64 2d 73 70 6c 69 74 20 6e 69 6c 29 0a 20 20 28 75 73 65 2d 6c 6f 63 61 6c -delayed-split.nil)...(use-local
93e0 2d 6d 61 70 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 29 0a 20 20 28 73 65 74 2d -map.malyon-keymap-read)...(set-
9400 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 6d 61 6c 79 6f 6e 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 syntax-table.malyon-syntax-table
9420 29 0a 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6e 61 6d 65 20 22 4d 61 6c 79 6f 6e 22 29 0a 20 20 )...(setq.mode-name."Malyon")...
9440 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6d 61 6c 79 6f 6e 2d 6d 6f 64 65 29 0a 20 (setq.major-mode.'malyon-mode)..
9460 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6d 61 6c 79 6f 6e 2d 6d 6f 64 65 2d 68 6f 6f 6b 29 29 0a .(run-hooks.'malyon-mode-hook)).
9480 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 74 72 61 6e 73 63 .(defun.malyon-initialize-transc
94a0 72 69 70 74 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 74 72 61 6e 73 63 ript.()..."Initialize.the.transc
94c0 72 69 70 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 74 72 61 ript.buffer."...(setq.malyon-tra
94e0 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 nscript-buffer.(get-buffer-creat
9500 65 20 22 4d 61 6c 79 6f 6e 20 54 72 61 6e 73 63 72 69 70 74 22 29 29 0a 20 20 28 73 77 69 74 63 e."Malyon.Transcript"))...(switc
9520 68 2d 74 6f 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 h-to-buffer.malyon-transcript-bu
9540 66 66 65 72 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 ffer)...(malyon-erase-buffer)...
9560 28 6b 69 6c 6c 2d 61 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 29 0a 20 20 28 73 65 (kill-all-local-variables)...(se
9580 74 71 20 6d 61 6c 79 6f 6e 2d 6c 61 73 74 2d 63 75 72 73 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 61 tq.malyon-last-cursor-position-a
95a0 66 74 65 72 2d 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 6f 69 6e 74 fter-input.........(malyon-point
95c0 2d 6d 61 78 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 29 29 0a -max.malyon-transcript-buffer)).
95e0 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 ..(use-local-map.malyon-keymap-r
9600 65 61 64 29 0a 20 20 28 73 65 74 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 6d 61 6c 79 6f 6e 2d ead)...(set-syntax-table.malyon-
9620 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 0a 20 20 28 73 65 74 71 20 66 69 6c 6c 2d 63 6f 6c 75 6d syntax-table)...(setq.fill-colum
9640 6e 20 6d 61 6c 79 6f 6e 2d 6d 61 78 2d 63 6f 6c 75 6d 6e 29 0a 20 20 28 61 75 74 6f 2d 66 69 6c n.malyon-max-column)...(auto-fil
9660 6c 2d 6d 6f 64 65 20 31 29 0a 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6e 61 6d 65 20 22 4d 61 6c l-mode.1)...(setq.mode-name."Mal
9680 79 6f 6e 22 29 0a 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6d 61 6c 79 6f 6e yon")...(setq.major-mode.'malyon
96a0 2d 6d 6f 64 65 29 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6d 61 6c 79 6f 6e 2d 6d 6f 64 65 -mode)...(run-hooks.'malyon-mode
96c0 2d 68 6f 6f 6b 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 7a -hook))..(defun.malyon-initializ
96e0 65 2d 77 69 6e 64 6f 77 73 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 77 e-windows.()..."Initialize.the.w
9700 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 7a 20 6d 61 indow.configuration.for.the.z.ma
9720 63 68 69 6e 65 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 chine."...(setq.malyon-transcrip
9740 74 2d 62 75 66 66 65 72 2d 62 75 66 66 65 72 65 64 20 74 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 t-buffer-buffered.t)...(malyon-s
9760 65 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 30 29 0a 20 20 28 6d 61 et-window-configuration.0)...(ma
9780 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 77 69 6e 64 6f 77 20 30 29 29 0a 0a 28 64 65 66 lyon-opcode-set-window.0))..(def
97a0 75 6e 20 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 73 74 6f 72 79 2d 68 65 61 64 65 un.malyon-initialize-story-heade
97c0 72 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 73 20 74 68 65 20 68 65 61 64 65 72 20 73 r.()..."Initializes.the.header.s
97e0 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 0a 20 20 28 6d 61 ection.of.the.story.file."...(ma
9800 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lyon-store-byte.1...............
9820 20 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 .......(if.(>=.malyon-story-vers
9840 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.5)..........................
9860 32 38 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 67 69 6f 28........................(logio
9880 72 20 23 78 32 30 20 28 6c 6f 67 61 6e 64 20 23 62 31 31 31 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 r.#x20.(logand.#b111.(malyon-rea
98a0 64 2d 62 79 74 65 20 31 29 29 29 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 d-byte.1)))))...(malyon-store-by
98c0 74 65 20 31 36 20 28 6c 6f 67 61 6e 64 20 34 34 30 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 te.16.(logand.440.(malyon-read-b
98e0 79 74 65 20 31 36 29 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 33 yte.16)))...(malyon-store-byte.3
9900 30 20 31 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 33 31 20 36 35 29 0.1)...(malyon-store-byte.31.65)
9920 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 33 32 20 32 35 35 29 0a 20 20 ...(malyon-store-byte.32.255)...
9940 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 33 33 20 28 2d 20 6d 61 6c 79 6f 6e 2d (malyon-store-byte.33.(-.malyon-
9960 6d 61 78 2d 63 6f 6c 75 6d 6e 20 31 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 max-column.1))...(malyon-store-w
9980 6f 72 64 20 33 34 20 28 2d 20 6d 61 6c 79 6f 6e 2d 6d 61 78 2d 63 6f 6c 75 6d 6e 20 31 29 29 0a ord.34.(-.malyon-max-column.1)).
99a0 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 33 36 20 32 35 35 29 0a 20 20 28 ..(malyon-store-word.36.255)...(
99c0 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 33 38 20 31 29 0a 20 20 28 6d 61 6c 79 6f malyon-store-word.38.1)...(malyo
99e0 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 33 39 20 31 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f n-store-word.39.1)...(malyon-sto
9a00 72 65 2d 62 79 74 65 20 34 34 20 30 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 re-byte.44.0)...(malyon-store-by
9a20 74 65 20 34 35 20 30 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 35 30 te.45.0)...(malyon-store-byte.50
9a40 20 31 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 35 31 20 30 29 29 0a .1)...(malyon-store-byte.51.0)).
9a60 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 72 65 67 69 73 74 .(defun.malyon-initialize-regist
9a80 65 72 73 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 69 6e 74 65 72 70 72 ers.()..."Initialize.the.interpr
9aa0 65 74 65 72 27 73 20 69 6e 74 65 72 6e 61 6c 20 72 65 67 69 73 74 65 72 73 2e 22 0a 20 20 28 73 eter's.internal.registers."...(s
9ac0 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 31 30 etq.malyon-stack.(make-vector.10
9ae0 32 34 20 30 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 24.0))...(setq.malyon-stack-poin
9b00 74 65 72 20 2d 31 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 69 6e 69 74 69 61 6c 2d 66 ter.-1)...(malyon-push-initial-f
9b20 72 61 6d 65 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 rame)...(setq.malyon-frame-point
9b40 65 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 29 0a 20 20 28 73 65 74 71 er.malyon-stack-pointer)...(setq
9b60 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 28 6d 61 6c .malyon-instruction-pointer.(mal
9b80 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 36 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e yon-read-word.6))...(setq.malyon
9ba0 2d 67 6c 6f 62 61 6c 2d 76 61 72 69 61 62 6c 65 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 -global-variables.(malyon-read-w
9bc0 6f 72 64 20 31 32 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 74 ord.12))...(setq.malyon-object-t
9be0 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 31 30 29 29 0a 20 20 28 63 able.(malyon-read-word.10))...(c
9c00 6f 6e 64 20 28 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a ond.((<.malyon-story-version.5).
9c20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 74 61 62 .........(setq.malyon-object-tab
9c40 6c 65 2d 65 6e 74 72 79 2d 73 69 7a 65 20 39 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 le-entry-size.9)..........(setq.
9c60 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 69 65 73 20 20 20 20 20 20 20 33 malyon-object-properties.......3
9c80 31 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 1)..........(setq.malyon-object-
9ca0 70 72 6f 70 65 72 74 79 2d 6f 66 66 73 65 74 20 20 37 29 29 0a 20 20 20 20 20 20 20 20 28 74 0a property-offset..7)).........(t.
9cc0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 74 61 62 .........(setq.malyon-object-tab
9ce0 6c 65 2d 65 6e 74 72 79 2d 73 69 7a 65 20 31 34 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 le-entry-size.14)..........(setq
9d00 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 69 65 73 20 20 20 20 20 20 20 .malyon-object-properties.......
9d20 36 33 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 63)..........(setq.malyon-object
9d40 2d 70 72 6f 70 65 72 74 79 2d 6f 66 66 73 65 74 20 20 31 32 29 29 29 0a 20 20 28 73 65 74 71 20 -property-offset..12)))...(setq.
9d60 6d 61 6c 79 6f 6e 2d 61 62 62 72 65 76 69 61 74 69 6f 6e 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 malyon-abbreviations.(malyon-rea
9d80 64 2d 77 6f 72 64 20 32 34 29 29 0a 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 d-word.24))...(if.(<.malyon-stor
9da0 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d y-version.5).......(setq.malyon-
9dc0 73 63 6f 72 65 2d 67 61 6d 65 20 28 7a 65 72 6f 70 20 28 6c 6f 67 61 6e 64 20 32 20 28 6d 61 6c score-game.(zerop.(logand.2.(mal
9de0 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 31 29 29 29 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c yon-read-byte.1)))))...(setq.mal
9e00 79 6f 6e 2d 70 61 63 6b 65 64 2d 6d 75 6c 74 69 70 6c 69 65 72 0a 20 20 20 20 20 20 20 20 28 63 yon-packed-multiplier.........(c
9e20 61 64 72 20 28 61 73 73 71 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 27 adr.(assq.malyon-story-version.'
9e40 28 28 33 20 32 29 20 28 35 20 34 29 20 28 38 20 38 29 29 29 29 29 0a 20 20 28 69 66 20 28 6f 72 ((3.2).(5.4).(8.8)))))...(if.(or
9e60 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 28 7a 65 72 .(<.malyon-story-version.5).(zer
9e80 6f 70 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 35 32 29 29 29 0a 20 20 20 20 20 op.(malyon-read-word.52)))......
9ea0 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 61 6c 70 68 61 62 65 74 20 28 63 6f 6e 63 61 74 20 22 .(setq.malyon-alphabet.(concat."
9ec0 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 22 0a 20 20 20 20 abcdefghijklmnopqrstuvwxyz".....
9ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9f00 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 22 0a 20 20 20 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"....
9f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9f40 20 22 20 5c 6e 30 31 32 33 34 35 36 37 38 39 2e 2c 21 3f 5f 23 27 5c 22 2f 5c 5c 2d 3a 28 29 22 .".\n0123456789.,!?_#'\"/\\-:()"
9f60 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 61 6c 70 68 61 62 65 74 20 28 6d 61 )).....(setq.malyon-alphabet.(ma
9f80 6b 65 2d 73 74 72 69 6e 67 20 37 38 20 3f 20 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 20 30 ke-string.78.?.)).....(let.((i.0
9fa0 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 37 38 29 0a 20 20 20 20 20 20 20 )).......(while.(<.i.78)........
9fc0 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 61 6c 70 68 61 62 65 74 20 69 0a 20 20 20 20 20 20 20 .(aset.malyon-alphabet.i........
9fe0 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 69 20 28 6d .......(malyon-read-byte.(+.i.(m
a000 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 35 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 alyon-read-word.52)))).........(
a020 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 setq.i.(+.1.i)))))...(malyon-ini
a040 74 69 61 6c 69 7a 65 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c 65 29 0a 20 20 28 73 65 74 71 20 6d tialize-unicode-table)...(setq.m
a060 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f alyon-dictionary.(malyon-read-wo
a080 72 64 20 38 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 rd.8))...(setq.malyon-dictionary
a0a0 2d 65 6e 74 72 79 2d 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 -entry-length.........(malyon-re
a0c0 61 64 2d 62 79 74 65 0a 20 20 20 20 20 20 20 20 20 28 2b 20 31 20 6d 61 6c 79 6f 6e 2d 64 69 63 ad-byte..........(+.1.malyon-dic
a0e0 74 69 6f 6e 61 72 79 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 6d 61 6c 79 6f 6e tionary.(malyon-read-byte.malyon
a100 2d 64 69 63 74 69 6f 6e 61 72 79 29 29 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 64 -dictionary))))...(setq.malyon-d
a120 69 63 74 69 6f 6e 61 72 79 2d 6e 75 6d 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 20 20 20 20 28 6d ictionary-num-entries.........(m
a140 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 28 2b 20 32 20 6d 61 alyon-read-word..........(+.2.ma
a160 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 lyon-dictionary.(malyon-read-byt
a180 65 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 29 29 29 29 0a 20 20 28 73 65 74 71 20 e.malyon-dictionary))))...(setq.
a1a0 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 20 20 malyon-dictionary-entries.......
a1c0 20 20 28 2b 20 34 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 20 28 6d 61 6c 79 6f 6e ..(+.4.malyon-dictionary.(malyon
a1e0 2d 72 65 61 64 2d 62 79 74 65 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 29 29 29 0a -read-byte.malyon-dictionary))).
a200 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 77 6f 72 64 2d 6c ..(setq.malyon-dictionary-word-l
a220 65 6e 67 74 68 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f ength.(if.(<.malyon-story-versio
a240 6e 20 35 29 20 33 20 35 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e n.5).3.5))...(setq.malyon-curren
a260 74 2d 66 61 63 65 20 27 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 70 6c 61 69 6e 29 0a 20 20 28 73 65 t-face.'malyon-face-plain)...(se
a280 74 71 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 65 70 61 72 61 74 6f 72 20 6e 69 6c 29 0a 20 tq.malyon-print-separator.nil)..
a2a0 20 28 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 .(malyon-initialize-output-strea
a2c0 6d 73 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 6f ms))..(defun.malyon-initialize-o
a2e0 70 63 6f 64 65 73 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 6f 70 63 6f pcodes.()..."Initialize.the.opco
a300 64 65 20 74 61 62 6c 65 20 75 73 65 64 20 62 79 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 2e de.table.used.by.the.story.file.
a320 22 0a 20 20 28 63 6f 6e 64 20 28 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 "...(cond.((<.malyon-story-versi
a340 6f 6e 20 35 29 0a 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f on.5)..........(aset.malyon-opco
a360 64 65 73 20 31 34 33 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 74 29 0a 20 20 20 20 des.143.'malyon-opcode-not).....
a380 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 20 31 38 31 20 27 6d .....(aset.malyon-opcodes.181.'m
a3a0 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 61 76 65 29 0a 20 20 20 20 20 20 20 20 20 28 61 73 65 alyon-opcode-save)..........(ase
a3c0 74 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 20 31 38 32 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 t.malyon-opcodes.182.'malyon-opc
a3e0 6f 64 65 2d 72 65 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 ode-restore)..........(aset.maly
a400 6f 6e 2d 6f 70 63 6f 64 65 73 20 31 38 35 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 6f on-opcodes.185.'malyon-opcode-po
a420 70 29 0a 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 p)..........(aset.malyon-opcodes
a440 20 31 38 38 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 68 6f 77 2d 73 74 61 74 75 73 29 .188.'malyon-opcode-show-status)
a460 29 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 ).........(t..........(aset.maly
a480 6f 6e 2d 6f 70 63 6f 64 65 73 20 31 34 33 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 on-opcodes.143.'malyon-opcode-ca
a4a0 6c 6c 6e 29 0a 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 lln)..........(aset.malyon-opcod
a4c0 65 73 20 31 38 31 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 67 61 6c 29 0a 20 es.181.'malyon-opcode-illegal)..
a4e0 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 20 31 38 32 ........(aset.malyon-opcodes.182
a500 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c 6c 65 67 61 6c 29 0a 20 20 20 20 20 20 20 .'malyon-opcode-illegal)........
a520 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 20 31 38 35 20 27 6d 61 6c 79 ..(aset.malyon-opcodes.185.'maly
a540 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 63 on-opcode-catch)..........;;.Tec
a560 68 6e 69 63 61 6c 6c 79 2c 20 31 38 38 20 28 73 68 6f 77 5f 73 74 61 74 75 73 29 20 69 73 20 76 hnically,.188.(show_status).is.v
a580 33 20 6f 6e 6c 79 2c 20 62 75 74 20 56 65 72 73 69 6f 6e 20 35 20 52 65 6c 65 61 73 65 20 32 33 3.only,.but.Version.5.Release.23
a5a0 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 66 20 57 69 73 68 62 72 69 6e 67 65 72 20 63 6f 6e 74 ..........;;.of.Wishbringer.cont
a5c0 61 69 6e 73 20 69 74 20 62 79 20 61 63 63 69 64 65 6e 74 2c 20 73 6f 20 74 72 65 61 74 20 69 74 ains.it.by.accident,.so.treat.it
a5e0 20 61 73 20 4e 4f 50 20 69 6e 73 74 65 61 64 2e 0a 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 .as.NOP.instead...........(aset.
a600 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 20 31 38 38 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 malyon-opcodes.188.'malyon-opcod
a620 65 2d 6e 6f 70 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 68 e-nop))))..(defun.malyon-print-h
a640 65 61 64 65 72 20 28 29 0a 20 20 22 50 72 69 6e 74 20 6d 61 6c 79 6f 6e 20 6d 6f 64 65 20 68 65 eader.()..."Print.malyon.mode.he
a660 61 64 65 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 ader.information."...(malyon-opc
a680 6f 64 65 2d 73 65 74 2d 74 65 78 74 2d 73 74 79 6c 65 20 32 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d ode-set-text-style.2)...(malyon-
a6a0 70 72 69 6e 74 20 28 63 6f 6e 63 61 74 20 22 4d 61 6c 79 6f 6e 20 56 20 22 20 6d 61 6c 79 6f 6e print.(concat."Malyon.V.".malyon
a6c0 2d 76 65 72 73 69 6f 6e 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d -version))...(malyon-opcode-set-
a6e0 74 65 78 74 2d 73 74 79 6c 65 20 30 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6e 65 77 6c 69 6e 65 29 text-style.0)...(malyon-newline)
a700 0a 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 20 22 41 20 7a 2d 63 6f 64 65 20 69 6e 74 65 72 ...(malyon-print."A.z-code.inter
a720 70 72 65 74 65 72 20 66 6f 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 35 2c 20 61 6e 64 20 38 20 67 preter.for.version.3,.5,.and.8.g
a740 61 6d 65 73 2e 22 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6e 65 77 6c 69 6e 65 29 0a 20 20 28 6d 61 ames.")...(malyon-newline)...(ma
a760 6c 79 6f 6e 2d 70 72 69 6e 74 20 22 28 63 29 20 31 39 39 39 2d 32 30 31 31 20 62 79 20 50 65 74 lyon-print."(c).1999-2011.by.Pet
a780 65 72 20 49 6c 62 65 72 67 20 3c 70 65 74 65 72 2e 69 6c 62 65 72 67 40 67 6d 61 69 6c 2e 63 6f er.Ilberg.<peter.ilberg@gmail.co
a7a0 6d 3e 22 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6e 65 77 6c 69 6e 65 29 0a 20 20 28 6d 61 6c 79 6f m>")...(malyon-newline)...(malyo
a7c0 6e 2d 70 72 69 6e 74 20 22 28 63 29 20 32 30 31 36 20 62 79 20 45 72 69 6b 20 53 65 6c 62 65 72 n-print."(c).2016.by.Erik.Selber
a7e0 67 20 3c 65 72 69 6b 40 73 65 6c 62 65 72 67 2e 6f 72 67 3e 22 29 0a 20 20 28 6d 61 6c 79 6f 6e g.<erik@selberg.org>")...(malyon
a800 2d 6e 65 77 6c 69 6e 65 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6e 65 77 6c 69 6e 65 29 29 0a 0a 3b -newline)...(malyon-newline))..;
a820 3b 20 63 6c 65 61 6e 75 70 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 63 6c 65 61 6e 75 70 ;.cleanup..(defun.malyon-cleanup
a840 20 28 29 0a 20 20 22 43 6c 65 61 6e 20 75 70 20 74 68 65 20 5a 2d 63 6f 64 65 20 69 6e 74 65 72 .()..."Clean.up.the.Z-code.inter
a860 70 72 65 74 65 72 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 68 69 64 65 2d 69 6e 74 65 72 6e 61 6c preter."...(malyon-hide-internal
a880 2d 65 72 72 6f 72 73 20 22 63 6c 65 61 6e 75 70 20 66 61 69 6c 65 64 2e 22 0a 20 20 20 20 28 70 -errors."cleanup.failed.".....(p
a8a0 72 6f 67 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 rogn.......(setq.malyon-story-fi
a8c0 6c 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 77 69 6e 64 6f le.nil).......(setq.malyon-windo
a8e0 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 w-configuration.nil).......(setq
a900 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 72 65 73 74 61 72 74 20 6e 69 6c 29 0a .malyon-game-state-restart.nil).
a920 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 75 6e ......(setq.malyon-game-state-un
a940 64 6f 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 69 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 22 4d do.nil).......(if.(get-buffer."M
a960 61 6c 79 6f 6e 20 53 74 61 74 75 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 alyon.Status")...........(kill-b
a980 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 22 4d 61 6c 79 6f 6e 20 53 74 61 74 75 73 uffer.(get-buffer."Malyon.Status
a9a0 22 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 22 4d 61 6c 79 "))).......(if.(get-buffer."Maly
a9c0 6f 6e 20 54 72 61 6e 73 63 72 69 70 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e on.Transcript")...........(progn
a9e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 28 .............(switch-to-buffer.(
aa00 67 65 74 2d 62 75 66 66 65 72 20 22 4d 61 6c 79 6f 6e 20 54 72 61 6e 73 63 72 69 70 74 22 29 29 get-buffer."Malyon.Transcript"))
aa20 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 64 69 73 70 6c 61 79 2d 66 .............(malyon-redisplay-f
aa40 72 61 6d 65 20 28 73 65 6c 65 63 74 65 64 2d 66 72 61 6d 65 29 20 74 29 0a 20 20 20 20 20 20 20 rame.(selected-frame).t)........
aa60 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 73 20 28 67 65 74 2d .....(delete-other-windows.(get-
aa80 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 buffer-window.(current-buffer)))
aaa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 .............(widen)............
aac0 20 28 74 65 78 74 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f .(text-mode))).......(setq.malyo
aae0 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 n-status-buffer.nil).......(setq
ab00 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 29 .malyon-transcript-buffer.nil)))
ab20 29 0a 0a 3b 3b 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 0a 0a 28 64 65 66 75 6e 20 6d 61 6c )..;;.error.handling..(defun.mal
ab40 79 6f 6e 2d 66 61 74 61 6c 2d 65 72 72 6f 72 20 28 6d 65 73 73 61 67 65 29 0a 20 20 22 50 72 69 yon-fatal-error.(message)..."Pri
ab60 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 61 6e 64 20 61 62 6f 72 74 2e 22 0a 20 20 28 nt.error.message.and.abort."...(
ab80 73 65 74 71 20 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 4d 61 6c 79 6f 6e 20 66 61 74 setq.message.(concat."Malyon.fat
aba0 61 6c 20 65 72 72 6f 72 3a 20 22 20 6d 65 73 73 61 67 65 29 29 0a 20 20 28 75 6e 77 69 6e 64 2d al.error:.".message))...(unwind-
abc0 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 protect.......(with-current-buff
abe0 65 72 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 0a 20 20 20 20 er.malyon-transcript-buffer.....
ac00 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 ....(goto-char.(point-max)).....
ac20 20 20 20 20 28 6e 65 77 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 6e 65 77 6c 69 6e 65 29 0a ....(newline).........(newline).
ac40 20 20 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 30 0a 20 20 20 ........(put-text-property.0....
ac60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 ........................(length.
ac80 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 message)........................
aca0 20 20 20 20 27 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....'face.......................
acc0 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 .....'malyon-face-error.........
ace0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 29 0a 20 20 20 20 ...................message).....
ad00 20 20 20 20 28 69 6e 73 65 72 74 20 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 28 6e 65 ....(insert.message).........(ne
ad20 77 6c 69 6e 65 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 63 6c 65 61 6e 75 70 29 0a 20 20 20 wline)).....(malyon-cleanup)....
ad40 20 28 6d 61 6c 79 6f 6e 2d 72 65 64 69 73 70 6c 61 79 2d 66 72 61 6d 65 20 28 73 65 6c 65 63 74 .(malyon-redisplay-frame.(select
ad60 65 64 2d 66 72 61 6d 65 29 20 74 29 0a 20 20 20 20 28 65 72 72 6f 72 20 6d 65 73 73 61 67 65 29 ed-frame).t).....(error.message)
ad80 29 29 0a 0a 3b 3b 20 63 6f 6e 76 65 72 73 69 6f 6e 20 6f 66 20 7a 73 63 69 69 20 74 6f 20 61 73 ))..;;.conversion.of.zscii.to.as
ada0 63 69 69 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c cii..(defvar.malyon-unicode-tabl
adc0 65 20 6e 69 6c 0a 20 20 22 41 6e 20 61 72 72 61 79 20 6d 61 70 70 69 6e 67 20 7a 73 63 69 69 20 e.nil..."An.array.mapping.zscii.
ade0 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 6c 61 74 69 6e 2d 31 20 6f 6e 65 73 2e 22 29 0a 0a 28 characters.to.latin-1.ones.")..(
ae00 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 64 65 66 61 75 6c 74 2d 75 6e 69 63 6f 64 65 2d 74 61 defvar.malyon-default-unicode-ta
ae20 62 6c 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 61 72 72 61 79 20 6d 61 70 ble.nil..."The.default.array.map
ae40 70 69 6e 67 20 7a 73 63 69 69 20 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 6c 61 74 69 6e 2d 31 ping.zscii.characters.to.latin-1
ae60 20 6f 6e 65 73 2e 22 29 0a 0a 28 69 66 20 6d 61 6c 79 6f 6e 2d 64 65 66 61 75 6c 74 2d 75 6e 69 .ones.")..(if.malyon-default-uni
ae80 63 6f 64 65 2d 74 61 62 6c 65 0a 20 20 20 20 27 28 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f code-table.....'()...(setq.malyo
aea0 6e 2d 64 65 66 61 75 6c 74 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 n-default-unicode-table.........
aec0 5b 33 32 0a 20 20 20 20 20 20 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 [32..........0...0...0...0...0..
aee0 20 30 20 20 20 30 20 20 20 20 20 20 20 3b 20 20 20 31 20 2d 20 20 20 37 0a 20 20 20 20 20 20 20 .0...0.......;...1.-...7........
af00 20 20 38 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 31 30 20 20 30 20 20 20 30 20 ..8...0...0...0...0...10..0...0.
af20 20 20 3b 20 20 20 38 20 2d 20 20 31 35 0a 20 20 20 20 20 20 20 20 20 30 20 20 20 30 20 20 20 30 ..;...8.-..15..........0...0...0
af40 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 3b 20 20 31 36 20 2d 20 20 ...0...0...0...0...0...;..16.-..
af60 32 33 0a 20 20 20 20 20 20 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 33 39 20 20 30 20 20 20 23..........0...0...0...39..0...
af80 30 20 20 20 30 20 20 20 30 20 20 20 3b 20 20 32 34 20 2d 20 20 33 31 0a 20 20 20 20 20 20 20 20 0...0...0...;..24.-..31.........
afa0 20 33 32 20 20 33 33 20 20 33 34 20 20 33 35 20 20 33 36 20 20 33 37 20 20 33 38 20 20 33 39 20 .32..33..34..35..36..37..38..39.
afc0 20 3b 20 20 33 32 20 2d 20 20 33 39 0a 20 20 20 20 20 20 20 20 20 34 30 20 20 34 31 20 20 34 32 .;..32.-..39..........40..41..42
afe0 20 20 34 33 20 20 34 34 20 20 34 35 20 20 34 36 20 20 34 37 20 20 3b 20 20 34 30 20 2d 20 20 34 ..43..44..45..46..47..;..40.-..4
b000 37 0a 20 20 20 20 20 20 20 20 20 34 38 20 20 34 39 20 20 35 30 20 20 35 31 20 20 35 32 20 20 35 7..........48..49..50..51..52..5
b020 33 20 20 35 34 20 20 35 35 20 20 3b 20 20 34 38 20 2d 20 20 35 35 0a 20 20 20 20 20 20 20 20 20 3..54..55..;..48.-..55..........
b040 35 36 20 20 35 37 20 20 35 38 20 20 35 39 20 20 36 30 20 20 36 31 20 20 36 32 20 20 36 33 20 20 56..57..58..59..60..61..62..63..
b060 3b 20 20 35 36 20 2d 20 20 36 33 0a 20 20 20 20 20 20 20 20 20 36 34 20 20 36 35 20 20 36 36 20 ;..56.-..63..........64..65..66.
b080 20 36 37 20 20 36 38 20 20 36 39 20 20 37 30 20 20 37 31 20 20 3b 20 20 36 34 20 2d 20 20 37 31 .67..68..69..70..71..;..64.-..71
b0a0 0a 20 20 20 20 20 20 20 20 20 37 32 20 20 37 33 20 20 37 34 20 20 37 35 20 20 37 36 20 20 37 37 ..........72..73..74..75..76..77
b0c0 20 20 37 38 20 20 37 39 20 20 3b 20 20 37 32 20 2d 20 20 37 39 0a 20 20 20 20 20 20 20 20 20 38 ..78..79..;..72.-..79..........8
b0e0 30 20 20 38 31 20 20 38 32 20 20 38 33 20 20 38 34 20 20 38 35 20 20 38 36 20 20 38 37 20 20 3b 0..81..82..83..84..85..86..87..;
b100 20 20 38 30 20 2d 20 20 38 37 0a 20 20 20 20 20 20 20 20 20 38 38 20 20 38 39 20 20 39 30 20 20 ..80.-..87..........88..89..90..
b120 39 31 20 20 39 32 20 20 39 33 20 20 39 34 20 20 39 35 20 20 3b 20 20 38 38 20 2d 20 20 39 35 0a 91..92..93..94..95..;..88.-..95.
b140 20 20 20 20 20 20 20 20 20 39 36 20 20 39 37 20 20 39 38 20 20 39 39 20 20 31 30 30 20 31 30 31 .........96..97..98..99..100.101
b160 20 31 30 32 20 31 30 33 20 3b 20 20 39 36 20 2d 20 31 30 33 0a 20 20 20 20 20 20 20 20 20 31 30 .102.103.;..96.-.103..........10
b180 34 20 31 30 35 20 31 30 36 20 31 30 37 20 31 30 38 20 31 30 39 20 31 31 30 20 31 31 31 20 3b 20 4.105.106.107.108.109.110.111.;.
b1a0 31 30 34 20 2d 20 31 31 31 0a 20 20 20 20 20 20 20 20 20 31 31 32 20 31 31 33 20 31 31 34 20 31 104.-.111..........112.113.114.1
b1c0 31 35 20 31 31 36 20 31 31 37 20 31 31 38 20 31 31 39 20 3b 20 31 31 32 20 2d 20 31 31 39 0a 20 15.116.117.118.119.;.112.-.119..
b1e0 20 20 20 20 20 20 20 20 31 32 30 20 31 32 31 20 31 32 32 20 31 32 33 20 31 32 34 20 31 32 35 20 ........120.121.122.123.124.125.
b200 31 32 36 20 30 20 20 20 3b 20 31 32 30 20 2d 20 31 32 37 0a 20 20 20 20 20 20 20 20 20 30 20 20 126.0...;.120.-.127..........0..
b220 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 3b 20 31 .0...0...0...0...0...0...0...;.1
b240 32 38 20 2d 20 31 33 35 0a 20 20 20 20 20 20 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 28.-.135..........0...0...0...0.
b260 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 3b 20 31 33 36 20 2d 20 31 34 33 0a 20 20 ..0...0...0...0...;.136.-.143...
b280 20 20 20 20 20 20 20 30 20 20 20 34 38 20 20 34 39 20 20 35 30 20 20 35 31 20 20 35 32 20 20 35 .......0...48..49..50..51..52..5
b2a0 33 20 20 35 34 20 20 3b 20 31 34 34 20 2d 20 31 35 31 0a 20 20 20 20 20 20 20 20 20 35 35 20 20 3..54..;.144.-.151..........55..
b2c0 35 36 20 20 35 37 20 20 32 32 38 20 32 34 36 20 32 35 32 20 31 39 36 20 32 31 34 20 3b 20 31 35 56..57..228.246.252.196.214.;.15
b2e0 32 20 2d 20 31 35 39 0a 20 20 20 20 20 20 20 20 20 32 32 30 20 32 32 33 20 31 38 37 20 31 37 31 2.-.159..........220.223.187.171
b300 20 32 33 35 20 32 33 39 20 32 35 35 20 32 30 33 20 3b 20 31 36 30 20 2d 20 31 36 37 0a 20 20 20 .235.239.255.203.;.160.-.167....
b320 20 20 20 20 20 20 32 30 37 20 32 32 35 20 32 33 33 20 32 33 37 20 32 34 33 20 32 35 30 20 32 35 ......207.225.233.237.243.250.25
b340 33 20 31 39 33 20 3b 20 31 36 38 20 2d 20 31 37 35 0a 20 20 20 20 20 20 20 20 20 32 30 31 20 32 3.193.;.168.-.175..........201.2
b360 30 35 20 32 31 31 20 32 31 38 20 32 32 31 20 32 32 34 20 32 33 32 20 32 33 36 20 3b 20 31 37 36 05.211.218.221.224.232.236.;.176
b380 20 2d 20 31 38 33 0a 20 20 20 20 20 20 20 20 20 32 34 32 20 32 34 39 20 31 39 32 20 32 30 30 20 .-.183..........242.249.192.200.
b3a0 32 30 34 20 32 31 30 20 32 31 37 20 32 32 36 20 3b 20 31 38 34 20 2d 20 31 39 31 0a 20 20 20 20 204.210.217.226.;.184.-.191.....
b3c0 20 20 20 20 20 32 33 34 20 32 33 38 20 32 34 34 20 32 35 31 20 31 39 34 20 32 30 32 20 32 30 36 .....234.238.244.251.194.202.206
b3e0 20 32 31 32 20 3b 20 31 39 32 20 2d 20 31 39 39 0a 20 20 20 20 20 20 20 20 20 32 31 39 20 32 32 .212.;.192.-.199..........219.22
b400 39 20 31 39 37 20 32 34 38 20 32 31 36 20 32 32 37 20 32 34 31 20 32 34 35 20 3b 20 32 30 30 20 9.197.248.216.227.241.245.;.200.
b420 2d 20 32 30 37 0a 20 20 20 20 20 20 20 20 20 31 39 35 20 32 30 39 20 32 31 33 20 32 33 30 20 31 -.207..........195.209.213.230.1
b440 39 38 20 32 33 31 20 31 39 39 20 32 35 34 20 3b 20 32 30 38 20 2d 20 32 31 35 0a 20 20 20 20 20 98.231.199.254.;.208.-.215......
b460 20 20 20 20 32 34 30 20 32 32 32 20 32 30 38 20 31 36 33 20 36 33 20 20 36 33 20 20 31 36 31 20 ....240.222.208.163.63..63..161.
b480 31 39 31 20 3b 20 32 31 36 20 2d 20 32 32 33 0a 20 20 20 20 20 20 20 20 20 30 20 20 20 30 20 20 191.;.216.-.223..........0...0..
b4a0 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 3b 20 32 32 34 20 2d .0...0...0...0...0...0...;.224.-
b4c0 20 32 33 31 0a 20 20 20 20 20 20 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 .231..........0...0...0...0...0.
b4e0 20 20 30 20 20 20 30 20 20 20 30 20 20 20 3b 20 32 33 32 20 2d 20 32 33 39 0a 20 20 20 20 20 20 ..0...0...0...;.232.-.239.......
b500 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 ...0...0...0...0...0...0...0...0
b520 20 20 20 3b 20 32 34 30 20 2d 20 32 34 37 0a 20 20 20 20 20 20 20 20 20 30 20 20 20 30 20 20 20 ...;.240.-.247..........0...0...
b540 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 30 20 20 20 3b 20 32 34 38 20 2d 20 0...0...0...0...0...0...;.248.-.
b560 32 35 35 0a 20 20 20 20 20 20 20 20 20 5d 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 255..........]))..(defun.malyon-
b580 69 6e 69 74 69 61 6c 69 7a 65 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c 65 20 28 29 0a 20 20 22 49 initialize-unicode-table.()..."I
b5a0 6e 69 74 69 61 6c 69 7a 65 73 20 74 68 65 20 7a 73 63 69 69 2d 74 6f 2d 75 6e 69 63 6f 64 65 20 nitializes.the.zscii-to-unicode.
b5c0 63 6f 6e 76 65 72 73 69 6f 6e 20 74 61 62 6c 65 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f conversion.table."...(setq.malyo
b5e0 6e 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 73 65 n-unicode-table.........(copy-se
b600 71 75 65 6e 63 65 20 6d 61 6c 79 6f 6e 2d 64 65 66 61 75 6c 74 2d 75 6e 69 63 6f 64 65 2d 74 61 quence.malyon-default-unicode-ta
b620 62 6c 65 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 65 78 74 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 ble))...(let*.((ext...(malyon-re
b640 61 64 2d 77 6f 72 64 20 35 34 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 20 20 28 69 66 ad-word.54))..........(len...(if
b660 20 28 7a 65 72 6f 70 20 65 78 74 29 20 30 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 .(zerop.ext).0.(malyon-read-word
b680 20 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 62 6c 65 20 28 69 66 20 28 3c 20 6c .ext)))..........(table.(if.(<.l
b6a0 65 6e 20 33 29 20 20 20 30 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 65 en.3)...0.(malyon-read-word.(+.e
b6c0 78 74 20 36 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 3c 20 6d 61 6c 79 6f 6e 2d xt.6))))).....(if.(or.(<.malyon-
b6e0 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 28 7a 65 72 6f 70 20 74 61 62 6c 65 29 29 0a story-version.5).(zerop.table)).
b700 20 20 20 20 20 20 20 20 27 28 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 20 30 29 29 0a 20 ........'().......(let.((i.0))..
b720 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 39 36 29 0a 20 20 20 20 20 20 20 20 20 .......(while.(<.i.96)..........
b740 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c 65 20 28 2b 20 31 .(aset.malyon-unicode-table.(+.1
b760 35 35 20 69 29 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 74 6f 2d 69 6e 74 20 3f 3f 29 29 0a 20 55.i).(malyon-char-to-int.??))..
b780 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 29 0a 20 20 20 20 .........(setq.i.(+.1.i)))).....
b7a0 20 20 28 73 65 74 71 20 6c 65 6e 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 74 61 ..(setq.len.(malyon-read-byte.ta
b7c0 62 6c 65 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 20 30 29 29 0a 20 20 20 20 20 20 20 ble)).......(let.((i.0))........
b7e0 20 28 77 68 69 6c 65 20 28 3c 20 69 20 6c 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 73 65 .(while.(<.i.len)...........(ase
b800 74 20 6d 61 6c 79 6f 6e 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c 65 20 28 2b 20 31 35 35 20 69 29 t.malyon-unicode-table.(+.155.i)
b820 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f .................(malyon-read-wo
b840 72 64 20 28 2b 20 74 61 62 6c 65 20 31 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 rd.(+.table.1.i)))...........(se
b860 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 tq.i.(+.1.i)))))))..(defsubst.ma
b880 6c 79 6f 6e 2d 7a 73 63 69 69 2d 74 6f 2d 75 6e 69 63 6f 64 65 20 28 63 68 61 72 29 0a 20 20 22 lyon-zscii-to-unicode.(char)..."
b8a0 43 6f 6e 76 65 72 74 73 20 61 20 7a 73 63 69 69 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 75 6e Converts.a.zscii.character.to.un
b8c0 69 63 6f 64 65 2e 22 0a 20 20 28 69 66 20 28 6f 72 20 28 3c 20 63 68 61 72 20 30 29 20 28 3e 20 icode."...(if.(or.(<.char.0).(>.
b8e0 63 68 61 72 20 32 35 35 29 29 0a 20 20 20 20 20 20 3f 3f 0a 20 20 20 20 28 6c 65 74 20 28 28 75 char.255)).......??.....(let.((u
b900 6e 69 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c 65 20 63 68 ni.(aref.malyon-unicode-table.ch
b920 61 72 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 75 6e 69 29 0a 20 20 20 20 ar))).......(if.(zerop.uni).....
b940 20 20 20 20 20 20 3f 3f 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 75 6e 69 62 79 74 65 ......??.........(malyon-unibyte
b960 2d 63 68 61 72 2d 74 6f 2d 6d 75 6c 74 69 62 79 74 65 20 28 6d 61 6c 79 6f 6e 2d 69 6e 74 2d 74 -char-to-multibyte.(malyon-int-t
b980 6f 2d 63 68 61 72 20 75 6e 69 29 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 o-char.uni))))))..(defsubst.maly
b9a0 6f 6e 2d 75 6e 69 63 6f 64 65 2d 74 6f 2d 7a 73 63 69 69 20 28 63 68 61 72 29 0a 20 20 22 43 6f on-unicode-to-zscii.(char)..."Co
b9c0 6e 76 65 72 74 73 20 61 20 75 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 7a 73 nverts.a.unicode.character.to.zs
b9e0 63 69 69 2e 22 0a 20 20 28 73 65 74 71 20 63 68 61 72 20 28 6d 61 6c 79 6f 6e 2d 6d 75 6c 74 69 cii."...(setq.char.(malyon-multi
ba00 62 79 74 65 2d 63 68 61 72 2d 74 6f 2d 75 6e 69 62 79 74 65 20 63 68 61 72 29 29 0a 20 20 28 73 byte-char-to-unibyte.char))...(s
ba20 65 74 71 20 63 68 61 72 20 28 69 66 20 28 63 68 61 72 61 63 74 65 72 70 20 63 68 61 72 29 20 28 etq.char.(if.(characterp.char).(
ba40 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 74 6f 2d 69 6e 74 20 63 68 61 72 29 20 63 68 61 72 29 29 0a malyon-char-to-int.char).char)).
ba60 20 20 28 69 66 20 28 3d 20 31 33 20 63 68 61 72 29 0a 20 20 20 20 20 20 3f 5c 72 0a 20 20 20 20 ..(if.(=.13.char).......?\r.....
ba80 28 6c 65 74 20 28 28 69 20 31 29 20 28 66 6f 75 6e 64 20 30 29 29 0a 20 20 20 20 20 20 28 77 68 (let.((i.1).(found.0)).......(wh
baa0 69 6c 65 20 28 61 6e 64 20 28 3c 20 69 20 32 35 35 29 20 28 7a 65 72 6f 70 20 66 6f 75 6e 64 29 ile.(and.(<.i.255).(zerop.found)
bac0 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 63 68 61 72 20 28 61 72 65 66 20 6d 61 6c 79 ).........(if.(=.char.(aref.maly
bae0 6f 6e 2d 75 6e 69 63 6f 64 65 2d 74 61 62 6c 65 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 on-unicode-table.i))............
bb00 20 28 73 65 74 71 20 66 6f 75 6e 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 .(setq.found.i)).........(setq.i
bb20 20 28 2b 20 69 20 31 29 29 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 74 2d 74 6f 2d .(+.i.1))).......(malyon-int-to-
bb40 63 68 61 72 20 66 6f 75 6e 64 29 29 29 29 0a 0a 3b 3b 20 6f 75 74 70 75 74 20 73 74 72 65 61 6d char.found))))..;;.output.stream
bb60 73 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 s..(defvar.malyon-output-streams
bb80 20 6e 69 6c 0a 20 20 22 56 61 6c 69 64 20 6f 75 74 70 75 74 20 73 74 72 65 61 6d 73 20 66 6f 72 .nil..."Valid.output.streams.for
bba0 20 74 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c .the.interpreter.")..(defvar.mal
bbc0 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 2d 74 61 62 6c 65 73 20 6e 69 6c 0a 20 20 yon-output-streams-tables.nil...
bbe0 22 41 20 6c 69 73 74 20 6f 66 20 61 63 74 69 76 65 20 74 61 62 6c 65 73 20 66 6f 72 20 73 74 72 "A.list.of.active.tables.for.str
bc00 65 61 6d 20 33 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 69 6e 69 74 69 61 6c 69 eam.3.")..(defun.malyon-initiali
bc20 7a 65 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 ze-output-streams.()..."Initiali
bc40 7a 65 73 20 74 68 65 20 6f 75 74 70 75 74 20 73 74 72 65 61 6d 73 2e 22 0a 20 20 28 73 65 74 71 zes.the.output.streams."...(setq
bc60 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 20 27 28 29 29 0a 20 20 28 73 .malyon-output-streams.'())...(s
bc80 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 2d 74 61 62 6c 65 73 etq.malyon-output-streams-tables
bca0 20 27 28 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 64 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 .'())...(malyon-add-output-strea
bcc0 6d 20 31 20 30 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 m.1.0))..(defun.malyon-output-st
bce0 72 65 61 6d 2d 66 75 6e 63 74 69 6f 6e 20 28 73 74 72 65 61 6d 29 0a 20 20 22 52 65 74 75 72 6e ream-function.(stream)..."Return
bd00 73 20 74 68 65 20 6f 75 74 70 75 74 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 72 65 73 65 6e 74 69 s.the.output.function.representi
bd20 6e 67 20 74 68 65 20 67 69 76 65 6e 20 73 74 72 65 61 6d 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 ng.the.given.stream."...(cond.((
bd40 3d 20 31 20 73 74 72 65 61 6d 29 20 28 69 66 20 28 7a 65 72 6f 70 20 6d 61 6c 79 6f 6e 2d 63 75 =.1.stream).(if.(zerop.malyon-cu
bd60 72 72 65 6e 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rrent-window)...................
bd80 20 20 20 20 20 20 20 20 27 6d 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d 74 72 61 6e 73 63 72 69 ........'malyon-putchar-transcri
bda0 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 6c 79 pt.........................'maly
bdc0 6f 6e 2d 70 75 74 63 68 61 72 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 28 28 3d 20 on-putchar-status)).........((=.
bde0 32 20 73 74 72 65 61 6d 29 20 27 6d 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d 70 72 69 6e 74 65 2.stream).'malyon-putchar-printe
be00 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 61 64 64 2d 6f 75 74 70 75 74 2d 73 r)))..(defun.malyon-add-output-s
be20 74 72 65 61 6d 20 28 73 74 72 65 61 6d 20 74 61 62 6c 65 29 0a 20 20 22 41 64 64 20 61 20 6e 65 tream.(stream.table)..."Add.a.ne
be40 77 20 6f 75 74 70 75 74 20 73 74 72 65 61 6d 2e 22 0a 20 20 28 69 66 20 28 3d 20 73 74 72 65 61 w.output.stream."...(if.(=.strea
be60 6d 20 33 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 m.3).......(progn.........(setq.
be80 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 2d 74 61 62 6c 65 73 0a 20 20 20 malyon-output-streams-tables....
bea0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 74 61 62 6c 65 20 6d 61 6c 79 6f 6e 2d 6f 75 ...........(cons.table.malyon-ou
bec0 74 70 75 74 2d 73 74 72 65 61 6d 73 2d 74 61 62 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 6d tput-streams-tables)).........(m
bee0 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 74 61 62 6c 65 20 30 29 29 0a 20 20 20 20 28 alyon-store-word.table.0)).....(
bf00 6c 65 74 20 28 28 66 75 6e 63 74 69 6f 6e 20 28 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 let.((function.(malyon-output-st
bf20 72 65 61 6d 2d 66 75 6e 63 74 69 6f 6e 20 73 74 72 65 61 6d 29 29 29 0a 20 20 20 20 20 20 28 73 ream-function.stream))).......(s
bf40 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 0a 20 20 20 20 20 20 etq.malyon-output-streams.......
bf60 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6c 79 6f ......(if.(member.function.malyo
bf80 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-output-streams)...............
bfa0 20 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 0a 20 20 20 20 20 20 20 20 ..malyon-output-streams.........
bfc0 20 20 20 20 20 20 28 63 6f 6e 73 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 ......(cons.function.malyon-outp
bfe0 75 74 2d 73 74 72 65 61 6d 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d ut-streams))))))..(defun.malyon-
c000 72 65 6d 6f 76 65 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 20 28 73 74 72 65 61 6d 29 0a 20 20 remove-output-stream.(stream)...
c020 22 52 65 6d 6f 76 65 20 61 6e 20 6f 75 74 70 75 74 20 73 74 72 65 61 6d 2e 22 0a 20 20 28 69 66 "Remove.an.output.stream."...(if
c040 20 28 3d 20 73 74 72 65 61 6d 20 33 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e .(=.stream.3).......(setq.malyon
c060 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 2d 74 61 62 6c 65 73 20 28 63 64 72 20 6d 61 6c 79 -output-streams-tables.(cdr.maly
c080 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 2d 74 61 62 6c 65 73 29 29 0a 20 20 20 20 28 on-output-streams-tables)).....(
c0a0 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 0a 09 20 20 28 72 setq.malyon-output-streams....(r
c0c0 65 6d 6f 76 65 20 28 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 2d 66 75 6e 63 emove.(malyon-output-stream-func
c0e0 74 69 6f 6e 20 73 74 72 65 61 6d 29 0a 09 09 09 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 tion.stream).....malyon-output-s
c100 74 72 65 61 6d 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 75 70 64 61 74 65 treams))))..(defun.malyon-update
c120 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 6f 75 74 -output-streams.()..."Update.out
c140 70 75 74 20 73 74 72 65 61 6d 73 20 77 68 65 6e 20 74 68 65 20 6f 75 74 70 75 74 20 77 69 6e 64 put.streams.when.the.output.wind
c160 6f 77 20 68 61 73 20 63 68 61 6e 67 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 6e 65 20 28 6f ow.has.changed."...(let.((one.(o
c180 72 20 28 6d 65 6d 62 65 72 20 27 6d 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d 74 72 61 6e 73 63 r.(member.'malyon-putchar-transc
c1a0 72 69 70 74 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 29 0a 20 20 20 20 ript.malyon-output-streams).....
c1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 27 6d 61 6c 79 6f 6e 2d 70 75 74 .............(member.'malyon-put
c1e0 63 68 61 72 2d 73 74 61 74 75 73 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 char-status.....malyon-output-st
c200 72 65 61 6d 73 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 reams)))).....(setq.malyon-outpu
c220 74 2d 73 74 72 65 61 6d 73 0a 09 20 20 28 72 65 6d 6f 76 65 20 27 6d 61 6c 79 6f 6e 2d 70 75 74 t-streams....(remove.'malyon-put
c240 63 68 61 72 2d 74 72 61 6e 73 63 72 69 70 74 0a 09 09 09 20 28 72 65 6d 6f 76 65 20 27 6d 61 6c char-transcript.....(remove.'mal
c260 79 6f 6e 2d 70 75 74 63 68 61 72 2d 73 74 61 74 75 73 0a 09 09 09 09 09 6d 61 6c 79 6f 6e 2d 6f yon-putchar-status......malyon-o
c280 75 74 70 75 74 2d 73 74 72 65 61 6d 73 29 29 29 0a 20 20 20 20 28 69 66 20 6f 6e 65 0a 20 20 20 utput-streams))).....(if.one....
c2a0 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 64 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 20 31 .....(malyon-add-output-stream.1
c2c0 20 30 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d .0))))..(defsubst.malyon-output-
c2e0 63 68 61 72 61 63 74 65 72 20 28 63 68 61 72 29 0a 20 20 22 4f 75 74 70 75 74 20 61 20 73 69 6e character.(char)..."Output.a.sin
c300 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 6e 20 61 6c 6c 20 61 63 74 69 76 65 20 73 74 72 65 gle.character.on.all.active.stre
c320 61 6d 73 2e 22 0a 20 20 28 73 65 74 71 20 63 68 61 72 20 28 6d 61 6c 79 6f 6e 2d 7a 73 63 69 69 ams."...(setq.char.(malyon-zscii
c340 2d 74 6f 2d 75 6e 69 63 6f 64 65 20 63 68 61 72 29 29 0a 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d -to-unicode.char))...(if.malyon-
c360 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 2d 74 61 62 6c 65 73 0a 20 20 20 20 20 20 28 6d 61 6c output-streams-tables.......(mal
c380 79 6f 6e 2d 70 75 74 63 68 61 72 2d 74 61 62 6c 65 20 63 68 61 72 20 28 63 61 72 20 6d 61 6c 79 yon-putchar-table.char.(car.maly
c3a0 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 2d 74 61 62 6c 65 73 29 29 0a 20 20 20 20 28 on-output-streams-tables)).....(
c3c0 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 66 75 6e 63 61 6c 6c 20 73 20 63 68 61 72 mapc.(lambda.(s).(funcall.s.char
c3e0 29 29 20 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 29 29 29 0a 0a 3b 3b 20 )).malyon-output-streams)))..;;.
c400 70 72 69 6e 74 69 6e 67 20 74 65 78 74 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d printing.text..(defsubst.malyon-
c420 61 62 62 72 65 76 20 28 61 62 62 72 65 76 20 78 29 0a 20 20 22 50 72 69 6e 74 20 61 6e 20 61 62 abbrev.(abbrev.x)..."Print.an.ab
c440 62 72 65 76 69 61 74 69 6f 6e 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 7a 74 65 breviation."...(malyon-print-zte
c460 78 74 0a 20 20 20 28 2a 20 32 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 xt....(*.2.(malyon-read-word.(+.
c480 6d 61 6c 79 6f 6e 2d 61 62 62 72 65 76 69 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 malyon-abbreviations............
c4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 32 20 28 2b 20 78 20 28 2a 20 33 ..................(*.2.(+.x.(*.3
c4c0 32 20 28 31 2d 20 61 62 62 72 65 76 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 2.(1-.abbrev)))))))))..(defun.ma
c4e0 6c 79 6f 6e 2d 6e 65 77 6c 69 6e 65 20 28 29 0a 20 20 22 50 72 69 6e 74 20 61 20 6e 65 77 6c 69 lyon-newline.()..."Print.a.newli
c500 6e 65 2e 22 0a 20 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 ne."...(if.(eq.malyon-status-buf
c520 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 67 6f 74 fer.(current-buffer)).......(got
c540 6f 2d 63 68 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 70 6f 69 6e o-char.malyon-status-buffer-poin
c560 74 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a t).....(goto-char.(point-max))).
c580 20 20 28 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 63 68 61 72 61 63 74 65 72 20 3f 5c 72 29 0a ..(malyon-output-character.?\r).
c5a0 20 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 20 28 ..(if.(eq.malyon-status-buffer.(
c5c0 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c current-buffer)).......(setq.mal
c5e0 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 yon-status-buffer-point.(point))
c600 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6d 61 6c 79 6f 6e 2d 6c 61 73 74 2d 63 75 72 73 .....(goto-char.malyon-last-curs
c620 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 6e 70 75 74 29 29 0a 20 20 28 6d 61 6c or-position-after-input))...(mal
c640 79 6f 6e 2d 72 65 64 69 73 70 6c 61 79 2d 66 72 61 6d 65 20 28 73 65 6c 65 63 74 65 64 2d 66 72 yon-redisplay-frame.(selected-fr
c660 61 6d 65 29 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 20 ame).nil))..(defun.malyon-print.
c680 28 6f 62 6a 65 63 74 29 0a 20 20 22 50 72 69 6e 74 20 74 65 78 74 2e 22 20 0a 20 20 28 6c 65 74 (object)..."Print.text."....(let
c6a0 20 28 28 74 65 78 74 20 28 69 66 20 28 63 68 61 72 61 63 74 65 72 70 20 6f 62 6a 65 63 74 29 20 .((text.(if.(characterp.object).
c6c0 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 6f 62 6a 65 63 74 29 20 6f 62 6a 65 63 74 29 29 (char-to-string.object).object))
c6e0 0a 09 28 73 74 61 72 74 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 74 72 ..(start)).....(if.(eq.malyon-tr
c700 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 anscript-buffer.(current-buffer)
c720 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 ).........(goto-char.(point-max)
c740 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 ).......(goto-char.malyon-status
c760 2d 62 75 66 66 65 72 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 -buffer-point)).....(setq.start.
c780 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 63 68 61 72 61 (point)).....(malyon-print-chara
c7a0 63 74 65 72 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 20 74 65 78 74 29 29 0a 20 20 20 cters.(string-to-list.text))....
c7c0 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 73 74 61 72 74 20 28 70 6f 69 6e 74 .(put-text-property.start.(point
c7e0 29 20 27 66 61 63 65 20 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e 74 2d 66 61 63 65 29 0a 20 20 20 ).'face.malyon-current-face)....
c800 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 20 28 63 .(if.(eq.malyon-status-buffer.(c
c820 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 urrent-buffer)).........(setq.ma
c840 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 lyon-status-buffer-point.(point)
c860 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6d 61 6c 79 6f 6e 2d 6c 61 73 74 2d 63 ).......(goto-char.malyon-last-c
c880 75 72 73 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 6e 70 75 74 29 29 29 29 0a 0a ursor-position-after-input))))..
c8a0 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 63 68 61 72 61 63 74 65 72 73 20 28 (defun.malyon-print-characters.(
c8c0 74 65 78 74 29 0a 20 20 22 50 72 69 6e 74 20 61 20 6c 69 73 74 20 6f 66 20 63 68 61 72 61 63 74 text)..."Print.a.list.of.charact
c8e0 65 72 73 2e 22 0a 20 20 28 6d 61 70 63 20 27 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 63 68 61 ers."...(mapc.'malyon-output-cha
c900 72 61 63 74 65 72 20 74 65 78 74 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d racter.text))..(defsubst.malyon-
c920 70 72 69 6e 74 2d 73 74 61 74 65 2d 6e 65 77 20 28 63 68 61 72 20 73 68 69 66 74 20 61 62 62 72 print-state-new.(char.shift.abbr
c940 20 7a 73 63 69 69 20 7a 63 6f 64 65 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 6e 65 77 20 .zscii.zcode)..."Generate.a.new.
c960 70 72 69 6e 74 20 73 74 61 74 65 2e 22 0a 20 20 28 6c 69 73 74 20 63 68 61 72 20 73 68 69 66 74 print.state."...(list.char.shift
c980 20 61 62 62 72 20 7a 73 63 69 69 20 7a 63 6f 64 65 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d .abbr.zscii.zcode))..(defsubst.m
c9a0 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 2d 69 6e 69 74 69 61 6c 20 28 29 0a 20 20 22 alyon-print-state-initial.()..."
c9c0 52 65 74 75 72 6e 73 20 61 6e 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 20 66 6f 72 20 74 68 65 Returns.an.initial.state.for.the
c9e0 20 7a 74 65 78 74 20 64 65 63 6f 64 65 72 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 .ztext.decoder."...(malyon-print
ca00 2d 73 74 61 74 65 2d 6e 65 77 20 6e 69 6c 20 2d 36 20 30 20 30 20 30 29 29 0a 0a 28 64 65 66 73 -state-new.nil.-6.0.0.0))..(defs
ca20 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 2d 6e 65 78 74 20 28 78 20 ubst.malyon-print-state-next.(x.
ca40 69 67 6e 6f 72 65 20 73 68 69 66 74 20 61 62 62 72 20 7a 73 63 69 69 20 7a 29 0a 20 20 22 50 72 ignore.shift.abbr.zscii.z)..."Pr
ca60 69 6e 74 20 73 74 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 2e 22 0a int.state.transition.function.".
ca80 20 20 28 63 6f 6e 64 20 28 28 3d 20 7a 73 63 69 69 20 32 29 0a 20 20 20 20 20 20 20 20 20 28 6d ..(cond.((=.zscii.2)..........(m
caa0 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 2d 6e 65 77 20 28 2b 20 7a 20 78 29 20 2d 36 alyon-print-state-new.(+.z.x).-6
cac0 20 30 20 30 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 28 3d 20 7a 73 63 69 69 20 31 29 0a 20 20 .0.0.0)).........((=.zscii.1)...
cae0 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 2d 6e 65 77 20 6e .......(malyon-print-state-new.n
cb00 69 6c 20 20 20 20 20 2d 36 20 30 20 32 20 28 2a 20 33 32 20 78 29 29 29 0a 20 20 20 20 20 20 20 il.....-6.0.2.(*.32.x)))........
cb20 20 28 28 3e 20 61 62 62 72 20 30 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 62 .((>.abbr.0)..........(malyon-ab
cb40 62 72 65 76 20 61 62 62 72 20 78 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 brev.abbr.x)..........(malyon-pr
cb60 69 6e 74 2d 73 74 61 74 65 2d 69 6e 69 74 69 61 6c 29 29 0a 20 20 20 20 20 20 20 20 28 28 3d 20 int-state-initial)).........((=.
cb80 78 20 30 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 x.0)..........(malyon-print-stat
cba0 65 2d 6e 65 77 20 3f 20 20 20 20 20 20 20 2d 36 20 30 20 30 20 30 29 29 0a 20 20 20 20 20 20 20 e-new.?.......-6.0.0.0))........
cbc0 20 28 28 3c 20 78 20 34 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 .((<.x.4)..........(malyon-print
cbe0 2d 73 74 61 74 65 2d 6e 65 77 20 6e 69 6c 20 20 20 20 20 2d 36 20 78 20 30 20 30 29 29 0a 20 20 -state-new.nil.....-6.x.0.0))...
cc00 20 20 20 20 20 20 28 28 3d 20 78 20 34 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d ......((=.x.4)..........(malyon-
cc20 70 72 69 6e 74 2d 73 74 61 74 65 2d 6e 65 77 20 6e 69 6c 20 20 20 20 20 32 30 20 30 20 30 20 30 print-state-new.nil.....20.0.0.0
cc40 29 29 0a 20 20 20 20 20 20 20 20 28 28 3d 20 78 20 35 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 )).........((=.x.5)..........(ma
cc60 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 2d 6e 65 77 20 6e 69 6c 20 20 20 20 20 34 36 20 lyon-print-state-new.nil.....46.
cc80 30 20 30 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20 73 68 69 66 74 20 34 0.0.0)).........((and.(=.shift.4
cca0 36 29 20 28 3d 20 78 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6).(=.x.6))..........(malyon-pri
ccc0 6e 74 2d 73 74 61 74 65 2d 6e 65 77 20 6e 69 6c 20 20 20 20 20 2d 36 20 30 20 31 20 30 29 29 0a nt-state-new.nil.....-6.0.1.0)).
cce0 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20 73 68 69 66 74 20 34 36 29 20 28 3d 20 78 20 ........((and.(=.shift.46).(=.x.
cd00 37 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 7))..........(malyon-print-state
cd20 2d 6e 65 77 20 3f 5c 72 20 20 20 20 20 2d 36 20 30 20 30 20 30 29 29 0a 20 20 20 20 20 20 20 20 -new.?\r.....-6.0.0.0)).........
cd40 28 74 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 2d (t..........(malyon-print-state-
cd60 6e 65 77 0a 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 61 6c 70 68 61 new...........(aref.malyon-alpha
cd80 62 65 74 20 28 2b 20 73 68 69 66 74 20 78 29 29 20 2d 36 20 30 20 30 20 30 29 29 29 29 0a 0a 28 bet.(+.shift.x)).-6.0.0.0))))..(
cda0 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 74 65 78 74 20 28 61 64 64 72 65 73 73 defun.malyon-print-text.(address
cdc0 29 0a 20 20 22 50 72 69 6e 74 20 74 65 78 74 20 61 74 20 61 64 64 72 65 73 73 20 61 6e 64 20 72 )..."Print.text.at.address.and.r
cde0 65 74 75 72 6e 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 eturn.the.address.of.the.followi
ce00 6e 67 20 62 79 74 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 29 29 0a 20 20 20 20 28 ng.byte."...(let.((start)).....(
ce20 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 20 if.(eq.malyon-transcript-buffer.
ce40 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d (current-buffer)).........(goto-
ce60 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 char.(point-max)).......(goto-ch
ce80 61 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 70 6f 69 6e 74 29 29 0a ar.malyon-status-buffer-point)).
cea0 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 73 65 ....(setq.start.(point)).....(se
cec0 74 71 20 61 64 64 72 65 73 73 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 7a 74 65 78 74 20 61 tq.address.(malyon-print-ztext.a
cee0 64 64 72 65 73 73 29 29 0a 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 ddress)).....(put-text-property.
cf00 73 74 61 72 74 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 20 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 start.(point).'face.malyon-curre
cf20 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 nt-face).....(if.(eq.malyon-stat
cf40 75 73 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 us-buffer.(current-buffer)).....
cf60 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 70 ....(setq.malyon-status-buffer-p
cf80 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6d oint.(point)).......(goto-char.m
cfa0 61 6c 79 6f 6e 2d 6c 61 73 74 2d 63 75 72 73 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 61 66 74 65 72 alyon-last-cursor-position-after
cfc0 2d 69 6e 70 75 74 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 64 69 73 70 6c 61 79 2d 66 -input)).....(malyon-redisplay-f
cfe0 72 61 6d 65 20 28 73 65 6c 65 63 74 65 64 2d 66 72 61 6d 65 29 20 6e 69 6c 29 0a 20 20 20 20 61 rame.(selected-frame).nil).....a
d000 64 64 72 65 73 73 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 7a 74 ddress))..(defun.malyon-print-zt
d020 65 78 74 20 28 61 64 64 72 65 73 73 29 0a 20 20 22 50 72 69 6e 74 20 74 68 65 20 7a 74 65 78 74 ext.(address)..."Print.the.ztext
d040 20 73 74 6f 72 65 64 20 61 74 20 74 68 65 20 67 69 76 65 6e 20 61 64 64 72 65 73 73 2e 22 0a 20 .stored.at.the.given.address."..
d060 20 28 6c 65 74 20 28 28 68 69 67 68 20 30 29 20 28 6c 6f 77 29 20 28 61 29 20 28 62 29 20 28 63 .(let.((high.0).(low).(a).(b).(c
d080 29 20 28 73 74 61 74 65 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 2d 69 6e 69 ).(state.(malyon-print-state-ini
d0a0 74 69 61 6c 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 7a 65 72 6f 70 20 28 6c 6f 67 61 6e tial))).....(while.(zerop.(logan
d0c0 64 20 31 32 38 20 68 69 67 68 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 69 67 68 20 28 6d d.128.high)).......(setq.high.(m
d0e0 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 61 64 64 72 65 73 73 29 29 0a 20 20 20 20 20 20 alyon-read-byte.address)).......
d100 28 73 65 74 71 20 6c 6f 77 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 (setq.low..(malyon-read-byte.(+.
d120 31 20 61 64 64 72 65 73 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 20 20 20 20 28 6c 1.address))).......(setq.a....(l
d140 6f 67 61 6e 64 20 33 31 20 28 6c 73 68 20 68 69 67 68 20 2d 32 29 29 29 0a 20 20 20 20 20 20 28 ogand.31.(lsh.high.-2))).......(
d160 73 65 74 71 20 62 20 20 20 20 28 6c 6f 67 61 6e 64 20 33 31 20 28 6c 6f 67 69 6f 72 20 28 6c 73 setq.b....(logand.31.(logior.(ls
d180 68 20 68 69 67 68 20 33 29 20 28 6c 73 68 20 6c 6f 77 20 2d 35 29 29 29 29 0a 20 20 20 20 20 20 h.high.3).(lsh.low.-5)))).......
d1a0 28 73 65 74 71 20 63 20 20 20 20 28 6c 6f 67 61 6e 64 20 33 31 20 6c 6f 77 29 29 0a 20 20 20 20 (setq.c....(logand.31.low)).....
d1c0 20 20 28 73 65 74 71 20 73 74 61 74 65 20 28 61 70 70 6c 79 20 27 6d 61 6c 79 6f 6e 2d 70 72 69 ..(setq.state.(apply.'malyon-pri
d1e0 6e 74 2d 73 74 61 74 65 2d 6e 65 78 74 20 61 20 73 74 61 74 65 29 29 0a 20 20 20 20 20 20 28 69 nt-state-next.a.state)).......(i
d200 66 20 28 63 61 72 20 73 74 61 74 65 29 20 28 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 63 68 61 f.(car.state).(malyon-output-cha
d220 72 61 63 74 65 72 20 28 63 61 72 20 73 74 61 74 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 racter.(car.state))).......(setq
d240 20 73 74 61 74 65 20 28 61 70 70 6c 79 20 27 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 .state.(apply.'malyon-print-stat
d260 65 2d 6e 65 78 74 20 62 20 73 74 61 74 65 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 63 61 72 20 e-next.b.state)).......(if.(car.
d280 73 74 61 74 65 29 20 28 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 63 68 61 72 61 63 74 65 72 20 state).(malyon-output-character.
d2a0 28 63 61 72 20 73 74 61 74 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 74 65 20 (car.state))).......(setq.state.
d2c0 28 61 70 70 6c 79 20 27 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 74 61 74 65 2d 6e 65 78 74 20 (apply.'malyon-print-state-next.
d2e0 63 20 73 74 61 74 65 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 63 61 72 20 73 74 61 74 65 29 20 c.state)).......(if.(car.state).
d300 28 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 63 68 61 72 61 63 74 65 72 20 28 63 61 72 20 73 74 (malyon-output-character.(car.st
d320 61 74 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 64 64 72 65 73 73 20 28 2b 20 32 20 ate))).......(setq.address.(+.2.
d340 61 64 64 72 65 73 73 29 29 29 0a 20 20 20 20 61 64 64 72 65 73 73 29 29 0a 0a 28 64 65 66 75 6e address))).....address))..(defun
d360 20 6d 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d 74 72 61 6e 73 63 72 69 70 74 20 28 63 68 61 72 .malyon-putchar-transcript.(char
d380 29 0a 20 20 22 50 72 69 6e 74 20 61 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e )..."Print.a.single.character.in
d3a0 20 74 68 65 20 74 72 61 6e 73 63 72 69 70 74 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 69 66 20 28 .the.transcript.window."...(if.(
d3c0 63 68 61 72 2d 65 71 75 61 6c 20 63 68 61 72 20 3f 5c 6e 29 0a 20 20 20 20 20 20 28 6e 65 77 6c char-equal.char.?\n).......(newl
d3e0 69 6e 65 20 31 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 63 68 61 72 29 0a 20 20 20 20 28 73 65 ine.1).....(insert.char).....(se
d400 74 71 20 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 73 65 70 61 72 61 74 6f 72 20 28 6e 75 6c 6c 20 tq.malyon-print-separator.(null.
d420 28 6d 65 6d 62 65 72 20 63 68 61 72 20 6d 61 6c 79 6f 6e 2d 77 68 69 74 65 73 70 61 63 65 29 29 (member.char.malyon-whitespace))
d440 29 29 0a 20 20 28 69 66 20 28 61 6e 64 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d ))...(if.(and.malyon-transcript-
d460 62 75 66 66 65 72 2d 62 75 66 66 65 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28 63 buffer-buffered............(>.(c
d480 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 20 28 63 75 72 72 65 6e 74 2d 66 69 6c 6c 2d 63 6f 6c urrent-column).(current-fill-col
d4a0 75 6d 6e 29 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 65 6e 64 umn))).......(progn.........(end
d4c0 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 77 6f 72 64 20 -of-line).........(forward-word.
d4e0 2d 31 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 30 20 28 63 75 72 72 65 6e 74 2d 63 6f -1).........(if.(<.0.(current-co
d500 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 77 6c 69 6e 65 20 31 29 29 0a lumn)).............(newline.1)).
d520 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 65 66 75 6e ........(end-of-line))))..(defun
d540 20 6d 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d 73 74 61 74 75 73 20 28 63 68 61 72 29 0a 20 20 .malyon-putchar-status.(char)...
d560 22 50 72 69 6e 74 20 61 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 68 65 "Print.a.single.character.in.the
d580 20 73 74 61 74 75 73 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 73 74 .status.window."...(if.malyon-st
d5a0 61 74 75 73 2d 62 75 66 66 65 72 2d 64 65 6c 61 79 65 64 2d 73 70 6c 69 74 0a 20 20 20 20 20 20 atus-buffer-delayed-split.......
d5c0 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 62 75 66 (progn.........(malyon-split-buf
d5e0 66 65 72 2d 77 69 6e 64 6f 77 73 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 fer-windows.malyon-status-buffer
d600 2d 64 65 6c 61 79 65 64 2d 73 70 6c 69 74 29 0a 20 20 20 20 20 20 20 20 28 6f 74 68 65 72 2d 77 -delayed-split).........(other-w
d620 69 6e 64 6f 77 20 31 29 29 29 0a 20 20 28 69 66 20 28 63 68 61 72 2d 65 71 75 61 6c 20 63 68 61 indow.1)))...(if.(char-equal.cha
d640 72 20 3f 5c 6e 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 62 65 67 r.?\n).......(progn.........(beg
d660 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 inning-of-line).........(forward
d680 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 70 6f 69 6e 74 29 20 -line.1).........(if.(=.(point).
d6a0 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 (point-max)).............(forwar
d6c0 64 2d 6c 69 6e 65 20 2d 31 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 28 63 75 72 72 65 6e 74 d-line.-1))).....(if.(>.(current
d6e0 2d 63 6f 6c 75 6d 6e 29 20 28 63 75 72 72 65 6e 74 2d 66 69 6c 6c 2d 63 6f 6c 75 6d 6e 29 29 0a -column).(current-fill-column)).
d700 20 20 20 20 20 20 20 20 27 28 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 63 68 61 72 29 0a ........'().......(insert.char).
d720 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e ......(delete-char.1))))..(defun
d740 20 6d 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d 74 61 62 6c 65 20 28 63 68 61 72 20 74 61 62 6c .malyon-putchar-table.(char.tabl
d760 65 29 0a 20 20 22 50 72 69 6e 74 20 61 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 e)..."Print.a.single.character.i
d780 6e 74 6f 20 61 20 74 61 62 6c 65 2e 22 0a 20 20 28 73 65 74 71 20 63 68 61 72 20 28 6d 61 6c 79 nto.a.table."...(setq.char.(maly
d7a0 6f 6e 2d 75 6e 69 63 6f 64 65 2d 74 6f 2d 7a 73 63 69 69 20 63 68 61 72 29 29 0a 20 20 28 6d 61 on-unicode-to-zscii.char))...(ma
d7c0 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 32 20 74 61 62 6c 65 20 28 6d 61 6c 79 lyon-store-byte.(+.2.table.(maly
d7e0 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 74 61 62 6c 65 29 29 20 63 68 61 72 29 0a 20 20 28 6d 61 on-read-word.table)).char)...(ma
d800 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 74 61 62 6c 65 20 28 2b 20 31 20 28 6d 61 6c 79 lyon-store-word.table.(+.1.(maly
d820 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 74 61 62 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d on-read-word.table))))..(defun.m
d840 61 6c 79 6f 6e 2d 70 75 74 63 68 61 72 2d 70 72 69 6e 74 65 72 20 28 63 68 61 72 29 0a 20 20 22 alyon-putchar-printer.(char)..."
d860 50 72 69 6e 74 20 61 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 6e 74 6f 20 61 20 Print.a.single.character.onto.a.
d880 70 72 69 6e 74 65 72 2e 22 29 3b 20 6e 6f 74 20 79 65 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 0a printer.");.not.yet.implemented.
d8a0 0a 3b 3b 20 6d 6f 72 65 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 63 6f .;;.more..(defvar.malyon-more-co
d8c0 6e 74 69 6e 75 65 2d 6b 65 79 6d 61 70 20 6e 69 6c 0a 20 20 22 54 68 65 20 6b 65 79 6d 61 70 20 ntinue-keymap.nil..."The.keymap.
d8e0 77 69 74 68 20 77 68 69 63 68 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 61 66 74 65 72 20 4d 6f 72 with.which.to.continue.after.Mor
d900 65 20 68 61 73 20 66 69 6e 69 73 68 65 64 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e e.has.finished.")..(defun.malyon
d920 2d 6d 6f 72 65 20 28 6b 65 79 6d 61 70 29 0a 20 20 22 45 6e 74 65 72 20 4d 6f 72 65 20 6d 6f 64 -more.(keymap)..."Enter.More.mod
d940 65 2e 22 0a 20 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 e."...(if.(eq.malyon-status-buff
d960 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 75 73 65 2d er.(current-buffer)).......(use-
d980 6c 6f 63 61 6c 2d 6d 61 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 28 69 66 20 28 3c 20 6d 61 6c local-map.keymap).....(if.(<.mal
d9a0 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 yon-story-version.5).(malyon-opc
d9c0 6f 64 65 2d 73 68 6f 77 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 28 69 66 20 28 3c 20 28 63 6f ode-show-status)).....(if.(<.(co
d9e0 75 6e 74 2d 6c 69 6e 65 73 20 6d 61 6c 79 6f 6e 2d 6c 61 73 74 2d 63 75 72 73 6f 72 2d 70 6f 73 unt-lines.malyon-last-cursor-pos
da00 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 6e 70 75 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 ition-after-input.(point-max))..
da20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 69 6e 64 6f 77 2d 64 69 73 70 6c 61 79 ..........(malyon-window-display
da40 65 64 2d 68 65 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 ed-height)).........(progn......
da60 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 6a 75 73 74 2d 74 72 61 6e 73 63 72 69 70 74 29 0a .....(malyon-adjust-transcript).
da80 20 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 6b 65 79 6d 61 70 29 ..........(use-local-map.keymap)
daa0 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6d 61 6c 79 6f 6e 2d 6c 61 73 74 2d 63 ).......(goto-char.malyon-last-c
dac0 75 72 73 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 6e 70 75 74 29 0a 20 20 20 20 ursor-position-after-input).....
dae0 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 72 65 63 ..(beginning-of-line).......(rec
db00 65 6e 74 65 72 20 31 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 enter.1).......(setq.malyon-more
db20 2d 63 6f 6e 74 69 6e 75 65 2d 6b 65 79 6d 61 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 20 28 -continue-keymap.keymap).......(
db40 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 6d 6f 72 65 use-local-map.malyon-keymap-more
db60 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 5b 4d 6f 72 65 5d 22 29 29 29 29 0a 0a 28 ).......(message."[More]"))))..(
db80 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 20 defun.malyon-more-status-buffer.
dba0 28 29 0a 20 20 22 45 6e 74 65 72 20 4d 6f 72 65 20 6d 6f 64 65 20 66 6f 72 20 74 68 65 20 73 74 ()..."Enter.More.mode.for.the.st
dbc0 61 74 75 73 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6d 6f 72 atus.buffer."...(setq.malyon-mor
dbe0 65 2d 63 6f 6e 74 69 6e 75 65 2d 6b 65 79 6d 61 70 20 28 63 75 72 72 65 6e 74 2d 6c 6f 63 61 6c e-continue-keymap.(current-local
dc00 2d 6d 61 70 29 29 0a 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 6d 61 6c 79 6f 6e 2d 6b -map))...(use-local-map.malyon-k
dc20 65 79 6d 61 70 2d 6d 6f 72 65 2d 73 74 61 74 75 73 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 5b eymap-more-status)...(message."[
dc40 4d 6f 72 65 5d 22 29 0a 20 20 28 74 68 72 6f 77 20 27 6d 61 6c 79 6f 6e 2d 65 6e 64 2d 6f 66 2d More]")...(throw.'malyon-end-of-
dc60 69 6e 74 65 72 70 72 65 74 65 72 2d 6c 6f 6f 70 20 27 6d 61 6c 79 6f 6e 2d 77 61 69 74 69 6e 67 interpreter-loop.'malyon-waiting
dc80 2d 66 6f 72 2d 69 6e 70 75 74 29 29 0a 0a 3b 3b 20 69 6e 70 75 74 20 68 69 73 74 6f 72 79 0a 0a -for-input))..;;.input.history..
dca0 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 6e 69 6c 0a 20 20 22 54 68 (defvar.malyon-history.nil..."Th
dcc0 65 20 69 6e 70 75 74 20 68 69 73 74 6f 72 79 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f e.input.history.")..(defun.malyo
dce0 6e 2d 68 69 73 74 6f 72 79 2d 70 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 4d 6f 76 65 20 6f 6e n-history-previous.()..."Move.on
dd00 65 20 65 6e 74 72 79 20 75 70 20 69 6e 20 74 68 65 20 69 6e 70 75 74 20 68 69 73 74 6f 72 79 2e e.entry.up.in.the.input.history.
dd20 22 0a 20 20 28 6c 65 74 20 28 28 70 72 65 76 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 68 69 73 "...(let.((prev.(aref.malyon-his
dd40 74 6f 72 79 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 63 75 72 72 20 28 61 72 65 66 20 6d 61 6c tory.0)).........(curr.(aref.mal
dd60 79 6f 6e 2d 68 69 73 74 6f 72 79 20 31 29 29 0a 20 20 20 20 20 20 20 20 28 6e 65 78 74 20 28 61 yon-history.1)).........(next.(a
dd80 72 65 66 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 32 29 29 29 0a 20 20 20 20 28 69 66 20 ref.malyon-history.2))).....(if.
dda0 28 6e 75 6c 6c 20 70 72 65 76 29 0a 20 20 20 20 20 20 20 20 63 75 72 72 0a 20 20 20 20 20 20 28 (null.prev).........curr.......(
ddc0 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 32 20 28 69 66 20 63 75 72 72 20 28 aset.malyon-history.2.(if.curr.(
dde0 63 6f 6e 73 20 63 75 72 72 20 6e 65 78 74 29 20 6e 65 78 74 29 29 0a 20 20 20 20 20 20 28 61 73 cons.curr.next).next)).......(as
de00 65 74 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 30 20 28 63 64 72 20 70 72 65 76 29 29 0a et.malyon-history.0.(cdr.prev)).
de20 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 31 20 28 63 61 ......(aset.malyon-history.1.(ca
de40 72 20 70 72 65 76 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f r.prev)))))..(defun.malyon-histo
de60 72 79 2d 6e 65 78 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 6f 6e 65 20 65 6e 74 72 79 20 64 6f 77 ry-next.()..."Move.one.entry.dow
de80 6e 20 69 6e 20 74 68 65 20 69 6e 70 75 74 20 68 69 73 74 6f 72 79 2e 22 0a 20 20 28 6c 65 74 20 n.in.the.input.history."...(let.
dea0 28 28 70 72 65 76 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 30 29 29 0a ((prev.(aref.malyon-history.0)).
dec0 20 20 20 20 20 20 20 20 28 63 75 72 72 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f ........(curr.(aref.malyon-histo
dee0 72 79 20 31 29 29 0a 20 20 20 20 20 20 20 20 28 6e 65 78 74 20 28 61 72 65 66 20 6d 61 6c 79 6f ry.1)).........(next.(aref.malyo
df00 6e 2d 68 69 73 74 6f 72 79 20 32 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 6e 65 78 n-history.2))).....(if.(null.nex
df20 74 29 0a 20 20 20 20 20 20 20 20 63 75 72 72 0a 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 t).........curr.......(aset.maly
df40 6f 6e 2d 68 69 73 74 6f 72 79 20 30 20 28 69 66 20 63 75 72 72 20 28 63 6f 6e 73 20 63 75 72 72 on-history.0.(if.curr.(cons.curr
df60 20 70 72 65 76 29 20 70 72 65 76 29 29 0a 20 20 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e .prev).prev)).......(aset.malyon
df80 2d 68 69 73 74 6f 72 79 20 32 20 28 63 64 72 20 6e 65 78 74 29 29 0a 20 20 20 20 20 20 28 61 73 -history.2.(cdr.next)).......(as
dfa0 65 74 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 31 20 28 63 61 72 20 6e 65 78 74 29 29 29 et.malyon-history.1.(car.next)))
dfc0 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 63 6c 65 61 72 20 ))..(defun.malyon-history-clear.
dfe0 28 29 0a 20 20 22 43 6c 65 61 72 20 74 68 65 20 69 6e 70 75 74 20 68 69 73 74 6f 72 79 2e 22 0a ()..."Clear.the.input.history.".
e000 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 28 76 65 63 74 6f 72 20 27 ..(setq.malyon-history.(vector.'
e020 28 29 20 6e 69 6c 20 27 28 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 68 69 73 ().nil.'())))..(defun.malyon-his
e040 74 6f 72 79 2d 69 6e 73 65 72 74 20 28 65 6e 74 72 79 29 0a 20 20 22 49 6e 73 65 72 74 20 61 6e tory-insert.(entry)..."Insert.an
e060 20 65 6e 74 72 79 20 69 6e 74 6f 20 74 68 65 20 69 6e 70 75 74 20 68 69 73 74 6f 72 79 2e 22 0a .entry.into.the.input.history.".
e080 20 20 28 6c 65 74 2a 20 28 28 70 72 65 76 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 ..(let*.((prev.(aref.malyon-hist
e0a0 6f 72 79 20 30 29 29 0a 09 20 28 63 75 72 72 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 68 69 73 ory.0))...(curr.(aref.malyon-his
e0c0 74 6f 72 79 20 31 29 29 0a 09 20 28 6e 65 78 74 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 68 69 tory.1))...(next.(aref.malyon-hi
e0e0 73 74 6f 72 79 20 32 29 29 0a 09 20 28 6c 20 20 20 20 28 72 65 6d 6f 76 65 20 65 6e 74 72 79 0a story.2))...(l....(remove.entry.
e100 09 09 09 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6e 72 65 76 65 72 73 65 20 70 72 65 76 29 .........(append.(nreverse.prev)
e120 0a 09 09 09 09 20 20 20 20 20 20 28 69 66 20 63 75 72 72 20 28 63 6f 6e 73 20 63 75 72 72 20 6e ...........(if.curr.(cons.curr.n
e140 65 78 74 29 20 6e 65 78 74 29 29 29 29 0a 09 20 28 63 75 74 20 20 28 2d 20 28 6c 65 6e 67 74 68 ext).next))))...(cut..(-.(length
e160 20 6c 29 20 31 39 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 63 75 74 20 30 29 0a 20 .l).19))).....(while.(>.cut.0)..
e180 20 20 20 20 20 28 73 65 74 71 20 6c 20 20 20 28 63 64 72 20 6c 29 0a 20 20 20 20 20 20 20 20 20 .....(setq.l...(cdr.l)..........
e1a0 20 20 20 63 75 74 20 28 2d 20 63 75 74 20 31 29 29 29 0a 20 20 20 20 28 61 73 65 74 20 6d 61 6c ...cut.(-.cut.1))).....(aset.mal
e1c0 79 6f 6e 2d 68 69 73 74 6f 72 79 20 30 0a 09 20 20 28 72 65 6d 6f 76 65 20 6e 69 6c 20 28 72 65 yon-history.0....(remove.nil.(re
e1e0 6d 6f 76 65 20 22 22 20 28 63 6f 6e 73 20 65 6e 74 72 79 20 28 6e 72 65 76 65 72 73 65 20 6c 29 move."".(cons.entry.(nreverse.l)
e200 29 29 29 29 0a 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 31 20 )))).....(aset.malyon-history.1.
e220 6e 69 6c 29 0a 20 20 20 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 20 32 20 nil).....(aset.malyon-history.2.
e240 27 28 29 29 29 29 0a 0a 3b 3b 20 64 69 63 74 69 6f 6e 61 72 79 20 6c 6f 6f 6b 75 70 0a 0a 28 64 '())))..;;.dictionary.lookup..(d
e260 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 77 6f 72 64 20 28 63 68 61 efun.malyon-dictionary-word.(cha
e280 72 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 6c 69 73 74 20 6f 66 20 63 68 61 72 61 63 74 rs)..."Convert.a.list.of.charact
e2a0 65 72 73 20 69 6e 74 6f 20 61 20 64 69 63 74 69 6f 6e 61 72 79 20 77 6f 72 64 2e 22 0a 20 20 28 ers.into.a.dictionary.word."...(
e2c0 6c 69 73 74 20 28 63 61 72 20 28 63 61 72 20 63 68 61 72 73 29 29 0a 09 28 6c 65 6e 67 74 68 20 list.(car.(car.chars))..(length.
e2e0 63 68 61 72 73 29 0a 09 28 6d 61 6c 79 6f 6e 2d 65 6e 63 6f 64 65 2d 64 69 63 74 69 6f 6e 61 72 chars)..(malyon-encode-dictionar
e300 79 2d 77 6f 72 64 20 28 61 70 70 65 6e 64 20 28 63 6c 2d 6d 61 70 63 61 6e 20 27 63 64 72 20 63 y-word.(append.(cl-mapcan.'cdr.c
e320 68 61 72 73 29 0a 09 09 09 09 09 20 20 20 20 20 20 20 27 28 35 20 35 20 35 20 35 20 35 20 35 20 hars).............'(5.5.5.5.5.5.
e340 35 20 35 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6a 6f 69 6e 2d 5.5)))))..(defsubst.malyon-join-
e360 63 68 61 72 61 63 74 65 72 73 20 28 73 74 6f 70 20 6c 69 73 74 29 0a 20 20 22 4a 6f 69 6e 73 20 characters.(stop.list)..."Joins.
e380 74 68 72 65 65 20 7a 74 65 78 74 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 74 6f 20 74 77 6f 20 three.ztext.characters.into.two.
e3a0 62 79 74 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 20 28 63 61 72 20 20 20 20 20 20 20 20 20 bytes."...(let.((a.(car.........
e3c0 20 6c 69 73 74 29 29 0a 09 28 62 20 28 63 61 64 72 20 20 6c 69 73 74 29 29 0a 09 28 63 20 28 63 .list))..(b.(cadr..list))..(c.(c
e3e0 6c 2d 63 61 64 64 72 20 6c 69 73 74 29 29 0a 09 28 78 20 28 69 66 20 28 7a 65 72 6f 70 20 73 74 l-caddr.list))..(x.(if.(zerop.st
e400 6f 70 29 20 30 20 31 32 38 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 6c 6f 67 69 6f 72 20 78 op).0.128))).....(list.(logior.x
e420 20 28 6c 6f 67 61 6e 64 20 32 35 35 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 61 20 32 29 20 28 .(logand.255.(logior.(lsh.a.2).(
e440 6c 73 68 20 62 20 2d 33 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 6f 67 61 6e 64 20 32 lsh.b.-3))))...........(logand.2
e460 35 35 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 62 20 35 29 20 63 29 29 29 29 29 0a 0a 28 64 65 55.(logior.(lsh.b.5).c)))))..(de
e480 66 75 6e 20 6d 61 6c 79 6f 6e 2d 65 6e 63 6f 64 65 2d 64 69 63 74 69 6f 6e 61 72 79 2d 77 6f 72 fun.malyon-encode-dictionary-wor
e4a0 64 20 28 6c 29 0a 20 20 22 43 6f 6e 76 65 72 74 73 20 61 20 6c 69 73 74 20 6f 66 20 7a 74 65 78 d.(l)..."Converts.a.list.of.ztex
e4c0 74 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 74 6f 20 61 20 64 69 63 74 69 6f 6e 61 72 79 20 77 t.characters.into.a.dictionary.w
e4e0 6f 72 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 72 73 74 20 20 6c 29 0a 09 20 28 73 65 63 ord."...(let*.((first..l)...(sec
e500 6f 6e 64 20 28 63 6c 2d 63 64 64 64 72 20 66 69 72 73 74 29 29 0a 09 20 28 74 68 69 72 64 20 20 ond.(cl-cdddr.first))...(third..
e520 28 63 6c 2d 63 64 64 64 72 20 73 65 63 6f 6e 64 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 27 (cl-cdddr.second))).....(apply.'
e540 76 65 63 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d vector............(if.(<.malyon-
e560 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 story-version.5)................
e580 28 61 70 70 65 6e 64 20 28 6d 61 6c 79 6f 6e 2d 6a 6f 69 6e 2d 63 68 61 72 61 63 74 65 72 73 20 (append.(malyon-join-characters.
e5a0 30 20 66 69 72 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0.first)........................
e5c0 28 6d 61 6c 79 6f 6e 2d 6a 6f 69 6e 2d 63 68 61 72 61 63 74 65 72 73 20 31 20 73 65 63 6f 6e 64 (malyon-join-characters.1.second
e5e0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6d 61 6c 79 6f 6e 2d ))..............(append.(malyon-
e600 6a 6f 69 6e 2d 63 68 61 72 61 63 74 65 72 73 20 30 20 66 69 72 73 74 29 0a 20 20 20 20 20 20 20 join-characters.0.first)........
e620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6a 6f 69 6e 2d 63 68 61 72 61 ..............(malyon-join-chara
e640 63 74 65 72 73 20 30 20 73 65 63 6f 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cters.0.second).................
e660 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6a 6f 69 6e 2d 63 68 61 72 61 63 74 65 72 73 20 31 20 74 .....(malyon-join-characters.1.t
e680 68 69 72 64 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6c 6f 6f 6b 75 70 hird))))))..(defun.malyon-lookup
e6a0 20 28 64 69 63 74 20 63 6f 64 65 29 0a 20 20 22 4c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 67 69 76 .(dict.code)..."Look.for.the.giv
e6c0 65 6e 20 63 6f 64 65 20 69 6e 20 74 68 65 20 64 69 63 74 69 6f 6e 61 72 79 20 61 6e 64 20 72 65 en.code.in.the.dictionary.and.re
e6e0 74 75 72 6e 20 69 74 73 20 61 64 64 72 65 73 73 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 6e 6f 74 turn.its.address."...(cond.((not
e700 20 63 6f 64 65 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 .code).................0).......
e720 20 20 28 28 6e 6f 74 20 64 69 63 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d ..((not.dict).................(m
e740 61 6c 79 6f 6e 2d 62 69 6e 61 72 79 2d 73 65 61 72 63 68 20 63 6f 64 65 29 29 0a 20 20 20 20 20 alyon-binary-search.code))......
e760 20 20 20 28 28 3d 20 64 69 63 74 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 29 20 28 ...((=.dict.malyon-dictionary).(
e780 6d 61 6c 79 6f 6e 2d 62 69 6e 61 72 79 2d 73 65 61 72 63 68 20 63 6f 64 65 29 29 0a 20 20 20 20 malyon-binary-search.code)).....
e7a0 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(t..........................
e7c0 28 6d 61 6c 79 6f 6e 2d 6c 69 6e 65 61 72 2d 73 65 61 72 63 68 20 64 69 63 74 20 63 6f 64 65 29 (malyon-linear-search.dict.code)
e7e0 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 63 6f 6d 70 61 72 65 2d 77 6f )))..(defsubst.malyon-compare-wo
e800 72 64 73 20 28 77 6f 72 64 20 61 64 64 72 65 73 73 29 0a 20 20 22 43 6f 6d 70 61 72 65 73 20 74 rds.(word.address)..."Compares.t
e820 68 65 20 67 69 76 65 6e 20 77 6f 72 64 20 74 6f 20 74 68 65 20 77 6f 72 64 20 73 74 6f 72 65 64 he.given.word.to.the.word.stored
e840 20 61 74 20 61 64 64 72 65 73 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 20 30 29 0a 20 20 20 .at.address."...(let*.((i.0)....
e860 20 20 20 20 20 20 28 6a 20 61 64 64 72 65 73 73 29 0a 20 20 20 20 20 20 20 20 20 28 78 20 28 61 ......(j.address)..........(x.(a
e880 72 65 66 20 77 6f 72 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 28 79 20 28 6d 61 6c 79 6f 6e ref.word.i))..........(y.(malyon
e8a0 2d 72 65 61 64 2d 62 79 74 65 20 6a 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 -read-byte.j))).....(while.(not.
e8c0 28 6f 72 20 28 2f 3d 20 78 20 79 29 20 28 3d 20 69 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e (or.(/=.x.y).(=.i.malyon-diction
e8e0 61 72 79 2d 77 6f 72 64 2d 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 ary-word-length))).......(setq.i
e900 20 28 2b 20 31 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 20 28 2b 20 31 20 6a 29 0a 20 .(+.1.i).............j.(+.1.j)..
e920 20 20 20 20 20 20 20 20 20 20 20 78 20 28 61 72 65 66 20 77 6f 72 64 20 69 29 0a 20 20 20 20 20 ...........x.(aref.word.i)......
e940 20 20 20 20 20 20 20 79 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 6a 29 29 29 0a .......y.(malyon-read-byte.j))).
e960 20 20 20 20 28 2d 20 78 20 79 29 29 29 0a 0a 3b 3b 20 73 65 61 72 63 68 20 66 75 6e 63 74 69 6f ....(-.x.y)))..;;.search.functio
e980 6e 73 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 62 69 6e 61 72 79 2d 73 65 61 72 63 68 20 ns..(defun.malyon-binary-search.
e9a0 28 63 6f 64 65 29 0a 20 20 22 42 69 6e 61 72 79 20 73 65 61 72 63 68 20 74 68 72 6f 75 67 68 20 (code)..."Binary.search.through.
e9c0 74 68 65 20 6d 61 69 6e 20 64 69 63 74 69 6f 6e 61 72 79 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 the.main.dictionary."...(let*.((
e9e0 6c 6f 77 65 72 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 20 28 75 70 70 65 72 20 20 20 28 2d 20 lower...0)..........(upper...(-.
ea00 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 6e 75 6d 2d 65 6e 74 72 69 65 73 20 31 29 malyon-dictionary-num-entries.1)
ea20 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 64 69 61 6e 20 20 28 2f 20 28 2b 20 6c 6f 77 65 72 20 )..........(median..(/.(+.lower.
ea40 75 70 70 65 72 29 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 74 72 79 20 20 20 28 2b 20 upper).2))..........(entry...(+.
ea60 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 20 20 malyon-dictionary-entries.......
ea80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e ...............(*.malyon-diction
eaa0 61 72 79 2d 65 6e 74 72 79 2d 6c 65 6e 67 74 68 20 6d 65 64 69 61 6e 29 29 29 0a 20 20 20 20 20 ary-entry-length.median)))......
eac0 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 20 28 6d 61 6c 79 6f 6e 2d 63 6f 6d 70 61 72 65 2d 77 6f 72 ....(looking.(malyon-compare-wor
eae0 64 73 20 63 6f 64 65 20 65 6e 74 72 79 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 ds.code.entry))).....(while.(not
eb00 20 28 6f 72 20 28 3e 20 6c 6f 77 65 72 20 75 70 70 65 72 29 20 28 7a 65 72 6f 70 20 6c 6f 6f 6b .(or.(>.lower.upper).(zerop.look
eb20 69 6e 67 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 6f 77 65 72 20 20 20 28 69 66 20 28 ing))).......(setq.lower...(if.(
eb40 3c 20 30 20 6c 6f 6f 6b 69 6e 67 29 20 28 2b 20 6d 65 64 69 61 6e 20 31 29 20 6c 6f 77 65 72 29 <.0.looking).(+.median.1).lower)
eb60 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 70 70 65 72 20 20 20 28 69 66 20 28 3e 20 30 20 6c 6f .............upper...(if.(>.0.lo
eb80 6f 6b 69 6e 67 29 20 28 2d 20 6d 65 64 69 61 6e 20 31 29 20 75 70 70 65 72 29 0a 20 20 20 20 20 oking).(-.median.1).upper)......
eba0 20 20 20 20 20 20 20 6d 65 64 69 61 6e 20 20 28 2f 20 28 2b 20 6c 6f 77 65 72 20 75 70 70 65 72 .......median..(/.(+.lower.upper
ebc0 29 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 74 72 79 20 20 20 28 2b 20 6d 61 6c 79 ).2).............entry...(+.maly
ebe0 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 on-dictionary-entries...........
ec00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 .............(*.malyon-dictionar
ec20 79 2d 65 6e 74 72 79 2d 6c 65 6e 67 74 68 20 6d 65 64 69 61 6e 29 29 0a 20 20 20 20 20 20 20 20 y-entry-length.median)).........
ec40 20 20 20 20 6c 6f 6f 6b 69 6e 67 20 28 6d 61 6c 79 6f 6e 2d 63 6f 6d 70 61 72 65 2d 77 6f 72 64 ....looking.(malyon-compare-word
ec60 73 20 63 6f 64 65 20 65 6e 74 72 79 29 29 29 0a 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 6c s.code.entry))).....(if.(zerop.l
ec80 6f 6f 6b 69 6e 67 29 20 65 6e 74 72 79 20 30 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f ooking).entry.0)))..(defun.malyo
eca0 6e 2d 6c 69 6e 65 61 72 2d 73 65 61 72 63 68 20 28 64 69 63 74 69 6f 6e 61 72 79 20 63 6f 64 65 n-linear-search.(dictionary.code
ecc0 29 0a 20 20 22 4c 69 6e 65 61 72 20 73 65 61 72 63 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 67 )..."Linear.search.through.the.g
ece0 69 76 65 6e 20 64 69 63 74 69 6f 6e 61 72 79 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 65 6e 67 iven.dictionary."...(let*.((leng
ed00 74 68 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 64 69 63 74 69 6f 6e th..(malyon-read-byte.(+.diction
ed20 61 72 79 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ary.1...........................
ed40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 64 .............(malyon-read-byte.d
ed60 69 63 74 69 6f 6e 61 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 20 20 ictionary))))..........(number..
ed80 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 64 69 63 74 69 6f 6e 61 72 79 20 (malyon-read-word.(+.dictionary.
eda0 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2...............................
edc0 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 64 69 63 74 69 .........(malyon-read-byte.dicti
ede0 6f 6e 61 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 74 72 69 65 73 20 28 2b 20 64 onary))))..........(entries.(+.d
ee00 69 63 74 69 6f 6e 61 72 79 20 34 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 64 69 ictionary.4.(malyon-read-byte.di
ee20 63 74 69 6f 6e 61 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 20 20 20 20 20 20 20 30 29 ctionary)))..........(i.......0)
ee40 0a 20 20 20 20 20 20 20 20 20 28 65 6e 74 72 79 20 20 20 28 2b 20 65 6e 74 72 69 65 73 20 28 2a ..........(entry...(+.entries.(*
ee60 20 6c 65 6e 67 74 68 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 20 28 .length.i)))..........(looking.(
ee80 6d 61 6c 79 6f 6e 2d 63 6f 6d 70 61 72 65 2d 77 6f 72 64 73 20 63 6f 64 65 20 65 6e 74 72 79 29 malyon-compare-words.code.entry)
eea0 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 6f 72 20 28 3e 3d 20 69 20 6e 75 6d )).....(while.(not.(or.(>=.i.num
eec0 62 65 72 29 20 28 7a 65 72 6f 70 20 6c 6f 6f 6b 69 6e 67 29 29 29 0a 20 20 20 20 20 20 28 73 65 ber).(zerop.looking))).......(se
eee0 74 71 20 69 20 20 20 20 20 20 20 28 2b 20 31 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 tq.i.......(+.1.i).............e
ef00 6e 74 72 79 20 20 20 28 2b 20 65 6e 74 72 69 65 73 20 28 2a 20 6c 65 6e 67 74 68 20 69 29 29 0a ntry...(+.entries.(*.length.i)).
ef20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 6f 6b 69 6e 67 20 28 6d 61 6c 79 6f 6e 2d 63 6f 6d 70 ............looking.(malyon-comp
ef40 61 72 65 2d 77 6f 72 64 73 20 63 6f 64 65 20 65 6e 74 72 79 29 29 29 0a 20 20 20 20 28 69 66 20 are-words.code.entry))).....(if.
ef60 28 7a 65 72 6f 70 20 6c 6f 6f 6b 69 6e 67 29 20 65 6e 74 72 79 20 30 29 29 29 0a 0a 3b 3b 20 65 (zerop.looking).entry.0)))..;;.e
ef80 6e 63 6f 64 69 6e 67 20 74 65 78 74 20 61 6e 64 20 6c 65 78 69 63 61 6c 20 61 6e 61 6c 79 73 69 ncoding.text.and.lexical.analysi
efa0 73 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 6c 69 73 74 20 28 73 65 70 s..(defun.malyon-split-list.(sep
efc0 20 6c 69 73 74 20 26 6f 70 74 69 6f 6e 61 6c 20 78 29 0a 20 20 22 53 70 6c 69 74 20 61 20 6c 69 .list.&optional.x)..."Split.a.li
efe0 73 74 20 69 6e 74 6f 20 73 75 62 6c 69 73 74 73 20 61 73 20 69 6e 64 69 63 61 74 65 64 20 62 79 st.into.sublists.as.indicated.by
f000 20 74 68 65 20 73 65 70 61 72 61 74 6f 72 73 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c .the.separators."...(cond.((null
f020 20 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 6e 72 65 76 65 72 73 65 20 .list)..........(list.(nreverse.
f040 78 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 65 71 20 73 65 70 20 28 63 61 72 20 6c 69 73 74 29 x))).........((eq.sep.(car.list)
f060 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6e 72 65 76 65 72 73 65 20 78 29 20 28 6d )..........(cons.(nreverse.x).(m
f080 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 6c 69 73 74 20 73 65 70 20 28 63 64 72 20 6c 69 73 74 29 20 alyon-split-list.sep.(cdr.list).
f0a0 27 28 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 '()))).........(t..........(maly
f0c0 6f 6e 2d 73 70 6c 69 74 2d 6c 69 73 74 20 73 65 70 20 28 63 64 72 20 6c 69 73 74 29 20 28 63 6f on-split-list.sep.(cdr.list).(co
f0e0 6e 73 20 28 63 61 72 20 6c 69 73 74 29 20 78 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c ns.(car.list).x)))))..(defun.mal
f100 79 6f 6e 2d 63 68 61 72 61 63 74 65 72 73 2d 74 6f 2d 77 6f 72 64 73 20 28 6c 69 73 74 29 0a 20 yon-characters-to-words.(list)..
f120 20 22 54 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 69 6e ."Turn.the.list.of.characters.in
f140 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 77 6f 72 64 73 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 27 to.a.list.of.words."...(mapcar.'
f160 6d 61 6c 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 2d 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 malyon-dictionary-word..........
f180 20 28 64 65 6c 65 74 65 20 27 28 29 20 28 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 6c 69 73 74 20 .(delete.'().(malyon-split-list.
f1a0 27 6d 61 6c 79 6f 6e 2d 77 6f 72 64 2d 73 65 70 61 72 61 74 6f 72 20 6c 69 73 74 29 29 29 29 0a 'malyon-word-separator.list)))).
f1c0 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 69 6e 2d 73 74 72 69 6e 67 .(defsubst.malyon-char-in-string
f1e0 20 28 63 20 73 29 0a 20 20 22 52 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 63 .(c.s)..."Returns.the.index.of.c
f200 20 69 6e 20 73 20 69 66 20 66 6f 75 6e 64 2c 20 6f 72 20 6c 65 6e 67 74 68 20 6f 66 20 73 2e 22 .in.s.if.found,.or.length.of.s."
f220 0a 20 20 28 6c 65 74 20 28 28 69 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 ...(let.((i.0)).....(while.(not.
f240 28 6f 72 20 28 3d 20 69 20 28 6c 65 6e 67 74 68 20 73 29 29 20 28 3d 20 63 20 28 61 72 65 66 20 (or.(=.i.(length.s)).(=.c.(aref.
f260 73 20 69 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a s.i)))).......(setq.i.(+.1.i))).
f280 20 20 20 20 69 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 65 6e 63 6f 64 65 ....i))..(defsubst.malyon-encode
f2a0 2d 69 6e 74 6f 2d 7a 74 65 78 74 20 28 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 63 68 61 -into-ztext.(c)..."Convert.a.cha
f2c0 72 61 63 74 65 72 20 69 6e 74 6f 20 7a 74 65 78 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e racter.into.ztext."...(let*.((in
f2e0 64 65 78 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 69 6e 2d 73 74 72 69 6e 67 20 63 20 6d 61 6c dex.(malyon-char-in-string.c.mal
f300 79 6f 6e 2d 61 6c 70 68 61 62 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 68 69 66 74 20 28 yon-alphabet))..........(shift.(
f320 66 6c 6f 6f 72 20 69 6e 64 65 78 20 32 36 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 61 72 20 floor.index.26))..........(char.
f340 20 28 2b 20 36 20 28 6d 6f 64 20 69 6e 64 65 78 20 32 36 29 29 29 29 0a 20 20 20 20 28 63 6f 6e .(+.6.(mod.index.26)))).....(con
f360 64 20 28 28 3e 20 73 68 69 66 74 20 32 29 20 28 6c 69 73 74 20 35 20 36 20 28 6c 6f 67 61 6e 64 d.((>.shift.2).(list.5.6.(logand
f380 20 33 31 20 28 6c 73 68 20 63 20 2d 35 29 29 20 28 6c 6f 67 61 6e 64 20 33 31 20 63 29 29 29 0a .31.(lsh.c.-5)).(logand.31.c))).
f3a0 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 73 68 69 66 74 20 32 29 20 28 6c 69 73 74 20 35 20 63 ..........((=.shift.2).(list.5.c
f3c0 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 73 68 69 66 74 20 31 29 20 28 6c 69 har))...........((=.shift.1).(li
f3e0 73 74 20 34 20 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 20 20 st.4.char))...........(t........
f400 20 20 20 28 6c 69 73 74 20 63 68 61 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f ...(list.char)))))..(defun.malyo
f420 6e 2d 65 6e 63 6f 64 65 2d 73 69 6e 67 6c 65 2d 63 68 61 72 61 63 74 65 72 20 28 74 65 72 6d 69 n-encode-single-character.(termi
f440 6e 61 74 69 6e 67 2d 63 68 61 72 61 63 74 65 72 73 20 63 68 61 72 29 0a 20 20 22 45 6e 63 6f 64 nating-characters.char)..."Encod
f460 65 20 61 20 63 68 61 72 61 63 74 65 72 20 69 6e 74 6f 20 7a 74 65 78 74 2e 22 0a 20 20 28 6c 65 e.a.character.into.ztext."...(le
f480 74 20 28 28 70 6f 73 20 28 63 61 72 20 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 28 63 20 20 t.((pos.(car.char)).........(c..
f4a0 20 28 63 64 72 20 63 68 61 72 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6d 65 6d 62 65 72 .(cdr.char))).....(cond.((member
f4c0 20 63 20 6d 61 6c 79 6f 6e 2d 77 68 69 74 65 73 70 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 .c.malyon-whitespace)...........
f4e0 20 28 6c 69 73 74 20 27 6d 61 6c 79 6f 6e 2d 77 6f 72 64 2d 73 65 70 61 72 61 74 6f 72 29 29 0a .(list.'malyon-word-separator)).
f500 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 63 20 74 65 72 6d 69 6e 61 74 69 6e 67 ..........((member.c.terminating
f520 2d 63 68 61 72 61 63 74 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 6d -characters)............(list.'m
f540 61 6c 79 6f 6e 2d 77 6f 72 64 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 alyon-word-separator............
f560 20 20 20 20 20 20 28 63 6f 6e 73 20 70 6f 73 20 28 6d 61 6c 79 6f 6e 2d 65 6e 63 6f 64 65 2d 69 ......(cons.pos.(malyon-encode-i
f580 6e 74 6f 2d 7a 74 65 78 74 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 nto-ztext.c))..................'
f5a0 6d 61 6c 79 6f 6e 2d 77 6f 72 64 2d 73 65 70 61 72 61 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20 malyon-word-separator)).........
f5c0 20 20 28 74 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 70 6f 73 20 28 6d 61 6c 79 6f 6e 2d 65 6e 63 ..(t.(list.(cons.pos.(malyon-enc
f5e0 6f 64 65 2d 69 6e 74 6f 2d 7a 74 65 78 74 20 63 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 ode-into-ztext.c)))))))..(defun.
f600 6d 61 6c 79 6f 6e 2d 65 6e 63 6f 64 65 2d 63 68 61 72 61 63 74 65 72 2d 6c 69 73 74 20 28 64 69 malyon-encode-character-list.(di
f620 63 74 20 6c 69 73 74 29 0a 20 20 22 45 6e 63 6f 64 65 20 74 68 65 20 6c 69 73 74 20 6f 66 20 63 ct.list)..."Encode.the.list.of.c
f640 68 61 72 61 63 74 65 72 73 20 69 6e 74 6f 20 7a 74 65 78 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 haracters.into.ztext."...(let.((
f660 6c 20 27 28 29 29 0a 20 20 20 20 20 20 20 20 28 69 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 l.'()).........(i.0)).....(while
f680 20 28 3c 20 69 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 64 69 63 74 29 29 0a 20 .(<.i.(malyon-read-byte.dict))..
f6a0 20 20 20 20 20 28 73 65 74 71 20 6c 20 28 63 6f 6e 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d .....(setq.l.(cons.(malyon-read-
f6c0 62 79 74 65 20 28 2b 20 64 69 63 74 20 31 20 69 29 29 20 6c 29 0a 09 20 20 20 20 69 20 28 2b 20 byte.(+.dict.1.i)).l)......i.(+.
f6e0 31 20 69 29 29 29 0a 20 20 20 20 28 63 6c 2d 6d 61 70 63 61 6e 20 28 6c 61 6d 62 64 61 20 28 78 1.i))).....(cl-mapcan.(lambda.(x
f700 29 20 28 6d 61 6c 79 6f 6e 2d 65 6e 63 6f 64 65 2d 73 69 6e 67 6c 65 2d 63 68 61 72 61 63 74 65 ).(malyon-encode-single-characte
f720 72 20 6c 20 78 29 29 20 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 74 r.l.x)).list)))..(defun.malyon-t
f740 65 78 74 2d 6c 65 6e 67 74 68 20 28 61 64 64 72 65 73 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 ext-length.(address)..."Return.t
f760 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 69 6e 70 75 74 20 74 65 78 74 2e 22 0a 20 20 he.length.of.the.input.text."...
f780 28 69 66 20 28 3e 3d 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a (if.(>=.malyon-story-version.5).
f7a0 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 31 20 61 64 64 ......(malyon-read-byte.(+.1.add
f7c0 72 65 73 73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 20 30 29 29 0a 20 20 20 20 20 20 28 77 ress)).....(let.((i.0)).......(w
f7e0 68 69 6c 65 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 hile.(not.(zerop.(malyon-read-by
f800 74 65 20 28 2b 20 69 20 31 20 61 64 64 72 65 73 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 te.(+.i.1.address)))).........(s
f820 65 74 71 20 69 20 28 2b 20 69 20 31 29 29 29 0a 20 20 20 20 20 20 69 29 29 29 0a 0a 28 64 65 66 etq.i.(+.i.1))).......i)))..(def
f840 75 6e 20 6d 61 6c 79 6f 6e 2d 74 65 78 74 2d 74 6f 2d 63 68 61 72 61 63 74 65 72 2d 6c 69 73 74 un.malyon-text-to-character-list
f860 20 28 61 64 64 72 65 73 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 74 68 65 20 69 6e 70 75 74 20 .(address)..."Convert.the.input.
f880 74 65 78 74 20 69 6e 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 2e 22 text.into.a.list.of.characters."
f8a0 0a 20 20 28 6c 65 74 20 28 28 69 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 74 65 78 74 2d 6c 65 6e 67 ...(let.((i....(malyon-text-leng
f8c0 74 68 20 61 64 64 72 65 73 73 29 29 0a 20 20 20 20 20 20 20 20 28 74 65 78 74 20 27 28 29 29 29 th.address)).........(text.'()))
f8e0 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 30 20 69 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 .....(while.(<.0.i).......(setq.
f900 74 65 78 74 20 28 63 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f text.(cons...................(co
f920 6e 73 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 ns.(if.(<.malyon-story-version.5
f940 29 20 69 20 28 2b 20 31 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).i.(+.1.i))....................
f960 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 0a 20 20 20 20 20 20 20 20 20 .....(malyon-read-byte..........
f980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 69 20 61 64 64 72 65 73 73 20 28 69 66 ................(+.i.address.(if
f9a0 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 30 20 31 29 .(<.malyon-story-version.5).0.1)
f9c0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 78 74 29 0a 20 20 20 20 )))...................text).....
f9e0 20 20 20 20 20 20 20 20 69 20 20 20 20 28 2d 20 69 20 31 29 29 29 0a 20 20 20 20 74 65 78 74 29 ........i....(-.i.1))).....text)
fa00 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 74 65 78 74 2d 74 6f 2d 77 6f 72 64 73 20 28 )..(defun.malyon-text-to-words.(
fa20 61 64 64 72 65 73 73 20 64 69 63 74 69 6f 6e 61 72 79 29 0a 20 20 22 54 75 72 6e 20 7a 74 65 78 address.dictionary)..."Turn.ztex
fa40 74 20 69 6e 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 64 69 63 74 69 6f 6e 61 72 79 20 77 6f 72 64 t.into.a.list.of.dictionary.word
fa60 73 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 61 63 74 65 72 73 2d 74 6f 2d 77 6f 72 64 s."...(malyon-characters-to-word
fa80 73 0a 20 20 20 28 6d 61 6c 79 6f 6e 2d 65 6e 63 6f 64 65 2d 63 68 61 72 61 63 74 65 72 2d 6c 69 s....(malyon-encode-character-li
faa0 73 74 20 28 69 66 20 64 69 63 74 69 6f 6e 61 72 79 20 64 69 63 74 69 6f 6e 61 72 79 20 6d 61 6c st.(if.dictionary.dictionary.mal
fac0 79 6f 6e 2d 64 69 63 74 69 6f 6e 61 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yon-dictionary).................
fae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 74 65 78 74 2d 74 6f .................(malyon-text-to
fb00 2d 63 68 61 72 61 63 74 65 72 2d 6c 69 73 74 20 61 64 64 72 65 73 73 29 29 29 29 0a 0a 3b 3b 20 -character-list.address))))..;;.
fb20 77 69 6e 64 6f 77 20 6d 61 6e 61 67 65 6d 65 6e 74 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f window.management..(defvar.malyo
fb40 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 67 72 65 77 2d 74 68 69 73 2d 74 75 72 6e 20 6e n-status-buffer-grew-this-turn.n
fb60 69 6c 0a 20 20 22 41 20 66 6c 61 67 20 73 69 67 6e 61 6c 6c 69 6e 67 20 69 66 20 74 68 65 20 73 il..."A.flag.signalling.if.the.s
fb80 74 61 74 75 73 20 62 75 66 66 65 72 20 67 72 65 77 20 74 68 69 73 20 74 75 72 6e 2e 22 29 0a 0a tatus.buffer.grew.this.turn.")..
fba0 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 61 64 6a 75 73 74 2d 74 72 61 6e 73 63 72 69 70 74 20 (defun.malyon-adjust-transcript.
fbc0 28 29 0a 20 20 22 41 64 6a 75 73 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 ()..."Adjust.the.position.of.the
fbe0 20 74 72 61 6e 73 63 72 69 70 74 20 74 65 78 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 .transcript.text."...(with-curre
fc00 6e 74 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 nt-buffer.malyon-transcript-buff
fc20 65 72 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 er.....(setq.malyon-status-buffe
fc40 72 2d 67 72 65 77 2d 74 68 69 73 2d 74 75 72 6e 20 6e 69 6c 29 0a 20 20 20 20 28 67 6f 74 6f 2d r-grew-this-turn.nil).....(goto-
fc60 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 72 65 63 65 6e 74 65 72 20 char.(point-max)).....(recenter.
fc80 28 2d 20 28 6d 61 6c 79 6f 6e 2d 77 69 6e 64 6f 77 2d 64 69 73 70 6c 61 79 65 64 2d 68 65 69 67 (-.(malyon-window-displayed-heig
fca0 68 74 29 20 32 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 70 72 65 70 61 72 65 ht).2))))..(defun.malyon-prepare
fcc0 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 20 28 73 74 61 74 75 73 29 0a 20 20 22 46 69 6c 6c 20 -status-buffer.(status)..."Fill.
fce0 74 68 65 20 73 74 61 74 75 73 20 62 75 66 66 65 72 20 77 69 74 68 20 65 6d 70 74 79 20 6c 69 6e the.status.buffer.with.empty.lin
fd00 65 73 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6d 61 6c 79 es."...(with-current-buffer.maly
fd20 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 0a 20 20 20 20 28 6c 65 74 20 28 28 6c 69 6e 65 on-status-buffer.....(let.((line
fd40 73 20 28 63 6f 75 6e 74 2d 6c 69 6e 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e s.(count-lines.(point-min).(poin
fd60 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 65 77 20 20 20 73 74 61 74 75 73 t-max)))...........(new...status
fd80 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 6c 69 6e 65 73 29 0a 20 20 20 20 20 )).......(if.(zerop.lines)......
fda0 20 20 20 20 20 28 6e 65 77 6c 69 6e 65 20 31 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 .....(newline.1)).......(goto-ch
fdc0 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 74 ar.(point-max)).......(setq.stat
fde0 75 73 20 28 2d 20 73 74 61 74 75 73 20 6c 69 6e 65 73 20 2d 31 29 29 0a 20 20 20 20 20 20 28 77 us.(-.status.lines.-1)).......(w
fe00 68 69 6c 65 20 28 3e 20 73 74 61 74 75 73 20 30 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 hile.(>.status.0).........(inser
fe20 74 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2b 20 33 20 6d 61 6c 79 6f 6e 2d 6d 61 78 2d 63 t.(make-string.(+.3.malyon-max-c
fe40 6f 6c 75 6d 6e 29 20 3f 20 29 29 0a 20 20 20 20 20 20 20 20 28 6e 65 77 6c 69 6e 65 20 31 29 0a olumn).?.)).........(newline.1).
fe60 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 74 75 73 20 28 2d 20 73 74 61 74 75 73 20 31 ........(setq.status.(-.status.1
fe80 29 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 ))).......(goto-char.(point-min)
fea0 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 2b 20 31 20 6e 65 77 29 29 ).......(forward-line.(+.1.new))
fec0 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 .......(kill-region.(point).(poi
fee0 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6d 61 6b 65 2d 73 74 72 nt-max)).......(insert.(make-str
ff00 69 6e 67 20 28 2b 20 33 20 6d 61 6c 79 6f 6e 2d 6d 61 78 2d 63 6f 6c 75 6d 6e 29 20 3f 20 29 29 ing.(+.3.malyon-max-column).?.))
ff20 0a 20 20 20 20 20 20 28 6e 65 77 6c 69 6e 65 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 .......(newline.1))))..(defun.ma
ff40 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f lyon-restore-window-configuratio
ff60 6e 20 28 29 0a 20 20 22 52 65 73 74 6f 72 65 20 74 68 65 20 73 61 76 65 64 20 77 69 6e 64 6f 77 n.()..."Restore.the.saved.window
ff80 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 .configuration."...(let.((buffer
ffa0 20 28 77 69 6e 64 6f 77 2d 62 75 66 66 65 72 20 28 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 .(window-buffer.(selected-window
ffc0 29 29 29 29 0a 20 20 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 )))).....(if.malyon-window-confi
ffe0 67 75 72 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e guration.........(set-window-con
10000 66 69 67 75 72 61 74 69 6f 6e 20 6d 61 6c 79 6f 6e 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 figuration.malyon-window-configu
10020 72 61 74 69 6f 6e 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 6d 61 6c 79 6f 6e 2d 73 ration)).....(cond.((eq.malyon-s
10040 74 61 74 75 73 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 20 20 20 20 20 28 6f 74 68 65 72 2d tatus-buffer.buffer).....(other-
10060 77 69 6e 64 6f 77 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 6d 61 6c 79 6f 6e window.1))...........((eq.malyon
10080 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 20 28 67 6f 74 6f -transcript-buffer.buffer).(goto
100a0 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d -char.(point-max))))))..(defun.m
100c0 61 6c 79 6f 6e 2d 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 28 alyon-set-window-configuration.(
100e0 73 74 61 74 75 73 29 0a 20 20 22 53 65 74 20 75 70 20 74 68 65 20 6e 65 77 20 77 69 6e 64 6f 77 status)..."Set.up.the.new.window
10100 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 3c 20 73 74 61 .configuration."...(cond.((<.sta
10120 74 75 73 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 6c 69 6e 65 73 29 0a tus.malyon-status-buffer-lines).
10140 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 .........(setq.malyon-status-buf
10160 66 65 72 2d 64 65 6c 61 79 65 64 2d 73 70 6c 69 74 20 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 fer-delayed-split.status).......
10180 20 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 67 72 65 77 ...(if.malyon-status-buffer-grew
101a0 2d 74 68 69 73 2d 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d -this-turn..............(malyon-
101c0 6d 6f 72 65 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 more-status-buffer))).........((
101e0 3e 20 73 74 61 74 75 73 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 6c 69 >.status.malyon-status-buffer-li
10200 6e 65 73 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 62 75 66 66 nes)..........(malyon-split-buff
10220 65 72 2d 77 69 6e 64 6f 77 73 20 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 er-windows.status)..........(set
10240 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 67 72 65 77 2d 74 68 69 73 q.malyon-status-buffer-grew-this
10260 2d 74 75 72 6e 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 6d 61 6c 79 6f 6e 2d 77 -turn.t)).........((not.malyon-w
10280 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 28 6d indow-configuration)..........(m
102a0 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 73 20 73 74 61 74 75 alyon-split-buffer-windows.statu
102c0 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 62 75 66 66 65 s))))..(defun.malyon-split-buffe
102e0 72 2d 77 69 6e 64 6f 77 73 20 28 73 74 61 74 75 73 29 0a 20 20 22 53 70 6c 69 74 20 74 68 65 20 r-windows.(status)..."Split.the.
10300 62 75 66 66 65 72 20 77 69 6e 64 6f 77 73 2e 0a 54 68 65 20 73 74 61 74 75 73 20 62 75 66 66 65 buffer.windows..The.status.buffe
10320 72 20 67 65 74 73 20 27 73 74 61 74 75 73 27 20 6c 69 6e 65 73 20 77 68 69 6c 65 20 74 68 65 20 r.gets.'status'.lines.while.the.
10340 74 72 61 6e 73 63 72 69 70 74 20 62 75 66 66 65 72 0a 67 65 74 73 20 74 68 65 20 72 65 6d 61 69 transcript.buffer.gets.the.remai
10360 6e 69 6e 67 20 6c 69 6e 65 73 2e 22 0a 20 20 28 64 65 6c 65 74 65 2d 6f 74 68 65 72 2d 77 69 6e ning.lines."...(delete-other-win
10380 64 6f 77 73 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 28 63 75 72 72 65 6e 74 dows.(get-buffer-window.(current
103a0 2d 62 75 66 66 65 72 29 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 -buffer)))...(setq.malyon-status
103c0 2d 62 75 66 66 65 72 2d 6c 69 6e 65 73 20 73 74 61 74 75 73 29 0a 20 20 28 73 65 74 71 20 6d 61 -buffer-lines.status)...(setq.ma
103e0 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 64 65 6c 61 79 65 64 2d 73 70 6c 69 74 lyon-status-buffer-delayed-split
10400 20 6e 69 6c 29 0a 20 20 28 69 66 20 28 7a 65 72 6f 70 20 73 74 61 74 75 73 29 0a 20 20 20 20 20 .nil)...(if.(zerop.status)......
10420 20 27 28 29 0a 20 20 20 20 28 73 70 6c 69 74 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 .'().....(split-window.(get-buff
10440 65 72 2d 77 69 6e 64 6f 77 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 20 73 74 61 74 er-window.(current-buffer)).stat
10460 75 73 29 0a 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e us).....(switch-to-buffer.malyon
10480 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 65 70 -status-buffer).....(malyon-prep
104a0 61 72 65 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 20 73 74 61 74 75 73 29 0a 20 20 20 20 28 6d are-status-buffer.status).....(m
104c0 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 75 72 73 6f 72 20 31 20 31 29 0a 20 20 20 alyon-opcode-set-cursor.1.1)....
104e0 20 28 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 31 29 29 0a 20 20 28 73 77 69 74 63 68 2d 74 6f 2d .(other-window.1))...(switch-to-
10500 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 29 buffer.malyon-transcript-buffer)
10520 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 ...(setq.malyon-window-configura
10540 74 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 tion.(current-window-configurati
10560 6f 6e 29 29 29 0a 0a 3b 3b 20 67 65 74 74 69 6e 67 20 61 6e 64 20 73 65 74 74 69 6e 67 20 74 68 on)))..;;.getting.and.setting.th
10580 65 20 6d 61 63 68 69 6e 65 20 73 74 61 74 65 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 63 e.machine.state..(defun.malyon-c
105a0 75 72 72 65 6e 74 2d 67 61 6d 65 2d 73 74 61 74 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 urrent-game-state.()..."Return.t
105c0 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 69 6e 74 65 72 70 72 65 he.current.state.of.the.interpre
105e0 74 65 72 2e 22 0a 20 20 28 76 65 63 74 6f 72 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 ter."...(vector.malyon-instructi
10600 6f 6e 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 on-pointer...........malyon-stac
10620 6b 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 k-pointer...........malyon-frame
10640 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 -pointer...........(copy-sequenc
10660 65 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d e.malyon-stack)...........(copy-
10680 73 65 71 75 65 6e 63 65 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 29 0a 20 20 20 20 sequence.malyon-story-file).....
106a0 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 71 75 65 74 7a 61 6c 29 ......malyon-game-state-quetzal)
106c0 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 65 74 2d 67 61 6d 65 2d 73 74 61 74 65 20 )..(defun.malyon-set-game-state.
106e0 28 73 74 61 74 65 29 0a 20 20 22 49 6e 73 74 61 6c 6c 73 20 74 68 65 20 67 69 76 65 6e 20 73 74 (state)..."Installs.the.given.st
10700 61 74 65 20 61 73 20 74 68 65 20 6e 65 77 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 69 6e 74 65 ate.as.the.new.state.of.the.inte
10720 72 70 72 65 74 65 72 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 rpreter."...(setq.malyon-instruc
10740 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 20 20 20 20 20 20 28 61 72 65 66 20 73 74 61 74 65 20 30 tion-pointer.......(aref.state.0
10760 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 ))...(setq.malyon-stack-pointer.
10780 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 73 74 61 74 65 20 31 29 29 0a 20 20 28 73 ............(aref.state.1))...(s
107a0 65 74 71 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 20 20 20 20 20 20 20 20 etq.malyon-frame-pointer........
107c0 20 20 20 20 20 28 61 72 65 66 20 73 74 61 74 65 20 32 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c .....(aref.state.2))...(setq.mal
107e0 79 6f 6e 2d 73 74 61 63 6b 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 20 20 20 20 20 28 61 yon-stack.(copy-sequence......(a
10800 72 65 66 20 73 74 61 74 65 20 33 29 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 ref.state.3)))...(setq.malyon-st
10820 6f 72 79 2d 66 69 6c 65 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 61 72 65 66 20 73 74 ory-file.(copy-sequence.(aref.st
10840 61 74 65 20 34 29 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 ate.4)))...(setq.malyon-game-sta
10860 74 65 2d 71 75 65 74 7a 61 6c 20 20 20 20 20 20 20 20 28 61 72 65 66 20 73 74 61 74 65 20 35 29 te-quetzal........(aref.state.5)
10880 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 20 6d 61 6c 79 6f 6e )...(with-current-buffer..malyon
108a0 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 65 72 61 73 65 -status-buffer.....(malyon-erase
108c0 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 29 0a 20 20 -buffer.malyon-status-buffer)...
108e0 20 20 28 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 73 20 30 ..(malyon-split-buffer-windows.0
10900 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6c 61 73 74 2d 63 75 72 73 6f 72 2d 70 ).....(setq.malyon-last-cursor-p
10920 6f 73 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 28 6d osition-after-input...........(m
10940 61 6c 79 6f 6e 2d 70 6f 69 6e 74 2d 6d 61 78 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 alyon-point-max.malyon-transcrip
10960 74 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 3b 3b 20 66 69 6c 65 20 75 74 69 6c 69 74 69 65 73 0a t-buffer))))..;;.file.utilities.
10980 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d .(defsubst.malyon-write-byte-to-
109a0 66 69 6c 65 20 28 62 79 74 65 29 0a 20 20 22 57 72 69 74 65 20 61 20 62 79 74 65 20 74 6f 20 61 file.(byte)..."Write.a.byte.to.a
109c0 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 28 6c 6f 67 61 6e 64 20 32 .file."...(insert-char.(logand.2
109e0 35 35 20 62 79 74 65 29 20 31 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 77 55.byte).1))..(defsubst.malyon-w
10a00 72 69 74 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 28 77 6f 72 64 29 0a 20 20 22 57 72 69 74 rite-word-to-file.(word)..."Writ
10a20 65 20 61 20 77 6f 72 64 20 74 6f 20 74 68 65 20 6c 61 73 74 20 6f 70 65 6e 65 64 20 66 69 6c 65 e.a.word.to.the.last.opened.file
10a40 2e 22 0a 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 28 6c 6f 67 61 6e 64 20 32 35 35 20 28 6c ."...(insert-char.(logand.255.(l
10a60 73 68 20 77 6f 72 64 20 2d 38 29 29 20 31 29 0a 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 28 sh.word.-8)).1)...(insert-char.(
10a80 6c 6f 67 61 6e 64 20 32 35 35 20 77 6f 72 64 29 20 31 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 logand.255.word).1))..(defsubst.
10aa0 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 64 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 28 64 77 6f 72 malyon-write-dword-to-file.(dwor
10ac0 64 29 0a 20 20 22 57 72 69 74 65 20 61 20 64 77 6f 72 64 20 74 6f 20 74 68 65 20 6c 61 73 74 20 d)..."Write.a.dword.to.the.last.
10ae0 6f 70 65 6e 65 64 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 28 6c 6f opened.file."...(insert-char.(lo
10b00 67 61 6e 64 20 32 35 35 20 28 6c 73 68 20 64 77 6f 72 64 20 2d 32 34 29 29 20 31 29 0a 20 20 28 gand.255.(lsh.dword.-24)).1)...(
10b20 69 6e 73 65 72 74 2d 63 68 61 72 20 28 6c 6f 67 61 6e 64 20 32 35 35 20 28 6c 73 68 20 64 77 6f insert-char.(logand.255.(lsh.dwo
10b40 72 64 20 2d 31 36 29 29 20 31 29 0a 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 28 6c 6f 67 61 rd.-16)).1)...(insert-char.(loga
10b60 6e 64 20 32 35 35 20 28 6c 73 68 20 64 77 6f 72 64 20 2d 38 29 29 20 31 29 0a 20 20 28 69 6e 73 nd.255.(lsh.dword.-8)).1)...(ins
10b80 65 72 74 2d 63 68 61 72 20 28 6c 6f 67 61 6e 64 20 32 35 35 20 64 77 6f 72 64 29 20 31 29 29 0a ert-char.(logand.255.dword).1)).
10ba0 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 63 68 75 6e 6b 2d 69 64 .(defsubst.malyon-write-chunk-id
10bc0 2d 74 6f 2d 66 69 6c 65 20 28 69 64 29 0a 20 20 22 57 72 69 74 65 20 61 20 71 75 65 74 7a 61 6c -to-file.(id)..."Write.a.quetzal
10be0 20 63 68 75 6e 6b 20 69 64 20 74 6f 20 74 68 65 20 6c 61 73 74 20 6f 70 65 6e 65 64 20 66 69 6c .chunk.id.to.the.last.opened.fil
10c00 65 2e 22 0a 20 20 28 69 6e 73 65 72 74 20 69 64 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 e."...(insert.id))..(defsubst.ma
10c20 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 20 28 29 0a 20 20 22 52 lyon-read-byte-from-file.()..."R
10c40 65 61 64 20 74 68 65 20 6e 65 78 74 20 62 79 74 65 20 66 72 6f 6d 20 61 20 66 69 6c 65 2e 22 0a ead.the.next.byte.from.a.file.".
10c60 20 20 28 69 66 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 ..(if.(=.(point).(point-max))...
10c80 20 20 20 20 30 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 31 29 0a 20 20 20 20 28 ....0.....(forward-char.1).....(
10ca0 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 74 6f 2d 69 6e 74 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 malyon-char-to-int.(char-before)
10cc0 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d )))..(defsubst.malyon-read-word-
10ce0 66 72 6f 6d 2d 66 69 6c 65 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 6e 65 78 74 20 77 6f from-file.()..."Read.the.next.wo
10d00 72 64 20 66 72 6f 6d 20 74 68 65 20 6c 61 73 74 20 6f 70 65 6e 65 64 20 66 69 6c 65 2e 22 0a 20 rd.from.the.last.opened.file."..
10d20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d .(logior.(lsh.(malyon-read-byte-
10d40 66 72 6f 6d 2d 66 69 6c 65 29 20 38 29 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d from-file).8).(malyon-read-byte-
10d60 66 72 6f 6d 2d 66 69 6c 65 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 72 from-file)))..(defsubst.malyon-r
10d80 65 61 64 2d 64 77 6f 72 64 2d 66 72 6f 6d 2d 66 69 6c 65 20 28 29 0a 20 20 22 52 65 61 64 20 74 ead-dword-from-file.()..."Read.t
10da0 68 65 20 6e 65 78 74 20 64 77 6f 72 64 20 66 72 6f 6d 20 74 68 65 20 6c 61 73 74 20 6f 70 65 6e he.next.dword.from.the.last.open
10dc0 65 64 20 66 69 6c 65 2e 22 0a 20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 28 6d 61 6c 79 6f 6e ed.file."...(logior.(lsh.(malyon
10de0 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 20 32 34 29 0a 20 20 20 20 20 20 -read-byte-from-file).24).......
10e00 20 20 20 20 28 6c 73 68 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d ....(lsh.(malyon-read-byte-from-
10e20 66 69 6c 65 29 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 73 68 20 28 6d 61 6c 79 6f 6e file).16)...........(lsh.(malyon
10e40 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 20 38 29 0a 20 20 20 20 20 20 20 -read-byte-from-file).8)........
10e60 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 ...(malyon-read-byte-from-file))
10e80 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 68 75 6e 6b 2d 69 )..(defsubst.malyon-read-chunk-i
10ea0 64 2d 66 72 6f 6d 2d 66 69 6c 65 20 28 29 0a 20 20 22 52 65 61 64 20 61 20 71 75 65 74 7a 61 6c d-from-file.()..."Read.a.quetzal
10ec0 20 63 68 75 6e 6b 20 69 64 20 66 72 6f 6d 20 74 68 65 20 6c 61 73 74 20 6f 70 65 6e 65 64 20 66 .chunk.id.from.the.last.opened.f
10ee0 69 6c 65 2e 22 0a 20 20 28 73 74 72 69 6e 67 20 28 6d 61 6c 79 6f 6e 2d 69 6e 74 2d 74 6f 2d 63 ile."...(string.(malyon-int-to-c
10f00 68 61 72 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 har.(malyon-read-byte-from-file)
10f20 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 74 2d 74 6f 2d 63 68 61 72 20 )...........(malyon-int-to-char.
10f40 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 (malyon-read-byte-from-file))...
10f60 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 74 2d 74 6f 2d 63 68 61 72 20 28 6d 61 6c ........(malyon-int-to-char.(mal
10f80 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 yon-read-byte-from-file)).......
10fa0 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 74 2d 74 6f 2d 63 68 61 72 20 28 6d 61 6c 79 6f 6e 2d ....(malyon-int-to-char.(malyon-
10fc0 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 read-byte-from-file))))..(defun.
10fe0 6d 61 6c 79 6f 6e 2d 67 65 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 61 64 64 72 65 73 73 29 0a 20 malyon-get-file-name.(address)..
11000 20 22 52 65 74 72 69 65 76 65 73 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 20 73 74 6f 72 65 64 ."Retrieves.the.file.name.stored
11020 20 61 74 20 61 64 64 72 65 73 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 6d 61 6b .at.address."...(let.((name.(mak
11040 65 2d 73 74 72 69 6e 67 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 61 64 64 72 65 e-string.(malyon-read-byte.addre
11060 73 73 29 20 3f 20 29 29 0a 20 20 20 20 20 20 20 20 28 69 20 20 20 20 30 29 29 0a 20 20 20 20 28 ss).?.)).........(i....0)).....(
11080 77 68 69 6c 65 20 28 3c 20 69 20 28 6c 65 6e 67 74 68 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 while.(<.i.(length.name)).......
110a0 28 61 73 65 74 20 6e 61 6d 65 20 69 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 (aset.name.i.(malyon-read-byte.(
110c0 2b 20 61 64 64 72 65 73 73 20 31 20 69 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 +.address.1.i))).......(setq.i.(
110e0 2b 20 31 20 69 29 29 29 0a 20 20 20 20 6e 61 6d 65 29 29 0a 0a 3b 3b 20 73 61 76 69 6e 67 20 64 +.1.i))).....name))..;;.saving.d
11100 61 74 61 20 74 6f 20 64 69 73 6b 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 61 76 65 2d ata.to.disk..(defun.malyon-save-
11120 66 69 6c 65 20 28 66 69 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 74 61 62 6c 65 20 6c 65 6e 67 74 file.(file.&optional.table.lengt
11140 68 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 61 6d 65 20 73 74 61 74 h)..."Save.the.current.game.stat
11160 65 20 6f 72 20 61 20 6d 65 6d 6f 72 79 20 73 65 63 74 69 6f 6e 20 74 6f 20 64 69 73 6b 2e 22 0a e.or.a.memory.section.to.disk.".
11180 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 46 53 61 76 65 20 66 69 6c 65 3a 20 22 29 0a 20 ..(interactive."FSave.file:.")..
111a0 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 6c 65 74 20 .(condition-case.nil.......(let.
111c0 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 77 72 69 74 65 20 27 62 69 6e 61 72 ((coding-system-for-write.'binar
111e0 79 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 66 69 6c 65 20 66 69 6c 65 y)).........(with-temp-file.file
11200 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 64 69 73 61 62 6c 65 2d 6d 75 6c 74 69 ...........(malyon-disable-multi
11220 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 65 72 61 73 65 2d 62 75 byte)...........(malyon-erase-bu
11240 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 74 61 62 6c 65 20 28 6d 61 ffer)...........(cond.(table.(ma
11260 6c 79 6f 6e 2d 73 61 76 65 2d 74 61 62 6c 65 20 74 61 62 6c 65 20 6c 65 6e 67 74 68 29 29 0a 20 lyon-save-table.table.length))..
11280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 ...............(malyon-game-stat
112a0 65 2d 71 75 65 74 7a 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 e-quetzal..................(maly
112c0 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 74 65 20 28 6d 61 6c 79 6f 6e 2d 63 75 on-save-quetzal-state.(malyon-cu
112e0 72 72 65 6e 74 2d 67 61 6d 65 2d 73 74 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 rrent-game-state))).............
11300 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d ....(t..................(malyon-
11320 73 61 76 65 2d 67 61 6d 65 2d 73 74 61 74 65 20 28 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e 74 2d save-game-state.(malyon-current-
11340 67 61 6d 65 2d 73 74 61 74 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 31 29 29 0a 20 20 20 game-state))))...........1))....
11360 20 20 20 28 65 72 72 6f 72 20 30 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 61 ...(error.0)))..(defun.malyon-sa
11380 76 65 2d 74 61 62 6c 65 20 28 74 61 62 6c 65 20 6c 65 6e 67 74 68 29 0a 20 20 22 53 61 76 65 20 ve-table.(table.length)..."Save.
113a0 74 68 65 20 67 69 76 65 6e 20 73 65 63 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 74 6f 20 74 the.given.section.of.memory.to.t
113c0 68 65 20 66 69 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 20 30 29 0a 20 20 20 20 20 20 20 20 he.file."...(let.((i.0).........
113e0 28 6a 20 74 61 62 6c 65 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 6c 65 6e 67 74 (j.table)).....(while.(<.i.lengt
11400 68 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 h).......(malyon-write-byte-to-f
11420 69 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 6a 29 29 0a 20 20 20 20 20 20 ile.(malyon-read-byte.j)).......
11440 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 20 28 2b (setq.i.(+.1.i).............j.(+
11460 20 31 20 6a 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 61 76 65 2d 67 61 .1.j)))))..(defun.malyon-save-ga
11480 6d 65 2d 73 74 61 74 65 20 28 73 74 61 74 65 29 0a 20 20 22 53 61 76 65 73 20 74 68 65 20 67 61 me-state.(state)..."Saves.the.ga
114a0 6d 65 20 73 74 61 74 65 20 74 6f 20 64 69 73 6b 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 70 20 20 me.state.to.disk."...(let.((ip..
114c0 20 20 28 61 72 65 66 20 73 74 61 74 65 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 73 70 20 20 20 ..(aref.state.0)).........(sp...
114e0 20 28 61 72 65 66 20 73 74 61 74 65 20 31 29 29 0a 20 20 20 20 20 20 20 20 28 66 70 20 20 20 20 .(aref.state.1)).........(fp....
11500 28 61 72 65 66 20 73 74 61 74 65 20 32 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 61 63 6b 20 28 (aref.state.2)).........(stack.(
11520 61 72 65 66 20 73 74 61 74 65 20 33 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 6d 20 20 20 28 61 aref.state.3)).........(mem...(a
11540 72 65 66 20 73 74 61 74 65 20 34 29 29 0a 20 20 20 20 20 20 20 20 28 64 79 6e 20 20 20 28 6d 61 ref.state.4)).........(dyn...(ma
11560 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 31 34 29 29 0a 20 20 20 20 20 20 20 20 28 69 20 20 lyon-read-word.14)).........(i..
11580 20 20 20 30 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 77 6f 72 64 2d 74 6f ...0)).....(malyon-write-word-to
115a0 2d 66 69 6c 65 20 28 6c 65 6e 67 74 68 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 2d -file.(length.malyon-story-file-
115c0 6e 61 6d 65 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 28 6c 65 6e 67 74 68 20 6d name)).....(while.(<.i.(length.m
115e0 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6d alyon-story-file-name)).......(m
11600 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 61 72 65 66 20 6d alyon-write-byte-to-file.(aref.m
11620 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 69 29 29 0a 20 20 20 20 20 20 alyon-story-file-name.i)).......
11640 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 (setq.i.(+.1.i))).....(malyon-wr
11660 69 74 65 2d 64 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 69 70 29 0a 20 20 20 20 28 6d 61 6c 79 6f ite-dword-to-file.ip).....(malyo
11680 6e 2d 77 72 69 74 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 20 73 70 29 0a 20 20 20 20 28 6d n-write-word-to-file..sp).....(m
116a0 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 20 66 70 29 0a 20 20 alyon-write-word-to-file..fp)...
116c0 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 20 64 79 ..(malyon-write-word-to-file..dy
116e0 6e 29 0a 20 20 20 20 28 73 65 74 71 20 69 20 30 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 3d n).....(setq.i.0).....(while.(<=
11700 20 69 20 73 70 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 64 77 6f 72 64 .i.sp).......(malyon-write-dword
11720 2d 74 6f 2d 66 69 6c 65 20 28 61 72 65 66 20 73 74 61 63 6b 20 69 29 29 0a 20 20 20 20 20 20 28 -to-file.(aref.stack.i)).......(
11740 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 69 20 30 29 0a setq.i.(+.1.i))).....(setq.i.0).
11760 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 64 79 6e 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 ....(while.(<.i.dyn).......(maly
11780 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 61 72 65 66 20 6d 65 6d 20 on-write-byte-to-file.(aref.mem.
117a0 69 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 29 29 0a 0a 28 i)).......(setq.i.(+.1.i)))))..(
117c0 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 74 65 20 defun.malyon-save-quetzal-state.
117e0 28 73 74 61 74 65 29 0a 20 20 22 53 61 76 65 73 20 74 68 65 20 67 61 6d 65 20 73 74 61 74 65 20 (state)..."Saves.the.game.state.
11800 74 6f 20 64 69 73 6b 20 69 6e 20 71 75 65 74 7a 61 6c 20 66 6f 72 6d 61 74 2e 22 0a 20 20 28 67 to.disk.in.quetzal.format."...(g
11820 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d oto-char.(point-min))...(malyon-
11840 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 69 66 68 64 20 73 74 61 74 65 29 0a 20 20 28 6d 61 6c 79 save-quetzal-ifhd.state)...(maly
11860 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 63 6d 65 6d 20 73 74 61 74 65 29 0a 20 20 28 6d on-save-quetzal-cmem.state)...(m
11880 61 6c 79 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 73 74 6b 73 20 73 74 61 74 65 29 0a 20 alyon-save-quetzal-stks.state)..
118a0 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6d 61 6c 79 .(goto-char.(point-min))...(maly
118c0 6f 6e 2d 77 72 69 74 65 2d 63 68 75 6e 6b 2d 69 64 2d 74 6f 2d 66 69 6c 65 20 22 49 46 5a 53 22 on-write-chunk-id-to-file."IFZS"
118e0 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6d )...(goto-char.(point-min))...(m
11900 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 64 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 28 2d 20 28 70 6f alyon-write-dword-to-file.(-.(po
11920 69 6e 74 2d 6d 61 78 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 28 67 6f 74 6f 2d 63 int-max).(point-min)))...(goto-c
11940 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 har.(point-min))...(malyon-write
11960 2d 63 68 75 6e 6b 2d 69 64 2d 74 6f 2d 66 69 6c 65 20 22 46 4f 52 4d 22 29 29 0a 0a 28 64 65 66 -chunk-id-to-file."FORM"))..(def
11980 75 6e 20 6d 61 6c 79 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 69 66 68 64 20 28 73 74 61 un.malyon-save-quetzal-ifhd.(sta
119a0 74 65 29 0a 20 20 22 53 61 76 65 73 20 74 68 65 20 49 46 68 64 20 63 68 75 6e 6b 20 6f 66 20 74 te)..."Saves.the.IFhd.chunk.of.t
119c0 68 65 20 71 75 65 74 7a 61 6c 20 66 6f 72 6d 61 74 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 he.quetzal.format."...(malyon-wr
119e0 69 74 65 2d 63 68 75 6e 6b 2d 69 64 2d 74 6f 2d 66 69 6c 65 20 22 49 46 68 64 22 29 0a 20 20 28 ite-chunk-id-to-file."IFhd")...(
11a00 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 64 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 31 33 29 0a 20 malyon-write-dword-to-file.13)..
11a20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 28 6d 61 6c .(malyon-write-word-to-file.(mal
11a40 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 yon-read-word.2))...(malyon-writ
11a60 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 e-word-to-file.(malyon-read-word
11a80 20 31 38 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 .18))...(malyon-write-word-to-fi
11aa0 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 30 29 29 0a 20 20 28 6d 61 6c le.(malyon-read-word.20))...(mal
11ac0 79 6f 6e 2d 77 72 69 74 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 yon-write-word-to-file.(malyon-r
11ae0 65 61 64 2d 77 6f 72 64 20 32 32 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 77 6f ead-word.22))...(malyon-write-wo
11b00 72 64 2d 74 6f 2d 66 69 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 38 29 rd-to-file.(malyon-read-word.28)
11b20 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 )...(malyon-write-byte-to-file.(
11b40 6c 73 68 20 28 61 72 65 66 20 73 74 61 74 65 20 30 29 20 2d 31 36 29 29 0a 20 20 28 6d 61 6c 79 lsh.(aref.state.0).-16))...(maly
11b60 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 6c 73 68 20 28 61 72 65 66 on-write-byte-to-file.(lsh.(aref
11b80 20 73 74 61 74 65 20 30 29 20 2d 38 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 .state.0).-8))...(malyon-write-b
11ba0 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 61 72 65 66 20 73 74 61 74 65 20 30 29 29 0a 20 20 28 6d yte-to-file.(aref.state.0))...(m
11bc0 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 30 29 29 0a 0a 28 64 alyon-write-byte-to-file.0))..(d
11be0 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 63 6d 65 6d 20 28 73 efun.malyon-save-quetzal-cmem.(s
11c00 74 61 74 65 29 0a 20 20 22 53 61 76 65 73 20 74 68 65 20 43 4d 65 6d 20 63 68 75 6e 6b 20 6f 66 tate)..."Saves.the.CMem.chunk.of
11c20 20 74 68 65 20 71 75 65 74 7a 61 6c 20 66 6f 72 6d 61 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 .the.quetzal.format."...(let.((b
11c40 65 67 69 6e 6e 69 6e 67 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 28 6f eginning.(point-max)).........(o
11c60 72 69 67 69 6e 61 6c 20 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 riginal..(aref.malyon-game-state
11c80 2d 72 65 73 74 61 72 74 20 34 29 29 0a 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 20 20 20 -restart.4)).........(current...
11ca0 28 61 72 65 66 20 73 74 61 74 65 20 34 29 29 0a 20 20 20 20 20 20 20 20 28 73 69 7a 65 20 20 20 (aref.state.4)).........(size...
11cc0 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 31 34 29 29 0a 20 20 20 20 20 20 ...(malyon-read-word.14)).......
11ce0 20 20 28 62 79 74 65 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 20 20 ..(byte......0).........(count..
11d00 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 28 69 20 20 20 20 20 20 20 20 20 30 29 29 0a 20 20 20 ...0).........(i.........0))....
11d20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 77 68 .(goto-char.(point-max)).....(wh
11d40 69 6c 65 20 28 3c 20 69 20 73 69 7a 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 79 74 65 20 ile.(<.i.size).......(setq.byte.
11d60 28 6c 6f 67 78 6f 72 20 28 61 72 65 66 20 63 75 72 72 65 6e 74 20 69 29 20 28 61 72 65 66 20 6f (logxor.(aref.current.i).(aref.o
11d80 72 69 67 69 6e 61 6c 20 69 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 62 79 riginal.i))).......(if.(zerop.by
11da0 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 20 28 2b 20 31 20 63 te)...........(setq.count.(+.1.c
11dc0 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 63 6f 75 6e 74 20 30 ount)).........(while.(>.count.0
11de0 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 )...........(malyon-write-byte-t
11e00 6f 2d 66 69 6c 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 20 o-file.0)...........(setq.count.
11e20 28 2d 20 63 6f 75 6e 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 (-.count.1))...........(malyon-w
11e40 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 6d 69 6e 20 32 35 35 20 63 6f 75 6e 74 rite-byte-to-file.(min.255.count
11e60 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 20 28 2d 20 63 6f 75 6e ))...........(setq.count.(-.coun
11e80 74 20 28 6d 69 6e 20 32 35 35 20 63 6f 75 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 t.(min.255.count)))).........(ma
11ea0 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 62 79 74 65 29 29 0a 20 lyon-write-byte-to-file.byte))..
11ec0 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 20 20 20 20 28 73 65 74 71 .....(setq.i.(+.1.i))).....(setq
11ee0 20 73 69 7a 65 20 28 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 62 65 67 69 6e 6e 69 6e 67 29 29 .size.(-.(point-max).beginning))
11f00 0a 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 28 6d 6f 64 20 73 69 7a 65 20 32 29 29 20 27 28 .....(if.(zerop.(mod.size.2)).'(
11f20 29 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 30 29 29 ).(malyon-write-byte-to-file.0))
11f40 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 28 .....(goto-char.beginning).....(
11f60 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 63 68 75 6e 6b 2d 69 64 2d 74 6f 2d 66 69 6c 65 20 22 43 malyon-write-chunk-id-to-file."C
11f80 4d 65 6d 22 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 64 77 6f 72 64 2d 74 6f Mem").....(malyon-write-dword-to
11fa0 2d 66 69 6c 65 20 73 69 7a 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 61 76 -file.size)))..(defun.malyon-sav
11fc0 65 2d 71 75 65 74 7a 61 6c 2d 73 74 6b 73 20 28 73 74 61 74 65 29 0a 20 20 22 53 61 76 65 73 20 e-quetzal-stks.(state)..."Saves.
11fe0 74 68 65 20 53 74 6b 73 20 63 68 75 6e 6b 20 6f 66 20 74 68 65 20 71 75 65 74 7a 61 6c 20 66 6f the.Stks.chunk.of.the.quetzal.fo
12000 72 6d 61 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 65 67 69 6e 6e 69 6e 67 20 28 70 6f 69 6e 74 rmat."...(let.((beginning.(point
12020 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 28 73 69 7a 65 20 20 20 20 20 20 30 29 29 0a 20 20 -max)).........(size......0))...
12040 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 6d ..(goto-char.(point-max)).....(m
12060 61 6c 79 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 63 6b 2d 66 72 61 6d 65 20 28 alyon-save-quetzal-stack-frame.(
12080 2d 20 28 61 72 65 66 20 73 74 61 74 65 20 32 29 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -.(aref.state.2).4).............
120a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 73 .........................(aref.s
120c0 74 61 74 65 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tate.1).........................
120e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 73 74 61 74 65 20 33 29 29 0a 20 20 20 .............(aref.state.3))....
12100 20 28 73 65 74 71 20 73 69 7a 65 20 28 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 62 65 67 69 6e .(setq.size.(-.(point-max).begin
12120 6e 69 6e 67 29 29 0a 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 28 6d 6f 64 20 73 69 7a 65 20 ning)).....(if.(zerop.(mod.size.
12140 32 29 29 20 27 28 29 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 2)).'().(malyon-write-byte-to-fi
12160 6c 65 20 30 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 69 6e 6e 69 6e 67 29 le.0)).....(goto-char.beginning)
12180 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 63 68 75 6e 6b 2d 69 64 2d 74 6f 2d 66 .....(malyon-write-chunk-id-to-f
121a0 69 6c 65 20 22 53 74 6b 73 22 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 64 77 ile."Stks").....(malyon-write-dw
121c0 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 73 69 7a 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 ord-to-file.size)))..(defun.maly
121e0 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 63 6b 2d 66 72 61 6d 65 20 28 66 70 20 on-save-quetzal-stack-frame.(fp.
12200 73 70 20 73 74 61 63 6b 29 0a 20 20 22 53 61 76 65 73 20 74 68 65 20 73 74 61 63 6b 20 66 72 61 sp.stack)..."Saves.the.stack.fra
12220 6d 65 73 20 66 6f 72 20 74 68 65 20 53 74 6b 73 20 63 68 75 6e 6b 2e 22 0a 20 20 28 6c 65 74 2a mes.for.the.Stks.chunk."...(let*
12240 20 28 28 66 72 61 6d 65 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 67 65 74 2d 73 74 61 63 6b .((frame.......(malyon-get-stack
12260 2d 66 72 61 6d 65 20 66 70 20 73 70 20 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 -frame.fp.sp.stack))..........(f
12280 72 61 6d 65 2d 69 64 20 20 20 20 28 61 72 65 66 20 66 72 61 6d 65 20 30 29 29 0a 20 20 20 20 20 rame-id....(aref.frame.0))......
122a0 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 66 70 20 28 61 72 65 66 20 66 72 61 6d 65 20 31 29 29 ....(previous-fp.(aref.frame.1))
122c0 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 73 70 20 28 61 72 65 66 20 66 72 61 ..........(previous-sp.(aref.fra
122e0 6d 65 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 74 75 72 6e 2d 61 64 64 72 20 28 61 72 me.2))..........(return-addr.(ar
12300 65 66 20 66 72 61 6d 65 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 2d 61 64 ef.frame.3))..........(result-ad
12320 64 72 20 28 61 72 65 66 20 66 72 61 6d 65 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 6f 63 dr.(aref.frame.4))..........(loc
12340 61 6c 2d 76 61 72 73 20 20 28 61 72 65 66 20 66 72 61 6d 65 20 35 29 29 0a 20 20 20 20 20 20 20 al-vars..(aref.frame.5))........
12360 20 20 28 6e 75 6d 2d 61 72 67 73 20 20 20 20 28 61 72 65 66 20 66 72 61 6d 65 20 36 29 29 0a 20 ..(num-args....(aref.frame.6))..
12380 20 20 20 20 20 20 20 20 28 65 76 61 6c 2d 73 74 61 63 6b 20 20 28 61 72 65 66 20 66 72 61 6d 65 ........(eval-stack..(aref.frame
123a0 20 37 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 66 72 61 6d 65 2d 69 64 20 30 29 0a 20 20 20 .7))).....(if.(>.frame-id.0)....
123c0 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 61 76 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 63 6b 2d .....(malyon-save-quetzal-stack-
123e0 66 72 61 6d 65 20 70 72 65 76 69 6f 75 73 2d 66 70 20 70 72 65 76 69 6f 75 73 2d 73 70 20 73 74 frame.previous-fp.previous-sp.st
12400 61 63 6b 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d ack)).....(malyon-write-byte-to-
12420 66 69 6c 65 20 28 6c 73 68 20 72 65 74 75 72 6e 2d 61 64 64 72 20 2d 31 36 29 29 0a 20 20 20 20 file.(lsh.return-addr.-16)).....
12440 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 6c 73 68 20 (malyon-write-byte-to-file.(lsh.
12460 72 65 74 75 72 6e 2d 61 64 64 72 20 2d 38 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 return-addr.-8)).....(malyon-wri
12480 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 72 65 74 75 72 6e 2d 61 64 64 72 29 0a 20 20 20 te-byte-to-file.return-addr)....
124a0 20 28 69 66 20 28 7a 65 72 6f 70 20 66 72 61 6d 65 2d 69 64 29 0a 20 20 20 20 20 20 20 20 28 6d .(if.(zerop.frame-id).........(m
124c0 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 30 29 0a 20 20 20 20 alyon-write-byte-to-file.0).....
124e0 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 6c 6f ..(malyon-write-byte-to-file.(lo
12500 67 69 6f 72 20 28 69 66 20 72 65 73 75 6c 74 2d 61 64 64 72 20 30 20 31 36 29 0a 20 20 20 20 20 gior.(if.result-addr.0.16)......
12520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
12540 20 20 20 20 28 6c 65 6e 67 74 68 20 6c 6f 63 61 6c 2d 76 61 72 73 29 29 29 29 0a 20 20 20 20 28 ....(length.local-vars)))).....(
12560 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 69 66 20 72 65 malyon-write-byte-to-file.(if.re
12580 73 75 6c 74 2d 61 64 64 72 20 72 65 73 75 6c 74 2d 61 64 64 72 20 30 29 29 0a 20 20 20 20 28 6d sult-addr.result-addr.0)).....(m
125a0 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 62 79 74 65 2d 74 6f 2d 66 69 6c 65 20 28 2d 20 28 6c 73 68 alyon-write-byte-to-file.(-.(lsh
125c0 20 31 20 6e 75 6d 2d 61 72 67 73 29 20 31 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 .1.num-args).1)).....(malyon-wri
125e0 74 65 2d 77 6f 72 64 2d 74 6f 2d 66 69 6c 65 20 28 6c 65 6e 67 74 68 20 65 76 61 6c 2d 73 74 61 te-word-to-file.(length.eval-sta
12600 63 6b 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 6c 6f 63 61 6c ck)).....(while.(not.(null.local
12620 2d 76 61 72 73 29 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 77 6f 72 64 -vars)).......(malyon-write-word
12640 2d 74 6f 2d 66 69 6c 65 20 28 63 61 72 20 6c 6f 63 61 6c 2d 76 61 72 73 29 29 0a 20 20 20 20 20 -to-file.(car.local-vars))......
12660 20 28 73 65 74 71 20 6c 6f 63 61 6c 2d 76 61 72 73 20 28 63 64 72 20 6c 6f 63 61 6c 2d 76 61 72 .(setq.local-vars.(cdr.local-var
12680 73 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 65 76 61 6c 2d s))).....(while.(not.(null.eval-
126a0 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 72 69 74 65 2d 77 6f 72 64 stack)).......(malyon-write-word
126c0 2d 74 6f 2d 66 69 6c 65 20 28 63 61 72 20 65 76 61 6c 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 20 -to-file.(car.eval-stack))......
126e0 20 28 73 65 74 71 20 65 76 61 6c 2d 73 74 61 63 6b 20 28 63 64 72 20 65 76 61 6c 2d 73 74 61 63 .(setq.eval-stack.(cdr.eval-stac
12700 6b 29 29 29 29 29 0a 0a 3b 3b 20 72 65 73 74 6f 72 69 6e 67 20 64 61 74 61 20 66 72 6f 6d 20 64 k)))))..;;.restoring.data.from.d
12720 69 73 6b 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 64 61 74 61 isk..(defvar.malyon-restore-data
12740 2d 65 72 72 6f 72 20 6e 69 6c 0a 20 20 22 41 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 -error.nil..."An.error.message.i
12760 66 20 72 65 73 74 6f 72 69 6e 67 20 64 61 74 61 20 66 72 6f 6d 20 61 20 66 69 6c 65 20 66 61 69 f.restoring.data.from.a.file.fai
12780 6c 65 64 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 led.")..(defvar.malyon-restore-q
127a0 75 65 74 7a 61 6c 2d 73 74 61 63 6b 20 6e 69 6c 0a 20 20 22 41 20 74 65 6d 70 6f 72 61 72 79 20 uetzal-stack.nil..."A.temporary.
127c0 73 74 61 63 6b 20 66 6f 72 20 72 65 73 74 6f 72 69 6e 67 20 71 75 65 74 7a 61 6c 20 67 61 6d 65 stack.for.restoring.quetzal.game
127e0 20 73 74 61 74 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f .states.")..(defvar.malyon-resto
12800 72 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 6e 69 6c 0a 20 20 22 re-quetzal-stack-pointer.nil..."
12820 41 20 74 65 6d 70 6f 72 61 72 79 20 73 74 61 63 6b 20 70 6f 69 6e 74 65 72 20 66 6f 72 20 72 65 A.temporary.stack.pointer.for.re
12840 73 74 6f 72 69 6e 67 20 71 75 65 74 7a 61 6c 20 67 61 6d 65 20 73 74 61 74 65 73 2e 22 29 0a 0a storing.quetzal.game.states.")..
12860 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 66 (defvar.malyon-restore-quetzal-f
12880 72 61 6d 65 2d 70 6f 69 6e 74 65 72 20 6e 69 6c 0a 20 20 22 41 20 74 65 6d 70 6f 72 61 72 79 20 rame-pointer.nil..."A.temporary.
128a0 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 20 66 6f 72 20 72 65 73 74 6f 72 69 6e 67 20 71 75 65 74 frame-pointer.for.restoring.quet
128c0 7a 61 6c 20 67 61 6d 65 20 73 74 61 74 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f zal.game.states.")..(defun.malyo
128e0 6e 2d 72 65 73 74 6f 72 65 2d 66 69 6c 65 20 28 66 69 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 74 n-restore-file.(file.&optional.t
12900 61 62 6c 65 20 6c 65 6e 67 74 68 29 0a 20 20 22 52 65 73 74 6f 72 65 20 61 20 67 61 6d 65 20 73 able.length)..."Restore.a.game.s
12920 74 61 74 65 20 6f 72 20 61 20 6d 65 6d 6f 72 79 20 73 65 63 74 69 6f 6e 20 66 72 6f 6d 20 64 69 tate.or.a.memory.section.from.di
12940 73 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 66 4c 6f 61 64 20 66 69 6c 65 3a sk."...(interactive."fLoad.file:
12960 20 22 29 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 .")...(if.(not.(and.(file-exists
12980 2d 70 20 66 69 6c 65 29 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 66 69 6c 65 29 29 -p.file).(file-readable-p.file))
129a0 29 0a 20 20 20 20 20 20 30 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 ).......0.....(condition-case.ni
129c0 6c 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 l.........(save-excursion.......
129e0 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 64 61 74 61 2d 65 72 ....(setq.malyon-restore-data-er
12a00 72 6f 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 28 ror.nil)...........(set-buffer.(
12a20 63 72 65 61 74 65 2d 66 69 6c 65 2d 62 75 66 66 65 72 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 create-file-buffer.file)).......
12a40 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6c 6f 61 64 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 ....(malyon-load-file.file).....
12a60 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ......(goto-char.(point-min))...
12a80 20 20 20 20 20 20 20 20 28 69 66 20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(if.table...............
12aa0 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 74 61 62 6c 65 20 74 61 62 6c 65 20 6c 65 6e 67 (malyon-restore-table.table.leng
12ac0 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 66 69 72 73 74 20 20 28 th).............(let*.((first..(
12ae0 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 68 75 6e 6b 2d 69 64 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 malyon-read-chunk-id-from-file))
12b00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 63 6f 6e 64 20 28 6d 61 6c ....................(second.(mal
12b20 79 6f 6e 2d 72 65 61 64 2d 64 77 6f 72 64 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 yon-read-dword-from-file))......
12b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 69 72 64 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 ..............(third..(malyon-re
12b60 61 64 2d 63 68 75 6e 6b 2d 69 64 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 ad-chunk-id-from-file)))........
12b80 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 3d 20 22 46 4f 52 4d 22 20 .......(if.(and.(string=."FORM".
12ba0 66 69 72 73 74 29 20 28 73 74 72 69 6e 67 3d 20 22 49 46 5a 53 22 20 74 68 69 72 64 29 29 0a 20 first).(string=."IFZS".third))..
12bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 .................(malyon-restore
12be0 2d 71 75 65 74 7a 61 6c 2d 73 74 61 74 65 20 28 2b 20 38 20 73 65 63 6f 6e 64 29 29 0a 20 20 20 -quetzal-state.(+.8.second))....
12c00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d .............(goto-char.(point-m
12c20 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 in)).................(malyon-res
12c40 74 6f 72 65 2d 67 61 6d 65 2d 73 74 61 74 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b tore-game-state))))...........(k
12c60 69 6c 6c 2d 62 75 66 66 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e ill-buffer.nil)...........(if.(n
12c80 75 6c 6c 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 64 61 74 61 2d 65 72 72 6f 72 29 0a 20 ull.malyon-restore-data-error)..
12ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 .............2.............(mess
12cc0 61 67 65 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 64 61 74 61 2d 65 72 72 6f 72 29 0a 20 age.malyon-restore-data-error)..
12ce0 20 20 20 20 20 20 20 20 20 20 20 30 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 30 29 29 29 ...........0)).......(error.0)))
12d00 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 74 61 62 6c 65 20 28 )..(defun.malyon-restore-table.(
12d20 74 61 62 6c 65 20 6c 65 6e 67 74 68 29 0a 20 20 22 52 65 73 74 6f 72 65 20 74 68 65 20 67 69 76 table.length)..."Restore.the.giv
12d40 65 6e 20 73 65 63 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 66 72 6f 6d 20 61 20 66 69 6c 65 en.section.of.memory.from.a.file
12d60 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 20 30 29 0a 20 20 20 20 20 20 20 20 28 6a 20 74 61 62 6c ."...(let.((i.0).........(j.tabl
12d80 65 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 6c 65 6e 67 74 68 29 0a 20 20 20 20 e)).....(while.(<.i.length).....
12da0 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 6a 20 28 6d 61 6c 79 6f 6e 2d 72 ..(malyon-store-byte.j.(malyon-r
12dc0 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 ead-byte-from-file)).......(setq
12de0 20 69 20 28 2b 20 31 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 20 28 2b 20 31 20 6a 29 .i.(+.1.i).............j.(+.1.j)
12e00 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 67 61 6d 65 ))))..(defun.malyon-restore-game
12e20 2d 73 74 61 74 65 20 28 29 0a 20 20 22 52 65 73 74 6f 72 65 20 61 20 73 61 76 65 64 20 67 61 6d -state.()..."Restore.a.saved.gam
12e40 65 20 73 74 61 74 65 20 66 72 6f 6d 20 64 69 73 6b 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 6e e.state.from.disk."...(let.((len
12e60 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 20 30 29 0a 20 20 20 20 20 20 20 20 ...0).........(name..0).........
12e80 28 73 74 6f 72 79 20 30 29 0a 20 20 20 20 20 20 20 20 28 69 70 20 20 20 20 30 29 0a 20 20 20 20 (story.0).........(ip....0).....
12ea0 20 20 20 20 28 73 70 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 28 66 70 20 20 20 20 30 29 0a ....(sp....0).........(fp....0).
12ec0 20 20 20 20 20 20 20 20 28 64 79 6e 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 28 73 74 61 63 6b ........(dyn...0).........(stack
12ee0 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 29 29 0a 20 .(copy-sequence.malyon-stack))..
12f00 20 20 20 20 20 20 20 28 6d 65 6d 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 6d 61 6c .......(mem...(copy-sequence.mal
12f20 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 28 69 20 20 20 20 20 yon-story-file)).........(i.....
12f40 30 29 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 6e 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 0)).....(setq.len.(malyon-read-w
12f60 6f 72 64 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 ord-from-file)).....(setq.name.(
12f80 6d 61 6b 65 2d 73 74 72 69 6e 67 20 6c 65 6e 20 3f 20 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 make-string.len.?.)).....(while.
12fa0 28 3c 20 69 20 6c 65 6e 29 0a 20 20 20 20 20 20 28 61 73 65 74 20 6e 61 6d 65 20 69 20 28 6d 61 (<.i.len).......(aset.name.i.(ma
12fc0 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 lyon-read-byte-from-file))......
12fe0 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 69 70 20 .(setq.i.(+.1.i))).....(setq.ip.
13000 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 64 77 6f 72 64 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a .(malyon-read-dword-from-file)).
13020 20 20 20 20 28 73 65 74 71 20 73 70 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d ....(setq.sp..(malyon-read-word-
13040 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 66 70 20 20 28 6d 61 6c 79 6f from-file)).....(setq.fp..(malyo
13060 6e 2d 72 65 61 64 2d 77 6f 72 64 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 28 73 65 74 n-read-word-from-file)).....(set
13080 71 20 64 79 6e 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d 66 72 6f 6d 2d 66 69 6c q.dyn.(malyon-read-word-from-fil
130a0 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 69 20 30 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c e)).....(setq.i.0).....(while.(<
130c0 3d 20 69 20 73 70 29 0a 20 20 20 20 20 20 28 61 73 65 74 20 73 74 61 63 6b 20 69 20 28 6d 61 6c =.i.sp).......(aset.stack.i.(mal
130e0 79 6f 6e 2d 72 65 61 64 2d 64 77 6f 72 64 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 yon-read-dword-from-file))......
13100 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 69 20 30 .(setq.i.(+.1.i))).....(setq.i.0
13120 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 64 79 6e 29 0a 20 20 20 20 20 20 28 61 73 ).....(while.(<.i.dyn).......(as
13140 65 74 20 6d 65 6d 20 69 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d et.mem.i.(malyon-read-byte-from-
13160 66 69 6c 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 20 file)).......(setq.i.(+.1.i)))..
13180 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 ...(setq.name..(file-name-nondir
131a0 65 63 74 6f 72 79 20 6e 61 6d 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 73 74 6f 72 79 20 28 66 ectory.name)).....(setq.story.(f
131c0 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 6d 61 6c 79 6f 6e 2d 73 74 6f ile-name-nondirectory.malyon-sto
131e0 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 73 74 72 69 ry-file-name)).....(if.(or.(stri
13200 6e 67 2d 6d 61 74 63 68 20 6e 61 6d 65 20 73 74 6f 72 79 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 ng-match.name.story).(string-mat
13220 63 68 20 73 74 6f 72 79 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d ch.story.name)).........(malyon-
13240 73 65 74 2d 67 61 6d 65 2d 73 74 61 74 65 20 28 76 65 63 74 6f 72 20 69 70 20 73 70 20 66 70 20 set-game-state.(vector.ip.sp.fp.
13260 73 74 61 63 6b 20 6d 65 6d 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 stack.mem.nil)).......(setq.maly
13280 6f 6e 2d 72 65 73 74 6f 72 65 2d 64 61 74 61 2d 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 73 on-restore-data-error."Invalid.s
132a0 61 76 65 20 66 69 6c 65 2e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 ave.file."))))..(defun.malyon-re
132c0 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 74 65 20 28 73 69 7a 65 29 0a 20 20 22 52 65 store-quetzal-state.(size)..."Re
132e0 73 74 6f 72 65 20 61 20 73 61 76 65 64 20 71 75 65 74 7a 61 6c 20 67 61 6d 65 20 73 74 61 74 65 store.a.saved.quetzal.game.state
13300 20 66 72 6f 6d 20 64 69 73 6b 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 68 75 6e 6b 2d 69 64 20 20 .from.disk."...(let.((chunk-id..
13320 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 63 68 75 6e 6b 2d 6c 65 6e 20 30 29 0a 20 20 20 20 20 nil).........(chunk-len.0)......
13340 20 20 20 28 69 70 20 20 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 28 6d 65 6d 6f 72 79 ...(ip........0).........(memory
13360 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 74 61 63 6b 20 20 20 20 20 6e 69 6c 29 ....nil).........(stack.....nil)
13380 0a 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 28 77 68 69 .........(beginning.0)).....(whi
133a0 6c 65 20 28 3c 20 28 70 6f 69 6e 74 29 20 73 69 7a 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 le.(<.(point).size).......(setq.
133c0 63 68 75 6e 6b 2d 69 64 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 68 75 6e 6b 2d 69 64 2d chunk-id..(malyon-read-chunk-id-
133e0 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 68 75 6e 6b 2d 6c 65 from-file)).......(setq.chunk-le
13400 6e 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 64 77 6f 72 64 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 n.(malyon-read-dword-from-file))
13420 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 69 6e 6e 69 6e 67 20 28 70 6f 69 6e 74 29 29 0a .......(setq.beginning.(point)).
13440 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 3d 20 63 68 75 6e 6b 2d 69 64 20 22 ......(cond.((string=.chunk-id."
13460 49 46 68 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 70 20 28 6d 61 IFhd")..............(setq.ip.(ma
13480 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 69 66 68 64 20 63 68 75 6e 6b 2d lyon-restore-quetzal-ifhd.chunk-
134a0 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 63 68 75 len))).............((string=.chu
134c0 6e 6b 2d 69 64 20 22 43 4d 65 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 nk-id."CMem")..............(setq
134e0 20 6d 65 6d 6f 72 79 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d .memory.(malyon-restore-quetzal-
13500 63 6d 65 6d 20 63 68 75 6e 6b 2d 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 cmem.chunk-len))).............((
13520 73 74 72 69 6e 67 3d 20 63 68 75 6e 6b 2d 69 64 20 22 55 4d 65 6d 22 29 0a 20 20 20 20 20 20 20 string=.chunk-id."UMem")........
13540 20 20 20 20 20 20 28 73 65 74 71 20 6d 65 6d 6f 72 79 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f ......(setq.memory.(malyon-resto
13560 72 65 2d 71 75 65 74 7a 61 6c 2d 75 6d 65 6d 20 63 68 75 6e 6b 2d 6c 65 6e 29 29 29 0a 20 20 20 re-quetzal-umem.chunk-len)))....
13580 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 63 68 75 6e 6b 2d 69 64 20 22 53 74 6b .........((string=.chunk-id."Stk
135a0 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 63 6b 20 28 6d 61 s")..............(setq.stack.(ma
135c0 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 73 74 6b 73 20 63 68 75 6e 6b 2d lyon-restore-quetzal-stks.chunk-
135e0 6c 65 6e 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 28 6d 6f 64 20 63 68 len)))).......(if.(zerop.(mod.ch
13600 75 6e 6b 2d 6c 65 6e 20 32 29 29 20 27 28 29 20 28 73 65 74 71 20 63 68 75 6e 6b 2d 6c 65 6e 20 unk-len.2)).'().(setq.chunk-len.
13620 28 2b 20 31 20 63 68 75 6e 6b 2d 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 (+.1.chunk-len))).......(goto-ch
13640 61 72 20 28 2b 20 62 65 67 69 6e 6e 69 6e 67 20 63 68 75 6e 6b 2d 6c 65 6e 29 29 29 0a 20 20 20 ar.(+.beginning.chunk-len)))....
13660 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 69 70 20 6d 65 6d 6f 72 79 20 73 74 61 63 6b 29 0a 20 20 .(cond.((and.ip.memory.stack)...
13680 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 65 74 2d 67 61 6d 65 2d 73 74 61 74 65 20 .........(malyon-set-game-state.
136a0 28 76 65 63 74 6f 72 20 69 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (vector.ip......................
136c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 73 74 61 63 6b .....................(aref.stack
136e0 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .0).............................
13700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 73 74 61 63 6b 20 31 29 0a 20 20 20 ..............(aref.stack.1)....
13720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13740 20 20 20 20 20 20 20 28 61 72 65 66 20 73 74 61 63 6b 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 .......(aref.stack.2)...........
13760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13780 6d 65 6d 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 memory..........................
137a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .................t)))...........
137c0 28 28 6e 75 6c 6c 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 64 61 74 61 2d 65 72 72 6f 72 ((null.malyon-restore-data-error
137e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 )............(setq.malyon-restor
13800 65 2d 64 61 74 61 2d 65 72 72 6f 72 20 22 69 6e 76 61 6c 69 64 20 71 75 65 74 7a 61 6c 20 66 69 e-data-error."invalid.quetzal.fi
13820 6c 65 2e 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 le.")))))..(defun.malyon-restore
13840 2d 71 75 65 74 7a 61 6c 2d 69 66 68 64 20 28 73 69 7a 65 29 0a 20 20 22 52 65 73 74 6f 72 65 20 -quetzal-ifhd.(size)..."Restore.
13860 61 6e 20 49 46 68 64 20 63 68 75 6e 6b 20 66 72 6f 6d 20 64 69 73 6b 2e 20 52 65 74 75 72 6e 20 an.IFhd.chunk.from.disk..Return.
13880 74 68 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 70 6f 69 6e 74 65 72 2e 22 0a 20 20 28 69 66 20 the.instruction.pointer."...(if.
138a0 28 61 6e 64 20 28 3d 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d 66 72 6f 6d 2d 66 (and.(=.(malyon-read-word-from-f
138c0 69 6c 65 29 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 29 29 0a 20 20 20 20 20 ile).(malyon-read-word.2))......
138e0 20 20 20 20 20 20 28 3d 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d 66 72 6f 6d 2d ......(=.(malyon-read-word-from-
13900 66 69 6c 65 29 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 31 38 29 29 0a 20 20 20 file).(malyon-read-word.18))....
13920 20 20 20 20 20 20 20 20 28 3d 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d 66 72 6f ........(=.(malyon-read-word-fro
13940 6d 2d 66 69 6c 65 29 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 30 29 29 0a 20 m-file).(malyon-read-word.20))..
13960 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d 66 ..........(=.(malyon-read-word-f
13980 72 6f 6d 2d 66 69 6c 65 29 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 32 29 29 rom-file).(malyon-read-word.22))
139a0 0a 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 ............(=.(malyon-read-word
139c0 2d 66 72 6f 6d 2d 66 69 6c 65 29 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 38 -from-file).(malyon-read-word.28
139e0 29 29 29 0a 20 20 20 20 20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 28 6d 61 6c 79 6f 6e 2d 72 ))).......(logior.(lsh.(malyon-r
13a00 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 20 31 36 29 0a 20 20 20 20 20 20 20 20 ead-byte-from-file).16).........
13a20 20 20 20 20 20 20 28 6c 73 68 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f ......(lsh.(malyon-read-byte-fro
13a40 6d 2d 66 69 6c 65 29 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e m-file).8)...............(malyon
13a60 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 28 73 65 74 71 -read-byte-from-file)).....(setq
13a80 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 64 61 74 61 2d 65 72 72 6f 72 20 22 71 75 65 74 .malyon-restore-data-error."quet
13aa0 7a 61 6c 20 66 69 6c 65 20 64 6f 65 73 6e 27 74 20 62 65 6c 6f 6e 67 20 74 6f 20 67 61 6d 65 2e zal.file.doesn't.belong.to.game.
13ac0 22 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 ").....nil))..(defun.malyon-rest
13ae0 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 63 6d 65 6d 20 28 73 69 7a 65 29 0a 20 20 22 52 65 73 74 6f ore-quetzal-cmem.(size)..."Resto
13b00 72 65 20 61 20 43 4d 65 6d 20 63 68 75 6e 6b 20 66 72 6f 6d 20 64 69 73 6b 2e 20 52 65 74 75 72 re.a.CMem.chunk.from.disk..Retur
13b20 6e 20 74 68 65 20 65 6e 74 69 72 65 20 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 2e 22 0a 20 20 28 n.the.entire.memory.layout."...(
13b40 6c 65 74 20 28 28 6d 65 6d 6f 72 79 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 61 let.((memory...(copy-sequence.(a
13b60 72 65 66 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 72 65 73 74 61 72 74 20 34 29 ref.malyon-game-state-restart.4)
13b80 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 78 2d 73 69 7a 65 20 28 2b 20 28 70 6f 69 6e 74 29 20 )).........(max-size.(+.(point).
13ba0 73 69 7a 65 29 29 0a 20 20 20 20 20 20 20 20 28 62 79 74 65 20 20 20 20 20 30 29 0a 20 20 20 20 size)).........(byte.....0).....
13bc0 20 20 20 20 28 69 20 20 20 20 20 20 20 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 ....(i........0)).....(while.(<.
13be0 28 70 6f 69 6e 74 29 20 6d 61 78 2d 73 69 7a 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 79 (point).max-size).......(setq.by
13c00 74 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 te.(malyon-read-byte-from-file))
13c20 0a 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 .......(if.(zerop.byte).........
13c40 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 ..(setq.i.(+.1.i.(malyon-read-by
13c60 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6d 65 te-from-file))).........(aset.me
13c80 6d 6f 72 79 20 69 20 28 6c 6f 67 78 6f 72 20 62 79 74 65 20 28 61 72 65 66 20 6d 65 6d 6f 72 79 mory.i.(logxor.byte.(aref.memory
13ca0 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 29 .i))).........(setq.i.(+.1.i))))
13cc0 0a 20 20 20 20 6d 65 6d 6f 72 79 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 73 .....memory))..(defun.malyon-res
13ce0 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 75 6d 65 6d 20 28 73 69 7a 65 29 0a 20 20 22 52 65 73 74 tore-quetzal-umem.(size)..."Rest
13d00 6f 72 65 20 61 20 55 4d 65 6d 20 63 68 75 6e 6b 20 66 72 6f 6d 20 64 69 73 6b 2e 20 52 65 74 75 ore.a.UMem.chunk.from.disk..Retu
13d20 72 6e 20 74 68 65 20 65 6e 74 69 72 65 20 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 2e 22 0a 20 20 rn.the.entire.memory.layout."...
13d40 28 6c 65 74 20 28 28 6d 65 6d 6f 72 79 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 61 72 (let.((memory.(copy-sequence.(ar
13d60 65 66 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 72 65 73 74 61 72 74 20 34 29 29 ef.malyon-game-state-restart.4))
13d80 29 0a 20 20 20 20 20 20 20 20 28 69 20 20 20 20 20 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 ).........(i......0)).....(while
13da0 20 28 3c 20 69 20 73 69 7a 65 29 0a 20 20 20 20 20 20 28 61 73 65 74 20 6d 65 6d 6f 72 79 20 69 .(<.i.size).......(aset.memory.i
13dc0 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 .(malyon-read-byte-from-file))..
13de0 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 20 20 20 20 6d 65 6d 6f 72 .....(setq.i.(+.1.i))).....memor
13e00 79 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a y))..(defun.malyon-restore-quetz
13e20 61 6c 2d 73 74 6b 73 20 28 73 69 7a 65 29 0a 20 20 22 52 65 73 74 6f 72 65 20 61 20 53 74 6b 73 al-stks.(size)..."Restore.a.Stks
13e40 20 63 68 75 6e 6b 20 66 72 6f 6d 20 64 69 73 6b 2e 20 52 65 74 75 72 6e 20 61 20 76 65 63 74 6f .chunk.from.disk..Return.a.vecto
13e60 72 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 73 74 61 63 6b 20 70 6f 69 6e 74 65 72 2c 20 r.containing.the.stack.pointer,.
13e80 74 68 65 20 66 72 61 6d 65 20 70 6f 69 6e 74 65 72 2c 20 61 6e 64 20 74 68 65 20 73 74 61 63 6b the.frame.pointer,.and.the.stack
13ea0 20 69 74 73 65 6c 66 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 20 30 29 20 28 66 72 61 6d 65 2d 69 .itself."...(let.((i.0).(frame-i
13ec0 64 20 30 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 d.0)).....(setq.malyon-restore-q
13ee0 75 65 74 7a 61 6c 2d 73 74 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 73 65 71 uetzal-stack...........(copy-seq
13f00 75 65 6e 63 65 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 72 65 uence.(aref.malyon-game-state-re
13f20 73 74 61 72 74 20 33 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 start.3))).....(setq.malyon-rest
13f40 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 2d 31 29 0a 20 20 ore-quetzal-stack-pointer.-1)...
13f60 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 66 ..(setq.malyon-restore-quetzal-f
13f80 72 61 6d 65 2d 70 6f 69 6e 74 65 72 20 32 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 rame-pointer.2).....(while.(<.i.
13fa0 73 69 7a 65 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 65 67 69 6e 6e 69 6e 67 20 20 20 size).......(let*.((beginning...
13fc0 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 74 75 72 6e 33 ..(point))..............(return3
13fe0 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 .......(malyon-read-byte-from-fi
14000 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 74 75 72 6e 32 20 20 20 20 20 20 le))..............(return2......
14020 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 .(malyon-read-byte-from-file))..
14040 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 74 75 72 6e 31 20 20 20 20 20 20 20 28 6d 61 6c 79 ............(return1.......(maly
14060 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 on-read-byte-from-file))........
14080 20 20 20 20 20 20 28 72 65 74 75 72 6e 2d 61 64 64 72 20 20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 ......(return-addr...(logior.(ls
140a0 68 20 72 65 74 75 72 6e 33 20 31 36 29 20 28 6c 73 68 20 72 65 74 75 72 6e 32 20 38 29 20 72 65 h.return3.16).(lsh.return2.8).re
140c0 74 75 72 6e 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 2d 6c 6f 63 turn1))..............(result-loc
140e0 61 6c 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 als.(malyon-read-byte-from-file)
14100 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 61 73 2d 72 65 73 75 6c 74 20 20 20 20 28 7a )..............(has-result....(z
14120 65 72 6f 70 20 28 6c 6f 67 61 6e 64 20 31 36 20 72 65 73 75 6c 74 2d 6c 6f 63 61 6c 73 29 29 29 erop.(logand.16.result-locals)))
14140 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 2d 6c 6f 63 61 6c 73 20 20 20 20 28 6c 6f ..............(num-locals....(lo
14160 67 61 6e 64 20 31 35 20 72 65 73 75 6c 74 2d 6c 6f 63 61 6c 73 29 29 0a 20 20 20 20 20 20 20 20 gand.15.result-locals)).........
14180 20 20 20 20 20 28 72 65 73 75 6c 74 2d 61 64 64 72 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 .....(result-addr...(malyon-read
141a0 2d 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -byte-from-file))..............(
141c0 61 72 67 2d 66 6c 61 67 73 20 20 20 20 20 28 2b 20 31 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d arg-flags.....(+.1.(malyon-read-
141e0 62 79 74 65 2d 66 72 6f 6d 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 byte-from-file)))..............(
14200 6e 75 6d 2d 61 72 67 73 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 num-args......0)..............(e
14220 76 61 6c 2d 73 69 7a 65 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d 66 val-size.....(malyon-read-word-f
14240 72 6f 6d 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 76 rom-file))..............(local-v
14260 61 72 73 20 20 20 20 27 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 76 61 6c 2d 73 ars....'())..............(eval-s
14280 74 61 63 6b 20 20 20 20 27 28 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 tack....'())).........(while.(>.
142a0 6e 75 6d 2d 6c 6f 63 61 6c 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 6f num-locals.0)...........(setq.lo
142c0 63 61 6c 2d 76 61 72 73 20 28 63 6f 6e 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 cal-vars.(cons.(malyon-read-word
142e0 2d 66 72 6f 6d 2d 66 69 6c 65 29 20 6c 6f 63 61 6c 2d 76 61 72 73 29 29 0a 20 20 20 20 20 20 20 -from-file).local-vars))........
14300 20 20 20 28 73 65 74 71 20 6e 75 6d 2d 6c 6f 63 61 6c 73 20 28 2d 20 6e 75 6d 2d 6c 6f 63 61 6c ...(setq.num-locals.(-.num-local
14320 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 65 76 61 6c 2d 73 69 s.1))).........(while.(>.eval-si
14340 7a 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 76 61 6c 2d 73 74 61 63 6b ze.0)...........(setq.eval-stack
14360 20 28 63 6f 6e 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 2d 66 72 6f 6d 2d 66 69 .(cons.(malyon-read-word-from-fi
14380 6c 65 29 20 65 76 61 6c 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 le).eval-stack))...........(setq
143a0 20 65 76 61 6c 2d 73 69 7a 65 20 28 2d 20 65 76 61 6c 2d 73 69 7a 65 20 31 29 29 29 0a 20 20 20 .eval-size.(-.eval-size.1)))....
143c0 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 61 72 67 2d 66 6c 61 67 73 20 31 29 0a 20 20 20 20 .....(while.(>.arg-flags.1).....
143e0 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 2d 66 6c 61 67 73 20 28 6c 73 68 20 61 72 67 2d 66 ......(setq.arg-flags.(lsh.arg-f
14400 6c 61 67 73 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 75 6d 2d 61 72 lags.-1))...........(setq.num-ar
14420 67 73 20 28 2b 20 6e 75 6d 2d 61 72 67 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c gs.(+.num-args.1))).........(mal
14440 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 2d 66 72 61 6d 65 20 66 72 61 6d 65 2d 69 64 0a 20 20 yon-push-stack-frame.frame-id...
14460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 ...............................r
14480 65 74 75 72 6e 2d 61 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eturn-addr......................
144a0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 66 72 61 6d 65 2d 69 64 29 ............(if.(zerop.frame-id)
144c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
144e0 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......nil.......................
14500 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 68 61 73 2d 72 65 73 75 6c 74 20 72 65 73 75 .............(if.has-result.resu
14520 6c 74 2d 61 64 64 72 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lt-addr.nil))...................
14540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 76 65 72 73 65 20 6c 6f 63 61 6c 2d 76 61 ...............(reverse.local-va
14560 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rs).............................
14580 20 20 20 20 20 6e 75 6d 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....num-args...................
145a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 76 65 72 73 65 20 65 76 61 6c 2d 73 74 61 ...............(reverse.eval-sta
145c0 63 6b 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 72 61 6d 65 2d 69 64 20 28 2b 20 31 ck)).........(setq.frame-id.(+.1
145e0 20 66 72 61 6d 65 2d 69 64 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2b 20 69 .frame-id)).........(setq.i.(+.i
14600 20 28 2d 20 28 70 6f 69 6e 74 29 20 62 65 67 69 6e 6e 69 6e 67 29 29 29 29 29 0a 20 20 20 20 28 .(-.(point).beginning))))).....(
14620 76 65 63 74 6f 72 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 73 74 vector.malyon-restore-quetzal-st
14640 61 63 6b 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 72 ack-pointer.............malyon-r
14660 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 0a 20 20 20 estore-quetzal-frame-pointer....
14680 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d .........malyon-restore-quetzal-
146a0 73 74 61 63 6b 29 29 29 0a 0a 3b 3b 20 6f 62 6a 65 63 74 20 74 61 62 6c 65 20 6d 61 6e 61 67 65 stack)))..;;.object.table.manage
146c0 6d 65 6e 74 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 ment..(defsubst.malyon-object-ad
146e0 64 72 65 73 73 20 28 6f 62 6a 65 63 74 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 74 68 65 20 61 64 dress.(object)..."Compute.the.ad
14700 64 72 65 73 73 20 61 74 20 77 68 69 63 68 20 74 68 65 20 6f 62 6a 65 63 74 20 69 73 20 73 74 6f dress.at.which.the.object.is.sto
14720 72 65 64 2e 22 0a 20 20 28 2b 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 74 61 62 6c 65 0a 20 red."...(+.malyon-object-table..
14740 20 20 20 20 28 2a 20 32 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 69 65 ....(*.2.malyon-object-propertie
14760 73 29 0a 20 20 20 20 20 28 2a 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 74 61 62 6c 65 2d 65 s)......(*.malyon-object-table-e
14780 6e 74 72 79 2d 73 69 7a 65 20 28 2d 20 6f 62 6a 65 63 74 20 31 29 29 29 29 0a 0a 28 64 65 66 73 ntry-size.(-.object.1))))..(defs
147a0 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 70 61 72 65 6e 74 20 28 ubst.malyon-object-read-parent.(
147c0 61 64 64 72 65 73 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 72 65 6e 74 2e 22 0a address)..."Return.the.parent.".
147e0 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 ..(if.(<.malyon-story-version.5)
14800 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 34 20 61 64 .......(malyon-read-byte.(+.4.ad
14820 64 72 65 73 73 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b dress)).....(malyon-read-word.(+
14840 20 36 20 61 64 64 72 65 73 73 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e .6.address))))..(defsubst.malyon
14860 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 73 69 62 6c 69 6e 67 20 28 61 64 64 72 65 73 73 29 0a 20 -object-read-sibling.(address)..
14880 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 65 78 74 20 73 69 62 6c 69 6e 67 2e 22 0a 20 20 28 69 ."Return.the.next.sibling."...(i
148a0 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 f.(<.malyon-story-version.5)....
148c0 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 35 20 61 64 64 72 65 73 ...(malyon-read-byte.(+.5.addres
148e0 73 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 38 20 61 s)).....(malyon-read-word.(+.8.a
14900 64 64 72 65 73 73 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6f 62 6a ddress))))..(defsubst.malyon-obj
14920 65 63 74 2d 72 65 61 64 2d 63 68 69 6c 64 20 28 61 64 64 72 65 73 73 29 0a 20 20 22 52 65 74 75 ect-read-child.(address)..."Retu
14940 72 6e 20 74 68 65 20 66 69 72 73 74 20 63 68 69 6c 64 2e 22 0a 20 20 28 69 66 20 28 3c 20 6d 61 rn.the.first.child."...(if.(<.ma
14960 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 28 6d 61 6c lyon-story-version.5).......(mal
14980 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 36 20 61 64 64 72 65 73 73 29 29 0a 20 20 20 yon-read-byte.(+.6.address))....
149a0 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 31 30 20 61 64 64 72 65 73 73 .(malyon-read-word.(+.10.address
149c0 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 73 74 ))))..(defsubst.malyon-object-st
149e0 6f 72 65 2d 70 61 72 65 6e 74 20 28 61 64 64 72 65 73 73 20 76 61 6c 75 65 29 0a 20 20 22 53 65 ore-parent.(address.value)..."Se
14a00 74 20 74 68 65 20 70 61 72 65 6e 74 2e 22 0a 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 t.the.parent."...(if.(<.malyon-s
14a20 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 tory-version.5).......(malyon-st
14a40 6f 72 65 2d 62 79 74 65 20 28 2b 20 34 20 61 64 64 72 65 73 73 29 20 76 61 6c 75 65 29 0a 20 20 ore-byte.(+.4.address).value)...
14a60 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 28 2b 20 36 20 61 64 64 72 65 73 ..(malyon-store-word.(+.6.addres
14a80 73 29 20 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6f 62 s).value)))..(defsubst.malyon-ob
14aa0 6a 65 63 74 2d 73 74 6f 72 65 2d 73 69 62 6c 69 6e 67 20 28 61 64 64 72 65 73 73 20 76 61 6c 75 ject-store-sibling.(address.valu
14ac0 65 29 0a 20 20 22 53 65 74 20 74 68 65 20 6e 65 78 74 20 73 69 62 6c 69 6e 67 2e 22 0a 20 20 28 e)..."Set.the.next.sibling."...(
14ae0 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 if.(<.malyon-story-version.5)...
14b00 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 35 20 61 64 64 72 ....(malyon-store-byte.(+.5.addr
14b20 65 73 73 29 20 76 61 6c 75 65 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f ess).value).....(malyon-store-wo
14b40 72 64 20 28 2b 20 38 20 61 64 64 72 65 73 73 29 20 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 73 rd.(+.8.address).value)))..(defs
14b60 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 73 74 6f 72 65 2d 63 68 69 6c 64 20 28 ubst.malyon-object-store-child.(
14b80 61 64 64 72 65 73 73 20 76 61 6c 75 65 29 0a 20 20 22 53 65 74 20 74 68 65 20 66 69 72 73 74 20 address.value)..."Set.the.first.
14ba0 63 68 69 6c 64 2e 22 0a 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 child."...(if.(<.malyon-story-ve
14bc0 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 rsion.5).......(malyon-store-byt
14be0 65 20 28 2b 20 36 20 61 64 64 72 65 73 73 29 20 76 61 6c 75 65 29 0a 20 20 20 20 28 6d 61 6c 79 e.(+.6.address).value).....(maly
14c00 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 28 2b 20 31 30 20 61 64 64 72 65 73 73 29 20 76 61 6c on-store-word.(+.10.address).val
14c20 75 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 66 69 6e 64 2d 70 72 6f 70 65 72 ue)))..(defun.malyon-find-proper
14c40 74 79 20 28 6f 62 6a 65 63 74 20 70 72 6f 70 65 72 74 79 29 0a 20 20 22 52 65 74 75 72 6e 20 74 ty.(object.property)..."Return.t
14c60 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 27 73 20 70 72 6f 70 65 he.address.of.the.object's.prope
14c80 72 74 79 2c 20 6f 72 20 30 20 69 66 20 69 74 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 2e 22 0a rty,.or.0.if.it.doesn't.exist.".
14ca0 20 20 28 6c 65 74 20 28 28 6e 65 78 74 20 28 6d 61 6c 79 6f 6e 2d 66 69 72 73 74 2d 70 72 6f 70 ..(let.((next.(malyon-first-prop
14cc0 65 72 74 79 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 20 30 29 erty.object)).........(number.0)
14ce0 29 0a 20 20 20 20 28 73 65 74 71 20 6e 75 6d 62 65 72 20 28 6c 6f 67 61 6e 64 20 28 6d 61 6c 79 ).....(setq.number.(logand.(maly
14d00 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 6e 65 78 74 29 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 on-read-byte.next).malyon-object
14d20 2d 70 72 6f 70 65 72 74 69 65 73 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 6e 75 6d 62 -properties)).....(while.(>.numb
14d40 65 72 20 70 72 6f 70 65 72 74 79 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 20 28 6d er.property).......(setq.next.(m
14d60 61 6c 79 6f 6e 2d 6e 65 78 74 2d 70 72 6f 70 65 72 74 79 20 6e 65 78 74 29 29 0a 20 20 20 20 20 alyon-next-property.next))......
14d80 20 28 73 65 74 71 20 6e 75 6d 62 65 72 20 28 6c 6f 67 61 6e 64 20 28 6d 61 6c 79 6f 6e 2d 72 65 .(setq.number.(logand.(malyon-re
14da0 61 64 2d 62 79 74 65 20 6e 65 78 74 29 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 ad-byte.next).malyon-object-prop
14dc0 65 72 74 69 65 73 29 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 6e 75 6d 62 65 72 20 70 72 6f 70 erties))).....(if.(=.number.prop
14de0 65 72 74 79 29 20 6e 65 78 74 20 30 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 66 erty).next.0)))..(defun.malyon-f
14e00 69 72 73 74 2d 70 72 6f 70 65 72 74 79 20 28 6f 62 6a 65 63 74 29 0a 20 20 22 47 65 74 20 74 68 irst-property.(object)..."Get.th
14e20 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 27 73 20 66 69 72 73 74 20 e.address.of.the.object's.first.
14e40 70 72 6f 70 65 72 74 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 65 61 64 65 72 20 28 6d 61 6c 79 property."...(let.((header.(maly
14e60 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 70 72 on-read-word.(+.malyon-object-pr
14e80 6f 70 65 72 74 79 2d 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 operty-offset...................
14ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 ...................(malyon-objec
14ec0 74 2d 61 64 64 72 65 73 73 20 6f 62 6a 65 63 74 29 29 29 29 29 0a 20 20 20 20 28 2b 20 68 65 61 t-address.object))))).....(+.hea
14ee0 64 65 72 20 31 20 28 2a 20 32 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 68 65 61 der.1.(*.2.(malyon-read-byte.hea
14f00 64 65 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6e 65 78 74 2d 70 72 6f der)))))..(defun.malyon-next-pro
14f20 70 65 72 74 79 20 28 70 72 6f 70 65 72 74 79 29 0a 20 20 22 47 65 74 20 74 68 65 20 61 64 64 72 perty.(property)..."Get.the.addr
14f40 65 73 73 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 6f 70 65 72 74 79 2e 22 0a ess.of.the.following.property.".
14f60 20 20 28 6c 65 74 20 28 28 73 69 7a 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 ..(let.((size.(malyon-read-byte.
14f80 70 72 6f 70 65 72 74 79 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 72 20 28 2b 20 70 72 6f 70 property)).........(addr.(+.prop
14fa0 65 72 74 79 20 31 29 29 29 0a 20 20 20 20 28 2b 20 31 20 61 64 64 72 20 28 63 6f 6e 64 20 28 28 erty.1))).....(+.1.addr.(cond.((
14fc0 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 28 6c 73 68 20 73 <.malyon-story-version.5).(lsh.s
14fe0 69 7a 65 20 2d 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 7a ize.-5)).....................((z
15000 65 72 6f 70 20 28 6c 6f 67 61 6e 64 20 31 32 38 20 73 69 7a 65 29 29 20 20 28 6c 73 68 20 73 69 erop.(logand.128.size))..(lsh.si
15020 7a 65 20 2d 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 ze.-6)).....................(t..
15040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 65 63 6f 6e ....................(let.((secon
15060 64 20 28 6c 6f 67 61 6e 64 20 36 33 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 61 d.(logand.63.(malyon-read-byte.a
15080 64 64 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ddr))))........................(
150a0 69 66 20 28 3d 20 30 20 73 65 63 6f 6e 64 29 20 36 34 20 73 65 63 6f 6e 64 29 29 29 29 29 29 29 if.(=.0.second).64.second)))))))
150c0 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 6d 6f 76 65 2d 6f 62 6a 65 63 74 20 28 6f ..(defun.malyon-remove-object.(o
150e0 62 6a 65 63 74 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 6f 62 6a 65 63 74 20 66 72 6f 6d bject)..."Remove.the.object.from
15100 20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 6c 69 73 74 20 6f 66 20 69 74 73 20 70 61 72 65 6e 74 .the.children.list.of.its.parent
15120 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 61 64 64 72 65 73 73 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a ."...(let*.((address.(malyon-obj
15140 65 63 74 2d 61 64 64 72 65 73 73 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 ect-address.object))..........(p
15160 61 72 65 6e 74 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 70 61 72 65 6e arent..(malyon-object-read-paren
15180 74 20 61 64 64 72 65 73 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 62 6c 69 6e 67 20 28 6d t.address))..........(sibling.(m
151a0 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 73 69 62 6c 69 6e 67 20 61 64 64 72 65 73 alyon-object-read-sibling.addres
151c0 73 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 73 74 6f 72 65 2d 70 61 s))).....(malyon-object-store-pa
151e0 72 65 6e 74 20 61 64 64 72 65 73 73 20 30 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 rent.address.0).....(malyon-obje
15200 63 74 2d 73 74 6f 72 65 2d 73 69 62 6c 69 6e 67 20 61 64 64 72 65 73 73 20 30 29 0a 20 20 20 20 ct-store-sibling.address.0).....
15220 28 69 66 20 28 2f 3d 20 70 61 72 65 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 (if.(/=.parent.0).........(let.(
15240 28 70 61 72 65 6e 74 2d 61 64 64 72 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 (parent-addr.(malyon-object-addr
15260 65 73 73 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 ess.parent)))...........(let.((c
15280 68 69 6c 64 72 65 6e 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 63 68 69 6c hildren.(malyon-object-read-chil
152a0 64 20 70 61 72 65 6e 74 2d 61 64 64 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 d.parent-addr))).............(if
152c0 20 28 6f 72 20 28 3d 20 63 68 69 6c 64 72 65 6e 20 30 29 20 28 3d 20 63 68 69 6c 64 72 65 6e 20 .(or.(=.children.0).(=.children.
152e0 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e object)).................(malyon
15300 2d 6f 62 6a 65 63 74 2d 73 74 6f 72 65 2d 63 68 69 6c 64 20 70 61 72 65 6e 74 2d 61 64 64 72 20 -object-store-child.parent-addr.
15320 73 69 62 6c 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 68 sibling)...............(let.((th
15340 69 73 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 65 73 73 20 63 68 69 6c 64 72 is.(malyon-object-address.childr
15360 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 78 en))).................(let.((nex
15380 74 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 73 69 62 6c 69 6e 67 20 74 68 t.(malyon-object-read-sibling.th
153a0 69 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 is)))...................(while.(
153c0 2f 3d 20 6e 65 78 74 20 6f 62 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /=.next.object).................
153e0 20 20 20 20 28 73 65 74 71 20 74 68 69 73 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 ....(setq.this.(malyon-object-ad
15400 64 72 65 73 73 20 6e 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dress.next))....................
15420 20 28 73 65 74 71 20 6e 65 78 74 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d .(setq.next.(malyon-object-read-
15440 73 69 62 6c 69 6e 67 20 74 68 69 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sibling.this))).................
15460 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 73 74 6f 72 65 2d 73 69 62 6c 69 6e 67 20 74 ..(malyon-object-store-sibling.t
15480 68 69 73 20 73 69 62 6c 69 6e 67 29 29 29 29 29 29 29 29 29 0a 0a 3b 3b 20 66 75 6e 63 74 69 6f his.sibling)))))))))..;;.functio
154a0 6e 20 63 61 6c 6c 73 20 61 6e 64 20 63 6f 64 65 20 62 72 61 6e 63 68 65 73 0a 0a 28 64 65 66 75 n.calls.and.code.branches..(defu
154c0 6e 20 6d 61 6c 79 6f 6e 2d 63 61 6c 6c 2d 72 6f 75 74 69 6e 65 20 28 72 6f 75 74 69 6e 65 20 61 n.malyon-call-routine.(routine.a
154e0 72 67 75 6d 65 6e 74 73 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 73 75 6c 74 29 0a 20 20 22 43 61 rguments.&optional.result)..."Ca
15500 6c 6c 20 61 20 72 6f 75 74 69 6e 65 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 61 72 67 75 ll.a.routine.with.the.given.argu
15520 6d 65 6e 74 73 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 73 20 72 65 73 75 6c 74 2e 22 0a 20 20 ments.and.return.its.result."...
15540 28 69 66 20 28 3d 20 72 6f 75 74 69 6e 65 20 30 29 0a 20 20 20 20 20 20 28 69 66 20 72 65 73 75 (if.(=.routine.0).......(if.resu
15560 6c 74 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 72 65 73 75 6c 74 lt.(malyon-store-variable.result
15580 20 30 29 20 30 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 28 69 .0).0).....(malyon-push-stack.(i
155a0 66 20 72 65 73 75 6c 74 20 30 20 31 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d f.result.0.1)).....(malyon-push-
155c0 73 74 61 63 6b 20 28 69 66 20 72 65 73 75 6c 74 20 72 65 73 75 6c 74 20 30 29 29 0a 20 20 20 20 stack.(if.result.result.0)).....
155e0 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 (malyon-push-stack.malyon-instru
15600 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d ction-pointer).....(malyon-push-
15620 73 74 61 63 6b 0a 20 20 20 20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 28 2d 20 6d 61 6c 79 6f stack......(logior.(lsh.(-.malyo
15640 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 n-stack-pointer.malyon-frame-poi
15660 6e 74 65 72 29 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 61 72 nter).8)..............(length.ar
15680 67 75 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 guments))).....(setq.malyon-inst
156a0 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 28 2a 20 6d 61 6c 79 6f 6e 2d 70 61 63 6b 65 64 ruction-pointer.(*.malyon-packed
156c0 2d 6d 75 6c 74 69 70 6c 69 65 72 20 72 6f 75 74 69 6e 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 -multiplier.routine)).....(let.(
156e0 28 61 72 67 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 20 28 (args.(malyon-read-code-byte)).(
15700 76 61 6c 75 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 67 61 6d value.nil)).......(if.malyon-gam
15720 65 2d 73 74 61 74 65 2d 71 75 65 74 7a 61 6c 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 e-state-quetzal...........(let.(
15740 28 69 64 20 28 6c 73 68 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 20 6d 61 6c 79 (id.(lsh.(aref.malyon-stack.maly
15760 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 29 20 2d 38 29 29 29 0a 20 20 20 20 20 20 20 20 on-frame-pointer).-8))).........
15780 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 28 6c 6f 67 69 6f 72 20 28 ....(malyon-push-stack.(logior.(
157a0 6c 73 68 20 28 2b 20 31 20 69 64 29 20 38 29 20 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 28 lsh.(+.1.id).8).args)))).......(
157c0 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 20 6d 61 6c 79 6f 6e setq.malyon-frame-pointer.malyon
157e0 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 -stack-pointer).......(while.(>.
15800 61 72 67 73 20 30 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 75 65 20 28 69 66 20 args.0).........(setq.value.(if.
15820 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 28 6d 61 6c 79 (<.malyon-story-version.5).(maly
15840 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 77 6f 72 64 29 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 on-read-code-word).0)).........(
15860 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 28 69 66 20 28 6e 75 6c 6c 20 61 72 67 75 malyon-push-stack.(if.(null.argu
15880 6d 65 6e 74 73 29 20 76 61 6c 75 65 20 28 63 61 72 20 61 72 67 75 6d 65 6e 74 73 29 29 29 0a 20 ments).value.(car.arguments)))..
158a0 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 75 6d 65 6e 74 73 20 28 63 64 72 20 61 72 67 75 .......(setq.arguments.(cdr.argu
158c0 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 73 20 28 2d 20 61 72 ments)).........(setq.args.(-.ar
158e0 67 73 20 31 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 gs.1))))))..(defun.malyon-jump-i
15900 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 0a 20 20 22 4a 75 6d 70 20 64 65 70 65 6e 64 69 6e 67 20 f.(condition)..."Jump.depending.
15920 6f 6e 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 on.the.condition.and.the.followi
15940 6e 67 20 6a 75 6d 70 20 64 61 74 61 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 79 74 65 20 20 20 28 ng.jump.data."...(let.((byte...(
15960 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 0a 20 20 20 20 20 20 20 20 malyon-read-code-byte)).........
15980 28 6f 66 66 73 65 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 69 66 74 72 75 65 20 6e 69 6c (offset.nil).........(iftrue.nil
159a0 29 29 0a 20 20 20 20 28 73 65 74 71 20 69 66 74 72 75 65 20 28 2f 3d 20 30 20 28 6c 6f 67 61 6e )).....(setq.iftrue.(/=.0.(logan
159c0 64 20 62 79 74 65 20 31 32 38 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 d.byte.128))).....(setq.offset.(
159e0 6c 6f 67 61 6e 64 20 62 79 74 65 20 36 33 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 30 20 28 6c logand.byte.63)).....(if.(=.0.(l
15a00 6f 67 61 6e 64 20 62 79 74 65 20 36 34 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 ogand.byte.64)).........(progn..
15a20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 6c 6f 67 69 6f 72 20 28 6c .........(setq.offset.(logior.(l
15a40 73 68 20 6f 66 66 73 65 74 20 38 29 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 sh.offset.8).(malyon-read-code-b
15a60 79 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 6f 66 66 73 65 74 20 yte)))...........(if.(>=.offset.
15a80 38 31 39 32 29 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 2d 20 6f 66 66 73 65 74 20 31 36 33 8192).(setq.offset.(-.offset.163
15aa0 38 34 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 61 6e 64 20 69 66 74 72 75 65 20 84))))).....(if.(or.(and.iftrue.
15ac0 63 6f 6e 64 69 74 69 6f 6e 29 20 28 61 6e 64 20 28 6e 6f 74 20 69 66 74 72 75 65 29 20 28 6e 6f condition).(and.(not.iftrue).(no
15ae0 74 20 63 6f 6e 64 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 t.condition))).........(progn...
15b00 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 3d 20 6f 66 66 73 65 74 20 30 29 20 28 6d 61 6c ........(cond.((=.offset.0).(mal
15b20 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 66 61 6c 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 yon-opcode-rfalse)).............
15b40 20 20 20 20 28 28 3d 20 6f 66 66 73 65 74 20 31 29 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 ....((=.offset.1).(malyon-opcode
15b60 2d 72 74 72 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 -rtrue)).................(t.....
15b80 20 20 20 20 20 20 20 28 73 65 74 71 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(setq....................
15ba0 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 ............malyon-instruction-p
15bc0 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ointer..........................
15be0 20 20 20 20 20 20 28 2b 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e ......(+.malyon-instruction-poin
15c00 74 65 72 20 6f 66 66 73 65 74 20 2d 32 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 ter.offset.-2))))))))..(defun.ma
15c20 6c 79 6f 6e 2d 72 65 74 75 72 6e 20 28 76 61 6c 75 65 29 0a 20 20 22 52 65 74 75 72 6e 20 66 72 lyon-return.(value)..."Return.fr
15c40 6f 6d 20 61 20 72 6f 75 74 69 6e 65 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 om.a.routine."...(setq.malyon-st
15c60 61 63 6b 2d 70 6f 69 6e 74 65 72 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 ack-pointer.malyon-frame-pointer
15c80 29 0a 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 71 75 65 74 7a 61 )...(if.malyon-game-state-quetza
15ca0 6c 20 28 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 29 0a 20 20 28 73 65 74 71 20 6d 61 l.(malyon-pop-stack))...(setq.ma
15cc0 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 28 2d 20 6d 61 lyon-frame-pointer.........(-.ma
15ce0 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 31 20 28 6c 73 68 20 28 6d 61 6c 79 6f lyon-stack-pointer.1.(lsh.(malyo
15d00 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 20 2d 38 29 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f n-pop-stack).-8)))...(setq.malyo
15d20 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 20 28 6d 61 6c 79 6f 6e 2d 70 6f n-instruction-pointer.(malyon-po
15d40 70 2d 73 74 61 63 6b 29 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 6d 61 6c 79 6f p-stack))...(let.((result.(malyo
15d60 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 6f 72 65 20 20 28 6d n-pop-stack)).........(store..(m
15d80 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 29 29 0a 20 20 20 20 28 69 66 20 28 7a 65 72 6f alyon-pop-stack))).....(if.(zero
15da0 70 20 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 74 75 72 6e 2d p.store).........(malyon-return-
15dc0 73 74 6f 72 65 20 72 65 73 75 6c 74 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f store.result.value).......(malyo
15de0 6e 2d 72 65 74 75 72 6e 2d 69 67 6e 6f 72 65 20 72 65 73 75 6c 74 20 76 61 6c 75 65 29 29 29 29 n-return-ignore.result.value))))
15e00 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 74 75 72 6e 2d 69 67 6e 6f 72 65 20 28 77 ..(defun.malyon-return-ignore.(w
15e20 68 65 72 65 20 76 61 6c 75 65 29 0a 20 20 22 52 65 74 75 72 6e 20 66 72 6f 6d 20 61 20 72 6f 75 here.value)..."Return.from.a.rou
15e40 74 69 6e 65 20 69 67 6e 6f 72 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 2e 22 29 0a 0a 28 64 65 tine.ignoring.the.result.")..(de
15e60 66 75 6e 20 6d 61 6c 79 6f 6e 2d 72 65 74 75 72 6e 2d 73 74 6f 72 65 20 28 77 68 65 72 65 20 76 fun.malyon-return-store.(where.v
15e80 61 6c 75 65 29 0a 20 20 22 52 65 74 75 72 6e 20 66 72 6f 6d 20 61 20 72 6f 75 74 69 6e 65 20 73 alue)..."Return.from.a.routine.s
15ea0 74 6f 72 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 toring.the.result."...(malyon-st
15ec0 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 77 68 65 72 65 20 76 61 6c 75 65 29 29 0a 0a 28 64 65 66 ore-variable.where.value))..(def
15ee0 75 6e 20 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 69 6e 69 74 69 61 6c 2d 66 72 61 6d 65 20 28 29 0a un.malyon-push-initial-frame.().
15f00 20 20 22 50 75 73 68 20 74 68 65 20 69 6e 69 74 69 61 6c 20 73 74 61 63 6b 20 66 72 61 6d 65 20 .."Push.the.initial.stack.frame.
15f20 72 65 71 75 69 72 65 64 20 69 6e 20 71 75 65 74 7a 61 6c 20 6d 6f 64 65 2e 22 0a 20 20 28 69 66 required.in.quetzal.mode."...(if
15f40 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 71 75 65 74 7a 61 6c 0a 20 20 20 20 20 .malyon-game-state-quetzal......
15f60 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 .(progn.........(malyon-push-sta
15f80 63 6b 20 31 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b ck.1).........(malyon-push-stack
15fa0 20 30 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 30 .0).........(malyon-push-stack.0
15fc0 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 30 29 0a ).........(malyon-push-stack.0).
15fe0 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 30 29 29 29 29 ........(malyon-push-stack.0))))
16000 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 67 65 74 2d 73 74 61 63 6b 2d 66 72 61 6d 65 20 ..(defun.malyon-get-stack-frame.
16020 28 66 70 20 73 70 20 73 74 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 64 65 63 6f 64 65 (fp.sp.stack)..."Return.a.decode
16040 64 20 73 74 61 63 6b 20 66 72 61 6d 65 20 69 6e 20 71 75 65 74 7a 61 6c 20 6d 6f 64 65 2e 0a 54 d.stack.frame.in.quetzal.mode..T
16060 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 76 65 63 74 6f 72 20 63 6f 6e 74 61 69 6e 69 6e 67 he.result.is.a.vector.containing
16080 20 74 68 65 20 66 72 61 6d 65 20 69 64 2c 20 74 68 65 20 66 70 20 6f 66 20 74 68 65 0a 70 72 65 .the.frame.id,.the.fp.of.the.pre
160a0 76 69 6f 75 73 20 66 72 61 6d 65 2c 20 74 68 65 20 73 70 20 6f 66 20 74 68 65 20 70 72 65 76 69 vious.frame,.the.sp.of.the.previ
160c0 6f 75 73 20 66 72 61 6d 65 2c 20 74 68 65 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 2c 0a 74 ous.frame,.the.return.address,.t
160e0 68 65 20 72 65 73 75 6c 74 20 76 61 72 69 61 62 6c 65 20 69 66 20 61 6e 79 2c 20 61 20 6c 69 73 he.result.variable.if.any,.a.lis
16100 74 20 6f 66 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 2c 20 74 68 65 20 6e 75 6d 62 65 72 t.of.local.variables,.the.number
16120 0a 6f 66 20 61 72 67 75 6d 65 6e 74 73 2c 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 .of.arguments,.and.a.list.of.the
16140 20 65 76 61 6c 75 61 74 69 6f 6e 20 73 74 61 63 6b 20 65 6c 65 6d 65 6e 74 73 2e 22 0a 20 20 28 .evaluation.stack.elements."...(
16160 6c 65 74 2a 20 28 28 68 61 73 2d 72 65 73 75 6c 74 20 20 20 28 7a 65 72 6f 70 20 28 61 72 65 66 let*.((has-result...(zerop.(aref
16180 20 73 74 61 63 6b 20 66 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 2d 61 64 .stack.fp)))..........(result-ad
161a0 64 72 20 20 28 69 66 20 68 61 73 2d 72 65 73 75 6c 74 20 28 61 72 65 66 20 73 74 61 63 6b 20 28 dr..(if.has-result.(aref.stack.(
161c0 2b 20 31 20 66 70 29 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 74 75 72 6e 2d +.1.fp)).nil))..........(return-
161e0 61 64 64 72 20 20 28 61 72 65 66 20 73 74 61 63 6b 20 28 2b 20 32 20 66 70 29 29 29 0a 20 20 20 addr..(aref.stack.(+.2.fp)))....
16200 20 20 20 20 20 20 28 6f 66 66 73 65 74 20 20 20 20 20 20 20 28 6c 73 68 20 28 61 72 65 66 20 73 ......(offset.......(lsh.(aref.s
16220 74 61 63 6b 20 28 2b 20 33 20 66 70 29 29 20 2d 38 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 75 tack.(+.3.fp)).-8))..........(nu
16240 6d 2d 61 72 67 73 20 20 20 20 20 28 6c 6f 67 61 6e 64 20 32 35 35 20 28 61 72 65 66 20 73 74 61 m-args.....(logand.255.(aref.sta
16260 63 6b 20 28 2b 20 33 20 66 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 72 61 6d 65 2d 69 ck.(+.3.fp))))..........(frame-i
16280 64 20 20 20 20 20 28 6c 73 68 20 28 61 72 65 66 20 73 74 61 63 6b 20 28 2b 20 34 20 66 70 29 29 d.....(lsh.(aref.stack.(+.4.fp))
162a0 20 2d 38 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 75 6d 2d 6c 6f 63 61 6c 73 20 20 20 28 6c 6f .-8))..........(num-locals...(lo
162c0 67 61 6e 64 20 32 35 35 20 28 61 72 65 66 20 73 74 61 63 6b 20 28 2b 20 34 20 66 70 29 29 29 29 gand.255.(aref.stack.(+.4.fp))))
162e0 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6c 6f 63 61 6c 73 20 28 2b 20 35 20 66 70 29 ..........(start-locals.(+.5.fp)
16300 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 65 76 61 6c 20 20 20 28 2b 20 35 20 66 70 )..........(start-eval...(+.5.fp
16320 20 6e 75 6d 2d 6c 6f 63 61 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 76 61 .num-locals))..........(local-va
16340 72 73 20 20 20 27 28 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 76 61 6c 2d 73 74 61 63 6b 20 20 rs...'())..........(eval-stack..
16360 20 27 28 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 6e 75 6d 2d 6c .'())).....(if.(not.(zerop.num-l
16380 6f 63 61 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 6f 63 61 6c 2d 76 61 72 73 ocals)).........(setq.local-vars
163a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 76 65 63 74 6f 72 2d 74 6f ...............(malyon-vector-to
163c0 2d 6c 69 73 74 20 73 74 61 63 6b 20 73 74 61 72 74 2d 6c 6f 63 61 6c 73 20 73 74 61 72 74 2d 65 -list.stack.start-locals.start-e
163e0 76 61 6c 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 73 70 20 73 74 61 72 74 2d 65 76 61 6c 29 val))).....(if.(>.sp.start-eval)
16400 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 76 61 6c 2d 73 74 61 63 6b 0a 20 20 20 20 20 20 .........(setq.eval-stack.......
16420 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 76 65 63 74 6f 72 2d 74 6f 2d 6c 69 73 74 20 73 ........(malyon-vector-to-list.s
16440 74 61 63 6b 20 73 74 61 72 74 2d 65 76 61 6c 20 28 2b 20 31 20 73 70 29 29 29 29 0a 20 20 20 20 tack.start-eval.(+.1.sp)))).....
16460 28 76 65 63 74 6f 72 20 66 72 61 6d 65 2d 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 (vector.frame-id.............(-.
16480 66 70 20 6f 66 66 73 65 74 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 66 70 20 31 fp.offset.2).............(-.fp.1
164a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 2d 61 64 64 72 0a 20 20 20 20 20 20 ).............return-addr.......
164c0 20 20 20 20 20 20 72 65 73 75 6c 74 2d 61 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f ......result-addr.............lo
164e0 63 61 6c 2d 76 61 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 2d 61 72 67 73 0a 20 20 cal-vars.............num-args...
16500 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 2d 73 74 61 63 6b 29 29 29 0a 0a 28 64 65 66 73 75 62 ..........eval-stack)))..(defsub
16520 73 74 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 70 75 73 68 2d 73 st.malyon-restore-quetzal-push-s
16540 74 61 63 6b 20 28 76 61 6c 75 65 29 0a 20 20 22 50 75 73 68 20 61 20 76 61 6c 75 65 20 6f 6e 74 tack.(value)..."Push.a.value.ont
16560 6f 20 74 68 65 20 72 65 73 74 6f 72 65 20 71 75 65 74 7a 61 6c 20 73 74 61 63 6b 2e 22 0a 20 20 o.the.restore.quetzal.stack."...
16580 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 (setq.malyon-restore-quetzal-sta
165a0 63 6b 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 28 2b 20 6d 61 6c 79 6f 6e 2d 72 65 73 ck-pointer.........(+.malyon-res
165c0 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 31 29 29 0a 20 tore-quetzal-stack-pointer.1))..
165e0 20 28 61 73 65 74 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 73 74 .(aset.malyon-restore-quetzal-st
16600 61 63 6b 0a 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a ack.........malyon-restore-quetz
16620 61 6c 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 al-stack-pointer.........value))
16640 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 2d 66 72 61 6d 65 ..(defun.malyon-push-stack-frame
16660 0a 20 20 28 66 72 61 6d 65 2d 69 64 20 72 65 74 75 72 6e 2d 61 64 64 72 20 72 65 73 75 6c 74 20 ...(frame-id.return-addr.result.
16680 6c 6f 63 61 6c 2d 76 61 72 73 20 6e 75 6d 2d 61 72 67 73 20 65 76 61 6c 2d 73 74 61 63 6b 29 0a local-vars.num-args.eval-stack).
166a0 20 20 22 50 75 73 68 65 73 20 61 20 6e 65 77 20 73 74 61 63 6b 20 66 72 61 6d 65 20 69 6e 20 71 .."Pushes.a.new.stack.frame.in.q
166c0 75 65 74 7a 61 6c 20 6d 6f 64 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d uetzal.mode."...(malyon-restore-
166e0 71 75 65 74 7a 61 6c 2d 70 75 73 68 2d 73 74 61 63 6b 20 28 69 66 20 72 65 73 75 6c 74 20 30 20 quetzal-push-stack.(if.result.0.
16700 31 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 70 75 1))...(malyon-restore-quetzal-pu
16720 73 68 2d 73 74 61 63 6b 20 28 69 66 20 72 65 73 75 6c 74 20 72 65 73 75 6c 74 20 30 29 29 0a 20 sh-stack.(if.result.result.0))..
16740 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 70 75 73 68 2d 73 74 .(malyon-restore-quetzal-push-st
16760 61 63 6b 20 72 65 74 75 72 6e 2d 61 64 64 72 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f ack.return-addr)...(malyon-resto
16780 72 65 2d 71 75 65 74 7a 61 6c 2d 70 75 73 68 2d 73 74 61 63 6b 0a 20 20 20 28 6c 6f 67 69 6f 72 re-quetzal-push-stack....(logior
167a0 20 28 6c 73 68 20 28 2d 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d .(lsh.(-.malyon-restore-quetzal-
167c0 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 stack-pointer...................
167e0 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 66 72 61 6d 65 2d 70 6f .malyon-restore-quetzal-frame-po
16800 69 6e 74 65 72 29 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 2d 61 72 67 73 29 29 0a inter).8)............num-args)).
16820 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 70 75 73 68 2d 73 ..(malyon-restore-quetzal-push-s
16840 74 61 63 6b 0a 20 20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 66 72 61 6d 65 2d 69 64 20 38 29 tack....(logior.(lsh.frame-id.8)
16860 20 28 6c 65 6e 67 74 68 20 6c 6f 63 61 6c 2d 76 61 72 73 29 29 29 0a 20 20 28 73 65 74 71 20 6d .(length.local-vars)))...(setq.m
16880 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 66 72 61 6d 65 2d 70 6f 69 6e alyon-restore-quetzal-frame-poin
168a0 74 65 72 0a 20 20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a ter.........malyon-restore-quetz
168c0 61 6c 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 29 0a 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 al-stack-pointer)...(while.(not.
168e0 28 6e 75 6c 6c 20 6c 6f 63 61 6c 2d 76 61 72 73 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 (null.local-vars)).....(malyon-r
16900 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 70 75 73 68 2d 73 74 61 63 6b 20 28 63 61 72 20 6c estore-quetzal-push-stack.(car.l
16920 6f 63 61 6c 2d 76 61 72 73 29 29 0a 20 20 20 20 28 73 65 74 71 20 6c 6f 63 61 6c 2d 76 61 72 73 ocal-vars)).....(setq.local-vars
16940 20 28 63 64 72 20 6c 6f 63 61 6c 2d 76 61 72 73 29 29 29 0a 20 20 28 77 68 69 6c 65 20 28 6e 6f .(cdr.local-vars)))...(while.(no
16960 74 20 28 6e 75 6c 6c 20 65 76 61 6c 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e t.(null.eval-stack)).....(malyon
16980 2d 72 65 73 74 6f 72 65 2d 71 75 65 74 7a 61 6c 2d 70 75 73 68 2d 73 74 61 63 6b 20 28 63 61 72 -restore-quetzal-push-stack.(car
169a0 20 65 76 61 6c 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 76 61 6c 2d 73 74 61 .eval-stack)).....(setq.eval-sta
169c0 63 6b 20 28 63 64 72 20 65 76 61 6c 2d 73 74 61 63 6b 29 29 29 29 0a 0a 3b 3b 20 6f 74 68 65 72 ck.(cdr.eval-stack))))..;;.other
169e0 20 73 74 75 66 66 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 74 65 78 .stuff..(defvar.malyon-aread-tex
16a00 74 20 6e 69 6c 0a 20 20 22 54 65 78 74 20 62 75 66 66 65 72 20 66 6f 72 20 75 73 65 72 20 69 6e t.nil..."Text.buffer.for.user.in
16a20 70 75 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 70 61 72 put.")..(defvar.malyon-aread-par
16a40 73 65 20 6e 69 6c 0a 20 20 22 50 61 72 73 65 20 62 75 66 66 65 72 20 66 6f 72 20 75 73 65 72 20 se.nil..."Parse.buffer.for.user.
16a60 69 6e 70 75 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 input.")..(defvar.malyon-aread-b
16a80 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 62 65 67 69 eginning-of-line.nil..."The.begi
16aa0 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 69 6e 70 75 74 20 6c 69 6e 65 2e 22 29 0a 0a 3b 3b 20 65 nning.of.the.input.line.")..;;.e
16ac0 78 65 63 75 74 69 6f 6e 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 69 6e 74 65 72 70 72 65 xecution..(defun.malyon-interpre
16ae0 74 65 72 20 28 29 0a 20 20 22 52 75 6e 20 74 68 65 20 5a 2d 63 6f 64 65 20 69 6e 74 65 72 70 72 ter.()..."Run.the.Z-code.interpr
16b00 65 74 65 72 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 0a 20 eter.on.the.given.story.file."..
16b20 20 28 6d 61 6c 79 6f 6e 2d 68 69 64 65 2d 69 6e 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 20 22 75 .(malyon-hide-internal-errors."u
16b40 6e 73 70 65 63 69 66 69 65 64 20 69 6e 74 65 72 6e 61 6c 20 72 75 6e 74 69 6d 65 20 65 72 72 6f nspecified.internal.runtime.erro
16b60 72 2e 22 0a 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 r.".....(progn.......(malyon-res
16b80 74 6f 72 65 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 0a 20 20 20 20 20 tore-window-configuration)......
16ba0 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 .(if.malyon-story-file..........
16bc0 20 28 63 61 74 63 68 20 27 6d 61 6c 79 6f 6e 2d 65 6e 64 2d 6f 66 2d 69 6e 74 65 72 70 72 65 74 .(catch.'malyon-end-of-interpret
16be0 65 72 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e er-loop.............(setq.malyon
16c00 2d 6c 61 73 74 2d 63 75 72 73 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 6e 70 75 -last-cursor-position-after-inpu
16c20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 6f 69 6e t...................(malyon-poin
16c40 74 2d 6d 61 78 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 29 29 t-max.malyon-transcript-buffer))
16c60 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 65 78 65 63 75 74 65 29 29 29 29 .............(malyon-execute))))
16c80 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 2d 76 61 72 69 61 ))..(defsubst.malyon-fetch-varia
16ca0 62 6c 65 2d 6f 70 65 72 61 6e 64 73 20 28 73 70 65 63 69 66 69 65 72 29 0a 20 20 22 46 65 74 63 ble-operands.(specifier)..."Fetc
16cc0 68 20 61 20 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 6f 70 65 72 61 6e 64 73 20 h.a.variable.number.of.operands.
16ce0 62 61 73 65 64 20 6f 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 72 20 61 72 67 75 6d 65 6e 74 2e based.on.the.specifier.argument.
16d00 22 0a 20 20 28 6c 65 74 20 28 28 76 61 72 20 20 28 6c 6f 67 61 6e 64 20 73 70 65 63 69 66 69 65 "...(let.((var..(logand.specifie
16d20 72 20 34 39 31 35 32 29 29 0a 20 20 20 20 20 20 20 20 28 6f 70 20 20 20 27 28 29 29 29 0a 20 20 r.49152)).........(op...'()))...
16d40 20 20 28 73 65 74 71 20 73 70 65 63 69 66 69 65 72 20 28 6c 6f 67 61 6e 64 20 36 35 35 33 35 20 ..(setq.specifier.(logand.65535.
16d60 73 70 65 63 69 66 69 65 72 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 30 20 73 70 65 specifier)).....(while.(/=.0.spe
16d80 63 69 66 69 65 72 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 3d 20 76 61 72 20 30 29 20 20 cifier).......(cond.((=.var.0)..
16da0 20 20 20 28 73 65 74 71 20 6f 70 20 28 63 6f 6e 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 ...(setq.op.(cons.(malyon-read-c
16dc0 6f 64 65 2d 77 6f 72 64 29 20 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 ode-word).op))).............((=.
16de0 76 61 72 20 31 36 33 38 34 29 20 28 73 65 74 71 20 6f 70 20 28 63 6f 6e 73 20 28 6d 61 6c 79 6f var.16384).(setq.op.(cons.(malyo
16e00 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20 n-read-code-byte).op))).........
16e20 20 20 20 20 28 28 3d 20 76 61 72 20 33 32 37 36 38 29 20 28 73 65 74 71 20 6f 70 20 28 63 6f 6e ....((=.var.32768).(setq.op.(con
16e40 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 20 20 s.(malyon-read-variable.........
16e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16e80 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 20 6f 70 29 29 ...(malyon-read-code-byte)).op))
16ea0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 ).............(t.............(se
16ec0 74 71 20 73 70 65 63 69 66 69 65 72 20 30 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 70 tq.specifier.0))).......(setq.sp
16ee0 65 63 69 66 69 65 72 20 28 6c 6f 67 61 6e 64 20 36 35 35 33 35 20 28 6c 73 68 20 73 70 65 63 69 ecifier.(logand.65535.(lsh.speci
16f00 66 69 65 72 20 32 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 76 61 72 20 20 28 6c 6f 67 61 fier.2))).......(setq.var..(loga
16f20 6e 64 20 73 70 65 63 69 66 69 65 72 20 34 39 31 35 32 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 nd.specifier.49152))).....(nreve
16f40 72 73 65 20 6f 70 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 66 65 74 63 rse.op)))..(defsubst.malyon-fetc
16f60 68 2d 65 78 74 65 6e 64 65 64 20 28 6f 70 63 6f 64 65 29 0a 20 20 22 46 65 74 63 68 20 6f 70 65 h-extended.(opcode)..."Fetch.ope
16f80 72 61 6e 64 73 20 66 6f 72 20 61 6e 20 65 78 74 65 6e 64 65 64 20 69 6e 73 74 72 75 63 74 69 6f rands.for.an.extended.instructio
16fa0 6e 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 2d 76 61 72 69 61 62 6c 65 2d 6f 70 65 n."...(malyon-fetch-variable-ope
16fc0 72 61 6e 64 73 0a 20 20 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 28 6d 61 6c 79 6f 6e 2d 72 65 rands....(logior.(lsh.(malyon-re
16fe0 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 38 29 20 32 35 35 29 29 29 0a 0a 28 64 65 66 73 75 62 ad-code-byte).8).255)))..(defsub
17000 73 74 20 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 2d 76 61 72 69 61 62 6c 65 20 28 6f 70 63 6f 64 65 st.malyon-fetch-variable.(opcode
17020 29 0a 20 20 22 46 65 74 63 68 20 6f 70 65 72 61 6e 64 73 20 66 6f 72 20 61 20 76 61 72 69 61 62 )..."Fetch.operands.for.a.variab
17040 6c 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 le.instruction."...(malyon-fetch
17060 2d 76 61 72 69 61 62 6c 65 2d 6f 70 65 72 61 6e 64 73 0a 20 20 20 28 69 66 20 28 6f 72 20 28 3d -variable-operands....(if.(or.(=
17080 20 6f 70 63 6f 64 65 20 32 33 36 29 20 28 3d 20 6f 70 63 6f 64 65 20 32 35 30 29 29 0a 20 20 20 .opcode.236).(=.opcode.250))....
170a0 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 77 6f 72 64 29 0a 20 20 20 20 ....(malyon-read-code-word).....
170c0 20 28 6c 6f 67 69 6f 72 20 28 6c 73 68 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d .(logior.(lsh.(malyon-read-code-
170e0 62 79 74 65 29 20 38 29 20 32 35 35 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6d 61 6c 79 byte).8).255))))..(defsubst.maly
17100 6f 6e 2d 66 65 74 63 68 2d 73 68 6f 72 74 20 28 6f 70 63 6f 64 65 29 0a 20 20 22 46 65 74 63 68 on-fetch-short.(opcode)..."Fetch
17120 20 6f 70 65 72 61 6e 64 73 20 66 6f 72 20 61 20 73 68 6f 72 74 20 69 6e 73 74 72 75 63 74 69 6f .operands.for.a.short.instructio
17140 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 70 20 28 6c 6f 67 61 6e 64 20 6f 70 63 6f 64 65 20 34 n."...(let.((op.(logand.opcode.4
17160 38 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 3d 20 6f 70 20 30 29 20 20 28 6c 69 73 74 20 8))).....(cond.((=.op.0)..(list.
17180 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 77 6f 72 64 29 29 29 0a 20 20 20 20 20 20 (malyon-read-code-word))).......
171a0 20 20 20 20 28 28 3d 20 6f 70 20 31 36 29 20 28 6c 69 73 74 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 ....((=.op.16).(list.(malyon-rea
171c0 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 6f 70 20 d-code-byte)))...........((=.op.
171e0 33 32 29 20 28 6c 69 73 74 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 20 32).(list.(malyon-read-variable.
17200 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 29 29 29 29 29 0a 0a 28 (malyon-read-code-byte)))))))..(
17220 64 65 66 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 2d 6c 6f 6e 67 20 28 69 6e 73 74 defsubst.malyon-fetch-long.(inst
17240 72 29 0a 20 20 22 46 65 74 63 68 20 6f 70 65 72 61 6e 64 73 20 66 6f 72 20 61 20 6c 6f 6e 67 20 r)..."Fetch.operands.for.a.long.
17260 69 6e 73 74 72 75 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 79 74 65 31 20 28 6d 61 instruction."...(let.((byte1.(ma
17280 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 0a 20 20 20 20 20 20 20 20 28 62 lyon-read-code-byte)).........(b
172a0 79 74 65 32 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 29 0a 20 yte2.(malyon-read-code-byte)))..
172c0 20 20 20 28 6c 69 73 74 20 28 69 66 20 28 3d 20 28 6c 6f 67 61 6e 64 20 69 6e 73 74 72 20 36 34 ...(list.(if.(=.(logand.instr.64
172e0 29 20 30 29 20 62 79 74 65 31 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 ).0).byte1.(malyon-read-variable
17300 20 62 79 74 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 6c 6f 67 61 6e .byte1))...........(if.(=.(logan
17320 64 20 69 6e 73 74 72 20 33 32 29 20 30 29 20 62 79 74 65 32 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 d.instr.32).0).byte2.(malyon-rea
17340 64 2d 76 61 72 69 61 62 6c 65 20 62 79 74 65 32 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 d-variable.byte2)))))..(defun.ma
17360 6c 79 6f 6e 2d 65 78 65 63 75 74 65 20 28 29 0a 20 20 22 45 78 65 63 75 74 65 20 5a 2d 63 6f 64 lyon-execute.()..."Execute.Z-cod
17380 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 2e 0a 4c 6f 61 64 20 74 68 65 20 6e 65 78 74 20 69 6e e.instructions..Load.the.next.in
173a0 73 74 72 75 63 74 69 6f 6e 20 6f 70 63 6f 64 65 20 61 6e 64 20 69 74 73 20 6f 70 65 72 61 6e 64 struction.opcode.and.its.operand
173c0 73 20 61 6e 64 20 65 78 65 63 75 74 65 20 69 74 2e 0a 52 65 70 65 61 74 20 61 64 20 69 6e 66 69 s.and.execute.it..Repeat.ad.infi
173e0 6e 69 74 75 6d 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 70 63 6f 64 65 29 20 28 6f 70 65 72 61 6e nitum."...(let.((opcode).(operan
17400 64 73 29 29 3b 20 28 70 63 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 74 0a 3b 20 20 20 20 20 20 ds));.(pc)).....(while.t.;......
17420 28 73 65 74 71 20 70 63 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e (setq.pc.malyon-instruction-poin
17440 74 65 72 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 63 6f 64 65 20 28 6d 61 6c 79 6f 6e 2d ter).......(setq.opcode.(malyon-
17460 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 65 read-code-byte)).......(setq.ope
17480 72 61 6e 64 73 20 28 63 6f 6e 64 20 28 28 3d 20 20 6f 70 63 6f 64 65 20 31 39 30 29 0a 20 20 20 rands.(cond.((=..opcode.190)....
174a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f .........................(setq.o
174c0 70 63 6f 64 65 20 28 2b 20 32 35 36 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 pcode.(+.256.(malyon-read-code-b
174e0 79 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yte)))..........................
17500 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 2d 65 78 74 65 6e 64 65 64 20 6f 70 63 6f 64 65 ...(malyon-fetch-extended.opcode
17520 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 ))............................((
17540 3e 3d 20 6f 70 63 6f 64 65 20 31 39 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >=.opcode.192)..................
17560 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 2d 76 61 72 69 61 62 6c ...........(malyon-fetch-variabl
17580 65 20 6f 70 63 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.opcode))......................
175a0 20 20 20 20 20 20 28 28 3e 3d 20 6f 70 63 6f 64 65 20 31 32 38 29 0a 20 20 20 20 20 20 20 20 20 ......((>=.opcode.128)..........
175c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 ...................(malyon-fetch
175e0 2d 73 68 6f 72 74 20 6f 70 63 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -short.opcode)).................
17600 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(t...................
17620 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 65 74 63 68 2d 6c 6f 6e 67 20 6f 70 63 ..........(malyon-fetch-long.opc
17640 6f 64 65 29 29 29 29 0a 3b 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 74 72 61 63 65 2d 6f 70 63 ode)))).;......(malyon-trace-opc
17660 6f 64 65 20 70 63 20 6f 70 63 6f 64 65 20 6f 70 65 72 61 6e 64 73 29 0a 20 20 20 20 20 20 28 61 ode.pc.opcode.operands).......(a
17680 70 70 6c 79 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 20 6f 70 63 6f 64 65 pply.(aref.malyon-opcodes.opcode
176a0 29 20 6f 70 65 72 61 6e 64 73 29 29 29 29 0a 0a 3b 3b 20 6f 70 63 6f 64 65 73 0a 0a 28 64 65 66 ).operands))))..;;.opcodes..(def
176c0 73 75 62 73 74 20 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 28 6e 29 0a 20 20 22 43 6f 6e 76 65 subst.malyon-number.(n)..."Conve
176e0 72 74 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 6e 75 6d 62 65 72 20 69 6e 74 6f 20 61 20 73 69 67 rt.an.unsigned.number.into.a.sig
17700 6e 65 64 20 6f 6e 65 2e 22 0a 20 20 28 69 66 20 28 3c 20 6e 20 33 32 37 36 38 29 20 6e 20 28 2d ned.one."...(if.(<.n.32768).n.(-
17720 20 6e 20 36 35 35 33 36 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 .n.65536)))..(defun.malyon-opcod
17740 65 2d 61 64 64 20 28 61 20 62 29 0a 20 20 22 41 64 64 69 74 69 6f 6e 2e 22 0a 20 20 28 6d 61 6c e-add.(a.b)..."Addition."...(mal
17760 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d yon-store-variable.(malyon-read-
17780 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 code-byte)......................
177a0 20 20 20 20 28 2b 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 61 29 20 28 6d 61 6c 79 6f 6e ....(+.(malyon-number.a).(malyon
177c0 2d 6e 75 6d 62 65 72 20 62 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 -number.b))))..(defun.malyon-opc
177e0 6f 64 65 2d 61 6e 64 20 28 61 20 62 29 0a 20 20 22 42 69 74 77 69 73 65 20 61 6e 64 2e 22 0a 20 ode-and.(a.b)..."Bitwise.and."..
17800 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d .(malyon-store-variable.(malyon-
17820 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 28 6c 6f 67 61 6e 64 20 61 20 62 29 29 29 0a 0a read-code-byte).(logand.a.b)))..
17840 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 61 72 65 61 64 20 28 74 65 78 74 (defun.malyon-opcode-aread.(text
17860 20 70 61 72 73 65 20 26 6f 70 74 69 6f 6e 61 6c 20 74 69 6d 65 20 72 6f 75 74 69 6e 65 29 0a 20 .parse.&optional.time.routine)..
17880 20 22 52 65 61 64 20 69 6e 70 75 74 20 74 65 78 74 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 ."Read.input.text."...(setq.maly
178a0 6f 6e 2d 61 72 65 61 64 2d 74 65 78 74 20 74 65 78 74 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 on-aread-text.text)...(setq.maly
178c0 6f 6e 2d 61 72 65 61 64 2d 70 61 72 73 65 20 70 61 72 73 65 29 0a 20 20 28 67 6f 74 6f 2d 63 68 on-aread-parse.parse)...(goto-ch
178e0 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 61 ar.(point-max))...(setq.malyon-a
17900 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 29 29 0a read-beginning-of-line.(point)).
17920 3b 20 53 6f 6d 65 20 67 61 6d 65 73 20 76 69 6f 6c 61 74 65 20 74 68 65 73 65 20 61 73 73 75 6d ;.Some.games.violate.these.assum
17940 70 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 22 51 75 69 74 22 20 71 75 65 73 74 69 6f 6e 2e 0a ptions.for.the."Quit".question..
17960 3b 20 20 28 69 66 20 28 3e 20 33 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 74 65 ;..(if.(>.3.(malyon-read-byte.te
17980 78 74 29 29 0a 3b 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 61 6c 2d 65 72 72 6f 72 20 xt)).;......(malyon-fatal-error.
179a0 22 74 65 78 74 20 62 75 66 66 65 72 20 6c 65 73 73 20 74 68 61 6e 20 33 20 62 79 74 65 73 2e 22 "text.buffer.less.than.3.bytes."
179c0 29 29 0a 3b 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 70 61 72 73 65 )).;..(if.(and.(not.(zerop.parse
179e0 29 29 20 28 3e 20 32 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 70 61 72 73 65 29 )).(>.2.(malyon-read-byte.parse)
17a00 29 29 0a 3b 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 61 6c 2d 65 72 72 6f 72 20 22 70 )).;......(malyon-fatal-error."p
17a20 61 72 73 65 20 62 75 66 66 65 72 20 6c 65 73 73 20 74 68 61 6e 20 32 20 62 79 74 65 73 2e 22 29 arse.buffer.less.than.2.bytes.")
17a40 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 )...(malyon-more.malyon-keymap-r
17a60 65 61 64 29 0a 20 20 28 74 68 72 6f 77 20 27 6d 61 6c 79 6f 6e 2d 65 6e 64 2d 6f 66 2d 69 6e 74 ead)...(throw.'malyon-end-of-int
17a80 65 72 70 72 65 74 65 72 2d 6c 6f 6f 70 20 27 6d 61 6c 79 6f 6e 2d 77 61 69 74 69 6e 67 2d 66 6f erpreter-loop.'malyon-waiting-fo
17aa0 72 2d 69 6e 70 75 74 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d r-input))..(defun.malyon-opcode-
17ac0 61 72 74 2d 73 68 69 66 74 20 28 76 61 6c 75 65 20 70 6c 61 63 65 73 29 0a 20 20 22 41 72 69 74 art-shift.(value.places)..."Arit
17ae0 68 6d 65 74 69 63 20 73 68 69 66 74 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 hmetic.shift."...(malyon-store-v
17b00 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 ariable.(malyon-read-code-byte).
17b20 28 61 73 68 20 76 61 6c 75 65 20 70 6c 61 63 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c (ash.value.places)))..(defun.mal
17b40 79 6f 6e 2d 6f 70 63 6f 64 65 2d 62 75 66 66 65 72 2d 6d 6f 64 65 20 28 6d 6f 64 65 29 0a 20 20 yon-opcode-buffer-mode.(mode)...
17b60 22 54 6f 67 67 6c 65 73 20 62 75 66 66 65 72 69 6e 67 20 6f 66 20 74 65 78 74 20 69 6e 20 74 68 "Toggles.buffering.of.text.in.th
17b80 65 20 74 72 61 6e 73 63 72 69 70 74 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 e.transcript.window."...(setq.ma
17ba0 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 2d 62 75 66 66 65 72 65 64 20 lyon-transcript-buffer-buffered.
17bc0 28 2f 3d 20 30 20 6d 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 (/=.0.mode)))..(defun.malyon-opc
17be0 6f 64 65 2d 63 61 6c 6c 6e 20 28 72 6f 75 74 69 6e 65 20 26 72 65 73 74 20 61 72 67 75 6d 65 6e ode-calln.(routine.&rest.argumen
17c00 74 73 29 0a 20 20 22 43 61 6c 6c 20 61 20 72 6f 75 74 69 6e 65 20 61 6e 64 20 69 67 6e 6f 72 65 ts)..."Call.a.routine.and.ignore
17c20 20 74 68 65 20 72 65 73 75 6c 74 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 63 61 6c 6c 2d 72 6f 75 .the.result."...(malyon-call-rou
17c40 74 69 6e 65 20 72 6f 75 74 69 6e 65 20 61 72 67 75 6d 65 6e 74 73 29 29 0a 0a 28 64 65 66 75 6e tine.routine.arguments))..(defun
17c60 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 6c 6c 73 20 28 72 6f 75 74 69 6e 65 20 26 72 .malyon-opcode-calls.(routine.&r
17c80 65 73 74 20 61 72 67 75 6d 65 6e 74 73 29 0a 20 20 22 43 61 6c 6c 20 61 20 72 6f 75 74 69 6e 65 est.arguments)..."Call.a.routine
17ca0 20 61 6e 64 20 73 74 6f 72 65 20 74 68 65 20 72 65 73 75 6c 74 2e 22 0a 20 20 28 6d 61 6c 79 6f .and.store.the.result."...(malyo
17cc0 6e 2d 63 61 6c 6c 2d 72 6f 75 74 69 6e 65 20 72 6f 75 74 69 6e 65 20 61 72 67 75 6d 65 6e 74 73 n-call-routine.routine.arguments
17ce0 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 29 29 0a 0a 28 64 65 66 .(malyon-read-code-byte)))..(def
17d00 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 61 74 63 68 20 28 29 0a 20 20 22 52 65 74 un.malyon-opcode-catch.()..."Ret
17d20 75 72 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 63 6b 20 66 72 61 6d 65 2e 22 0a 20 20 urn.the.current.stack.frame."...
17d40 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 0a 20 20 20 28 6d 61 6c 79 6f (malyon-store-variable....(malyo
17d60 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d n-read-code-byte)....(if.malyon-
17d80 67 61 6d 65 2d 73 74 61 74 65 2d 71 75 65 74 7a 61 6c 0a 20 20 20 20 20 20 20 28 6c 73 68 20 28 game-state-quetzal........(lsh.(
17da0 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 aref.malyon-stack.malyon-frame-p
17dc0 6f 69 6e 74 65 72 29 20 2d 38 29 0a 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f ointer).-8)......malyon-frame-po
17de0 69 6e 74 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 inter)))..(defun.malyon-opcode-c
17e00 68 65 63 6b 2d 61 72 67 2d 63 6f 75 6e 74 20 28 63 6f 75 6e 74 29 0a 20 20 22 54 65 73 74 73 20 heck-arg-count.(count)..."Tests.
17e20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20 74 the.number.of.arguments.passed.t
17e40 6f 20 72 6f 75 74 69 6e 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 0a 20 20 o.routine."...(malyon-jump-if...
17e60 20 28 3c 3d 20 63 6f 75 6e 74 20 28 6c 6f 67 61 6e 64 20 32 35 35 20 28 61 72 65 66 20 6d 61 6c .(<=.count.(logand.255.(aref.mal
17e80 79 6f 6e 2d 73 74 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yon-stack.......................
17ea0 20 20 20 20 20 20 20 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 71 .........(if.malyon-game-state-q
17ec0 75 65 74 7a 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uetzal..........................
17ee0 20 20 20 20 20 20 20 20 20 20 28 2d 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 ..........(-.malyon-frame-pointe
17f00 72 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.1)............................
17f20 20 20 20 20 20 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 29 29 29 29 29 29 ......malyon-frame-pointer))))))
17f40 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 68 65 63 6b 2d 75 6e 69 ..(defun.malyon-opcode-check-uni
17f60 63 6f 64 65 20 28 63 68 61 72 29 0a 20 20 22 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 74 68 65 code.(char)..."Check.whether.the
17f80 20 67 69 76 65 6e 20 63 68 61 72 61 63 74 65 72 20 69 73 20 76 61 6c 69 64 20 66 6f 72 20 69 6e .given.character.is.valid.for.in
17fa0 70 75 74 2f 6f 75 74 70 75 74 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 put/output."...(malyon-store-var
17fc0 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 30 29 iable.(malyon-read-code-byte).0)
17fe0 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 63 6c 65 61 72 2d 61 74 )..(defun.malyon-opcode-clear-at
18000 74 72 20 28 6f 62 6a 65 63 74 20 61 74 74 72 69 62 75 74 65 29 0a 20 20 22 43 6c 65 61 72 20 74 tr.(object.attribute)..."Clear.t
18020 68 65 20 67 69 76 65 6e 20 61 74 74 72 69 62 75 74 65 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 he.given.attribute.in.the.given.
18040 6f 62 6a 65 63 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 74 74 72 69 62 75 74 65 73 20 28 6d 61 object."...(let.((attributes.(ma
18060 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 65 73 73 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 lyon-object-address.object))....
18080 20 20 20 20 20 28 62 79 74 65 20 20 20 20 20 20 20 28 6c 73 68 20 61 74 74 72 69 62 75 74 65 20 .....(byte.......(lsh.attribute.
180a0 2d 33 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 -3))).....(malyon-store-byte.(+.
180c0 61 74 74 72 69 62 75 74 65 73 20 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 attributes.byte)................
180e0 20 20 20 20 20 20 20 20 28 6c 6f 67 61 6e 64 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 ........(logand.(malyon-read-byt
18100 65 20 28 2b 20 61 74 74 72 69 62 75 74 65 73 20 62 79 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 e.(+.attributes.byte))..........
18120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 67 78 6f 72 20 28 6c ......................(logxor.(l
18140 73 68 20 31 32 38 20 28 2d 20 28 6c 6f 67 61 6e 64 20 61 74 74 72 69 62 75 74 65 20 37 29 29 29 sh.128.(-.(logand.attribute.7)))
18160 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18180 20 20 20 20 20 20 20 20 32 35 35 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d ........255)))))..(defun.malyon-
181a0 6f 70 63 6f 64 65 2d 63 6f 70 79 2d 74 61 62 6c 65 20 28 66 69 72 73 74 20 73 65 63 6f 6e 64 20 opcode-copy-table.(first.second.
181c0 73 69 7a 65 29 0a 20 20 22 43 6f 70 69 65 73 20 66 69 72 73 74 20 74 61 62 6c 65 20 6f 6e 74 6f size)..."Copies.first.table.onto
181e0 20 73 65 63 6f 6e 64 20 6f 6e 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 65 6e 67 74 68 20 20 .second.one."...(let*.((length..
18200 28 61 62 73 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 73 69 7a 65 29 29 29 0a 20 20 20 20 (abs.(malyon-number.size))).....
18220 20 20 20 20 20 28 7a 65 72 6f 20 20 20 20 28 7a 65 72 6f 70 20 73 65 63 6f 6e 64 29 29 0a 20 20 .....(zero....(zerop.second))...
18240 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 20 28 6f 72 20 28 3c 20 28 6d 61 6c 79 6f 6e 2d 6e .......(forward.(or.(<.(malyon-n
18260 75 6d 62 65 72 20 73 69 7a 65 29 20 30 29 20 28 3e 20 66 69 72 73 74 20 73 65 63 6f 6e 64 29 29 umber.size).0).(>.first.second))
18280 29 0a 20 20 20 20 20 20 20 20 20 28 69 20 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 20 )..........(i.......0)..........
182a0 28 61 20 20 20 20 20 20 20 28 69 66 20 66 6f 72 77 61 72 64 20 66 69 72 73 74 20 28 2b 20 66 69 (a.......(if.forward.first.(+.fi
182c0 72 73 74 20 6c 65 6e 67 74 68 20 2d 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 20 20 20 20 rst.length.-1)))..........(b....
182e0 20 20 20 28 69 66 20 66 6f 72 77 61 72 64 20 28 69 66 20 7a 65 72 6f 20 66 69 72 73 74 20 73 65 ...(if.forward.(if.zero.first.se
18300 63 6f 6e 64 29 20 28 2b 20 73 65 63 6f 6e 64 20 6c 65 6e 67 74 68 20 2d 31 29 29 29 29 0a 20 20 cond).(+.second.length.-1))))...
18320 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 28 6d 61 6c ..(while.(<.i.length).......(mal
18340 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 62 20 28 69 66 20 7a 65 72 6f 20 30 20 28 6d 61 6c yon-store-byte.b.(if.zero.0.(mal
18360 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 61 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 yon-read-byte.a))).......(setq.i
18380 20 28 2b 20 69 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 20 28 69 66 20 66 6f 72 77 61 .(+.i.1).............a.(if.forwa
183a0 72 64 20 28 2b 20 61 20 31 29 20 28 2d 20 61 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 rd.(+.a.1).(-.a.1)).............
183c0 62 20 28 69 66 20 66 6f 72 77 61 72 64 20 28 2b 20 62 20 31 29 20 28 2d 20 62 20 31 29 29 29 29 b.(if.forward.(+.b.1).(-.b.1))))
183e0 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 65 63 20 28 76 61 ))..(defun.malyon-opcode-dec.(va
18400 72 29 0a 20 20 22 44 65 63 72 65 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 6d 61 r)..."Decrement.variable."...(ma
18420 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 76 61 72 0a 20 20 20 20 20 20 20 20 lyon-store-variable.var.........
18440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 .................(-.(malyon-numb
18460 65 72 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 20 76 61 72 29 29 20 31 er.(malyon-read-variable.var)).1
18480 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 64 65 63 2d 63 68 )))..(defun.malyon-opcode-dec-ch
184a0 6b 20 28 76 61 72 69 61 62 6c 65 20 74 68 72 65 73 68 6f 6c 64 29 0a 20 20 22 44 65 63 72 65 6d k.(variable.threshold)..."Decrem
184c0 65 6e 74 20 76 61 72 69 61 62 6c 65 20 61 6e 64 20 6a 75 6d 70 20 69 66 20 69 74 27 73 20 6c 65 ent.variable.and.jump.if.it's.le
184e0 73 73 20 74 68 61 6e 20 74 68 65 20 67 69 76 65 6e 20 76 61 6c 75 65 2e 22 0a 20 20 28 6c 65 74 ss.than.the.given.value."...(let
18500 20 28 28 76 61 6c 75 65 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 28 6d 61 6c 79 6f 6e 2d .((value.(malyon-number.(malyon-
18520 72 65 61 64 2d 76 61 72 69 61 62 6c 65 20 76 61 72 69 61 62 6c 65 29 29 29 29 0a 20 20 20 20 28 read-variable.variable)))).....(
18540 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 76 61 72 69 61 62 6c 65 20 28 malyon-store-variable.variable.(
18560 2d 20 76 61 6c 75 65 20 31 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 -.value.1)).....(malyon-jump-if.
18580 28 3c 20 28 2d 20 76 61 6c 75 65 20 31 29 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 74 68 (<.(-.value.1).(malyon-number.th
185a0 72 65 73 68 6f 6c 64 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f reshold)))))..(defun.malyon-opco
185c0 64 65 2d 64 69 76 20 28 61 20 62 29 0a 20 20 22 44 69 76 69 73 69 6f 6e 2e 22 0a 20 20 28 69 66 de-div.(a.b)..."Division."...(if
185e0 20 28 7a 65 72 6f 70 20 62 29 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 61 6c 2d 65 72 72 6f 72 20 22 .(zerop.b).(malyon-fatal-error."
18600 64 69 76 69 73 69 6f 6e 20 62 79 20 30 2e 22 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 division.by.0."))...(malyon-stor
18620 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 e-variable.(malyon-read-code-byt
18640 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 20 28 e)..........................(/.(
18660 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 61 29 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 malyon-number.a).(malyon-number.
18680 62 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 65 6e 63 6f b))))..(defun.malyon-opcode-enco
186a0 64 65 2d 74 65 78 74 20 28 74 65 78 74 20 6c 65 6e 67 74 68 20 66 72 6f 6d 20 65 6e 63 6f 64 65 de-text.(text.length.from.encode
186c0 64 29 0a 20 20 22 45 6e 63 6f 64 65 20 74 68 65 20 7a 73 63 69 69 20 74 65 78 74 20 73 74 61 72 d)..."Encode.the.zscii.text.star
186e0 74 69 6e 67 20 61 74 20 66 72 6f 6d 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 6c 65 6e 67 ting.at.from.with.the.given.leng
18700 74 68 2e 0a 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 73 74 6f 72 65 64 20 61 74 20 65 6e 63 6f th..The.result.is.stored.at.enco
18720 64 65 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 20 20 20 20 20 6c 65 6e 67 74 68 29 0a 20 20 ded."...(let*.((i.....length)...
18740 20 20 20 20 20 20 20 28 6a 20 20 20 20 20 65 6e 63 6f 64 65 64 29 0a 20 20 20 20 20 20 20 20 20 .......(j.....encoded)..........
18760 28 6c 20 20 20 20 20 27 28 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 6f 72 64 20 20 27 28 29 29 (l.....'())..........(word..'())
18780 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 30 20 69 29 0a 20 20 20 20 20 20 28 73 65 74 71 ).....(while.(<.0.i).......(setq
187a0 20 6c 20 28 63 6f 6e 73 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 74 65 .l.(cons.(malyon-read-byte.(+.te
187c0 78 74 20 66 72 6f 6d 20 69 20 2d 31 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 20 xt.from.i.-1)).l).............i.
187e0 28 2d 20 69 20 31 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 77 6f 72 64 20 28 6d 61 6c 79 6f 6e (-.i.1))).....(setq.word.(malyon
18800 2d 65 6e 63 6f 64 65 2d 64 69 63 74 69 6f 6e 61 72 79 2d 77 6f 72 64 0a 09 09 28 61 70 70 65 6e -encode-dictionary-word...(appen
18820 64 20 28 63 6c 2d 6d 61 70 63 61 6e 20 27 6d 61 6c 79 6f 6e 2d 65 6e 63 6f 64 65 2d 69 6e 74 6f d.(cl-mapcan.'malyon-encode-into
18840 2d 7a 74 65 78 74 20 6c 29 0a 09 09 09 27 28 35 20 35 20 35 20 35 20 35 20 35 20 35 20 35 29 29 -ztext.l)....'(5.5.5.5.5.5.5.5))
18860 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 36 29 0a 20 20 20 20 20 20 28 6d 61 6c )).....(while.(<.i.6).......(mal
18880 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 6a 20 28 63 61 72 20 6c 29 29 0a 20 20 20 20 20 20 yon-store-byte.j.(car.l)).......
188a0 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 20 28 2b (setq.i.(+.1.i).............j.(+
188c0 20 31 20 6a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 20 28 63 64 72 20 77 6f 72 64 29 29 29 .1.j).............l.(cdr.word)))
188e0 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 65 72 61 73 65 2d 6c ))..(defun.malyon-opcode-erase-l
18900 69 6e 65 20 28 76 61 6c 75 65 29 0a 20 20 22 45 72 61 73 65 73 20 74 68 65 20 72 65 73 74 20 6f ine.(value)..."Erases.the.rest.o
18920 66 20 74 68 65 20 6c 69 6e 65 2e 22 0a 20 20 28 69 66 20 28 3d 20 76 61 6c 75 65 20 31 29 0a 20 f.the.line."...(if.(=.value.1)..
18940 20 20 20 20 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 .....(if.(eq.malyon-transcript-b
18960 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 uffer.(current-buffer)).........
18980 20 20 28 6b 69 6c 6c 2d 6c 69 6e 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d ..(kill-line.nil).........(save-
189a0 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 20 28 63 75 excursion...........(let.((i.(cu
189c0 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 rrent-column))).............(whi
189e0 6c 65 20 28 3c 3d 20 69 20 6d 61 6c 79 6f 6e 2d 6d 61 78 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 le.(<=.i.malyon-max-column).....
18a00 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 3f 20 29 0a 20 20 20 20 20 20 20 20 20 20 ..........(insert.?.)...........
18a20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(delete-char.1).............
18a40 20 20 28 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e ..(setq.i.(+.1.i))))))))..(defun
18a60 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 65 72 61 73 65 2d 77 69 6e 64 6f 77 20 28 77 69 6e .malyon-opcode-erase-window.(win
18a80 64 6f 77 29 0a 20 20 22 45 72 61 73 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 dow)..."Erase.the.contents.of.th
18aa0 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 e.given.window."...(save-excursi
18ac0 6f 6e 0a 20 20 20 20 28 6c 65 74 20 28 28 77 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 77 on.....(let.((w.(malyon-number.w
18ae0 69 6e 64 6f 77 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 3d 20 77 20 30 29 20 28 indow))).......(if.(or.(=.w.0).(
18b00 3d 20 77 20 2d 31 29 20 28 3d 20 77 20 2d 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c =.w.-1).(=.w.-2))...........(mal
18b20 79 6f 6e 2d 65 72 61 73 65 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 yon-erase-buffer.malyon-transcri
18b40 70 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 3d 20 77 20 31 pt-buffer)).......(if.(or.(=.w.1
18b60 29 20 28 3d 20 77 20 2d 31 29 20 28 3d 20 77 20 2d 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 ).(=.w.-1).(=.w.-2))...........(
18b80 6d 61 6c 79 6f 6e 2d 65 72 61 73 65 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 malyon-erase-buffer.malyon-statu
18ba0 73 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 77 20 2d 31 29 0a 20 20 s-buffer)).......(if.(=.w.-1)...
18bc0 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 62 75 66 66 65 72 2d 77 69 6e ........(malyon-split-buffer-win
18be0 64 6f 77 73 20 30 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 6c 61 73 74 2d dows.0))).....(setq.malyon-last-
18c00 63 75 72 73 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 6e 70 75 74 0a 20 20 20 20 cursor-position-after-input.....
18c20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 6f 69 6e 74 2d 6d 61 78 20 6d 61 6c 79 6f 6e 2d 74 ......(malyon-point-max.malyon-t
18c40 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c ranscript-buffer))))..(defun.mal
18c60 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 63 68 69 6c 64 20 28 6f 62 6a 65 63 74 29 0a 20 20 yon-opcode-get-child.(object)...
18c80 22 47 65 74 20 74 68 65 20 66 69 72 73 74 20 63 68 69 6c 64 20 6f 66 20 74 68 65 20 67 69 76 65 "Get.the.first.child.of.the.give
18ca0 6e 20 6f 62 6a 65 63 74 20 61 6e 64 20 6a 75 6d 70 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 68 69 n.object.and.jump."...(let.((chi
18cc0 6c 64 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 63 68 69 6c 64 20 28 6d 61 ld.(malyon-object-read-child.(ma
18ce0 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 65 73 73 20 6f 62 6a 65 63 74 29 29 29 29 0a 20 lyon-object-address.object))))..
18d00 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f ...(malyon-store-variable.(malyo
18d20 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 63 68 69 6c 64 29 0a 20 20 20 20 28 6d 61 n-read-code-byte).child).....(ma
18d40 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 28 2f 3d 20 30 20 63 68 69 6c 64 29 29 29 29 0a 0a 28 64 lyon-jump-if.(/=.0.child))))..(d
18d60 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 63 75 72 73 6f 72 20 28 61 efun.malyon-opcode-get-cursor.(a
18d80 72 72 61 79 29 0a 20 20 22 52 65 74 72 69 65 76 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 rray)..."Retrieves.the.current.c
18da0 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 ursor.position."...(with-current
18dc0 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 0a 20 20 20 -buffer.malyon-status-buffer....
18de0 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 61 72 72 61 79 20 28 2d 20 28 63 6f .(malyon-store-word.array.(-.(co
18e00 75 6e 74 2d 6c 69 6e 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 29 29 20 31 unt-lines.(point-min).(point)).1
18e20 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 28 2b 20 32 20 61 )).....(malyon-store-word.(+.2.a
18e40 72 72 61 79 29 20 28 2b 20 31 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 29 0a rray).(+.1.(current-column))))).
18e60 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 6e 65 78 74 2d 70 .(defun.malyon-opcode-get-next-p
18e80 72 6f 70 20 28 6f 62 6a 65 63 74 20 70 72 6f 70 65 72 74 79 29 0a 20 20 22 52 65 74 72 69 65 76 rop.(object.property)..."Retriev
18ea0 65 20 74 68 65 20 66 69 72 73 74 20 6f 72 20 6e 65 78 74 20 70 72 6f 70 65 72 74 79 20 69 64 20 e.the.first.or.next.property.id.
18ec0 6f 66 20 6f 62 6a 65 63 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 65 78 74 20 28 6d 61 6c 79 6f of.object."...(let.((next.(malyo
18ee0 6e 2d 66 69 72 73 74 2d 70 72 6f 70 65 72 74 79 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 n-first-property.object)).......
18f00 20 20 28 6e 75 6d 62 65 72 20 30 29 29 0a 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 70 72 6f ..(number.0)).....(if.(zerop.pro
18f20 70 65 72 74 79 29 0a 20 20 20 20 20 20 20 20 27 28 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e perty).........'().......(setq.n
18f40 75 6d 62 65 72 20 28 6c 6f 67 61 6e 64 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 umber.(logand.(malyon-read-byte.
18f60 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 next)...........................
18f80 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 69 65 73 29 29 0a 20 20 20 20 .malyon-object-properties)).....
18fa0 20 20 28 73 65 74 71 20 6e 65 78 74 20 28 6d 61 6c 79 6f 6e 2d 6e 65 78 74 2d 70 72 6f 70 65 72 ..(setq.next.(malyon-next-proper
18fc0 74 79 20 6e 65 78 74 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 6e 75 6d 62 65 72 ty.next)).......(while.(>.number
18fe0 20 70 72 6f 70 65 72 74 79 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 75 6d 62 65 72 20 .property).........(setq.number.
19000 28 6c 6f 67 61 6e 64 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 6e 65 78 74 29 0a (logand.(malyon-read-byte.next).
19020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 6c .............................mal
19040 79 6f 6e 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 69 65 73 29 29 0a 20 20 20 20 20 20 20 20 yon-object-properties)).........
19060 28 73 65 74 71 20 6e 65 78 74 20 28 6d 61 6c 79 6f 6e 2d 6e 65 78 74 2d 70 72 6f 70 65 72 74 79 (setq.next.(malyon-next-property
19080 20 6e 65 78 74 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 2f 3d 20 6e 75 6d 62 65 72 20 70 72 .next))).......(if.(/=.number.pr
190a0 6f 70 65 72 74 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 61 6c 2d operty)...........(malyon-fatal-
190c0 65 72 72 6f 72 20 22 70 72 6f 70 65 72 74 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 error."property.does.not.exist."
190e0 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 75 6d 62 65 72 20 28 6c 6f 67 61 6e 64 20 28 6d 61 ))).....(setq.number.(logand.(ma
19100 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 6e 65 78 74 29 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 lyon-read-byte.next).malyon-obje
19120 63 74 2d 70 72 6f 70 65 72 74 69 65 73 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 ct-properties)).....(malyon-stor
19140 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 e-variable.(malyon-read-code-byt
19160 65 29 20 6e 75 6d 62 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f e).number)))..(defun.malyon-opco
19180 64 65 2d 67 65 74 2d 70 61 72 65 6e 74 20 28 6f 62 6a 65 63 74 29 0a 20 20 22 47 65 74 20 74 68 de-get-parent.(object)..."Get.th
191a0 65 20 70 61 72 65 6e 74 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 6f 62 6a 65 63 74 2e 22 0a 20 e.parent.of.the.given.object."..
191c0 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d .(malyon-store-variable.(malyon-
191e0 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 read-code-byte).................
19200 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 70 61 72 .........(malyon-object-read-par
19220 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d ent...........................(m
19240 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 65 73 73 20 6f 62 6a 65 63 74 29 29 29 29 0a alyon-object-address.object)))).
19260 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 28 .(defun.malyon-opcode-get-prop.(
19280 6f 62 6a 65 63 74 20 70 72 6f 70 65 72 74 79 29 0a 20 20 22 47 65 74 20 74 68 65 20 76 61 6c 75 object.property)..."Get.the.valu
192a0 65 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 27 73 20 70 72 6f 70 65 72 74 79 2e 22 0a 20 20 28 e.of.the.object's.property."...(
192c0 6c 65 74 2a 20 28 28 61 64 64 72 65 73 73 20 28 6d 61 6c 79 6f 6e 2d 66 69 6e 64 2d 70 72 6f 70 let*.((address.(malyon-find-prop
192e0 65 72 74 79 20 6f 62 6a 65 63 74 20 70 72 6f 70 65 72 74 79 29 29 0a 20 20 20 20 20 20 20 20 20 erty.object.property))..........
19300 28 73 69 7a 65 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 61 64 64 72 65 (size....(malyon-read-byte.addre
19320 73 73 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 ss))).....(malyon-store-variable
19340 0a 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 ......(malyon-read-code-byte)...
19360 20 20 20 28 63 6f 6e 64 20 28 28 7a 65 72 6f 70 20 61 64 64 72 65 73 73 29 0a 20 20 20 20 20 20 ...(cond.((zerop.address).......
19380 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 6d 61 6c 79 6f ......(malyon-read-word.(+.malyo
193a0 6e 2d 6f 62 6a 65 63 74 2d 74 61 62 6c 65 20 28 2a 20 32 20 28 2d 20 70 72 6f 70 65 72 74 79 20 n-object-table.(*.2.(-.property.
193c0 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3c 20 20 6d 61 6c 79 1)))))............((and.(<..maly
193e0 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 28 7a 65 72 6f 70 20 28 6c 73 68 20 on-story-version.5).(zerop.(lsh.
19400 73 69 7a 65 20 2d 35 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 size.-5))).............(malyon-r
19420 65 61 64 2d 62 79 74 65 20 28 2b 20 61 64 64 72 65 73 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 ead-byte.(+.address.1)))........
19440 20 20 20 20 28 28 61 6e 64 20 28 3e 3d 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 ....((and.(>=.malyon-story-versi
19460 6f 6e 20 35 29 20 28 7a 65 72 6f 70 20 28 6c 6f 67 61 6e 64 20 31 39 32 20 73 69 7a 65 29 29 29 on.5).(zerop.(logand.192.size)))
19480 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 .............(malyon-read-byte.(
194a0 2b 20 61 64 64 72 65 73 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 +.address.1)))............(t....
194c0 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 61 64 .........(malyon-read-word.(+.ad
194e0 64 72 65 73 73 20 31 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 dress.1)))))))..(defun.malyon-op
19500 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 2d 61 64 64 72 20 28 6f 62 6a 65 63 74 20 70 72 6f 70 65 code-get-prop-addr.(object.prope
19520 72 74 79 29 0a 20 20 22 47 65 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6f rty)..."Get.the.address.of.the.o
19540 62 6a 65 63 74 27 73 20 70 72 6f 70 65 72 74 79 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 61 64 64 bject's.property."...(let*.((add
19560 72 65 73 73 20 28 6d 61 6c 79 6f 6e 2d 66 69 6e 64 2d 70 72 6f 70 65 72 74 79 20 6f 62 6a 65 63 ress.(malyon-find-property.objec
19580 74 20 70 72 6f 70 65 72 74 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 7a 65 20 20 20 20 28 t.property))..........(size....(
195a0 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 61 64 64 72 65 73 73 29 29 0a 20 20 20 20 20 malyon-read-byte.address))......
195c0 20 20 20 20 28 6f 66 66 73 65 74 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 ....(offset..(if.(<.malyon-story
195e0 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -version.5).....................
19600 20 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 ..1.....................(if.(zer
19620 6f 70 20 28 6c 6f 67 61 6e 64 20 31 32 38 20 73 69 7a 65 29 29 20 31 20 32 29 29 29 29 0a 20 20 op.(logand.128.size)).1.2))))...
19640 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e ..(malyon-store-variable.(malyon
19660 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -read-code-byte)................
19680 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 61 64 64 72 65 73 73 29 20 ............(if.(zerop.address).
196a0 30 20 28 2b 20 61 64 64 72 65 73 73 20 6f 66 66 73 65 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 0.(+.address.offset)))))..(defun
196c0 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 70 72 6f 70 2d 6c 65 6e 20 28 70 72 6f .malyon-opcode-get-prop-len.(pro
196e0 70 65 72 74 79 29 0a 20 20 22 47 65 74 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 perty)..."Get.the.length.of.the.
19700 6f 62 6a 65 63 74 27 73 20 70 72 6f 70 65 72 74 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 69 7a object's.property."...(let.((siz
19720 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2d 20 70 72 6f 70 65 72 74 79 20 e.(malyon-read-byte.(-.property.
19740 31 29 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 1)))).....(malyon-store-variable
19760 0a 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 ......(malyon-read-code-byte)...
19780 20 20 20 28 63 6f 6e 64 20 28 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f ...(cond.((<.malyon-story-versio
197a0 6e 20 35 29 20 28 2b 20 31 20 28 6c 73 68 20 73 69 7a 65 20 2d 35 29 29 29 0a 20 20 20 20 20 20 n.5).(+.1.(lsh.size.-5))).......
197c0 20 20 20 20 20 28 28 7a 65 72 6f 70 20 28 6c 6f 67 61 6e 64 20 31 32 38 20 73 69 7a 65 29 29 20 .....((zerop.(logand.128.size)).
197e0 20 28 2b 20 31 20 28 6c 73 68 20 73 69 7a 65 20 2d 36 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(+.1.(lsh.size.-6)))...........
19800 20 28 28 7a 65 72 6f 70 20 28 6c 6f 67 61 6e 64 20 20 36 33 20 73 69 7a 65 29 29 20 20 36 34 29 .((zerop.(logand..63.size))..64)
19820 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............(t..................
19840 20 20 20 20 20 20 20 20 28 6c 6f 67 61 6e 64 20 36 33 20 73 69 7a 65 29 29 29 29 29 29 0a 0a 28 ........(logand.63.size))))))..(
19860 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 67 65 74 2d 73 69 62 6c 69 6e 67 20 defun.malyon-opcode-get-sibling.
19880 28 6f 62 6a 65 63 74 29 0a 20 20 22 47 65 74 20 74 68 65 20 6e 65 78 74 20 6f 62 6a 65 63 74 20 (object)..."Get.the.next.object.
198a0 69 6e 20 74 68 65 20 74 72 65 65 20 61 6e 64 20 6a 75 6d 70 2e 22 0a 20 20 28 6c 65 74 20 28 28 in.the.tree.and.jump."...(let.((
198c0 73 69 62 6c 69 6e 67 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 73 69 62 6c sibling.(malyon-object-read-sibl
198e0 69 6e 67 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 65 73 73 20 6f 62 6a 65 63 ing.(malyon-object-address.objec
19900 74 29 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 t)))).....(malyon-store-variable
19920 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 73 69 62 6c 69 6e 67 .(malyon-read-code-byte).sibling
19940 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 28 2f 3d 20 30 20 73 69 62 6c ).....(malyon-jump-if.(/=.0.sibl
19960 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6c ing))))..(defun.malyon-opcode-il
19980 6c 65 67 61 6c 20 28 26 72 65 73 74 20 69 67 6e 6f 72 65 29 0a 20 20 22 50 72 69 6e 74 20 61 6e legal.(&rest.ignore)..."Print.an
199a0 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 61 6e 64 20 65 78 69 74 20 74 68 65 20 69 6e 74 65 .error.message.and.exit.the.inte
199c0 72 70 72 65 74 65 72 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 61 6c 2d 65 72 72 6f 72 20 rpreter."...(malyon-fatal-error.
199e0 22 69 6c 6c 65 67 61 6c 20 6f 70 63 6f 64 65 2e 22 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 "illegal.opcode."))..(defun.maly
19a00 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 63 20 28 76 61 72 29 0a 20 20 22 49 6e 63 72 65 6d 65 6e 74 on-opcode-inc.(var)..."Increment
19a20 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 .variable."...(malyon-store-vari
19a40 61 62 6c 65 20 76 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 able.var........................
19a60 20 20 28 2b 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 ..(+.(malyon-number.(malyon-read
19a80 2d 76 61 72 69 61 62 6c 65 20 76 61 72 29 29 20 31 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c -variable.var)).1)))..(defun.mal
19aa0 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 63 2d 63 68 6b 20 28 76 61 72 69 61 62 6c 65 20 74 68 72 yon-opcode-inc-chk.(variable.thr
19ac0 65 73 68 6f 6c 64 29 0a 20 20 22 49 6e 63 72 65 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 61 6e eshold)..."Increment.variable.an
19ae0 64 20 6a 75 6d 70 20 69 66 20 69 74 27 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 74 68 65 20 d.jump.if.it's.greater.than.the.
19b00 67 69 76 65 6e 20 76 61 6c 75 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 6d 61 given.value."...(let.((value.(ma
19b20 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 76 61 72 69 61 62 6c lyon-number.(malyon-read-variabl
19b40 65 20 76 61 72 69 61 62 6c 65 29 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 e.variable)))).....(malyon-store
19b60 2d 76 61 72 69 61 62 6c 65 20 76 61 72 69 61 62 6c 65 20 28 2b 20 76 61 6c 75 65 20 31 29 29 0a -variable.variable.(+.value.1)).
19b80 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 28 3e 20 28 2b 20 76 61 6c 75 65 20 ....(malyon-jump-if.(>.(+.value.
19ba0 31 29 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 74 68 72 65 73 68 6f 6c 64 29 29 29 29 29 1).(malyon-number.threshold)))))
19bc0 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 70 75 74 2d 73 74 72 ..(defun.malyon-opcode-input-str
19be0 65 61 6d 20 28 6e 75 6d 62 65 72 29 0a 20 20 22 53 65 6c 65 63 74 20 74 68 65 20 67 69 76 65 6e eam.(number)..."Select.the.given
19c00 20 69 6e 70 75 74 20 73 74 72 65 61 6d 2e 20 4f 6e 6c 79 20 74 68 65 20 6b 65 79 62 6f 61 72 64 .input.stream..Only.the.keyboard
19c20 20 69 73 20 73 75 70 70 6f 72 74 65 64 2e 22 0a 20 20 28 69 66 20 28 7a 65 72 6f 70 20 28 6d 61 .is.supported."...(if.(zerop.(ma
19c40 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 6e 75 6d 62 65 72 29 29 0a 20 20 20 20 20 20 27 28 29 0a 20 lyon-number.number)).......'()..
19c60 20 20 20 28 6d 65 73 73 61 67 65 20 22 4f 6e 6c 79 20 74 68 65 20 6b 65 79 62 6f 61 72 64 20 69 ...(message."Only.the.keyboard.i
19c80 73 20 73 75 70 70 6f 72 74 65 64 20 61 73 20 61 6e 20 69 6e 70 75 74 20 73 74 72 65 61 6d 2e 22 s.supported.as.an.input.stream."
19ca0 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 69 6e 73 65 72 74 )))..(defun.malyon-opcode-insert
19cc0 2d 6f 62 6a 20 28 6f 62 6a 65 63 74 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 0a 20 20 22 49 6e 73 -obj.(object.destination)..."Ins
19ce0 65 72 74 20 61 6e 20 6f 62 6a 65 63 74 20 69 6e 74 6f 20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 ert.an.object.into.the.children.
19d00 6c 69 73 74 20 6f 66 20 61 6e 6f 74 68 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 68 69 6c 64 list.of.another."...(let.((child
19d20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 65 73 73 20 6f 62 6a 65 63 74 29 ..(malyon-object-address.object)
19d40 29 0a 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 ).........(parent.(malyon-object
19d60 2d 61 64 64 72 65 73 73 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 6d 61 6c -address.destination))).....(mal
19d80 79 6f 6e 2d 72 65 6d 6f 76 65 2d 6f 62 6a 65 63 74 20 6f 62 6a 65 63 74 29 0a 20 20 20 20 28 6d yon-remove-object.object).....(m
19da0 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 73 74 6f 72 65 2d 70 61 72 65 6e 74 20 20 63 68 69 6c 64 alyon-object-store-parent..child
19dc0 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 .destination).....(malyon-object
19de0 2d 73 74 6f 72 65 2d 73 69 62 6c 69 6e 67 20 63 68 69 6c 64 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a -store-sibling.child.(malyon-obj
19e00 65 63 74 2d 72 65 61 64 2d 63 68 69 6c 64 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 28 6d 61 6c ect-read-child.parent)).....(mal
19e20 79 6f 6e 2d 6f 62 6a 65 63 74 2d 73 74 6f 72 65 2d 63 68 69 6c 64 20 20 20 70 61 72 65 6e 74 20 yon-object-store-child...parent.
19e40 6f 62 6a 65 63 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d object)))..(defun.malyon-opcode-
19e60 6a 65 20 28 61 20 26 72 65 73 74 20 72 65 73 74 29 0a 20 20 22 4a 75 6d 70 20 69 66 20 66 69 72 je.(a.&rest.rest)..."Jump.if.fir
19e80 73 74 20 6f 70 65 72 61 6e 64 20 65 71 75 61 6c 73 20 61 6e 79 20 6f 66 20 74 68 65 20 66 6f 6c st.operand.equals.any.of.the.fol
19ea0 6c 6f 77 69 6e 67 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 28 6d 65 6d 62 lowing."...(malyon-jump-if.(memb
19ec0 65 72 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 61 29 20 28 6d 61 70 63 61 72 20 27 6d 61 er.(malyon-number.a).(mapcar.'ma
19ee0 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 72 65 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c lyon-number.rest))))..(defun.mal
19f00 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 67 20 28 61 20 62 29 0a 20 20 22 4a 75 6d 70 20 69 66 20 66 yon-opcode-jg.(a.b)..."Jump.if.f
19f20 69 72 73 74 20 6f 70 65 72 61 6e 64 20 3e 20 73 65 63 6f 6e 64 20 6f 70 65 72 61 6e 64 2e 22 0a irst.operand.>.second.operand.".
19f40 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 28 3e 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d ..(malyon-jump-if.(>.(malyon-num
19f60 62 65 72 20 61 29 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 62 29 29 29 29 0a 0a 28 64 65 ber.a).(malyon-number.b))))..(de
19f80 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 69 6e 20 28 63 68 69 6c 64 20 70 61 72 fun.malyon-opcode-jin.(child.par
19fa0 65 6e 74 29 0a 20 20 22 4a 75 6d 70 20 69 66 20 73 65 63 6f 6e 64 20 6f 62 6a 65 63 74 20 69 73 ent)..."Jump.if.second.object.is
19fc0 20 70 61 72 65 6e 74 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 2e 22 0a 20 20 20 20 28 .parent.of.the.first.one.".....(
19fe0 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 0a 20 20 20 20 20 28 3d 20 70 61 72 65 6e 74 20 28 6d malyon-jump-if......(=.parent.(m
1a000 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 72 65 61 64 2d 70 61 72 65 6e 74 20 28 6d 61 6c 79 6f 6e alyon-object-read-parent.(malyon
1a020 2d 6f 62 6a 65 63 74 2d 61 64 64 72 65 73 73 20 63 68 69 6c 64 29 29 29 29 29 0a 0a 28 64 65 66 -object-address.child)))))..(def
1a040 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 6c 20 28 61 20 62 29 0a 20 20 22 4a 75 6d un.malyon-opcode-jl.(a.b)..."Jum
1a060 70 20 69 66 20 66 69 72 73 74 20 6f 70 65 72 61 6e 64 20 3c 20 73 65 63 6f 6e 64 20 6f 70 65 72 p.if.first.operand.<.second.oper
1a080 61 6e 64 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 28 3c 20 28 6d 61 6c 79 and."...(malyon-jump-if.(<.(maly
1a0a0 6f 6e 2d 6e 75 6d 62 65 72 20 61 29 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 62 29 29 29 on-number.a).(malyon-number.b)))
1a0c0 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 75 6d 70 20 28 6f 66 )..(defun.malyon-opcode-jump.(of
1a0e0 66 73 65 74 29 0a 20 20 22 4a 75 6d 70 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 2e 22 0a fset)..."Jump.unconditionally.".
1a100 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 ..(setq.malyon-instruction-point
1a120 65 72 20 28 2b 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 er.(+.malyon-instruction-pointer
1a140 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a160 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 6f 66 66 73 65 74 29 20 2d 32 .......(malyon-number.offset).-2
1a180 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6a 7a 20 28 61 29 )))..(defun.malyon-opcode-jz.(a)
1a1a0 0a 20 20 22 4a 75 6d 70 20 69 66 20 6f 70 65 72 61 6e 64 20 3d 20 30 2e 22 0a 20 20 28 6d 61 6c ..."Jump.if.operand.=.0."...(mal
1a1c0 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 28 7a 65 72 6f 70 20 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 yon-jump-if.(zerop.a)))..(defun.
1a1e0 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 20 28 76 61 72 69 61 62 6c 65 29 0a 20 20 malyon-opcode-load.(variable)...
1a200 22 4c 6f 61 64 20 61 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f "Load.a.variable."...(malyon-sto
1a220 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 re-variable.(malyon-read-code-by
1a240 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 te)..........................(ma
1a260 6c 79 6f 6e 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 20 76 61 72 69 61 62 6c 65 29 29 29 0a 0a lyon-read-variable.variable)))..
1a280 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 62 20 28 61 72 72 61 (defun.malyon-opcode-loadb.(arra
1a2a0 79 20 69 6e 64 65 78 29 0a 20 20 22 4c 6f 61 64 20 61 6e 20 61 72 72 61 79 20 65 6c 65 6d 65 6e y.index)..."Load.an.array.elemen
1a2c0 74 20 69 6e 74 6f 20 61 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 t.into.a.variable."...(malyon-st
1a2e0 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 ore-variable.(malyon-read-code-b
1a300 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d yte)..........................(m
1a320 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 61 72 72 61 79 20 69 6e 64 65 78 29 29 alyon-read-byte.(+.array.index))
1a340 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6c 6f 61 64 77 20 28 ))..(defun.malyon-opcode-loadw.(
1a360 61 72 72 61 79 20 69 6e 64 65 78 29 0a 20 20 22 4c 6f 61 64 20 61 6e 20 61 72 72 61 79 20 65 6c array.index)..."Load.an.array.el
1a380 65 6d 65 6e 74 20 69 6e 74 6f 20 61 20 76 61 72 69 61 62 6c 65 2e 22 0a 20 20 28 6d 61 6c 79 6f ement.into.a.variable."...(malyo
1a3a0 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f n-store-variable.(malyon-read-co
1a3c0 64 65 2d 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de-byte)........................
1a3e0 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 61 72 72 61 79 20 28 2a 20 ..(malyon-read-word.(+.array.(*.
1a400 32 20 69 6e 64 65 78 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 2.index)))))..(defun.malyon-opco
1a420 64 65 2d 6c 6f 67 2d 73 68 69 66 74 20 28 76 61 6c 75 65 20 70 6c 61 63 65 73 29 0a 20 20 22 4c de-log-shift.(value.places)..."L
1a440 6f 67 69 63 61 6c 20 73 68 69 66 74 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 ogical.shift."...(malyon-store-v
1a460 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 ariable.(malyon-read-code-byte).
1a480 28 6c 73 68 20 76 61 6c 75 65 20 70 6c 61 63 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c (lsh.value.places)))..(defun.mal
1a4a0 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 6f 64 20 28 61 20 62 29 0a 20 20 22 4d 6f 64 75 6c 6f 2e 22 yon-opcode-mod.(a.b)..."Modulo."
1a4c0 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f ...(malyon-store-variable.(malyo
1a4e0 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-read-code-byte)...............
1a500 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 61 ...........(mod.(malyon-number.a
1a520 29 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 62 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d ).(malyon-number.b))))..(defun.m
1a540 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6d 75 6c 20 28 61 20 62 29 0a 20 20 22 4d 75 6c 74 69 70 alyon-opcode-mul.(a.b)..."Multip
1a560 6c 69 63 61 74 69 6f 6e 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 lication."...(malyon-store-varia
1a580 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 20 20 ble.(malyon-read-code-byte).....
1a5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 28 6d 61 6c 79 6f 6e 2d .....................(*.(malyon-
1a5c0 6e 75 6d 62 65 72 20 61 29 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 62 29 29 29 29 0a 0a number.a).(malyon-number.b))))..
1a5e0 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 65 77 2d 6c 69 6e 65 20 28 29 (defun.malyon-opcode-new-line.()
1a600 0a 20 20 22 50 72 69 6e 74 20 61 20 6e 65 77 6c 69 6e 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d ..."Print.a.newline."...(malyon-
1a620 6e 65 77 6c 69 6e 65 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d newline))..(defun.malyon-opcode-
1a640 6e 6f 70 20 28 26 72 65 73 74 20 69 67 6e 6f 72 65 29 0a 20 20 22 44 6f 20 6e 6f 74 68 69 6e 67 nop.(&rest.ignore)..."Do.nothing
1a660 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6e 6f 74 20 28 61 .")..(defun.malyon-opcode-not.(a
1a680 29 0a 20 20 22 42 69 74 77 69 73 65 20 6e 6f 74 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f )..."Bitwise.not."...(malyon-sto
1a6a0 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 re-variable.(malyon-read-code-by
1a6c0 74 65 29 20 28 6c 6f 67 61 6e 64 20 36 35 35 33 35 20 28 6c 6f 67 6e 6f 74 20 61 29 29 29 29 0a te).(logand.65535.(lognot.a)))).
1a6e0 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 6f 72 20 28 61 20 62 29 0a 20 .(defun.malyon-opcode-or.(a.b)..
1a700 20 22 42 69 74 77 69 73 65 20 6f 72 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 ."Bitwise.or."...(malyon-store-v
1a720 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 ariable.(malyon-read-code-byte).
1a740 28 6c 6f 67 69 6f 72 20 61 20 62 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 (logior.a.b)))..(defun.malyon-op
1a760 63 6f 64 65 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 20 28 73 74 72 65 61 6d 20 26 6f 70 74 69 code-output-stream.(stream.&opti
1a780 6f 6e 61 6c 20 74 61 62 6c 65 29 0a 20 20 22 53 65 6c 65 63 74 20 61 6e 20 6f 75 74 70 75 74 20 onal.table)..."Select.an.output.
1a7a0 73 74 72 65 61 6d 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 72 65 61 6d 20 28 6d 61 6c 79 6f 6e stream."...(let.((stream.(malyon
1a7c0 2d 6e 75 6d 62 65 72 20 73 74 72 65 61 6d 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 3c 20 -number.stream))).....(cond.((<.
1a7e0 30 20 73 74 72 65 61 6d 29 20 28 6d 61 6c 79 6f 6e 2d 61 64 64 2d 6f 75 74 70 75 74 2d 73 74 72 0.stream).(malyon-add-output-str
1a800 65 61 6d 20 73 74 72 65 61 6d 20 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 3e eam.stream.table))...........((>
1a820 20 30 20 73 74 72 65 61 6d 29 20 28 6d 61 6c 79 6f 6e 2d 72 65 6d 6f 76 65 2d 6f 75 74 70 75 74 .0.stream).(malyon-remove-output
1a840 2d 73 74 72 65 61 6d 20 28 2d 20 73 74 72 65 61 6d 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 -stream.(-.stream))))))..(defun.
1a860 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 69 72 61 63 79 20 28 29 0a 20 20 22 50 69 72 61 63 malyon-opcode-piracy.()..."Pirac
1a880 79 20 63 68 65 63 6b 2c 20 65 66 66 65 63 74 69 76 65 6c 79 20 61 6e 20 75 6e 63 6f 6e 64 69 74 y.check,.effectively.an.uncondit
1a8a0 69 6f 6e 61 6c 20 6a 75 6d 70 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 31 ional.jump."...(malyon-jump-if.1
1a8c0 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 6f 70 20 28 29 0a ))..(defun.malyon-opcode-pop.().
1a8e0 20 20 22 50 6f 70 20 61 20 76 61 6c 75 65 20 6f 66 66 20 74 68 65 20 73 74 61 63 6b 2e 22 0a 20 .."Pop.a.value.off.the.stack."..
1a900 20 28 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c .(malyon-pop-stack))..(defun.mal
1a920 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 20 28 29 0a 20 20 22 50 72 69 6e 74 20 61 20 73 yon-opcode-print.()..."Print.a.s
1a940 74 72 69 6e 67 2e 22 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 tring."...(setq.malyon-instructi
1a960 6f 6e 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 on-pointer.........(malyon-print
1a980 2d 74 65 78 74 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 -text.malyon-instruction-pointer
1a9a0 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d )))..(defun.malyon-opcode-print-
1a9c0 61 64 64 72 20 28 61 64 64 72 65 73 73 29 0a 20 20 22 50 72 69 6e 74 20 61 20 73 74 72 69 6e 67 addr.(address)..."Print.a.string
1a9e0 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 74 65 78 74 20 61 64 64 72 65 73 73 29 ."...(malyon-print-text.address)
1aa00 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 63 68 )..(defun.malyon-opcode-print-ch
1aa20 61 72 20 28 63 29 0a 20 20 22 50 72 69 6e 74 20 61 20 63 68 61 72 61 63 74 65 72 2e 22 0a 20 20 ar.(c)..."Print.a.character."...
1aa40 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 (malyon-print.(char-to-string.c)
1aa60 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 6e ))..(defun.malyon-opcode-print-n
1aa80 75 6d 20 28 6e 29 0a 20 20 22 50 72 69 6e 74 20 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 6d 61 um.(n)..."Print.a.number."...(ma
1aaa0 6c 79 6f 6e 2d 70 72 69 6e 74 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 6d 61 lyon-print.(number-to-string.(ma
1aac0 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e lyon-number.n))))..(defun.malyon
1aae0 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 6f 62 6a 20 28 6f 62 6a 29 0a 20 20 22 50 72 69 6e 74 -opcode-print-obj.(obj)..."Print
1ab00 20 74 68 65 20 73 68 6f 72 74 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 2e 22 0a .the.short.name.of.the.object.".
1ab20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 74 65 78 74 0a 20 20 20 28 2b 20 31 20 28 6d 61 ..(malyon-print-text....(+.1.(ma
1ab40 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 28 2b 20 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d lyon-read-word.(+.malyon-object-
1ab60 70 72 6f 70 65 72 74 79 2d 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 property-offset.................
1ab80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 .............(malyon-object-addr
1aba0 65 73 73 20 6f 62 6a 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 ess.obj))))))..(defun.malyon-opc
1abc0 6f 64 65 2d 70 72 69 6e 74 2d 70 61 64 64 72 20 28 61 64 64 72 65 73 73 29 0a 20 20 22 50 72 69 ode-print-paddr.(address)..."Pri
1abe0 6e 74 20 61 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 74 65 nt.a.string."...(malyon-print-te
1ac00 78 74 20 28 2a 20 6d 61 6c 79 6f 6e 2d 70 61 63 6b 65 64 2d 6d 75 6c 74 69 70 6c 69 65 72 20 61 xt.(*.malyon-packed-multiplier.a
1ac20 64 64 72 65 73 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d ddress)))..(defun.malyon-opcode-
1ac40 70 72 69 6e 74 2d 72 65 74 20 28 29 0a 20 20 22 50 72 69 6e 74 20 61 20 73 74 72 69 6e 67 2c 20 print-ret.()..."Print.a.string,.
1ac60 70 72 69 6e 74 20 61 20 6e 65 77 6c 69 6e 65 2c 20 72 65 74 75 72 6e 20 74 72 75 65 2f 31 2e 22 print.a.newline,.return.true/1."
1ac80 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e ...(setq.malyon-instruction-poin
1aca0 74 65 72 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 74 65 78 74 20 6d ter.........(malyon-print-text.m
1acc0 61 6c 79 6f 6e 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2d 70 6f 69 6e 74 65 72 29 29 0a 20 20 28 6d alyon-instruction-pointer))...(m
1ace0 61 6c 79 6f 6e 2d 6e 65 77 6c 69 6e 65 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 74 75 72 6e 20 alyon-newline)...(malyon-return.
1ad00 31 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 1))..(defun.malyon-opcode-print-
1ad20 74 61 62 6c 65 20 28 74 65 78 74 20 77 69 64 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 68 65 69 67 table.(text.width.&optional.heig
1ad40 68 74 20 73 6b 69 70 29 0a 20 20 22 50 72 69 6e 74 20 74 68 65 20 67 69 76 65 6e 20 74 61 62 6c ht.skip)..."Print.the.given.tabl
1ad60 65 2e 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 68 65 69 67 68 74 29 20 28 73 65 74 71 20 68 65 69 e."...(if.(not.height).(setq.hei
1ad80 67 68 74 20 31 29 29 0a 20 20 28 69 66 20 28 6e 6f 74 20 73 6b 69 70 29 20 20 20 28 73 65 74 71 ght.1))...(if.(not.skip)...(setq
1ada0 20 73 6b 69 70 20 30 29 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6c 75 6d 6e 20 20 28 63 75 72 72 .skip.0))...(let.((column..(curr
1adc0 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 72 65 73 73 20 74 65 ent-column)).........(address.te
1ade0 78 74 29 0a 20 20 20 20 20 20 20 20 28 79 20 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 xt).........(y.......0).........
1ae00 28 78 20 20 20 20 20 20 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 79 20 68 65 69 (x.......0)).....(while.(<.y.hei
1ae20 67 68 74 29 0a 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 79 29 0a 20 20 20 20 20 20 20 ght).......(if.(zerop.y)........
1ae40 20 20 20 27 28 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6e 65 77 6c 69 6e 65 29 0a ...'().........(malyon-newline).
1ae60 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 2d 63 68 61 72 61 63 74 65 72 73 ........(malyon-print-characters
1ae80 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 63 6f 6c 75 6d 6e 20 3f 20 29 29 29 0a 20 20 20 20 20 .(make-string.column.?.)))......
1aea0 20 28 73 65 74 71 20 78 20 30 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 78 20 77 69 .(setq.x.0).......(while.(<.x.wi
1aec0 64 74 68 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 75 74 70 75 74 2d 63 68 61 72 dth).........(malyon-output-char
1aee0 61 63 74 65 72 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 61 64 64 72 65 73 73 29 acter.(malyon-read-byte.address)
1af00 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 64 64 72 65 73 73 20 28 2b 20 31 20 61 64 64 ).........(setq.address.(+.1.add
1af20 72 65 73 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 78 20 28 2b 20 31 20 78 29 29 29 ress)).........(setq.x.(+.1.x)))
1af40 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 64 64 72 65 73 73 20 28 2b 20 73 6b 69 70 20 61 64 64 .......(setq.address.(+.skip.add
1af60 72 65 73 73 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 79 20 28 2b 20 31 20 79 29 29 29 29 29 ress)).......(setq.y.(+.1.y)))))
1af80 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 75 6e 69 ..(defun.malyon-opcode-print-uni
1afa0 63 6f 64 65 20 28 63 68 61 72 29 0a 20 20 22 50 72 69 6e 74 73 20 61 20 75 6e 69 63 6f 64 65 20 code.(char)..."Prints.a.unicode.
1afc0 63 68 61 72 61 63 74 65 72 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f character.")..(defun.malyon-opco
1afe0 64 65 2d 70 75 6c 6c 20 28 76 61 72 69 61 62 6c 65 29 0a 20 20 22 50 75 6c 6c 20 76 61 6c 75 65 de-pull.(variable)..."Pull.value
1b000 20 6f 66 66 20 73 74 61 63 6b 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 .off.stack."...(malyon-store-var
1b020 69 61 62 6c 65 20 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b iable.variable.(malyon-pop-stack
1b040 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 75 73 68 20 28 )))..(defun.malyon-opcode-push.(
1b060 76 61 6c 75 65 29 0a 20 20 22 50 75 73 68 20 76 61 6c 75 65 20 6f 6e 74 6f 20 73 74 61 63 6b 2e value)..."Push.value.onto.stack.
1b080 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 70 75 73 68 2d 73 74 61 63 6b 20 76 61 6c 75 65 29 29 0a 0a "...(malyon-push-stack.value))..
1b0a0 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 75 74 2d 70 72 6f 70 20 28 6f (defun.malyon-opcode-put-prop.(o
1b0c0 62 6a 65 63 74 20 70 72 6f 70 65 72 74 79 20 76 61 6c 75 65 29 0a 20 20 22 53 65 74 20 74 68 65 bject.property.value)..."Set.the
1b0e0 20 6f 62 6a 65 63 74 27 73 20 70 72 6f 70 65 72 74 79 20 74 6f 20 74 68 65 20 67 69 76 65 6e 20 .object's.property.to.the.given.
1b100 76 61 6c 75 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 61 64 64 72 65 73 73 20 28 6d 61 6c 79 6f value."...(let*.((address.(malyo
1b120 6e 2d 66 69 6e 64 2d 70 72 6f 70 65 72 74 79 20 6f 62 6a 65 63 74 20 70 72 6f 70 65 72 74 79 29 n-find-property.object.property)
1b140 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 7a 65 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 )..........(size....(malyon-read
1b160 2d 62 79 74 65 20 61 64 64 72 65 73 73 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 3d 20 61 -byte.address))).....(cond.((=.a
1b180 64 64 72 65 73 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 ddress.0)............(malyon-fat
1b1a0 61 6c 2d 65 72 72 6f 72 20 22 70 72 6f 70 65 72 74 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 al-error."property.does.not.exis
1b1c0 74 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3c 20 20 6d 61 6c 79 6f 6e t."))...........((and.(<..malyon
1b1e0 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 28 7a 65 72 6f 70 20 28 6c 73 68 20 73 69 -story-version.5).(zerop.(lsh.si
1b200 7a 65 20 2d 35 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 ze.-5)))............(malyon-stor
1b220 65 2d 62 79 74 65 20 28 2b 20 31 20 61 64 64 72 65 73 73 29 20 28 6c 6f 67 61 6e 64 20 32 35 35 e-byte.(+.1.address).(logand.255
1b240 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3e 3d 20 6d 61 .value)))...........((and.(>=.ma
1b260 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 28 7a 65 72 6f 70 20 28 6c 6f lyon-story-version.5).(zerop.(lo
1b280 67 61 6e 64 20 73 69 7a 65 20 31 39 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c gand.size.192)))............(mal
1b2a0 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 31 20 61 64 64 72 65 73 73 29 20 28 6c 6f yon-store-byte.(+.1.address).(lo
1b2c0 67 61 6e 64 20 32 35 35 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 gand.255.value)))...........(t..
1b2e0 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 28 2b 20 ..........(malyon-store-word.(+.
1b300 31 20 61 64 64 72 65 73 73 29 20 76 61 6c 75 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 1.address).value)))))..(defun.ma
1b320 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 71 75 69 74 20 28 29 0a 20 20 22 45 6e 64 20 74 68 65 20 67 lyon-opcode-quit.()..."End.the.g
1b340 61 6d 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 6a 75 ame.immediately."...(malyon-adju
1b360 73 74 2d 74 72 61 6e 73 63 72 69 70 74 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 63 6c 65 61 6e 75 70 st-transcript)...(malyon-cleanup
1b380 29 0a 20 20 28 74 68 72 6f 77 20 27 6d 61 6c 79 6f 6e 2d 65 6e 64 2d 6f 66 2d 69 6e 74 65 72 70 )...(throw.'malyon-end-of-interp
1b3a0 72 65 74 65 72 2d 6c 6f 6f 70 20 27 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 71 75 69 74 29 29 reter-loop.'malyon-opcode-quit))
1b3c0 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 61 6e 64 6f 6d 20 28 6c ..(defun.malyon-opcode-random.(l
1b3e0 69 6d 69 74 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 imit)..."Generate.a.random.numbe
1b400 72 20 6f 72 20 73 65 74 20 74 68 65 20 73 65 65 64 20 76 61 6c 75 65 2e 22 0a 20 20 28 6d 61 6c r.or.set.the.seed.value."...(mal
1b420 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d yon-store-variable.(malyon-read-
1b440 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 code-byte)......................
1b460 20 20 20 20 28 69 66 20 28 3e 3d 20 30 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 6c 69 6d ....(if.(>=.0.(malyon-number.lim
1b480 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 it))............................
1b4a0 20 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ..0............................(
1b4c0 2b 20 31 20 28 72 61 6e 64 6f 6d 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 6c 69 6d 69 74 +.1.(random.(malyon-number.limit
1b4e0 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 61 ))))))..(defun.malyon-opcode-rea
1b500 64 2d 63 68 61 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 65 76 69 63 65 20 26 72 65 73 74 20 69 d-char.(&optional.device.&rest.i
1b520 67 6e 6f 72 65 29 0a 20 20 22 52 65 61 64 20 61 20 63 68 61 72 61 63 74 65 72 2e 22 0a 20 20 28 gnore)..."Read.a.character."...(
1b540 69 66 20 28 61 6e 64 20 64 65 76 69 63 65 20 28 2f 3d 20 31 20 64 65 76 69 63 65 29 29 0a 20 20 if.(and.device.(/=.1.device))...
1b560 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 66 61 74 61 6c 2d 65 72 72 6f 72 20 22 69 6c 6c 65 67 61 6c ....(malyon-fatal-error."illegal
1b580 20 64 65 76 69 63 65 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 72 65 61 64 5f 63 68 61 72 2e 22 .device.specified.in.read_char."
1b5a0 29 29 0a 20 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 ))...(if.(eq.malyon-transcript-b
1b5c0 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 67 uffer.(current-buffer)).......(g
1b5e0 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 28 6d 65 73 73 61 67 oto-char.(point-max)))...(messag
1b600 65 20 22 5b 50 72 65 73 73 20 61 20 6b 65 79 2e 5d 22 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 6d 6f e."[Press.a.key.]")...(malyon-mo
1b620 72 65 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 63 68 61 72 29 0a 20 20 28 74 68 re.malyon-keymap-readchar)...(th
1b640 72 6f 77 20 27 6d 61 6c 79 6f 6e 2d 65 6e 64 2d 6f 66 2d 69 6e 74 65 72 70 72 65 74 65 72 2d 6c row.'malyon-end-of-interpreter-l
1b660 6f 6f 70 20 27 6d 61 6c 79 6f 6e 2d 77 61 69 74 69 6e 67 2d 66 6f 72 2d 63 68 61 72 61 63 74 65 oop.'malyon-waiting-for-characte
1b680 72 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 6d 6f 76 65 r))..(defun.malyon-opcode-remove
1b6a0 2d 6f 62 6a 20 28 6f 62 6a 65 63 74 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6e 20 6f 62 6a 65 63 -obj.(object)..."Remove.an.objec
1b6c0 74 20 66 72 6f 6d 20 69 74 73 20 70 61 72 65 6e 74 27 73 20 63 68 69 6c 64 72 65 6e 20 6c 69 73 t.from.its.parent's.children.lis
1b6e0 74 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 6d 6f 76 65 2d 6f 62 6a 65 63 74 20 6f 62 6a 65 t."...(malyon-remove-object.obje
1b700 63 74 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 73 74 61 ct))..(defun.malyon-opcode-resta
1b720 72 74 20 28 29 0a 20 20 22 52 65 73 74 61 72 74 20 74 68 65 20 67 61 6d 65 2e 22 0a 20 20 28 6d rt.()..."Restart.the.game."...(m
1b740 61 6c 79 6f 6e 2d 73 65 74 2d 67 61 6d 65 2d 73 74 61 74 65 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 alyon-set-game-state.malyon-game
1b760 2d 73 74 61 74 65 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d -state-restart))..(defun.malyon-
1b780 6f 70 63 6f 64 65 2d 72 65 73 74 6f 72 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 74 61 62 6c 65 20 opcode-restore.(&optional.table.
1b7a0 62 79 74 65 73 20 6e 61 6d 65 29 0a 20 20 22 52 65 73 74 6f 72 65 20 61 20 73 61 76 65 64 20 67 bytes.name)..."Restore.a.saved.g
1b7c0 61 6d 65 20 73 74 61 74 65 20 6f 72 20 61 20 73 65 63 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 ame.state.or.a.section.of.memory
1b7e0 20 66 72 6f 6d 20 61 20 66 69 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 .from.a.file."...(let.((result.(
1b800 69 66 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c if.name.....................(mal
1b820 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yon-restore-file................
1b840 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 67 65 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 61 6d 65 ......(malyon-get-file-name.name
1b860 29 20 74 61 62 6c 65 20 62 79 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).table.bytes)..................
1b880 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 6d 61 6c 79 6f 6e 2d 72 65 73 .(call-interactively.'malyon-res
1b8a0 74 6f 72 65 2d 66 69 6c 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d tore-file)))).....(if.(<.malyon-
1b8c0 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e story-version.5).........(malyon
1b8e0 2d 6a 75 6d 70 2d 69 66 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 72 65 73 75 6c 74 29 29 29 0a 20 -jump-if.(not.(zerop.result)))..
1b900 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c .....(malyon-store-variable.(mal
1b920 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 72 65 73 75 6c 74 29 29 29 29 0a 0a yon-read-code-byte).result))))..
1b940 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 73 74 6f 72 65 2d 75 6e 64 (defun.malyon-opcode-restore-und
1b960 6f 20 28 29 0a 20 20 22 52 65 73 74 6f 72 65 20 67 61 6d 65 20 73 74 61 74 65 20 66 6f 72 20 75 o.()..."Restore.game.state.for.u
1b980 6e 64 6f 2e 22 0a 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 75 6e ndo."...(if.malyon-game-state-un
1b9a0 64 6f 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 65 74 2d 67 61 6d 65 2d 73 74 61 74 65 20 do.......(malyon-set-game-state.
1b9c0 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 75 6e 64 6f 29 29 0a 20 20 28 6d 61 6c 79 malyon-game-state-undo))...(maly
1b9e0 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 on-store-variable.(malyon-read-c
1ba00 6f 64 65 2d 62 79 74 65 29 20 32 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 ode-byte).2))..(defun.malyon-opc
1ba20 6f 64 65 2d 72 65 74 20 28 76 61 6c 75 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 76 61 6c 75 ode-ret.(value)..."Return.a.valu
1ba40 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 74 75 72 6e 20 76 61 6c 75 65 29 29 0a 0a 28 64 e."...(malyon-return.value))..(d
1ba60 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 65 74 2d 70 6f 70 70 65 64 20 28 29 efun.malyon-opcode-ret-popped.()
1ba80 0a 20 20 22 52 65 74 75 72 6e 20 74 6f 70 20 6f 66 20 73 74 61 63 6b 2e 22 0a 20 20 28 6d 61 6c ..."Return.top.of.stack."...(mal
1baa0 79 6f 6e 2d 72 65 74 75 72 6e 20 28 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 29 29 0a yon-return.(malyon-pop-stack))).
1bac0 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 66 61 6c 73 65 20 28 29 0a .(defun.malyon-opcode-rfalse.().
1bae0 20 20 22 52 65 74 75 72 6e 20 66 61 6c 73 65 2f 30 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 .."Return.false/0."...(malyon-re
1bb00 74 75 72 6e 20 30 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 72 turn.0))..(defun.malyon-opcode-r
1bb20 74 72 75 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 72 75 65 2f 31 2e 22 0a 20 20 28 6d 61 true.()..."Return.true/1."...(ma
1bb40 6c 79 6f 6e 2d 72 65 74 75 72 6e 20 31 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f lyon-return.1))..(defun.malyon-o
1bb60 70 63 6f 64 65 2d 73 61 76 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 74 61 62 6c 65 20 62 79 74 65 pcode-save.(&optional.table.byte
1bb80 73 20 6e 61 6d 65 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 61 6d 65 s.name)..."Save.the.current.game
1bba0 20 73 74 61 74 65 20 6f 72 20 61 20 73 65 63 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 74 6f .state.or.a.section.of.memory.to
1bbc0 20 61 20 66 69 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 69 66 20 6e 61 .a.file."...(let.((result.(if.na
1bbe0 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 me.....................(malyon-s
1bc00 61 76 65 2d 66 69 6c 65 20 28 6d 61 6c 79 6f 6e 2d 67 65 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e ave-file.(malyon-get-file-name.n
1bc20 61 6d 65 29 20 74 61 62 6c 65 20 62 79 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame).table.bytes)...............
1bc40 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 6d 61 6c 79 6f 6e 2d ....(call-interactively.'malyon-
1bc60 73 61 76 65 2d 66 69 6c 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d save-file)))).....(if.(<.malyon-
1bc80 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e story-version.5).........(malyon
1bca0 2d 6a 75 6d 70 2d 69 66 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 72 65 73 75 6c 74 29 29 29 0a 20 -jump-if.(not.(zerop.result)))..
1bcc0 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c .....(malyon-store-variable.(mal
1bce0 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 72 65 73 75 6c 74 29 29 29 29 0a 0a yon-read-code-byte).result))))..
1bd00 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 61 76 65 2d 75 6e 64 6f 20 28 (defun.malyon-opcode-save-undo.(
1bd20 29 0a 20 20 22 53 61 76 65 20 67 61 6d 65 20 73 74 61 74 65 20 66 6f 72 20 75 6e 64 6f 2e 22 0a )..."Save.game.state.for.undo.".
1bd40 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 75 6e 64 6f 20 28 ..(setq.malyon-game-state-undo.(
1bd60 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e 74 2d 67 61 6d 65 2d 73 74 61 74 65 29 29 0a 20 20 28 6d malyon-current-game-state))...(m
1bd80 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f alyon-store-byte.(malyon-read-co
1bda0 64 65 2d 62 79 74 65 29 20 31 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f de-byte).1))..(defun.malyon-opco
1bdc0 64 65 2d 73 63 61 6e 2d 74 61 62 6c 65 20 28 78 20 74 61 62 6c 65 20 6c 65 6e 20 26 6f 70 74 69 de-scan-table.(x.table.len.&opti
1bde0 6f 6e 61 6c 20 66 6f 72 6d 29 0a 20 20 22 53 63 61 6e 20 74 68 65 20 67 69 76 65 6e 20 74 61 62 onal.form)..."Scan.the.given.tab
1be00 6c 65 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 6f 63 63 75 72 72 65 6e 63 65 20 6f 66 20 78 le.for.the.first.occurrence.of.x
1be20 2e 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 66 6f 72 6d 29 20 28 73 65 74 71 20 66 6f 72 6d 20 31 ."...(if.(not.form).(setq.form.1
1be40 33 30 29 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 63 20 28 6c 6f 67 61 6e 64 20 31 32 37 20 66 6f 30))...(let.((inc.(logand.127.fo
1be60 72 6d 29 29 0a 20 20 20 20 20 20 20 20 28 62 79 74 65 20 28 7a 65 72 6f 70 20 28 6c 6f 67 61 6e rm)).........(byte.(zerop.(logan
1be80 64 20 31 32 38 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 72 20 74 61 62 6c d.128.form))).........(addr.tabl
1bea0 65 29 0a 20 20 20 20 20 20 20 20 28 66 6f 75 6e 64 20 30 29 0a 20 20 20 20 20 20 20 20 28 69 6e e).........(found.0).........(in
1bec0 64 65 78 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 66 dex.0)).....(while.(and.(zerop.f
1bee0 6f 75 6e 64 29 20 28 3c 20 69 6e 64 65 78 20 6c 65 6e 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 ound).(<.index.len)).......(setq
1bf00 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 62 79 74 65 0a 20 20 20 20 .found.............(if.byte.....
1bf20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 78 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 ............(if.(=.x.(malyon-rea
1bf40 64 2d 62 79 74 65 20 61 64 64 72 29 29 20 61 64 64 72 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 d-byte.addr)).addr.0)...........
1bf60 20 20 20 20 28 69 66 20 28 3d 20 78 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 61 ....(if.(=.x.(malyon-read-word.a
1bf80 64 64 72 29 29 20 61 64 64 72 20 30 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 64 64 72 ddr)).addr.0))).......(setq.addr
1bfa0 20 28 2b 20 61 64 64 72 20 69 6e 63 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 64 65 78 .(+.addr.inc)).......(setq.index
1bfc0 20 28 2b 20 69 6e 64 65 78 20 31 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 .(+.index.1))).....(malyon-store
1bfe0 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 -variable.(malyon-read-code-byte
1c000 29 20 66 6f 75 6e 64 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 20 28 6e 6f ).found).....(malyon-jump-if.(no
1c020 74 20 28 7a 65 72 6f 70 20 66 6f 75 6e 64 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 t.(zerop.found)))))..(defun.maly
1c040 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 61 74 74 72 20 28 6f 62 6a 65 63 74 20 61 74 74 72 69 on-opcode-set-attr.(object.attri
1c060 62 75 74 65 29 0a 20 20 22 53 65 74 20 74 68 65 20 67 69 76 65 6e 20 61 74 74 72 69 62 75 74 65 bute)..."Set.the.given.attribute
1c080 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 6f 62 6a 65 63 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 .in.the.given.object."...(let.((
1c0a0 61 74 74 72 69 62 75 74 65 73 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a 65 63 74 2d 61 64 64 72 65 73 attributes.(malyon-object-addres
1c0c0 73 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 28 62 79 74 65 20 20 20 20 20 20 20 28 s.object)).........(byte.......(
1c0e0 6c 73 68 20 61 74 74 72 69 62 75 74 65 20 2d 33 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d lsh.attribute.-3))).....(malyon-
1c100 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 61 74 74 72 69 62 75 74 65 73 20 62 79 74 65 29 0a 20 store-byte.(+.attributes.byte)..
1c120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 67 69 6f 72 20 28 6d ......................(logior.(m
1c140 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 61 74 74 72 69 62 75 74 65 73 20 62 79 alyon-read-byte.(+.attributes.by
1c160 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te))............................
1c180 20 20 20 20 28 6c 73 68 20 31 32 38 20 28 2d 20 28 6c 6f 67 61 6e 64 20 61 74 74 72 69 62 75 74 ....(lsh.128.(-.(logand.attribut
1c1a0 65 20 37 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 e.7)))))))..(defun.malyon-opcode
1c1c0 2d 73 65 74 2d 63 6f 6c 6f 72 20 28 66 6f 72 65 67 72 6f 75 6e 64 20 62 61 63 6b 67 72 6f 75 6e -set-color.(foreground.backgroun
1c1e0 64 29 0a 20 20 22 53 65 74 73 20 74 68 65 20 66 6f 72 65 2d 20 61 6e 64 20 62 61 63 6b 67 72 6f d)..."Sets.the.fore-.and.backgro
1c200 75 6e 64 20 63 6f 6c 6f 72 73 20 69 65 2e 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 2e 22 29 0a 0a und.colors.ie..does.nothing.")..
1c220 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 75 72 73 6f 72 20 (defun.malyon-opcode-set-cursor.
1c240 28 26 6f 70 74 69 6f 6e 61 6c 20 6c 69 6e 65 20 63 6f 6c 75 6d 6e 29 0a 20 20 22 53 65 74 20 74 (&optional.line.column)..."Set.t
1c260 68 65 20 63 75 72 73 6f 72 2e 22 0a 20 20 28 69 66 20 28 65 71 20 6d 61 6c 79 6f 6e 2d 74 72 61 he.cursor."...(if.(eq.malyon-tra
1c280 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 nscript-buffer.(current-buffer))
1c2a0 0a 20 20 20 20 20 20 3b 3b 20 73 65 74 2d 63 75 72 73 6f 72 20 69 73 20 6e 6f 74 20 63 75 72 72 .......;;.set-cursor.is.not.curr
1c2c0 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 65 64 20 69 6e 20 74 68 65 20 74 72 61 6e 73 63 72 69 70 ently.supported.in.the.transcrip
1c2e0 74 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 3b 3b 20 49 74 20 6a 75 73 74 20 6a 75 6d 70 73 t.buffer........;;.It.just.jumps
1c300 20 74 6f 20 74 68 65 20 65 6e 64 2e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 .to.the.end........(goto-char.(p
1c320 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 3b 3b 20 57 65 27 72 65 20 73 65 74 74 69 6e 67 20 oint-max)).....;;.We're.setting.
1c340 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 73 74 61 74 75 73 20 62 75 66 66 65 the.position.in.the.status.buffe
1c360 72 0a 20 20 20 20 28 69 66 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 64 r.....(if.malyon-status-buffer-d
1c380 65 6c 61 79 65 64 2d 73 70 6c 69 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 elayed-split.........(progn.....
1c3a0 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f ......(malyon-split-buffer-windo
1c3c0 77 73 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 64 65 6c 61 79 65 64 2d ws.malyon-status-buffer-delayed-
1c3e0 73 70 6c 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 31 split)...........(other-window.1
1c400 29 29 29 0a 20 20 20 20 28 69 66 20 6c 69 6e 65 20 20 20 27 28 29 20 28 73 65 74 71 20 6c 69 6e ))).....(if.line...'().(setq.lin
1c420 65 20 20 20 28 63 6f 75 6e 74 2d 6c 69 6e 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f e...(count-lines.(point-min).(po
1c440 69 6e 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 63 6f 6c 75 6d 6e 20 27 28 29 20 28 73 65 74 71 int)))).....(if.column.'().(setq
1c460 20 63 6f 6c 75 6d 6e 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 0a 20 20 20 20 28 .column.(current-column))).....(
1c480 69 66 20 28 3e 20 6c 69 6e 65 20 6d 61 6c 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d if.(>.line.malyon-status-buffer-
1c4a0 6c 69 6e 65 73 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 lines).........(progn...........
1c4c0 28 6d 61 6c 79 6f 6e 2d 73 70 6c 69 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 73 20 6c 69 6e (malyon-split-buffer-windows.lin
1c4e0 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 31 29 29 29 0a e)...........(other-window.1))).
1c500 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
1c520 28 69 66 20 28 61 6e 64 20 28 3c 20 31 20 6c 69 6e 65 29 20 28 3c 3d 20 6c 69 6e 65 20 6d 61 6c (if.(and.(<.1.line).(<=.line.mal
1c540 79 6f 6e 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 2d 6c 69 6e 65 73 29 29 0a 20 20 20 20 20 20 yon-status-buffer-lines)).......
1c560 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 ..(forward-line.(1-.line))......
1c580 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 69 66 20 28 61 .(beginning-of-line)).....(if.(a
1c5a0 6e 64 20 28 3c 20 31 20 63 6f 6c 75 6d 6e 29 20 28 3c 3d 20 63 6f 6c 75 6d 6e 20 6d 61 6c 79 6f nd.(<.1.column).(<=.column.malyo
1c5c0 6e 2d 6d 61 78 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d n-max-column)).........(forward-
1c5e0 63 68 61 72 20 28 31 2d 20 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 char.(1-.column)).......(beginni
1c600 6e 67 2d 6f 66 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 ng-of-line)).....(setq.malyon-st
1c620 61 74 75 73 2d 62 75 66 66 65 72 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 0a 28 64 atus-buffer-point.(point))))..(d
1c640 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 66 6f 6e 74 20 28 66 6f 6e efun.malyon-opcode-set-font.(fon
1c660 74 29 0a 20 20 22 53 65 74 73 20 74 68 65 20 66 6f 6e 74 20 69 66 20 61 76 61 69 6c 61 62 6c 65 t)..."Sets.the.font.if.available
1c680 20 6f 72 20 30 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 .or.0.otherwise."...(malyon-stor
1c6a0 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 e-variable.(malyon-read-code-byt
1c6c0 65 29 20 30 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 e).0))..(defun.malyon-opcode-set
1c6e0 2d 74 65 78 74 2d 73 74 79 6c 65 20 28 73 74 79 6c 65 29 0a 20 20 22 53 65 74 20 74 68 65 20 74 -text-style.(style)..."Set.the.t
1c700 65 78 74 20 73 74 79 6c 65 2f 66 61 63 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 61 63 65 20 28 ext.style/face."...(let.((face.(
1c720 61 73 73 71 20 73 74 79 6c 65 20 6d 61 6c 79 6f 6e 2d 66 61 63 65 73 29 29 29 0a 20 20 20 20 28 assq.style.malyon-faces))).....(
1c740 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e 74 2d 66 61 63 65 20 28 69 66 20 66 61 63 setq.malyon-current-face.(if.fac
1c760 65 20 28 63 64 72 20 66 61 63 65 29 20 27 6d 61 6c 79 6f 6e 2d 66 61 63 65 2d 70 6c 61 69 6e 29 e.(cdr.face).'malyon-face-plain)
1c780 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 77 69 )))..(defun.malyon-opcode-set-wi
1c7a0 6e 64 6f 77 20 28 77 69 6e 64 6f 77 29 0a 20 20 22 53 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 ndow.(window)..."Set.the.current
1c7c0 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 73 74 6f 72 65 2d 77 69 6e 64 .window."...(malyon-restore-wind
1c7e0 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 0a 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e ow-configuration)...(setq.malyon
1c800 2d 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 20 77 69 6e 64 6f 77 29 0a 20 20 28 6d 61 6c 79 6f -current-window.window)...(malyo
1c820 6e 2d 75 70 64 61 74 65 2d 6f 75 74 70 75 74 2d 73 74 72 65 61 6d 73 29 0a 20 20 28 69 66 20 28 n-update-output-streams)...(if.(
1c840 7a 65 72 6f 70 20 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 65 71 zerop.window).......(if.(not.(eq
1c860 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 .malyon-transcript-buffer.(curre
1c880 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 74 68 65 72 2d 77 69 nt-buffer)))...........(other-wi
1c8a0 6e 64 6f 77 20 31 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 65 71 20 6d 61 6c 79 6f 6e ndow.1)).....(if.(not.(eq.malyon
1c8c0 2d 73 74 61 74 75 73 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 -status-buffer.(current-buffer))
1c8e0 29 0a 20 20 20 20 20 20 20 20 28 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 31 29 29 0a 20 20 20 20 ).........(other-window.1)).....
1c900 28 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 75 72 73 6f 72 20 31 20 31 29 29 29 (malyon-opcode-set-cursor.1.1)))
1c920 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 68 6f 77 2d 73 74 61 74 ..(defun.malyon-opcode-show-stat
1c940 75 73 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 74 68 65 20 73 74 61 74 75 73 20 6c 69 6e 65 us.()..."Display.the.status.line
1c960 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 6c 65 74 20 28 28 ."...(save-excursion.....(let.((
1c980 6d 61 6c 79 6f 6e 2d 63 75 72 72 65 6e 74 2d 66 61 63 65 20 27 6d 61 6c 79 6f 6e 2d 66 61 63 65 malyon-current-face.'malyon-face
1c9a0 2d 72 65 76 65 72 73 65 29 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d -reverse)).......(malyon-opcode-
1c9c0 73 70 6c 69 74 2d 77 69 6e 64 6f 77 20 31 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 split-window.1).......(malyon-re
1c9e0 73 74 6f 72 65 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 0a 20 20 20 20 store-window-configuration).....
1ca00 20 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 77 69 6e 64 6f 77 20 31 29 0a 20 ..(malyon-opcode-set-window.1)..
1ca20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 65 70 61 72 65 2d 73 74 61 74 75 73 2d 62 75 66 66 .....(malyon-prepare-status-buff
1ca40 65 72 20 31 29 0a 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 er.1).......(put-text-property.(
1ca60 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 27 66 61 63 65 20 27 6d 61 point-min).(point-max).'face.'ma
1ca80 6c 79 6f 6e 2d 66 61 63 65 2d 72 65 76 65 72 73 65 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e lyon-face-reverse).......(malyon
1caa0 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 75 72 73 6f 72 20 31 20 31 29 0a 20 20 20 20 20 20 28 6d -opcode-set-cursor.1.1).......(m
1cac0 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 70 72 69 6e 74 2d 6f 62 6a 20 28 6d 61 6c 79 6f 6e 2d 72 alyon-opcode-print-obj.(malyon-r
1cae0 65 61 64 2d 67 6c 6f 62 61 6c 2d 76 61 72 69 61 62 6c 65 20 30 29 29 0a 20 20 20 20 20 20 28 69 ead-global-variable.0)).......(i
1cb00 66 20 28 3c 3d 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 20 28 2d 20 28 63 75 72 72 65 f.(<=.(current-column).(-.(curre
1cb20 6e 74 2d 66 69 6c 6c 2d 63 6f 6c 75 6d 6e 29 20 31 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 nt-fill-column).10))...........(
1cb40 6c 65 74 2a 20 28 28 78 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 67 6c 6f 62 61 6c let*.((x.....(malyon-read-global
1cb60 2d 76 61 72 69 61 62 6c 65 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -variable.1))..................(
1cb80 79 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 67 6c 6f 62 61 6c 2d 76 61 72 69 61 62 y.....(malyon-read-global-variab
1cba0 6c 65 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 6f 75 72 73 20 28 le.2))..................(hours.(
1cbc0 69 66 20 28 3e 20 78 20 31 32 29 20 28 2d 20 78 20 31 32 29 20 78 29 29 0a 20 20 20 20 20 20 20 if.(>.x.12).(-.x.12).x))........
1cbe0 20 20 20 20 20 20 20 20 20 20 28 61 6d 70 6d 20 20 28 69 66 20 28 3e 20 78 20 31 32 29 20 22 50 ..........(ampm..(if.(>.x.12)."P
1cc00 4d 22 20 22 41 4d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 63 6f 72 M"."AM"))..................(scor
1cc20 65 20 28 66 6f 72 6d 61 74 20 22 25 34 64 2f 25 34 64 22 20 78 20 79 29 29 0a 20 20 20 20 20 20 e.(format."%4d/%4d".x.y)).......
1cc40 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 20 20 28 66 6f 72 6d 61 74 20 22 25 30 32 64 3a ...........(time..(format."%02d:
1cc60 25 30 32 64 25 73 22 20 68 6f 75 72 73 20 79 20 61 6d 70 6d 29 29 29 0a 20 20 20 20 20 20 20 20 %02d%s".hours.y.ampm))).........
1cc80 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 63 75 72 73 6f 72 20 31 20 ....(malyon-opcode-set-cursor.1.
1cca0 28 2d 20 28 63 75 72 72 65 6e 74 2d 66 69 6c 6c 2d 63 6f 6c 75 6d 6e 29 20 31 30 29 29 0a 20 20 (-.(current-fill-column).10))...
1ccc0 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 72 69 6e 74 20 28 69 66 20 6d 61 6c 79 ..........(malyon-print.(if.maly
1cce0 6f 6e 2d 73 63 6f 72 65 2d 67 61 6d 65 20 73 63 6f 72 65 20 74 69 6d 65 29 29 29 29 29 0a 20 20 on-score-game.score.time)))))...
1cd00 20 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 65 74 2d 77 69 6e 64 6f 77 20 30 29 0a 20 ..(malyon-opcode-set-window.0)..
1cd20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 6a 75 73 74 2d 74 72 61 6e 73 63 72 69 70 74 29 29 29 0a ...(malyon-adjust-transcript))).
1cd40 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 70 6c 69 74 2d 77 69 6e 64 .(defun.malyon-opcode-split-wind
1cd60 6f 77 20 28 73 69 7a 65 29 0a 20 20 22 53 70 6c 69 74 20 75 70 70 65 72 20 61 6e 64 20 6c 6f 77 ow.(size)..."Split.upper.and.low
1cd80 65 72 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 65 74 2d 77 69 6e 64 6f 77 er.window."...(malyon-set-window
1cda0 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 69 7a 65 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 -configuration.size))..(defun.ma
1cdc0 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 74 6f 72 65 20 28 76 61 72 69 61 62 6c 65 20 76 61 6c 75 lyon-opcode-store.(variable.valu
1cde0 65 29 0a 20 20 22 53 74 6f 72 65 20 61 20 76 61 6c 75 65 20 69 6e 20 61 20 76 61 72 69 61 62 6c e)..."Store.a.value.in.a.variabl
1ce00 65 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 76 61 72 e."...(malyon-store-variable.var
1ce20 69 61 62 6c 65 20 76 61 6c 75 65 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 iable.value))..(defun.malyon-opc
1ce40 6f 64 65 2d 73 74 6f 72 65 62 20 28 61 72 72 61 79 20 69 6e 64 65 78 20 76 61 6c 75 65 29 0a 20 ode-storeb.(array.index.value)..
1ce60 20 22 53 74 6f 72 65 20 61 20 76 61 6c 75 65 20 69 6e 20 61 6e 20 61 72 72 61 79 20 61 74 20 74 ."Store.a.value.in.an.array.at.t
1ce80 68 65 20 67 69 76 65 6e 20 69 6e 64 65 78 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 he.given.index."...(malyon-store
1cea0 2d 62 79 74 65 20 28 2b 20 61 72 72 61 79 20 69 6e 64 65 78 29 20 76 61 6c 75 65 29 29 0a 0a 28 -byte.(+.array.index).value))..(
1cec0 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 73 74 6f 72 65 77 20 28 61 72 72 61 defun.malyon-opcode-storew.(arra
1cee0 79 20 69 6e 64 65 78 20 76 61 6c 75 65 29 0a 20 20 22 53 74 6f 72 65 20 61 20 76 61 6c 75 65 20 y.index.value)..."Store.a.value.
1cf00 69 6e 20 61 6e 20 61 72 72 61 79 20 61 74 20 74 68 65 20 67 69 76 65 6e 20 69 6e 64 65 78 2e 22 in.an.array.at.the.given.index."
1cf20 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 28 2b 20 61 72 72 61 79 20 28 ...(malyon-store-word.(+.array.(
1cf40 2a 20 32 20 69 6e 64 65 78 29 29 20 76 61 6c 75 65 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 *.2.index)).value))..(defun.maly
1cf60 6f 6e 2d 6f 70 63 6f 64 65 2d 73 75 62 20 28 61 20 62 29 0a 20 20 22 53 75 62 74 72 61 63 74 69 on-opcode-sub.(a.b)..."Subtracti
1cf80 6f 6e 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d on."...(malyon-store-variable.(m
1cfa0 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 alyon-read-code-byte)...........
1cfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 ...............(-.(malyon-number
1cfe0 20 61 29 20 28 6d 61 6c 79 6f 6e 2d 6e 75 6d 62 65 72 20 62 29 29 29 29 0a 0a 28 64 65 66 75 6e .a).(malyon-number.b))))..(defun
1d000 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 65 73 74 20 28 62 69 74 6d 61 70 20 66 6c 61 67 .malyon-opcode-test.(bitmap.flag
1d020 73 29 0a 20 20 22 54 65 73 74 20 69 66 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 6c 61 67 73 20 61 s)..."Test.if.all.of.the.flags.a
1d040 72 65 20 73 65 74 20 69 6e 20 74 68 65 20 62 69 74 6d 61 70 2e 22 0a 20 20 28 6d 61 6c 79 6f 6e re.set.in.the.bitmap."...(malyon
1d060 2d 6a 75 6d 70 2d 69 66 20 28 3d 20 66 6c 61 67 73 20 28 6c 6f 67 61 6e 64 20 62 69 74 6d 61 70 -jump-if.(=.flags.(logand.bitmap
1d080 20 66 6c 61 67 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 .flags))))..(defun.malyon-opcode
1d0a0 2d 74 65 73 74 2d 61 74 74 72 20 28 6f 62 6a 65 63 74 20 61 74 74 72 69 62 75 74 65 29 0a 20 20 -test-attr.(object.attribute)...
1d0c0 22 4a 75 6d 70 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 61 74 74 "Jump.depending.on.the.given.att
1d0e0 72 69 62 75 74 65 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 6f 62 6a 65 63 74 2e 22 0a 20 20 28 ribute.in.the.given.object."...(
1d100 6d 61 6c 79 6f 6e 2d 6a 75 6d 70 2d 69 66 0a 20 20 20 28 2f 3d 20 30 20 28 6c 6f 67 61 6e 64 20 malyon-jump-if....(/=.0.(logand.
1d120 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 28 2b 20 28 6d 61 6c 79 6f 6e 2d 6f 62 6a (malyon-read-byte.(+.(malyon-obj
1d140 65 63 74 2d 61 64 64 72 65 73 73 20 6f 62 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ect-address.object).............
1d160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 73 68 20 61 ..........................(lsh.a
1d180 74 74 72 69 62 75 74 65 20 2d 33 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ttribute.-3)))..................
1d1a0 28 6c 73 68 20 31 32 38 20 28 2d 20 28 6c 6f 67 61 6e 64 20 61 74 74 72 69 62 75 74 65 20 37 29 (lsh.128.(-.(logand.attribute.7)
1d1c0 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 68 72 ))))))..(defun.malyon-opcode-thr
1d1e0 6f 77 20 28 76 61 6c 75 65 20 66 72 61 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 66 72 6f 6d 20 ow.(value.frame)..."Return.from.
1d200 74 68 65 20 67 69 76 65 6e 20 73 74 61 63 6b 20 66 72 61 6d 65 2e 22 0a 20 20 28 69 66 20 6d 61 the.given.stack.frame."...(if.ma
1d220 6c 79 6f 6e 2d 67 61 6d 65 2d 73 74 61 74 65 2d 71 75 65 74 7a 61 6c 0a 20 20 20 20 20 20 28 6c lyon-game-state-quetzal.......(l
1d240 65 74 20 28 28 69 64 20 28 6c 73 68 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 20 et.((id.(lsh.(aref.malyon-stack.
1d260 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 29 20 2d 38 29 29 29 0a 20 20 20 20 malyon-frame-pointer).-8))).....
1d280 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 66 72 61 6d 65 20 69 64 29 0a 20 20 20 20 20 20 20 ....(while.(/=.frame.id)........
1d2a0 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 6d 61 ...(setq.malyon-stack-pointer.ma
1d2c0 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d lyon-frame-pointer)...........(m
1d2e0 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 alyon-pop-stack)...........(setq
1d300 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 .malyon-frame-pointer...........
1d320 20 20 20 20 20 20 28 2d 20 6d 61 6c 79 6f 6e 2d 73 74 61 63 6b 2d 70 6f 69 6e 74 65 72 20 31 20 ......(-.malyon-stack-pointer.1.
1d340 28 6c 73 68 20 28 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 20 2d 38 29 29 29 0a 20 20 (lsh.(malyon-pop-stack).-8)))...
1d360 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 0a 20 20 20 20 20 ........(malyon-pop-stack)......
1d380 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 70 6f 70 2d 73 74 61 63 6b 29 0a 20 20 20 20 20 20 20 20 .....(malyon-pop-stack).........
1d3a0 20 20 28 73 65 74 71 20 69 64 20 28 6c 73 68 20 28 61 72 65 66 20 6d 61 6c 79 6f 6e 2d 73 74 61 ..(setq.id.(lsh.(aref.malyon-sta
1d3c0 63 6b 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 29 20 2d 38 29 29 29 29 0a ck.malyon-frame-pointer).-8)))).
1d3e0 20 20 20 20 28 73 65 74 71 20 6d 61 6c 79 6f 6e 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 20 66 ....(setq.malyon-frame-pointer.f
1d400 72 61 6d 65 29 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 74 75 72 6e 20 76 61 6c 75 65 29 29 0a rame))...(malyon-return.value)).
1d420 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 6f 6b 65 6e 69 73 65 20 28 .(defun.malyon-opcode-tokenise.(
1d440 74 65 78 74 20 70 61 72 73 65 20 26 6f 70 74 69 6f 6e 61 6c 20 64 69 63 74 20 66 6c 61 67 29 0a text.parse.&optional.dict.flag).
1d460 20 20 22 50 65 72 66 6f 72 6d 20 6c 65 78 69 63 61 6c 20 61 6e 61 6c 79 73 69 73 20 6f 6e 20 74 .."Perform.lexical.analysis.on.t
1d480 68 65 20 74 65 78 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 77 6f 72 64 73 he.text.buffer."...(let*.((words
1d4a0 20 28 6d 61 6c 79 6f 6e 2d 74 65 78 74 2d 74 6f 2d 77 6f 72 64 73 20 74 65 78 74 20 64 69 63 74 .(malyon-text-to-words.text.dict
1d4c0 29 29 0a 09 20 28 77 6f 72 64 20 20 28 63 61 72 20 20 20 20 20 20 20 20 20 20 20 77 6f 72 64 73 ))...(word..(car...........words
1d4e0 29 29 0a 09 20 28 73 74 61 72 74 20 28 63 61 72 20 20 20 20 20 20 20 20 20 20 20 77 6f 72 64 29 ))...(start.(car...........word)
1d500 29 0a 09 20 28 6c 65 6e 20 20 20 28 63 61 64 72 20 20 20 77 6f 72 64 29 29 0a 09 20 28 63 6f 64 )...(len...(cadr...word))...(cod
1d520 65 20 20 28 63 6c 2d 63 61 64 64 72 20 20 77 6f 72 64 29 29 0a 09 20 28 65 6e 74 72 79 20 28 6d e..(cl-caddr..word))...(entry.(m
1d540 61 6c 79 6f 6e 2d 6c 6f 6f 6b 75 70 20 64 69 63 74 20 63 6f 64 65 29 29 0a 09 20 28 69 20 20 20 alyon-lookup.dict.code))...(i...
1d560 20 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 6f 72 20 28 6e 75 6c 6c 20 ..0)).....(while.(not.(or.(null.
1d580 77 6f 72 64 73 29 20 28 3d 20 69 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 79 74 65 20 70 61 words).(=.i.(malyon-read-byte.pa
1d5a0 72 73 65 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 65 6e rse)))).......(if.(and.(zerop.en
1d5c0 74 72 79 29 20 66 6c 61 67 20 28 2f 3d 20 30 20 66 6c 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 try).flag.(/=.0.flag))..........
1d5e0 20 27 28 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 77 6f 72 64 20 .'().........(malyon-store-word.
1d600 28 2b 20 32 20 70 61 72 73 65 20 28 2a 20 34 20 69 29 29 20 65 6e 74 72 79 29 0a 20 20 20 20 20 (+.2.parse.(*.4.i)).entry)......
1d620 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 34 20 70 61 72 73 65 ...(malyon-store-byte.(+.4.parse
1d640 20 28 2a 20 34 20 69 29 29 20 6c 65 6e 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 .(*.4.i)).len).........(malyon-s
1d660 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 35 20 70 61 72 73 65 20 28 2a 20 34 20 69 29 29 20 73 74 tore-byte.(+.5.parse.(*.4.i)).st
1d680 61 72 74 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 77 6f 72 64 73 20 28 63 64 72 20 20 20 20 art)).......(setq.words.(cdr....
1d6a0 20 20 20 20 20 20 20 77 6f 72 64 73 29 0a 09 20 20 20 20 77 6f 72 64 20 20 28 63 61 72 20 20 20 .......words)......word..(car...
1d6c0 20 20 20 20 20 20 20 20 77 6f 72 64 73 29 0a 09 20 20 20 20 73 74 61 72 74 20 28 63 61 72 20 20 ........words)......start.(car..
1d6e0 20 20 20 20 20 20 20 20 20 77 6f 72 64 29 0a 09 20 20 20 20 6c 65 6e 20 20 20 28 63 61 64 72 20 .........word)......len...(cadr.
1d700 20 20 77 6f 72 64 29 0a 09 20 20 20 20 63 6f 64 65 20 20 28 63 6c 2d 63 61 64 64 72 20 20 77 6f ..word)......code..(cl-caddr..wo
1d720 72 64 29 0a 09 20 20 20 20 65 6e 74 72 79 20 28 6d 61 6c 79 6f 6e 2d 6c 6f 6f 6b 75 70 20 64 69 rd)......entry.(malyon-lookup.di
1d740 63 74 20 63 6f 64 65 29 0a 09 20 20 20 20 69 20 20 20 20 20 28 2b 20 31 20 69 29 29 29 0a 20 20 ct.code)......i.....(+.1.i)))...
1d760 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 31 20 70 61 72 73 65 29 ..(malyon-store-byte.(+.1.parse)
1d780 20 69 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 76 65 72 69 .i)))..(defun.malyon-opcode-veri
1d7a0 66 79 20 28 29 0a 20 20 22 56 65 72 69 66 79 20 74 68 65 20 63 6f 72 72 65 63 74 6e 65 73 73 20 fy.()..."Verify.the.correctness.
1d7c0 6f 66 20 74 68 65 20 73 74 6f 72 79 20 66 69 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 6e of.the.story.file."...(let.((len
1d7e0 67 74 68 20 28 2b 20 31 20 28 2a 20 6d 61 6c 79 6f 6e 2d 70 61 63 6b 65 64 2d 6d 75 6c 74 69 70 gth.(+.1.(*.malyon-packed-multip
1d800 6c 69 65 72 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 36 29 29 29 29 0a 20 20 lier.(malyon-read-word.26))))...
1d820 20 20 20 20 20 20 28 73 75 6d 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 28 69 20 20 20 20 20 ......(sum....0).........(i.....
1d840 20 36 34 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 6c 65 6e 67 74 68 29 0a 20 20 .64)).....(while.(<.i.length)...
1d860 20 20 20 20 28 73 65 74 71 20 73 75 6d 20 28 6d 6f 64 20 28 2b 20 73 75 6d 20 28 6d 61 6c 79 6f ....(setq.sum.(mod.(+.sum.(malyo
1d880 6e 2d 72 65 61 64 2d 62 79 74 65 20 69 29 29 20 36 35 35 33 36 29 0a 20 20 20 20 20 20 20 20 20 n-read-byte.i)).65536)..........
1d8a0 20 20 20 69 20 20 20 28 2b 20 31 20 69 29 29 29 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6a 75 6d ...i...(+.1.i))).....(malyon-jum
1d8c0 70 2d 69 66 20 28 3d 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 77 6f 72 64 20 32 38 29 20 73 75 p-if.(=.(malyon-read-word.28).su
1d8e0 6d 29 29 29 29 0a 0a 3b 3b 20 6b 65 79 6d 61 70 20 75 74 69 6c 69 74 69 65 73 0a 0a 28 64 65 66 m))))..;;.keymap.utilities..(def
1d900 75 6e 20 6d 61 6c 79 6f 6e 2d 65 6e 64 2d 69 6e 70 75 74 20 28 29 0a 20 20 22 53 74 6f 72 65 20 un.malyon-end-input.()..."Store.
1d920 74 68 65 20 69 6e 70 75 74 20 6c 69 6e 65 20 69 6e 20 61 20 74 65 78 74 20 62 75 66 66 65 72 20 the.input.line.in.a.text.buffer.
1d940 61 6e 64 20 70 65 72 66 6f 72 6d 20 6c 65 78 69 63 61 6c 20 61 6e 61 6c 79 73 69 73 2e 22 0a 20 and.perform.lexical.analysis."..
1d960 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 68 69 64 65 2d 69 6e .(interactive)...(malyon-hide-in
1d980 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 20 22 75 6e 73 70 65 63 69 66 69 65 64 20 69 6e 74 65 72 ternal-errors."unspecified.inter
1d9a0 6e 61 6c 20 72 75 6e 74 69 6d 65 20 65 72 72 6f 72 2e 22 0a 20 20 20 20 28 70 72 6f 67 6e 0a 20 nal.runtime.error.".....(progn..
1d9c0 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 6a 75 73 74 2d 74 72 61 6e 73 63 72 69 70 74 29 0a .....(malyon-adjust-transcript).
1d9e0 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 74 ......(switch-to-buffer.malyon-t
1da00 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 ranscript-buffer).......(goto-ch
1da20 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 69 6e ar.(point-max)).......(let*.((in
1da40 70 75 74 20 28 64 6f 77 6e 63 61 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 put.(downcase...................
1da60 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 ...(buffer-substring-no-properti
1da80 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 es.......................(if.(<.
1daa0 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 malyon-aread-beginning-of-line.(
1dac0 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 point)).........................
1dae0 20 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 ..malyon-aread-beginning-of-line
1db00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 .........................(point)
1db20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 ).......................(point))
1db40 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 20 20 28 73 74 72 69 6e 67 2d 74 6f ))..............(vec..(string-to
1db60 2d 76 65 63 74 6f 72 20 69 6e 70 75 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 -vector.input))..............(te
1db80 78 74 20 28 61 70 70 6c 79 20 27 76 65 63 74 6f 72 20 28 6d 61 70 63 61 72 20 27 6d 61 6c 79 6f xt.(apply.'vector.(mapcar.'malyo
1dba0 6e 2d 75 6e 69 63 6f 64 65 2d 74 6f 2d 7a 73 63 69 69 20 76 65 63 29 29 29 0a 20 20 20 20 20 20 n-unicode-to-zscii.vec))).......
1dbc0 20 20 20 20 20 20 20 28 6c 65 6e 20 20 28 6d 69 6e 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 62 .......(len..(min.(malyon-read-b
1dbe0 79 74 65 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 74 65 78 74 29 20 28 6c 65 6e 67 74 68 20 74 yte.malyon-aread-text).(length.t
1dc00 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 20 20 20 20 30 29 29 0a 20 20 ext)))..............(i....0))...
1dc20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 69 6e 73 65 72 74 20 69 6e 70 ......(malyon-history-insert.inp
1dc40 75 74 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 ut).........(if.(>=.malyon-story
1dc60 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d -version.5).............(malyon-
1dc80 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 74 65 78 74 20 store-byte.(+.malyon-aread-text.
1dca0 31 29 20 6c 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 6c 65 6e 1).len)).........(while.(<.i.len
1dcc0 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 0a 20 )...........(malyon-store-byte..
1dce0 20 20 20 20 20 20 20 20 20 20 28 2b 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 74 65 78 74 20 28 ..........(+.malyon-aread-text.(
1dd00 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 20 31 20 if.(<.malyon-story-version.5).1.
1dd20 32 29 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 74 6f 2).i)............(malyon-char-to
1dd40 2d 69 6e 74 20 28 61 72 65 66 20 74 65 78 74 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 -int.(aref.text.i)))...........(
1dd60 73 65 74 71 20 69 20 28 2b 20 31 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 setq.i.(+.1.i))).........(if.(<.
1dd80 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 20 20 20 malyon-story-version.5).........
1dda0 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 62 79 74 65 20 28 2b 20 6d 61 6c 79 6f 6e ....(malyon-store-byte.(+.malyon
1ddc0 2d 61 72 65 61 64 2d 74 65 78 74 20 31 20 6c 65 6e 29 20 30 29 29 29 0a 20 20 20 20 20 20 28 69 -aread-text.1.len).0))).......(i
1dde0 66 20 28 2f 3d 20 30 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 70 61 72 73 65 29 0a 20 20 20 20 f.(/=.0.malyon-aread-parse).....
1de00 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 6f 70 63 6f 64 65 2d 74 6f 6b 65 6e 69 73 65 20 6d 61 ......(malyon-opcode-tokenise.ma
1de20 6c 79 6f 6e 2d 61 72 65 61 64 2d 74 65 78 74 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 70 61 72 lyon-aread-text.malyon-aread-par
1de40 73 65 29 29 0a 20 20 20 20 20 20 28 6e 65 77 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 69 66 20 28 se)).......(newline).......(if.(
1de60 3e 3d 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 76 65 72 73 69 6f 6e 20 35 29 0a 20 20 20 20 20 >=.malyon-story-version.5)......
1de80 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 6c 65 20 28 6d 61 6c .....(malyon-store-variable.(mal
1dea0 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 29 20 31 30 29 29 0a 20 20 20 20 20 20 28 yon-read-code-byte).10)).......(
1dec0 6d 61 6c 79 6f 6e 2d 69 6e 74 65 72 70 72 65 74 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d malyon-interpreter))))..(defun.m
1dee0 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 63 68 61 72 20 28 29 0a 20 20 22 50 61 67 65 20 64 6f 77 6e 20 alyon-more-char.()..."Page.down.
1df00 69 6e 20 4d 6f 72 65 20 6d 6f 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 in.More.mode."...(interactive)..
1df20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 73 63 72 6f .(condition-case.nil.......(scro
1df40 6c 6c 2d 75 70 29 0a 20 20 20 20 28 65 72 72 6f 72 29 29 0a 20 20 28 69 66 20 28 3e 3d 20 28 63 ll-up).....(error))...(if.(>=.(c
1df60 6f 75 6e 74 2d 6c 69 6e 65 73 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a ount-lines.(point).(point-max)).
1df80 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 77 69 6e 64 6f 77 2d 64 69 73 70 6c 61 79 ..........(malyon-window-display
1dfa0 65 64 2d 68 65 69 67 68 74 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 5b 4d 6f 72 ed-height)).......(message."[Mor
1dfc0 65 5d 22 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 e]").....(goto-char.(point-max))
1dfe0 0a 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 6a 75 73 74 2d 74 72 61 6e 73 63 72 69 70 74 29 0a .....(malyon-adjust-transcript).
1e000 20 20 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 63 ....(use-local-map.malyon-more-c
1e020 6f 6e 74 69 6e 75 65 2d 6b 65 79 6d 61 70 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e ontinue-keymap)))..(defun.malyon
1e040 2d 6d 6f 72 65 2d 63 68 61 72 2d 73 74 61 74 75 73 20 28 29 0a 20 20 22 57 61 69 74 20 66 6f 72 -more-char-status.()..."Wait.for
1e060 20 61 20 6b 65 79 20 74 68 65 6e 20 63 6f 6e 74 69 6e 75 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 .a.key.then.continue."...(intera
1e080 63 74 69 76 65 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d 68 69 64 65 2d 69 6e 74 65 72 6e 61 6c 2d 65 ctive)...(malyon-hide-internal-e
1e0a0 72 72 6f 72 73 20 22 75 6e 73 70 65 63 69 66 69 65 64 20 69 6e 74 65 72 6e 61 6c 20 72 75 6e 74 rrors."unspecified.internal.runt
1e0c0 69 6d 65 20 65 72 72 6f 72 2e 22 0a 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6d 61 ime.error.".....(progn.......(ma
1e0e0 6c 79 6f 6e 2d 61 64 6a 75 73 74 2d 74 72 61 6e 73 63 72 69 70 74 29 0a 20 20 20 20 20 20 28 75 lyon-adjust-transcript).......(u
1e100 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 6d 61 6c 79 6f 6e 2d 6d 6f 72 65 2d 63 6f 6e 74 69 6e 75 se-local-map.malyon-more-continu
1e120 65 2d 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 69 6e 74 65 72 70 72 65 e-keymap).......(malyon-interpre
1e140 74 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 77 61 69 74 2d 63 68 61 72 ter))))..(defun.malyon-wait-char
1e160 20 28 29 0a 20 20 22 53 74 6f 72 65 20 74 68 65 20 69 6e 70 75 74 20 63 68 61 72 61 63 74 65 72 .()..."Store.the.input.character
1e180 20 69 6e 20 61 20 76 61 72 69 61 62 6c 65 20 61 6e 64 20 72 65 73 75 6d 65 20 65 78 65 63 75 74 .in.a.variable.and.resume.execut
1e1a0 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6d 61 6c 79 6f 6e 2d ion."...(interactive)...(malyon-
1e1c0 68 69 64 65 2d 69 6e 74 65 72 6e 61 6c 2d 65 72 72 6f 72 73 20 22 75 6e 73 70 65 63 69 66 69 65 hide-internal-errors."unspecifie
1e1e0 64 20 69 6e 74 65 72 6e 61 6c 20 72 75 6e 74 69 6d 65 20 65 72 72 6f 72 2e 22 0a 20 20 20 20 28 d.internal.runtime.error.".....(
1e200 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 73 74 6f 72 65 2d 76 61 72 69 61 62 progn.......(malyon-store-variab
1e220 6c 65 0a 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 72 65 61 64 2d 63 6f 64 65 2d 62 79 74 65 le........(malyon-read-code-byte
1e240 29 0a 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 74 6f 2d 69 6e 74 20 28 6d 61 )........(malyon-char-to-int.(ma
1e260 6c 79 6f 6e 2d 75 6e 69 63 6f 64 65 2d 74 6f 2d 7a 73 63 69 69 20 6c 61 73 74 2d 63 6f 6d 6d 61 lyon-unicode-to-zscii.last-comma
1e280 6e 64 2d 65 76 65 6e 74 29 29 29 0a 20 20 20 20 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 nd-event))).......(use-local-map
1e2a0 20 6d 61 6c 79 6f 6e 2d 6b 65 79 6d 61 70 2d 72 65 61 64 29 0a 20 20 20 20 20 20 28 6d 61 6c 79 .malyon-keymap-read).......(maly
1e2c0 6f 6e 2d 69 6e 74 65 72 70 72 65 74 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f on-interpreter))))..(defun.malyo
1e2e0 6e 2d 68 69 73 74 6f 72 79 2d 70 72 65 76 69 6f 75 73 2d 63 68 61 72 20 28 61 72 67 29 0a 20 20 n-history-previous-char.(arg)...
1e300 22 44 69 73 70 6c 61 79 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 69 74 65 6d 20 69 6e 20 74 68 "Display.the.previous.item.in.th
1e320 65 20 69 6e 70 75 74 20 68 69 73 74 6f 72 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 e.input.history."...(interactive
1e340 20 22 70 22 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 70 75 74 20 28 6d 61 6c 79 6f 6e 2d 68 69 73 ."p")...(let.((input.(malyon-his
1e360 74 6f 72 79 2d 70 72 65 76 69 6f 75 73 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 3e 20 6d tory-previous))).....(cond.((>.m
1e380 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 alyon-aread-beginning-of-line.(p
1e3a0 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6d 61 6c 79 6f oint))............(funcall.malyo
1e3c0 6e 2d 68 69 73 74 6f 72 79 2d 73 61 76 65 64 2d 75 70 20 61 72 67 29 29 0a 20 20 20 20 20 20 20 n-history-saved-up.arg))........
1e3e0 20 20 20 28 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 ...(input............(with-curre
1e400 6e 74 2d 62 75 66 66 65 72 20 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 nt-buffer.malyon-transcript-buff
1e420 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 6d er..............(delete-region.m
1e440 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 alyon-aread-beginning-of-line.(p
1e460 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 oint-max)))............(goto-cha
1e480 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 r.(point-max))............(inser
1e4a0 74 20 69 6e 70 75 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 6a 75 t.input)............(malyon-adju
1e4c0 73 74 2d 74 72 61 6e 73 63 72 69 70 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f st-transcript)))))..(defun.malyo
1e4e0 6e 2d 68 69 73 74 6f 72 79 2d 6e 65 78 74 2d 63 68 61 72 20 28 61 72 67 29 0a 20 20 22 44 69 73 n-history-next-char.(arg)..."Dis
1e500 70 6c 61 79 20 74 68 65 20 6e 65 78 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 69 6e 70 75 74 20 play.the.next.item.in.the.input.
1e520 68 69 73 74 6f 72 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 history."...(interactive."p")...
1e540 28 6c 65 74 20 28 28 69 6e 70 75 74 20 28 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 6e 65 78 (let.((input.(malyon-history-nex
1e560 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 3e 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d t))).....(cond.((>.malyon-aread-
1e580 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 beginning-of-line.(point))......
1e5a0 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6d 61 6c 79 6f 6e 2d 68 69 73 74 6f 72 79 2d 73 61 ......(funcall.malyon-history-sa
1e5c0 76 65 64 2d 64 6f 77 6e 20 61 72 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 70 75 74 0a ved-down.arg))...........(input.
1e5e0 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 ...........(with-current-buffer.
1e600 6d 61 6c 79 6f 6e 2d 74 72 61 6e 73 63 72 69 70 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 malyon-transcript-buffer........
1e620 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 ......(delete-region.malyon-area
1e640 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 d-beginning-of-line.(point-max))
1e660 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d )............(goto-char.(point-m
1e680 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 69 6e 70 75 74 29 0a 20 ax))............(insert.input)..
1e6a0 20 20 20 20 20 20 20 20 20 20 28 6d 61 6c 79 6f 6e 2d 61 64 6a 75 73 74 2d 74 72 61 6e 73 63 72 ..........(malyon-adjust-transcr
1e6c0 69 70 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 62 65 67 69 6e 6e 69 6e ipt)))))..(defun.malyon-beginnin
1e6e0 67 2d 6f 66 2d 6c 69 6e 65 20 28 61 72 67 29 0a 20 20 22 47 6f 20 74 6f 20 74 68 65 20 62 65 67 g-of-line.(arg)..."Go.to.the.beg
1e700 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 inning.of.the.line."...(interact
1e720 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 3e 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 ive."p")...(if.(>.malyon-aread-b
1e740 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 eginning-of-line.(point)).......
1e760 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 (beginning-of-line).....(goto-ch
1e780 61 72 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e ar.malyon-aread-beginning-of-lin
1e7a0 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6b 69 6c 6c 2d 72 65 67 69 6f 6e 20 e)))..(defun.malyon-kill-region.
1e7c0 28 61 72 67 29 0a 20 20 22 4b 69 6c 6c 20 72 65 67 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 (arg)..."Kill.region."...(intera
1e7e0 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 3c 3d 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 ctive."p")...(if.(<=.malyon-area
1e800 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 d-beginning-of-line.(point))....
1e820 20 20 20 28 6b 69 6c 6c 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 6d 61 72 6b 29 29 0a ...(kill-region.(point).(mark)).
1e840 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 45 64 69 74 69 6e 67 20 69 73 20 72 65 73 74 72 69 63 ....(message."Editing.is.restric
1e860 74 65 64 20 74 6f 20 74 68 65 20 69 6e 70 75 74 20 70 72 6f 6d 70 74 2e 22 29 29 29 0a 0a 28 64 ted.to.the.input.prompt.")))..(d
1e880 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 6b 69 6c 6c 2d 6c 69 6e 65 20 28 61 72 67 29 0a 20 20 22 4b efun.malyon-kill-line.(arg)..."K
1e8a0 69 6c 6c 20 72 65 73 74 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 ill.rest.of.the.current.line."..
1e8c0 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 3c 3d 20 6d 61 6c .(interactive."p")...(if.(<=.mal
1e8e0 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 yon-aread-beginning-of-line.(poi
1e900 6e 74 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 6c 69 6e 65 29 0a 20 20 20 20 28 6d 65 73 73 nt)).......(kill-line).....(mess
1e920 61 67 65 20 22 45 64 69 74 69 6e 67 20 69 73 20 72 65 73 74 72 69 63 74 65 64 20 74 6f 20 74 68 age."Editing.is.restricted.to.th
1e940 65 20 69 6e 70 75 74 20 70 72 6f 6d 70 74 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 e.input.prompt.")))..(defun.maly
1e960 6f 6e 2d 6b 69 6c 6c 2d 77 6f 72 64 20 28 61 72 67 29 0a 20 20 22 4b 69 6c 6c 20 74 68 65 20 63 on-kill-word.(arg)..."Kill.the.c
1e980 75 72 72 65 6e 74 20 77 6f 72 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 urrent.word."...(interactive."p"
1e9a0 29 0a 20 20 28 69 66 20 28 3c 3d 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 )...(if.(<=.malyon-aread-beginni
1e9c0 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d ng-of-line.(point)).......(kill-
1e9e0 77 6f 72 64 20 31 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 45 64 69 74 69 6e 67 20 69 73 word.1).....(message."Editing.is
1ea00 20 72 65 73 74 72 69 63 74 65 64 20 74 6f 20 74 68 65 20 69 6e 70 75 74 20 70 72 6f 6d 70 74 2e .restricted.to.the.input.prompt.
1ea20 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 79 61 6e 6b 20 28 61 72 67 29 0a 20 ")))..(defun.malyon-yank.(arg)..
1ea40 20 22 59 61 6e 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 ."Yank."...(interactive."p")...(
1ea60 69 66 20 28 3c 3d 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 if.(<=.malyon-aread-beginning-of
1ea80 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 79 61 6e 6b 29 0a 20 20 20 20 -line.(point)).......(yank).....
1eaa0 28 6d 65 73 73 61 67 65 20 22 45 64 69 74 69 6e 67 20 69 73 20 72 65 73 74 72 69 63 74 65 64 20 (message."Editing.is.restricted.
1eac0 74 6f 20 74 68 65 20 69 6e 70 75 74 20 70 72 6f 6d 70 74 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e to.the.input.prompt.")))..(defun
1eae0 20 6d 61 6c 79 6f 6e 2d 79 61 6e 6b 2d 70 6f 70 20 28 61 72 67 29 0a 20 20 22 59 61 6e 6b 20 70 .malyon-yank-pop.(arg)..."Yank.p
1eb00 6f 70 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 op."...(interactive."p")...(if.(
1eb20 3c 3d 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e <=.malyon-aread-beginning-of-lin
1eb40 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 79 61 6e 6b 2d 70 6f 70 20 31 29 0a 20 20 e.(point)).......(yank-pop.1)...
1eb60 20 20 28 6d 65 73 73 61 67 65 20 22 45 64 69 74 69 6e 67 20 69 73 20 72 65 73 74 72 69 63 74 65 ..(message."Editing.is.restricte
1eb80 64 20 74 6f 20 74 68 65 20 69 6e 70 75 74 20 70 72 6f 6d 70 74 2e 22 29 29 29 0a 0a 28 64 65 66 d.to.the.input.prompt.")))..(def
1eba0 75 6e 20 6d 61 6c 79 6f 6e 2d 64 65 6c 65 74 65 2d 63 68 61 72 20 28 61 72 67 29 0a 20 20 22 44 un.malyon-delete-char.(arg)..."D
1ebc0 65 6c 65 74 65 20 61 20 63 68 61 72 61 63 74 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 elete.a.character."...(interacti
1ebe0 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 3c 3d 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 ve."p")...(if.(<=.malyon-aread-b
1ec00 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 eginning-of-line.(point)).......
1ec20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 45 64 (delete-char.1).....(message."Ed
1ec40 69 74 69 6e 67 20 69 73 20 72 65 73 74 72 69 63 74 65 64 20 74 6f 20 74 68 65 20 69 6e 70 75 74 iting.is.restricted.to.the.input
1ec60 20 70 72 6f 6d 70 74 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 62 61 63 6b .prompt.")))..(defun.malyon-back
1ec80 77 61 72 64 2d 64 65 6c 65 74 65 2d 63 68 61 72 20 28 61 72 67 29 0a 20 20 22 44 65 6c 65 74 65 ward-delete-char.(arg)..."Delete
1eca0 20 61 20 63 68 61 72 61 63 74 65 72 20 62 61 63 6b 77 61 72 64 73 2e 22 0a 20 20 28 69 6e 74 65 .a.character.backwards."...(inte
1ecc0 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 3c 20 6d 61 6c 79 6f 6e 2d 61 72 65 ractive."p")...(if.(<.malyon-are
1ece0 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 ad-beginning-of-line.(point))...
1ed00 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 64 65 6c 65 74 65 2d 63 68 61 72 2d 75 6e 74 61 62 69 ....(backward-delete-char-untabi
1ed20 66 79 20 31 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 45 64 69 74 69 6e 67 20 69 73 20 72 fy.1).....(message."Editing.is.r
1ed40 65 73 74 72 69 63 74 65 64 20 74 6f 20 74 68 65 20 69 6e 70 75 74 20 70 72 6f 6d 70 74 2e 22 29 estricted.to.the.input.prompt.")
1ed60 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 73 65 6c 66 2d 69 6e 73 65 72 74 2d 63 6f ))..(defun.malyon-self-insert-co
1ed80 6d 6d 61 6e 64 20 28 61 72 67 29 0a 20 20 22 49 6e 73 65 72 74 20 61 20 63 68 61 72 61 63 74 65 mmand.(arg)..."Insert.a.characte
1eda0 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 3e r."...(interactive."p")...(if.(>
1edc0 20 6d 61 6c 79 6f 6e 2d 61 72 65 61 64 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 .malyon-aread-beginning-of-line.
1ede0 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 (point)).......(goto-char.(point
1ee00 2d 6d 61 78 29 29 29 0a 20 20 28 73 65 6c 66 2d 69 6e 73 65 72 74 2d 63 6f 6d 6d 61 6e 64 20 31 -max)))...(self-insert-command.1
1ee20 29 29 0a 0a 3b 3b 20 74 72 61 63 69 6e 67 20 75 74 69 6c 69 74 79 0a 0a 28 64 65 66 75 6e 20 6d ))..;;.tracing.utility..(defun.m
1ee40 61 6c 79 6f 6e 2d 74 72 61 63 65 2d 66 69 6c 65 20 28 29 0a 20 20 22 54 75 72 6e 20 74 72 61 63 alyon-trace-file.()..."Turn.trac
1ee60 69 6e 67 20 6f 6e 20 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 66 69 6c 65 2e 22 0a 20 ing.on.for.a.particular.file."..
1ee80 20 28 6c 65 74 20 28 28 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 .(let.((trace..........(get-buff
1eea0 65 72 2d 63 72 65 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 4d 61 6c er-create...........(concat."Mal
1eec0 79 6f 6e 20 54 72 61 63 65 20 22 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 yon.Trace.".malyon-story-file-na
1eee0 6d 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 28 77 69 me)))).....(if.trace.........(wi
1ef00 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 th-current-buffer.trace.........
1ef20 20 20 28 6d 61 6c 79 6f 6e 2d 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 ..(malyon-erase-buffer).........
1ef40 20 20 28 69 6e 73 65 72 74 20 28 63 6f 6e 63 61 74 20 22 54 72 61 63 69 6e 67 20 22 20 6d 61 6c ..(insert.(concat."Tracing.".mal
1ef60 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 2e 2e 22 29 29 0a 20 20 20 20 yon-story-file-name."...")).....
1ef80 20 20 20 20 20 20 28 6e 65 77 6c 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 ......(newline)))))..(defun.maly
1efa0 6f 6e 2d 74 72 61 63 65 2d 6e 65 77 6c 69 6e 65 20 28 29 0a 20 20 22 4f 75 74 70 75 74 20 74 72 on-trace-newline.()..."Output.tr
1efc0 61 63 69 6e 67 20 6e 65 77 6c 69 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 65 20 28 acing.newline."...(let.((trace.(
1efe0 67 65 74 2d 62 75 66 66 65 72 20 28 63 6f 6e 63 61 74 20 22 4d 61 6c 79 6f 6e 20 54 72 61 63 65 get-buffer.(concat."Malyon.Trace
1f000 20 22 20 6d 61 6c 79 6f 6e 2d 73 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 20 20 .".malyon-story-file-name))))...
1f020 20 20 28 69 66 20 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e ..(if.trace.........(with-curren
1f040 74 2d 62 75 66 66 65 72 20 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 t-buffer.trace...........(goto-c
1f060 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 65 77 6c har.(point-max))...........(newl
1f080 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 74 72 61 63 65 2d 6f 70 ine)))))..(defun.malyon-trace-op
1f0a0 63 6f 64 65 20 28 70 63 20 6f 70 63 6f 64 65 20 6f 70 65 72 61 6e 64 73 29 0a 20 20 22 4f 75 74 code.(pc.opcode.operands)..."Out
1f0c0 70 75 74 20 61 20 5a 2d 63 6f 64 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 2e 22 0a 20 20 28 6d 61 put.a.Z-code.instruction."...(ma
1f0e0 6c 79 6f 6e 2d 74 72 61 63 65 2d 73 74 72 69 6e 67 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 25 38 lyon-trace-string....(format."%8
1f100 64 20 20 20 25 2d 33 64 20 25 2d 32 35 73 20 25 73 5c 6e 22 0a 09 20 20 20 70 63 0a 09 20 20 20 d...%-3d.%-25s.%s\n".....pc.....
1f120 6f 70 63 6f 64 65 0a 09 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 61 72 65 66 20 6d 61 opcode.....(symbol-name.(aref.ma
1f140 6c 79 6f 6e 2d 6f 70 63 6f 64 65 73 20 6f 70 63 6f 64 65 29 29 0a 09 20 20 20 28 61 70 70 6c 79 lyon-opcodes.opcode)).....(apply
1f160 20 27 63 6f 6e 63 61 74 20 28 63 6c 2d 6d 61 70 63 61 6e 0a 09 09 09 20 20 20 28 6c 61 6d 62 64 .'concat.(cl-mapcan.......(lambd
1f180 61 20 28 78 29 0a 09 09 09 20 20 20 20 20 28 6c 69 73 74 20 22 20 22 0a 09 09 09 09 20 20 20 28 a.(x).........(list."."........(
1f1a0 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 0a 09 09 09 09 20 20 20 20 28 69 66 20 28 63 68 number-to-string.........(if.(ch
1f1c0 61 72 61 63 74 65 72 70 20 78 29 0a 09 09 09 09 09 28 6d 61 6c 79 6f 6e 2d 63 68 61 72 2d 74 6f aracterp.x)......(malyon-char-to
1f1e0 2d 69 6e 74 20 78 29 0a 09 09 09 09 20 20 20 20 20 20 78 29 29 29 29 0a 09 09 09 20 20 20 6f 70 -int.x)...........x)))).......op
1f200 65 72 61 6e 64 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 74 72 61 63 65 erands)))))..(defun.malyon-trace
1f220 2d 73 74 72 69 6e 67 20 28 73 29 0a 20 20 22 4f 75 74 70 75 74 20 74 72 61 63 69 6e 67 20 73 74 -string.(s)..."Output.tracing.st
1f240 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 65 20 28 67 65 74 2d 62 75 66 66 65 ring."...(let.((trace.(get-buffe
1f260 72 20 28 63 6f 6e 63 61 74 20 22 4d 61 6c 79 6f 6e 20 54 72 61 63 65 20 22 20 6d 61 6c 79 6f 6e r.(concat."Malyon.Trace.".malyon
1f280 2d 73 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e -story-file-name)))).....(if.(an
1f2a0 64 20 74 72 61 63 65 20 73 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 d.trace.s).........(with-current
1f2c0 2d 62 75 66 66 65 72 20 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 -buffer.trace...........(goto-ch
1f2e0 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 ar.(point-max))...........(inser
1f300 74 20 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 6c 79 6f 6e 2d 74 72 61 63 65 2d 6f 62 t.s)))))..(defun.malyon-trace-ob
1f320 6a 65 63 74 20 28 6f 29 0a 20 20 22 4f 75 74 70 75 74 20 74 72 61 63 69 6e 67 20 6f 62 6a 65 63 ject.(o)..."Output.tracing.objec
1f340 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 65 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 t."...(let.((trace.(get-buffer.(
1f360 63 6f 6e 63 61 74 20 22 4d 61 6c 79 6f 6e 20 54 72 61 63 65 20 22 20 6d 61 6c 79 6f 6e 2d 73 74 concat."Malyon.Trace.".malyon-st
1f380 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 74 ory-file-name)))).....(if.(and.t
1f3a0 72 61 63 65 20 6f 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 race.o).........(with-current-bu
1f3c0 66 66 65 72 20 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 ffer.trace...........(goto-char.
1f3e0 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 20 6f 20 (point-max))...........(prin1.o.
1f400 74 72 61 63 65 29 29 29 29 29 0a 0a 3b 3b 3b 20 61 6e 6e 6f 75 6e 63 65 20 6d 61 6c 79 6f 6e 2d trace)))))..;;;.announce.malyon-
1f420 6d 6f 64 65 0a 0a 28 70 72 6f 76 69 64 65 20 27 6d 61 6c 79 6f 6e 2d 6d 6f 64 65 29 0a 28 70 72 mode..(provide.'malyon-mode).(pr
1f440 6f 76 69 64 65 20 27 6d 61 6c 79 6f 6e 29 0a 0a 3b 3b 3b 20 6d 61 6c 79 6f 6e 2e 65 6c 20 65 6e ovide.'malyon)..;;;.malyon.el.en
1f460 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ds.here.........................
1f480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1faa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ff00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ff20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ff40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ff60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ff80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ffa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ffc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ffe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
200a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
200c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
200e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
201a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
201c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
201e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
202a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
202c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
202e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
203a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
203c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
203e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
204a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
204c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
204e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
205a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
205c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
205e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
206a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
206c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
206e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
207a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
207c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
207e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................