home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Shareware World / Info / For Developers / Mops 3.4.sea / Mops ƒ / Class < prev    next >
MacBinary  |  1999-02-20  |  78.1 KB  |  [TEXT/MSET]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: Class

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sat Feb 20 10:13:57 1999, modified Sat Feb 20 10:13:57 1999, creator 'MSET', type ASCII, 79469 bytes "Class" , at 0x136ed 381 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-2K) default (weak)
16% TrID MacBinary 2 default (weak)
0% TrID Sybase iAnywhere database files default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MSET]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 05 43 6c 61 73 73 00 | 00 00 00 00 00 00 00 00 |..Class.|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 53 45 | 54 01 00 00 00 00 00 00 |.TEXTMSE|T.......|
|00000050| 00 00 00 00 01 36 6d 00 | 00 01 7d b2 f4 81 b5 b2 |.....6m.|..}.....|
|00000060| f4 81 b5 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 0e e6 00 00 |........|........|
|00000080| 5c 20 48 69 67 68 2d 6c | 65 76 65 6c 20 63 6c 61 |\ High-l|evel cla|
|00000090| 73 73 2f 6f 62 6a 65 63 | 74 20 69 6d 70 6c 65 6d |ss/objec|t implem|
|000000a0| 65 6e 74 61 74 69 6f 6e | 2e 0d 0d 63 72 20 2e 28 |entation|...cr .(|
|000000b0| 20 6c 6f 61 64 69 6e 67 | 20 43 6c 61 73 73 2e 2e | loading| Class..|
|000000c0| 2e 29 0d 0d 0d 5c 20 3a | 20 3e 63 6c 61 73 73 78 |.)...\ :| >classx|
|000000d0| 74 09 09 09 3e 63 6c 61 | 73 73 43 66 61 20 20 3b |t...>cla|ssCfa ;|
|000000e0| 0d 5c 20 3a 20 61 6c 69 | 67 6e 65 64 5f 61 64 64 |.\ : ali|gned_add|
|000000f0| 72 3f 09 09 63 66 61 3f | 20 20 3b 0d 0d 0d 28 2a |r?..cfa?| ;...(*|
|00000100| 0d 4e 6f 74 65 20 74 68 | 61 74 20 74 68 65 20 6f |.Note th|at the o|
|00000110| 62 6a 65 63 74 20 68 65 | 61 64 65 72 20 66 6f 72 |bject he|ader for|
|00000120| 6d 61 74 20 69 73 20 64 | 6f 63 75 6d 65 6e 74 65 |mat is d|ocumente|
|00000130| 64 20 61 74 20 22 6f 62 | 6a 65 63 74 20 62 75 69 |d at "ob|ject bui|
|00000140| 6c 64 69 6e 67 22 0d 20 | 62 65 6c 6f 77 2e 0d 0d |lding". |below...|
|00000150| 4a 61 6e 20 39 36 09 6d | 72 68 2f 69 6d 6b 09 41 |Jan 96.m|rh/imk.A|
|00000160| 64 64 65 64 20 76 61 72 | 69 6f 75 73 20 6d 6f 64 |dded var|ious mod|
|00000170| 73 20 74 6f 20 6f 62 6a | 65 63 74 20 69 6e 69 74 |s to obj|ect init|
|00000180| 69 61 6c 69 7a 61 74 69 | 6f 6e 20 63 6f 6e 74 72 |ializati|on contr|
|00000190| 69 62 75 74 65 64 0d 09 | 09 09 09 62 79 20 49 76 |ibuted..|...by Iv|
|000001a0| 6f 20 4b 72 61 62 2e 0d | 09 09 09 09 0d 4a 75 6c |o Krab..|.....Jul|
|000001b0| 20 39 36 09 6d 72 68 09 | 09 4d 6f 64 73 20 6d 61 | 96.mrh.|.Mods ma|
|000001c0| 64 65 20 74 6f 20 73 75 | 70 70 6f 72 74 20 6c 61 |de to su|pport la|
|000001d0| 72 67 65 5f 6f 62 6a 5f | 61 72 72 61 79 0d 09 09 |rge_obj_|array...|
|000001e0| 6d 72 68 2f 72 68 09 49 | 6e 63 6f 72 70 6f 72 61 |mrh/rh.I|ncorpora|
|000001f0| 74 65 64 20 62 75 67 20 | 66 69 78 20 66 72 6f 6d |ted bug |fix from|
|00000200| 20 52 65 69 6e 6f 75 74 | 20 48 65 65 63 6b 2c 20 | Reinout| Heeck, |
|00000210| 73 6f 20 6d 75 6c 74 69 | 70 6c 65 0d 09 09 09 09 |so multi|ple.....|
|00000220| 20 72 65 63 6f 72 64 73 | 20 69 6e 20 75 6e 69 6f | records| in unio|
|00000230| 6e 73 20 77 6f 72 6b 2e | 0d 53 65 70 20 39 36 09 |ns work.|.Sep 96.|
|00000240| 6d 72 68 09 09 42 65 74 | 74 65 72 20 69 6e 6c 69 |mrh..Bet|ter inli|
|00000250| 6e 65 7b 20 2d 20 65 6c | 69 6d 69 6e 61 74 69 6e |ne{ - el|iminatin|
|00000260| 67 20 65 78 70 6c 69 63 | 69 74 20 6f 75 74 2d 6f |g explic|it out-o|
|00000270| 66 2d 6c 69 6e 65 20 63 | 6f 64 65 0d 09 09 09 09 |f-line c|ode.....|
|00000280| 38 2d 77 61 79 20 68 61 | 73 68 69 6e 67 20 6f 66 |8-way ha|shing of|
|00000290| 20 6d 65 74 68 6f 64 73 | 0d 0d 3d 3d 3d 3d 3d 3d | methods|..======|
|000002a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002e0| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 0d 48 65 72 65 20 61 |========|..Here a|
|000002f0| 72 65 20 61 6c 6c 20 6f | 75 72 20 76 61 72 69 6f |re all o|ur vario|
|00000300| 75 73 20 63 6c 61 73 73 | 2f 6f 62 6a 65 63 74 20 |us class|/object |
|00000310| 66 6f 72 6d 61 74 73 3a | 0d 0d 0d 0d 09 09 09 3d |formats:|.......=|
|00000320| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000330| 20 4f 62 6a 65 63 74 20 | 68 65 61 64 65 72 20 3d | Object |header =|
|00000340| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000350| 3d 3d 3d 3d 3d 0d 0d 4e | 6f 74 65 20 69 66 20 74 |=====..N|ote if t|
|00000360| 68 65 20 6f 62 6a 20 69 | 73 20 61 6e 20 69 76 61 |he obj i|s an iva|
|00000370| 72 2c 20 69 74 20 64 6f | 65 73 6e 27 74 20 68 61 |r, it do|esn't ha|
|00000380| 76 65 20 61 20 68 65 61 | 64 65 72 20 69 66 20 69 |ve a hea|der if i|
|00000390| 74 27 73 20 69 6e 20 61 | 20 72 65 63 6f 72 64 2c |t's in a| record,|
|000003a0| 0d 75 6e 6c 65 73 73 20 | 74 68 65 20 69 76 61 72 |.unless |the ivar|
|000003b0| 20 69 73 20 69 6e 64 65 | 78 65 64 2e 20 20 49 6e | is inde|xed. In|
|000003c0| 64 65 78 65 64 20 69 76 | 61 72 73 20 61 6c 77 61 |dexed iv|ars alwa|
|000003d0| 79 73 20 68 61 76 65 20 | 68 65 61 64 65 72 73 2c |ys have |headers,|
|000003e0| 20 6e 6f 20 6d 61 74 74 | 65 72 0d 77 68 61 74 2c | no matt|er.what,|
|000003f0| 20 73 69 6e 63 65 20 74 | 68 65 20 69 6e 64 65 78 | since t|he index|
|00000400| 69 6e 67 20 63 6f 64 65 | 20 72 65 6c 69 65 73 20 |ing code| relies |
|00000410| 6f 6e 20 69 74 2e 0d 0d | 0d 32 20 62 79 74 65 73 |on it...|.2 bytes|
|00000420| 09 09 4f 66 66 73 65 74 | 20 74 6f 20 74 68 65 20 |..Offset| to the |
|00000430| 69 6e 64 65 78 65 64 20 | 61 72 65 61 2c 20 72 65 |indexed |area, re|
|00000440| 6c 20 74 6f 20 74 68 65 | 20 63 6c 61 73 73 20 70 |l to the| class p|
|00000450| 6f 69 6e 74 65 72 0d 09 | 09 09 28 77 68 69 63 68 |ointer..|..(which|
|00000460| 20 66 6f 6c 6c 6f 77 73 | 29 2e 20 20 49 66 20 6e | follows|). If n|
|00000470| 6f 74 20 69 6e 64 65 78 | 65 64 2c 20 74 68 69 73 |ot index|ed, this|
|00000480| 20 77 69 6c 6c 20 62 65 | 20 36 2e 0d 0d 34 20 62 | will be| 6...4 b|
|00000490| 79 74 65 73 09 09 43 6c | 61 73 73 20 70 6f 69 6e |ytes..Cl|ass poin|
|000004a0| 74 65 72 20 28 72 65 6c | 6f 63 61 74 61 62 6c 65 |ter (rel|ocatable|
|000004b0| 29 2e 0d 0d 32 20 62 79 | 74 65 73 09 09 4f 66 66 |)...2 by|tes..Off|
|000004c0| 73 65 74 20 66 72 6f 6d | 20 74 68 65 20 64 61 74 |set from| the dat|
|000004d0| 61 20 73 74 61 72 74 20 | 74 6f 20 74 68 65 20 63 |a start |to the c|
|000004e0| 6c 61 73 73 20 70 6f 69 | 6e 74 65 72 2e 0d 09 09 |lass poi|nter....|
|000004f0| 09 46 6f 72 20 73 69 6d | 70 6c 65 20 6f 62 6a 65 |.For sim|ple obje|
|00000500| 63 74 73 20 28 69 2e 65 | 2e 20 6e 6f 74 20 65 6d |cts (i.e|. not em|
|00000510| 62 65 64 64 65 64 29 2c | 20 74 68 69 73 20 69 73 |bedded),| this is|
|00000520| 20 2d 36 2e 0d 09 09 09 | 46 6f 72 20 65 6d 62 65 | -6.....|For embe|
|00000530| 64 64 65 64 20 6f 62 6a | 65 63 74 73 2c 20 69 74 |dded obj|ects, it|
|00000540| 20 77 69 6c 6c 20 62 65 | 20 6d 6f 72 65 20 6e 65 | will be| more ne|
|00000550| 67 61 74 69 76 65 2e 20 | 20 4e 6f 74 65 20 69 74 |gative. | Note it|
|00000560| 0d 09 09 09 77 69 6c 6c | 20 61 6c 77 61 79 73 20 |....will| always |
|00000570| 62 65 20 6e 65 67 61 74 | 69 76 65 2e 0d 0d 28 6f |be negat|ive...(o|
|00000580| 62 6a 65 63 74 27 73 20 | 64 61 74 61 20 73 74 61 |bject's |data sta|
|00000590| 72 74 73 20 68 65 72 65 | 29 0d 0d 46 6f 72 20 69 |rts here|)..For i|
|000005a0| 6e 64 65 78 65 64 20 6f | 62 6a 65 63 74 73 2c 20 |ndexed o|bjects, |
|000005b0| 74 68 65 20 69 6e 64 65 | 78 65 64 20 61 72 65 61 |the inde|xed area|
|000005c0| 20 28 61 66 74 65 72 20 | 74 68 65 20 69 76 61 72 | (after |the ivar|
|000005d0| 73 29 20 69 73 20 70 72 | 65 63 65 64 65 64 20 62 |s) is pr|eceded b|
|000005e0| 79 0d 74 68 65 20 69 6e | 64 65 78 65 64 20 64 65 |y.the in|dexed de|
|000005f0| 73 63 72 69 70 74 6f 72 | 20 28 78 64 65 73 63 29 |scriptor| (xdesc)|
|00000600| 20 77 69 74 68 20 74 68 | 69 73 20 66 6f 72 6d 61 | with th|is forma|
|00000610| 74 3a 0d 0d 32 20 62 79 | 74 65 73 09 09 57 69 64 |t:..2 by|tes..Wid|
|00000620| 74 68 20 6f 66 20 69 6e | 64 65 78 65 64 20 65 6c |th of in|dexed el|
|00000630| 65 6d 65 6e 74 73 20 28 | 69 6e 20 62 79 74 65 73 |ements (|in bytes|
|00000640| 29 0d 34 20 62 79 74 65 | 73 09 09 4e 75 6d 62 65 |).4 byte|s..Numbe|
|00000650| 72 20 6f 66 20 65 6c 65 | 6d 65 6e 74 73 20 6d 69 |r of ele|ments mi|
|00000660| 6e 75 73 20 31 20 28 69 | 2e 65 2e 20 4c 49 4d 49 |nus 1 (i|.e. LIMI|
|00000670| 54 2d 31 29 2e 0d 09 09 | 09 54 68 65 20 6c 6f 77 |T-1)....|.The low|
|00000680| 20 77 6f 72 64 20 6f 66 | 20 74 68 69 73 20 69 73 | word of| this is|
|00000690| 20 75 73 65 64 20 62 79 | 20 61 20 43 48 4b 20 69 | used by| a CHK i|
|000006a0| 6e 73 74 72 75 63 74 69 | 6f 6e 0d 09 09 09 69 66 |nstructi|on....if|
|000006b0| 20 23 65 6c 65 6d 65 6e | 74 73 20 69 73 20 3c 20 | #elemen|ts is < |
|000006c0| 33 32 4b 2e 0d 0d 49 66 | 20 69 6e 64 65 78 69 6e |32K...If| indexin|
|000006d0| 67 20 69 73 20 61 74 74 | 65 6d 70 74 65 64 20 6f |g is att|empted o|
|000006e0| 6e 20 61 20 6e 6f 6e 2d | 69 6e 64 65 78 65 64 20 |n a non-|indexed |
|000006f0| 6f 62 6a 65 63 74 2c 20 | 74 68 65 20 22 6f 66 66 |object, |the "off|
|00000700| 73 65 74 20 74 6f 20 74 | 68 65 0d 69 6e 64 65 78 |set to t|he.index|
|00000710| 65 64 20 61 72 65 61 22 | 20 77 69 6c 6c 20 62 65 |ed area"| will be|
|00000720| 20 36 2c 20 74 61 6b 69 | 6e 67 20 75 73 20 74 6f | 6, taki|ng us to|
|00000730| 20 74 68 65 20 62 65 67 | 69 6e 6e 69 6e 67 20 6f | the beg|inning o|
|00000740| 66 20 74 68 65 20 6f 62 | 6a 65 63 74 27 73 0d 64 |f the ob|ject's.d|
|00000750| 61 74 61 2e 20 20 54 68 | 65 20 43 48 4b 20 69 6e |ata. Th|e CHK in|
|00000760| 73 74 72 75 63 74 69 6f | 6e 20 77 69 6c 6c 20 62 |structio|n will b|
|00000770| 65 20 64 6f 6e 65 20 61 | 74 20 6f 66 66 73 65 74 |e done a|t offset|
|00000780| 20 2d 32 20 66 72 6f 6d | 20 74 68 65 72 65 2c 20 | -2 from| there, |
|00000790| 77 68 69 63 68 0d 77 6f | 6e 27 74 20 62 65 20 74 |which.wo|n't be t|
|000007a0| 68 65 20 23 65 6c 65 6d | 65 6e 74 73 2c 20 6f 66 |he #elem|ents, of|
|000007b0| 20 63 6f 75 72 73 65 2c | 20 62 75 74 20 77 69 6c | course,| but wil|
|000007c0| 6c 20 62 65 20 74 68 65 | 20 6f 66 66 73 65 74 20 |l be the| offset |
|000007d0| 74 6f 20 74 68 65 0d 63 | 6c 61 73 73 20 70 6f 69 |to the.c|lass poi|
|000007e0| 6e 74 65 72 20 57 48 49 | 43 48 20 49 53 20 41 4c |nter WHI|CH IS AL|
|000007f0| 57 41 59 53 20 4e 45 47 | 41 54 49 56 45 21 21 20 |WAYS NEG|ATIVE!! |
|00000800| 20 54 68 75 73 20 74 68 | 65 20 43 48 4b 20 77 69 | Thus th|e CHK wi|
|00000810| 6c 6c 20 61 6c 77 61 79 | 73 20 66 61 69 6c 21 0d |ll alway|s fail!.|
|00000820| 54 68 69 73 20 77 61 73 | 20 61 20 64 65 6c 69 62 |This was| a delib|
|00000830| 65 72 61 74 65 20 74 72 | 69 63 6b 20 2d 20 61 62 |erate tr|ick - ab|
|00000840| 6f 75 74 20 74 68 65 20 | 6f 6e 6c 79 20 70 6c 61 |out the |only pla|
|00000850| 63 65 20 69 6e 20 4d 6f | 70 73 20 49 27 76 65 0d |ce in Mo|ps I've.|
|00000860| 72 65 73 6f 72 74 65 64 | 20 74 6f 20 61 6e 79 74 |resorted| to anyt|
|00000870| 68 69 6e 67 20 6c 69 6b | 65 20 74 68 69 73 2c 20 |hing lik|e this, |
|00000880| 79 6f 75 27 6c 6c 20 62 | 65 20 67 6c 61 64 20 74 |you'll b|e glad t|
|00000890| 6f 20 6b 6e 6f 77 2e 20 | 20 28 41 74 20 6c 65 61 |o know. | (At lea|
|000008a0| 73 74 20 49 27 76 65 0d | 64 65 73 63 72 69 62 65 |st I've.|describe|
|000008b0| 64 20 69 74 20 66 6f 72 | 20 79 6f 75 21 29 0d 0d |d it for| you!)..|
|000008c0| 54 68 69 73 20 74 72 69 | 63 6b 20 68 61 73 20 76 |This tri|ck has v|
|000008d0| 65 72 79 20 6c 69 6d 69 | 74 65 64 20 75 73 65 66 |ery limi|ted usef|
|000008e0| 75 6c 6e 65 73 73 20 6e | 6f 77 2c 20 73 69 6e 63 |ulness n|ow, sinc|
|000008f0| 65 20 61 6c 6c 20 74 68 | 65 20 69 6e 64 65 78 65 |e all th|e indexe|
|00000900| 64 0d 6d 65 74 68 6f 64 | 73 20 61 72 65 20 6e 6f |d.method|s are no|
|00000910| 77 20 64 65 66 69 6e 65 | 64 20 69 6e 20 49 4e 44 |w define|d in IND|
|00000920| 45 58 45 44 2d 4f 42 4a | 20 72 61 74 68 65 72 20 |EXED-OBJ| rather |
|00000930| 74 68 61 6e 20 4f 42 4a | 45 43 54 2c 20 73 6f 20 |than OBJ|ECT, so |
|00000940| 6e 6f 72 6d 61 6c 6c 79 | 0d 61 6e 20 69 6e 64 65 |normally|.an inde|
|00000950| 78 65 64 20 6d 65 74 68 | 6f 64 20 6f 6e 20 61 20 |xed meth|od on a |
|00000960| 6e 6f 6e 2d 69 6e 64 65 | 78 65 64 20 63 6c 61 73 |non-inde|xed clas|
|00000970| 73 20 77 6f 75 6c 64 6e | 27 74 20 62 65 20 66 6f |s wouldn|'t be fo|
|00000980| 75 6e 64 2e 20 20 48 6f | 77 65 76 65 72 0d 74 68 |und. Ho|wever.th|
|00000990| 65 20 63 68 65 63 6b 20 | 63 6f 6d 65 73 20 66 6f |e check |comes fo|
|000009a0| 72 20 66 72 65 65 2c 20 | 73 6f 20 49 27 76 65 20 |r free, |so I've |
|000009b0| 72 65 74 61 69 6e 65 64 | 20 69 74 2e 0d 0d 0d 09 |retained| it.....|
|000009c0| 09 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 20 |.=======|======= |
|000009d0| 20 43 6c 61 73 73 20 64 | 69 63 74 69 6f 6e 61 72 | Class d|ictionar|
|000009e0| 79 20 65 6e 74 72 79 20 | 20 3d 3d 3d 3d 3d 3d 3d |y entry | =======|
|000009f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0d 6c 69 6e 6b 2f |========|=..link/|
|00000a00| 6e 61 6d 65 2f 68 6e 64 | 6c 72 09 61 73 20 66 6f |name/hnd|lr.as fo|
|00000a10| 72 20 6e 6f 72 6d 61 6c | 20 63 6f 6c 6f 6e 20 64 |r normal| colon d|
|00000a20| 65 66 69 6e 69 74 69 6f | 6e 73 0d 34 20 62 79 74 |efinitio|ns.4 byt|
|00000a30| 65 73 09 09 09 63 61 6c | 6c 20 74 6f 20 42 4c 44 |es...cal|l to BLD|
|00000a40| 20 2d 20 74 68 65 20 77 | 6f 72 64 20 77 68 69 63 | - the w|ord whic|
|00000a50| 68 20 62 75 69 6c 64 73 | 20 61 6e 20 6f 62 6a 65 |h builds| an obje|
|00000a60| 63 74 0d 33 32 20 62 79 | 74 65 73 09 09 6c 69 6e |ct.32 by|tes..lin|
|00000a70| 6b 73 20 74 6f 20 38 2d | 77 61 79 20 68 61 73 68 |ks to 8-|way hash|
|00000a80| 65 64 20 6d 65 74 68 6f | 64 20 63 68 61 69 6e 73 |ed metho|d chains|
|00000a90| 20 28 72 65 6c 61 74 69 | 76 65 29 0d 34 20 62 79 | (relati|ve).4 by|
|00000aa0| 74 65 73 09 09 09 6c 69 | 6e 6b 20 74 6f 20 69 76 |tes...li|nk to iv|
|00000ab0| 61 72 20 63 68 61 69 6e | 20 28 72 65 6c 61 74 69 |ar chain| (relati|
|00000ac0| 76 65 29 0d 32 20 62 79 | 74 65 73 09 09 09 6e 6f |ve).2 by|tes...no|
|00000ad0| 6e 2d 69 6e 64 65 78 65 | 64 20 64 61 74 61 20 6c |n-indexe|d data l|
|00000ae0| 65 6e 67 74 68 0d 32 20 | 62 79 74 65 73 09 09 09 |ength.2 |bytes...|
|00000af0| 77 69 64 74 68 20 6f 66 | 20 69 6e 64 65 78 65 64 |width of| indexed|
|00000b00| 20 65 6c 65 6d 65 6e 74 | 73 2c 20 6f 72 20 7a 65 | element|s, or ze|
|00000b10| 72 6f 20 69 66 20 6e 6f | 74 20 69 6e 64 65 78 65 |ro if no|t indexe|
|00000b20| 64 0d 32 20 62 79 74 65 | 73 09 09 09 66 6c 61 67 |d.2 byte|s...flag|
|00000b30| 73 0d 32 20 62 79 74 65 | 73 09 09 09 22 78 64 69 |s.2 byte|s..."xdi|
|00000b40| 73 70 6c 20 6f 66 66 73 | 22 20 2d 20 74 68 65 20 |spl offs|" - the |
|00000b50| 69 76 61 72 20 6f 66 66 | 73 65 74 20 77 68 65 72 |ivar off|set wher|
|00000b60| 65 20 69 6e 64 65 78 69 | 6e 67 20 73 74 61 72 74 |e indexi|ng start|
|00000b70| 73 0d 09 09 09 09 20 28 | 75 73 65 64 20 62 79 20 |s..... (|used by |
|00000b80| 6c 61 72 67 65 5f 6f 62 | 6a 5f 61 72 72 61 79 73 |large_ob|j_arrays|
|00000b90| 29 2c 20 6f 72 20 7a 65 | 72 6f 20 69 66 20 6e 6f |), or ze|ro if no|
|00000ba0| 6e 65 2e 0d 34 28 6e 2b | 31 29 20 62 79 74 65 73 |ne..4(n+|1) bytes|
|00000bb0| 09 6e 2d 77 61 79 20 74 | 6f 20 73 75 70 65 72 63 |.n-way t|o superc|
|00000bc0| 6c 61 73 73 65 73 20 28 | 6e 20 72 65 6c 6f 63 61 |lasses (|n reloca|
|00000bd0| 74 61 62 6c 65 20 61 64 | 64 72 73 20 74 65 72 6d |table ad|drs term|
|00000be0| 69 6e 61 74 65 64 20 62 | 79 20 7a 65 72 6f 29 0d |inated b|y zero).|
|00000bf0| 0d 46 6c 61 67 20 62 69 | 74 73 3a 0d 09 24 30 30 |.Flag bi|ts:..$00|
|00000c00| 30 31 09 09 22 6c 61 72 | 67 65 22 20 2d 20 69 6e |01.."lar|ge" - in|
|00000c10| 64 65 78 65 64 20 77 69 | 74 68 20 3e 20 36 34 4b |dexed wi|th > 64K|
|00000c20| 20 65 6c 65 6d 65 6e 74 | 73 2e 0d 09 24 30 30 30 | element|s...$000|
|00000c30| 32 09 09 63 6c 61 73 73 | 20 69 73 20 65 78 70 6f |2..class| is expo|
|00000c40| 72 74 65 64 20 66 72 6f | 6d 20 61 20 6d 6f 64 75 |rted fro|m a modu|
|00000c50| 6c 65 0d 0d 0d 09 09 3d | 3d 3d 3d 3d 3d 3d 3d 3d |le.....=|========|
|00000c60| 3d 3d 3d 3d 3d 20 20 69 | 76 61 72 20 64 69 63 74 |===== i|var dict|
|00000c70| 69 6f 6e 61 72 79 20 65 | 6e 74 72 79 20 20 3d 3d |ionary e|ntry ==|
|00000c80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0d |========|======..|
|00000c90| 34 20 62 79 74 65 73 09 | 09 68 61 73 68 65 64 20 |4 bytes.|.hashed |
|00000ca0| 6e 61 6d 65 0d 34 20 62 | 79 74 65 73 09 09 6c 69 |name.4 b|ytes..li|
|00000cb0| 6e 6b 20 74 6f 20 70 72 | 65 76 20 69 76 61 72 20 |nk to pr|ev ivar |
|00000cc0| 64 69 63 20 65 6e 74 72 | 79 20 28 72 65 6c 61 74 |dic entr|y (relat|
|00000cd0| 69 76 65 20 61 64 64 72 | 29 0d 34 20 62 79 74 65 |ive addr|).4 byte|
|00000ce0| 73 09 09 63 6c 61 73 73 | 20 70 6f 69 6e 74 65 72 |s..class| pointer|
|00000cf0| 20 28 72 65 6c 6f 63 61 | 74 61 62 6c 65 29 0d 32 | (reloca|table).2|
|00000d00| 20 62 79 74 65 73 09 09 | 6f 66 66 73 65 74 20 6f | bytes..|offset o|
|00000d10| 66 20 74 68 69 73 20 69 | 76 61 72 27 73 20 64 61 |f this i|var's da|
|00000d20| 74 61 20 66 72 6f 6d 20 | 74 68 65 20 62 61 73 65 |ta from |the base|
|00000d30| 20 61 64 64 72 20 6f 66 | 20 74 68 65 20 63 6c 61 | addr of| the cla|
|00000d40| 73 73 0d 32 20 62 79 74 | 65 73 09 09 6e 75 6d 62 |ss.2 byt|es..numb|
|00000d50| 65 72 20 6f 66 20 65 6c | 65 6d 65 6e 74 73 20 69 |er of el|ements i|
|00000d60| 66 20 69 6e 64 65 78 65 | 64 2c 20 6f 72 20 7a 65 |f indexe|d, or ze|
|00000d70| 72 6f 20 69 66 20 6e 6f | 74 0d 32 20 62 79 74 65 |ro if no|t.2 byte|
|00000d80| 73 09 09 66 6c 61 67 73 | 0d 0d 46 6c 61 67 20 62 |s..flags|..Flag b|
|00000d90| 69 74 73 3a 20 28 7a 65 | 72 6f 20 69 73 20 72 69 |its: (ze|ro is ri|
|00000da0| 67 68 74 6d 6f 73 74 20 | 2d 20 77 68 61 74 20 77 |ghtmost |- what w|
|00000db0| 69 6c 6c 20 77 65 20 64 | 6f 20 6f 6e 20 50 6f 77 |ill we d|o on Pow|
|00000dc0| 65 72 50 43 3f 29 0d 0d | 62 69 74 20 30 09 09 31 |erPC?)..|bit 0..1|
|00000dd0| 20 3d 20 69 76 61 72 20 | 67 65 74 73 20 61 6e 20 | = ivar |gets an |
|00000de0| 6f 62 6a 65 63 74 20 68 | 65 61 64 65 72 0d 62 69 |object h|eader.bi|
|00000df0| 74 20 31 09 09 31 20 3d | 20 74 68 69 73 20 69 73 |t 1..1 =| this is|
|00000e00| 20 61 20 73 74 61 74 69 | 63 20 69 76 61 72 0d 62 | a stati|c ivar.b|
|00000e10| 69 74 20 32 09 09 31 20 | 3d 20 74 68 69 73 20 69 |it 2..1 |= this i|
|00000e20| 73 20 61 20 70 75 62 6c | 69 63 20 69 76 61 72 0d |s a publ|ic ivar.|
|00000e30| 0d 4e 6f 74 65 3a 20 61 | 6c 74 68 6f 75 67 68 20 |.Note: a|lthough |
|00000e40| 69 6e 64 65 78 65 64 20 | 6f 62 6a 65 63 74 73 20 |indexed |objects |
|00000e50| 63 61 6e 20 68 61 76 65 | 20 32 5e 5e 33 32 20 65 |can have| 2^^32 e|
|00000e60| 6c 65 6d 65 6e 74 73 2c | 20 77 65 20 61 72 65 0d |lements,| we are.|
|00000e70| 61 73 73 75 6d 69 6e 67 | 20 74 68 61 74 20 61 6e |assuming| that an|
|00000e80| 20 69 76 61 72 20 63 61 | 6e 27 74 20 68 61 76 65 | ivar ca|n't have|
|00000e90| 20 6d 6f 72 65 20 74 68 | 61 6e 20 36 34 4b 20 65 | more th|an 64K e|
|00000ea0| 6c 65 6d 65 6e 74 73 2e | 20 20 54 68 69 73 20 69 |lements.| This i|
|00000eb0| 73 0d 62 65 63 61 75 73 | 65 20 77 65 20 61 72 65 |s.becaus|e we are|
|00000ec0| 20 6c 69 6d 69 74 69 6e | 67 20 74 68 65 20 6d 61 | limitin|g the ma|
|00000ed0| 78 69 6d 75 6d 20 69 76 | 61 72 20 6c 65 6e 67 74 |ximum iv|ar lengt|
|00000ee0| 68 20 6f 66 20 61 20 63 | 6c 61 73 73 20 74 6f 20 |h of a c|lass to |
|00000ef0| 36 34 4b 20 62 79 74 65 | 73 2c 0d 77 68 69 63 68 |64K byte|s,.which|
|00000f00| 20 69 73 20 61 20 73 74 | 72 69 63 74 65 72 20 63 | is a st|ricter c|
|00000f10| 6f 6e 64 69 74 69 6f 6e | 2e 20 20 57 6f 75 6c 64 |ondition|. Would|
|00000f20| 20 61 6e 79 62 6f 64 79 | 20 77 61 6e 74 20 61 20 | anybody| want a |
|00000f30| 6c 6f 6e 67 65 72 20 69 | 76 61 72 20 74 68 61 6e |longer i|var than|
|00000f40| 0d 74 68 69 73 3f 3f 0d | 0d 09 09 3d 3d 3d 3d 3d |.this??.|...=====|
|00000f50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 20 20 4d 65 74 68 6f |========|= Metho|
|00000f60| 64 20 64 69 63 74 69 6f | 6e 61 72 79 20 65 6e 74 |d dictio|nary ent|
|00000f70| 72 79 20 20 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |ry ====|========|
|00000f80| 3d 3d 3d 3d 0d 0d 34 20 | 62 79 74 65 73 09 09 68 |====..4 |bytes..h|
|00000f90| 61 73 68 65 64 20 6e 61 | 6d 65 0d 34 20 62 79 74 |ashed na|me.4 byt|
|00000fa0| 65 73 09 09 6c 69 6e 6b | 20 74 6f 20 70 72 65 76 |es..link| to prev|
|00000fb0| 20 6d 65 74 68 6f 64 20 | 64 69 63 20 65 6e 74 72 | method |dic entr|
|00000fc0| 79 20 28 72 65 6c 61 74 | 69 76 65 20 61 64 64 72 |y (relat|ive addr|
|00000fd0| 29 0d 32 20 62 79 74 65 | 73 09 09 66 6c 61 67 73 |).2 byte|s..flags|
|00000fe0| 0d 0d 09 28 6d 65 74 68 | 6f 64 20 63 6f 64 65 20 |...(meth|od code |
|00000ff0| 66 6f 6c 6c 6f 77 73 20 | 2d 20 74 68 69 73 20 69 |follows |- this i|
|00001000| 73 20 74 68 65 20 6d 65 | 74 68 6f 64 27 73 20 63 |s the me|thod's c|
|00001010| 66 61 20 68 65 72 65 29 | 0d 0d 46 6c 61 67 20 62 |fa here)|..Flag b|
|00001020| 69 74 73 3a 0d 0d 62 69 | 74 20 30 09 09 31 20 3d |its:..bi|t 0..1 =|
|00001030| 20 70 72 69 76 61 74 65 | 20 6d 65 74 68 6f 64 20 | private| method |
|00001040| 28 6e 6f 74 65 20 6f 74 | 68 65 72 20 77 61 79 20 |(note ot|her way |
|00001050| 72 6f 75 6e 64 20 74 6f | 20 69 76 61 72 73 20 2d |round to| ivars -|
|00001060| 20 77 65 27 72 65 20 75 | 73 69 6e 67 0d 09 09 09 | we're u|sing....|
|00001070| 09 31 20 66 6f 72 20 74 | 68 65 20 75 6e 75 73 75 |.1 for t|he unusu|
|00001080| 61 6c 20 63 61 73 65 29 | 0d 62 69 74 20 37 09 09 |al case)|.bit 7..|
|00001090| 31 20 3d 20 74 68 65 72 | 65 27 73 20 61 20 63 61 |1 = ther|e's a ca|
|000010a0| 6c 6c 46 69 72 73 74 20 | 61 6e 64 2f 6f 72 20 63 |llFirst |and/or c|
|000010b0| 61 6c 6c 4c 61 73 74 20 | 6d 65 74 68 6f 64 0d 0d |allLast |method..|
|000010c0| 0d 09 09 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |...=====|========|
|000010d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000010e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000010f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 2a 29 |========|=====.*)|
|00001100| 0d 0d 0d 3a 20 78 78 20 | 20 64 62 20 3b 09 09 09 |...: xx | db ;...|
|00001110| 5c 20 75 73 65 66 75 6c | 21 0d 0d 09 32 36 09 63 |\ useful|!...26.c|
|00001120| 6f 6e 73 74 61 6e 74 09 | 73 74 61 74 69 63 5f 69 |onstant.|static_i|
|00001130| 76 61 72 5f 6f 66 66 73 | 0d 09 09 09 09 09 09 09 |var_offs|........|
|00001140| 5c 20 74 68 65 20 6f 66 | 66 73 65 74 20 66 72 6f |\ the of|fset fro|
|00001150| 6d 20 74 68 65 20 73 74 | 61 72 74 20 6f 66 20 74 |m the st|art of t|
|00001160| 68 65 20 69 76 61 72 20 | 64 69 63 0d 09 09 09 09 |he ivar |dic.....|
|00001170| 09 09 09 5c 20 20 69 6e | 66 6f 20 66 6f 72 20 61 |...\ in|fo for a|
|00001180| 20 73 74 61 74 69 63 20 | 69 76 61 72 2c 20 74 6f | static |ivar, to|
|00001190| 20 74 68 65 20 69 76 61 | 72 27 73 20 64 61 74 61 | the iva|r's data|
|000011a0| 2e 0d 09 09 09 09 09 09 | 09 5c 20 20 54 68 65 20 |........|.\ The |
|000011b0| 69 76 61 72 20 69 6e 66 | 6f 20 69 73 20 31 38 20 |ivar inf|o is 18 |
|000011c0| 62 79 74 65 73 20 6c 6f | 6e 67 2c 20 74 68 65 6e |bytes lo|ng, then|
|000011d0| 20 74 68 65 0d 09 09 09 | 09 09 09 09 5c 20 20 69 | the....|....\ i|
|000011e0| 76 61 72 20 69 73 20 69 | 6e 73 74 61 6e 74 69 61 |var is i|nstantia|
|000011f0| 74 65 64 20 69 6d 6d 65 | 64 69 61 74 65 6c 79 2c |ted imme|diately,|
|00001200| 20 77 69 74 68 20 74 68 | 65 0d 09 09 09 09 09 09 | with th|e.......|
|00001210| 09 5c 20 20 75 73 75 61 | 6c 20 38 2d 62 79 74 65 |.\ usua|l 8-byte|
|00001220| 20 6f 62 6a 65 63 74 20 | 68 65 61 64 65 72 2e 20 | object |header. |
|00001230| 20 54 6f 74 61 6c 3a 20 | 32 36 2e 0d 0d 09 30 09 | Total: |26....0.|
|00001240| 76 61 6c 75 65 09 50 55 | 42 2f 50 52 49 56 09 5c |value.PU|B/PRIV.\|
|00001250| 20 2d 31 20 70 72 69 76 | 61 74 65 2c 20 31 20 70 | -1 priv|ate, 1 p|
|00001260| 75 62 6c 69 63 2c 20 30 | 20 64 65 66 61 75 6c 74 |ublic, 0| default|
|00001270| 20 2d 20 66 6f 72 20 69 | 76 61 72 73 20 61 6e 64 | - for i|vars and|
|00001280| 20 6d 65 74 68 6f 64 73 | 0d 66 61 6c 73 65 09 76 | methods|.false.v|
|00001290| 61 6c 75 65 09 53 54 41 | 54 49 43 3f 09 09 5c 20 |alue.STA|TIC?..\ |
|000012a0| 74 72 75 65 20 69 66 20 | 66 6f 6c 6c 6f 77 69 6e |true if |followin|
|000012b0| 67 20 69 76 61 72 73 20 | 61 72 65 20 74 6f 20 62 |g ivars |are to b|
|000012c0| 65 20 73 74 61 74 69 63 | 0d 20 20 20 20 30 09 76 |e static|. 0.v|
|000012d0| 61 6c 75 65 09 5e 43 4f | 4d 50 5f 43 4c 41 53 53 |alue.^CO|MP_CLASS|
|000012e0| 09 5c 20 61 64 64 72 20 | 6f 66 20 74 68 65 20 63 |.\ addr |of the c|
|000012f0| 6c 61 73 73 20 77 65 27 | 72 65 20 63 75 72 72 65 |lass we'|re curre|
|00001300| 6e 74 6c 79 20 63 6f 6d | 70 69 6c 69 6e 67 0d 20 |ntly com|piling. |
|00001310| 20 20 20 30 09 76 61 6c | 75 65 09 50 49 56 41 52 | 0.val|ue.PIVAR|
|00001320| 09 09 5c 20 68 61 73 68 | 65 64 20 6e 61 6d 65 20 |..\ hash|ed name |
|00001330| 6f 66 20 61 6e 79 20 70 | 75 62 6c 69 63 20 69 76 |of any p|ublic iv|
|00001340| 61 72 20 77 65 27 72 65 | 20 61 63 63 65 73 73 69 |ar we're| accessi|
|00001350| 6e 67 0d 20 20 20 20 30 | 09 76 61 6c 75 65 09 50 |ng. 0|.value.P|
|00001360| 49 56 53 45 4c 09 09 5c | 20 68 61 73 68 65 64 20 |IVSEL..\| hashed |
|00001370| 73 65 6c 65 63 74 6f 72 | 20 6f 66 20 61 6e 79 20 |selector| of any |
|00001380| 6d 73 67 20 62 65 69 6e | 67 20 73 65 6e 74 20 74 |msg bein|g sent t|
|00001390| 6f 0d 20 20 20 20 09 09 | 09 09 09 09 5c 20 20 74 |o. ..|....\ t|
|000013a0| 6f 20 61 20 70 75 62 6c | 69 63 20 69 76 61 72 0d |o a publ|ic ivar.|
|000013b0| 0d 09 30 09 76 61 6c 75 | 65 09 4e 45 57 4f 42 4a |..0.valu|e.NEWOBJ|
|000013c0| 45 43 54 09 5c 20 61 64 | 64 72 20 6f 66 20 6f 62 |ECT.\ ad|dr of ob|
|000013d0| 6a 65 63 74 20 62 65 69 | 6e 67 20 63 72 65 61 74 |ject bei|ng creat|
|000013e0| 65 64 0d 20 20 20 20 30 | 09 76 61 6c 75 65 09 23 |ed. 0|.value.#|
|000013f0| 53 55 50 09 09 5c 20 6e | 75 6d 62 65 72 20 6f 66 |SUP..\ n|umber of|
|00001400| 20 73 75 70 65 72 63 6c | 61 73 73 65 73 20 66 6f | supercl|asses fo|
|00001410| 72 20 63 75 72 72 65 6e | 74 20 63 6c 61 73 73 0d |r curren|t class.|
|00001420| 20 20 20 20 30 09 76 61 | 6c 75 65 09 53 55 50 45 | 0.va|lue.SUPE|
|00001430| 52 53 5f 54 4f 5f 53 4b | 49 50 0d 09 30 09 76 61 |RS_TO_SK|IP..0.va|
|00001440| 6c 75 65 09 49 4e 49 54 | 49 44 0d 0d 0d 76 61 72 |lue.INIT|ID...var|
|00001450| 69 61 62 6c 65 20 4d 45 | 54 41 41 44 44 52 09 09 |iable ME|TAADDR..|
|00001460| 09 5c 20 77 69 6c 6c 20 | 68 6f 6c 64 20 72 65 6c |.\ will |hold rel|
|00001470| 6f 63 61 74 61 62 6c 65 | 20 61 64 64 72 65 73 73 |ocatable| address|
|00001480| 20 6f 66 20 70 73 65 75 | 64 6f 63 6c 61 73 73 0d | of pseu|doclass.|
|00001490| 09 09 09 09 09 09 09 5c | 20 20 4d 65 74 61 2e 20 |.......\| Meta. |
|000014a0| 55 73 65 64 20 69 6e 20 | 4e 57 5f 49 56 53 45 54 |Used in |NW_IVSET|
|000014b0| 55 50 20 74 6f 20 66 69 | 6e 64 20 69 66 20 65 6e |UP to fi|nd if en|
|000014c0| 64 0d 09 09 09 09 09 09 | 09 5c 20 20 6f 66 20 73 |d.......|.\ of s|
|000014d0| 75 70 65 72 63 6c 61 73 | 73 20 63 68 61 69 6e 20 |uperclas|s chain |
|000014e0| 68 61 73 20 62 65 65 6e | 20 72 65 61 63 68 65 64 |has been| reached|
|000014f0| 0d 0d 0d 5c 09 09 09 09 | 3d 3d 3d 3d 3d 3d 3d 3d |...\....|========|
|00001500| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001510| 3d 3d 3d 3d 3d 3d 3d 0d | 5c 09 09 09 09 09 09 55 |=======.|\......U|
|00001520| 54 49 4c 49 54 59 20 57 | 4f 52 44 53 0d 5c 09 09 |TILITY W|ORDS.\..|
|00001530| 09 09 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..======|========|
|00001540| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001550| 3d 0d 0d 3a 20 50 52 49 | 56 41 54 45 09 09 2d 31 |=..: PRI|VATE..-1|
|00001560| 20 2d 3e 20 70 75 62 2f | 70 72 69 76 20 20 3b 09 | -> pub/|priv ;.|
|00001570| 09 5c 20 66 6f 6c 6c 6f | 77 69 6e 67 20 6d 65 74 |.\ follo|wing met|
|00001580| 68 6f 64 73 20 61 6e 64 | 20 69 76 61 72 73 20 77 |hods and| ivars w|
|00001590| 69 6c 6c 20 62 65 20 70 | 72 69 76 61 74 65 0d 3a |ill be p|rivate.:|
|000015a0| 20 50 55 42 4c 49 43 09 | 09 20 31 20 2d 3e 20 70 | PUBLIC.|. 1 -> p|
|000015b0| 75 62 2f 70 72 69 76 20 | 20 3b 09 09 5c 20 66 6f |ub/priv | ;..\ fo|
|000015c0| 6c 6c 6f 77 69 6e 67 20 | 6d 65 74 68 6f 64 73 20 |llowing |methods |
|000015d0| 61 6e 64 20 69 76 61 72 | 73 20 77 69 6c 6c 20 62 |and ivar|s will b|
|000015e0| 65 20 70 75 62 6c 69 63 | 0d 0d 3a 20 45 4e 44 5f |e public|..: END_|
|000015f0| 50 52 49 56 41 54 45 09 | 30 20 2d 3e 20 70 75 62 |PRIVATE.|0 -> pub|
|00001600| 2f 70 72 69 76 20 20 3b | 09 09 5c 20 62 61 63 6b |/priv ;|..\ back|
|00001610| 20 74 6f 20 74 68 65 20 | 64 65 66 61 75 6c 74 0d | to the |default.|
|00001620| 3a 20 45 4e 44 5f 50 55 | 42 4c 49 43 09 30 20 2d |: END_PU|BLIC.0 -|
|00001630| 3e 20 70 75 62 2f 70 72 | 69 76 20 20 3b 09 09 5c |> pub/pr|iv ;..\|
|00001640| 20 64 69 74 74 6f 0d 0d | 0d 3a 20 58 09 62 6c 64 | ditto..|.: X.bld|
|00001650| 20 20 31 32 33 20 20 3b | 09 09 09 09 5c 20 54 68 | 123 ;|....\ Th|
|00001660| 65 20 31 32 33 20 62 6c | 6f 63 6b 73 20 6f 70 74 |e 123 bl|ocks opt|
|00001670| 69 6d 69 7a 61 74 69 6f | 6e 21 0d 0d 27 20 78 20 |imizatio|n!..' x |
|00001680| 40 20 20 66 6f 72 67 65 | 74 20 78 09 20 20 63 6f |@ forge|t x. co|
|00001690| 6e 73 74 61 6e 74 09 43 | 4c 41 53 53 4d 4b 09 09 |nstant.C|LASSMK..|
|000016a0| 5c 20 20 4a 53 52 20 20 | 62 6c 64 56 65 63 2d 62 |\ JSR |bldVec-b|
|000016b0| 61 73 65 28 41 33 29 0d | 0d 3a 20 45 58 42 41 53 |ase(A3).|.: EXBAS|
|000016c0| 45 09 24 20 34 45 39 32 | 20 20 77 2c 20 20 3b 09 |E.$ 4E92| w, ;.|
|000016d0| 69 6d 6d 65 64 69 61 74 | 65 09 5c 20 20 4a 53 52 |immediat|e.\ JSR|
|000016e0| 20 20 28 41 32 29 0d 0d | 3a 20 3e 4f 42 4a 20 20 | (A2)..|: >OBJ |
|000016f0| 28 20 63 66 61 20 2d 2d | 20 5e 6f 62 6a 20 29 20 |( cfa --| ^obj ) |
|00001700| 20 69 6e 6c 69 6e 65 7b | 20 38 20 2b 7d 20 20 3b | inline{| 8 +} ;|
|00001710| 0d 3a 20 4f 42 4a 3e 20 | 20 28 20 5e 6f 62 6a 20 |.: OBJ> | ( ^obj |
|00001720| 2d 2d 20 63 66 61 20 29 | 20 20 69 6e 6c 69 6e 65 |-- cfa )| inline|
|00001730| 7b 20 38 20 2d 7d 20 20 | 3b 0d 09 09 09 5c 20 4e |{ 8 -} |;....\ N|
|00001740| 6f 74 65 3a 20 77 65 20 | 64 6f 6e 27 74 20 75 73 |ote: we |don't us|
|00001750| 65 20 3e 63 6c 61 73 73 | 20 68 65 72 65 2c 20 73 |e >class| here, s|
|00001760| 69 6e 63 65 20 6f 62 6a | 3e 20 73 68 6f 75 6c 64 |ince obj|> should|
|00001770| 6e 27 74 20 62 65 0d 09 | 09 09 5c 20 75 73 65 64 |n't be..|..\ used|
|00001780| 20 66 6f 72 20 65 6d 62 | 65 64 64 65 64 20 6f 62 | for emb|edded ob|
|00001790| 6a 65 63 74 73 2c 20 61 | 6e 64 20 69 74 20 69 73 |jects, a|nd it is|
|000017a0| 20 75 73 65 64 20 64 75 | 72 69 6e 67 20 6f 62 6a | used du|ring obj|
|000017b0| 0d 09 09 09 5c 20 62 75 | 69 6c 64 69 6e 67 20 77 |....\ bu|ilding w|
|000017c0| 68 65 6e 20 74 68 65 20 | 5e 63 6c 61 73 73 20 69 |hen the |^class i|
|000017d0| 73 6e 27 74 20 74 68 65 | 72 65 20 79 65 74 2e 0d |sn't the|re yet..|
|000017e0| 0d 3a 20 43 48 4b 43 4c | 41 53 53 09 5c 20 28 20 |.: CHKCL|ASS.\ ( |
|000017f0| 63 66 61 20 2d 2d 20 63 | 66 61 20 29 0d 09 63 6c |cfa -- c|fa )..cl|
|00001800| 61 73 73 3f 20 20 3f 45 | 58 49 54 0d 09 2e 69 64 |ass? ?E|XIT...id|
|00001810| 20 20 73 70 61 63 65 20 | 20 74 72 75 65 20 3f 65 | space | true ?e|
|00001820| 72 72 6f 72 20 38 30 20 | 20 3b 0d 0d 3a 20 3f 3e |rror 80 | ;..: ?>|
|00001830| 43 4c 41 53 53 20 20 20 | 28 20 5e 6f 62 6a 20 2d |CLASS |( ^obj -|
|00001840| 2d 20 5e 63 6c 61 73 73 | 20 29 0d 09 3e 63 6c 61 |- ^class| )..>cla|
|00001850| 73 73 20 20 64 75 70 20 | 30 3d 20 3f 65 72 72 6f |ss dup |0= ?erro|
|00001860| 72 20 38 31 20 20 3b 09 | 09 5c 20 49 66 20 6e 6f |r 81 ;.|.\ If no|
|00001870| 20 6c 65 67 61 6c 20 63 | 6c 61 73 73 20 70 74 72 | legal c|lass ptr|
|00001880| 2c 20 70 72 6f 62 61 62 | 6c 79 0d 09 09 09 09 09 |, probab|ly......|
|00001890| 09 09 09 09 5c 20 6e 6f | 74 20 61 6e 20 6f 62 6a |....\ no|t an obj|
|000018a0| 20 61 64 64 72 20 61 74 | 20 61 6c 6c 21 0d 0d 5c | addr at| all!..\|
|000018b0| 20 74 68 65 20 66 6f 6c | 6c 6f 77 69 6e 67 20 6f | the fol|lowing o|
|000018c0| 66 66 73 65 74 73 20 72 | 65 66 65 72 20 74 6f 20 |ffsets r|efer to |
|000018d0| 77 68 65 72 65 20 61 20 | 5e 63 6c 61 73 73 20 70 |where a |^class p|
|000018e0| 6f 69 6e 74 73 2c 20 69 | 2e 65 2e 20 74 68 65 20 |oints, i|.e. the |
|000018f0| 63 66 61 0d 5c 20 6f 66 | 20 74 68 65 20 63 6c 61 |cfa.\ of| the cla|
|00001900| 73 73 2e 0d 0d 28 2a 09 | 4d 46 41 5f 6f 66 66 73 |ss...(*.|MFA_offs|
|00001910| 65 74 20 70 69 63 6b 73 | 20 6f 6e 65 20 6f 66 20 |et picks| one of |
|00001920| 74 68 65 20 38 20 6d 65 | 74 68 6f 64 20 74 68 72 |the 8 me|thod thr|
|00001930| 65 61 64 73 2c 20 67 69 | 76 65 6e 20 61 20 73 65 |eads, gi|ven a se|
|00001940| 6c 49 44 2e 0d 09 54 68 | 65 20 73 65 6c 49 44 20 |lID...Th|e selID |
|00001950| 69 73 20 70 72 6f 62 61 | 62 6c 79 20 6e 6f 74 20 |is proba|bly not |
|00001960| 76 65 72 79 20 72 61 6e | 64 6f 6d 20 69 6e 20 74 |very ran|dom in t|
|00001970| 68 65 20 6c 6f 77 20 62 | 79 74 65 20 28 73 69 6e |he low b|yte (sin|
|00001980| 63 65 0d 09 73 65 6c 65 | 63 74 6f 72 73 20 61 6c |ce..sele|ctors al|
|00001990| 6c 20 65 6e 64 20 69 6e | 20 22 3a 22 2c 20 73 6f |l end in| ":", so|
|000019a0| 20 77 65 20 68 61 73 68 | 20 69 74 20 61 20 6c 69 | we hash| it a li|
|000019b0| 74 74 6c 65 20 6d 6f 72 | 65 20 74 68 65 6e 20 70 |ttle mor|e then p|
|000019c0| 69 63 6b 0d 09 74 68 65 | 20 33 20 62 69 74 73 20 |ick..the| 3 bits |
|000019d0| 66 72 6f 6d 20 74 68 65 | 20 72 65 73 75 6c 74 20 |from the| result |
|000019e0| 77 68 69 63 68 20 61 72 | 65 20 61 6c 72 65 61 64 |which ar|e alread|
|000019f0| 79 20 69 6e 20 74 68 65 | 20 72 69 67 68 74 20 70 |y in the| right p|
|00001a00| 6f 73 69 74 69 6f 6e 2e | 0d 0d 09 4e 6f 74 65 3a |osition.|...Note:|
|00001a10| 20 69 74 20 74 6f 6f 6b | 20 61 20 73 75 72 70 72 | it took| a surpr|
|00001a20| 69 73 69 6e 67 20 61 6d | 6f 75 6e 74 20 6f 66 20 |ising am|ount of |
|00001a30| 74 72 69 61 6c 20 61 6e | 64 20 65 72 72 6f 72 20 |trial an|d error |
|00001a40| 74 6f 20 67 65 74 20 61 | 0d 09 67 6f 6f 64 20 65 |to get a|..good e|
|00001a50| 78 74 72 61 20 68 61 73 | 68 20 66 6f 72 20 74 68 |xtra has|h for th|
|00001a60| 69 73 20 70 61 72 74 69 | 63 75 6c 61 72 20 75 73 |is parti|cular us|
|00001a70| 65 21 0d 2a 29 0d 0d 3a | 20 4d 46 41 5f 6f 66 66 |e!.*)..:| MFA_off|
|00001a80| 73 65 74 20 20 28 20 73 | 65 6c 49 44 20 5e 63 6c |set ( s|elID ^cl|
|00001a90| 61 73 73 20 2d 2d 20 73 | 65 6c 49 44 20 5e 63 6c |ass -- s|elID ^cl|
|00001aa0| 61 73 73 20 4d 46 41 5f | 6f 66 66 73 65 74 20 29 |ass MFA_|offset )|
|00001ab0| 0d 09 6f 76 65 72 0d 09 | 64 75 70 20 35 20 3e 3e |..over..|dup 5 >>|
|00001ac0| 20 2b 0d 09 24 20 31 43 | 20 61 6e 64 20 20 34 2b | +..$ 1C| and 4+|
|00001ad0| 20 20 3b 0d 0d 3a 20 4d | 46 41 20 20 28 20 53 65 | ;..: M|FA ( Se|
|00001ae0| 6c 49 44 20 5e 43 6c 61 | 73 73 20 2d 2d 20 53 65 |lID ^Cla|ss -- Se|
|00001af0| 6c 49 44 20 4d 46 41 20 | 29 20 20 4d 46 41 5f 6f |lID MFA |) MFA_o|
|00001b00| 66 66 73 65 74 20 20 2b | 20 3b 0d 0d 33 36 09 63 |ffset +| ;..36.c|
|00001b10| 6f 6e 73 74 61 6e 74 09 | 49 46 41 5f 6f 66 66 73 |onstant.|IFA_offs|
|00001b20| 65 74 0d 0d 3a 20 49 46 | 41 09 69 6e 6c 69 6e 65 |et..: IF|A.inline|
|00001b30| 7b 20 49 46 41 5f 6f 66 | 66 73 65 74 20 2b 7d 20 |{ IFA_of|fset +} |
|00001b40| 3b 09 5c 20 69 76 61 72 | 20 6c 69 6e 6b 0d 3a 20 |;.\ ivar| link.: |
|00001b50| 44 46 41 09 69 6e 6c 69 | 6e 65 7b 20 34 30 20 2b |DFA.inli|ne{ 40 +|
|00001b60| 7d 09 3b 09 09 5c 20 44 | 61 74 61 20 6c 65 6e 20 |}.;..\ D|ata len |
|00001b70| 28 32 20 62 79 74 65 73 | 29 2c 0d 20 09 09 09 09 |(2 bytes|),. ....|
|00001b80| 09 09 09 09 5c 20 20 77 | 69 64 74 68 20 6f 66 20 |....\ w|idth of |
|00001b90| 69 6e 64 65 78 65 64 20 | 65 6c 74 73 20 28 32 20 |indexed |elts (2 |
|00001ba0| 62 79 74 65 73 29 0d 3a | 20 46 46 41 09 69 6e 6c |bytes).:| FFA.inl|
|00001bb0| 69 6e 65 7b 20 34 34 20 | 2b 7d 09 3b 09 09 5c 20 |ine{ 44 |+}.;..\ |
|00001bc0| 46 6c 61 67 73 20 28 32 | 20 62 79 74 65 73 29 0d |Flags (2| bytes).|
|00001bd0| 3a 20 58 4f 46 46 41 09 | 69 6e 6c 69 6e 65 7b 20 |: XOFFA.|inline{ |
|00001be0| 34 36 20 2b 7d 09 3b 09 | 09 5c 20 69 6e 64 65 78 |46 +}.;.|.\ index|
|00001bf0| 69 6e 67 20 6f 66 66 73 | 65 74 20 66 6f 72 20 6c |ing offs|et for l|
|00001c00| 61 72 67 65 5f 6f 62 6a | 5f 61 72 72 61 79 73 20 |arge_obj|_arrays |
|00001c10| 28 32 20 62 79 74 65 73 | 29 0d 3a 20 53 46 41 09 |(2 bytes|).: SFA.|
|00001c20| 69 6e 6c 69 6e 65 7b 20 | 34 38 20 2b 7d 09 3b 09 |inline{ |48 +}.;.|
|00001c30| 09 5c 20 53 75 70 65 72 | 63 6c 61 73 73 20 4e 2d |.\ Super|class N-|
|00001c40| 77 61 79 20 73 74 61 72 | 74 73 20 68 65 72 65 0d |way star|ts here.|
|00001c50| 0d 34 38 09 63 6f 6e 73 | 74 61 6e 74 09 63 6c 61 |.48.cons|tant.cla|
|00001c60| 73 73 53 69 7a 65 09 09 | 5c 20 74 6f 74 61 6c 20 |ssSize..|\ total |
|00001c70| 73 69 7a 65 20 6f 66 20 | 63 6c 61 73 73 20 69 6e |size of |class in|
|00001c80| 66 6f 20 75 70 20 74 6f | 20 4e 2d 77 61 79 0d 0d |fo up to| N-way..|
|00001c90| 0d 5c 20 3a 20 47 45 54 | 44 4c 45 4e 09 09 5c 20 |.\ : GET|DLEN..\ |
|00001ca0| 28 20 5e 6f 62 6a 20 2d | 2d 20 6e 20 29 20 20 47 |( ^obj -|- n ) G|
|00001cb0| 65 74 73 20 6c 65 6e 67 | 74 68 20 6f 66 20 6f 62 |ets leng|th of ob|
|00001cc0| 6a 65 63 74 27 73 20 6e | 61 6d 65 64 20 69 76 61 |ject's n|amed iva|
|00001cd0| 72 73 0d 5c 09 3f 3e 63 | 6c 61 73 73 20 64 66 61 |rs.\.?>c|lass dfa|
|00001ce0| 20 77 40 20 20 3b 0d 0d | 3a 20 28 5e 44 4c 45 4e | w@ ;..|: (^DLEN|
|00001cf0| 29 09 5c 20 28 20 5e 6f | 62 6a 20 2d 2d 20 5e 64 |).\ ( ^o|bj -- ^d|
|00001d00| 61 74 61 6c 65 6e 20 29 | 20 20 54 68 69 73 20 69 |atalen )| This i|
|00001d10| 73 20 61 20 6c 6f 77 2d | 6c 65 76 65 6c 20 77 6f |s a low-|level wo|
|00001d20| 72 64 20 77 68 69 63 68 | 20 73 68 6f 75 6c 64 0d |rd which| should.|
|00001d30| 09 09 09 5c 20 20 6e 6f | 72 6d 61 6c 6c 79 20 6f |...\ no|rmally o|
|00001d40| 6e 6c 79 20 62 65 20 75 | 73 65 64 20 69 6e 20 74 |nly be u|sed in t|
|00001d50| 68 65 20 4d 6f 70 73 20 | 73 79 73 74 65 6d 20 73 |he Mops |system s|
|00001d60| 74 75 66 66 2e 20 20 4e | 6f 74 65 20 69 74 0d 09 |tuff. N|ote it..|
|00001d70| 09 09 5c 20 20 74 61 6b | 65 73 20 5e 6f 62 6a 2c |..\ tak|es ^obj,|
|00001d80| 20 6e 6f 74 20 5e 63 6c | 61 73 73 2c 20 61 6e 64 | not ^cl|ass, and|
|00001d90| 20 69 74 20 64 6f 65 73 | 6e 27 74 20 64 6f 20 61 | it does|n't do a|
|00001da0| 20 6d 6f 64 75 6c 65 20 | 63 68 65 63 6b 0d 09 09 | module |check...|
|00001db0| 09 5c 20 20 2d 20 69 74 | 20 61 73 73 75 6d 65 73 |.\ - it| assumes|
|00001dc0| 20 74 68 65 20 63 6c 61 | 73 73 20 69 73 20 69 6e | the cla|ss is in|
|00001dd0| 20 74 68 65 20 73 61 6d | 65 20 73 65 67 6d 65 6e | the sam|e segmen|
|00001de0| 74 20 61 73 20 74 68 65 | 20 6f 62 6a 65 63 74 2e |t as the| object.|
|00001df0| 0d 09 3f 3e 63 6c 61 73 | 73 20 64 66 61 20 20 3b |..?>clas|s dfa ;|
|00001e00| 0d 0d 0d 3a 20 28 44 4c | 45 4e 26 58 57 49 44 29 |...: (DL|EN&XWID)|
|00001e10| 09 28 20 5e 63 6c 61 73 | 73 20 2d 2d 20 64 6c 65 |.( ^clas|s -- dle|
|00001e20| 6e 20 78 77 69 64 20 29 | 09 5c 20 41 73 73 75 6d |n xwid )|.\ Assum|
|00001e30| 65 73 20 5e 63 6c 61 73 | 73 20 69 73 20 74 68 65 |es ^clas|s is the|
|00001e40| 20 74 72 75 65 20 63 6c | 61 73 73 0d 09 09 64 66 | true cl|ass...df|
|00001e50| 61 20 64 75 70 20 20 77 | 40 20 20 73 77 61 70 20 |a dup w|@ swap |
|00001e60| 20 32 2b 20 77 40 20 20 | 3b 09 09 5c 20 20 61 64 | 2+ w@ |;..\ ad|
|00001e70| 64 72 65 73 2c 20 6e 6f | 74 20 6d 61 69 6e 20 64 |dres, no|t main d|
|00001e80| 69 63 74 69 6f 6e 61 72 | 79 20 61 64 64 72 65 73 |ictionar|y addres|
|00001e90| 73 0d 09 09 09 09 09 09 | 09 09 09 09 5c 20 20 6f |s.......|....\ o|
|00001ea0| 66 20 65 78 70 6f 72 74 | 65 64 20 63 6c 61 73 73 |f export|ed class|
|00001eb0| 20 69 6e 20 6d 6f 64 75 | 6c 65 0d 09 09 09 09 09 | in modu|le......|
|00001ec0| 09 09 09 09 09 5c 20 4f | 6e 6c 79 20 69 6e 74 65 |.....\ O|nly inte|
|00001ed0| 6e 64 65 64 20 66 6f 72 | 20 69 6e 74 65 72 6e 61 |nded for| interna|
|00001ee0| 6c 20 75 73 65 21 0d 0d | 3a 20 44 4c 45 4e 26 58 |l use!..|: DLEN&X|
|00001ef0| 57 49 44 09 09 28 20 5e | 63 6c 61 73 73 20 2d 2d |WID..( ^|class --|
|00001f00| 20 64 6c 65 6e 20 78 77 | 69 64 20 29 0d 09 09 3f | dlen xw|id )...?|
|00001f10| 3e 63 6c 61 73 73 49 6e | 4d 6f 64 0d 09 09 28 64 |>classIn|Mod...(d|
|00001f20| 6c 65 6e 26 78 77 69 64 | 29 0d 09 09 3f 75 6e 48 |len&xwid|)...?unH|
|00001f30| 6f 6c 64 4d 6f 64 20 20 | 3b 0d 0d 0d 3a 20 44 4c |oldMod |;...: DL|
|00001f40| 45 4e 09 64 6c 65 6e 26 | 78 77 69 64 20 20 64 72 |EN.dlen&|xwid dr|
|00001f50| 6f 70 20 20 3b 0d 3a 20 | 58 57 49 44 09 64 6c 65 |op ;.: |XWID.dle|
|00001f60| 6e 26 78 77 69 64 20 20 | 6e 69 70 20 20 20 3b 0d |n&xwid |nip ;.|
|00001f70| 0d 3a 20 49 56 41 52 4c | 45 4e 09 70 6f 73 74 70 |.: IVARL|EN.postp|
|00001f80| 6f 6e 65 20 64 6c 65 6e | 20 20 3b 09 69 6d 6d 65 |one dlen| ;.imme|
|00001f90| 64 69 61 74 65 09 09 5c | 20 61 6e 20 61 6c 69 61 |diate..\| an alia|
|00001fa0| 73 20 66 6f 72 20 64 6c | 65 6e 0d 0d 3a 20 4f 42 |s for dl|en..: OB|
|00001fb0| 4a 4c 45 4e 09 5c 20 28 | 20 2d 2d 20 6f 62 6a 6c |JLEN.\ (| -- objl|
|00001fc0| 65 6e 20 29 20 20 43 6f | 6d 70 75 74 65 73 20 74 |en ) Co|mputes t|
|00001fd0| 6f 74 61 6c 20 64 61 74 | 61 20 6c 65 6e 67 74 68 |otal dat|a length|
|00001fe0| 20 6f 66 20 63 75 72 72 | 65 6e 74 20 6f 62 6a 65 | of curr|ent obje|
|00001ff0| 63 74 2e 0d 0d 09 5e 62 | 61 73 65 20 28 5e 64 6c |ct....^b|ase (^dl|
|00002000| 65 6e 29 20 20 64 75 70 | 20 77 40 09 09 5c 20 69 |en) dup| w@..\ i|
|00002010| 76 61 72 20 6c 65 6e 0d | 09 73 77 61 70 20 32 2b |var len.|.swap 2+|
|00002020| 20 77 40 20 20 3f 64 75 | 70 0d 09 49 46 09 09 09 | w@ ?du|p..IF...|
|00002030| 5c 20 77 65 27 72 65 20 | 69 6e 64 65 78 65 64 0d |\ we're |indexed.|
|00002040| 09 09 69 64 78 42 61 73 | 65 20 34 2d 20 40 20 31 |..idxBas|e 4- @ 1|
|00002050| 2b 20 20 2a 20 2b 09 5c | 20 61 64 64 20 6c 65 6e |+ * +.\| add len|
|00002060| 20 6f 66 20 69 6e 64 65 | 78 65 64 20 65 6c 65 6d | of inde|xed elem|
|00002070| 65 6e 74 73 0d 09 09 36 | 20 2b 09 09 09 09 09 09 |ents...6| +......|
|00002080| 5c 20 20 61 6e 64 20 6c | 65 6e 20 6f 66 20 69 6e |\ and l|en of in|
|00002090| 64 65 78 65 64 20 68 65 | 61 64 65 72 0d 09 54 48 |dexed he|ader..TH|
|000020a0| 45 4e 0d 3b 0d 0d 0d 3a | 20 3f 3e 4d 41 49 4e 44 |EN.;...:| ?>MAIND|
|000020b0| 49 43 20 20 7b 20 5e 63 | 6c 61 73 73 20 2d 2d 20 |IC { ^c|lass -- |
|000020c0| 27 5e 63 6c 61 73 73 20 | 7d 0d 09 09 5c 20 49 66 |'^class |}...\ If|
|000020d0| 20 5e 63 6c 61 73 73 20 | 69 73 20 65 78 70 6f 72 | ^class |is expor|
|000020e0| 74 65 64 20 66 72 6f 6d | 20 61 20 6d 6f 64 75 6c |ted from| a modul|
|000020f0| 65 2c 20 77 65 20 72 65 | 74 75 72 6e 20 74 68 65 |e, we re|turn the|
|00002100| 20 6d 61 69 6e 20 64 69 | 63 0d 09 09 5c 20 65 71 | main di|c...\ eq|
|00002110| 75 69 76 61 6c 65 6e 74 | 2e 20 20 49 66 20 69 74 |uivalent|. If it|
|00002120| 27 73 20 6e 6f 74 20 65 | 78 70 6f 72 74 65 64 2c |'s not e|xported,|
|00002130| 20 77 65 20 72 65 74 75 | 72 6e 20 69 74 20 75 6e | we retu|rn it un|
|00002140| 63 68 61 6e 67 65 64 2e | 0d 09 09 5c 20 57 65 20 |changed.|...\ We |
|00002150| 6e 65 65 64 20 74 68 69 | 73 20 77 6f 72 64 20 73 |need thi|s word s|
|00002160| 69 6e 63 65 20 66 6f 72 | 20 65 78 70 6f 72 74 65 |ince for| exporte|
|00002170| 64 20 63 6c 61 73 73 65 | 73 2c 20 77 65 20 6e 65 |d classe|s, we ne|
|00002180| 65 64 20 74 6f 20 75 73 | 65 20 74 68 65 0d 09 09 |ed to us|e the...|
|00002190| 5c 20 69 6d 70 6f 72 74 | 65 64 20 61 64 64 72 65 |\ import|ed addre|
|000021a0| 73 73 20 28 69 6e 20 74 | 68 65 20 6d 61 69 6e 20 |ss (in t|he main |
|000021b0| 64 69 63 74 69 6f 6e 61 | 72 79 29 20 61 73 20 74 |dictiona|ry) as t|
|000021c0| 68 65 20 63 6c 61 73 73 | 20 70 6f 69 6e 74 65 72 |he class| pointer|
|000021d0| 0d 09 09 5c 20 69 6e 20 | 61 20 6e 65 77 20 6f 62 |...\ in |a new ob|
|000021e0| 6a 65 63 74 20 6f 72 20 | 61 6e 20 69 76 61 72 20 |ject or |an ivar |
|000021f0| 64 69 63 20 65 6e 74 72 | 79 20 28 73 6f 20 74 68 |dic entr|y (so th|
|00002200| 61 74 20 74 68 65 20 6d | 6f 64 75 6c 65 20 77 69 |at the m|odule wi|
|00002210| 6c 6c 20 62 65 0d 09 09 | 5c 20 69 6e 76 6f 6b 65 |ll be...|\ invoke|
|00002220| 64 20 70 72 6f 70 65 72 | 6c 79 20 77 68 65 6e 20 |d proper|ly when |
|00002230| 61 20 6d 65 74 68 6f 64 | 20 69 73 20 73 65 6e 74 |a method| is sent|
|00002240| 20 74 6f 20 74 68 65 20 | 6f 62 6a 65 63 74 2e 0d | to the |object..|
|00002250| 0d 09 5e 63 6c 61 73 73 | 20 66 66 61 20 31 2b 20 |..^class| ffa 1+ |
|00002260| 31 20 62 74 65 73 74 0d | 09 49 46 09 09 5e 63 6c |1 btest.|.IF..^cl|
|00002270| 61 73 73 20 3e 6e 61 6d | 65 20 6e 3e 63 6f 75 6e |ass >nam|e n>coun|
|00002280| 74 20 73 66 69 6e 64 20 | 64 72 6f 70 0d 09 45 4c |t sfind |drop..EL|
|00002290| 53 45 09 5e 63 6c 61 73 | 73 0d 09 54 48 45 4e 20 |SE.^clas|s..THEN |
|000022a0| 20 3b 0d 0d 0d 3a 20 4c | 41 52 47 45 5f 4f 42 4a | ;...: L|ARGE_OBJ|
|000022b0| 5f 41 52 52 41 59 5f 43 | 48 45 43 4b 20 20 7b 20 |_ARRAY_C|HECK { |
|000022c0| 5e 63 6c 61 73 73 20 6f | 66 66 73 20 5c 20 78 6f |^class o|ffs \ xo|
|000022d0| 66 66 73 20 20 2d 2d 20 | 6f 66 66 73 20 78 64 69 |ffs -- |offs xdi|
|000022e0| 73 70 6c 2d 6f 66 66 73 | 20 7d 0d 0d 5c 20 46 6f |spl-offs| }..\ Fo|
|000022f0| 6c 6c 6f 77 69 6e 67 20 | 3c 66 69 6e 64 6d 3e 20 |llowing |<findm> |
|00002300| 6f 72 20 3c 49 56 66 69 | 6e 64 6d 3e 2c 20 77 65 |or <IVfi|ndm>, we|
|00002310| 20 63 68 65 63 6b 20 69 | 66 20 74 68 69 73 20 69 | check i|f this i|
|00002320| 73 20 61 20 6c 61 72 67 | 65 5f 6f 62 6a 5f 61 72 |s a larg|e_obj_ar|
|00002330| 72 61 79 2c 0d 5c 20 20 | 69 6e 20 77 68 69 63 68 |ray,.\ |in which|
|00002340| 20 63 61 73 65 20 77 65 | 20 6d 69 67 68 74 20 68 | case we| might h|
|00002350| 61 76 65 20 74 6f 20 6d | 61 70 20 74 68 65 20 6f |ave to m|ap the o|
|00002360| 62 6a 2f 69 76 61 72 20 | 69 6e 74 6f 20 74 68 65 |bj/ivar |into the|
|00002370| 20 69 6e 64 65 78 65 64 | 20 61 72 65 61 3a 0d 0d | indexed| area:..|
|00002380| 09 5e 63 6c 61 73 73 20 | 78 6f 66 66 61 20 77 40 |.^class |xoffa w@|
|00002390| 20 20 2d 3e 20 78 6f 66 | 66 73 09 5c 20 6f 66 66 | -> xof|fs.\ off|
|000023a0| 73 20 77 68 65 72 65 20 | 72 65 6d 61 70 70 69 6e |s where |remappin|
|000023b0| 67 20 65 6e 64 73 20 2d | 20 61 72 65 20 77 65 20 |g ends -| are we |
|000023c0| 62 65 66 6f 72 65 20 74 | 68 61 74 3f 0d 09 5e 63 |before t|hat?..^c|
|000023d0| 6c 61 73 73 20 73 65 61 | 72 63 68 65 64 43 6c 61 |lass sea|rchedCla|
|000023e0| 73 73 20 3c 3e 0d 09 6f | 66 66 73 20 78 6f 66 66 |ss <>..o|ffs xoff|
|000023f0| 73 20 3c 20 20 61 6e 64 | 0d 09 49 46 09 09 09 5c |s < and|..IF...\|
|00002400| 20 79 65 73 20 2d 20 72 | 65 6d 61 70 70 69 6e 67 | yes - r|emapping|
|00002410| 20 6e 65 63 65 73 73 61 | 72 79 2e 20 20 52 65 74 | necessa|ry. Ret|
|00002420| 75 72 6e 20 6f 66 66 73 | 20 74 6f 20 78 64 69 73 |urn offs| to xdis|
|00002430| 70 6c 20 69 76 61 72 0d | 09 09 6f 66 66 73 20 20 |pl ivar.|..offs |
|00002440| 78 6f 66 66 73 20 31 32 | 20 2b 0d 09 45 4c 53 45 |xoffs 12| +..ELSE|
|00002450| 09 09 5c 20 6e 6f 20 2d | 20 6e 6f 72 6d 61 6c 20 |..\ no -| normal |
|00002460| 63 61 73 65 20 2d 20 6a | 75 73 74 20 72 65 74 75 |case - j|ust retu|
|00002470| 72 6e 20 7a 65 72 6f 0d | 09 09 6f 66 66 73 20 30 |rn zero.|..offs 0|
|00002480| 0d 09 54 48 45 4e 0d 3b | 0d 0d 0d 3a 20 3c 66 69 |..THEN.;|...: <fi|
|00002490| 6e 64 4d 3e 20 20 7b 20 | 73 65 6c 49 44 20 5e 63 |ndM> { |selID ^c|
|000024a0| 6c 61 73 73 20 5c 20 63 | 66 61 20 6f 66 66 73 20 |lass \ c|fa offs |
|000024b0| 20 2d 2d 20 63 66 61 20 | 6f 66 66 73 20 78 64 69 | -- cfa |offs xdi|
|000024c0| 73 70 6c 2d 6f 66 66 73 | 20 7d 0d 0d 28 2a 09 46 |spl-offs| }..(*.F|
|000024d0| 61 63 74 6f 72 65 64 20 | 6f 75 74 20 66 72 6f 6d |actored |out from|
|000024e0| 20 63 6c 46 6e 64 6d 20 | 61 6e 64 20 6f 62 6a 46 | clFndm |and objF|
|000024f0| 69 6e 64 6d 2e 20 20 46 | 69 6e 64 73 20 61 20 6d |indm. F|inds a m|
|00002500| 65 74 68 6f 64 27 73 20 | 63 66 61 20 67 69 76 65 |ethod's |cfa give|
|00002510| 6e 20 61 0d 09 73 65 6c | 49 44 20 61 6e 64 20 61 |n a..sel|ID and a|
|00002520| 20 63 6c 61 73 73 20 61 | 64 64 72 65 73 73 2c 20 | class a|ddress, |
|00002530| 77 68 69 63 68 20 68 61 | 73 20 61 6c 72 65 61 64 |which ha|s alread|
|00002540| 79 20 62 65 65 6e 20 63 | 6f 6e 76 65 72 74 65 64 |y been c|onverted|
|00002550| 20 74 6f 20 61 20 6d 6f | 64 75 6c 65 0d 09 61 64 | to a mo|dule..ad|
|00002560| 64 72 20 69 66 20 6e 65 | 63 65 73 73 61 72 79 2e |dr if ne|cessary.|
|00002570| 0d 09 0d 09 6f 66 66 73 | 20 77 69 6c 6c 20 62 65 |....offs| will be|
|00002580| 20 6e 6f 6e 7a 65 72 6f | 20 69 66 20 74 68 65 20 | nonzero| if the |
|00002590| 6d 65 74 68 6f 64 20 74 | 75 72 6e 73 20 6f 75 74 |method t|urns out|
|000025a0| 20 74 6f 20 62 65 6c 6f | 6e 67 20 74 6f 20 61 20 | to belo|ng to a |
|000025b0| 73 75 70 65 72 63 6c 61 | 73 73 0d 09 77 69 74 68 |supercla|ss..with|
|000025c0| 20 61 20 6e 6f 6e 2d 7a | 65 72 6f 20 6f 66 66 73 | a non-z|ero offs|
|000025d0| 65 74 20 69 6e 20 74 68 | 65 20 6f 62 6a 65 63 74 |et in th|e object|
|000025e0| 20 2d 20 69 2e 65 2e 20 | 61 6e 20 65 6d 62 65 64 | - i.e. |an embed|
|000025f0| 64 65 64 20 6f 62 6a 65 | 63 74 2e 0d 09 49 66 20 |ded obje|ct...If |
|00002600| 69 74 27 73 20 61 20 6c | 61 72 67 65 5f 6f 62 6a |it's a l|arge_obj|
|00002610| 5f 61 72 72 61 79 2c 20 | 61 6e 64 20 74 68 65 20 |_array, |and the |
|00002620| 6f 62 6a 65 63 74 20 69 | 73 20 69 6e 20 74 68 65 |object i|s in the|
|00002630| 20 69 6e 64 65 78 65 64 | 20 61 72 65 61 2c 0d 09 | indexed| area,..|
|00002640| 78 64 69 73 70 6c 2d 6f | 66 66 73 20 77 69 6c 6c |xdispl-o|ffs will|
|00002650| 20 62 65 20 6e 6f 6e 7a | 65 72 6f 2e 20 20 54 68 | be nonz|ero. Th|
|00002660| 69 73 20 61 6c 6c 6f 77 | 73 20 74 68 65 20 63 61 |is allow|s the ca|
|00002670| 6c 6c 65 72 20 74 6f 20 | 63 6f 6d 70 69 6c 65 0d |ller to |compile.|
|00002680| 09 63 6f 64 65 20 74 6f | 20 61 64 64 20 74 68 65 |.code to| add the|
|00002690| 20 6f 66 66 73 65 74 20 | 74 6f 20 74 68 65 20 73 | offset |to the s|
|000026a0| 65 6c 65 63 74 65 64 20 | 65 6c 65 6d 65 6e 74 2e |elected |element.|
|000026b0| 0d 2a 29 0d 0d 09 5e 63 | 6c 61 73 73 20 2d 3e 20 |.*)...^c|lass -> |
|000026c0| 6f 62 6a 43 6c 61 73 73 | 09 09 09 09 09 5c 20 75 |objClass|.....\ u|
|000026d0| 73 65 64 20 69 6e 20 65 | 72 72 6f 72 20 6d 73 67 |sed in e|rror msg|
|000026e0| 73 20 61 6e 64 20 69 6e | 6c 69 6e 65 20 62 69 6e |s and in|line bin|
|000026f0| 64 69 6e 67 0d 0d 09 73 | 65 6c 49 44 20 5e 63 6c |ding...s|elID ^cl|
|00002700| 61 73 73 20 4d 46 41 5f | 6f 66 66 73 65 74 20 74 |ass MFA_|offset t|
|00002710| 72 75 65 20 20 28 66 69 | 6e 64 6d 29 0d 09 4e 49 |rue (fi|ndm)..NI|
|00002720| 46 20 20 63 72 20 20 5e | 63 6c 61 73 73 20 2e 69 |F cr ^|class .i|
|00002730| 64 20 20 31 30 38 20 64 | 69 65 09 09 5c 20 22 6d |d 108 d|ie..\ "m|
|00002740| 65 74 68 6f 64 20 6e 6f | 74 20 66 6f 75 6e 64 22 |ethod no|t found"|
|00002750| 0d 09 54 48 45 4e 0d 09 | 2d 3e 20 63 66 61 20 20 |..THEN..|-> cfa |
|00002760| 2d 3e 20 6f 66 66 73 0d | 09 6f 66 66 73 20 2d 3e |-> offs.|.offs ->|
|00002770| 20 65 6d 62 5f 6f 62 6a | 5f 6f 66 66 73 09 09 09 | emb_obj|_offs...|
|00002780| 09 5c 20 6d 61 79 20 6e | 65 65 64 20 74 68 69 73 |.\ may n|eed this|
|00002790| 20 69 6e 20 69 6e 6c 69 | 6e 65 20 62 69 6e 64 69 | in inli|ne bindi|
|000027a0| 6e 67 0d 09 63 66 61 0d | 09 5e 63 6c 61 73 73 20 |ng..cfa.|.^class |
|000027b0| 6f 66 66 73 20 20 6c 61 | 72 67 65 5f 6f 62 6a 5f |offs la|rge_obj_|
|000027c0| 61 72 72 61 79 5f 63 68 | 65 63 6b 0d 3b 0d 0d 0d |array_ch|eck.;...|
|000027d0| 3a 20 3c 66 69 6e 64 49 | 56 3e 20 20 7b 20 73 65 |: <findI|V> { se|
|000027e0| 6c 49 44 20 5e 63 6c 61 | 73 73 20 5c 20 5e 69 76 |lID ^cla|ss \ ^iv|
|000027f0| 61 72 20 6f 66 66 73 20 | 78 6f 66 66 73 20 2d 2d |ar offs |xoffs --|
|00002800| 20 5e 69 76 61 72 20 6f | 66 66 73 20 78 64 69 73 | ^ivar o|ffs xdis|
|00002810| 70 6c 2d 6f 66 66 73 20 | 54 20 7c 20 2d 2d 20 46 |pl-offs |T | -- F|
|00002820| 20 20 7d 0d 0d 28 2a 09 | 42 61 73 69 63 20 72 6f | }..(*.|Basic ro|
|00002830| 75 74 69 6e 65 20 74 6f | 20 6c 6f 6f 6b 20 66 6f |utine to| look fo|
|00002840| 72 20 61 6e 20 69 76 61 | 72 2e 20 20 49 74 27 73 |r an iva|r. It's|
|00002850| 20 6e 6f 74 20 61 6e 20 | 65 72 72 6f 72 20 69 66 | not an |error if|
|00002860| 20 77 65 20 64 6f 6e 27 | 74 20 66 69 6e 64 20 69 | we don'|t find i|
|00002870| 74 2c 0d 09 73 6f 20 77 | 65 20 72 65 74 75 72 6e |t,..so w|e return|
|00002880| 20 61 20 66 6c 61 67 2e | 0d 2a 29 0d 09 73 65 6c | a flag.|.*)..sel|
|00002890| 49 44 20 5e 63 6c 61 73 | 73 20 49 46 41 5f 6f 66 |ID ^clas|s IFA_of|
|000028a0| 66 73 65 74 20 66 61 6c | 73 65 20 28 66 69 6e 64 |fset fal|se (find|
|000028b0| 6d 29 20 20 4e 49 46 20 | 20 66 61 6c 73 65 20 20 |m) NIF | false |
|000028c0| 45 58 49 54 20 20 54 48 | 45 4e 0d 09 38 20 2d 20 |EXIT TH|EN..8 - |
|000028d0| 20 2d 3e 20 5e 69 76 61 | 72 20 20 2d 3e 20 6f 66 | -> ^iva|r -> of|
|000028e0| 66 73 09 09 5c 20 6e 6f | 74 65 20 2d 20 28 66 69 |fs..\ no|te - (fi|
|000028f0| 6e 64 6d 29 20 68 61 73 | 20 72 65 74 75 72 6e 65 |ndm) has| returne|
|00002900| 64 20 74 68 65 20 62 61 | 73 65 0d 09 09 09 09 09 |d the ba|se......|
|00002910| 09 09 09 5c 20 20 6f 66 | 66 73 20 68 65 72 65 2e |...\ of|fs here.|
|00002920| 0d 09 5e 69 76 61 72 20 | 31 32 20 2b 20 77 40 20 |..^ivar |12 + w@ |
|00002930| 20 2b 2b 3e 20 6f 66 66 | 73 0d 09 5e 69 76 61 72 | ++> off|s..^ivar|
|00002940| 0d 09 5e 63 6c 61 73 73 | 20 6f 66 66 73 20 20 6c |..^class| offs l|
|00002950| 61 72 67 65 5f 6f 62 6a | 5f 61 72 72 61 79 5f 63 |arge_obj|_array_c|
|00002960| 68 65 63 6b 0d 09 74 72 | 75 65 0d 3b 0d 0d 0d 3a |heck..tr|ue.;...:|
|00002970| 20 43 6c 46 69 6e 64 4d | 20 20 7b 20 73 65 6c 49 | ClFindM| { selI|
|00002980| 44 20 5e 63 6c 61 73 73 | 20 5c 20 63 66 61 20 6f |D ^class| \ cfa o|
|00002990| 66 66 73 20 78 6f 66 66 | 73 20 2d 2d 20 63 66 61 |ffs xoff|s -- cfa|
|000029a0| 20 6f 66 66 73 20 78 64 | 69 73 70 6c 2d 6f 66 66 | offs xd|ispl-off|
|000029b0| 73 20 7d 0d 09 09 09 09 | 09 09 09 09 09 09 09 09 |s }.....|........|
|000029c0| 0d 28 2a 09 66 69 6e 64 | 73 20 61 20 6d 65 74 68 |.(*.find|s a meth|
|000029d0| 6f 64 27 73 20 63 66 61 | 20 67 69 76 65 6e 20 61 |od's cfa| given a|
|000029e0| 20 73 65 6c 49 44 20 61 | 6e 64 20 61 20 63 6c 61 | selID a|nd a cla|
|000029f0| 73 73 20 61 64 64 72 65 | 73 73 2c 20 77 68 69 63 |ss addre|ss, whic|
|00002a00| 68 20 68 61 73 6e 27 74 | 0d 09 62 65 65 6e 20 63 |h hasn't|..been c|
|00002a10| 68 65 63 6b 65 64 20 66 | 6f 72 20 62 65 69 6e 67 |hecked f|or being|
|00002a20| 20 69 6e 20 61 20 6d 6f | 64 75 6c 65 2e 20 20 54 | in a mo|dule. T|
|00002a30| 68 65 20 72 65 74 75 72 | 6e 65 64 20 72 65 73 75 |he retur|ned resu|
|00002a40| 6c 74 73 20 61 72 65 20 | 61 73 0d 09 64 65 73 63 |lts are |as..desc|
|00002a50| 72 69 62 65 64 20 61 62 | 6f 76 65 20 66 6f 72 20 |ribed ab|ove for |
|00002a60| 3c 66 69 6e 64 4d 3e 2e | 0d 2a 29 0d 09 5e 63 6c |<findM>.|.*)..^cl|
|00002a70| 61 73 73 20 3f 3e 63 6c | 61 73 73 49 6e 4d 6f 64 |ass ?>cl|assInMod|
|00002a80| 20 2d 3e 20 5e 63 6c 61 | 73 73 0d 09 73 65 6c 49 | -> ^cla|ss..selI|
|00002a90| 44 20 5e 63 6c 61 73 73 | 20 20 3c 66 69 6e 64 4d |D ^class| <findM|
|00002aa0| 3e 0d 3b 0d 0d 0d 3a 20 | 4f 62 6a 46 69 6e 64 4d |>.;...: |ObjFindM|
|00002ab0| 20 20 7b 20 73 65 6c 49 | 44 20 5e 6f 62 6a 20 5c | { selI|D ^obj \|
|00002ac0| 20 5e 63 6c 61 73 73 20 | 63 66 61 20 6f 66 66 73 | ^class |cfa offs|
|00002ad0| 20 78 6f 66 66 73 20 20 | 2d 2d 20 63 66 61 20 6f | xoffs |-- cfa o|
|00002ae0| 66 66 73 20 78 64 69 73 | 70 6c 2d 6f 66 66 73 0d |ffs xdis|pl-offs.|
|00002af0| 09 09 09 09 09 09 09 09 | 09 09 09 09 7c 20 2d 2d |........|....| --|
|00002b00| 20 63 66 61 20 6f 66 66 | 73 20 30 20 7d 0d 0d 28 | cfa off|s 0 }..(|
|00002b10| 2a 20 46 69 6e 64 73 20 | 61 20 6d 65 74 68 6f 64 |* Finds |a method|
|00002b20| 27 73 20 78 74 20 67 69 | 76 65 6e 20 61 20 73 65 |'s xt gi|ven a se|
|00002b30| 6c 49 44 20 61 6e 64 20 | 61 6e 20 6f 62 6a 20 61 |lID and |an obj a|
|00002b40| 64 64 72 2e 20 20 54 68 | 65 20 72 65 74 75 72 6e |ddr. Th|e return|
|00002b50| 65 64 0d 09 72 65 73 75 | 6c 74 73 20 61 72 65 20 |ed..resu|lts are |
|00002b60| 61 73 20 64 65 73 63 72 | 69 62 65 64 20 61 62 6f |as descr|ibed abo|
|00002b70| 76 65 20 66 6f 72 20 3c | 66 69 6e 64 4d 3e 2e 0d |ve for <|findM>..|
|00002b80| 2a 29 0d 09 5e 6f 62 6a | 20 3e 63 6c 61 73 73 20 |*)..^obj| >class |
|00002b90| 20 2d 3e 20 5e 63 6c 61 | 73 73 0d 09 5e 63 6c 61 | -> ^cla|ss..^cla|
|00002ba0| 73 73 20 4e 49 46 20 20 | 38 31 20 64 69 65 20 20 |ss NIF |81 die |
|00002bb0| 54 48 45 4e 09 09 09 5c | 20 22 6e 6f 74 20 61 6e |THEN...\| "not an|
|00002bc0| 20 6f 62 6a 65 63 74 22 | 0d 09 73 65 6c 49 44 20 | object"|..selID |
|00002bd0| 5e 63 6c 61 73 73 20 20 | 3c 66 69 6e 64 4d 3e 0d |^class |<findM>.|
|00002be0| 3b 0d 0d 0d 3a 20 49 56 | 46 69 6e 64 4d 09 5c 20 |;...: IV|FindM.\ |
|00002bf0| 28 20 73 65 6c 49 44 20 | 5e 69 76 61 72 20 2d 2d |( selID |^ivar --|
|00002c00| 20 78 74 20 6f 66 66 73 | 20 78 64 69 73 70 6c 2d | xt offs| xdispl-|
|00002c10| 6f 66 66 73 20 29 0d 5c | 20 20 4c 6f 6f 6b 73 20 |offs ).\| Looks |
|00002c20| 66 6f 72 20 61 20 6d 65 | 74 68 6f 64 20 69 6e 20 |for a me|thod in |
|00002c30| 61 6e 20 69 76 61 72 2e | 0d 0d 09 38 20 2b 20 40 |an ivar.|...8 + @|
|00002c40| 61 62 73 09 09 5c 20 61 | 64 64 72 20 6f 66 20 69 |abs..\ a|ddr of i|
|00002c50| 76 61 72 27 73 20 63 6c | 61 73 73 0d 09 63 6c 46 |var's cl|ass..clF|
|00002c60| 69 6e 64 6d 20 20 3b 0d | 0d 0d 3a 20 53 45 4e 44 |indm ;.|..: SEND|
|00002c70| 20 20 7b 20 5e 6f 62 6a | 20 73 65 6c 49 44 20 5c | { ^obj| selID \|
|00002c80| 20 73 76 4d 42 20 2d 2d | 20 7d 09 5c 20 20 45 78 | svMB --| }.\ Ex|
|00002c90| 65 63 75 74 65 73 20 61 | 20 6d 65 74 68 6f 64 20 |ecutes a| method |
|00002ca0| 67 69 76 65 6e 20 69 74 | 73 20 73 65 6c 20 49 44 |given it|s sel ID|
|00002cb0| 2e 20 20 55 73 65 64 0d | 09 09 09 09 09 09 09 09 |. Used.|........|
|00002cc0| 09 5c 20 20 09 69 6e 20 | 6c 61 74 65 20 62 69 6e |.\ .in |late bin|
|00002cd0| 64 69 6e 67 2e 20 20 43 | 61 6e 20 61 6c 73 6f 20 |ding. C|an also |
|00002ce0| 62 65 20 75 73 65 64 20 | 69 66 20 79 6f 75 0d 09 |be used |if you..|
|00002cf0| 09 09 09 09 09 09 09 09 | 5c 20 20 20 68 61 76 65 |........|\ have|
|00002d00| 20 61 20 64 79 6e 61 6d | 69 63 61 6c 6c 79 20 64 | a dynam|ically d|
|00002d10| 65 74 65 72 6d 69 6e 65 | 64 20 6d 65 74 68 6f 64 |etermine|d method|
|00002d20| 20 49 44 2e 0d 09 6d 6f | 64 42 61 73 65 20 2d 3e | ID...mo|dBase ->|
|00002d30| 20 73 76 4d 42 0d 09 73 | 65 6c 49 44 20 5e 6f 62 | svMB..s|elID ^ob|
|00002d40| 6a 20 20 6f 62 6a 46 69 | 6e 64 4d 0d 09 3f 64 75 |j objFi|ndM..?du|
|00002d50| 70 0d 09 49 46 09 09 5e | 6f 62 6a 20 2b 20 64 75 |p..IF..^|obj + du|
|00002d60| 70 20 40 20 2b 20 2b 0d | 09 45 4c 53 45 09 5e 6f |p @ + +.|.ELSE.^o|
|00002d70| 62 6a 20 2b 0d 09 54 48 | 45 4e 0d 09 73 77 61 70 |bj +..TH|EN..swap|
|00002d80| 20 20 65 78 2d 6d 65 74 | 68 6f 64 0d 09 73 76 4d | ex-met|hod..svM|
|00002d90| 42 20 2d 3e 20 6d 6f 64 | 42 61 73 65 20 20 3b 0d |B -> mod|Base ;.|
|00002da0| 0d 0d 3a 20 28 44 45 46 | 45 52 29 20 20 28 20 5e |..: (DEF|ER) ( ^|
|00002db0| 6f 62 6a 20 2d 2d 20 29 | 09 09 5c 20 4c 6f 6f 6b |obj -- )|..\ Look|
|00002dc0| 73 20 75 70 20 53 65 6c | 49 44 20 61 74 20 49 50 |s up Sel|ID at IP|
|00002dd0| 20 61 6e 64 20 72 75 6e | 73 20 74 68 65 20 6d 65 | and run|s the me|
|00002de0| 74 68 6f 64 2e 0d 09 09 | 09 09 09 09 09 5c 20 20 |thod....|.....\ |
|00002df0| 55 73 65 64 20 69 6e 20 | 6c 61 74 65 20 62 69 6e |Used in |late bin|
|00002e00| 64 69 6e 67 2e 0d 09 40 | 28 69 70 29 20 20 73 65 |ding...@|(ip) se|
|00002e10| 6e 64 20 20 3b 0d 0d 0d | 30 20 2d 3e 20 71 75 69 |nd ;...|0 -> qui|
|00002e20| 74 76 65 63 20 20 20 30 | 20 2d 3e 20 61 62 6f 72 |tvec 0| -> abor|
|00002e30| 74 76 65 63 20 20 20 30 | 20 2d 3e 20 6f 62 6a 49 |tvec 0| -> objI|
|00002e40| 6e 69 74 09 09 5c 20 63 | 6c 65 61 72 20 76 65 63 |nit..\ c|lear vec|
|00002e50| 74 6f 72 73 0d 27 20 70 | 66 69 6e 64 20 20 2d 3e |tors.' p|find ->|
|00002e60| 20 75 66 69 6e 64 0d 0d | 0d 3a 20 3f 43 4c 41 53 | ufind..|.: ?CLAS|
|00002e70| 53 09 09 5c 20 45 72 72 | 6f 72 20 69 66 20 6e 6f |S..\ Err|or if no|
|00002e80| 74 20 63 6f 6d 70 69 6c | 69 6e 67 20 61 20 63 6c |t compil|ing a cl|
|00002e90| 61 73 73 20 64 65 66 69 | 6e 69 74 69 6f 6e 2e 0d |ass defi|nition..|
|00002ea0| 09 63 73 74 61 74 65 20 | 30 3d 20 20 3f 65 72 72 |.cstate |0= ?err|
|00002eb0| 6f 72 20 31 31 35 20 20 | 3b 0d 0d 0d 0d 28 2a 09 |or 115 |;....(*.|
|00002ec0| 49 56 46 49 4e 44 20 69 | 73 20 63 61 6c 6c 65 64 |IVFIND i|s called|
|00002ed0| 20 77 68 65 6e 20 77 65 | 27 76 65 20 70 61 72 73 | when we|'ve pars|
|00002ee0| 65 64 20 61 20 73 65 6c | 65 63 74 6f 72 2e 20 20 |ed a sel|ector. |
|00002ef0| 49 74 20 64 65 74 65 72 | 6d 69 6e 65 73 20 69 66 |It deter|mines if|
|00002f00| 20 74 68 65 20 6e 65 78 | 74 0d 09 77 6f 72 64 20 | the nex|t..word |
|00002f10| 69 73 20 61 6e 20 69 76 | 61 72 2e 0d 09 4e 6f 74 |is an iv|ar...Not|
|00002f20| 65 3a 20 69 66 20 66 6f | 75 6e 64 2c 20 3c 66 69 |e: if fo|und, <fi|
|00002f30| 6e 64 49 56 3e 20 72 65 | 74 75 72 6e 73 20 74 68 |ndIV> re|turns th|
|00002f40| 65 20 65 71 75 69 76 61 | 6c 65 6e 74 20 6f 66 20 |e equiva|lent of |
|00002f50| 74 68 65 20 63 66 61 20 | 6f 66 0d 09 61 20 6d 65 |the cfa |of..a me|
|00002f60| 74 68 6f 64 2c 20 77 68 | 69 63 68 20 66 6f 72 20 |thod, wh|ich for |
|00002f70| 69 76 61 72 73 2c 20 69 | 73 20 74 68 65 20 61 64 |ivars, i|s the ad|
|00002f80| 64 72 20 6f 66 20 74 68 | 65 20 63 6c 61 73 73 20 |dr of th|e class |
|00002f90| 70 6f 69 6e 74 65 72 2e | 0d 2a 29 0d 0d 3a 20 69 |pointer.|.*)..: i|
|00002fa0| 76 46 69 6e 64 20 20 7b | 20 73 74 72 2d 61 64 64 |vFind {| str-add|
|00002fb0| 72 20 5c 20 78 64 69 73 | 70 6c 2d 6f 66 66 73 20 |r \ xdis|pl-offs |
|00002fc0| 2d 2d 20 5e 69 76 61 72 | 20 6f 66 66 73 20 78 64 |-- ^ivar| offs xd|
|00002fd0| 69 73 70 6c 2d 6f 66 66 | 73 20 54 20 7c 20 20 2d |ispl-off|s T | -|
|00002fe0| 2d 20 73 74 72 2d 61 64 | 64 72 20 46 20 7d 0d 09 |- str-ad|dr F }..|
|00002ff0| 73 74 72 2d 61 64 64 72 | 0d 09 63 73 74 61 74 65 |str-addr|..cstate|
|00003000| 20 20 4e 49 46 20 20 66 | 61 6c 73 65 20 20 45 58 | NIF f|alse EX|
|00003010| 49 54 20 20 54 48 45 4e | 0d 09 68 61 73 68 20 5e |IT THEN|..hash ^|
|00003020| 63 6f 6d 70 5f 63 6c 61 | 73 73 20 20 3c 66 69 6e |comp_cla|ss <fin|
|00003030| 64 49 56 3e 09 09 5c 20 | 28 20 5e 69 76 61 72 20 |dIV>..\ |( ^ivar |
|00003040| 6f 66 66 73 20 78 64 69 | 73 70 6c 2d 6f 66 66 73 |offs xdi|spl-offs|
|00003050| 20 20 54 20 20 7c 20 20 | 46 20 29 0d 09 49 46 09 | T | |F )..IF.|
|00003060| 09 74 72 75 65 0d 09 45 | 4c 53 45 09 44 50 20 20 |.true..E|LSE.DP |
|00003070| 66 61 6c 73 65 0d 09 54 | 48 45 4e 0d 3b 0d 0d 0d |false..T|HEN.;...|
|00003080| 5c 20 54 4f 66 69 6e 64 | 20 6c 6f 6f 6b 73 20 66 |\ TOfind| looks f|
|00003090| 6f 72 20 61 20 74 65 6d | 70 20 28 6c 6f 63 61 6c |or a tem|p (local|
|000030a0| 29 20 6f 62 6a 65 63 74 | 2e 0d 0d 3a 20 54 4f 66 |) object|...: TOf|
|000030b0| 69 6e 64 20 20 7b 20 73 | 74 72 2d 61 64 64 72 20 |ind { s|tr-addr |
|000030c0| 2d 2d 20 5e 69 76 61 72 | 20 6f 66 66 73 20 54 20 |-- ^ivar| offs T |
|000030d0| 7c 20 2d 2d 20 73 74 72 | 2d 61 64 64 72 20 46 20 || -- str|-addr F |
|000030e0| 20 7d 0d 09 73 74 72 2d | 61 64 64 72 0d 09 74 6d | }..str-|addr..tm|
|000030f0| 70 4f 62 6a 73 20 20 4e | 49 46 20 20 66 61 6c 73 |pObjs N|IF fals|
|00003100| 65 20 20 45 58 49 54 20 | 20 54 48 45 4e 0d 09 68 |e EXIT | THEN..h|
|00003110| 61 73 68 0d 09 74 6d 70 | 4f 62 6a 73 20 3c 66 69 |ash..tmp|Objs <fi|
|00003120| 6e 64 49 56 3e 0d 09 49 | 46 09 09 09 09 09 5c 20 |ndIV>..I|F.....\ |
|00003130| 28 20 2d 2d 20 5e 69 76 | 61 72 20 6f 66 66 73 20 |( -- ^iv|ar offs |
|00003140| 78 64 69 73 70 6c 2d 6f | 66 66 73 20 29 0d 09 09 |xdispl-o|ffs )...|
|00003150| 09 64 72 6f 70 09 09 5c | 20 78 64 69 73 70 6c 2d |.drop..\| xdispl-|
|00003160| 6f 66 66 73 20 6d 75 73 | 74 20 62 65 20 7a 65 72 |offs mus|t be zer|
|00003170| 6f 20 66 6f 72 20 63 6c | 61 73 73 20 44 75 6d 6d |o for cl|ass Dumm|
|00003180| 79 0d 09 09 09 64 75 70 | 20 24 20 46 46 46 45 20 |y....dup| $ FFFE |
|00003190| 3e 3d 0d 09 09 09 49 46 | 09 09 09 5c 20 73 65 6c |>=....IF|...\ sel|
|000031a0| 66 20 6f 72 20 73 75 70 | 65 72 20 2d 20 6d 75 73 |f or sup|er - mus|
|000031b0| 74 6e 27 74 20 6d 61 74 | 63 68 20 74 68 65 73 65 |tn't mat|ch these|
|000031c0| 20 69 6e 20 63 6c 61 73 | 73 20 44 75 6d 6d 79 21 | in clas|s Dummy!|
|000031d0| 0d 09 09 09 09 32 64 72 | 6f 70 20 20 73 74 72 2d |.....2dr|op str-|
|000031e0| 61 64 64 72 20 66 61 6c | 73 65 20 20 45 58 49 54 |addr fal|se EXIT|
|000031f0| 0d 09 09 09 54 48 45 4e | 0d 09 09 09 74 72 75 65 |....THEN|....true|
|00003200| 0d 09 45 4c 53 45 09 73 | 74 72 2d 61 64 64 72 20 |..ELSE.s|tr-addr |
|00003210| 66 61 6c 73 65 0d 09 54 | 48 45 4e 0d 3b 0d 09 0d |false..T|HEN.;...|
|00003220| 28 2a 0d 4c 6f 63 46 69 | 6e 64 20 77 69 6c 6c 20 |(*.LocFi|nd will |
|00003230| 62 65 20 63 61 6c 6c 65 | 64 20 66 72 6f 6d 20 55 |be calle|d from U|
|00003240| 66 69 6e 64 2c 20 77 68 | 69 63 68 20 69 73 20 74 |find, wh|ich is t|
|00003250| 68 65 20 76 65 63 74 6f | 72 20 74 68 61 74 20 67 |he vecto|r that g|
|00003260| 65 74 73 20 66 69 72 73 | 74 0d 73 68 6f 74 20 61 |ets firs|t.shot a|
|00003270| 74 20 72 65 63 6f 67 6e | 69 7a 69 6e 67 20 61 20 |t recogn|izing a |
|00003280| 77 6f 72 64 2e 0d 49 74 | 20 6c 6f 6f 6b 73 20 61 |word..It| looks a|
|00003290| 74 20 61 6c 6c 20 74 68 | 65 20 70 6f 73 73 69 62 |t all th|e possib|
|000032a0| 69 6c 69 74 69 65 73 20 | 69 6e 76 6f 6c 76 69 6e |ilities |involvin|
|000032b0| 67 20 6c 6f 63 61 6c 20 | 6e 61 6d 65 73 2c 20 77 |g local |names, w|
|000032c0| 68 69 63 68 20 61 72 65 | 0d 6e 6f 74 20 69 6e 20 |hich are|.not in |
|000032d0| 74 68 65 20 72 65 67 75 | 6c 61 72 20 64 69 63 74 |the regu|lar dict|
|000032e0| 69 6f 6e 61 72 79 2e 20 | 20 54 68 65 73 65 20 70 |ionary. | These p|
|000032f0| 6f 73 73 69 62 69 6c 69 | 74 69 65 73 20 61 72 65 |ossibili|ties are|
|00003300| 3a 20 6e 61 6d 65 64 20 | 70 61 72 6d 73 2f 6c 6f |: named |parms/lo|
|00003310| 63 61 6c 73 2c 0d 6c 6f | 63 61 6c 20 6f 62 6a 65 |cals,.lo|cal obje|
|00003320| 63 74 73 2c 20 61 6e 64 | 20 69 66 20 61 20 63 6c |cts, and| if a cl|
|00003330| 61 73 73 20 69 73 20 62 | 65 69 6e 67 20 63 6f 6d |ass is b|eing com|
|00003340| 70 69 6c 65 64 2c 20 69 | 76 61 72 73 20 6f 66 20 |piled, i|vars of |
|00003350| 74 68 69 73 20 63 6c 61 | 73 73 2e 0d 0d 49 6e 20 |this cla|ss...In |
|00003360| 74 68 65 20 6c 61 74 74 | 65 72 20 63 61 73 65 2c |the latt|er case,|
|00003370| 20 77 65 20 61 72 72 61 | 6e 67 65 20 66 6f 72 20 | we arra|nge for |
|00003380| 74 68 65 20 69 76 61 72 | 27 73 20 61 64 64 72 65 |the ivar|'s addre|
|00003390| 73 73 20 74 6f 0d 62 65 | 20 70 75 73 68 65 64 20 |ss to.be| pushed |
|000033a0| 61 74 20 72 75 6e 20 74 | 69 6d 65 20 73 69 6d 70 |at run t|ime simp|
|000033b0| 6c 79 20 62 79 20 63 6f | 6d 70 69 6c 69 6e 67 20 |ly by co|mpiling |
|000033c0| 5e 62 61 73 65 20 66 6f | 6c 6c 6f 77 65 64 20 62 |^base fo|llowed b|
|000033d0| 79 20 61 6e 20 61 64 64 | 20 6f 66 20 74 68 65 0d |y an add| of the.|
|000033e0| 69 76 61 72 27 73 20 6f | 66 66 73 65 74 20 2d 20 |ivar's o|ffset - |
|000033f0| 6f 75 72 20 63 6f 64 65 | 20 67 65 6e 65 72 61 74 |our code| generat|
|00003400| 69 6f 6e 20 77 69 6c 6c | 20 70 72 6f 64 75 63 65 |ion will| produce|
|00003410| 20 6f 70 74 69 6d 61 6c | 20 63 6f 64 65 20 66 6f | optimal| code fo|
|00003420| 72 20 74 68 69 73 2e 0d | 57 65 20 74 68 65 6e 20 |r this..|We then |
|00003430| 68 61 76 65 20 74 6f 20 | 72 65 74 75 72 6e 20 74 |have to |return t|
|00003440| 68 65 20 78 74 20 6f 66 | 20 73 6f 6d 65 20 77 6f |he xt of| some wo|
|00003450| 72 64 20 74 6f 20 6b 65 | 65 70 20 46 49 4e 44 20 |rd to ke|ep FIND |
|00003460| 68 61 70 70 79 20 2d 20 | 77 65 20 64 6f 6e 27 74 |happy - |we don't|
|00003470| 0d 6e 65 65 64 20 74 6f | 20 63 6f 6d 70 69 6c 65 |.need to| compile|
|00003480| 20 61 6e 79 74 68 69 6e | 67 20 65 6c 73 65 2c 20 | anythin|g else, |
|00003490| 73 6f 20 77 65 20 75 73 | 65 20 74 68 65 20 78 74 |so we us|e the xt|
|000034a0| 20 6f 66 20 4e 55 4c 4c | 20 61 6e 64 20 72 65 74 | of NULL| and ret|
|000034b0| 75 72 6e 20 61 20 31 0d | 69 6e 73 74 65 61 64 20 |urn a 1.|instead |
|000034c0| 6f 66 20 54 72 75 65 20 | 2d 20 74 68 69 73 20 6d |of True |- this m|
|000034d0| 61 6b 65 73 20 46 49 4e | 44 20 74 68 69 6e 6b 20 |akes FIN|D think |
|000034e0| 69 74 27 73 20 69 6d 6d | 65 64 69 61 74 65 2e 20 |it's imm|ediate. |
|000034f0| 20 53 6f 20 4e 55 4c 4c | 20 69 73 0d 65 78 65 63 | So NULL| is.exec|
|00003500| 75 74 65 64 20 69 6d 6d | 65 64 69 61 74 65 6c 79 |uted imm|ediately|
|00003510| 2c 20 77 68 69 63 68 20 | 64 6f 65 73 20 70 72 65 |, which |does pre|
|00003520| 63 69 73 65 6c 79 20 6e | 6f 74 68 69 6e 67 2e 0d |cisely n|othing..|
|00003530| 0d 54 68 65 20 6f 6e 65 | 20 65 78 63 65 70 74 69 |.The one| excepti|
|00003540| 6f 6e 20 74 6f 20 74 68 | 69 73 20 69 73 20 69 66 |on to th|is is if|
|00003550| 20 74 68 65 20 22 69 76 | 61 72 22 20 74 75 72 6e | the "iv|ar" turn|
|00003560| 73 20 6f 75 74 20 74 6f | 20 62 65 20 53 45 4c 46 |s out to| be SELF|
|00003570| 20 6f 72 20 53 55 50 45 | 52 0d 2d 20 69 6e 20 74 | or SUPE|R.- in t|
|00003580| 68 69 73 20 63 61 73 65 | 20 77 65 20 6e 65 65 64 |his case| we need|
|00003590| 20 74 6f 20 63 61 6c 6c | 20 74 68 65 20 6e 75 63 | to call| the nuc|
|000035a0| 6c 65 75 73 20 77 6f 72 | 64 20 53 45 4c 46 20 77 |leus wor|d SELF w|
|000035b0| 68 69 63 68 20 77 6f 72 | 6b 73 20 6f 75 74 0d 74 |hich wor|ks out.t|
|000035c0| 68 65 20 72 69 67 68 74 | 20 62 61 73 65 20 61 64 |he right| base ad|
|000035d0| 64 72 65 73 73 20 28 74 | 68 69 73 20 69 73 20 77 |dress (t|his is w|
|000035e0| 68 61 74 20 68 61 70 70 | 65 6e 65 64 20 70 72 65 |hat happ|ened pre|
|000035f0| 2d 32 2e 35 29 2e 20 20 | 48 65 72 65 20 77 65 20 |-2.5). |Here we |
|00003600| 6b 65 65 70 0d 46 49 4e | 44 20 68 61 70 70 79 20 |keep.FIN|D happy |
|00003610| 62 79 20 70 75 73 68 69 | 6e 67 20 74 68 65 20 78 |by pushi|ng the x|
|00003620| 74 20 6f 66 20 53 45 4c | 46 20 61 6e 64 20 54 72 |t of SEL|F and Tr|
|00003630| 75 65 2c 20 73 6f 20 74 | 68 61 74 20 69 74 20 73 |ue, so t|hat it s|
|00003640| 65 65 73 20 77 65 27 76 | 65 0d 66 6f 75 6e 64 20 |ees we'v|e.found |
|00003650| 53 45 4c 46 2e 0d 2a 29 | 0d 0d 3a 20 4c 6f 63 46 |SELF..*)|..: LocF|
|00003660| 69 6e 64 09 09 5c 20 28 | 20 73 74 72 2d 61 64 64 |ind..\ (| str-add|
|00003670| 72 20 2d 2d 20 63 66 61 | 20 54 20 20 7c 20 20 2d |r -- cfa| T | -|
|00003680| 2d 20 73 74 72 2d 61 64 | 64 72 20 46 20 29 0d 09 |- str-ad|dr F )..|
|00003690| 50 66 69 6e 64 09 3f 64 | 75 70 20 20 3f 45 58 49 |Pfind.?d|up ?EXI|
|000036a0| 54 09 09 09 09 09 5c 20 | 46 6f 75 6e 64 20 61 20 |T.....\ |Found a |
|000036b0| 6e 61 6d 65 64 20 70 61 | 72 6d 2f 6c 6f 63 61 6c |named pa|rm/local|
|000036c0| 0d 09 54 4f 66 69 6e 64 | 0d 09 49 46 09 09 09 09 |..TOfind|..IF....|
|000036d0| 09 09 09 09 09 5c 20 46 | 6f 75 6e 64 20 74 65 6d |.....\ F|ound tem|
|000036e0| 70 20 6f 62 6a 0d 09 09 | 6e 69 70 09 09 09 09 09 |p obj...|nip.....|
|000036f0| 09 09 09 5c 20 44 6f 6e | 27 74 20 6e 65 65 64 20 |...\ Don|'t need |
|00003700| 69 74 73 20 64 69 63 20 | 61 64 64 72 0d 09 09 70 |its dic |addr...p|
|00003710| 6f 73 74 70 6f 6e 65 20 | 6c 6f 63 52 65 67 20 20 |ostpone |locReg |
|00003720| 70 6f 73 74 70 6f 6e 65 | 20 6c 69 74 65 72 61 6c |postpone| literal|
|00003730| 20 20 70 6f 73 74 70 6f | 6e 65 20 2b 0d 09 09 5b | postpo|ne +...[|
|00003740| 27 5d 20 6e 75 6c 6c 20 | 20 31 20 20 20 45 58 49 |'] null | 1 EXI|
|00003750| 54 0d 09 54 48 45 4e 0d | 0d 5c 20 4e 6f 77 20 77 |T..THEN.|.\ Now w|
|00003760| 65 20 6c 6f 6f 6b 20 66 | 6f 72 20 61 6e 20 69 76 |e look f|or an iv|
|00003770| 61 72 20 6e 61 6d 65 0d | 0d 09 63 73 74 61 74 65 |ar name.|..cstate|
|00003780| 20 20 4e 49 46 20 20 66 | 61 6c 73 65 20 20 45 58 | NIF f|alse EX|
|00003790| 49 54 20 20 54 48 45 4e | 09 09 5c 20 73 65 61 72 |IT THEN|..\ sear|
|000037a0| 63 68 20 66 61 69 6c 73 | 20 69 66 20 77 65 27 72 |ch fails| if we'r|
|000037b0| 65 20 6e 6f 74 20 63 6f | 6d 70 69 6c 69 6e 67 0d |e not co|mpiling.|
|000037c0| 09 09 09 09 09 09 09 09 | 09 09 5c 20 20 61 20 63 |........|..\ a c|
|000037d0| 6c 61 73 73 0d 0d 5c 20 | 6d 79 62 75 67 74 65 73 |lass..\ |mybugtes|
|000037e0| 74 20 69 66 20 64 62 20 | 74 68 65 6e 0d 09 0d 09 |t if db |then....|
|000037f0| 64 75 70 20 68 61 73 68 | 20 5e 63 6f 6d 70 5f 63 |dup hash| ^comp_c|
|00003800| 6c 61 73 73 20 49 46 41 | 5f 6f 66 66 73 65 74 20 |lass IFA|_offset |
|00003810| 66 61 6c 73 65 20 20 28 | 66 69 6e 64 6d 29 0d 09 |false (|findm)..|
|00003820| 49 46 09 09 09 09 09 09 | 09 09 09 5c 20 46 6f 75 |IF......|...\ Fou|
|00003830| 6e 64 20 69 76 61 72 0d | 09 09 6e 69 70 20 6e 69 |nd ivar.|..nip ni|
|00003840| 70 09 09 09 09 09 09 09 | 5c 20 64 6f 6e 27 74 20 |p.......|\ don't |
|00003850| 6e 65 65 64 20 65 6d 62 | 65 64 64 65 64 20 6f 62 |need emb|edded ob|
|00003860| 6a 20 6f 66 66 73 20 6f | 72 0d 09 09 09 09 09 09 |j offs o|r.......|
|00003870| 09 09 09 09 5c 20 20 73 | 74 72 69 6e 67 20 61 64 |....\ s|tring ad|
|00003880| 64 72 0d 09 09 34 2b 20 | 77 40 09 09 09 09 09 09 |dr...4+ |w@......|
|00003890| 09 5c 20 69 76 61 72 20 | 6f 66 66 73 65 74 0d 09 |.\ ivar |offset..|
|000038a0| 09 64 75 70 20 24 20 46 | 46 46 45 20 3e 3d 09 09 |.dup $ F|FFE >=..|
|000038b0| 09 09 09 5c 20 69 73 20 | 69 74 20 53 45 4c 46 20 |...\ is |it SELF |
|000038c0| 6f 72 20 53 55 50 45 52 | 20 28 6a 75 73 74 20 75 |or SUPER| (just u|
|000038d0| 73 65 64 20 69 6e 0d 09 | 09 09 09 09 09 09 09 09 |sed in..|........|
|000038e0| 09 5c 20 20 69 73 6f 6c | 61 74 69 6f 6e 29 3f 0d |.\ isol|ation)?.|
|000038f0| 09 09 49 46 09 64 72 6f | 70 20 20 5b 27 5d 20 73 |..IF.dro|p ['] s|
|00003900| 65 6c 66 20 20 74 72 75 | 65 20 20 45 58 49 54 0d |elf tru|e EXIT.|
|00003910| 09 09 54 48 45 4e 0d 09 | 09 70 6f 73 74 70 6f 6e |..THEN..|.postpon|
|00003920| 65 20 5e 62 61 73 65 20 | 70 6f 73 74 70 6f 6e 65 |e ^base |postpone|
|00003930| 20 6c 69 74 65 72 61 6c | 20 20 70 6f 73 74 70 6f | literal| postpo|
|00003940| 6e 65 20 2b 0d 09 09 5b | 27 5d 20 6e 75 6c 6c 20 |ne +...[|'] null |
|00003950| 20 31 0d 09 45 4c 53 45 | 09 66 61 6c 73 65 0d 09 | 1..ELSE|.false..|
|00003960| 54 48 45 4e 20 20 3b 0d | 0d 0d 3a 20 49 4c 46 41 |THEN ;.|..: ILFA|
|00003970| 20 20 20 20 20 28 20 69 | 6e 66 61 20 2d 2d 20 69 | ( i|nfa -- i|
|00003980| 6c 66 61 20 29 09 34 2b | 20 20 3b 0d 0d 0d 3a 20 |lfa ).4+| ;...: |
|00003990| 5e 49 43 4c 41 53 53 20 | 20 28 20 69 6e 66 61 20 |^ICLASS | ( infa |
|000039a0| 2d 2d 20 5e 63 6c 61 73 | 73 20 7c 20 30 20 29 0d |-- ^clas|s | 0 ).|
|000039b0| 09 38 20 2b 20 64 75 70 | 20 40 20 4e 49 46 20 20 |.8 + dup| @ NIF |
|000039c0| 20 64 72 6f 70 20 30 20 | 20 20 45 4c 53 45 20 20 | drop 0 | ELSE |
|000039d0| 20 40 61 62 73 20 3f 3e | 63 6c 61 73 73 49 6e 4d | @abs ?>|classInM|
|000039e0| 6f 64 20 20 20 54 48 45 | 4e 20 20 3b 0d 0d 0d 3a |od THE|N ;...:|
|000039f0| 20 49 4f 46 46 53 09 28 | 20 69 6e 66 61 20 2d 2d | IOFFS.(| infa --|
|00003a00| 20 69 6f 66 66 73 20 29 | 09 31 32 20 2b 20 77 40 | ioffs )|.12 + w@|
|00003a10| 20 20 3b 0d 3a 20 49 23 | 45 4c 53 09 28 20 69 6e | ;.: I#|ELS.( in|
|00003a20| 66 61 20 2d 2d 20 23 65 | 6c 73 20 29 09 31 34 20 |fa -- #e|ls ).14 |
|00003a30| 2b 20 77 40 20 20 3b 0d | 3a 20 49 46 46 41 20 09 |+ w@ ;.|: IFFA .|
|00003a40| 28 20 69 6e 66 61 20 2d | 2d 20 69 66 66 61 20 29 |( infa -|- iffa )|
|00003a50| 09 69 6e 6c 69 6e 65 7b | 20 31 36 20 2b 7d 20 20 |.inline{| 16 +} |
|00003a60| 3b 0d 0d 0d 3a 20 5e 4e | 45 58 54 49 56 41 52 09 |;...: ^N|EXTIVAR.|
|00003a70| 5c 20 28 20 69 6e 66 61 | 20 2d 2d 20 69 6e 66 61 |\ ( infa| -- infa|
|00003a80| 27 20 29 0d 09 69 6c 66 | 61 20 20 64 69 73 70 6c |' )..ilf|a displ|
|00003a90| 61 63 65 20 20 3b 0d 0d | 0d 5c 09 09 09 09 09 09 |ace ;..|.\......|
|00003aa0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003ab0| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 5c 09 09 09 09 09 09 |========|.\......|
|00003ac0| 09 09 42 49 4e 44 49 4e | 47 0d 5c 09 09 09 09 09 |..BINDIN|G.\.....|
|00003ad0| 09 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.=======|========|
|00003ae0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0d 20 20 20 20 30 |========|=.. 0|
|00003af0| 09 76 61 6c 75 65 09 4f | 42 4a 5f 42 41 53 45 0d |.value.O|BJ_BASE.|
|00003b00| 20 20 20 20 30 09 76 61 | 6c 75 65 09 4f 42 4a 5f | 0.va|lue.OBJ_|
|00003b10| 44 49 53 50 4c 0d 20 20 | 20 20 30 09 76 61 6c 75 |DISPL. | 0.valu|
|00003b20| 65 09 4f 42 4a 5f 4c 4f | 43 41 4c 5f 44 49 53 50 |e.OBJ_LO|CAL_DISP|
|00003b30| 4c 0d 20 20 20 20 30 09 | 76 61 6c 75 65 09 4f 42 |L. 0.|value.OB|
|00003b40| 4a 5f 49 4e 44 0d 0d 66 | 61 6c 73 65 09 76 61 6c |J_IND..f|alse.val|
|00003b50| 75 65 09 53 45 4c 46 3f | 0d 0d 0d 3a 20 28 4f 42 |ue.SELF?|...: (OB|
|00003b60| 4a 29 09 09 5c 20 43 61 | 6c 6c 65 64 20 66 72 6f |J)..\ Ca|lled fro|
|00003b70| 6d 20 77 69 74 68 69 6e | 20 61 6e 20 69 6e 6c 69 |m within| an inli|
|00003b80| 6e 65 20 6d 65 74 68 6f | 64 2e 20 20 50 61 73 73 |ne metho|d. Pass|
|00003b90| 65 73 20 74 68 65 20 6f | 62 6a 65 63 74 27 73 0d |es the o|bject's.|
|00003ba0| 09 09 09 5c 20 20 62 61 | 73 65 20 61 6e 64 20 64 |...\ ba|se and d|
|00003bb0| 69 73 70 6c 61 63 65 6d | 65 6e 74 20 74 6f 20 48 |isplacem|ent to H|
|00003bc0| 61 6e 64 6c 65 72 73 20 | 74 6f 20 67 65 6e 65 72 |andlers |to gener|
|00003bd0| 61 74 65 20 74 68 65 20 | 63 6f 72 72 65 63 74 0d |ate the |correct.|
|00003be0| 09 09 09 5c 20 20 61 64 | 64 72 65 73 73 2e 20 20 |...\ ad|dress. |
|00003bf0| 4f 70 74 69 6d 69 7a 61 | 74 69 6f 6e 20 77 69 6c |Optimiza|tion wil|
|00003c00| 6c 20 74 68 65 6e 20 61 | 70 70 6c 79 2e 0d 0d 09 |l then a|pply....|
|00003c10| 6f 62 6a 5f 62 61 73 65 | 20 6f 62 6a 5f 64 69 73 |obj_base| obj_dis|
|00003c20| 70 6c 0d 09 6f 62 6a 5f | 69 6e 64 20 20 67 65 6e |pl..obj_|ind gen|
|00003c30| 61 64 64 72 0d 09 6f 62 | 6a 5f 6c 6f 63 61 6c 5f |addr..ob|j_local_|
|00003c40| 64 69 73 70 6c 20 20 70 | 6f 73 74 70 6f 6e 65 20 |displ p|ostpone |
|00003c50| 6c 69 74 65 72 61 6c 20 | 20 70 6f 73 74 70 6f 6e |literal | postpon|
|00003c60| 65 20 2b 20 20 3b 0d 0d | 0d 3a 20 28 49 58 29 0d |e + ;..|.: (IX).|
|00003c70| 0d 09 28 2a 09 43 61 6c | 6c 65 64 20 66 72 6f 6d |..(*.Cal|led from|
|00003c80| 20 77 69 74 68 69 6e 20 | 61 6e 20 69 6e 6c 69 6e | within |an inlin|
|00003c90| 65 20 6d 65 74 68 6f 64 | 2e 20 20 43 6f 6d 70 69 |e method|. Compi|
|00003ca0| 6c 65 73 20 63 6f 64 65 | 20 74 6f 20 67 65 6e 65 |les code| to gene|
|00003cb0| 72 61 74 65 0d 09 09 74 | 68 65 20 69 6e 64 65 78 |rate...t|he index|
|00003cc0| 65 64 20 61 64 64 72 65 | 73 73 2e 0d 09 09 5e 63 |ed addre|ss....^c|
|00003cd0| 6f 6d 70 5f 63 6c 61 73 | 73 20 68 61 73 20 62 65 |omp_clas|s has be|
|00003ce0| 65 6e 20 73 65 74 20 62 | 79 20 69 6e 6c 5f 62 69 |en set b|y inl_bi|
|00003cf0| 6e 64 20 74 6f 20 74 68 | 65 20 63 6c 61 73 73 20 |nd to th|e class |
|00003d00| 6f 66 20 74 68 65 20 6f | 62 6a 0d 09 09 77 65 27 |of the o|bj...we'|
|00003d10| 72 65 20 62 69 6e 64 69 | 6e 67 20 74 6f 2e 20 20 |re bindi|ng to. |
|00003d20| 4f 6e 65 20 74 72 69 63 | 6b 79 20 70 6f 69 6e 74 |One tric|ky point|
|00003d30| 20 69 73 20 74 68 61 74 | 20 74 6f 20 61 63 63 65 | is that| to acce|
|00003d40| 73 73 20 74 68 65 20 69 | 6e 64 65 78 65 64 0d 09 |ss the i|ndexed..|
|00003d50| 09 61 72 65 61 2c 20 77 | 65 20 68 61 76 65 20 74 |.area, w|e have t|
|00003d60| 6f 20 75 73 65 20 74 68 | 65 20 64 6c 65 6e 20 76 |o use th|e dlen v|
|00003d70| 61 6c 75 65 20 69 6e 20 | 74 68 69 73 20 63 6c 61 |alue in |this cla|
|00003d80| 73 73 2c 20 6e 6f 74 20 | 74 68 65 20 63 6c 61 73 |ss, not |the clas|
|00003d90| 73 0d 09 09 6f 66 20 74 | 68 65 20 6d 65 74 68 6f |s...of t|he metho|
|00003da0| 64 20 77 65 27 72 65 20 | 63 61 6c 6c 69 6e 67 20 |d we're |calling |
|00003db0| 28 77 68 69 63 68 20 6d | 61 79 20 62 65 20 61 20 |(which m|ay be a |
|00003dc0| 73 75 70 65 72 63 6c 61 | 73 73 29 2e 20 20 42 75 |supercla|ss). Bu|
|00003dd0| 74 0d 09 09 74 68 65 20 | 6f 62 6a 5f 6c 6f 63 61 |t...the |obj_loca|
|00003de0| 6c 5f 64 69 73 70 6c 20 | 68 61 73 20 61 6c 72 65 |l_displ |has alre|
|00003df0| 61 64 79 20 68 61 64 20 | 74 68 65 20 65 6d 62 65 |ady had |the embe|
|00003e00| 64 64 65 64 20 6f 62 6a | 65 63 74 20 6f 66 66 73 |dded obj|ect offs|
|00003e10| 65 74 0d 09 09 61 64 64 | 65 64 20 69 6e 20 28 69 |et...add|ed in (i|
|00003e20| 66 20 61 6e 79 29 2e 20 | 20 57 65 20 68 61 76 65 |f any). | We have|
|00003e30| 20 74 6f 20 69 67 6e 6f | 72 65 20 74 68 69 73 2c | to igno|re this,|
|00003e40| 20 73 69 6e 63 65 20 77 | 65 27 72 65 20 75 73 69 | since w|e're usi|
|00003e50| 6e 67 20 0d 09 09 74 68 | 65 20 6f 62 6a 65 63 74 |ng ...th|e object|
|00003e60| 27 73 20 63 6c 61 73 73 | 2c 20 6e 6f 74 20 74 68 |'s class|, not th|
|00003e70| 65 20 6d 65 74 68 6f 64 | 27 73 2e 20 20 57 68 65 |e method|'s. Whe|
|00003e80| 6e 20 74 68 65 20 6d 65 | 74 68 6f 64 20 77 61 73 |n the me|thod was|
|00003e90| 20 66 6f 75 6e 64 2c 0d | 09 09 74 68 65 20 76 61 | found,.|..the va|
|00003ea0| 6c 75 65 20 65 6d 62 5f | 6f 62 6a 5f 6f 66 66 73 |lue emb_|obj_offs|
|00003eb0| 20 77 61 73 20 73 65 74 | 20 74 6f 20 74 68 69 73 | was set| to this|
|00003ec0| 20 6f 66 66 73 65 74 2c | 20 73 6f 20 77 65 20 73 | offset,| so we s|
|00003ed0| 75 62 74 72 61 63 74 0d | 09 09 69 74 20 68 65 72 |ubtract.|..it her|
|00003ee0| 65 2e 0d 09 2a 29 0d 0d | 09 5e 63 6f 6d 70 5f 63 |e...*)..|.^comp_c|
|00003ef0| 6c 61 73 73 20 64 6c 65 | 6e 26 78 77 69 64 20 20 |lass dle|n&xwid |
|00003f00| 73 77 61 70 0d 09 73 65 | 6c 66 3f 0d 09 49 46 20 |swap..se|lf?..IF |
|00003f10| 20 64 72 6f 70 20 20 2d | 31 20 20 45 4c 53 45 20 | drop -|1 ELSE |
|00003f20| 20 61 6c 69 67 6e 65 64 | 20 20 36 20 2b 20 20 54 | aligned| 6 + T|
|00003f30| 48 45 4e 0d 09 6f 62 6a | 5f 62 61 73 65 20 6f 62 |HEN..obj|_base ob|
|00003f40| 6a 5f 64 69 73 70 6c 20 | 6f 62 6a 5f 6c 6f 63 61 |j_displ |obj_loca|
|00003f50| 6c 5f 64 69 73 70 6c 0d | 09 65 6d 62 5f 6f 62 6a |l_displ.|.emb_obj|
|00003f60| 5f 6f 66 66 73 20 2d 0d | 09 6f 62 6a 5f 69 6e 64 |_offs -.|.obj_ind|
|00003f70| 20 20 5e 63 6f 6d 70 5f | 63 6c 61 73 73 20 66 66 | ^comp_|class ff|
|00003f80| 61 20 77 40 0d 09 67 65 | 6e 78 61 64 64 72 20 20 |a w@..ge|nxaddr |
|00003f90| 3b 0d 0d 0d 3a 20 5e 42 | 41 53 45 0d 09 63 6f 6d |;...: ^B|ASE..com|
|00003fa0| 70 69 6e 6c 69 6e 65 3f | 0d 09 49 46 09 09 28 6f |pinline?|..IF..(o|
|00003fb0| 62 6a 29 0d 09 45 4c 53 | 45 09 70 6f 73 74 70 6f |bj)..ELS|E.postpo|
|00003fc0| 6e 65 20 5e 62 61 73 65 | 0d 09 54 48 45 4e 20 20 |ne ^base|..THEN |
|00003fd0| 3b 09 09 09 69 6d 6d 65 | 64 69 61 74 65 0d 0d 0d |;...imme|diate...|
|00003fe0| 3a 20 5e 45 4c 45 4d 0d | 09 63 6f 6d 70 69 6e 6c |: ^ELEM.|.compinl|
|00003ff0| 69 6e 65 3f 0d 09 49 46 | 09 09 28 69 78 29 0d 09 |ine?..IF|..(ix)..|
|00004000| 45 4c 53 45 09 70 6f 73 | 74 70 6f 6e 65 20 5e 65 |ELSE.pos|tpone ^e|
|00004010| 6c 65 6d 0d 09 54 48 45 | 4e 20 20 3b 09 09 09 69 |lem..THE|N ;...i|
|00004020| 6d 6d 65 64 69 61 74 65 | 0d 0d 0d 3a 20 4f 42 4a |mmediate|...: OBJ|
|00004030| 09 70 6f 73 74 70 6f 6e | 65 20 5e 62 61 73 65 20 |.postpon|e ^base |
|00004040| 20 3b 09 69 6d 6d 65 64 | 69 61 74 65 09 09 5c 20 | ;.immed|iate..\ |
|00004050| 66 6f 72 20 62 61 63 6b | 77 61 72 64 20 63 6f 6d |for back|ward com|
|00004060| 70 61 74 69 62 69 6c 69 | 74 79 0d 3a 20 49 58 09 |patibili|ty.: IX.|
|00004070| 70 6f 73 74 70 6f 6e 65 | 20 5e 65 6c 65 6d 20 20 |postpone| ^elem |
|00004080| 3b 09 69 6d 6d 65 64 69 | 61 74 65 09 09 5c 20 64 |;.immedi|ate..\ d|
|00004090| 69 74 74 6f 0d 0d 0d 6c | 6f 63 61 6c 20 20 45 41 |itto...l|ocal EA|
|000040a0| 52 4c 59 5f 42 49 4e 44 | 20 20 7b 20 6f 43 66 61 |RLY_BIND| { oCfa|
|000040b0| 20 6f 42 61 73 65 20 6f | 44 69 73 70 6c 20 6f 4c | oBase o|Displ oL|
|000040c0| 44 69 73 70 6c 20 6f 69 | 6e 64 20 73 6c 66 3f 20 |Displ oi|nd slf? |
|000040d0| 5c 20 5e 6d 6f 64 20 70 | 74 72 20 2d 2d 20 7d 0d |\ ^mod p|tr -- }.|
|000040e0| 0d 0d 3a 20 49 4e 4c 5f | 42 49 4e 44 09 5c 20 28 |..: INL_|BIND.\ (|
|000040f0| 20 2d 2d 20 62 20 29 0d | 09 5c 20 49 6e 2d 6c 69 | -- b ).|.\ In-li|
|00004100| 6e 65 20 63 6f 64 65 20 | 74 6f 20 62 65 20 63 6f |ne code |to be co|
|00004110| 6d 70 69 6c 65 64 20 66 | 6f 72 20 74 68 69 73 20 |mpiled f|or this |
|00004120| 6d 65 74 68 6f 64 2e 0d | 09 5c 20 42 75 74 20 6e |method..|.\ But n|
|00004130| 6f 74 65 2c 20 77 65 20 | 64 6f 6e 27 74 20 64 6f |ote, we |don't do|
|00004140| 20 69 74 20 69 66 20 6f | 62 6a 5f 62 61 73 65 20 | it if o|bj_base |
|00004150| 69 73 20 7a 65 72 6f 2c | 20 6d 65 61 6e 69 6e 67 |is zero,| meaning|
|00004160| 20 74 68 61 74 0d 09 5c | 20 77 65 20 68 61 76 65 | that..\| we have|
|00004170| 20 70 75 74 20 74 68 65 | 20 5e 6f 62 6a 20 69 6e | put the| ^obj in|
|00004180| 20 41 30 20 61 73 20 61 | 20 74 65 6d 70 6f 72 61 | A0 as a| tempora|
|00004190| 72 79 2e 20 20 53 6f 6d | 65 20 69 6e 6c 69 6e 65 |ry. Som|e inline|
|000041a0| 0d 09 5c 20 6d 65 74 68 | 6f 64 73 20 63 6f 75 6c |..\ meth|ods coul|
|000041b0| 64 20 63 61 75 73 65 20 | 61 20 63 6c 61 73 68 20 |d cause |a clash |
|000041c0| 6f 6e 20 41 30 2e 20 20 | 53 6f 20 69 6e 20 74 68 |on A0. |So in th|
|000041d0| 69 73 20 63 61 73 65 20 | 77 65 0d 09 5c 20 63 61 |is case |we..\ ca|
|000041e0| 6c 6c 20 74 68 65 20 6f | 75 74 2d 6f 66 2d 6c 69 |ll the o|ut-of-li|
|000041f0| 6e 65 20 63 6f 64 65 20 | 2d 20 77 65 20 72 65 74 |ne code |- we ret|
|00004200| 75 72 6e 20 74 72 75 65 | 20 73 6f 20 74 68 61 74 |urn true| so that|
|00004210| 20 74 68 69 73 0d 09 5c | 20 77 69 6c 6c 20 62 65 | this..\| will be|
|00004220| 20 64 6f 6e 65 20 62 79 | 20 4e 4f 52 4d 5f 42 49 | done by| NORM_BI|
|00004230| 4e 44 2e 20 20 4f 74 68 | 65 72 77 69 73 65 20 77 |ND. Oth|erwise w|
|00004240| 65 20 72 65 74 75 72 6e | 20 66 61 6c 73 65 2e 0d |e return| false..|
|00004250| 0d 09 6f 62 6a 5f 62 61 | 73 65 0d 09 4e 49 46 09 |..obj_ba|se..NIF.|
|00004260| 09 09 09 09 09 09 09 09 | 5c 20 55 70 64 61 74 65 |........|\ Update|
|00004270| 20 63 66 61 20 74 6f 20 | 74 68 65 20 6f 75 74 2d | cfa to |the out-|
|00004280| 6f 66 2d 6c 69 6e 65 20 | 63 6f 64 65 0d 09 09 6f |of-line |code...o|
|00004290| 43 66 61 20 32 2b 20 64 | 75 70 20 63 40 20 2b 20 |Cfa 2+ d|up c@ + |
|000042a0| 61 6c 69 67 6e 65 64 20 | 20 2d 3e 20 6f 43 66 61 |aligned | -> oCfa|
|000042b0| 20 20 74 72 75 65 0d 09 | 45 4c 53 45 0d 09 09 5e | true..|ELSE...^|
|000042c0| 63 6f 6d 70 5f 63 6c 61 | 73 73 20 20 63 73 74 61 |comp_cla|ss csta|
|000042d0| 74 65 20 20 73 65 6c 66 | 3f 09 09 09 09 5c 20 53 |te self|?....\ S|
|000042e0| 61 76 65 20 6f 76 65 72 | 20 75 70 63 6f 6d 69 6e |ave over| upcomin|
|000042f0| 67 20 65 76 61 6c 75 61 | 74 65 0d 09 09 73 6c 66 |g evalua|te...slf|
|00004300| 3f 20 4e 49 46 20 20 6f | 62 6a 43 6c 61 73 73 20 |? NIF o|bjClass |
|00004310| 2d 3e 20 5e 63 6f 6d 70 | 5f 63 6c 61 73 73 20 20 |-> ^comp|_class |
|00004320| 54 48 45 4e 09 5c 20 53 | 65 74 20 5e 63 6f 6d 70 |THEN.\ S|et ^comp|
|00004330| 5f 63 6c 61 73 73 20 61 | 6e 64 20 63 73 74 61 74 |_class a|nd cstat|
|00004340| 65 0d 09 09 74 72 75 65 | 20 2d 3e 20 63 73 74 61 |e...true| -> csta|
|00004350| 74 65 09 09 09 09 09 09 | 09 5c 20 20 73 6f 20 69 |te......|.\ so i|
|00004360| 76 61 72 73 20 61 72 65 | 20 61 63 63 65 73 73 69 |vars are| accessi|
|00004370| 62 6c 65 0d 09 09 73 6c | 66 3f 20 2d 3e 20 73 65 |ble...sl|f? -> se|
|00004380| 6c 66 3f 0d 09 09 6f 43 | 66 61 20 20 28 63 6f 6d |lf?...oC|fa (com|
|00004390| 70 69 6e 6c 29 0d 09 09 | 2d 3e 20 73 65 6c 66 3f |pinl)...|-> self?|
|000043a0| 20 20 2d 3e 20 63 73 74 | 61 74 65 20 20 2d 3e 20 | -> cst|ate -> |
|000043b0| 5e 63 6f 6d 70 5f 63 6c | 61 73 73 09 09 5c 20 52 |^comp_cl|ass..\ R|
|000043c0| 65 73 74 6f 72 65 0d 09 | 09 66 61 6c 73 65 0d 09 |estore..|.false..|
|000043d0| 54 48 45 4e 20 20 3b 0d | 0d 0d 3a 20 53 45 54 55 |THEN ;.|..: SETU|
|000043e0| 50 5f 4d 4f 44 55 4c 45 | 5f 42 49 4e 44 0d 09 68 |P_MODULE|_BIND..h|
|000043f0| 65 6c 64 4d 6f 64 0d 09 | 40 20 40 09 09 09 5c 20 |eldMod..|@ @...\ |
|00004400| 67 65 74 20 6d 6f 64 20 | 68 61 6e 64 6c 65 20 61 |get mod |handle a|
|00004410| 6e 64 20 64 65 72 65 66 | 65 72 65 6e 63 65 20 2d |nd deref|erence -|
|00004420| 20 61 64 64 72 20 6f 66 | 20 6d 6f 64 20 73 74 61 | addr of| mod sta|
|00004430| 72 74 0d 09 53 41 6d 61 | 73 6b 20 61 6e 64 20 20 |rt..SAma|sk and |
|00004440| 2d 3e 20 5e 6d 6f 64 0d | 09 5e 6d 6f 64 20 38 20 |-> ^mod.|.^mod 8 |
|00004450| 2b 20 2d 3e 20 70 74 72 | 09 09 09 5c 20 73 65 6c |+ -> ptr|...\ sel|
|00004460| 66 2d 72 65 6c 20 61 64 | 64 72 20 6f 66 20 65 78 |f-rel ad|dr of ex|
|00004470| 70 6f 72 74 73 20 74 61 | 62 6c 65 0d 09 70 74 72 |ports ta|ble..ptr|
|00004480| 20 40 20 2b 2b 3e 20 70 | 74 72 09 09 09 5c 20 70 | @ ++> p|tr...\ p|
|00004490| 74 72 20 2d 3e 20 73 74 | 61 72 74 20 6f 66 20 74 |tr -> st|art of t|
|000044a0| 61 62 6c 65 0d 09 30 20 | 2d 3e 20 6d 65 74 68 49 |able..0 |-> methI|
|000044b0| 6e 64 65 78 0d 09 42 45 | 47 49 4e 0d 09 09 70 74 |ndex..BE|GIN...pt|
|000044c0| 72 20 40 20 64 75 70 20 | 30 3c 20 3f 65 72 72 6f |r @ dup |0< ?erro|
|000044d0| 72 20 31 39 38 0d 09 09 | 5e 6d 6f 64 20 2b 20 20 |r 198...|^mod + |
|000044e0| 6f 43 66 61 20 3d 0d 09 | 4e 57 48 49 4c 45 0d 09 |oCfa =..|NWHILE..|
|000044f0| 09 34 20 2b 2b 3e 20 6d | 65 74 68 49 6e 64 65 78 |.4 ++> m|ethIndex|
|00004500| 20 20 34 20 2b 2b 3e 20 | 70 74 72 0d 09 52 45 50 | 4 ++> |ptr..REP|
|00004510| 45 41 54 0d 3b 0d 09 0d | 0d 3a 20 4e 4f 52 4d 5f |EAT.;...|.: NORM_|
|00004520| 42 49 4e 44 0d 09 68 65 | 6c 64 4d 6f 64 20 49 46 |BIND..he|ldMod IF|
|00004530| 20 20 73 65 74 75 70 5f | 6d 6f 64 75 6c 65 5f 62 | setup_|module_b|
|00004540| 69 6e 64 20 20 54 48 45 | 4e 0d 09 6f 43 66 61 20 |ind THE|N..oCfa |
|00004550| 20 28 6f 62 6a 29 20 20 | 45 42 20 20 3b 0d 0d 0d | (obj) |EB ;...|
|00004560| 3a 6c 6f 63 20 20 45 41 | 52 4c 59 5f 42 49 4e 44 |:loc EA|RLY_BIND|
|00004570| 09 09 5c 20 7b 20 6f 43 | 66 61 20 6f 42 61 73 65 |..\ { oC|fa oBase|
|00004580| 20 6f 44 69 73 70 6c 20 | 6f 4c 44 69 73 70 6c 20 | oDispl |oLDispl |
|00004590| 6f 69 6e 64 20 73 6c 66 | 3f 20 2d 2d 20 7d 0d 09 |oind slf|? -- }..|
|000045a0| 6f 62 6a 5f 62 61 73 65 | 20 20 6f 62 6a 5f 64 69 |obj_base| obj_di|
|000045b0| 73 70 6c 20 20 6f 62 6a | 5f 6c 6f 63 61 6c 5f 64 |spl obj|_local_d|
|000045c0| 69 73 70 6c 20 20 6f 62 | 6a 5f 69 6e 64 09 09 5c |ispl ob|j_ind..\|
|000045d0| 20 53 61 76 65 0d 09 6f | 42 61 73 65 09 2d 3e 20 | Save..o|Base.-> |
|000045e0| 6f 62 6a 5f 62 61 73 65 | 20 20 20 20 09 09 6f 44 |obj_base| ..oD|
|000045f0| 69 73 70 6c 09 2d 3e 20 | 6f 62 6a 5f 64 69 73 70 |ispl.-> |obj_disp|
|00004600| 6c 0d 09 4f 4c 64 69 73 | 70 6c 09 2d 3e 20 6f 62 |l..OLdis|pl.-> ob|
|00004610| 6a 5f 6c 6f 63 61 6c 5f | 64 69 73 70 6c 09 6f 69 |j_local_|displ.oi|
|00004620| 6e 64 09 2d 3e 20 6f 62 | 6a 5f 69 6e 64 0d 09 6f |nd.-> ob|j_ind..o|
|00004630| 43 66 61 20 77 40 20 20 | 69 6e 6c 4d 6b 20 3d 0d |Cfa w@ |inlMk =.|
|00004640| 09 49 46 20 20 69 6e 6c | 5f 62 69 6e 64 20 20 45 |.IF inl|_bind E|
|00004650| 4c 53 45 20 20 74 72 75 | 65 20 20 54 48 45 4e 0d |LSE tru|e THEN.|
|00004660| 09 49 46 20 20 6e 6f 72 | 6d 5f 62 69 6e 64 20 20 |.IF nor|m_bind |
|00004670| 54 48 45 4e 0d 09 2d 3e | 20 6f 62 6a 5f 69 6e 64 |THEN..->| obj_ind|
|00004680| 20 20 2d 3e 20 6f 62 6a | 5f 6c 6f 63 61 6c 5f 64 | -> obj|_local_d|
|00004690| 69 73 70 6c 0d 09 2d 3e | 20 6f 62 6a 5f 64 69 73 |ispl..->| obj_dis|
|000046a0| 70 6c 20 20 2d 3e 20 6f | 62 6a 5f 62 61 73 65 09 |pl -> o|bj_base.|
|000046b0| 09 09 09 09 09 09 5c 20 | 52 65 73 74 6f 72 65 0d |......\ |Restore.|
|000046c0| 3b 6c 6f 63 0d 0d 0d 3a | 20 42 49 4e 44 5f 54 4f |;loc...:| BIND_TO|
|000046d0| 5f 4f 42 4a 20 20 7b 20 | 63 66 61 20 5e 6f 62 6a |_OBJ { |cfa ^obj|
|000046e0| 20 6f 66 66 73 20 2d 2d | 20 7d 0d 09 63 66 61 0d | offs --| }..cfa.|
|000046f0| 09 2d 31 09 09 09 09 09 | 5c 20 2d 31 20 61 73 20 |.-1.....|\ -1 as |
|00004700| 22 62 61 73 65 22 20 73 | 69 67 6e 61 6c 73 20 68 |"base" s|ignals h|
|00004710| 61 6e 64 6c 65 72 73 20 | 74 6f 20 67 65 6e 65 72 |andlers |to gener|
|00004720| 61 74 65 0d 09 5e 6f 62 | 6a 09 09 09 09 5c 20 20 |ate..^ob|j....\ |
|00004730| 61 20 6e 6f 72 6d 61 6c | 20 64 69 63 20 61 64 64 |a normal| dic add|
|00004740| 72 2e 20 20 57 65 20 73 | 74 69 6c 6c 20 63 61 72 |r. We s|till car|
|00004750| 72 79 20 74 68 65 0d 09 | 09 09 09 09 09 5c 20 20 |ry the..|.....\ |
|00004760| 6f 66 66 73 20 68 65 72 | 65 20 73 69 6e 63 65 20 |offs her|e since |
|00004770| 69 66 20 77 65 20 6e 65 | 65 64 20 74 6f 20 61 63 |if we ne|ed to ac|
|00004780| 63 65 73 73 20 74 68 65 | 0d 09 09 09 09 09 09 5c |cess the|.......\|
|00004790| 20 20 69 6e 64 65 78 65 | 64 20 61 72 65 61 2c 20 | indexe|d area, |
|000047a0| 77 65 20 77 61 6e 74 20 | 74 68 65 20 6f 72 69 67 |we want |the orig|
|000047b0| 69 6e 61 6c 20 6f 62 6a | 20 61 64 64 72 2c 0d 09 |inal obj| addr,..|
|000047c0| 09 09 09 09 09 5c 20 20 | 6e 6f 74 20 73 6f 6d 65 |.....\ |not some|
|000047d0| 20 65 6d 62 65 64 64 65 | 64 20 6f 62 6a 65 63 74 | embedde|d object|
|000047e0| 2e 0d 09 6f 66 66 73 20 | 20 30 20 20 66 61 6c 73 |...offs | 0 fals|
|000047f0| 65 20 20 65 61 72 6c 79 | 5f 62 69 6e 64 20 20 3b |e early|_bind ;|
|00004800| 0d 0d 3a 20 42 49 4e 44 | 5f 54 4f 5f 53 54 4b 09 |..: BIND|_TO_STK.|
|00004810| 09 5c 20 28 20 63 66 61 | 20 2d 2d 20 29 0d 09 73 |.\ ( cfa| -- )..s|
|00004820| 74 6b 4f 62 6a 20 20 30 | 20 73 77 61 70 20 20 66 |tkObj 0| swap f|
|00004830| 61 6c 73 65 20 20 65 61 | 72 6c 79 5f 62 69 6e 64 |alse ea|rly_bind|
|00004840| 20 20 3b 0d 0d 3a 20 42 | 49 4e 44 5f 54 4f 5f 49 | ;..: B|IND_TO_I|
|00004850| 56 41 52 20 20 7b 20 63 | 66 61 20 6f 66 66 73 20 |VAR { c|fa offs |
|00004860| 2d 2d 20 7d 0d 09 63 66 | 61 20 20 6f 62 6a 5f 62 |-- }..cf|a obj_b|
|00004870| 61 73 65 20 20 6f 62 6a | 5f 64 69 73 70 6c 0d 09 |ase obj|_displ..|
|00004880| 6f 62 6a 5f 6c 6f 63 61 | 6c 5f 64 69 73 70 6c 20 |obj_loca|l_displ |
|00004890| 6f 66 66 73 20 2b 0d 09 | 6f 62 6a 5f 69 6e 64 20 |offs +..|obj_ind |
|000048a0| 20 66 61 6c 73 65 20 20 | 65 61 72 6c 79 5f 62 69 | false |early_bi|
|000048b0| 6e 64 20 20 3b 0d 0d 3a | 20 42 49 4e 44 5f 54 4f |nd ;..:| BIND_TO|
|000048c0| 5f 54 4d 50 4f 42 4a 20 | 20 7b 20 63 66 61 20 6f |_TMPOBJ | { cfa o|
|000048d0| 66 66 73 20 2d 2d 20 7d | 0d 09 63 66 61 0d 09 34 |ffs -- }|..cfa..4|
|000048e0| 09 09 5c 20 6c 6f 63 52 | 65 67 20 3d 20 44 34 0d |..\ locR|eg = D4.|
|000048f0| 09 6f 66 66 73 0d 09 30 | 20 30 20 66 61 6c 73 65 |.offs..0| 0 false|
|00004900| 20 20 65 61 72 6c 79 5f | 62 69 6e 64 20 20 3b 0d | early_|bind ;.|
|00004910| 0d 3a 20 42 49 4e 44 5f | 54 4f 5f 53 45 4c 46 20 |.: BIND_|TO_SELF |
|00004920| 20 7b 20 63 66 61 20 6f | 66 66 73 20 2d 2d 20 7d | { cfa o|ffs -- }|
|00004930| 0d 09 63 66 61 20 20 6f | 62 6a 5f 62 61 73 65 20 |..cfa o|bj_base |
|00004940| 20 6f 62 6a 5f 64 69 73 | 70 6c 20 20 6f 66 66 73 | obj_dis|pl offs|
|00004950| 20 20 6f 62 6a 5f 69 6e | 64 20 20 74 72 75 65 20 | obj_in|d true |
|00004960| 20 65 61 72 6c 79 5f 62 | 69 6e 64 20 20 3b 0d 0d | early_b|ind ;..|
|00004970| 0d 0d 5c 09 09 09 09 09 | 3d 3d 3d 3d 3d 3d 3d 3d |..\.....|========|
|00004980| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004990| 3d 3d 3d 0d 5c 09 09 09 | 09 09 20 49 4e 49 54 49 |===.\...|.. INITI|
|000049a0| 41 4c 49 5a 49 4e 47 20 | 4e 45 57 20 4f 42 4a 45 |ALIZING |NEW OBJE|
|000049b0| 43 54 53 0d 5c 09 09 09 | 09 09 3d 3d 3d 3d 3d 3d |CTS.\...|..======|
|000049c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000049d0| 3d 3d 3d 3d 3d 0d 0d 66 | 61 6c 73 65 09 76 61 6c |=====..f|alse.val|
|000049e0| 75 65 09 52 45 43 3f 09 | 09 5c 20 41 72 65 20 77 |ue.REC?.|.\ Are w|
|000049f0| 65 20 63 6f 6d 70 69 6c | 69 6e 67 20 61 20 72 65 |e compil|ing a re|
|00004a00| 63 6f 72 64 3f 0d 66 61 | 6c 73 65 09 76 61 6c 75 |cord?.fa|lse.valu|
|00004a10| 65 09 55 4e 49 4f 4e 3f | 09 09 5c 20 41 72 65 20 |e.UNION?|..\ Are |
|00004a20| 77 65 20 63 6f 6d 70 69 | 6c 69 6e 67 20 61 20 75 |we compi|ling a u|
|00004a30| 6e 69 6f 6e 20 69 6e 20 | 61 20 72 65 63 6f 72 64 |nion in |a record|
|00004a40| 3f 0d 09 30 09 76 61 6c | 75 65 09 55 4e 49 4f 4e |?..0.val|ue.UNION|
|00004a50| 4f 46 46 53 09 5c 20 42 | 61 73 65 20 6f 66 66 73 |OFFS.\ B|ase offs|
|00004a60| 65 74 20 6f 66 20 74 68 | 65 20 63 75 72 72 65 6e |et of th|e curren|
|00004a70| 74 20 75 6e 69 6f 6e 0d | 0d 0d 3a 20 49 4e 49 54 |t union.|..: INIT|
|00004a80| 5f 4f 42 4a 20 20 20 28 | 20 74 68 65 43 6c 61 73 |_OBJ (| theClas|
|00004a90| 73 20 74 68 65 4f 62 6a | 20 2d 2d 20 29 0d 0d 28 |s theObj| -- )..(|
|00004aa0| 2a 09 50 65 72 66 6f 72 | 6d 73 20 43 4c 41 53 53 |*.Perfor|ms CLASS|
|00004ab0| 49 4e 49 54 3a 20 6d 65 | 74 68 6f 64 20 6f 6e 20 |INIT: me|thod on |
|00004ac0| 6f 62 6a 65 63 74 2e 20 | 20 4e 6f 74 65 2c 20 77 |object. | Note, w|
|00004ad0| 65 20 71 75 69 74 65 20 | 64 65 6c 69 62 65 72 61 |e quite |delibera|
|00004ae0| 74 65 6c 79 20 64 6f 6e | 27 74 20 0d 09 63 68 65 |tely don|'t ..che|
|00004af0| 63 6b 20 69 66 20 74 68 | 65 20 6f 66 66 73 65 74 |ck if th|e offset|
|00004b00| 20 77 6f 75 6c 64 20 70 | 75 74 20 75 73 20 69 6e | would p|ut us in|
|00004b10| 74 6f 20 74 68 65 20 69 | 6e 64 65 78 65 64 20 61 |to the i|ndexed a|
|00004b20| 72 65 61 20 6f 66 20 61 | 20 6c 61 72 67 65 5f 6f |rea of a| large_o|
|00004b30| 62 6a 5f 61 72 72 61 79 | 2e 0d 09 54 68 69 73 20 |bj_array|...This |
|00004b40| 69 73 20 62 65 63 61 75 | 73 65 20 77 65 20 64 6f |is becau|se we do|
|00004b50| 6e 27 74 20 77 61 6e 74 | 20 74 6f 20 73 65 6e 64 |n't want| to send|
|00004b60| 20 43 4c 41 53 53 49 4e | 49 54 3a 20 69 6e 64 69 | CLASSIN|IT: indi|
|00004b70| 76 69 64 75 61 6c 6c 79 | 20 74 6f 20 65 61 63 68 |vidually| to each|
|00004b80| 20 6f 66 20 74 68 65 0d | 09 69 6e 64 65 78 65 64 | of the.|.indexed|
|00004b90| 20 65 6c 65 6d 65 6e 74 | 73 2c 20 62 75 74 20 69 | element|s, but i|
|00004ba0| 6e 73 74 65 61 64 20 77 | 65 20 6a 75 73 74 20 73 |nstead w|e just s|
|00004bb0| 65 6e 64 20 69 74 20 74 | 6f 20 74 68 65 20 62 61 |end it t|o the ba|
|00004bc0| 73 65 20 65 6c 65 6d 65 | 6e 74 2e 20 20 54 68 65 |se eleme|nt. The|
|00004bd0| 6e 2c 0d 09 43 4c 41 53 | 53 49 4e 49 54 3a 20 69 |n,..CLAS|SINIT: i|
|00004be0| 6e 20 74 68 65 20 6c 61 | 72 67 65 5f 6f 62 6a 5f |n the la|rge_obj_|
|00004bf0| 61 72 72 61 79 20 63 6c | 61 73 73 20 63 6f 70 69 |array cl|ass copi|
|00004c00| 65 73 20 74 68 69 73 20 | 74 6f 20 74 68 65 20 69 |es this |to the i|
|00004c10| 6e 64 65 78 65 64 20 65 | 6c 65 6d 65 6e 74 73 2e |ndexed e|lements.|
|00004c20| 0d 2a 29 0d 0d 09 73 77 | 61 70 0d 09 28 20 74 68 |.*)...sw|ap..( th|
|00004c30| 65 4f 62 6a 20 74 68 65 | 43 6c 61 73 73 20 29 09 |eObj the|Class ).|
|00004c40| 09 69 6e 69 74 49 44 20 | 73 77 61 70 20 4d 46 41 |.initID |swap MFA|
|00004c50| 5f 6f 66 66 73 65 74 20 | 74 72 75 65 20 28 66 69 |_offset |true (fi|
|00004c60| 6e 64 6d 29 0d 09 28 20 | 74 68 65 4f 62 6a 20 6f |ndm)..( |theObj o|
|00004c70| 66 66 73 20 78 74 20 74 | 72 75 65 20 29 09 64 72 |ffs xt t|rue ).dr|
|00004c80| 6f 70 20 09 5c 20 49 73 | 20 67 75 61 72 61 6e 74 |op .\ Is| guarant|
|00004c90| 65 65 64 20 74 6f 20 66 | 69 6e 64 20 43 4c 41 53 |eed to f|ind CLAS|
|00004ca0| 53 49 4e 49 54 3a 20 6d | 65 74 68 6f 64 0d 09 28 |SINIT: m|ethod..(|
|00004cb0| 20 74 68 65 4f 62 6a 20 | 6f 66 66 73 20 78 74 20 | theObj |offs xt |
|00004cc0| 20 29 09 09 3e 72 20 2b | 20 72 3e 09 5c 20 4d 6f | )..>r +| r>.\ Mo|
|00004cd0| 64 69 66 79 20 6f 62 6a | 20 61 64 64 72 20 62 79 |dify obj| addr by|
|00004ce0| 20 6f 66 66 73 20 28 6e | 65 65 64 65 64 20 69 6e | offs (n|eeded in|
|00004cf0| 20 63 61 73 65 0d 09 09 | 09 09 09 09 09 09 09 5c | case...|.......\|
|00004d00| 20 20 6d 65 74 68 6f 64 | 20 69 73 20 64 65 66 69 | method| is defi|
|00004d10| 6e 65 64 20 69 6e 20 61 | 6e 79 20 73 75 70 65 72 |ned in a|ny super|
|00004d20| 63 6c 61 73 73 0d 09 09 | 09 09 09 09 09 09 09 5c |class...|.......\|
|00004d30| 20 20 62 75 74 20 74 68 | 65 20 66 69 72 73 74 29 | but th|e first)|
|00004d40| 0d 09 28 20 74 68 65 4f | 62 6a 27 20 78 74 20 29 |..( theO|bj' xt )|
|00004d50| 20 20 09 09 65 78 2d 6d | 65 74 68 6f 64 0d 3b 0d | ..ex-m|ethod.;.|
|00004d60| 0d 0d 3a 20 4d 41 4b 45 | 5f 48 44 52 53 09 09 28 |..: MAKE|_HDRS..(|
|00004d70| 20 23 65 6c 73 20 29 20 | 7b 20 74 68 65 43 6c 61 | #els ) |{ theCla|
|00004d80| 73 73 20 74 68 65 4f 62 | 6a 20 5c 20 6c 65 6e 20 |ss theOb|j \ len |
|00004d90| 77 69 64 20 2d 2d 20 7d | 0d 09 5c 20 61 73 73 75 |wid -- }|..\ assu|
|00004da0| 6d 65 73 20 74 68 65 43 | 6c 61 73 73 20 69 73 20 |mes theC|lass is |
|00004db0| 74 68 65 20 74 72 75 65 | 20 63 6c 61 73 73 20 61 |the true| class a|
|00004dc0| 64 64 72 65 73 73 2c 20 | 6e 6f 74 0d 09 5c 20 74 |ddress, |not..\ t|
|00004dd0| 68 65 20 6d 61 69 6e 20 | 64 69 63 74 69 6f 6e 61 |he main |dictiona|
|00004de0| 72 79 20 61 64 64 72 65 | 73 73 20 6f 66 20 61 6e |ry addre|ss of an|
|00004df0| 20 65 78 70 6f 72 74 65 | 64 20 63 6c 61 73 73 0d | exporte|d class.|
|00004e00| 09 5c 20 69 66 20 74 68 | 65 43 6c 61 73 73 20 69 |.\ if th|eClass i|
|00004e10| 73 20 6e 6f 74 20 69 6e | 64 65 78 65 64 2c 20 74 |s not in|dexed, t|
|00004e20| 68 65 72 65 20 73 68 6f | 75 6c 64 20 62 65 20 6e |here sho|uld be n|
|00004e30| 6f 20 23 65 6c 73 20 6f | 6e 20 74 68 65 20 73 74 |o #els o|n the st|
|00004e40| 61 63 6b 0d 0d 09 09 41 | 53 53 45 52 54 7b 20 74 |ack....A|SSERT{ t|
|00004e50| 68 65 4f 62 6a 20 31 20 | 61 6e 64 20 30 3d 20 7d |heObj 1 |and 0= }|
|00004e60| 09 09 5c 20 6f 62 6a 20 | 61 64 64 72 20 6d 75 73 |..\ obj |addr mus|
|00004e70| 74 20 62 65 20 61 6c 69 | 67 6e 65 64 20 69 66 20 |t be ali|gned if |
|00004e80| 74 68 69 73 0d 09 09 09 | 09 09 09 09 09 09 09 5c |this....|.......\|
|00004e90| 20 20 77 6f 72 64 20 69 | 73 20 63 61 6c 6c 65 64 | word i|s called|
|00004ea0| 0d 0d 09 09 74 68 65 43 | 6c 61 73 73 20 28 64 6c |....theC|lass (dl|
|00004eb0| 65 6e 26 78 77 69 64 29 | 20 20 2d 3e 20 77 69 64 |en&xwid)| -> wid|
|00004ec0| 20 20 2d 3e 20 6c 65 6e | 09 09 09 0d 09 09 09 09 | -> len|........|
|00004ed0| 09 09 09 09 09 09 09 09 | 0d 09 5c 20 66 69 72 73 |........|..\ firs|
|00004ee0| 74 20 74 68 65 20 78 64 | 65 73 63 20 28 69 6e 64 |t the xd|esc (ind|
|00004ef0| 65 78 65 64 20 61 72 65 | 61 20 68 65 61 64 65 72 |exed are|a header|
|00004f00| 29 2c 20 69 66 20 69 6e | 64 65 78 65 64 20 6f 62 |), if in|dexed ob|
|00004f10| 6a 65 63 74 0d 09 09 77 | 69 64 20 09 49 46 09 09 |ject...w|id .IF..|
|00004f20| 6c 65 6e 20 61 6c 69 67 | 6e 65 64 20 2d 3e 20 6c |len alig|ned -> l|
|00004f30| 65 6e 0d 09 09 09 09 09 | 09 74 68 65 4f 62 6a 20 |en......|.theObj |
|00004f40| 6c 65 6e 20 2b 09 09 5c | 20 78 64 65 73 63 20 61 |len +..\| xdesc a|
|00004f50| 64 64 72 65 73 73 3a 20 | 61 66 74 65 72 20 69 76 |ddress: |after iv|
|00004f60| 61 72 73 0d 09 09 28 20 | 23 65 6c 73 20 5e 78 64 |ars...( |#els ^xd|
|00004f70| 65 73 63 20 29 09 77 69 | 64 20 6f 76 65 72 20 77 |esc ).wi|d over w|
|00004f80| 21 09 09 09 5c 20 74 77 | 6f 20 62 79 74 65 73 3a |!...\ tw|o bytes:|
|00004f90| 20 69 6e 64 65 78 65 64 | 20 77 69 64 74 68 0d 09 | indexed| width..|
|00004fa0| 09 28 20 23 65 6c 73 20 | 5e 78 64 65 73 63 20 29 |.( #els |^xdesc )|
|00004fb0| 09 73 77 61 70 20 31 2d | 20 73 77 61 70 20 32 2b |.swap 1-| swap 2+|
|00004fc0| 20 21 09 5c 20 66 6f 75 | 72 20 62 79 74 65 73 3a | !.\ fou|r bytes:|
|00004fd0| 20 6c 69 6d 69 74 20 28 | 20 23 65 6c 73 2d 31 29 | limit (| #els-1)|
|00004fe0| 0d 09 09 09 09 09 09 6c | 65 6e 20 31 32 20 2b 09 |.......l|en 12 +.|
|00004ff0| 09 09 5c 20 6f 66 66 73 | 65 74 20 74 6f 20 69 6e |..\ offs|et to in|
|00005000| 64 65 78 65 64 20 61 72 | 65 61 0d 09 09 09 09 09 |dexed ar|ea......|
|00005010| 09 09 09 09 09 09 5c 20 | 20 74 6f 20 62 65 20 70 |......\ | to be p|
|00005020| 75 74 20 69 6e 20 6f 62 | 6a 20 68 65 61 64 65 72 |ut in ob|j header|
|00005030| 0d 09 09 09 09 45 4c 53 | 45 09 36 09 09 09 09 09 |.....ELS|E.6.....|
|00005040| 5c 20 73 74 61 6e 64 61 | 72 64 20 6f 66 66 73 65 |\ standa|rd offse|
|00005050| 74 20 69 66 20 6e 6f 74 | 20 69 6e 64 65 78 65 64 |t if not| indexed|
|00005060| 0d 09 09 09 09 54 48 45 | 4e 0d 0d 09 09 5c 20 6e |.....THE|N....\ n|
|00005070| 6f 77 20 74 68 65 20 6f | 62 6a 20 68 65 61 64 65 |ow the o|bj heade|
|00005080| 72 20 69 74 73 65 6c 66 | 0d 09 09 28 20 6f 66 66 |r itself|...( off|
|00005090| 73 20 29 09 74 68 65 4f | 62 6a 20 38 20 2d 20 77 |s ).theO|bj 8 - w|
|000050a0| 21 09 09 5c 20 32 20 62 | 79 74 65 73 3a 20 6f 66 |!..\ 2 b|ytes: of|
|000050b0| 66 73 65 74 20 74 6f 20 | 69 6e 64 65 78 65 64 20 |fset to |indexed |
|000050c0| 61 72 65 61 0d 09 09 09 | 09 09 09 09 09 09 09 5c |area....|.......\|
|000050d0| 20 20 63 61 6c 63 75 6c | 61 74 65 64 20 61 62 6f | calcul|ated abo|
|000050e0| 76 65 0d 09 09 09 09 09 | 74 68 65 43 6c 61 73 73 |ve......|theClass|
|000050f0| 20 3f 3e 6d 61 69 6e 64 | 69 63 09 5c 20 64 6f 6e | ?>maind|ic.\ don|
|00005100| 27 74 20 73 74 6f 72 65 | 20 6d 6f 64 75 6c 65 20 |'t store| module |
|00005110| 61 64 64 72 20 6f 66 20 | 63 6c 61 73 73 21 0d 09 |addr of |class!..|
|00005120| 09 09 09 09 66 61 6c 73 | 65 20 2d 3e 20 72 65 6c |....fals|e -> rel|
|00005130| 6f 63 43 68 6b 3f 09 5c | 20 6f 62 6a 20 61 64 64 |ocChk?.\| obj add|
|00005140| 72 65 73 73 20 63 6f 75 | 6c 64 20 62 65 20 69 6e |ress cou|ld be in|
|00005150| 20 68 65 61 70 21 0d 09 | 09 28 20 5e 63 6c 61 73 | heap!..|.( ^clas|
|00005160| 73 20 29 09 74 68 65 4f | 62 6a 20 36 20 2d 20 72 |s ).theO|bj 6 - r|
|00005170| 65 6c 6f 63 21 09 5c 20 | 34 20 62 79 74 65 73 3a |eloc!.\ |4 bytes:|
|00005180| 20 72 65 6c 6f 63 61 74 | 61 62 6c 65 20 63 6c 61 | relocat|able cla|
|00005190| 73 73 20 70 6f 69 6e 74 | 65 72 0d 09 09 09 09 09 |ss point|er......|
|000051a0| 74 72 75 65 20 2d 3e 20 | 72 65 6c 6f 63 43 68 6b |true -> |relocChk|
|000051b0| 3f 0d 09 09 09 09 09 2d | 36 20 74 68 65 4f 62 6a |?......-|6 theObj|
|000051c0| 20 32 2d 20 77 21 09 09 | 5c 20 32 20 62 79 74 65 | 2- w!..|\ 2 byte|
|000051d0| 73 3a 20 6f 66 66 73 65 | 74 20 74 6f 20 63 6c 61 |s: offse|t to cla|
|000051e0| 73 73 20 70 6f 69 6e 74 | 65 72 20 2d 2d 0d 09 09 |ss point|er --...|
|000051f0| 09 09 09 09 09 09 09 09 | 5c 20 20 61 6c 77 61 79 |........|\ alway|
|00005200| 73 20 2d 36 20 66 6f 72 | 20 6e 6f 6e 2d 65 6d 62 |s -6 for| non-emb|
|00005210| 65 64 64 65 64 20 6f 62 | 6a 65 63 74 0d 3b 0d 0d |edded ob|ject.;..|
|00005220| 66 6f 72 77 61 72 64 20 | 49 56 53 45 54 55 50 0d |forward |IVSETUP.|
|00005230| 0d 3a 20 4e 57 5f 49 56 | 53 45 54 55 50 20 20 7b |.: NW_IV|SETUP {|
|00005240| 20 5e 6e 77 61 79 20 62 | 61 73 65 4f 66 66 73 20 | ^nway b|aseOffs |
|00005250| 45 4f 6f 66 66 73 20 5c | 20 69 6e 69 74 45 4f 6f |EOoffs \| initEOo|
|00005260| 66 66 73 20 73 75 70 43 | 6c 61 73 73 20 73 75 70 |ffs supC|lass sup|
|00005270| 4f 66 66 73 20 2d 2d 20 | 7d 0d 0d 28 2a 09 53 65 |Offs -- |}..(*.Se|
|00005280| 74 73 20 75 70 20 74 68 | 65 20 67 72 6f 75 70 73 |ts up th|e groups|
|00005290| 20 6f 66 20 69 76 61 72 | 73 20 66 6f 72 20 65 61 | of ivar|s for ea|
|000052a0| 63 68 20 73 75 70 65 72 | 63 6c 61 73 73 20 6f 66 |ch super|class of|
|000052b0| 20 74 68 65 20 63 75 72 | 72 65 6e 74 20 6f 62 6a | the cur|rent obj|
|000052c0| 65 63 74 2f 69 76 61 72 | 0d 09 62 65 69 6e 67 20 |ect/ivar|..being |
|000052d0| 70 72 6f 63 65 73 73 65 | 64 2e 20 4f 6e 65 20 67 |processe|d. One g|
|000052e0| 72 6f 75 70 20 66 6f 72 | 20 65 61 63 68 20 73 75 |roup for| each su|
|000052f0| 70 65 72 20 6f 66 20 61 | 20 6d 75 6c 74 69 70 6c |per of a| multipl|
|00005300| 79 20 69 6e 68 65 72 69 | 74 65 64 20 6f 62 6a 65 |y inheri|ted obje|
|00005310| 63 74 2e 0d 09 45 61 63 | 68 20 67 72 6f 75 70 20 |ct...Eac|h group |
|00005320| 77 65 20 63 61 6c 6c 20 | 61 6e 20 22 65 6d 62 65 |we call |an "embe|
|00005330| 64 64 65 64 20 6f 62 6a | 65 63 74 22 2c 20 77 68 |dded obj|ect", wh|
|00005340| 69 63 68 20 73 6f 72 74 | 20 6f 66 20 64 65 73 63 |ich sort| of desc|
|00005350| 72 69 62 65 73 20 77 68 | 61 74 20 69 74 20 69 73 |ribes wh|at it is|
|00005360| 2e 0d 09 4f 6e 20 65 6e | 74 72 79 20 5e 6e 77 61 |...On en|try ^nwa|
|00005370| 79 20 70 6f 69 6e 74 73 | 20 74 6f 20 74 68 65 20 |y points| to the |
|00005380| 66 69 72 73 74 20 73 75 | 70 65 72 63 6c 61 73 73 |first su|perclass|
|00005390| 20 70 6f 69 6e 74 65 72 | 20 69 6e 20 74 68 65 20 | pointer| in the |
|000053a0| 6e 2d 77 61 79 20 64 65 | 66 69 6e 69 6e 67 0d 09 |n-way de|fining..|
|000053b0| 74 68 65 20 6d 75 6c 74 | 69 70 6c 65 20 69 6e 68 |the mult|iple inh|
|000053c0| 65 72 69 74 61 6e 63 65 | 2e 20 57 65 20 72 65 70 |eritance|. We rep|
|000053d0| 65 61 74 20 74 68 65 20 | 70 72 6f 63 65 64 75 72 |eat the |procedur|
|000053e0| 65 20 66 6f 72 20 65 61 | 63 68 20 73 75 70 65 72 |e for ea|ch super|
|000053f0| 63 6c 61 73 73 20 75 6e | 74 69 6c 0d 09 74 68 65 |class un|til..the|
|00005400| 20 7a 65 72 6f 20 6d 61 | 72 6b 69 6e 67 20 74 68 | zero ma|rking th|
|00005410| 65 20 65 6e 64 20 6f 66 | 20 74 68 65 20 6e 2d 77 |e end of| the n-w|
|00005420| 61 79 20 69 73 20 65 6e | 63 6f 75 6e 74 65 72 65 |ay is en|countere|
|00005430| 64 2e 20 49 66 20 74 68 | 65 20 73 75 70 65 72 63 |d. If th|e superc|
|00005440| 6c 61 73 73 0d 09 69 73 | 20 74 68 65 20 70 73 65 |lass..is| the pse|
|00005450| 75 64 6f 63 6c 61 73 73 | 20 4d 65 74 61 20 77 65 |udoclass| Meta we|
|00005460| 20 64 6f 6e 27 74 20 64 | 6f 20 61 6e 79 74 68 69 | don't d|o anythi|
|00005470| 6e 67 20 73 69 6e 63 65 | 20 69 74 20 64 6f 65 73 |ng since| it does|
|00005480| 20 6e 6f 74 20 68 61 76 | 65 20 61 6e 79 20 69 76 | not hav|e any iv|
|00005490| 61 72 73 2e 0d 09 62 61 | 73 65 4f 66 66 73 20 69 |ars...ba|seOffs i|
|000054a0| 73 20 74 68 65 20 70 6f | 73 69 74 69 6f 6e 20 6f |s the po|sition o|
|000054b0| 66 20 74 68 65 20 63 75 | 72 72 65 6e 74 20 6f 62 |f the cu|rrent ob|
|000054c0| 6a 65 63 74 2f 69 76 61 | 72 27 73 20 64 61 74 61 |ject/iva|r's data|
|000054d0| 20 73 70 61 63 65 20 72 | 65 6c 61 74 69 76 65 0d | space r|elative.|
|000054e0| 09 74 6f 20 6e 65 77 4f | 62 6a 65 63 74 2c 20 74 |.to newO|bject, t|
|000054f0| 68 65 20 63 75 72 72 65 | 6e 74 20 74 6f 70 2d 6c |he curre|nt top-l|
|00005500| 65 76 65 6c 20 6f 62 6a | 65 63 74 20 62 65 69 6e |evel obj|ect bein|
|00005510| 67 20 63 72 65 61 74 65 | 64 2e 0d 09 45 4f 6f 66 |g create|d...EOof|
|00005520| 66 73 20 69 73 20 74 68 | 65 20 6f 66 66 73 65 74 |fs is th|e offset|
|00005530| 20 66 72 6f 6d 20 6e 65 | 77 4f 62 6a 65 63 74 20 | from ne|wObject |
|00005540| 61 74 20 77 68 69 63 68 | 20 74 68 65 20 63 75 72 |at which| the cur|
|00005550| 72 65 6e 74 20 45 6d 62 | 65 64 64 65 64 20 4f 62 |rent Emb|edded Ob|
|00005560| 6a 65 63 74 0d 09 73 74 | 61 72 74 73 2e 20 57 68 |ject..st|arts. Wh|
|00005570| 65 6e 20 61 6e 20 65 6d | 62 65 64 64 65 64 20 6f |en an em|bedded o|
|00005580| 62 6a 65 63 74 20 73 74 | 61 72 74 73 20 61 74 20 |bject st|arts at |
|00005590| 61 20 6e 6f 6e 2d 7a 65 | 72 6f 20 45 4f 6f 66 66 |a non-ze|ro EOoff|
|000055a0| 73 2c 20 77 65 20 70 75 | 74 20 69 6e 0d 09 66 72 |s, we pu|t in..fr|
|000055b0| 6f 6e 74 20 6f 66 20 69 | 74 20 61 20 32 2d 62 79 |ont of i|t a 2-by|
|000055c0| 74 65 20 6f 66 66 73 65 | 74 20 74 6f 20 74 68 65 |te offse|t to the|
|000055d0| 20 63 6c 61 73 73 20 70 | 6f 69 6e 74 65 72 2e 20 | class p|ointer. |
|000055e0| 4e 6f 74 65 20 74 68 61 | 74 20 69 66 20 74 68 65 |Note tha|t if the|
|000055f0| 0d 09 6d 75 6c 74 69 70 | 6c 79 20 69 6e 68 65 72 |..multip|ly inher|
|00005600| 69 74 65 64 20 6f 62 6a | 65 63 74 20 69 73 20 61 |ited obj|ect is a|
|00005610| 6e 20 69 76 61 72 2c 20 | 74 68 65 72 65 20 6d 61 |n ivar, |there ma|
|00005620| 79 20 6e 6f 74 20 62 65 | 20 61 20 63 6c 61 73 73 |y not be| a class|
|00005630| 20 70 6f 69 6e 74 65 72 | 21 0d 09 54 68 69 73 20 | pointer|!..This |
|00005640| 64 6f 65 73 6e 27 74 20 | 6d 61 74 74 65 72 2c 20 |doesn't |matter, |
|00005650| 73 69 6e 63 65 20 69 74 | 27 73 20 62 65 74 74 65 |since it|'s bette|
|00005660| 72 20 66 6f 72 20 6d 75 | 6c 74 69 70 6c 79 20 69 |r for mu|ltiply i|
|00005670| 6e 68 65 72 69 74 65 64 | 0d 09 6f 62 6a 65 63 74 |nherited|..object|
|00005680| 73 20 74 6f 20 61 6c 77 | 61 79 73 20 68 61 76 65 |s to alw|ays have|
|00005690| 20 74 68 65 20 73 61 6d | 65 20 66 6f 72 6d 61 74 | the sam|e format|
|000056a0| 2c 20 77 68 65 72 65 76 | 65 72 20 74 68 65 79 20 |, wherev|er they |
|000056b0| 61 72 65 2c 20 61 6e 64 | 20 61 6e 79 20 61 74 74 |are, and| any att|
|000056c0| 65 6d 70 74 0d 09 74 6f | 20 75 73 65 20 74 68 65 |empt..to| use the|
|000056d0| 20 63 6c 61 73 73 20 70 | 6f 69 6e 74 65 72 20 6f | class p|ointer o|
|000056e0| 66 66 73 65 74 20 74 6f | 20 67 65 74 20 74 68 65 |ffset to| get the|
|000056f0| 20 28 6e 6f 6e 65 78 69 | 73 74 65 6e 74 29 20 63 | (nonexi|stent) c|
|00005700| 6c 61 73 73 20 70 6f 69 | 6e 74 65 72 0d 09 77 69 |lass poi|nter..wi|
|00005710| 6c 6c 20 6d 6f 73 74 20 | 70 72 6f 62 61 62 6c 79 |ll most |probably|
|00005720| 20 62 65 20 63 61 75 67 | 68 74 20 62 79 20 6f 75 | be caug|ht by ou|
|00005730| 72 20 63 68 65 63 6b 73 | 2e 0d 2a 29 0d 0d 5c 20 |r checks|..*)..\ |
|00005740| 46 72 6f 6d 20 4d 6f 70 | 73 20 32 2e 35 20 6f 6e |From Mop|s 2.5 on|
|00005750| 2c 20 77 65 27 72 65 20 | 6e 6f 77 20 73 65 6e 64 |, we're |now send|
|00005760| 69 6e 67 20 63 6c 61 73 | 73 69 6e 69 74 3a 20 73 |ing clas|sinit: s|
|00005770| 65 70 61 72 61 74 65 6c | 79 20 74 6f 20 65 61 63 |eparatel|y to eac|
|00005780| 68 0d 5c 20 20 73 75 70 | 65 72 63 6c 61 73 73 2e |h.\ sup|erclass.|
|00005790| 0d 0d 09 45 4f 6f 66 66 | 73 20 2d 3e 20 69 6e 69 |...EOoff|s -> ini|
|000057a0| 74 45 4f 6f 66 66 73 0d | 09 42 45 47 49 4e 0d 09 |tEOoffs.|.BEGIN..|
|000057b0| 09 5e 6e 77 61 79 20 40 | 61 62 73 20 3f 3e 63 6c |.^nway @|abs ?>cl|
|000057c0| 61 73 73 49 6e 4d 6f 64 | 20 20 2d 3e 20 73 75 70 |assInMod| -> sup|
|000057d0| 43 6c 61 73 73 09 5c 20 | 6d 61 79 20 68 6f 6c 64 |Class.\ |may hold|
|000057e0| 20 61 20 6d 6f 64 0d 09 | 09 73 75 70 43 6c 61 73 | a mod..|.supClas|
|000057f0| 73 20 20 4d 65 74 61 41 | 64 64 72 20 40 61 62 73 |s MetaA|ddr @abs|
|00005800| 20 20 3c 3e 0d 09 09 49 | 46 0d 09 09 09 62 61 73 | <>...I|F....bas|
|00005810| 65 4f 66 66 73 20 45 4f | 6f 66 66 73 20 2b 20 20 |eOffs EO|offs + |
|00005820| 69 6e 69 74 45 4f 6f 66 | 66 73 20 2d 09 5c 20 53 |initEOof|fs -.\ S|
|00005830| 74 61 72 74 20 6f 66 20 | 64 61 74 61 73 70 61 63 |tart of |dataspac|
|00005840| 65 20 6f 66 20 74 68 69 | 73 0d 09 09 09 2d 3e 20 |e of thi|s....-> |
|00005850| 73 75 70 4f 66 66 73 09 | 09 09 09 09 09 5c 20 20 |supOffs.|.....\ |
|00005860| 73 75 70 65 72 63 6c 61 | 73 73 0d 09 09 09 73 75 |supercla|ss....su|
|00005870| 70 43 6c 61 73 73 20 69 | 66 61 20 64 69 73 70 6c |pClass i|fa displ|
|00005880| 61 63 65 09 09 09 5c 20 | 49 6e 66 61 20 6f 66 20 |ace...\ |Infa of |
|00005890| 66 69 72 73 74 20 69 76 | 61 72 20 6f 66 20 73 75 |first iv|ar of su|
|000058a0| 70 43 6c 61 73 73 0d 09 | 09 09 73 75 70 4f 66 66 |pClass..|..supOff|
|000058b0| 73 20 20 45 4f 6f 66 66 | 73 20 20 69 76 53 65 74 |s EOoff|s ivSet|
|000058c0| 75 70 0d 09 09 09 73 75 | 70 43 6c 61 73 73 20 20 |up....su|pClass |
|000058d0| 6e 65 77 4f 62 6a 65 63 | 74 20 73 75 70 4f 66 66 |newObjec|t supOff|
|000058e0| 73 20 2b 20 20 69 6e 69 | 74 5f 6f 62 6a 0d 09 09 |s + ini|t_obj...|
|000058f0| 54 48 45 4e 0d 09 09 3f | 75 6e 68 6f 6c 64 4d 6f |THEN...?|unholdMo|
|00005900| 64 09 09 09 09 09 09 09 | 09 5c 20 6e 6f 77 20 66 |d.......|.\ now f|
|00005910| 69 6e 69 73 68 65 64 20 | 77 69 74 68 20 74 68 65 |inished |with the|
|00005920| 20 6d 6f 64 0d 09 09 31 | 63 65 6c 6c 20 2b 2b 3e | mod...1|cell ++>|
|00005930| 20 5e 6e 77 61 79 0d 09 | 09 5e 6e 77 61 79 20 40 | ^nway..|.^nway @|
|00005940| 0d 09 57 48 49 4c 45 09 | 09 5c 20 61 6e 6f 74 68 |..WHILE.|.\ anoth|
|00005950| 65 72 20 63 6c 61 73 73 | 20 63 6f 6d 69 6e 67 20 |er class| coming |
|00005960| 75 70 20 2d 20 73 74 6f | 72 65 20 32 2d 62 79 74 |up - sto|re 2-byt|
|00005970| 65 20 5e 63 6c 61 73 73 | 20 6f 66 66 73 65 74 20 |e ^class| offset |
|00005980| 66 69 72 73 74 0d 09 09 | 73 75 70 43 6c 61 73 73 |first...|supClass|
|00005990| 20 64 66 61 20 77 40 09 | 09 09 09 5c 20 64 6c 65 | dfa w@.|...\ dle|
|000059a0| 6e 20 6f 66 20 73 75 70 | 43 6c 61 73 73 2e 20 46 |n of sup|Class. F|
|000059b0| 61 73 74 65 72 20 74 68 | 61 6e 20 75 73 69 6e 67 |aster th|an using|
|000059c0| 20 44 4c 45 4e 0d 09 09 | 28 20 64 6c 65 6e 20 29 | DLEN...|( dlen )|
|000059d0| 20 61 6c 69 67 6e 65 64 | 20 2b 2b 3e 20 45 4f 6f | aligned| ++> EOo|
|000059e0| 66 66 73 0d 09 09 45 4f | 6f 66 66 73 20 6e 65 67 |ffs...EO|offs neg|
|000059f0| 61 74 65 20 38 20 2d 09 | 09 09 5c 20 5e 63 6c 61 |ate 8 -.|..\ ^cla|
|00005a00| 73 73 20 6f 66 66 73 65 | 74 20 66 6f 72 20 73 74 |ss offse|t for st|
|00005a10| 6f 72 65 0d 09 09 45 4f | 6f 66 66 73 20 69 6e 69 |ore...EO|offs ini|
|00005a20| 74 45 4f 6f 66 66 73 20 | 2d 09 09 09 5c 20 6f 66 |tEOoffs |-...\ of|
|00005a30| 66 73 65 74 20 6e 6f 74 | 20 61 6c 72 65 61 64 79 |fset not| already|
|00005a40| 20 69 6e 63 6c 75 64 65 | 64 20 69 6e 20 62 61 73 | include|d in bas|
|00005a50| 65 4f 66 66 73 0d 09 09 | 62 61 73 65 4f 66 66 73 |eOffs...|baseOffs|
|00005a60| 20 2b 20 6e 65 77 4f 62 | 6a 65 63 74 20 2b 09 09 | + newOb|ject +..|
|00005a70| 5c 20 66 69 6e 61 6c 20 | 61 64 64 72 20 66 6f 72 |\ final |addr for|
|00005a80| 20 73 74 6f 72 65 0d 09 | 09 77 21 0d 09 09 32 20 | store..|.w!...2 |
|00005a90| 2b 2b 3e 20 45 4f 6f 66 | 66 73 0d 09 52 45 50 45 |++> EOof|fs..REPE|
|00005aa0| 41 54 20 20 3b 0d 0d 0d | 28 2a 09 49 56 73 65 74 |AT ;...|(*.IVset|
|00005ab0| 75 70 20 72 65 63 75 72 | 73 69 76 65 6c 79 20 74 |up recur|sively t|
|00005ac0| 72 61 76 65 72 73 65 73 | 20 74 68 65 20 74 72 65 |raverses| the tre|
|00005ad0| 65 20 6f 66 20 6e 65 73 | 74 65 64 20 69 76 61 72 |e of nes|ted ivar|
|00005ae0| 20 64 65 66 69 6e 69 74 | 69 6f 6e 73 20 69 6e 20 | definit|ions in |
|00005af0| 61 0d 09 63 6c 61 73 73 | 2c 20 62 75 69 6c 64 69 |a..class|, buildi|
|00005b00| 6e 67 20 68 65 61 64 65 | 72 73 20 61 6e 64 20 69 |ng heade|rs and i|
|00005b10| 6e 64 65 78 65 64 20 61 | 72 65 61 20 68 65 61 64 |ndexed a|rea head|
|00005b20| 65 72 73 20 77 68 65 72 | 65 20 6e 65 63 65 73 73 |ers wher|e necess|
|00005b30| 61 72 79 2c 20 61 6e 64 | 20 0d 09 73 65 6e 64 69 |ary, and| ..sendi|
|00005b40| 6e 67 09 74 68 65 20 43 | 4c 41 53 53 49 4e 49 54 |ng.the C|LASSINIT|
|00005b50| 3a 20 6d 65 73 73 61 67 | 65 20 74 6f 20 65 61 63 |: messag|e to eac|
|00005b60| 68 20 69 76 61 72 2e 0d | 09 0d 09 4f 6e 20 65 6e |h ivar..|...On en|
|00005b70| 74 72 79 20 69 6e 66 61 | 20 69 73 20 74 68 65 20 |try infa| is the |
|00005b80| 6e 66 61 20 6f 66 20 74 | 68 65 20 66 69 72 73 74 |nfa of t|he first|
|00005b90| 20 69 76 61 72 20 69 6e | 20 74 68 65 20 69 76 61 | ivar in| the iva|
|00005ba0| 72 20 64 69 63 74 69 6f | 6e 61 72 79 20 6f 66 20 |r dictio|nary of |
|00005bb0| 74 68 65 0d 09 6f 62 6a | 65 63 74 2f 69 76 61 72 |the..obj|ect/ivar|
|00005bc0| 20 77 68 6f 73 65 20 28 | 73 75 62 29 69 76 61 72 | whose (|sub)ivar|
|00005bd0| 73 20 77 65 20 61 72 65 | 20 74 6f 20 73 65 74 20 |s we are| to set |
|00005be0| 75 70 2e 20 54 68 65 20 | 64 69 63 74 69 6f 6e 61 |up. The |dictiona|
|00005bf0| 72 79 20 63 68 61 69 6e | 20 69 73 0d 09 66 6f 6c |ry chain| is..fol|
|00005c00| 6c 6f 77 65 64 20 74 6f | 20 74 68 65 20 65 6e 64 |lowed to| the end|
|00005c10| 2c 20 74 68 65 20 6c 61 | 73 74 20 6c 69 6e 6b 20 |, the la|st link |
|00005c20| 70 6f 69 6e 74 69 6e 67 | 20 74 6f 20 74 68 65 20 |pointing| to the |
|00005c30| 4e 77 61 79 20 73 75 70 | 65 72 63 6c 61 73 73 20 |Nway sup|erclass |
|00005c40| 70 6f 69 6e 74 65 72 2e | 0d 09 62 61 73 65 4f 66 |pointer.|..baseOf|
|00005c50| 66 73 20 69 73 20 74 68 | 65 20 70 6f 73 69 74 69 |fs is th|e positi|
|00005c60| 6f 6e 20 6f 66 20 74 68 | 65 20 63 75 72 72 65 6e |on of th|e curren|
|00005c70| 74 20 6f 62 6a 65 63 74 | 2f 69 76 61 72 27 73 20 |t object|/ivar's |
|00005c80| 64 61 74 61 20 73 70 61 | 63 65 20 72 65 6c 61 74 |data spa|ce relat|
|00005c90| 69 76 65 0d 09 74 6f 20 | 6e 65 77 4f 62 6a 65 63 |ive..to |newObjec|
|00005ca0| 74 2c 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 74 |t, the c|urrent t|
|00005cb0| 6f 70 2d 6c 65 76 65 6c | 20 6f 62 6a 65 63 74 20 |op-level| object |
|00005cc0| 62 65 69 6e 67 20 63 72 | 65 61 74 65 64 2e 0d 09 |being cr|eated...|
|00005cd0| 45 4f 6f 66 66 73 20 69 | 73 20 6e 6f 6e 2d 7a 65 |EOoffs i|s non-ze|
|00005ce0| 72 6f 20 69 66 20 74 68 | 65 20 69 76 61 72 20 77 |ro if th|e ivar w|
|00005cf0| 68 6f 73 65 20 73 75 62 | 69 76 61 72 73 20 77 65 |hose sub|ivars we|
|00005d00| 20 61 72 65 20 74 6f 20 | 73 65 74 20 75 70 20 69 | are to |set up i|
|00005d10| 73 20 70 61 72 74 0d 09 | 6f 66 20 61 6e 20 22 65 |s part..|of an "e|
|00005d20| 6d 62 65 64 64 65 64 20 | 6f 62 6a 65 63 74 22 2c |mbedded |object",|
|00005d30| 20 69 65 2e 20 69 73 20 | 69 6e 68 65 72 69 74 65 | ie. is |inherite|
|00005d40| 64 20 66 72 6f 6d 20 61 | 20 73 75 70 65 72 63 6c |d from a| supercl|
|00005d50| 61 73 73 2c 20 61 6e 64 | 20 74 68 69 73 0d 09 73 |ass, and| this..s|
|00005d60| 75 70 65 72 63 6c 61 73 | 73 20 69 73 20 6e 6f 74 |uperclas|s is not|
|00005d70| 20 74 68 65 20 66 69 72 | 73 74 20 73 75 70 65 72 | the fir|st super|
|00005d80| 20 6f 66 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 | of the |current |
|00005d90| 74 6f 70 2d 6c 65 76 65 | 6c 20 6f 62 6a 65 63 74 |top-leve|l object|
|00005da0| 2e 0d 09 54 68 69 73 20 | 69 73 20 70 61 73 73 65 |...This |is passe|
|00005db0| 64 20 6f 6e 20 75 6e 6d | 6f 64 69 66 69 65 64 20 |d on unm|odified |
|00005dc0| 69 6e 20 61 6e 79 20 72 | 65 63 75 72 73 69 76 65 |in any r|ecursive|
|00005dd0| 20 63 61 6c 6c 20 61 6e | 64 20 75 73 65 64 20 6f | call an|d used o|
|00005de0| 6e 6c 79 20 62 79 0d 09 | 4e 57 5f 49 56 53 45 54 |nly by..|NW_IVSET|
|00005df0| 55 50 20 74 6f 20 63 61 | 6c 63 75 6c 61 74 65 20 |UP to ca|lculate |
|00005e00| 74 68 65 20 6f 66 66 73 | 65 74 20 74 6f 20 74 68 |the offs|et to th|
|00005e10| 65 20 63 6c 61 73 73 20 | 70 6f 69 6e 74 65 72 2e |e class |pointer.|
|00005e20| 0d 09 57 68 65 6e 20 74 | 68 69 73 20 77 6f 72 64 |..When t|his word|
|00005e30| 20 69 73 20 63 61 6c 6c | 65 64 2c 20 69 66 20 74 | is call|ed, if t|
|00005e40| 68 65 20 6f 62 6a 65 63 | 74 2f 69 76 61 72 27 73 |he objec|t/ivar's|
|00005e50| 20 63 6c 61 73 73 20 69 | 73 20 69 6e 20 61 20 6d | class i|s in a m|
|00005e60| 6f 64 75 6c 65 2c 0d 09 | 74 68 65 20 6d 6f 64 75 |odule,..|the modu|
|00005e70| 6c 65 20 77 69 6c 6c 20 | 62 65 20 68 65 6c 64 2e |le will |be held.|
|00005e80| 20 49 6e 20 73 6f 6d 65 | 20 63 69 72 63 75 6d 73 | In some| circums|
|00005e90| 74 61 6e 63 65 73 20 74 | 68 65 20 63 61 6c 6c 65 |tances t|he calle|
|00005ea0| 72 20 73 74 69 6c 6c 20 | 6e 65 65 64 73 20 69 74 |r still |needs it|
|00005eb0| 2e 0d 09 54 68 65 20 72 | 65 63 75 72 73 69 76 65 |...The r|ecursive|
|00005ec0| 20 63 61 6c 6c 20 6d 69 | 67 68 74 20 72 65 71 75 | call mi|ght requ|
|00005ed0| 69 72 65 20 61 6e 6f 74 | 68 65 72 20 6d 6f 64 75 |ire anot|her modu|
|00005ee0| 6c 65 20 74 6f 20 62 65 | 20 68 65 6c 64 2c 20 73 |le to be| held, s|
|00005ef0| 6f 20 77 65 20 68 61 76 | 65 20 74 6f 0d 09 73 61 |o we hav|e to..sa|
|00005f00| 76 65 20 61 6e 64 20 72 | 65 73 74 6f 72 65 20 61 |ve and r|estore a|
|00005f10| 6e 79 20 6d 6f 64 75 6c | 65 20 68 65 6c 64 20 6f |ny modul|e held o|
|00005f20| 6e 20 65 6e 74 72 79 2e | 0d 2a 29 0d 0d 3a 66 20 |n entry.|.*)..:f |
|00005f30| 49 56 53 45 54 55 50 09 | 09 7b 20 69 6e 66 61 20 |IVSETUP.|.{ infa |
|00005f40| 62 61 73 65 4f 66 66 73 | 20 45 4f 4f 66 66 73 20 |baseOffs| EOOffs |
|00005f50| 5c 20 69 76 4f 66 66 73 | 20 69 76 43 6c 61 73 73 |\ ivOffs| ivClass|
|00005f60| 20 2d 2d 20 7d 0d 0d 09 | 68 65 6c 64 4d 6f 64 09 | -- }...|heldMod.|
|00005f70| 09 09 09 5c 20 49 66 20 | 63 6c 61 73 73 20 69 73 |...\ If |class is|
|00005f80| 20 69 6e 20 6d 6f 64 75 | 6c 65 20 69 74 20 6d 75 | in modu|le it mu|
|00005f90| 73 74 20 6e 6f 74 20 67 | 65 74 20 75 6e 68 65 6c |st not g|et unhel|
|00005fa0| 64 0d 09 09 09 09 09 09 | 5c 20 20 77 68 69 6c 65 |d.......|\ while|
|00005fb0| 20 70 72 6f 63 65 73 73 | 69 6e 67 20 73 6f 20 6b | process|ing so k|
|00005fc0| 65 65 70 20 61 64 64 72 | 65 73 73 20 6f 6e 20 74 |eep addr|ess on t|
|00005fd0| 68 65 20 73 74 61 63 6b | 0d 09 30 20 2d 3e 20 68 |he stack|..0 -> h|
|00005fe0| 65 6c 64 4d 6f 64 09 09 | 5c 20 20 61 6e 64 20 63 |eldMod..|\ and c|
|00005ff0| 6c 65 61 72 20 68 65 6c | 64 4d 6f 64 20 73 6f 20 |lear hel|dMod so |
|00006000| 69 74 20 63 61 6e 6e 6f | 74 20 62 65 20 75 6e 68 |it canno|t be unh|
|00006010| 65 6c 64 0d 09 09 0d 09 | 42 45 47 49 4e 0d 09 09 |eld.....|BEGIN...|
|00006020| 69 6e 66 61 20 40 20 30 | 3e 09 5c 20 41 20 73 65 |infa @ 0|>.\ A se|
|00006030| 6c 65 63 74 6f 72 20 69 | 73 20 61 6c 77 61 79 73 |lector i|s always|
|00006040| 20 6e 65 67 61 74 69 76 | 65 2c 20 73 6f 20 61 0d | negativ|e, so a.|
|00006050| 09 09 09 09 09 5c 20 20 | 70 6f 73 69 74 69 76 65 |.....\ |positive|
|00006060| 20 76 61 6c 75 65 20 6d | 65 61 6e 73 20 74 68 65 | value m|eans the|
|00006070| 20 4e 2d 77 61 79 20 73 | 75 70 65 72 63 6c 61 73 | N-way s|uperclas|
|00006080| 73 0d 09 09 09 09 09 5c | 20 20 70 6f 69 6e 74 65 |s......\| pointe|
|00006090| 72 20 61 72 65 61 20 28 | 20 73 75 70 65 72 63 6c |r area (| supercl|
|000060a0| 61 73 73 20 61 64 72 65 | 73 73 65 73 20 29 2c 0d |ass adre|sses ),.|
|000060b0| 09 09 09 09 09 5c 20 20 | 74 68 65 20 65 6e 64 70 |.....\ |the endp|
|000060c0| 6f 69 6e 74 20 6f 66 20 | 74 68 65 20 69 76 61 72 |oint of |the ivar|
|000060d0| 20 64 69 63 74 69 6f 6e | 61 72 79 20 63 68 61 69 | diction|ary chai|
|000060e0| 6e 0d 09 09 09 09 09 0d | 09 4e 57 48 49 4c 45 09 |n.......|.NWHILE.|
|000060f0| 5c 20 62 75 69 6c 64 20 | 74 68 69 73 20 69 76 61 |\ build |this iva|
|00006100| 72 20 69 6e 20 6f 62 6a | 65 63 74 0d 0d 09 09 69 |r in obj|ect....i|
|00006110| 6e 66 61 20 69 66 66 61 | 20 77 40 20 32 20 61 6e |nfa iffa| w@ 2 an|
|00006120| 64 09 09 09 5c 20 53 74 | 61 74 69 63 20 69 76 61 |d...\ St|atic iva|
|00006130| 72 3f 20 2d 3e 20 6e 6f | 74 20 69 6e 20 6f 62 6a |r? -> no|t in obj|
|00006140| 20 28 62 69 74 20 31 29 | 0d 09 09 4e 49 46 09 69 | (bit 1)|...NIF.i|
|00006150| 6e 66 61 20 69 6f 66 66 | 73 09 09 09 09 5c 20 4f |nfa ioff|s....\ O|
|00006160| 66 66 73 65 74 20 6f 66 | 20 69 76 61 72 20 69 6e |ffset of| ivar in|
|00006170| 20 6f 77 6e 69 6e 67 20 | 6f 62 6a 65 63 74 0d 09 | owning |object..|
|00006180| 09 09 62 61 73 65 6f 66 | 66 73 20 2b 20 20 20 2d |..baseof|fs + -|
|00006190| 3e 20 69 76 4f 66 66 73 | 09 5c 20 50 6f 73 69 74 |> ivOffs|.\ Posit|
|000061a0| 69 6f 6e 20 72 65 6c 61 | 74 69 76 65 20 74 6f 20 |ion rela|tive to |
|000061b0| 6e 65 77 4f 62 6a 65 63 | 74 0d 09 09 09 69 6e 66 |newObjec|t....inf|
|000061c0| 61 20 5e 69 63 6c 61 73 | 73 20 2d 3e 20 69 76 43 |a ^iclas|s -> ivC|
|000061d0| 6c 61 73 73 09 5c 20 4d | 61 79 20 63 61 75 73 65 |lass.\ M|ay cause|
|000061e0| 20 61 6e 6f 74 68 65 72 | 20 6d 6f 64 75 6c 65 20 | another| module |
|000061f0| 74 6f 20 62 65 20 68 65 | 6c 64 0d 09 09 09 69 6e |to be he|ld....in|
|00006200| 66 61 20 69 66 66 61 20 | 77 40 20 31 20 61 6e 64 |fa iffa |w@ 1 and|
|00006210| 09 09 5c 20 44 6f 65 73 | 20 69 74 20 77 61 6e 74 |..\ Does| it want|
|00006220| 20 68 65 61 64 65 72 73 | 3f 20 2d 3e 20 66 6c 61 | headers|? -> fla|
|00006230| 67 20 62 69 74 20 30 0d | 09 09 09 49 46 09 69 6e |g bit 0.|...IF.in|
|00006240| 66 61 20 69 23 65 6c 73 | 20 64 75 70 20 4e 49 46 |fa i#els| dup NIF|
|00006250| 20 64 72 6f 70 20 54 48 | 45 4e 0d 09 09 09 09 69 | drop TH|EN.....i|
|00006260| 76 43 6c 61 73 73 0d 09 | 09 09 09 6e 65 77 4f 62 |vClass..|...newOb|
|00006270| 6a 65 63 74 20 69 76 4f | 66 66 73 20 2b 20 09 5c |ject ivO|ffs + .\|
|00006280| 20 61 64 64 72 65 73 73 | 20 77 68 65 72 65 20 68 | address| where h|
|00006290| 65 61 64 65 72 73 20 6d | 75 73 74 20 62 65 20 6d |eaders m|ust be m|
|000062a0| 61 64 65 0d 09 09 09 09 | 6d 61 6b 65 5f 68 64 72 |ade.....|make_hdr|
|000062b0| 73 0d 09 09 09 54 48 45 | 4e 0d 09 09 09 3f 52 64 |s....THE|N....?Rd|
|000062c0| 65 70 74 68 09 09 09 09 | 09 5c 20 43 68 65 63 6b |epth....|.\ Check|
|000062d0| 20 6f 6e 20 72 65 63 75 | 72 73 69 6f 6e 20 64 65 | on recu|rsion de|
|000062e0| 70 74 68 0d 09 09 09 69 | 76 43 6c 61 73 73 20 69 |pth....i|vClass i|
|000062f0| 66 61 20 64 69 73 70 6c | 61 63 65 09 5c 20 49 6e |fa displ|ace.\ In|
|00006300| 66 61 20 6f 66 20 66 69 | 72 73 74 20 73 75 62 69 |fa of fi|rst subi|
|00006310| 76 61 72 20 69 6e 0d 09 | 09 09 09 09 09 09 09 09 |var in..|........|
|00006320| 5c 20 20 63 68 61 69 6e | 20 6f 66 20 74 68 65 20 |\ chain| of the |
|00006330| 63 75 72 72 65 6e 74 6c | 79 0d 09 09 09 09 09 09 |currentl|y.......|
|00006340| 09 09 09 5c 20 20 70 72 | 6f 63 65 73 73 65 64 20 |...\ pr|ocessed |
|00006350| 69 76 61 72 20 6f 62 6a | 65 63 74 0d 09 09 09 69 |ivar obj|ect....i|
|00006360| 76 4f 66 66 73 09 09 09 | 09 09 5c 20 4e 65 77 20 |vOffs...|..\ New |
|00006370| 62 61 73 65 20 6f 66 66 | 73 65 74 20 6f 66 20 73 |base off|set of s|
|00006380| 75 62 69 76 61 72 0d 09 | 09 09 30 0d 09 09 09 69 |ubivar..|..0....i|
|00006390| 76 53 65 74 75 70 0d 09 | 09 09 3f 75 6e 68 6f 6c |vSetup..|..?unhol|
|000063a0| 64 4d 6f 64 0d 09 09 09 | 69 76 43 6c 61 73 73 20 |dMod....|ivClass |
|000063b0| 20 6e 65 77 4f 62 6a 65 | 63 74 20 69 76 4f 66 66 | newObje|ct ivOff|
|000063c0| 73 20 2b 20 20 69 6e 69 | 74 5f 6f 62 6a 0d 09 09 |s + ini|t_obj...|
|000063d0| 54 48 45 4e 0d 09 09 69 | 6e 66 61 20 5e 6e 65 78 |THEN...i|nfa ^nex|
|000063e0| 74 69 76 61 72 20 2d 3e | 20 69 6e 66 61 0d 09 52 |tivar ->| infa..R|
|000063f0| 45 50 45 41 54 0d 09 69 | 6e 66 61 20 62 61 73 65 |EPEAT..i|nfa base|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.