summaryrefslogtreecommitdiff
path: root/localrepo/malyon-20161208.2125.tar
blob: 8e5a6aa0cf3dd4b72d0196b100d5024203d8416e (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 2e 65 6c 00 00 malyon-20161208.2125/malyon.el..
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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...
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 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
0420 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..
0440 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
0460 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
0480 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
04a0 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
04c0 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
04e0 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
0500 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.
0520 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
0540 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
0560 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/
0580 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
05a0 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
05c0 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.
05e0 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
0600 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
0620 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.
0640 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
0660 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,.
0680 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
06a0 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
06c0 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
06e0 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
0700 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
0720 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
0740 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
0760 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
0780 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
07a0 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
07c0 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
07e0 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
0800 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.;;.
0820 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,.
0840 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
0860 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
0880 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
08a0 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
08c0 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
08e0 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
0900 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
0920 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
0940 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.
0960 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
0980 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
09a0 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
09c0 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.
09e0 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
0a00 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.;
0a20 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
0a40 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
0a60 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.
0a80 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.
0aa0 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.
0ac0 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:..;;.
0ae0 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
0b00 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
0b20 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
0b40 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
0b60 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
0b80 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,.
0ba0 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:..;;
0bc0 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
0be0 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
0c00 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
0c20 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
0c40 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.
0c60 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
0c80 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
0ca0 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.
0cc0 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
0ce0 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.;;
0d00 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
0d20 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
0d40 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
0d60 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.
0d80 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
0da0 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
0dc0 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
0de0 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
0e00 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
0e20 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
0e40 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
0e60 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
0e80 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
0ea0 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.;;
0ec0 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
0ee0 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
0f00 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
0f20 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
0f40 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,.
0f60 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.;;
0f80 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
0fa0 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.
0fc0 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
0fe0 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
1000 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.
1020 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
1040 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
1060 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.
1080 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
10a0 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
10c0 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
10e0 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.
1100 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
1120 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
1140 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
1160 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.
1180 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.
11a0 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.
11c0 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.
11e0 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...;
1200 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
1220 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
1240 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
1260 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
1280 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-
12a0 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
12c0 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..."
12e0 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
1300 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-"..
1320 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
1340 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
1360 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
1380 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
13a0 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
13c0 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
13e0 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)...:
1400 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
1420 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
1440 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
1460 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.")..
1480 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...
14a0 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
14c0 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-
14e0 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
1500 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
1520 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.
1540 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
1560 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
1580 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
15a0 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
15c0 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
15e0 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
1600 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..."
1620 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
1640 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
1660 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
1680 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
16a0 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-
16c0 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
16e0 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
1700 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
1720 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
1740 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
1760 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
1780 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
17a0 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
17c0 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
17e0 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
1800 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
1820 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.
1840 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.
1860 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
1880 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
18a0 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
18c0 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
18e0 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
1900 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...
1920 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
1940 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
1960 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
1980 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.
19a0 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
19c0 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
19e0 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
1a00 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
1a20 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
1a40 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
1a60 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
1a80 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
1aa0 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.
1ac0 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.
1ae0 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
1b00 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
1b20 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
1b40 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
1b60 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
1b80 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
1ba0 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
1bc0 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
1be0 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-
1c00 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
1c20 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
1c40 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
1c60 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
1c80 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
1ca0 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
1cc0 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.
1ce0 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
1d00 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
1d20 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
1d40 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
1d60 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.
1d80 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.
1da0 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
1dc0 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
1de0 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
1e00 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
1e20 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.
1e40 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
1e60 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
1e80 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
1ea0 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
1ec0 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
1ee0 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
1f00 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
1f20 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
1f40 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
1f60 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.")..(
1f80 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
1fa0 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
1fc0 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
1fe0 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...
2000 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
2020 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..
2040 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
2060 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
2080 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.
20a0 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
20c0 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
20e0 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
2100 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
2120 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.")..;;
2140 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
2160 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
2180 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
21a0 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
21c0 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
21e0 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
2200 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
2220 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
2240 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)
2260 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
2280 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
22a0 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
22c0 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
22e0 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
2300 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
2320 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
2340 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
2360 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.
2380 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)).
23a0 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.
23c0 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
23e0 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
2400 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
2420 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
2440 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
2460 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
2480 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
24a0 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
24c0 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
24e0 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
2500 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.....
2520 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.......
2540 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
2560 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
2580 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..
25a0 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
25c0 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
25e0 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))
2600 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
2620 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
2640 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
2660 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).......(
2680 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
26a0 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
26c0 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
26e0 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
2700 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
2720 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)))..
2740 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
2760 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."
2780 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
27a0 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-
27c0 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
27e0 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-
2800 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
2820 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
2840 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.".......
2860 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)).....
2880 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))....
28a0 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."%
28c0 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
28e0 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)...........
2900 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
2920 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
2940 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
2960 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)..
2980 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
29a0 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
29c0 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-
29e0 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)...
2a00 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)))
2a20 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
2a40 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
2a60 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
2a80 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
2aa0 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-
2ac0 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
2ae0 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
2b00 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
2b20 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
2b40 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
2b60 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
2b80 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.(
2ba0 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
2bc0 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
2be0 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
2c00 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
2c20 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
2c40 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!.
2c60 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
2c80 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.
2ca0 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
2cc0 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
2ce0 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
2d00 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
2d20 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
2d40 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
2d60 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
2d80 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,.
2da0 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
2dc0 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
2de0 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
2e00 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
2e20 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
2e40 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
2e60 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
2e80 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
2ea0 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
2ec0 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).;;....
2ee0 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).;
2f00 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).;;
2f20 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.
2f40 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))))..;;.
2f60 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
2f80 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).;;..
2fa0 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).;;..
2fc0 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."
2fe0 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)))))
3000 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).;;....
3020 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)
3040 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)
3060 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
3080 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
30a0 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
30c0 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
30e0 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
3100 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.().;;....
3120 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
3140 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.(-.
3160 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
3180 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
31a0 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
31c0 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
31e0 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
3200 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.
3220 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).
3240 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
3260 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."
3280 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
32a0 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
32c0 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
32e0 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
3300 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
3320 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)
3340 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.(
3360 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
3380 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.
33a0 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
33c0 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
33e0 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))...
3400 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)....
3420 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
3440 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
3460 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."...(
3480 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
34a0 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
34c0 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.'
34e0 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
3500 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).;;...
3520 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
3540 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.".;;.
3560 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).;;..'().;;..
3580 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
35a0 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
35c0 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
35e0 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
3600 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.
3620 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).;;
3640 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
3660 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.".
3680 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).;;..'().;
36a0 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
36c0 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
36e0 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))))))...
3700 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
3720 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
3740 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
3760 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
3780 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.
37a0 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
37c0 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
37e0 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."
3800 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
3820 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
3840 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
3860 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)..."
3880 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
38a0 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)....
38c0 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
38e0 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).;
3900 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.'
3920 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
3940 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.
3960 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.".;;..
3980 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).;;.....'()
39a0 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))
39c0 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.(
39e0 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
3a00 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
3a20 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))).;;....(
3a40 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).;;....
3a60 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
3a80 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
3aa0 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
3ac0 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.
3ae0 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
3b00 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
3b20 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
3b40 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
3b60 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
3b80 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.'
3ba0 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
3bc0 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
3be0 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
3c00 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
3c20 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.'())).;;.......(
3c40 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
3c60 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.
3c80 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
3ca0 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
3cc0 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
3ce0 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.
3d00 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).;;..
3d20 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
3d40 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*.
3d60 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
3d80 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.(<.
3da0 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)).;
3dc0 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)
3de0 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
3e00 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
3e20 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
3e40 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
3e60 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
3e80 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
3ea0 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
3ec0 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
3ee0 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.(
3f00 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
3f20 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.
3f40 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
3f60 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
3f80 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
3fa0 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
3fc0 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
3fe0 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."..
4000 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-
4020 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-
4040 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
4060 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
4080 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.
40a0 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
40c0 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).......
40e0 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)....
4100 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
4120 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
4140 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
4160 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.
4180 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
41a0 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..
41c0 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
41e0 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
4200 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
4220 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-
4240 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
4260 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.?'.
4280 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))..(
42a0 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...
42c0 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
42e0 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
4300 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.
4320 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.
4340 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
4360 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
4380 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.
43a0 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.....'
43c0 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
43e0 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
4400 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
4420 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
4440 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-
4460 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
4480 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
44a0 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.
44c0 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"........'
44e0 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.
4500 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]........'
4520 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)...
4540 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.[
4560 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-
4580 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
45a0 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
45c0 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.
45e0 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"......'
4600 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
4620 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
4640 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
4660 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
4680 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
46a0 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-
46c0 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
46e0 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-
4700 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
4720 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-
4740 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)..
4760 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.
4780 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)...
47a0 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."
47c0 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).
47e0 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
4800 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
4820 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-
4840 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-
4860 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
4880 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
48a0 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
48c0 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
48e0 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")......
4900 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-
4920 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.............
4940 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
4960 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
4980 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..
49a0 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
49c0 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
49e0 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
4a00 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
4a20 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-
4a40 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
4a60 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
4a80 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".'
4aa0 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-
4ac0 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
4ae0 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")............
4b00 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
4b20 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.............................
4b40 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
4b60 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
4b80 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
4ba0 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
4bc0 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...
4be0 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
4c00 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
4c20 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
4c40 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
4c60 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".'
4c80 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-
4ca0 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
4cc0 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")............
4ce0 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
4d00 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.............................
4d20 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
4d40 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
4d60 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.
4d80 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
4da0 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
4dc0 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.....'()...(
4de0 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.(
4e00 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
4e20 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
4e40 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
4e60 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
4e80 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
4ea0 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
4ec0 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
4ee0 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")..................
4f00 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
4f20 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............................
4f40 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
4f60 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
4f80 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
4fa0 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.
4fc0 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
4fe0 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
5000 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
5020 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
5040 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
5060 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
5080 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
50a0 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
50c0 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
50e0 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)
5100 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..
5120 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-
5140 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
5160 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
5180 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
51a0 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
51c0 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
51e0 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
5200 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)
5220 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
5240 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."
5260 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
5280 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
52a0 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.
52c0 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.
52e0 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
5300 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
5320 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
5340 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-
5360 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.?*.?..?*.?.
5380 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).....
53a0 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
53c0 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
53e0 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)))...(
5400 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
5420 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
5440 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
5460 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.?.
5480 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 )...............................
54a0 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)......
54c0 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
54e0 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).............
5500 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
5520 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
5540 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
5560 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
5580 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.(
55a0 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
55c0 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
55e0 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
5600 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
5620 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
5640 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.
5660 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
5680 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
56a0 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
56c0 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).(
56e0 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.
5700 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
5720 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
5740 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)...
5760 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
5780 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)............
57a0 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.
57c0 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
57e0 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
5800 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
5820 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))
5840 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
5860 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
5880 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.".
58a0 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
58c0 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
58e0 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
5900 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
5920 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
5940 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
5960 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.
5980 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
59a0 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
59c0 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
59e0 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.()..."
5a00 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
5a20 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
5a40 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
5a60 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
5a80 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
5aa0 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
5ac0 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
5ae0 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
5b00 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
5b20 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
5b40 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
5b60 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
5b80 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
5ba0 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
5bc0 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
5be0 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
5c00 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
5c20 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
5c40 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
5c60 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))
5c80 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
5ca0 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
5cc0 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
5ce0 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
5d00 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
5d20 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
5d40 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
5d60 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
5d80 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
5da0 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)
5dc0 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.((
5de0 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
5e00 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
5e20 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
5e40 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
5e60 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
5e80 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
5ea0 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
5ec0 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
5ee0 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-
5f00 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
5f20 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))..(
5f40 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
5f60 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
5f80 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."...(
5fa0 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
5fc0 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
5fe0 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
6000 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.
6020 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."...(
6040 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
6060 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
6080 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
60a0 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
60c0 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
60e0 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
6100 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.
6120 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
6140 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
6160 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
6180 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
61a0 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.
61c0 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
61e0 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
6200 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..
6220 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..............
6240 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-
6260 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
6280 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..
62a0 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
62c0 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
62e0 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
6300 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
6320 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
6340 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
6360 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..
6380 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....
63a0 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
63c0 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
63e0 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
6400 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
6420 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.
6440 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............
6460 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
6480 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
64a0 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
64c0 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....
64e0 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
6500 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
6520 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
6540 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..........
6560 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
6580 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
65a0 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
65c0 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..
65e0 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............
6600 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
6620 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-
6640 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
6660 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
6680 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......
66a0 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...
66c0 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
66e0 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
6700 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
6720 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
6740 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
6760 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.........
6780 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-
67a0 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
67c0 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.
67e0 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...
6800 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
6820 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
6840 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
6860 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......
6880 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
68a0 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
68c0 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..
68e0 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
6900 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......
6920 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
6940 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
6960 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.....
6980 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.
69a0 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.......
69c0 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
69e0 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
6a00 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
6a20 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
6a40 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
6a60 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
6a80 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-
6aa0 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
6ac0 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
6ae0 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
6b00 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..
6b20 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...........
6b40 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
6b60 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
6b80 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...
6ba0 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
6bc0 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
6be0 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-
6c00 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
6c20 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............
6c40 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
6c60 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-
6c80 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
6ca0 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....
6cc0 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
6ce0 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-
6d00 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
6d20 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
6d40 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
6d60 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
6d80 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..
6da0 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........
6dc0 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
6de0 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
6e00 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-
6e20 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
6e40 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..........
6e60 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
6e80 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
6ea0 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
6ec0 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..
6ee0 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.............
6f00 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
6f20 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
6f40 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
6f60 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....
6f80 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
6fa0 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
6fc0 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
6fe0 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
7000 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
7020 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....
7040 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
7060 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
7080 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
70a0 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
70c0 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........
70e0 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
7100 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
7120 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
7140 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-
7160 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...
7180 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
71a0 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
71c0 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
71e0 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-
7200 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..
7220 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...
7240 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
7260 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
7280 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
72a0 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
72c0 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....
72e0 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
7300 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
7320 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
7340 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
7360 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
7380 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....
73a0 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
73c0 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
73e0 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
7400 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
7420 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........
7440 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
7460 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
7480 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
74a0 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..
74c0 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.........
74e0 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-
7500 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
7520 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
7540 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
7560 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...
7580 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
75a0 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
75c0 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
75e0 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
7600 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........
7620 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
7640 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
7660 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
7680 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
76a0 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..........
76c0 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
76e0 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
7700 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
7720 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
7740 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....
7760 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.
7780 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..........
77a0 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
77c0 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
77e0 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
7800 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
7820 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.......
7840 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
7860 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-
7880 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
78a0 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.
78c0 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......
78e0 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
7900 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
7920 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....
7940 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....
7960 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
7980 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
79a0 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
79c0 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
79e0 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
7a00 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........
7a20 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
7a40 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
7a60 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
7a80 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-
7aa0 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
7ac0 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.
7ae0 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.....
7b00 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
7b20 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
7b40 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
7b60 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
7b80 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
7ba0 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-
7bc0 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-
7be0 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....
7c00 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
7c20 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
7c40 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
7c60 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
7c80 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
7ca0 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
7cc0 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
7ce0 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
7d00 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
7d20 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
7d40 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
7d60 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
7d80 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....
7da0 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
7dc0 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
7de0 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
7e00 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
7e20 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
7e40 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
7e60 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]..."
7e80 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
7ea0 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
7ec0 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-
7ee0 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
7f00 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.
7f20 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
7f40 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...................
7f60 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
7f80 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.(
7fa0 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))..
7fc0 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
7fe0 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
8000 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................
8020 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-
8040 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
8060 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))))
8080 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.(
80a0 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
80c0 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
80e0 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
8100 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-
8120 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
8140 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)))
8160 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
8180 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
81a0 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
81c0 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
81e0 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)....
8200 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
8220 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.
8240 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
8260 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
8280 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
82a0 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
82c0 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
82e0 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-
8300 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)........
8320 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 ................................
8340 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
8360 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
8380 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
83a0 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
83c0 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
83e0 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
8400 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
8420 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...
8440 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
8460 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
8480 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
84a0 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
84c0 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
84e0 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
8500 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.
8520 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
8540 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
8560 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..
8580 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-
85a0 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.
85c0 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
85e0 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..
8600 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 ................................
8620 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
8640 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
8660 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
8680 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)
86a0 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.
86c0 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))).........
86e0 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
8700 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)))))).....
8720 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
8740 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
8760 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)))..
8780 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
87a0 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
87c0 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
87e0 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......
8800 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
8820 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
8840 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"))
8860 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
8880 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
88a0 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
88c0 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.(+.
88e0 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)..................
8900 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
8920 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............................
8940 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.
8960 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
8980 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)...
89a0 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
89c0 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
89e0 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
8a00 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-
8a20 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
8a40 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
8a60 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
8a80 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
8aa0 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
8ac0 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
8ae0 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
8b00 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
8b20 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
8b40 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
8b60 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
8b80 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
8ba0 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
8bc0 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
8be0 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-
8c00 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))
8c20 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
8c40 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
8c60 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
8c80 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
8ca0 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
8cc0 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
8ce0 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
8d00 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
8d20 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
8d40 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
8d60 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))...
8d80 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
8da0 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
8dc0 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
8de0 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-
8e00 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
8e20 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")...
8e40 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)..
8e60 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)).
8e80 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
8ea0 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
8ec0 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
8ee0 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
8f00 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
8f20 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
8f40 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)...
8f60 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
8f80 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
8fa0 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
8fc0 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)).
8fe0 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
9000 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-
9020 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
9040 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
9060 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
9080 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
90a0 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
90c0 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
90e0 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
9100 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
9120 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
9140 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
9160 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
9180 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
91a0 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
91c0 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
91e0 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
9200 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...............
9220 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
9240 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)..........................
9260 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
9280 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
92a0 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
92c0 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
92e0 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
9300 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)
9320 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)...
9340 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-
9360 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
9380 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)).
93a0 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)...(
93c0 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
93e0 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
9400 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
9420 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
9440 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)).
9460 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
9480 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
94a0 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
94c0 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
94e0 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
9500 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
9520 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
9540 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
9560 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
9580 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
95a0 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
95c0 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
95e0 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
9600 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).
9620 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
9640 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.
9660 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
9680 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-
96a0 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.
96c0 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
96e0 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
9700 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.......
9720 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
9740 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.
9760 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
9780 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
97a0 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-
97c0 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
97e0 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
9800 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
9820 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.'
9840 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
9860 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
9880 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)))......
98a0 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."
98c0 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".....
98e0 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 ................................
9900 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"....
9920 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 ................................
9940 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.,!?_#'\"/\\-:()"
9960 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
9980 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
99a0 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)........
99c0 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........
99e0 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
9a00 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)))).........(
9a20 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
9a40 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
9a60 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
9a80 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
9aa0 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
9ac0 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
9ae0 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
9b00 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
9b20 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
9b40 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
9b60 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
9b80 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.
9ba0 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.......
9bc0 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
9be0 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))).
9c00 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
9c20 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
9c40 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
9c60 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
9c80 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)..
9ca0 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
9cc0 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
9ce0 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
9d00 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.
9d20 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
9d40 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
9d60 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).....
9d80 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
9da0 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
9dc0 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
9de0 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
9e00 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
9e20 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
9e40 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)
9e60 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
9e80 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
9ea0 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
9ec0 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)..
9ee0 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
9f00 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)........
9f20 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
9f40 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
9f60 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
9f80 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
9fa0 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
9fc0 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
9fe0 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.
a000 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
a020 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
a040 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
a060 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
a080 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-
a0a0 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
a0c0 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-
a0e0 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)
a100 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
a120 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
a140 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
a160 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
a180 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
a1a0 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
a1c0 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
a1e0 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
a200 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))..;
a220 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
a240 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
a260 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
a280 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
a2a0 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
a2c0 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
a2e0 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
a300 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).
a320 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
a340 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
a360 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
a380 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
a3a0 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
a3c0 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
a3e0 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.(
a400 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"))
a420 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
a440 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)........
a460 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-
a480 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)))
a4a0 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)............
a4c0 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
a4e0 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
a500 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)))
a520 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
a540 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
a560 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."...(
a580 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
a5a0 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-
a5c0 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
a5e0 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.....
a600 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)).....
a620 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).
a640 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....
a660 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.
a680 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)........................
a6a0 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.......................
a6c0 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.........
a6e0 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).....
a700 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
a720 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)....
a740 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
a760 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)
a780 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
a7a0 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
a7c0 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.
a7e0 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.")..(
a800 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
a820 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
a840 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
a860 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
a880 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
a8a0 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.........
a8c0 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..
a8e0 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........
a900 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.
a920 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
a940 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.-..
a960 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...
a980 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.........
a9a0 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.
a9c0 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
a9e0 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
aa00 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
aa20 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..........
aa40 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..
aa60 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.
aa80 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
aaa0 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
aac0 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
aae0 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..;
ab00 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..
ab20 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.
ab40 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
ab60 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
ab80 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.;.
aba0 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
abc0 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..
abe0 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.
ac00 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..
ac20 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
ac40 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.
ac60 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...
ac80 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
aca0 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..
acc0 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
ace0 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
ad00 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....
ad20 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
ad40 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
ad60 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
ad80 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.
ada0 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.....
adc0 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
ade0 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
ae00 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.
ae20 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
ae40 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......
ae60 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.
ae80 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..
aea0 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.-
aec0 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.
aee0 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.......
af00 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
af20 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...
af40 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.-.
af60 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-
af80 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
afa0 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.
afc0 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
afe0 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
b000 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
b020 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
b040 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
b060 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
b080 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
b0a0 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
b0c0 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-
b0e0 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)).
b100 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))..
b120 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)..........
b140 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
b160 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.??))..
b180 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)))).....
b1a0 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
b1c0 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))........
b1e0 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
b200 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)
b220 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
b240 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
b260 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
b280 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)..."
b2a0 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
b2c0 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).(>.
b2e0 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
b300 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
b320 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).....
b340 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
b360 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
b380 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
b3a0 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
b3c0 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
b3e0 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
b400 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
b420 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).(
b440 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)).
b460 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.....
b480 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
b4a0 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)
b4c0 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
b4e0 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))............
b500 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
b520 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-
b540 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
b560 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
b580 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
b5a0 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
b5c0 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...
b5e0 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
b600 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
b620 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
b640 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
b660 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
b680 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
b6a0 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
b6c0 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
b6e0 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
b700 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
b720 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.((
b740 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
b760 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)...................
b780 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
b7a0 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
b7c0 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)).........((=.
b7e0 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
b800 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
b820 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
b840 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
b860 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.
b880 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....
b8a0 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
b8c0 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
b8e0 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)).....(
b900 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
b920 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
b940 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.......
b960 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
b980 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)...............
b9a0 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.........
b9c0 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
b9e0 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-
ba00 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)...
ba20 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
ba40 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
ba60 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
ba80 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)).....(
baa0 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
bac0 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
bae0 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
bb00 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
bb20 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
bb40 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
bb60 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
bb80 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
bba0 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).....
bbc0 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
bbe0 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
bc00 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
bc20 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
bc40 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
bc60 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
bc80 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....
bca0 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
bcc0 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-
bce0 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
bd00 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
bd20 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
bd40 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-
bd60 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
bd80 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
bda0 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)).....(
bdc0 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
bde0 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)))..;;.
be00 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-
be20 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
be40 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
be60 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.(+.
be80 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............
bea0 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
bec0 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
bee0 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
bf00 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
bf20 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
bf40 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
bf60 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))).
bf80 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).
bfa0 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.(
bfc0 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
bfe0 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))
c000 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
c020 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
c040 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
c060 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.
c080 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
c0a0 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).
c0c0 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))
c0e0 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
c100 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)
c120 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)
c140 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
c160 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.
c180 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
c1a0 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))....
c1c0 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
c1e0 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)....
c200 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
c220 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
c240 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)
c260 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
c280 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))))..
c2a0 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.(
c2c0 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
c2e0 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
c300 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-
c320 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
c340 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.
c360 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
c380 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
c3a0 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.()..."
c3c0 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
c3e0 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
c400 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
c420 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.
c440 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
c460 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.".
c480 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
c4a0 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
c4c0 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)...
c4e0 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
c500 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)))........
c520 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
c540 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
c560 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)).........((=.
c580 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
c5a0 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))........
c5c0 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
c5e0 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))...
c600 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-
c620 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
c640 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
c660 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.
c680 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
c6a0 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
c6c0 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)).
c6e0 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.
c700 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
c720 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)).........
c740 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-
c760 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
c780 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))))..(
c7a0 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
c7c0 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
c7e0 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
c800 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)).....(
c820 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.
c840 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-
c860 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
c880 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)).
c8a0 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
c8c0 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
c8e0 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.
c900 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
c920 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
c940 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)).....
c960 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
c980 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
c9a0 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
c9c0 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
c9e0 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
ca00 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
ca20 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
ca40 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."..
ca60 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
ca80 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
caa0 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
cac0 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
cae0 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)).......
cb00 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.(+.
cb20 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
cb40 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))).......(
cb60 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
cb80 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)))).......
cba0 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)).....
cbc0 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
cbe0 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
cc00 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
cc20 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
cc40 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
cc60 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.
cc80 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.
cca0 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.
ccc0 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.
cce0 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).
cd00 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
cd20 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.
cd40 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
cd60 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
cd80 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
cda0 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.(
cdc0 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
cde0 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
ce00 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.
ce20 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))
ce40 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-
ce60 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
ce80 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
cea0 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
cec0 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.
cee0 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
cf00 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)).
cf20 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
cf40 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)...
cf60 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
cf80 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
cfa0 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.......
cfc0 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
cfe0 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
d000 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
d020 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
d040 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
d060 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
d080 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).
d0a0 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
d0c0 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
d0e0 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)).
d100 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).
d120 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
d140 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
d160 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
d180 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
d1a0 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
d1c0 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
d1e0 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
d200 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
d220 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
d240 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)..."
d260 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.
d280 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.
d2a0 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
d2c0 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.
d2e0 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
d300 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
d320 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
d340 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
d360 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-
d380 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
d3a0 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
d3c0 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
d3e0 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
d400 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))..
d420 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
d440 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......
d460 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).
d480 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)
d4a0 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
d4c0 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).....
d4e0 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
d500 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
d520 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).......(
d540 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
d560 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]"))))..(
d580 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.
d5a0 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
d5c0 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
d5e0 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
d600 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
d620 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."[
d640 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-
d660 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
d680 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..
d6a0 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
d6c0 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
d6e0 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
d700 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.
d720 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
d740 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
d760 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
d780 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.
d7a0 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.......(
d7c0 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.(
d7e0 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
d800 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)).
d820 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
d840 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
d860 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
d880 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.
d8a0 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)).
d8c0 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
d8e0 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
d900 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
d920 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
d940 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
d960 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
d980 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
d9a0 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)))
d9c0 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.
d9e0 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.".
da00 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.'
da20 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
da40 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
da60 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.".
da80 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
daa0 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
dac0 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
dae0 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.
db00 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)
db20 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
db40 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
db60 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)..
db80 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)..........
dba0 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
dbc0 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
dbe0 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)
dc00 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.
dc20 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.
dc40 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
dc60 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
dc80 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
dca0 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."...(
dcc0 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.
dce0 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
dd00 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
dd20 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.
dd40 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-
dd60 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.
dd80 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.
dda0 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.........
ddc0 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
dde0 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
de00 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
de20 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).(
de40 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
de60 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
de80 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
dea0 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
dec0 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
dee0 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
df00 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..
df20 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.'
df40 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-
df60 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)................
df80 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.
dfa0 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)........................
dfc0 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
dfe0 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-
e000 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)........
e020 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
e040 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).................
e060 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
e080 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
e0a0 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
e0c0 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
e0e0 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
e100 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).......
e120 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
e140 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))......
e160 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).(
e180 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)).....
e1a0 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..........................
e1c0 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)
e1e0 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
e200 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
e220 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
e240 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)....
e260 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
e280 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
e2a0 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.
e2c0 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
e2e0 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
e300 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)..
e320 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)......
e340 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))).
e360 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
e380 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.
e3a0 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.
e3c0 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*.((
e3e0 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...(-.
e400 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)
e420 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.
e440 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...(+.
e460 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.......
e480 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
e4a0 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)))......
e4c0 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
e4e0 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
e500 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
e520 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.(
e540 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)
e560 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
e580 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)......
e5a0 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
e5c0 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
e5e0 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...........
e600 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
e620 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)).........
e640 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
e660 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
e680 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
e6a0 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
e6c0 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
e6e0 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
e700 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
e720 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...........................
e740 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
e760 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..
e780 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.
e7a0 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...............................
e7c0 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
e7e0 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
e800 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
e820 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)
e840 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.(*
e860 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.(
e880 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)
e8a0 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
e8c0 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
e8e0 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
e900 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)).
e920 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
e940 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.
e960 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
e980 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
e9a0 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
e9c0 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
e9e0 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
ea00 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
ea20 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.
ea40 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)
ea60 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
ea80 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).
eaa0 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
eac0 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
eae0 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
eb00 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)..
eb20 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
eb40 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.'
eb60 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..........
eb80 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.
eba0 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)))).
ebc0 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
ebe0 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
ec00 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."
ec20 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.
ec40 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.
ec60 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))).
ec80 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
eca0 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
ecc0 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
ece0 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
ed00 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.(
ed20 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.
ed40 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
ed60 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
ed80 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))).
eda0 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
edc0 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
ede0 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........
ee00 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
ee20 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
ee40 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
ee60 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
ee80 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..
eea0 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
eec0 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)...........
eee0 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)).
ef00 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
ef20 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
ef40 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............
ef60 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
ef80 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))..................'
efa0 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)).........
efc0 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
efe0 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.
f000 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
f020 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
f040 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.((
f060 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
f080 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))..
f0a0 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-
f0c0 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.(+.
f0e0 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
f100 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
f120 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
f140 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
f160 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."...
f180 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).
f1a0 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
f1c0 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
f1e0 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
f200 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
f220 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
f240 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
f260 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.
f280 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."
f2a0 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
f2c0 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.'()))
f2e0 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.
f300 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
f320 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
f340 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))....................
f360 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..........
f380 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
f3a0 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)
f3c0 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).....
f3e0 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)
f400 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.(
f420 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
f440 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
f460 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
f480 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
f4a0 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
f4c0 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).................
f4e0 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
f500 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))))..;;.
f520 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
f540 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
f560 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
f580 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.")..
f5a0 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.
f5c0 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
f5e0 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
f600 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
f620 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
f640 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-
f660 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.
f680 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
f6a0 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
f6c0 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.
f6e0 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
f700 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
f720 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
f740 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
f760 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
f780 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)......
f7a0 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
f7c0 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
f7e0 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
f800 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
f820 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
f840 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).
f860 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
f880 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)
f8a0 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))
f8c0 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
f8e0 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
f900 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).?.))
f920 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
f940 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
f960 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
f980 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
f9a0 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
f9c0 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
f9e0 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
fa00 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
fa20 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
fa40 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-
fa60 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
fa80 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
faa0 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
fac0 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.(
fae0 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
fb00 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
fb20 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).
fb40 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
fb60 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).......
fb80 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
fba0 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-
fbc0 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))).........((
fbe0 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
fc00 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
fc20 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
fc40 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
fc60 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
fc80 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
fca0 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
fcc0 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
fce0 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.
fd00 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
fd20 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.
fd40 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
fd60 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
fd80 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
fda0 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
fdc0 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
fde0 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
fe00 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)......
fe20 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
fe40 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
fe60 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
fe80 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
fea0 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
fec0 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)....
fee0 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-
ff00 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)
ff20 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
ff40 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
ff60 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
ff80 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
ffa0 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
ffc0 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
ffe0 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
10000 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
10020 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
10040 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
10060 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-
10080 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).....
100a0 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)
100c0 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.
100e0 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
10100 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
10120 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
10140 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
10160 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.
10180 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
101a0 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........
101c0 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
101e0 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
10200 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
10220 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
10240 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
10260 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)
10280 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
102a0 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
102c0 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)...
102e0 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
10300 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
10320 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
10340 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
10360 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.
10380 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-
103a0 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
103c0 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
103e0 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
10400 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
10420 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
10440 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
10460 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.(
10480 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.
104a0 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
104c0 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.
104e0 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
10500 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)...(
10520 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
10540 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
10560 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
10580 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)).
105a0 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
105c0 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
105e0 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
10600 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
10620 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
10640 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.".
10660 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))...
10680 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).....(
106a0 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)
106c0 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-
106e0 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
10700 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."..
10720 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-
10740 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-
10760 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
10780 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
107a0 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
107c0 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
107e0 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).......
10800 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-
10820 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
10840 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)........
10860 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))
10880 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
108a0 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
108c0 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
108e0 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
10900 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)
10920 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.
10940 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))...
10960 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
10980 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)).......
109a0 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-
109c0 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.
109e0 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)..
10a00 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
10a20 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
10a40 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
10a60 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)).....(
10a80 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)).......
10aa0 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.(
10ac0 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.(
10ae0 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
10b00 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-
10b20 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
10b40 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
10b60 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.".
10b80 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:.")..
10ba0 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.
10bc0 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
10be0 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
10c00 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
10c20 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
10c40 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
10c60 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))..
10c80 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
10ca0 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
10cc0 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
10ce0 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))).............
10d00 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-
10d20 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-
10d40 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))....
10d60 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
10d80 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.
10da0 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
10dc0 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).........
10de0 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
10e00 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
10e20 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)).......
10e40 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.(+
10e60 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
10e80 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
10ea0 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..
10ec0 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...
10ee0 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....
10f00 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.(
10f20 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
10f40 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
10f60 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..
10f80 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
10fa0 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-
10fc0 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
10fe0 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
11000 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
11020 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)).......
11040 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
11060 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
11080 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
110a0 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)...
110c0 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
110e0 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.(<=
11100 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
11120 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)).......(
11140 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).
11160 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
11180 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.
111a0 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)))))..(
111c0 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.
111e0 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.
11200 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
11220 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-
11240 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
11260 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
11280 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)..
112a0 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
112c0 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"
112e0 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
11300 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
11320 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
11340 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
11360 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
11380 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
113a0 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
113c0 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
113e0 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")...(
11400 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)..
11420 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
11440 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
11460 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
11480 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
114a0 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
114c0 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
114e0 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
11500 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)
11520 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.(
11540 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
11560 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
11580 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
115a0 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
115c0 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
115e0 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
11600 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
11620 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
11640 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
11660 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
11680 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...
116a0 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...
116c0 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)).......
116e0 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..
11700 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))....
11720 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
11740 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.
11760 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
11780 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
117a0 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
117c0 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
117e0 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
11800 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.
11820 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
11840 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
11860 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
11880 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
118a0 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))..
118c0 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
118e0 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))
11900 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)).'(
11920 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))
11940 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).....(
11960 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
11980 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
119a0 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
119c0 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.
119e0 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
11a00 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
11a20 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))...
11a40 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
11a60 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.(
11a80 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).............
11aa0 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
11ac0 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).........................
11ae0 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))....
11b00 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
11b20 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.
11b40 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
11b60 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)
11b80 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
11ba0 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
11bc0 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
11be0 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.
11c00 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
11c20 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*
11c40 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
11c60 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
11c80 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))......
11ca0 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))
11cc0 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
11ce0 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
11d00 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
11d20 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
11d40 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))........
11d60 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))..
11d80 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
11da0 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)....
11dc0 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-
11de0 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
11e00 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-
11e20 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)).....
11e40 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.
11e60 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
11e80 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)....
11ea0 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
11ec0 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).....
11ee0 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
11f00 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)......
11f20 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 ................................
11f40 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)))).....(
11f60 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
11f80 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
11fa0 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
11fc0 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
11fe0 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
12000 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
12020 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
12040 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))......
12060 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
12080 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-
120a0 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
120c0 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))......
120e0 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
12100 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
12120 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
12140 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
12160 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
12180 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
121a0 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.
121c0 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
121e0 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
12200 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..."
12220 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
12240 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.")..
12260 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
12280 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.
122a0 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
122c0 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
122e0 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
12300 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
12320 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
12340 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:
12360 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
12380 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))
123a0 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
123c0 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.......
123e0 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
12400 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.(
12420 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)).......
12440 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).....
12460 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))...
12480 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...............
124a0 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
124c0 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..(
124e0 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))
12500 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
12520 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))......
12540 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
12560 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)))........
12580 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".
125a0 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))..
125c0 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
125e0 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))....
12600 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
12620 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
12640 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
12660 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
12680 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)..
126a0 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
126c0 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)..
126e0 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)))
12700 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.(
12720 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
12740 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
12760 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
12780 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).....
127a0 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
127c0 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
127e0 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)
12800 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
12820 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
12840 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
12860 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).........
12880 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).....
128a0 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).
128c0 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
128e0 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))..
12900 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
12920 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.....
12940 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
12960 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.(
12980 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.
129a0 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
129c0 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))......
129e0 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.
12a00 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)).
12a20 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-
12a40 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
12a60 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
12a80 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
12aa0 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.(<
12ac0 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
12ae0 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))......
12b00 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
12b20 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
12b40 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-
12b60 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)))..
12b80 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
12ba0 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
12bc0 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
12be0 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
12c00 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
12c20 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-
12c40 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.
12c60 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
12c80 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
12ca0 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
12cc0 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
12ce0 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
12d00 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..
12d20 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)......
12d40 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
12d60 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)
12d80 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
12da0 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.
12dc0 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-
12de0 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
12e00 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))
12e20 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)).
12e40 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."
12e60 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
12e80 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-
12ea0 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
12ec0 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
12ee0 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-
12f00 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))).............((
12f20 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")........
12f40 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
12f60 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)))....
12f80 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
12fa0 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
12fc0 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-
12fe0 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
13000 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.
13020 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
13040 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)))....
13060 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)...
13080 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.
130a0 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......................
130c0 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
130e0 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).............................
13100 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)....
13120 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 ................................
13140 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)...........
13160 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 ................................
13180 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..........................
131a0 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)))...........
131c0 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
131e0 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
13200 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
13220 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
13240 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.
13260 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.
13280 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.
132a0 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
132c0 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))......
132e0 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-
13300 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))....
13320 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
13340 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))..
13360 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
13380 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))
133a0 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
133c0 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
133e0 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
13400 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).........
13420 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
13440 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
13460 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
13480 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
134a0 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.
134c0 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
134e0 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
13500 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
13520 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."...(
13540 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
13560 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)
13580 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).
135a0 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).....
135c0 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.(<.
135e0 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
13600 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))
13620 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).........
13640 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
13660 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
13680 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
136a0 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))))
136c0 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
136e0 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
13700 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
13720 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."...
13740 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
13760 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))
13780 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
137a0 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
137c0 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))..
137e0 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
13800 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
13820 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
13840 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
13860 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,.
13880 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
138a0 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
138c0 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
138e0 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
13900 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
13920 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
13940 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)...
13960 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
13980 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.
139a0 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...
139c0 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
139e0 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
13a00 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......
13a20 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))..
13a40 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
13a60 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))........
13a80 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
13aa0 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
13ac0 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
13ae0 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)
13b00 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
13b20 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)))
13b40 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
13b60 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)).........
13b80 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
13ba0 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))..............(
13bc0 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-
13be0 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)))..............(
13c00 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
13c20 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
13c40 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
13c60 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
13c80 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.(>.
13ca0 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
13cc0 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
13ce0 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))........
13d00 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
13d20 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
13d40 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
13d60 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
13d80 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
13da0 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)))....
13dc0 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).....
13de0 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
13e00 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
13e20 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
13e40 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...
13e60 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
13e80 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......................
13ea0 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)
13ec0 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 ................................
13ee0 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.......................
13f00 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
13f20 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))...................
13f40 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
13f60 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).............................
13f80 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...................
13fa0 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
13fc0 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
13fe0 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
14000 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))))).....(
14020 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
14040 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
14060 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....
14080 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-
140a0 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
140c0 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
140e0 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
14100 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
14120 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..
14140 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
14160 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
14180 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
141a0 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.(
141c0 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.".
141e0 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)
14200 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
14220 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.(+
14240 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
14260 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)..
14280 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
142a0 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)....
142c0 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
142e0 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
14300 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
14320 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
14340 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
14360 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
14380 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))....
143a0 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
143c0 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
143e0 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
14400 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
14420 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
14440 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)...
14460 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
14480 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
144a0 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
144c0 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."...(
144e0 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)...
14500 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
14520 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
14540 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
14560 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.(
14580 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.
145a0 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
145c0 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
145e0 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
14600 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
14620 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
14640 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
14660 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
14680 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.".
146a0 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
146c0 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)
146e0 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
14700 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
14720 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
14740 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
14760 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))......
14780 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
147a0 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
147c0 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
147e0 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
14800 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
14820 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.
14840 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
14860 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
14880 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...................
148a0 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
148c0 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
148e0 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
14900 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
14920 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
14940 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.".
14960 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.
14980 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
149a0 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.((
149c0 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
149e0 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
14a00 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
14a20 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..
14a40 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
14a60 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
14a80 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))))........................(
14aa0 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)))))))
14ac0 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
14ae0 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
14b00 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
14b20 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
14b40 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
14b60 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
14b80 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
14ba0 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
14bc0 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
14be0 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
14c00 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).....
14c20 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.(
14c40 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
14c60 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
14c80 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
14ca0 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
14cc0 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.
14ce0 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
14d00 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.
14d20 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
14d40 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
14d60 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
14d80 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
14da0 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.(
14dc0 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).................
14de0 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
14e00 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))....................
14e20 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-
14e40 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))).................
14e60 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
14e80 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
14ea0 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
14ec0 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
14ee0 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
14f00 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
14f20 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."...
14f40 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
14f60 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
14f80 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
14fa0 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-
14fc0 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)).....
14fe0 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
15000 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-
15020 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
15040 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
15060 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
15080 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
150a0 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
150c0 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.(
150e0 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)).(
15100 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
15120 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.(
15140 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
15160 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))).........
15180 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.(
151a0 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)))).......(
151c0 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
151e0 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.(>.
15200 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.
15220 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
15240 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)).........(
15260 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
15280 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)))..
152a0 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
152c0 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
152e0 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
15300 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.
15320 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
15340 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...(
15360 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)).........
15380 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
153a0 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
153c0 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.(
153e0 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
15400 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..
15420 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
15440 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
15460 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.
15480 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
154a0 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.
154c0 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
154e0 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...
15500 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
15520 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)).............
15540 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
15560 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.....
15580 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....................
155a0 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
155c0 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..........................
155e0 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
15600 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
15620 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
15640 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
15660 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
15680 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
156a0 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
156c0 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
156e0 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
15700 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
15720 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
15740 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
15760 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
15780 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
157a0 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-
157c0 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
157e0 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))))
15800 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
15820 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
15840 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
15860 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
15880 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
158a0 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
158c0 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
158e0 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.().
15900 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.
15920 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
15940 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......
15960 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
15980 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
159a0 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
159c0 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).
159e0 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))))
15a00 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.
15a20 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
15a40 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
15a60 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
15a80 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
15aa0 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
15ac0 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
15ae0 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
15b00 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
15b20 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
15b40 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."...(
15b60 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
15b80 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
15ba0 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.(
15bc0 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-
15be0 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)))....
15c00 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
15c20 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
15c40 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
15c60 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
15c80 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))
15ca0 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
15cc0 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))))
15ce0 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)
15d00 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
15d20 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
15d40 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..
15d60 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
15d80 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
15da0 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
15dc0 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
15de0 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)
15e00 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.......
15e20 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
15e40 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)))).....
15e60 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.............(-.
15e80 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
15ea0 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.......
15ec0 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
15ee0 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...
15f00 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
15f20 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
15f40 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
15f60 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."...
15f80 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
15fa0 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
15fc0 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))..
15fe0 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
16000 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
16020 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))
16040 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
16060 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.
16080 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).
160a0 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
160c0 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-
160e0 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.
16100 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
16120 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))..
16140 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
16160 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
16180 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
161a0 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-
161c0 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...................
161e0 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
16200 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)).
16220 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
16240 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)
16260 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
16280 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
162a0 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
162c0 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.
162e0 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
16300 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
16320 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
16340 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
16360 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
16380 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
163a0 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
163c0 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
163e0 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
16400 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
16420 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
16440 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.
16460 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
16480 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
164a0 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
164c0 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
164e0 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
16500 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."..
16520 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
16540 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
16560 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
16580 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)......
165a0 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..........
165c0 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
165e0 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
16600 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
16620 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
16640 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))
16660 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))))
16680 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
166a0 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
166c0 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.
166e0 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.
16700 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
16720 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...'()))...
16740 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.
16760 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
16780 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)..
167a0 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
167c0 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))).............((=.
167e0 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
16800 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))).........
16820 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
16840 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.........
16860 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 ................................
16880 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))
168a0 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
168c0 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
168e0 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
16900 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
16920 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
16940 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
16960 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
16980 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
169a0 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
169c0 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
169e0 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
16a00 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
16a20 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
16a40 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
16a60 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.(=
16a80 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))....
16aa0 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).....
16ac0 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-
16ae0 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
16b00 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
16b20 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
16b40 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
16b60 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.
16b80 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))).......
16ba0 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
16bc0 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.
16be0 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.
16c00 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)))))))..(
16c20 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
16c40 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.
16c60 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
16c80 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
16ca0 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)))..
16cc0 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
16ce0 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
16d00 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
16d20 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
16d40 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
16d60 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
16d80 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
16da0 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
16dc0 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
16de0 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
16e00 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.;......
16e20 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
16e40 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-
16e60 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
16e80 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)....
16ea0 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
16ec0 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
16ee0 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)))..........................
16f00 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
16f20 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 ))............................((
16f40 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)..................
16f60 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
16f80 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))......................
16fa0 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)..........
16fc0 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
16fe0 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)).................
17000 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...................
17020 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
17040 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
17060 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
17080 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
170a0 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
170c0 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
170e0 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
17100 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.(-
17120 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
17140 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
17160 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-
17180 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)......................
171a0 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
171c0 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
171e0 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."..
17200 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-
17220 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)))..
17240 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
17260 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)..
17280 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
172a0 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
172c0 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
172e0 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
17300 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)).
17320 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
17340 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..
17360 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
17380 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.
173a0 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."
173c0 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
173e0 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)
17400 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
17420 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.")
17440 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
17460 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
17480 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
174a0 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-
174c0 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
174e0 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
17500 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).
17520 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
17540 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)...
17560 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
17580 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
175a0 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.
175c0 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
175e0 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
17600 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
17620 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
17640 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
17660 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
17680 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
176a0 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
176c0 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
176e0 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
17700 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
17720 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."...
17740 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
17760 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-
17780 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.(
177a0 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
177c0 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
177e0 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
17800 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.
17820 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
17840 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...
17860 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
17880 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.......................
178a0 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
178c0 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..........................
178e0 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
17900 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)............................
17920 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))))))
17940 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
17960 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
17980 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
179a0 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
179c0 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)
179e0 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
17a00 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
17a20 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.
17a40 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
17a60 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))....
17a80 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.
17aa0 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.(+.
17ac0 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)................
17ae0 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
17b00 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))..........
17b20 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
17b40 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)))
17b60 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 ................................
17b80 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-
17ba0 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.
17bc0 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
17be0 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..
17c00 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))).....
17c20 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))...
17c40 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
17c60 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))
17c80 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)..........
17ca0 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
17cc0 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....
17ce0 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
17d00 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))))...
17d20 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
17d40 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
17d60 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
17d80 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
17da0 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)).............
17dc0 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))))
17de0 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
17e00 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
17e20 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.........
17e40 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
17e60 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
17e80 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
17ea0 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
17ec0 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
17ee0 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
17f00 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-
17f20 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)))).....(
17f40 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.(
17f60 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.
17f80 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
17fa0 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
17fc0 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
17fe0 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."
18000 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
18020 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
18040 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)..........................(/.(
18060 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.
18080 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
180a0 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
180c0 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
180e0 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
18100 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
18120 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)...
18140 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)..........
18160 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..'())
18180 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
181a0 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
181c0 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.
181e0 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
18200 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
18220 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
18240 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))
18260 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
18280 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)).......
182a0 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.(+
182c0 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)))
182e0 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
18300 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
18320 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)..
18340 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
18360 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)).........
18380 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-
183a0 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
183c0 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
183e0 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).....
18400 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.?.)...........
18420 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).............
18440 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
18460 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
18480 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
184a0 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
184c0 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
184e0 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).(
18500 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
18520 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
18540 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
18560 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))...........(
18580 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
185a0 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)...
185c0 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
185e0 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-
18600 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.....
18620 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
18640 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
18660 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)...
18680 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
186a0 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
186c0 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
186e0 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))))..
18700 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
18720 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
18740 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
18760 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
18780 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
187a0 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
187c0 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....
187e0 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
18800 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
18820 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
18840 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))))).
18860 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
18880 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
188a0 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.
188c0 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
188e0 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)).......
18900 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
18920 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
18940 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.
18960 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)...........................
18980 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)).....
189a0 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
189c0 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
189e0 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.
18a00 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).
18a20 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
18a40 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)).........
18a60 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
18a80 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
18aa0 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-
18ac0 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."
18ae0 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
18b00 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
18b20 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
18b40 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
18b60 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
18b80 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
18ba0 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."..
18bc0 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-
18be0 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).................
18c00 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
18c20 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
18c40 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)))).
18c60 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.(
18c80 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
18ca0 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."...(
18cc0 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
18ce0 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))..........
18d00 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
18d20 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
18d40 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)...
18d60 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).......
18d80 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
18da0 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.
18dc0 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
18de0 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.
18e00 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
18e20 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)))........
18e40 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
18e60 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)))
18e80 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.(
18ea0 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....
18ec0 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
18ee0 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
18f00 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
18f20 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
18f40 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
18f60 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
18f80 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....(
18fa0 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))......
18fc0 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
18fe0 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).....................
19000 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
19020 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))))...
19040 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
19060 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)................
19080 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).
190a0 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
190c0 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
190e0 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.
19100 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
19120 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.
19140 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
19160 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)...
19180 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
191a0 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))).......
191c0 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)).
191e0 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)))...........
19200 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)
19220 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..................
19240 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))))))..(
19260 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.
19280 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.
192a0 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.((
192c0 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
192e0 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
19300 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
19320 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
19340 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
19360 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
19380 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
193a0 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
193c0 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.
193e0 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
19400 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
19420 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
19440 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........................
19460 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
19480 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
194a0 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
194c0 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
194e0 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.
19500 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
19520 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
19540 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
19560 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)).
19580 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.
195a0 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)))))
195c0 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
195e0 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
19600 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
19620 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
19640 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)).......'()..
19660 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
19680 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."
196a0 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
196c0 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
196e0 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.
19700 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
19720 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)
19740 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
19760 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
19780 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
197a0 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
197c0 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
197e0 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
19800 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
19820 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.
19840 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-
19860 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
19880 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
198a0 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
198c0 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
198e0 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
19900 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
19920 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.".
19940 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
19960 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
19980 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
199a0 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
199c0 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.".....(
199e0 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
19a00 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
19a20 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
19a40 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
19a60 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
19a80 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
19aa0 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)))
19ac0 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
19ae0 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.".
19b00 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
19b20 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
19b40 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 ................................
19b60 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
19b80 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)
19ba0 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
19bc0 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.
19be0 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)...
19c00 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
19c20 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
19c40 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
19c60 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)))..
19c80 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
19ca0 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
19cc0 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
19ce0 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
19d00 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
19d20 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))
19d40 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.(
19d60 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
19d80 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
19da0 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
19dc0 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)........................
19de0 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.(*.
19e00 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
19e20 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
19e40 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
19e60 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).
19e80 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
19ea0 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."
19ec0 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
19ee0 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)...............
19f00 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
19f20 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
19f40 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
19f60 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
19f80 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).....
19fa0 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-
19fc0 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))))..
19fe0 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.()
1a000 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-
1a020 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-
1a040 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
1a060 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
1a080 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
1a0a0 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
1a0c0 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)))).
1a0e0 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)..
1a100 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
1a120 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).
1a140 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
1a160 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
1a180 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.
1a1a0 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
1a1c0 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.((<.
1a1e0 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
1a200 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))...........((>
1a220 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
1a240 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.
1a260 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
1a280 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
1a2a0 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
1a2c0 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.().
1a2e0 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."..
1a300 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
1a320 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
1a340 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
1a360 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
1a380 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
1a3a0 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-
1a3c0 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
1a3e0 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)
1a400 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
1a420 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."...
1a440 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)
1a460 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
1a480 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
1a4a0 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
1a4c0 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
1a4e0 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
1a500 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.".
1a520 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
1a540 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-
1a560 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.................
1a580 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
1a5a0 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
1a5c0 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
1a5e0 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
1a600 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
1a620 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-
1a640 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,.
1a660 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."
1a680 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
1a6a0 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
1a6c0 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
1a6e0 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.
1a700 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-
1a720 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
1a740 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
1a760 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
1a780 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
1a7a0 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
1a7c0 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
1a7e0 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).........
1a800 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
1a820 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)........
1a840 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).
1a860 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
1a880 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.?.)))......
1a8a0 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
1a8c0 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
1a8e0 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)
1a900 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
1a920 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)))
1a940 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
1a960 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)))))
1a980 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
1a9a0 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.
1a9c0 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
1a9e0 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
1aa00 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
1aa20 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
1aa40 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.(
1aa60 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.
1aa80 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))..
1aaa0 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
1aac0 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
1aae0 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.
1ab00 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
1ab20 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)
1ab40 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
1ab60 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
1ab80 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
1aba0 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
1abc0 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
1abe0 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
1ac00 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
1ac20 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
1ac40 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
1ac60 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
1ac80 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
1aca0 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
1acc0 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..
1ace0 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.(+.
1ad00 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
1ad20 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
1ad40 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
1ad60 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
1ad80 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
1ada0 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))
1adc0 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
1ade0 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
1ae00 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
1ae20 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-
1ae40 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)......................
1ae60 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
1ae80 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))............................
1aea0 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............................(
1aec0 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
1aee0 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
1af00 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
1af20 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."...(
1af40 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))...
1af60 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
1af80 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."
1afa0 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
1afc0 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
1afe0 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
1b000 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
1b020 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
1b040 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
1b060 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
1b080 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
1b0a0 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
1b0c0 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
1b0e0 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
1b100 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
1b120 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
1b140 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
1b160 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-
1b180 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.
1b1a0 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
1b1c0 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
1b1e0 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.(
1b200 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
1b220 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................
1b240 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
1b260 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)..................
1b280 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
1b2a0 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-
1b2c0 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
1b2e0 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)))..
1b300 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
1b320 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))))..
1b340 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
1b360 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
1b380 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
1b3a0 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.
1b3c0 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
1b3e0 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
1b400 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
1b420 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
1b440 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
1b460 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.()
1b480 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
1b4a0 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))).
1b4c0 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.().
1b4e0 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
1b500 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
1b520 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
1b540 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
1b560 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
1b580 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
1b5a0 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
1b5c0 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
1b5e0 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
1b600 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
1b620 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)...............
1b640 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-
1b660 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-
1b680 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
1b6a0 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)))..
1b6c0 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
1b6e0 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))))..
1b700 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.(
1b720 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.".
1b740 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.(
1b760 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
1b780 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
1b7a0 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
1b7c0 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
1b7e0 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
1b800 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
1b820 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
1b840 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
1b860 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
1b880 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
1b8a0 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
1b8c0 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
1b8e0 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
1b900 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.....
1b920 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
1b940 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)...........
1b960 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
1b980 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
1b9a0 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
1b9c0 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
1b9e0 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
1ba00 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
1ba20 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
1ba40 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
1ba60 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
1ba80 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.((
1baa0 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
1bac0 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.......(
1bae0 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-
1bb00 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)..
1bb20 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
1bb40 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
1bb60 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))............................
1bb80 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
1bba0 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
1bbc0 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
1bbe0 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
1bc00 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.")..
1bc20 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.
1bc40 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
1bc60 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
1bc80 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))
1bca0 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
1bcc0 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
1bce0 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
1bd00 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
1bd20 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.
1bd40 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
1bd60 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
1bd80 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.....
1bda0 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
1bdc0 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-
1bde0 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
1be00 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
1be20 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
1be40 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
1be60 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))).....(
1be80 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-
1bea0 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...........
1bec0 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
1bee0 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))).
1bf00 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)).....
1bf20 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
1bf40 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)).......
1bf60 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))......
1bf80 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
1bfa0 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
1bfc0 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-
1bfe0 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
1c000 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
1c020 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
1c040 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
1c060 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
1c080 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
1c0a0 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
1c0c0 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
1c0e0 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
1c100 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.(
1c120 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))).....(
1c140 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
1c160 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)
1c180 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
1c1a0 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
1c1c0 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
1c1e0 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
1c200 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
1c220 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.(
1c240 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
1c260 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
1c280 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
1c2a0 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
1c2c0 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))
1c2e0 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)).....
1c300 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)))
1c320 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
1c340 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
1c360 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.((
1c380 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
1c3a0 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-
1c3c0 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
1c3e0 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).....
1c400 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)..
1c420 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
1c440 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.(
1c460 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
1c480 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
1c4a0 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
1c4c0 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
1c4e0 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
1c500 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
1c520 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))...........(
1c540 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
1c560 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))..................(
1c580 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
1c5a0 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.(
1c5c0 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))........
1c5e0 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
1c600 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
1c620 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)).......
1c640 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:
1c660 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))).........
1c680 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.
1c6a0 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))...
1c6c0 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
1c6e0 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)))))...
1c700 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)..
1c720 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))).
1c740 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
1c760 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
1c780 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
1c7a0 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
1c7c0 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
1c7e0 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
1c800 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
1c820 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
1c840 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)..
1c860 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
1c880 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
1c8a0 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))..(
1c8c0 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
1c8e0 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.
1c900 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."
1c920 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.(
1c940 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
1c960 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
1c980 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
1c9a0 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)...........
1c9c0 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
1c9e0 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
1ca00 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
1ca20 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
1ca40 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
1ca60 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
1ca80 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
1caa0 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)...
1cac0 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
1cae0 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."...(
1cb00 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.
1cb20 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
1cb40 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).............
1cb60 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
1cb80 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)))..................
1cba0 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)
1cbc0 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
1cbe0 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.
1cc00 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
1cc20 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
1cc40 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.
1cc60 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))).....
1cc80 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)........
1cca0 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
1ccc0 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
1cce0 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
1cd00 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...........
1cd20 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.
1cd40 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)))...
1cd60 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)......
1cd80 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).........
1cda0 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
1cdc0 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)))).
1cde0 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
1ce00 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)).
1ce20 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.(
1ce40 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).
1ce60 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
1ce80 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
1cea0 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
1cec0 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
1cee0 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)
1cf00 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
1cf20 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
1cf40 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...
1cf60 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.
1cf80 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
1cfa0 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
1cfc0 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))..........
1cfe0 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.
1d000 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)......
1d020 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
1d040 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
1d060 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
1d080 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....
1d0a0 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...
1d0c0 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..
1d0e0 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.
1d100 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
1d120 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
1d140 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)))...
1d160 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)
1d180 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
1d1a0 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.
1d1c0 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
1d1e0 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
1d200 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))))...
1d220 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.....
1d240 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)...
1d260 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
1d280 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)..........
1d2a0 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
1d2c0 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
1d2e0 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
1d300 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.
1d320 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.
1d340 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."..
1d360 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
1d380 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
1d3a0 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..
1d3c0 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).
1d3e0 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
1d400 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
1d420 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
1d440 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...................
1d460 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
1d480 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.(<.
1d4a0 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.(
1d4c0 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)).........................
1d4e0 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
1d500 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)
1d520 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))
1d540 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
1d560 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
1d580 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
1d5a0 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))).......
1d5c0 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
1d5e0 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
1d600 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))...
1d620 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
1d640 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
1d660 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-
1d680 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.
1d6a0 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
1d6c0 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..
1d6e0 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.(
1d700 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.
1d720 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
1d740 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)))...........(
1d760 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.(<.
1d780 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).........
1d7a0 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
1d7c0 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
1d7e0 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).....
1d800 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
1d820 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
1d840 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.(
1d860 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)......
1d880 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
1d8a0 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)).......(
1d8c0 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
1d8e0 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.
1d900 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)..
1d920 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
1d940 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
1d960 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)).
1d980 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
1d9a0 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
1d9c0 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))
1d9e0 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).
1da00 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
1da20 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
1da40 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
1da60 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
1da80 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
1daa0 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
1dac0 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
1dae0 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
1db00 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
1db20 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
1db40 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
1db60 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
1db80 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
1dba0 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-
1dbc0 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
1dbe0 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.".....(
1dc00 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
1dc20 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
1dc40 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
1dc60 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
1dc80 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
1dca0 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
1dcc0 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
1dce0 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)...
1dd00 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
1dd20 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
1dd40 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
1dd60 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
1dd80 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
1dda0 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
1ddc0 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))........
1dde0 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
1de00 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
1de20 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
1de40 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
1de60 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
1de80 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
1dea0 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
1dec0 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
1dee0 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
1df00 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.
1df20 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")...
1df40 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
1df60 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-
1df80 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))......
1dfa0 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
1dfc0 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.
1dfe0 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.
1e000 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........
1e020 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
1e040 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))
1e060 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
1e080 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)..
1e0a0 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
1e0c0 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
1e0e0 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
1e100 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
1e120 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
1e140 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)).......
1e160 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
1e180 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
1e1a0 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.
1e1c0 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
1e1e0 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
1e200 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))....
1e220 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)).
1e240 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
1e260 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
1e280 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
1e2a0 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."..
1e2c0 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
1e2e0 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
1e300 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
1e320 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
1e340 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
1e360 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
1e380 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"
1e3a0 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
1e3c0 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-
1e3e0 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
1e400 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.
1e420 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)..
1e440 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")...(
1e460 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
1e480 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).....
1e4a0 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.
1e4c0 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
1e4e0 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
1e500 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.(
1e520 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
1e540 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)...
1e560 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
1e580 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
1e5a0 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
1e5c0 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
1e5e0 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
1e600 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)).......
1e620 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
1e640 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
1e660 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
1e680 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
1e6a0 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
1e6c0 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
1e6e0 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))...
1e700 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
1e720 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
1e740 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.")
1e760 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
1e780 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
1e7a0 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.(>
1e7c0 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.
1e7e0 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
1e800 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
1e820 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
1e840 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
1e860 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."..
1e880 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
1e8a0 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
1e8c0 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
1e8e0 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
1e900 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.........
1e920 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).........
1e940 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
1e960 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."...")).....
1e980 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
1e9a0 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
1e9c0 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.(
1e9e0 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
1ea00 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))))...
1ea20 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
1ea40 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
1ea60 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
1ea80 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
1eaa0 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
1eac0 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
1eae0 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
1eb00 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.....
1eb20 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
1eb40 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
1eb60 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
1eb80 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."."........(
1eba0 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
1ebc0 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
1ebe0 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
1ec00 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
1ec20 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
1ec40 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
1ec60 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
1ec80 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
1eca0 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
1ecc0 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
1ece0 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
1ed00 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
1ed20 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
1ed40 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.(
1ed60 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
1ed80 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
1eda0 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
1edc0 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.
1ede0 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.
1ee00 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-
1ee20 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
1ee40 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
1ee60 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.........................
1ee80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1efa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1efc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1efe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f000 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.
1f020 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..............................
1f040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f060 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
1f080 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...
1f0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f100 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...................
1f120 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...................
1f140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f200 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
1f220 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
1f240 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-
1f260 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
1f280 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"
1f2a0 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
1f2c0 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
1f2e0 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
1f300 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"))
1f320 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
1f340 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.
1f360 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")).
1f380 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
1f3a0 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
1f3c0 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
1f3e0 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"
1f400 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
1f420 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
1f440 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
1f460 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:.............................
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 ................................