DataMuseum.dk

Presents historical artifacts from the history of:

DANOSI

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DANOSI

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics

⟦27f2a81e5⟧ Bits:30010502 DVBS1.SW2103.rel.1.14-1/4 SW2103 Release 1.14 RTP3502DOS Compiler Source - UNIX tar #1/4 DVBS1.SW2103.src.1.14-1/4, 5¼" Floppy Disk, ImdContainer

    Length: 1228800 (0x12c000)
    Description: Bits:30010502 DVBS1.SW2103.rel.1.14-1/4 SW2103 Release 1.14 RTP3502DOS Compiler Source - UNIX tar #1/4 DVBS1.SW2103.src.1.14-1/4
    Types: 5¼" Floppy Disk, ImdContainer

Default Hex Dump

0x000000…000020 (0, 0, 1)   64 65 70 6f 6e 2e 74 61 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆depon.tar                       ┆
0x000020…000040             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x000060…000080             00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 34 35 33 35   ┆       640     255     146  4535┆
0x000080…0000a0             30 30 30 00 30 30 30 20 20 35 34 30 37 33 35 37 32 34 36 20 20 20 37 30 35 31 00 20 00 00 00 00   ┆000 000  5407357246   7051      ┆
0x0000a0…0000c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x2…]
0x000100…000120             00 31 00 00 00 34 00 00 00 31 37 32 32 30 30 30 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆ 1   4   17220000               ┆
0x000120…000140             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x6…]
0x000200…000220 (0, 0, 2)   2e 2e 2f 73 77 32 31 30 33 2f 2e 70 72 6f 66 69 6c 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆../sw2103/.profile              ┆
0x000220…000240             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x000260…000280             00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       640     255     146      ┆
0x000280…0002a0             20 20 20 20 33 32 37 20 20 35 34 30 33 36 34 35 35 33 31 20 20 20 36 37 33 32 00 20 00 00 00 00   ┆    327  5403645531   6732      ┆
0x0002a0…0002c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x000400…000420 (0, 0, 3)   23 2e 70 72 6f 66 69 6c 65 0a 0a 75 6d 61 73 6b 20 30 32 37 0a 4d 41 49 4c 3d 2f 75 73 72 2f 6d   ┆#.profile  umask 027 MAIL=/usr/m┆
0x000420…000440             61 69 6c 2f 24 7b 4c 4f 47 4e 41 4d 45 3a 3f 7d 0a 56 50 49 58 43 4e 46 3d 2f 75 73 72 32 2f 73   ┆ail/${LOGNAME:?} VPIXCNF=/usr2/s┆
0x000440…000460             77 32 31 30 33 2f 76 70 69 78 2f 76 70 69 78 2e 63 6e 66 0a 44 4f 53 50 41 54 48 3d 2f 75 73 72   ┆w2103/vpix/vpix.cnf DOSPATH=/usr┆
0x000460…000480             2f 76 70 69 78 2f 64 6f 73 62 69 6e 3a 2e 3a 2f 75 73 72 32 2f 73 77 75 74 69 6c 3a 2f 75 73 72   ┆/vpix/dosbin:.:/usr2/swutil:/usr┆
0x000480…0004a0             32 2f 73 77 32 31 30 33 2f 65 78 65 0a 50 41 54 48 3d 24 50 41 54 48 3a 24 44 4f 53 50 41 54 48   ┆2/sw2103/exe PATH=$PATH:$DOSPATH┆
0x0004a0…0004c0             0a 65 78 70 6f 72 74 20 44 4f 53 50 41 54 48 20 56 50 49 58 43 4e 46 20 50 41 54 48 0a 2e 20 2e   ┆ export DOSPATH VPIXCNF PATH . .┆
0x0004c0…0004e0             72 63 70 61 78 70 72 6f 66 69 6c 65 0a 2e 20 2e 76 74 32 32 30 0a 0a 00 00 00 00 00 00 00 00 00   ┆rcpaxprofile . .vt220           ┆
0x0004e0…000500             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x5…]
0x0005a0…0005c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d8 3d 00 a0 d8 75 40 00   ┆                        п= апu@ ┆
0x0005c0…0005e0             db 05 00 a0 00 04 00 00 37 fd ff 7f 04 00 00 00 e0 6d 40 00 00 04 00 00 00 00 00 00 00 00 00 00   ┆█  а    7§      Яm@             ┆
0x0005e0…000600             c4 f8 ff 7f 79 3a 00 00 18 04 00 00 3a fd ff 7f 40 fd ff 7f 2d 3b 00 00 04 00 00 00 0a f9 ff 7f   ┆─Э  y:      :§  @§  -;       щ  ┆
0x000600…000620 (0, 0, 4)   2e 2e 2f 73 77 32 31 30 33 2f 76 70 69 78 2f 76 70 69 78 2e 63 6e 66 00 00 00 00 00 00 00 00 00   ┆../sw2103/vpix/vpix.cnf         ┆
0x000620…000640             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x000660…000680             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 20 20 30 20 00 20 20 20 20   ┆       644     255       0      ┆
0x000680…0006a0             20 20 20 32 33 31 32 20 20 35 32 36 35 32 33 36 34 37 36 20 20 20 37 37 31 34 00 20 00 00 00 00   ┆   2312  5265236476   7714      ┆
0x0006a0…0006c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x000800…000820 (0, 0, 5)   3b 20 40 28 23 29 76 70 69 78 2e 63 6e 66 09 31 2e 35 20 2d 20 38 38 2f 30 37 2f 32 35 0a 3b 0a   ┆; @(#)vpix.cnf 1.5 - 88/07/25 ; ┆
0x000820…000840             3b 20 56 50 2f 69 78 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 46 69 6c 65 0a 3b 0a 3b 0a 3b   ┆; VP/ix Configuration File ; ; ;┆
0x000840…000860             20 44 4f 53 20 44 45 56 49 43 45 09 09 55 4e 49 58 20 44 45 56 49 43 45 20 50 41 54 48 20 4e 41   ┆ DOS DEVICE  UNIX DEVICE PATH NA┆
0x000860…000880             4d 45 0a 0a 43 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 43 3a 0a 52 4f   ┆ME  C   /usr/vpix/defaults/C: RO┆
0x000880…0008a0             4d 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 0a 3b 45 47 41 52   ┆M   /usr/vpix/defaults/rom ;EGAR┆
0x0008a0…0008c0             4f 4d 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 65 67 61 09 3b   ┆OM   /usr/vpix/defaults/romega ;┆
0x0008c0…0008e0             20 6e 6f 74 20 66 6f 72 20 52 43 39 34 30 0a 56 47 41 52 4f 4d 09 09 09 2f 75 73 72 2f 76 70 69   ┆ not for RC940 VGAROM   /usr/vpi┆
0x0008e0…000900             78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 76 67 61 0a 43 4d 4f 53 09 09 09 2f 75 73 72 2f 76 70   ┆x/defaults/romvga CMOS   /usr/vp┆
0x000900…000920             69 78 2f 64 65 66 61 75 6c 74 73 2f 63 6d 6f 73 0a 42 4f 4f 54 49 4d 41 47 45 09 09 24 48 4f 4d   ┆ix/defaults/cmos BOOTIMAGE  $HOM┆
0x000920…000940             45 2f 76 70 69 78 2f 76 70 69 78 2e 69 6d 67 0a 0a 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67   ┆E/vpix/vpix.img  ; The following┆
0x000940…000960             20 65 6e 74 72 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 20 61 73 20 65 78 61 6d 70 6c 65 73   ┆ entries are provide as examples┆
0x000960…000980             0a 3b 20 66 6f 72 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 56 50 2f 69   ┆ ; for customization of the VP/i┆
0x000980…0009a0             78 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 74 68 65 20 66   ┆x environment  ; To access the f┆
0x0009a0…0009c0             6c 6f 70 70 79 20 61 73 20 64 72 69 76 65 20 41 3a 20 75 6e 63 6f 6d 6d 65 6e 74 20 6f 6e 65 20   ┆loppy as drive A: uncomment one ┆
0x0009c0…0009e0             6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a   ┆of the following. ; ; For 360K: ┆
0x0009e0…000a00             3b 41 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 30 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20   ┆;A   /dev/rdsk/f0d9dt ; For 1.2 ┆
0x000a00…000a20 (0, 0, 6)   4d 65 67 3a 0a 3b 41 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 30 71 31 35 64 74 0a 3b 20 46 6f   ┆Meg: ;A   /dev/rdsk/f0q15dt ; Fo┆
0x000a20…000a40             72 20 68 69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 41 09 09 09 2f 64 65 76 2f 72   ┆r high-density 3.5": ;A   /dev/r┆
0x000a40…000a60             64 73 6b 2f 66 30 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 64 64 20 61 6e 20 61 64 64 69 74 69 6f   ┆dsk/f0q18dt  ; To add an additio┆
0x000a60…000a80             6e 61 6c 20 50 73 65 75 64 6f 2d 46 6c 6f 70 70 79 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73   ┆nal Pseudo-Floppy (accessible as┆
0x000a80…000aa0             20 44 72 69 76 65 20 42 3a 29 3a 0a 3b 42 09 09 09 2f 75 73 72 2f 4d 59 48 4f 4d 45 2f 42 3a 0a   ┆ Drive B:): ;B   /usr/MYHOME/B: ┆
0x000aa0…000ac0             0a 3b 20 54 6f 20 61 64 64 20 61 6e 20 61 64 64 69 74 6f 6e 61 6c 20 66 6c 6f 70 70 79 20 77 68   ┆ ; To add an additonal floppy wh┆
0x000ac0…000ae0             69 63 68 20 69 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 20 66 6c   ┆ich is attached to the second fl┆
0x000ae0…000b00             6f 70 70 79 20 64 72 69 76 65 0a 3b 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73 20 42 3a 29 20   ┆oppy drive ; (accessible as B:) ┆
0x000b00…000b20             6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 3a 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a 3b 42   ┆on your system: ; ; For 360K: ;B┆
0x000b20…000b40             09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20 4d 65   ┆   /dev/rdsk/f1d9dt ; For 1.2 Me┆
0x000b40…000b60             67 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 71 31 35 64 74 0a 3b 20 46 6f 72 20   ┆g: ;B   /dev/rdsk/f1q15dt ; For ┆
0x000b60…000b80             68 69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73   ┆high-density 3.5": ;B   /dev/rds┆
0x000b80…000ba0             6b 2f 66 31 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20   ┆k/f1q18dt  ; To access a serial ┆
0x000ba0…000bc0             63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 3a 0a 3b 43 4f 4d 31 09 09 09 2f 64 65   ┆communications port: ;COM1   /de┆
0x000bc0…000be0             76 2f 74 74 79 30 30 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20 63 6f   ┆v/tty00  ; To access a serial co┆
0x000be0…000c00             6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 61   ┆mmunications port for use with a┆
0x000c00…000c20 (0, 0, 7)   20 73 65 72 69 61 6c 20 6d 6f 75 73 65 3a 0a 3b 43 4f 4d 31 4d 4f 55 53 45 09 09 2f 64 65 76 2f   ┆ serial mouse: ;COM1MOUSE  /dev/┆
0x000c20…000c40             74 74 79 30 30 0a 0a 3b 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 4d 69 63 72 6f 73 6f 66 74   ┆tty00  ; If you have a Microsoft┆
0x000c40…000c60             20 49 6e 70 6f 72 74 20 42 75 73 20 4d 6f 75 73 65 3a 0a 3b 4d 4f 55 53 45 09 09 09 2f 64 65 76   ┆ Inport Bus Mouse: ;MOUSE   /dev┆
0x000c60…000c80             2f 6d 6f 75 73 65 0a 0a 3b 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 6c 69 6e 65 20 70 72 69   ┆/mouse  ; If you have a line pri┆
0x000c80…000ca0             6e 74 65 72 20 61 6e 64 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 73 74 61 6e 64 61 72 64 20   ┆nter and are using the standard ┆
0x000ca0…000cc0             55 4e 49 58 20 70 72 69 6e 74 65 72 20 73 70 6f 6f 6c 65 72 3a 0a 3b 4c 50 54 31 09 09 09 2f 75   ┆UNIX printer spooler: ;LPT1   /u┆
0x000cc0…000ce0             73 72 2f 62 69 6e 2f 6c 70 0a 61 63 68 65 64 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 20 66 6c   ┆sr/bin/lp ached to the second fl┆
0x000ce0…000d00             6f 70 70 79 20 64 72 69 76 65 0a 3b 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73 20 42 3a 29 20   ┆oppy drive ; (accessible as B:) ┆
0x000d00…000d20             6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 3a 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a 3b 42   ┆on your system: ; ; For 360K: ;B┆
0x000d20…000d40             09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20 4d 65   ┆   /dev/rdsk/f1d9dt ; For 1.2 Me┆
0x000d40…000d60             67 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 71 31 35 64 74 0a 3b 20 46 6f 72 20   ┆g: ;B   /dev/rdsk/f1q15dt ; For ┆
0x000d60…000d80             68 69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73   ┆high-density 3.5": ;B   /dev/rds┆
0x000d80…000da0             6b 2f 66 31 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20   ┆k/f1q18dt  ; To access a serial ┆
0x000da0…000dc0             63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 3a 0a 3b 43 4f 4d 31 09 09 09 2f 64 65   ┆communications port: ;COM1   /de┆
0x000dc0…000de0             76 2f 74 74 79 30 30 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20 63 6f   ┆v/tty00  ; To access a serial co┆
0x000de0…000e00             6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 61   ┆mmunications port for use with a┆
0x000e00…000e20 (0, 0, 8)   2e 2e 2f 73 77 32 31 30 33 2f 76 70 69 78 2f 75 6e 69 78 62 69 6e 2f 72 75 6e 75 6e 69 78 2e 65   ┆../sw2103/vpix/unixbin/rununix.e┆
0x000e20…000e40             78 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆xe                              ┆
0x000e40…000e60             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x000e60…000e80             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 20 20 30 20 00 20 20 20 20   ┆       444     255       0      ┆
0x000e80…000ea0             20 20 31 36 36 33 30 20 20 35 32 36 35 32 33 36 34 37 37 20 20 31 32 31 35 34 00 20 00 00 00 00   ┆  16630  5265236477  12154      ┆
0x000ea0…000ec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x001000…001020 (0, 0, 9)   4d 5a 98 01 0f 00 03 00 20 00 c3 00 ff ff fc 01 00 08 26 ac af 02 00 00 1e 00 00 00 01 00 7c 01   ┆MZў       ├   Ч   &г»         | ┆
0x001020…001040             72 01 c6 02 00 00 f4 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆r к   З                         ┆
0x001040…001060             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xd…]
0x001200…001220 (0, 0, 10)  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 8b ec 81 ec 26 01 c7 46 fe 09 00 2b c0 50 50   ┆                UІВЂВ& КF■  +└PP┆
0x001220…001240             50 50 e8 0b 02 83 c4 08 89 86 2e ff 2b c0 50 50 50 b8 01 00 50 e8 f8 01 83 c4 08 89 86 2c ff 8d   ┆PPУ  Ѓ─ Ѕє. +└PPPИ  PУЭ Ѓ─ Ѕє, Ї┆
0x001240…001260             86 36 ff 50 e8 2d 02 83 c4 02 8d 86 36 ff 89 86 34 ff eb 28 80 be da fe 5c 75 09 8b 9e 34 ff c6   ┆є6 PУ- Ѓ─ Їє6 Ѕє4 в(ђЙ┌■\u Іъ4 к┆
0x001260…001280             07 2f eb 14 8b 9e 34 ff 8a 07 98 50 e8 01 05 83 c4 02 8b 9e 34 ff 88 07 ff 86 34 ff 8b 9e 34 ff   ┆ /в Іъ4 і ўPУ  Ѓ─ Іъ4 ѕ  є4 Іъ4 ┆
0x001280…0012a0             8a 07 88 86 da fe 0a c0 75 ca eb 0b 8b 9e 34 ff ff 8e 34 ff c6 07 00 8b 9e 34 ff 80 3f 2e 75 ec   ┆і ѕє┌■ └u╩в Іъ4  ј4 к  Іъ4 ђ?.uВ┆
0x0012a0…0012c0             c6 07 20 ff b6 34 ff e8 a3 01 83 c4 02 eb 0f 80 be da fe 2f 74 16 8b 86 34 ff ff 8e 34 ff 8b 9e   ┆к   Х4 УБ Ѓ─ в ђЙ┌■/t Іє4  ј4 Іъ┆
0x0012c0…0012e0             34 ff 8a 07 88 86 da fe 3c 5c 75 e3 f6 86 2e ff 80 74 1b f6 86 2c ff 80 74 14 ff 86 34 ff ff b6   ┆4 і ѕє┌■<\uсШє. ђt Шє, ђt  є4  Х┆
0x0012e0…001300             34 ff ff 76 fe e8 16 01 83 c4 04 e8 1a 03 f6 86 2c ff 80 75 69 c7 46 fe 15 00 ff 86 34 ff ff b6   ┆4  v■У  Ѓ─ У  Шє, ђuiКF■   є4  Х┆
0x001300…001320             34 ff b8 15 00 50 e8 f5 00 83 c4 04 83 7e fe 15 75 4c c7 46 fe 17 00 eb 2b 83 be 30 ff ff 75 11   ┆4 И  PУш Ѓ─ Ѓ~■ uLКF■  в+ЃЙ0  u ┆
0x001320…001340             b8 36 00 50 b8 a8 00 50 e8 48 03 83 c4 04 e8 f8 00 ff b6 30 ff 8d 86 dc fe 50 b8 01 00 50 e8 4a   ┆И6 PИе PУH Ѓ─ УЭ  Х0 Їє▄■PИ  PУJ┆
0x001340…001360             04 83 c4 06 b8 50 00 50 8d 86 dc fe 50 ff 76 fe e8 be 00 83 c4 06 89 86 30 ff 0b c0 75 bb f6 86   ┆ Ѓ─ ИP PЇє▄■P v■УЙ Ѓ─ Ѕє0  └u╗Шє┆
0x001360…001380             2e ff 80 74 03 e9 92 00 c7 46 fe 16 00 ff 86 34 ff ff b6 34 ff b8 16 00 50 e8 82 00 83 c4 04 83   ┆. ђt жњ КF■   є4  Х4 И  PУѓ Ѓ─ Ѓ┆
0x001380…0013a0             7e fe 16 75 75 c7 46 fe 18 00 eb 2a 83 be 30 ff ff 75 11 b8 61 00 50 b8 a8 00 50 e8 d5 02 83 c4   ┆~■ uuКF■  в*ЃЙ0  u Иa PИе PУН Ѓ─┆
0x0013a0…0013c0             04 e8 85 00 ff b6 30 ff 8d 86 dc fe 50 ff 76 fe e8 5e 00 83 c4 06 b8 50 00 50 8d 86 dc fe 50 2b   ┆ УЁ  Х0 Їє▄■P v■У^ Ѓ─ ИP PЇє▄■P+┆
0x0013c0…0013e0             c0 50 e8 e5 02 83 c4 06 89 86 30 ff 0b c0 75 bc eb 14 c7 86 30 ff 00 00 81 be 30 ff 10 27 7d 06   ┆└PУт Ѓ─ Ѕє0  └u╝в Кє0   ЂЙ0  '} ┆
0x0013e0…001400             ff 86 30 ff eb f2 2b c0 50 8d 86 dc fe 50 ff 76 fe e8 1d 00 83 c4 06 40 74 d8 8b e5 5d c3 55 8b   ┆ є0 вЫ+└PЇє▄■P v■У  Ѓ─ @tпІт]├UІ┆
0x001400…001420 (0, 0, 11)  ec 8a 46 04 8b 5e 06 06 1e 07 ba e0 fc ee 07 5d c3 55 8b ec 8a 46 04 8b 5e 06 51 8b 4e 08 06 1e   ┆ВіF І^    ║ЯЧЬ ]├UІВіF І^ QІN   ┆
0x001420…001440             07 ba e0 fc ee 59 07 5d c3 cd 1b b8 01 4c cd 21 55 8b ec 8b 5e 04 8b 46 06 8b 56 08 8b 4e 0a b4   ┆ ║ЯЧЬY ]├═ И L═!UІВІ^ ІF ІV ІN ┤┆
0x001440…001460             44 cd 21 72 04 8b c2 5d c3 f7 d8 eb fa 55 8b ec 1e 56 57 8c d8 8e c0 8b 7e 04 be 80 00 b4 62 cd   ┆D═!r І┬]├эпвЩUІВ VWїпј└І~ Йђ ┤b═┆
0x001460…001480             21 8e db fc ac 32 e4 8b c8 f3 a4 26 c6 05 00 5f 5e 1f 5d c3 55 8b ec 06 56 57 b4 62 cd 21 8e c3   ┆!ј█Чг2СІ╚зц&к  _^ ]├UІВ VW┤b═!ј├┆
0x001480…0014a0             26 8b 1e 2c 00 8e c3 be 00 00 26 8a 04 46 84 c0 75 f8 26 8a 04 84 c0 75 f1 8b 5e 04 83 c6 03 26   ┆&І , ј├Й  &і Fё└uЭ&і ё└uыІ^ Ѓк &┆
0x0014a0…0014c0             8a 04 46 88 07 43 84 c0 75 f5 5f 5e 07 5d c3 b4 30 cd 21 3c 02 73 0e b8 04 00 50 e8 30 05 92 b4   ┆і Fѕ Cё└uш_^ ]├┤0═!< s И  PУ0 њ┤┆
0x0014c0…0014e0             09 cd 21 cd 20 bf 6f 01 8b 36 02 00 2b f7 81 fe 00 10 72 03 be 00 10 fa 8e d7 81 c4 ce 08 fb 73   ┆ ═!═ ┐o І6  +эЂ■  r Й  ЩјОЂ─╬ чs┆
0x0014e0…001500             0b 33 c0 50 e8 37 05 b8 ff 4c cd 21 81 e4 fe ff 36 89 26 aa 01 36 89 26 a8 01 8b c6 b1 04 d3 e0   ┆ 3└PУ7 И L═!ЂС■ 6Ѕ&ф 6Ѕ&е Ік▒ МЯ┆
0x001500…001520             48 36 a3 a6 01 03 f7 89 36 02 00 8c c3 2b de f7 db b4 4a cd 21 36 8c 1e 1a 02 16 07 fc bf a8 04   ┆H6Бд  эЅ6  ї├+яэ█┤J═!6ї     Ч┐е ┆
0x001520…001540             b9 d0 08 2b cf 33 c0 f3 aa 16 1f e8 2b 00 16 1f e8 23 0d e8 05 0e 33 ed ff 36 38 02 ff 36 36 02   ┆╣л +¤3└зф  У+   У# У  3ь 68  66 ┆
0x001540…001560             ff 36 34 02 e8 c9 fc 50 e8 bd 00 b8 03 00 50 e8 cc 04 b8 ff 00 50 e8 c6 00 b4 30 cd 21 a3 1c 02   ┆ 64 У╔ЧPУй И  PУ╠ И  PУк ┤0═!Б  ┆
0x001560…001580             bb 04 00 b8 00 44 cd 21 72 0a f6 c2 80 74 05 80 8f 20 02 40 4b 79 ec b8 00 35 cd 21 89 1e 08 02   ┆╗  И D═!r Ш┬ђt ђЈ  @KyВИ 5═!Ѕ   ┆
0x001580…0015a0             8c 06 0a 02 0e 1f b8 00 25 ba 4b 03 cd 21 16 1f 8b 0e 94 03 e3 27 8e 06 1a 02 26 8b 36 2c 00 c5   ┆ї     И %║K ═!  І ћ с'ј   &І6, ┼┆
0x0015a0…0015c0             06 96 03 8c da 33 db 36 ff 1e 92 03 36 c5 06 9a 03 8c da bb 03 00 36 ff 1e 92 03 16 1f 8e 06 1a   ┆ ќ ї┌3█6  њ 6┼ џ ї┌╗  6  њ   ј  ┆
0x0015c0…0015e0             02 26 8b 0e 2c 00 e3 34 8e c1 33 ff 26 80 3d 00 74 2a b9 0c 00 be fc 01 f3 a6 74 0b b9 ff 7f 33   ┆ &І , с4ј┴3 &ђ= t*╣  ЙЧ здt ╣  3┆
0x0015e0…001600             c0 f2 ae 75 17 eb e5 06 1e 07 1f 8b f7 bf 20 02 ac 98 91 ac fe c0 74 01 48 aa e2 f7 16 1f be 9e   ┆└Ы«u вт    Іэ┐  гўЉг■└t HфРэ  Йъ┆
0x001600…001620 (0, 0, 12)  03 bf 9e 03 e8 5d 00 c3 55 8b ec be ce 04 bf ce 04 e8 50 00 be 9e 03 bf a0 03 e8 47 00 eb 03 55   ┆ ┐ъ У] ├UІВЙ╬ ┐╬ УP Йъ ┐а УG в U┆
0x001620…001640             8b ec be a0 03 bf a0 03 e8 39 00 e8 5c 03 b9 14 00 33 db f6 87 20 02 01 74 04 b4 3e cd 21 43 e2   ┆ІВЙа ┐а У9 У\ ╣  3█ШЄ   t ┤>═!CР┆
0x001640…001660             f2 e8 07 00 8b 46 04 b4 4c cd 21 8b 0e 94 03 e3 07 bb 02 00 ff 1e 92 03 1e c5 16 08 02 b8 00 25   ┆ЫУ  ІF ┤L═!І ћ с ╗    њ  ┼   И %┆
0x001660…001680             cd 21 1f c3 3b f7 73 0a 4f 4f 8b 0d e3 f6 ff d1 eb f2 c3 55 8b ec 83 ec 04 57 56 ff 76 04 e8 e4   ┆═! ├;эs OOІ сШ ЛвЫ├UІВЃВ WV v УС┆
0x001680…0016a0             01 83 c4 02 8b f0 8d 46 08 50 ff 76 06 ff 76 04 e8 b4 03 83 c4 06 8b f8 ff 76 04 56 e8 65 02 83   ┆ Ѓ─ І ЇF P v  v У┤ Ѓ─ ІЭ v VУe Ѓ┆
0x0016a0…0016c0             c4 04 8b c7 5e 5f 8b e5 5d c3 55 8b ec 8b 5e 04 f6 87 20 02 02 74 05 33 c0 e9 f2 02 8b 4e 08 8b   ┆─ ІК^_Іт]├UІВІ^ ШЄ   t 3└жЫ ІN І┆
0x0016c0…0016e0             56 06 b4 3f cd 21 73 04 b4 09 eb 2f f6 87 20 02 80 74 28 56 57 fc 8b f2 8b fa 8b c8 e3 1b b4 0d   ┆V ┤?═!s ┤ в/ШЄ  ђt(VWЧІЫІЩІ╚с ┤ ┆
0x0016e0…001700             ac 3a c4 74 1d 3c 1a 75 07 80 8f 20 02 02 eb 05 88 05 47 e2 eb 8b c7 2b c2 5f 5e e9 b0 02 8b e5   ┆г:─t < u ђЈ   в ѕ GРвІК+┬_^ж░ Іт┆
0x001700…001720             5d c3 83 f9 01 74 07 80 3c 0a 74 e7 eb e2 f6 87 20 02 40 74 19 b8 00 44 cd 21 f7 c2 20 00 75 0a   ┆]├Ѓщ t ђ< tувРШЄ  @t И D═!э┬  u ┆
0x001720…001740             8d 16 44 02 b4 3f cd 21 72 cf b0 0a eb 2f c6 06 44 02 00 8d 16 44 02 b4 3f cd 21 72 bc 0b c0 74   ┆Ї D ┤?═!r¤░ в/к D  Ї D ┤?═!r╝ └t┆
0x001740…001760             1a 83 7e 08 01 74 20 b9 ff ff 8b d1 b8 01 42 cd 21 b9 01 00 80 3e 44 02 0a 74 07 b0 0d 8b 56 06   ┆ Ѓ~  t ╣  ІЛИ B═!╣  ђ>D  t ░ ІV ┆
0x001760…001780             eb 8e 8b 56 06 eb 8c 80 3e 44 02 0a 75 d9 eb ba 55 8b ec 8b 5e 04 f6 87 49 02 01 74 07 8b c3 05   ┆вјІV вїђ>D  u┘в║UІВІ^ ШЄI  t І├ ┆
0x001780…0017a0             20 00 eb 03 8b 46 04 8b e5 5d c3 55 8b ec 8b 5e 04 f6 87 20 02 20 74 0e b8 02 42 33 c9 8b d1 cd   ┆  в ІF Іт]├UІВІ^ ШЄ   t И B3╔ІЛ═┆
0x0017a0…0017c0             21 73 03 e9 08 02 f6 87 20 02 80 75 03 e9 81 00 8b 4e 08 8b 56 06 1e 07 33 c0 fc 57 56 8b f0 8b   ┆!s ж  ШЄ  ђu жЂ ІN ІV   3└ЧWVІ І┆
0x0017c0…0017e0             fa e3 65 b8 0a 40 f2 ae 75 32 51 8b cf 2b ca 49 e3 10 cd 21 9c 03 f0 9d 73 04 b4 09 eb 49 0b c0   ┆ЩсeИ @Ы«u2QІ¤+╩Iс ═!ю  Юs ┤ вI └┆
0x0017e0…001800             74 2f 46 b9 02 00 ba 46 02 b4 40 cd 21 73 04 b4 09 eb 34 0b c0 74 1a 59 8b d7 eb c5 51 8b cf 2b   ┆t/F╣  ║F ┤@═!s ┤ в4 └t YІОв┼QІ¤+┆
0x001800…001820 (0, 0, 13)  ca cd 21 9c 03 f0 9d 73 04 b4 09 eb 1a 0b c0 75 16 f6 87 20 02 40 74 0b 8b 5e 06 80 3f 1a 75 03   ┆╩═!ю  Юs ┤ в  └u ШЄ  @t І^ ђ? u ┆
0x001820…001840             f8 eb 04 f9 b8 00 1c 59 72 02 8b c6 5e 5f e9 7d 01 8b 4e 08 0b c9 75 05 8b c1 e9 71 01 8b 56 06   ┆Эв щИ  Yr Ік^_ж} ІN  ╔u І┴жq ІV ┆
0x001840…001860             b4 40 cd 21 73 04 b4 09 eb e4 0b c0 75 e0 f6 87 20 02 40 74 0a 8b da 80 3f 1a 75 03 f8 eb cf f9   ┆┤@═!s ┤ вС └uЯШЄ  @t І┌ђ? u Эв¤щ┆
0x001860…001880             b8 00 1c eb c9 55 8b ec 57 56 8b 76 04 ff 06 74 03 81 fe 94 00 75 39 f6 44 06 0c 75 33 8a 44 07   ┆И  в╔UІВWVІv   t Ђ■ћ u9ШD  u3іD ┆
0x001880…0018a0             98 8b c8 d1 e0 03 c1 d1 e0 8b f8 f6 85 2c 01 01 75 1e c7 44 04 d0 04 c6 85 2c 01 01 c7 85 2e 01   ┆ўІ╚ЛЯ ┴ЛЯІЭШЁ,  u КD л кЁ,  КЁ. ┆
0x0018a0…0018c0             00 02 c7 44 02 00 02 c7 04 d0 04 b8 01 00 eb 4e 81 fe 9c 00 74 06 81 fe ac 00 75 40 f6 44 06 08   ┆  КD   К л И  вNЂ■ю t Ђ■г u@ШD  ┆
0x0018c0…0018e0             75 3a 8a 44 07 98 8b c8 d1 e0 03 c1 d1 e0 8b f8 f6 85 2c 01 01 75 25 81 3e 98 00 d0 04 74 1d c7   ┆u:іD ўІ╚ЛЯ ┴ЛЯІЭШЁ,  u%Ђ>ў л t К┆
0x0018e0…001900             44 04 d0 04 8a 44 06 98 a3 a8 04 c6 85 2c 01 01 c7 85 2e 01 00 02 80 64 06 fb eb a6 2b c0 5e 5f   ┆D л іD ўБе кЁ,  КЁ.   ђd чвд+└^_┆
0x001900…001920             8b e5 5d c3 55 8b ec 57 56 8b 76 06 83 7e 04 00 75 13 a1 98 00 39 44 04 75 0b 56 e8 c7 0b 83 c4   ┆Іт]├UІВWVІv Ѓ~  u Аў 9D u VУК Ѓ─┆
0x001920…001940             02 2b c0 eb 5f 83 7e 04 00 74 59 81 fe 94 00 75 18 8a 44 07 98 50 e8 14 0c 83 c4 02 0b c0 74 09   ┆ +└в_Ѓ~  tYЂ■ћ u іD ўPУ  Ѓ─  └t ┆
0x001940…001960             56 e8 a1 0b 83 c4 02 eb 1b 81 fe 9c 00 74 06 81 fe ac 00 75 2f 56 e8 8c 0b 83 c4 02 a0 a8 04 24   ┆VУА Ѓ─ в Ђ■ю t Ђ■г u/VУї Ѓ─ ае $┆
0x001960…001980             04 08 44 06 8a 44 07 98 8b c8 d1 e0 03 c1 d1 e0 8b f8 c6 85 2c 01 00 c7 85 2e 01 00 00 2b c0 89   ┆  D іD ўІ╚ЛЯ ┴ЛЯІЭкЁ,  КЁ.   +└Ѕ┆
0x001980…0019a0             04 89 44 04 5e 5f 8b e5 5d c3 56 33 f6 b9 36 00 32 e4 fc ac 32 e0 e2 fb 80 f4 55 74 07 b8 01 00   ┆ ЅD ^_Іт]├V3Ш╣6 2СЧг2ЯРчђЗUt И  ┆
0x0019a0…0019c0             50 e8 7a 00 5e c3 72 08 33 c0 8b e5 5d c3 73 06 e8 0d 00 b8 ff ff 8b e5 5d c3 32 e4 e8 01 00 c3   ┆PУz ^├r 3└Іт]├s У  И  Іт]├2СУ  ├┆
0x0019c0…0019e0             a2 1e 02 0a e4 75 23 80 3e 1c 02 03 72 0d 3c 22 73 0d 3c 20 72 05 b0 05 eb 07 90 3c 13 76 02 b0   ┆б   Сu#ђ>   r <"s < r ░ в љ< v ░┆
0x0019e0…001a00             13 bb 4a 03 d7 98 a3 14 02 c3 8a c4 eb f7 55 8b ec 56 57 b8 6f 01 8e d8 1e 07 8b 56 04 be a8 03   ┆ ╗J ОўБ  ├і─вэUІВVWИo јп  ІV Йе ┆
0x001a00…001a20 (0, 0, 14)  ad 3b c2 74 10 40 96 74 0c 97 33 c0 b9 ff ff f2 ae 8b f7 eb eb 96 5f 5e 8b e5 5d c2 02 00 55 8b   ┆Г;┬t @ќt Ќ3└╣  Ы«Іэввќ_^Іт]┬  UІ┆
0x001a20…001a40             ec 57 ff 76 04 e8 c6 ff 0b c0 74 14 92 8b fa 33 c0 b9 ff ff f2 ae f7 d1 49 bb 02 00 b4 40 cd 21   ┆ВW v Ук  └t њІЩ3└╣  Ы«эЛI╗  ┤@═!┆
0x001a40…001a60             5f 8b e5 5d c2 02 00 55 8b ec b8 62 01 e8 7c 0a 57 56 8b 76 06 8d 86 a2 fe a3 b8 04 8b 46 08 a3   ┆_Іт]┬  UІВИb У| WVІv Їєб■БИ ІF Б┆
0x001a60…001a80             b4 04 8b 46 04 a3 ae 04 c7 06 c6 04 00 00 c7 06 c4 04 00 00 e9 39 02 80 3c 25 74 03 e9 c8 01 c7   ┆┤ ІF Б« К к   К ─   ж9 ђ<%t ж╚ К┆
0x001a80…001aa0             06 be 04 01 00 2b c0 a3 bc 04 a3 aa 04 a3 c0 04 a3 b2 04 a3 b6 04 a3 ac 04 a3 b0 04 a3 ca 04 a3   ┆ Й   +└Б╝ Бф Б└ Б▓ БХ Бг Б░ Б╩ Б┆
0x001aa0…001ac0             cc 04 c7 06 ba 04 20 00 80 7c 01 30 75 3b 46 c7 06 ba 04 30 00 eb 32 80 3c 2d 75 06 ff 06 cc 04   ┆╠ К ║   ђ| 0u;FК ║ 0 в2ђ<-u   ╠ ┆
0x001ac0…001ae0             eb 27 80 3c 2b 75 0c ff 06 bc 04 c7 06 ac 04 00 00 eb 16 80 3c 20 75 0d 83 3e bc 04 00 75 0a ff   ┆в'ђ<+u   ╝ К г   в ђ< u Ѓ>╝  u  ┆
0x001ae0…001b00             06 ac 04 eb 04 ff 06 ca 04 46 8a 04 98 50 e8 3d 07 83 c4 02 0b c0 75 bf 56 b8 c2 04 50 e8 c3 06   ┆ г в   ╩ Fі ўPУ= Ѓ─  └u┐VИ┬ PУ├ ┆
0x001b00…001b20             83 c4 04 8b f0 80 3c 2e 75 12 ff 06 b6 04 46 56 b8 be 04 50 e8 ac 06 83 c4 04 8b f0 8a 04 98 3d   ┆Ѓ─ І ђ<.u   Х FVИЙ PУг Ѓ─ І і ў=┆
0x001b20…001b40             46 00 74 39 3d 4e 00 74 3c 3d 68 00 74 27 3d 6c 00 74 07 3d 70 00 74 25 eb 06 c7 06 b2 04 02 00   ┆F t9=N t<=h t'=l t =p t%в К ▓   ┆
0x001b40…001b60             83 3e b2 04 00 74 06 80 3c 70 74 01 46 80 3c 00 75 1b e9 63 01 c7 06 b2 04 01 00 eb e3 c7 06 b2   ┆Ѓ>▓  t ђ<pt Fђ< u жc К ▓   всК ▓┆
0x001b60…001b80             04 10 00 eb db c7 06 b2 04 08 00 eb d3 8a 04 98 89 86 9e fe 3d 45 00 74 0a 3d 47 00 74 05 3d 58   ┆   в█К ▓   вМі ўЅєъ■=E t =G t =X┆
0x001b80…001ba0             00 75 09 ff 06 aa 04 83 86 9e fe 20 8b 86 9e fe 2d 63 00 3d 15 00 76 03 e9 a2 00 03 c0 93 2e ff   ┆ u   ф Ѓєъ■ Ієъ■-c =  v жб  └Њ. ┆
0x001ba0…001bc0             a7 4b 0a 8b 1e b4 04 8b 1f a1 c4 04 89 07 e9 c6 00 ff 06 c0 04 c7 06 ca 04 00 00 b8 0a 00 50 e8   ┆ДK І ┤ І А─ Ѕ жк   └ К ╩   И  PУ┆
0x001bc0…001be0             15 01 83 c4 02 e9 af 00 b8 08 00 eb f1 ff 06 b0 04 c7 06 be 04 04 00 ff 06 aa 04 ff 06 b6 04 83   ┆  Ѓ─ ж» И  вы  ░ К Й     ф   Х Ѓ┆
0x001be0…001c00             3e b2 04 02 74 07 83 3e b2 04 10 75 35 c7 06 b2 04 00 00 83 06 b4 04 02 b8 10 00 50 e8 d8 00 83   ┆>▓  t Ѓ>▓  u5К ▓   Ѓ ┤  И  PУп Ѓ┆
0x001c00…001c20 (0, 0, 15)  c4 02 b8 3a 00 50 e8 87 03 83 c4 02 83 2e b4 04 04 b8 10 00 50 e8 bf 00 83 c4 02 83 06 b4 04 02   ┆─ И: PУЄ Ѓ─ Ѓ.┤  И  PУ┐ Ѓ─ Ѓ ┤  ┆
0x001c20…001c40             eb 55 b8 10 00 eb 97 2b c0 50 e8 df 01 eb 93 b8 01 00 eb f5 ff b6 9e fe e8 b5 02 eb 85 83 3e b2   ┆вUИ  вЌ+└PУ▀ вЊИ  вш Хъ■Ух вЁЃ>▓┆
0x001c40…001c60             04 00 74 03 8b c6 4e 8b fe eb 4e 2f 0a b5 09 34 0a 34 0a 34 0a 3d 0a b5 09 3d 0a 3d 0a 3d 0a 3d   ┆  t ІкNІ■вN/ х 4 4 4 = х = = = =┆
0x001c60…001c80             0a a3 09 c8 09 cd 09 3d 0a 3d 0a 27 0a 3d 0a b1 09 3d 0a 3d 0a 22 0a 83 3e c6 04 00 74 13 83 3e   ┆ Б ╚ ═ = = ' = ▒ = = " Ѓ>к  t Ѓ>┆
0x001c80…001ca0             c4 04 00 75 49 8b 1e ae 04 f6 47 06 20 75 3a eb 3d 46 eb 1c 80 3d 25 74 06 47 80 3d 00 75 f5 8b   ┆─  uIІ « ШG  u:в=Fв ђ=%t Gђ= uшІ┆
0x001ca0…001cc0             c7 2b c6 50 8b c6 1e 50 e8 93 03 83 c4 06 8b f7 80 3c 00 74 03 e9 bf fd 83 3e c4 04 00 75 0f 8b   ┆К+кPІк PУЊ Ѓ─ Іэђ< t ж┐§Ѓ>─  u І┆
0x001cc0…001ce0             1e ae 04 f6 47 06 20 74 05 b8 ff ff eb 03 a1 c4 04 5e 5f 8b e5 5d c3 55 8b ec b8 18 00 e8 ec 07   ┆ « ШG  t И  в А─ ^_Іт]├UІВИ  УВ ┆
0x001ce0…001d00             57 56 83 7e 04 0a 74 04 ff 06 c0 04 83 3e b2 04 02 74 07 83 3e b2 04 10 75 16 8b 1e b4 04 8b 07   ┆WVЃ~  t   └ Ѓ>▓  t Ѓ>▓  u І ┤ І ┆
0x001d00…001d20             8b 57 02 89 46 f8 89 56 fa 83 06 b4 04 04 eb 29 83 3e c0 04 00 74 10 8b 1e b4 04 8b 07 89 46 f8   ┆ІW ЅFЭЅVЩЃ ┤  в)Ѓ>└  t І ┤ І ЅFЭ┆
0x001d20…001d40             c7 46 fa 00 00 eb 0d 8b 1e b4 04 8b 07 99 89 46 f8 89 56 fa 83 06 b4 04 02 83 3e ca 04 00 74 0d   ┆КFЩ  в І ┤ І ЎЅFЭЅVЩЃ ┤  Ѓ>╩  t ┆
0x001d40…001d60             8b 46 f8 0b 46 fa 74 05 8b 46 04 eb 02 2b c0 a3 c8 04 8b 36 b8 04 83 3e c0 04 00 75 2a 83 7e fa   ┆ІFЭ FЩt ІF в +└Б╚ І6И Ѓ>└  u*Ѓ~Щ┆
0x001d60…001d80             00 7d 24 83 7e 04 0a 75 17 c6 04 2d 46 8b 46 f8 8b 56 fa f7 d8 83 d2 00 f7 da 89 46 f8 89 56 fa   ┆ }$Ѓ~  u к -FІFЭІVЩэпЃм э┌ЅFЭЅVЩ┆
0x001d80…001da0             c7 46 f6 01 00 eb 05 c7 46 f6 00 00 8b fd 83 ef 18 ff 76 04 57 ff 76 fa ff 76 f8 e8 2e 08 83 c4   ┆КFШ  в КFШ  І§Ѓ№  v W vЩ vЭУ. Ѓ─┆
0x001da0…001dc0             08 83 3e b6 04 00 74 20 57 e8 05 08 83 c4 02 8b 0e be 04 2b c8 89 4e fe eb 04 c6 04 30 46 8b 46   ┆ Ѓ>Х  t WУ  Ѓ─ І Й +╚ЅN■в к 0FІF┆
0x001dc0…001de0             fe ff 4e fe 0b c0 7f f2 8a 05 88 04 83 3e aa 04 00 74 07 3c 61 7c 03 80 2c 20 46 47 80 7d ff 00   ┆■ N■ └ Ыі ѕ Ѓ>ф  t <a| ђ, FGђ}  ┆
0x001de0…001e00             75 e6 83 3e c0 04 00 75 14 a1 bc 04 0b 06 ac 04 74 0b 83 7e f6 00 75 05 b8 01 00 eb 02 2b c0 50   ┆uТЃ>└  u А╝   г t Ѓ~Ш u И  в +└P┆
0x001e00…001e20 (0, 1, 1)   e8 a6 02 83 c4 02 5e 5f 8b e5 5d c3 55 8b ec b8 10 00 e8 b7 06 57 56 c7 06 ba 04 20 00 83 7e 04   ┆Уд Ѓ─ ^_Іт]├UІВИ  Уи WVК ║   Ѓ~ ┆
0x001e20…001e40             00 74 14 be 01 00 a1 b4 04 89 46 f4 8c 5e f6 83 06 b4 04 02 e9 84 00 83 3e b2 04 10 75 16 8b 1e   ┆ t Й  А┤ ЅFЗї^ШЃ ┤  жё Ѓ>▓  u І ┆
0x001e40…001e60             b4 04 8b 07 8b 57 02 89 46 f4 89 56 f6 83 06 b4 04 04 eb 14 8b 1e b4 04 8b 07 89 46 f8 89 46 f4   ┆┤ І ІW ЅFЗЅVШЃ ┤  в І ┤ І ЅFЭЅFЗ┆
0x001e60…001e80             8c 5e f6 83 06 b4 04 02 83 3e b2 04 10 75 0d 8b 46 f4 0b 46 f6 75 14 b8 5e 03 eb 09 83 7e f8 00   ┆ї^ШЃ ┤  Ѓ>▓  u ІFЗ FШu И^ в Ѓ~Э ┆
0x001e80…001ea0             75 09 b8 65 03 89 46 f4 8c 5e f6 8b 46 f4 8b 56 f6 89 46 fc 89 56 fe 2b f6 eb 04 ff 46 fc 46 c4   ┆u Иe ЅFЗї^ШІFЗІVШЅFЧЅV■+Шв  FЧF─┆
0x001ea0…001ec0             5e fc 26 80 3f 00 75 f3 83 3e b6 04 00 74 0c 8b c6 3b 06 be 04 76 04 8b 36 be 04 8b 3e c2 04 2b   ┆^Ч&ђ? uзЃ>Х  t Ік; Й v І6Й І>┬ +┆
0x001ec0…001ee0             fe 83 3e cc 04 00 75 07 57 e8 0d 01 83 c4 02 56 ff 76 f6 ff 76 f4 e8 65 01 83 c4 06 83 3e cc 04   ┆■Ѓ>╠  u WУ  Ѓ─ V vШ vЗУe Ѓ─ Ѓ>╠ ┆
0x001ee0…001f00             00 74 07 57 e8 f2 00 83 c4 02 5e 5f 8b e5 5d c3 55 8b ec b8 02 00 e8 d3 05 a1 b4 04 89 46 fe 83   ┆ t WУЫ Ѓ─ ^_Іт]├UІВИ  УМ А┤ ЅF■Ѓ┆
0x001f00…001f20             3e b6 04 00 75 06 c7 06 be 04 06 00 ff 36 aa 04 ff 36 be 04 ff 76 04 ff 36 b8 04 ff 76 fe e8 c1   ┆>Х  u К Й    6ф  6Й  v  6И  v■У┴┆
0x001f20…001f40             05 83 c4 0a 83 7e 04 67 74 06 83 7e 04 47 75 18 83 3e ca 04 00 75 11 83 3e be 04 00 74 0a ff 36   ┆ Ѓ─ Ѓ~ gt Ѓ~ Gu Ѓ>╩  u Ѓ>Й  t  6┆
0x001f40…001f60             b8 04 e8 9d 05 83 c4 02 83 3e ca 04 00 74 11 83 3e be 04 00 75 0a ff 36 b8 04 e8 85 05 83 c4 02   ┆И УЮ Ѓ─ Ѓ>╩  t Ѓ>Й  u  6И УЁ Ѓ─ ┆
0x001f60…001f80             83 06 b4 04 08 c7 06 c8 04 00 00 a1 bc 04 0b 06 ac 04 74 12 ff 76 fe e8 68 05 83 c4 02 0b c0 74   ┆Ѓ ┤  К ╚   А╝   г t  v■Уh Ѓ─  └t┆
0x001f80…001fa0             05 b8 01 00 eb 02 2b c0 50 e8 1d 01 8b e5 5d c3 55 8b ec 33 c0 e8 34 05 56 83 3e c6 04 00 75 34   ┆ И  в +└PУ  Іт]├UІВ3└У4 VЃ>к  u4┆
0x001fa0…001fc0             8b 1e ae 04 ff 4f 02 78 11 8a 46 04 8b 1e ae 04 8b 37 ff 07 88 04 2a e4 eb 0d ff 36 ae 04 ff 76   ┆І «  O x іF І « І7  ѕ *Св  6«  v┆
0x001fc0…001fe0             04 e8 dd 03 83 c4 04 40 75 06 ff 06 c6 04 eb 04 ff 06 c4 04 5e 8b e5 5d c3 55 8b ec b8 02 00 e8   ┆ УП Ѓ─ @u   к в   ─ ^Іт]├UІВИ  У┆
0x001fe0…002000             ea 04 57 56 83 3e c6 04 00 75 4d 8b 76 04 0b f6 7e 46 eb 2f 8b 1e ae 04 ff 4f 02 78 11 a0 ba 04   ┆Ж WVЃ>к  uMІv  Ш~Fв/І «  O x а║ ┆
0x002000…002020 (0, 1, 2)   8b 1e ae 04 8b 3f ff 07 88 05 2a e4 eb 0e ff 36 ae 04 ff 36 ba 04 e8 88 03 83 c4 04 40 75 04 ff   ┆І « І?  ѕ *Св  6«  6║ Уѕ Ѓ─ @u  ┆
0x002020…002040             06 c6 04 8b c6 4e 0b c0 7f ca 83 3e c6 04 00 75 07 8b 46 04 01 06 c4 04 5e 5f 8b e5 5d c3 55 8b   ┆ к ІкN └ ╩Ѓ>к  u ІF   ─ ^_Іт]├UІ┆
0x002040…002060             ec b8 02 00 e8 85 04 57 56 8b 76 08 83 3e c6 04 00 75 50 eb 39 8b 1e ae 04 ff 4f 02 78 14 c4 5e   ┆ВИ  УЁ WVІv Ѓ>к  uPв9І «  O x ─^┆
0x002060…002080             04 26 8a 07 8b 1e ae 04 8b 3f ff 07 88 05 2a e4 eb 12 ff 36 ae 04 c4 5e 04 26 8a 07 98 50 e8 20   ┆ &і І « І?  ѕ *Св  6« ─^ &і ўPУ ┆
0x002080…0020a0             03 83 c4 04 40 75 04 ff 06 c6 04 ff 46 04 8b c6 4e 0b c0 75 c0 83 3e c6 04 00 75 07 8b 46 08 01   ┆ Ѓ─ @u   к  F ІкN └u└Ѓ>к  u ІF  ┆
0x0020a0…0020c0             06 c4 04 5e 5f 8b e5 5d c3 55 8b ec b8 0a 00 e8 1a 04 57 56 8b 36 b8 04 2b c0 89 46 fc 89 46 f8   ┆ ─ ^_Іт]├UІВИ  У  WVІ6И +└ЅFЧЅFЭ┆
0x0020c0…0020e0             8b 3e c2 04 56 e8 e9 04 83 c4 02 89 46 fa 2b f8 2b 7e 04 83 3e cc 04 00 75 18 80 3c 2d 75 13 83   ┆І>┬ VУж Ѓ─ ЅFЩ+Э+~ Ѓ>╠  u ђ<-u Ѓ┆
0x0020e0…002100             3e ba 04 30 75 0c ac 98 50 e8 a4 fe 83 c4 02 ff 4e fa 83 3e ba 04 30 74 0b 0b ff 7e 07 83 3e cc   ┆>║ 0u гўPУц■Ѓ─  NЩЃ>║ 0t   ~ Ѓ>╠┆
0x002100…002120             04 00 74 19 83 7e 04 00 74 06 ff 46 f8 e8 61 00 83 3e c8 04 00 74 06 ff 46 fc e8 73 00 83 3e cc   ┆  t Ѓ~  t  FЭУa Ѓ>╚  t  FЧУs Ѓ>╠┆
0x002120…002140             04 00 75 26 57 e8 b1 fe 83 c4 02 83 7e 04 00 74 09 83 7e f8 00 75 03 e8 37 00 83 3e c8 04 00 74   ┆  u&WУ▒■Ѓ─ Ѓ~  t Ѓ~Э u У7 Ѓ>╚  t┆
0x002140…002160             09 83 7e fc 00 75 03 e8 46 00 ff 76 fa 8b c6 1e 50 e8 ea fe 83 c4 06 83 3e cc 04 00 74 0d c7 06   ┆ Ѓ~Ч u УF  vЩІк PУЖ■Ѓ─ Ѓ>╠  t К ┆
0x002160…002180             ba 04 20 00 57 e8 71 fe 83 c4 02 5e 5f 8b e5 5d c3 55 8b ec 33 c0 e8 53 03 83 3e bc 04 00 74 05   ┆║   WУq■Ѓ─ ^_Іт]├UІВ3└УS Ѓ>╝  t ┆
0x002180…0021a0             b8 2b 00 eb 03 b8 20 00 50 e8 04 fe 8b e5 5d c3 55 8b ec 33 c0 e8 34 03 b8 30 00 50 e8 f1 fd 83   ┆И+ в И  PУ ■Іт]├UІВ3└У4 И0 PУы§Ѓ┆
0x0021a0…0021c0             c4 02 83 3e c8 04 10 75 16 83 3e aa 04 00 74 05 b8 58 00 eb 03 b8 78 00 50 e8 d4 fd 83 c4 02 8b   ┆─ Ѓ>╚  u Ѓ>ф  t ИX в Иx PУн§Ѓ─ І┆
0x0021c0…0021e0             e5 5d c3 55 8b ec b8 02 00 e8 00 03 57 56 8b 76 06 80 3c 2a 75 11 8b 1e b4 04 8a 07 98 8b f8 83   ┆т]├UІВИ  У  WVІv ђ<*u І ┤ і ўІЭЃ┆
0x0021e0…002200             06 b4 04 02 46 eb 3a 2b ff 80 3c 30 7c 33 80 3c 39 7f 2e 39 3e b6 04 75 0b 80 3c 30 75 06 c7 06   ┆ ┤  Fв:+ ђ<0|3ђ<9 .9>Х u ђ<0u К ┆
0x002200…002220 (0, 1, 3)   ba 04 30 00 ac 98 8b cf d1 e1 d1 e1 03 cf d1 e1 03 c8 83 e9 30 8b f9 80 3c 30 7c 05 80 3c 39 7e   ┆║ 0 гўІ¤ЛрЛр ¤Лр ╚Ѓж0Іщђ<0| ђ<9~┆
0x002220…002240             e3 8b 5e 04 89 3f 8b c6 5e 5f 8b e5 5d c3 55 8b ec b8 02 00 e8 95 02 56 be 6c 03 eb 0d 8a 04 38   ┆сІ^ Ѕ?Ік^_Іт]├UІВИ  УЋ VЙl в і 8┆
0x002240…002260             46 04 75 05 b8 01 00 eb 08 46 80 3c 00 75 ee 2b c0 5e 8b e5 5d c3 8f 06 72 03 8e 1e 1a 02 16 07   ┆F u И  в Fђ< uЬ+└^Іт]├Ј r ј     ┆
0x002260…002280             be 80 00 ac 98 26 80 3e 1c 02 03 72 45 50 8e 06 2c 00 33 c0 8b c8 f7 d1 8b f8 f2 ae 26 38 05 75   ┆Йђ гў&ђ>   rEPј , 3└І╚эЛІЭЫ«&8 u┆
0x002280…0022a0             f9 83 c7 03 8b c8 f7 d1 57 f2 ae 5e 83 c1 02 f7 d9 5b 8b c3 03 c1 05 03 00 25 fe ff 2b e0 8b fc   ┆щЃК І╚эЛWЫ«^Ѓ┴ э┘[І├ ┴   %■ +ЯІЧ┆
0x0022a0…0022c0             1e 06 1f 16 07 f3 a4 b0 20 aa 8b cb 1f be 81 00 eb 0e 8b c8 04 04 24 fe 2b e0 8b fc b8 43 20 ab   ┆     зц░ фІ╦ ЙЂ в І╚  $■+ЯІЧИC Ф┆
0x0022c0…0022e0             f3 a4 8b c1 aa 8b f4 16 1f 50 8b dc 8b fe ac 0a c0 74 20 e8 37 00 74 f4 4e 56 ff 06 34 02 ac e8   ┆зцІ┴фІЗ  PІ▄І■г └t У7 tЗNV  4 гУ┆
0x0022e0…002300             32 00 aa 0a c0 74 0c e8 23 00 75 f2 c6 45 ff 00 eb da aa 8b f4 4b 4b 3b f3 73 08 ad 87 07 89 44   ┆2 ф └t У# uЫкE  в┌фІЗKK;зs ГЄ ЅD┆
0x002300…002320             fe eb f2 8b dc 89 26 36 02 ff 26 72 03 3c 09 74 02 3c 20 c3 3c 5c 75 08 80 3c 22 75 03 ac eb 1a   ┆■вЫІ▄Ѕ&6  &r < t < ├<\u ђ<"u гв ┆
0x002320…002340             3c 22 75 16 ac 3c 0d 74 11 3c 22 75 07 80 7c fe 5c 75 04 4f aa eb ed ac eb da c3 55 8b ec 55 8e   ┆<"u г< t <"u ђ|■\u Oфвьгв┌├UІВUј┆
0x002340…002360             1e 1a 02 33 c9 8b c1 8b e9 8b f9 49 8b 36 2c 00 0b f6 74 08 8e c6 f2 ae 45 ae 75 fa 45 97 40 24   ┆   3╔І┴ІжІщIІ6,  Шt јкЫ«E«uЩEЌ@$┆
0x002360…002380             fe 8b fd d1 e5 03 c5 16 1f 57 bf 09 00 e8 ff 01 5f 8b cf 8b fd 03 f8 89 2e 38 02 1e 07 8e de 33   ┆■І§Лт ┼  W┐  У  _І¤І§ ЭЅ.8   јя3┆
0x002380…0023a0             f6 49 e3 13 81 3c 3b 43 74 05 89 7e 00 45 45 ac aa 0a c0 75 fa e2 ed 89 4e 00 16 1f 5d 8b e5 5d   ┆ШIс Ђ<;Ct Ѕ~ EEгф └uЩРьЅN   ]Іт]┆
0x0023a0…0023c0             c3 55 8b ec 83 ec 04 57 56 8b 76 06 f6 44 06 83 74 06 f6 44 06 40 74 0a 80 4c 06 20 b8 ff ff e9   ┆├UІВЃВ WVІv ШD Ѓt ШD @t ђL  И  ж┆
0x0023c0…0023e0             04 01 f6 44 06 01 75 f0 80 4c 06 02 80 64 06 ef 2b c0 89 44 02 8b f8 89 7e fe f6 44 06 08 75 13   ┆  ШD  u ђL  ђd №+└ЅD ІЭЅ~■ШD  u ┆
0x0023e0…002400             8a 44 07 98 8b d8 d1 e3 03 d8 d1 e3 f6 87 2c 01 01 74 40 8b 3c 2b 7c 04 8b 44 04 40 89 04 8a 44   ┆іD ўІпЛс пЛсШЄ,  t@І<+| ІD @Ѕ іD┆
0x002400…002420 (0, 1, 4)   07 98 8b d8 d1 e3 03 d8 d1 e3 8b 87 2e 01 48 89 44 02 0b ff 7e 12 57 ff 74 04 8a 44 07 98 50 e8   ┆ ўІпЛс пЛсІЄ. HЅD   ~ W t іD ўPУ┆
0x002420…002440             69 f3 83 c4 06 89 46 fe 8b 5c 04 8a 46 04 88 07 e9 86 00 f6 44 06 04 75 6a 81 fe 94 00 75 43 8a   ┆iзЃ─ ЅF■І\ іF ѕ жє ШD  ujЂ■ћ uCі┆
0x002440…002460             44 07 98 50 e8 06 01 83 c4 02 0b c0 75 51 ff 06 74 03 c7 44 04 d0 04 8a 44 07 98 8b d8 d1 e3 03   ┆D ўPУ  Ѓ─  └uQ  t КD л іD ўІпЛс ┆
0x002460…002480             d8 d1 e3 c6 87 2c 01 01 c7 04 d1 04 98 8b d8 d1 e3 03 d8 d1 e3 c7 87 2e 01 00 02 c7 44 02 ff 01   ┆пЛскЄ,  К Л ўІпЛс пЛсКЄ.   КD   ┆
0x002480…0024a0             eb a6 b8 00 02 50 e8 92 01 83 c4 02 89 44 04 0b c0 74 0c 80 4c 06 08 40 89 04 8a 44 07 eb cd 80   ┆вдИ  PУњ Ѓ─ ЅD  └t ђL  @Ѕ іD в═ђ┆
0x0024a0…0024c0             4c 06 04 bf 01 00 57 8d 46 04 50 8a 44 07 98 50 e8 d8 f2 83 c4 06 89 46 fe 39 7e fe 74 03 e9 f7   ┆L  ┐  WЇF PіD ўPУпЫЃ─ ЅF■9~■t жэ┆
0x0024c0…0024e0             fe 8a 46 04 2a e4 5e 5f 8b e5 5d c3 59 8b dc 2b d8 72 0a 3b 1e 76 03 72 04 8b e3 ff e1 33 c0 e9   ┆■іF *С^_Іт]├YІ▄+пr ; v r Іс р3└ж┆
0x0024e0…002500             6c f0 e8 f1 00 55 8b ec 83 ec 04 57 56 8b 76 04 2b ff 8a 44 06 24 03 3c 02 75 40 f6 44 06 08 75   ┆l Уы UІВЃВ WVІv + іD $ < u@ШD  u┆
0x002500…002520             13 8a 44 07 98 8b d8 d1 e3 03 d8 d1 e3 f6 87 2c 01 01 74 27 8b 04 2b 44 04 89 46 fc 0b c0 7e 1b   ┆ іD ўІпЛс пЛсШЄ,  t'І +D ЅFЧ └~ ┆
0x002520…002540             50 ff 74 04 8a 44 07 98 50 e8 5f f2 83 c4 06 3b 46 fc 74 07 80 4c 06 20 bf ff ff 8b 44 04 89 04   ┆P t іD ўPУ_ЫЃ─ ;FЧt ђL  ┐  ІD Ѕ ┆
0x002540…002560             c7 44 02 00 00 8b c7 5e 5f 8b e5 5d c3 55 8b ec 8b 5e 04 83 fb 14 7d 11 83 fb 00 7c 0c f6 87 20   ┆КD   ІК^_Іт]├UІВІ^ Ѓч } Ѓч | ШЄ ┆
0x002560…002580             02 40 74 05 b8 01 00 eb 02 33 c0 8b e5 5d c3 8b d0 03 06 aa 01 72 35 39 06 a6 01 73 25 05 0f 00   ┆ @t И  в 3└Іт]├Іл  ф r59 д s%   ┆
0x002580…0025a0             50 d1 d8 b1 03 d3 e8 8c d9 8b 1e 1a 02 2b cb 03 c1 8e c3 8b d8 b4 4a cd 21 58 72 10 24 f0 48 a3   ┆PЛп▒ МУї┘І   +╦ ┴ј├Іп┤J═!Xr $ HБ┆
0x0025a0…0025c0             a6 01 95 8b 2e aa 01 01 16 aa 01 c3 8b c7 e9 9d ef 55 8b ec 57 1e 07 8b 7e 04 33 c0 b9 ff ff f2   ┆д ЋІ.ф   ф ├ІКжЮ№UІВW  І~ 3└╣  Ы┆
0x0025c0…0025e0             ae 8b c1 40 40 f7 d8 5f 8b e5 5d c3 55 8b ec 56 57 b3 00 e9 8b 00 b8 02 00 e9 72 ef 55 8b ec 83   ┆«І┴@@эп_Іт]├UІВVW│ жІ И  жr№UІВЃ┆
0x0025e0…002600             ec 04 57 56 be 8c 00 2b ff eb 14 f6 44 06 83 74 0b 56 e8 f0 fe 83 c4 02 40 74 01 47 83 c6 08 39   ┆В WVЙї + в ШD Ѓt VУ ■Ѓ─ @t GЃк 9┆
0x002600…002620 (0, 1, 5)   36 a4 01 73 e6 8b c7 5e 5f 8b e5 5d c3 55 8b ec 8b 5e 04 80 4f fe 01 8b e5 5d c3 55 8b ec 56 57   ┆6ц sТІК^_Іт]├UІВІ^ ђO■ Іт]├UІВVW┆
0x002620…002640             bb 78 03 83 3f 00 75 29 1e 07 b8 05 00 e8 ce 01 75 05 33 c0 99 eb 24 40 24 fe a3 78 03 a3 7a 03   ┆╗x Ѓ? u)  И  У╬ u 3└Ўв$@$■Бx Бz ┆
0x002640…002660             96 c7 04 01 00 83 c6 04 c7 44 fe fe ff 89 36 7e 03 8b 4e 04 8c d8 8e c0 e8 66 00 5f 5e 8b e5 5d   ┆ќК   Ѓк КD■■ Ѕ6~ ІN їпј└Уf _^Іт]┆
0x002660…002680             c3 8b 4e 0a 8b 46 04 8b 56 06 8b 7e 08 57 1e 07 fc 93 0a c0 74 13 83 f9 0a 75 0e 0b d2 79 0a b0   ┆├ІN ІF ІV І~ W  ЧЊ └t Ѓщ u  мy ░┆
0x002680…0026a0             2d aa f7 db 83 d2 00 f7 da 8b f7 92 33 d2 0b c0 74 02 f7 f1 93 f7 f1 92 87 d3 04 30 3c 39 76 02   ┆-фэ█Ѓм э┌Іэњ3м └t эыЊэыњЄМ 0<9v ┆
0x0026a0…0026c0             04 27 aa 8b c2 0b c3 75 e2 88 05 4f ac 86 05 88 44 ff 4f 3b f7 72 f5 58 5f 5e 8b e5 5d c3 e9 cc   ┆ 'фІ┬ ├uРѕ Oгє ѕD O;эrшX_^Іт]├ж╠┆
0x0026c0…0026e0             00 83 f9 ee 73 f8 41 80 e1 fe 8b 77 02 fc ad 8b fe a8 01 74 42 48 3b c1 73 15 8b d0 03 f0 ad a8   ┆ ЃщЬsЭAђр■Іw ЧГІ■е tBH;┴s Іл  Ге┆
0x0026e0…002700             01 74 34 03 c2 05 02 00 8b f7 89 44 fe eb e6 8b fe 74 0c 03 f9 89 4c fe 2b c1 48 89 05 eb 05 03   ┆ t4 ┬   ІэЅD■вТІ■t  щЅL■+┴HЅ в  ┆
0x002700…002720             f9 fe 4c fe 8b c6 8c da 8c d1 3b d1 74 05 26 8c 1e 86 03 89 7f 02 c3 26 c6 06 8a 03 02 3d fe ff   ┆щ■L■Ікї┌їЛ;Лt &ї є Ѕ  ├&к і  =■ ┆
0x002720…002740             74 25 8b fe 03 f0 ad a8 01 74 f2 8b fe 48 3b c1 73 bd 8b d0 03 f0 ad a8 01 74 e2 03 c2 05 02 00   ┆t%І■  Ге tЫІ■H;┴sйІл  Ге tР ┬   ┆
0x002740…002760             8b f7 89 44 fe eb e6 8b 47 08 0b c0 74 04 8e d8 eb 14 26 fe 0e 8a 03 74 11 8c d8 8c d7 3b c7 74   ┆ІэЅD■вТІG  └t јпв &■ і t їпїО;Кt┆
0x002760…002780             05 26 8e 1e 82 03 8b 37 eb bc 8b 77 06 33 c0 e8 6a 00 3b c6 74 0d 24 01 40 40 98 e8 5e 00 74 0d   ┆ &ј ѓ І7в╝Іw 3└Уj ;кt $ @@ўУ^ t ┆
0x002780…0027a0             fe 4d fe e8 1c 00 74 05 96 4e 4e eb 99 8c d8 8c d1 3b c1 74 04 26 a3 86 03 8b 07 89 47 02 33 c0   ┆■M■У  t ќNNвЎїпїЛ;┴t &Бє І ЅG 3└┆
0x0027a0…0027c0             99 c3 51 8b 45 fe a8 01 74 03 2b c8 49 41 41 ba ff 7f 26 3b 16 88 03 76 04 d1 ea 75 f5 8b c1 03   ┆Ў├QІE■е t +╚IAA║  &; ѕ v ЛЖuшІ┴ ┆
0x0027c0…0027e0             c6 72 15 03 c2 72 0d f7 d2 23 c2 2b c6 e8 0c 00 75 08 f7 d2 d1 ea 75 e5 33 c0 59 c3 52 51 e8 1d   ┆кr  ┬r эм#┬+кУ  u эмЛЖuт3└Y├RQУ ┆
0x0027e0…002800             00 74 18 57 8b fe 8b f0 03 f2 c7 44 fe fe ff 89 77 06 8b d6 2b d7 4a 89 55 fe 58 59 5a c3 53 50   ┆ t WІ■І  ЫКD■■ Ѕw Іо+ОJЅU■XYZ├SP┆
0x002800…002820 (0, 1, 6)   33 d2 1e 52 52 50 b8 01 00 50 06 1f e8 0e 00 83 c4 08 83 fa ff 1f 5a 5b 74 02 0b d2 c3 55 8b ec   ┆3м RRPИ  P  У  Ѓ─ ЃЩ  Z[t  м├UІВ┆
0x002820…002840             56 57 06 83 7e 08 00 75 38 bf aa 01 8b 56 06 8b 46 04 48 75 07 e8 53 00 72 27 eb 48 8b 36 fa 01   ┆VW Ѓ~  u8┐ф ІV ІF Hu УS r'вHІ6Щ ┆
0x002840…002860             48 74 11 3b f7 74 0d 8b 44 02 89 46 0c 56 e8 3a 00 5e 73 30 83 c6 04 81 fe fa 01 73 04 0b d2 75   ┆Ht ;эt ІD ЅF VУ: ^s0Ѓк Ђ■Щ s  мu┆
0x002860…002880             06 b8 ff ff 99 eb 1d 8b da 83 c3 0f d1 db b1 03 d3 eb b4 48 cd 21 72 e9 92 89 04 89 54 02 89 36   ┆ И  Ўв І┌Ѓ├ Л█▒ Мв┤H═!rжњЅ ЅT Ѕ6┆
0x002880…0028a0             fa 01 33 c0 07 5f 5e 8b e5 5d c3 8b 4e 0c 8b f7 39 4c 02 74 0c 83 c6 04 81 fe fa 01 75 f2 f9 eb   ┆Щ 3└ _^Іт]├ІN Іэ9L t Ѓк Ђ■Щ uЫщв┆
0x0028a0…0028c0             3f 8b da 03 1c 72 39 8b d3 8e c1 3b f7 75 06 39 1e a6 01 73 26 83 c3 0f d1 db d1 eb d1 eb d1 eb   ┆?І┌  r9ІМј┴;эu 9 д s&Ѓ├ Л█ЛвЛвЛв┆
0x0028c0…0028e0             3b f7 75 09 03 d9 a1 1a 02 2b d8 8e c0 b4 4a cd 21 72 0d 3b f7 75 04 89 16 a6 01 92 87 04 8b d1   ┆;эu  ┘А  +пј└┤J═!r ;эu Ѕ д њЄ ІЛ┆
0x0028e0…002900             c3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 20 4c 69 62 72 61 72   ┆├                       C Librar┆
0x002900…002920             79 20 2d 20 28 43 29 43 6f 70 79 72 69 67 68 74 20 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 20   ┆y - (C)Copyright Microsoft Corp ┆
0x002920…002940             31 39 38 36 1f 00 50 69 70 69 6e 67 20 62 65 74 77 65 65 6e 20 56 50 2f 69 78 20 61 6e 64 20 74   ┆1986  Piping between VP/ix and t┆
0x002940…002960             68 65 20 53 68 65 6c 6c 20 46 41 49 4c 45 44 0a 00 50 69 70 69 6e 67 20 62 65 74 77 65 65 6e 20   ┆he Shell FAILED  Piping between ┆
0x002960…002980             56 50 2f 69 78 20 61 6e 64 20 74 68 65 20 53 68 65 6c 6c 20 46 41 49 4c 45 44 0a 00 d0 06 00 00   ┆VP/ix and the Shell FAILED  л   ┆
0x002980…0029a0             d0 06 01 00 00 00 00 00 00 00 02 01 00 00 00 00 00 00 06 02 00 00 00 00 00 00 84 03 00 00 00 00   ┆л                         ё     ┆
0x0029a0…0029c0             00 00 02 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x0029c0…0029e0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x002a00…002a20 (0, 1, 7)   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 02   ┆                                ┆
0x002a20…002a40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x2…]
0x002a80…002aa0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 01 00 00 00 00 00 00 6f 01 00 00   ┆                    $       o   ┆
0x002aa0…002ac0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x002ae0…002b00             00 00 00 00 00 00 00 00 00 00 aa 01 3b 43 5f 46 49 4c 45 5f 49 4e 46 4f 00 00 00 00 00 00 00 00   ┆          ф ;C_FILE_INFO        ┆
0x002b00…002b20             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 81 81 01 01 00 00 00 00 00 00 00 00 00 00 00   ┆                ЂЂЂ             ┆
0x002b20…002b40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 0a 00 20 20 20 20 20 20 20   ┆                                ┆
0x002b40…002b60             20 20 28 28 28 28 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 10 10 10 10 10 10   ┆  (((((                  H      ┆
0x002b60…002b80             10 10 10 10 10 10 10 10 10 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 10 81 81 81 81 81 81   ┆         ёёёёёёёёёё       ЂЂЂЂЂЂ┆
0x002b80…002ba0             01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 10 82 82 82 82 82 82   ┆                          ѓѓѓѓѓѓ┆
0x002ba0…002bc0             02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 00 00 00 00 00 00 00   ┆                                ┆
0x002bc0…002be0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x2…]
0x002c20…002c40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 02 02 18 0d   ┆                                ┆
0x002c40…002c60             09 0c 0c 0c 07 08 ff ff ff 12 0d 12 02 ff 28 6e 75 6c 6c 29 00 28 6e 75 6c 6c 29 00 2b 2d 20 23   ┆              (null) (null) +- #┆
0x002c60…002c80             00 00 00 00 00 00 d0 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00   ┆      л                         ┆
0x002c80…002ca0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 dc 13 3c 3c 4e 4d 53 47 3e 3e 01 00 0d 0a 65 72 72 6f   ┆              ▄ <<NMSG>>    erro┆
0x002ca0…002cc0             72 20 32 30 30 31 3a 20 4e 75 6c 6c 20 70 6f 69 6e 74 65 72 20 61 73 73 69 67 6e 6d 65 6e 74 0d   ┆r 2001: Null pointer assignment ┆
0x002cc0…002ce0             0a 00 00 00 0d 0a 65 72 72 6f 72 20 32 30 30 30 3a 20 53 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77   ┆      error 2000: Stack overflow┆
0x002ce0…002d00             0d 0a 00 03 00 0d 0a 65 72 72 6f 72 20 32 30 30 33 3a 20 49 6e 74 65 67 65 72 20 64 69 76 69 64   ┆       error 2003: Integer divid┆
0x002d00…002d20             65 20 62 79 20 30 0d 0a 00 04 00 0d 0a 65 72 72 6f 72 20 32 30 30 34 3a 20 44 4f 53 20 32 2e 30   ┆e by 0       error 2004: DOS 2.0┆
0x002d20…002d40             20 6f 72 20 6c 61 74 65 72 20 72 65 71 75 69 72 65 64 0d 0a 24 00 09 00 0d 0a 65 72 72 6f 72 20   ┆ or later required  $     error ┆
0x002d40…002d60             32 30 30 39 3a 20 4e 6f 74 20 65 6e 6f 75 67 68 20 73 70 61 63 65 20 66 6f 72 20 65 6e 76 69 72   ┆2009: Not enough space for envir┆
0x002d60…002d80             6f 6e 6d 65 6e 74 0d 0a 00 02 00 0d 0a 65 72 72 6f 72 20 32 30 30 32 3a 20 46 6c 6f 61 74 69 6e   ┆onment       error 2002: Floatin┆
0x002d80…002da0             67 20 70 6f 69 6e 74 20 6e 6f 74 20 6c 6f 61 64 65 64 0d 0a 00 ff ff ff 10 10 82 82 82 82 82 82   ┆g point not loaded        ѓѓѓѓѓѓ┆
0x002da0…002dc0             02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 00 00 00 00 00 00 00   ┆                                ┆
0x002dc0…002de0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x002e00…002e20 (0, 1, 9)   2e 2e 2f 73 77 32 31 30 33 2f 76 70 69 78 2f 76 70 69 78 2e 73 74 64 00 00 00 00 00 00 00 00 00   ┆../sw2103/vpix/vpix.std         ┆
0x002e20…002e40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x002e60…002e80             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x002e80…002ea0             20 20 20 32 33 31 32 20 20 35 32 36 35 32 33 36 34 37 36 20 20 31 30 30 31 33 00 20 00 00 00 00   ┆   2312  5265236476  10013      ┆
0x002ea0…002ec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x003000…003020 (0, 1, 10)  3b 20 40 28 23 29 76 70 69 78 2e 63 6e 66 09 31 2e 35 20 2d 20 38 38 2f 30 37 2f 32 35 0a 3b 0a   ┆; @(#)vpix.cnf 1.5 - 88/07/25 ; ┆
0x003020…003040             3b 20 56 50 2f 69 78 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 46 69 6c 65 0a 3b 0a 3b 0a 3b   ┆; VP/ix Configuration File ; ; ;┆
0x003040…003060             20 44 4f 53 20 44 45 56 49 43 45 09 09 55 4e 49 58 20 44 45 56 49 43 45 20 50 41 54 48 20 4e 41   ┆ DOS DEVICE  UNIX DEVICE PATH NA┆
0x003060…003080             4d 45 0a 0a 43 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 43 3a 0a 52 4f   ┆ME  C   /usr/vpix/defaults/C: RO┆
0x003080…0030a0             4d 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 0a 3b 45 47 41 52   ┆M   /usr/vpix/defaults/rom ;EGAR┆
0x0030a0…0030c0             4f 4d 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 65 67 61 09 3b   ┆OM   /usr/vpix/defaults/romega ;┆
0x0030c0…0030e0             20 6e 6f 74 20 66 6f 72 20 52 43 39 34 30 0a 56 47 41 52 4f 4d 09 09 09 2f 75 73 72 2f 76 70 69   ┆ not for RC940 VGAROM   /usr/vpi┆
0x0030e0…003100             78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 76 67 61 0a 43 4d 4f 53 09 09 09 2f 75 73 72 2f 76 70   ┆x/defaults/romvga CMOS   /usr/vp┆
0x003100…003120             69 78 2f 64 65 66 61 75 6c 74 73 2f 63 6d 6f 73 0a 42 4f 4f 54 49 4d 41 47 45 09 09 24 48 4f 4d   ┆ix/defaults/cmos BOOTIMAGE  $HOM┆
0x003120…003140             45 2f 76 70 69 78 2f 76 70 69 78 2e 69 6d 67 0a 0a 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67   ┆E/vpix/vpix.img  ; The following┆
0x003140…003160             20 65 6e 74 72 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 20 61 73 20 65 78 61 6d 70 6c 65 73   ┆ entries are provide as examples┆
0x003160…003180             0a 3b 20 66 6f 72 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 56 50 2f 69   ┆ ; for customization of the VP/i┆
0x003180…0031a0             78 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 74 68 65 20 66   ┆x environment  ; To access the f┆
0x0031a0…0031c0             6c 6f 70 70 79 20 61 73 20 64 72 69 76 65 20 41 3a 20 75 6e 63 6f 6d 6d 65 6e 74 20 6f 6e 65 20   ┆loppy as drive A: uncomment one ┆
0x0031c0…0031e0             6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a   ┆of the following. ; ; For 360K: ┆
0x0031e0…003200             3b 41 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 30 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20   ┆;A   /dev/rdsk/f0d9dt ; For 1.2 ┆
0x003200…003220 (0, 1, 11)  4d 65 67 3a 0a 3b 41 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 30 71 31 35 64 74 0a 3b 20 46 6f   ┆Meg: ;A   /dev/rdsk/f0q15dt ; Fo┆
0x003220…003240             72 20 68 69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 41 09 09 09 2f 64 65 76 2f 72   ┆r high-density 3.5": ;A   /dev/r┆
0x003240…003260             64 73 6b 2f 66 30 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 64 64 20 61 6e 20 61 64 64 69 74 69 6f   ┆dsk/f0q18dt  ; To add an additio┆
0x003260…003280             6e 61 6c 20 50 73 65 75 64 6f 2d 46 6c 6f 70 70 79 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73   ┆nal Pseudo-Floppy (accessible as┆
0x003280…0032a0             20 44 72 69 76 65 20 42 3a 29 3a 0a 3b 42 09 09 09 2f 75 73 72 2f 4d 59 48 4f 4d 45 2f 42 3a 0a   ┆ Drive B:): ;B   /usr/MYHOME/B: ┆
0x0032a0…0032c0             0a 3b 20 54 6f 20 61 64 64 20 61 6e 20 61 64 64 69 74 6f 6e 61 6c 20 66 6c 6f 70 70 79 20 77 68   ┆ ; To add an additonal floppy wh┆
0x0032c0…0032e0             69 63 68 20 69 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 20 66 6c   ┆ich is attached to the second fl┆
0x0032e0…003300             6f 70 70 79 20 64 72 69 76 65 0a 3b 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73 20 42 3a 29 20   ┆oppy drive ; (accessible as B:) ┆
0x003300…003320             6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 3a 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a 3b 42   ┆on your system: ; ; For 360K: ;B┆
0x003320…003340             09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20 4d 65   ┆   /dev/rdsk/f1d9dt ; For 1.2 Me┆
0x003340…003360             67 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 71 31 35 64 74 0a 3b 20 46 6f 72 20   ┆g: ;B   /dev/rdsk/f1q15dt ; For ┆
0x003360…003380             68 69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73   ┆high-density 3.5": ;B   /dev/rds┆
0x003380…0033a0             6b 2f 66 31 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20   ┆k/f1q18dt  ; To access a serial ┆
0x0033a0…0033c0             63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 3a 0a 3b 43 4f 4d 31 09 09 09 2f 64 65   ┆communications port: ;COM1   /de┆
0x0033c0…0033e0             76 2f 74 74 79 30 30 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20 63 6f   ┆v/tty00  ; To access a serial co┆
0x0033e0…003400             6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 61   ┆mmunications port for use with a┆
0x003400…003420 (0, 1, 12)  20 73 65 72 69 61 6c 20 6d 6f 75 73 65 3a 0a 3b 43 4f 4d 31 4d 4f 55 53 45 09 09 2f 64 65 76 2f   ┆ serial mouse: ;COM1MOUSE  /dev/┆
0x003420…003440             74 74 79 30 30 0a 0a 3b 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 4d 69 63 72 6f 73 6f 66 74   ┆tty00  ; If you have a Microsoft┆
0x003440…003460             20 49 6e 70 6f 72 74 20 42 75 73 20 4d 6f 75 73 65 3a 0a 3b 4d 4f 55 53 45 09 09 09 2f 64 65 76   ┆ Inport Bus Mouse: ;MOUSE   /dev┆
0x003460…003480             2f 6d 6f 75 73 65 0a 0a 3b 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 6c 69 6e 65 20 70 72 69   ┆/mouse  ; If you have a line pri┆
0x003480…0034a0             6e 74 65 72 20 61 6e 64 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 73 74 61 6e 64 61 72 64 20   ┆nter and are using the standard ┆
0x0034a0…0034c0             55 4e 49 58 20 70 72 69 6e 74 65 72 20 73 70 6f 6f 6c 65 72 3a 0a 3b 4c 50 54 31 09 09 09 2f 75   ┆UNIX printer spooler: ;LPT1   /u┆
0x0034c0…0034e0             73 72 2f 62 69 6e 2f 6c 70 0a 61 63 68 65 64 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 20 66 6c   ┆sr/bin/lp ached to the second fl┆
0x0034e0…003500             6f 70 70 79 20 64 72 69 76 65 0a 3b 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73 20 42 3a 29 20   ┆oppy drive ; (accessible as B:) ┆
0x003500…003520             6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 3a 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a 3b 42   ┆on your system: ; ; For 360K: ;B┆
0x003520…003540             09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20 4d 65   ┆   /dev/rdsk/f1d9dt ; For 1.2 Me┆
0x003540…003560             67 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 71 31 35 64 74 0a 3b 20 46 6f 72 20   ┆g: ;B   /dev/rdsk/f1q15dt ; For ┆
0x003560…003580             68 69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73   ┆high-density 3.5": ;B   /dev/rds┆
0x003580…0035a0             6b 2f 66 31 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20   ┆k/f1q18dt  ; To access a serial ┆
0x0035a0…0035c0             63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 3a 0a 3b 43 4f 4d 31 09 09 09 2f 64 65   ┆communications port: ;COM1   /de┆
0x0035c0…0035e0             76 2f 74 74 79 30 30 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20 63 6f   ┆v/tty00  ; To access a serial co┆
0x0035e0…003600             6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 61   ┆mmunications port for use with a┆
0x003600…003620 (0, 1, 13)  2e 2e 2f 73 77 32 31 30 33 2f 76 70 69 78 2f 76 70 69 78 2e 66 6c 6f 70 00 00 00 00 00 00 00 00   ┆../sw2103/vpix/vpix.flop        ┆
0x003620…003640             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x003660…003680             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x003680…0036a0             20 20 20 32 33 31 31 20 20 35 32 36 37 30 32 31 34 31 36 20 20 31 30 31 34 34 00 20 00 00 00 00   ┆   2311  5267021416  10144      ┆
0x0036a0…0036c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x003800…003820 (0, 1, 14)  3b 20 40 28 23 29 76 70 69 78 2e 63 6e 66 09 31 2e 35 20 2d 20 38 38 2f 30 37 2f 32 35 0a 3b 0a   ┆; @(#)vpix.cnf 1.5 - 88/07/25 ; ┆
0x003820…003840             3b 20 56 50 2f 69 78 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 46 69 6c 65 0a 3b 0a 3b 0a 3b   ┆; VP/ix Configuration File ; ; ;┆
0x003840…003860             20 44 4f 53 20 44 45 56 49 43 45 09 09 55 4e 49 58 20 44 45 56 49 43 45 20 50 41 54 48 20 4e 41   ┆ DOS DEVICE  UNIX DEVICE PATH NA┆
0x003860…003880             4d 45 0a 0a 43 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 43 3a 0a 52 4f   ┆ME  C   /usr/vpix/defaults/C: RO┆
0x003880…0038a0             4d 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 0a 3b 45 47 41 52   ┆M   /usr/vpix/defaults/rom ;EGAR┆
0x0038a0…0038c0             4f 4d 09 09 09 2f 75 73 72 2f 76 70 69 78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 65 67 61 09 3b   ┆OM   /usr/vpix/defaults/romega ;┆
0x0038c0…0038e0             20 6e 6f 74 20 66 6f 72 20 52 43 39 34 30 0a 56 47 41 52 4f 4d 09 09 09 2f 75 73 72 2f 76 70 69   ┆ not for RC940 VGAROM   /usr/vpi┆
0x0038e0…003900             78 2f 64 65 66 61 75 6c 74 73 2f 72 6f 6d 76 67 61 0a 43 4d 4f 53 09 09 09 2f 75 73 72 2f 76 70   ┆x/defaults/romvga CMOS   /usr/vp┆
0x003900…003920             69 78 2f 64 65 66 61 75 6c 74 73 2f 63 6d 6f 73 0a 42 4f 4f 54 49 4d 41 47 45 09 09 24 48 4f 4d   ┆ix/defaults/cmos BOOTIMAGE  $HOM┆
0x003920…003940             45 2f 76 70 69 78 2f 76 70 69 78 2e 69 6d 67 0a 0a 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67   ┆E/vpix/vpix.img  ; The following┆
0x003940…003960             20 65 6e 74 72 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 20 61 73 20 65 78 61 6d 70 6c 65 73   ┆ entries are provide as examples┆
0x003960…003980             0a 3b 20 66 6f 72 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 56 50 2f 69   ┆ ; for customization of the VP/i┆
0x003980…0039a0             78 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 74 68 65 20 66   ┆x environment  ; To access the f┆
0x0039a0…0039c0             6c 6f 70 70 79 20 61 73 20 64 72 69 76 65 20 41 3a 20 75 6e 63 6f 6d 6d 65 6e 74 20 6f 6e 65 20   ┆loppy as drive A: uncomment one ┆
0x0039c0…0039e0             6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a   ┆of the following. ; ; For 360K: ┆
0x0039e0…003a00             3b 41 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 30 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20   ┆;A   /dev/rdsk/f0d9dt ; For 1.2 ┆
0x003a00…003a20 (0, 1, 15)  4d 65 67 3a 0a 41 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 30 71 31 35 64 74 0a 3b 20 46 6f 72   ┆Meg: A   /dev/rdsk/f0q15dt ; For┆
0x003a20…003a40             20 68 69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 41 09 09 09 2f 64 65 76 2f 72 64   ┆ high-density 3.5": ;A   /dev/rd┆
0x003a40…003a60             73 6b 2f 66 30 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 64 64 20 61 6e 20 61 64 64 69 74 69 6f 6e   ┆sk/f0q18dt  ; To add an addition┆
0x003a60…003a80             61 6c 20 50 73 65 75 64 6f 2d 46 6c 6f 70 70 79 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73 20   ┆al Pseudo-Floppy (accessible as ┆
0x003a80…003aa0             44 72 69 76 65 20 42 3a 29 3a 0a 3b 42 09 09 09 2f 75 73 72 2f 4d 59 48 4f 4d 45 2f 42 3a 0a 0a   ┆Drive B:): ;B   /usr/MYHOME/B:  ┆
0x003aa0…003ac0             3b 20 54 6f 20 61 64 64 20 61 6e 20 61 64 64 69 74 6f 6e 61 6c 20 66 6c 6f 70 70 79 20 77 68 69   ┆; To add an additonal floppy whi┆
0x003ac0…003ae0             63 68 20 69 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 20 66 6c 6f   ┆ch is attached to the second flo┆
0x003ae0…003b00             70 70 79 20 64 72 69 76 65 0a 3b 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73 20 42 3a 29 20 6f   ┆ppy drive ; (accessible as B:) o┆
0x003b00…003b20             6e 20 79 6f 75 72 20 73 79 73 74 65 6d 3a 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a 3b 42 09   ┆n your system: ; ; For 360K: ;B ┆
0x003b20…003b40             09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20 4d 65 67   ┆  /dev/rdsk/f1d9dt ; For 1.2 Meg┆
0x003b40…003b60             3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 71 31 35 64 74 0a 3b 20 46 6f 72 20 68   ┆: ;B   /dev/rdsk/f1q15dt ; For h┆
0x003b60…003b80             69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73 6b   ┆igh-density 3.5": ;B   /dev/rdsk┆
0x003b80…003ba0             2f 66 31 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20 63   ┆/f1q18dt  ; To access a serial c┆
0x003ba0…003bc0             6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 3a 0a 3b 43 4f 4d 31 09 09 09 2f 64 65 76   ┆ommunications port: ;COM1   /dev┆
0x003bc0…003be0             2f 74 74 79 30 30 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20 63 6f 6d   ┆/tty00  ; To access a serial com┆
0x003be0…003c00             6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 61 20   ┆munications port for use with a ┆
0x003c00…003c20 (1, 0, 1)   73 65 72 69 61 6c 20 6d 6f 75 73 65 3a 0a 3b 43 4f 4d 31 4d 4f 55 53 45 09 09 2f 64 65 76 2f 74   ┆serial mouse: ;COM1MOUSE  /dev/t┆
0x003c20…003c40             74 79 30 30 0a 0a 3b 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 4d 69 63 72 6f 73 6f 66 74 20   ┆ty00  ; If you have a Microsoft ┆
0x003c40…003c60             49 6e 70 6f 72 74 20 42 75 73 20 4d 6f 75 73 65 3a 0a 3b 4d 4f 55 53 45 09 09 09 2f 64 65 76 2f   ┆Inport Bus Mouse: ;MOUSE   /dev/┆
0x003c60…003c80             6d 6f 75 73 65 0a 0a 3b 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 6c 69 6e 65 20 70 72 69 6e   ┆mouse  ; If you have a line prin┆
0x003c80…003ca0             74 65 72 20 61 6e 64 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 55   ┆ter and are using the standard U┆
0x003ca0…003cc0             4e 49 58 20 70 72 69 6e 74 65 72 20 73 70 6f 6f 6c 65 72 3a 0a 3b 4c 50 54 31 09 09 09 2f 75 73   ┆NIX printer spooler: ;LPT1   /us┆
0x003cc0…003ce0             72 2f 62 69 6e 2f 6c 70 0a 61 63 68 65 64 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 20 66 6c 6f   ┆r/bin/lp ached to the second flo┆
0x003ce0…003d00             70 70 79 20 64 72 69 76 65 0a 3b 20 28 61 63 63 65 73 73 69 62 6c 65 20 61 73 20 42 3a 29 20 6f   ┆ppy drive ; (accessible as B:) o┆
0x003d00…003d20             6e 20 79 6f 75 72 20 73 79 73 74 65 6d 3a 0a 3b 0a 3b 20 46 6f 72 20 33 36 30 4b 3a 0a 3b 42 09   ┆n your system: ; ; For 360K: ;B ┆
0x003d20…003d40             09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 64 39 64 74 0a 3b 20 46 6f 72 20 31 2e 32 20 4d 65 67   ┆  /dev/rdsk/f1d9dt ; For 1.2 Meg┆
0x003d40…003d60             3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73 6b 2f 66 31 71 31 35 64 74 0a 3b 20 46 6f 72 20 68   ┆: ;B   /dev/rdsk/f1q15dt ; For h┆
0x003d60…003d80             69 67 68 2d 64 65 6e 73 69 74 79 20 33 2e 35 22 3a 0a 3b 42 09 09 09 2f 64 65 76 2f 72 64 73 6b   ┆igh-density 3.5": ;B   /dev/rdsk┆
0x003d80…003da0             2f 66 31 71 31 38 64 74 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20 63   ┆/f1q18dt  ; To access a serial c┆
0x003da0…003dc0             6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 3a 0a 3b 43 4f 4d 31 09 09 09 2f 64 65 76   ┆ommunications port: ;COM1   /dev┆
0x003dc0…003de0             2f 74 74 79 30 30 0a 0a 3b 20 54 6f 20 61 63 63 65 73 73 20 61 20 73 65 72 69 61 6c 20 63 6f 6d   ┆/tty00  ; To access a serial com┆
0x003de0…003e00             6d 75 6e 69 63 61 74 69 6f 6e 73 20 70 6f 72 74 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 61 20   ┆munications port for use with a ┆
0x003e00…003e20 (1, 0, 2)   2e 2e 2f 73 77 32 31 30 33 2f 2e 6c 61 73 74 6c 6f 67 69 6e 00 00 00 00 00 00 00 00 00 00 00 00   ┆../sw2103/.lastlogin            ┆
0x003e20…003e40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x003e60…003e80             00 00 00 00 20 20 20 34 30 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       400     255     146      ┆
0x003e80…003ea0             20 20 20 20 20 20 30 20 20 35 34 30 37 33 35 37 31 31 37 20 20 20 37 32 31 30 00 20 00 00 00 00   ┆      0  5407357117   7210      ┆
0x003ea0…003ec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x004000…004020 (1, 0, 3)   2e 2e 2f 73 77 32 31 30 33 2f 74 61 72 6c 6f 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆../sw2103/tarlog                ┆
0x004020…004040             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x004060…004080             00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       640     255     146      ┆
0x004080…0040a0             20 20 20 20 20 20 30 20 20 35 34 30 37 33 35 37 31 33 33 20 20 20 36 34 33 32 00 20 00 00 00 00   ┆      0  5407357133   6432      ┆
0x0040a0…0040c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x004200…004220 (1, 0, 4)   2e 2e 2f 73 77 32 31 30 33 2f 2e 72 63 70 61 78 70 72 6f 66 69 6c 65 00 00 00 00 00 00 00 00 00   ┆../sw2103/.rcpaxprofile         ┆
0x004220…004240             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x004260…004280             00 00 00 00 20 20 20 35 34 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       540     255     146      ┆
0x004280…0042a0             20 20 20 31 34 36 35 20 20 35 33 32 33 32 36 33 36 37 33 20 20 31 30 30 31 37 00 20 00 00 00 00   ┆   1465  5323263673  10017      ┆
0x0042a0…0042c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x004400…004420 (1, 0, 5)   65 63 68 6f 20 22 5c 6e 2a 2a 2a 20 52 43 50 41 58 3d 2f 75 73 72 32 20 2a 2a 2a 5c 6e 22 0a 52   ┆echo "\n*** RCPAX=/usr2 ***\n" R┆
0x004420…004440             43 50 41 58 3d 2f 75 73 72 32 20 3b 20 65 78 70 6f 72 74 20 52 43 50 41 58 0a 0a 53 57 35 30 30   ┆CPAX=/usr2 ; export RCPAX  SW500┆
0x004440…004460             32 30 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 30 30 32 30 2f 65 6e 76 20 20 20 3b 20   ┆20_ENV_D=$RCPAX/sw50020/env   ; ┆
0x004460…004480             65 78 70 6f 72 74 20 53 57 35 30 30 32 30 5f 45 4e 56 5f 44 20 0a 53 57 35 30 32 32 30 5f 45 4e   ┆export SW50020_ENV_D  SW50220_EN┆
0x004480…0044a0             56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 30 32 32 30 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f 72   ┆V_D=$RCPAX/sw50220/env   ; expor┆
0x0044a0…0044c0             74 20 53 57 35 30 32 32 30 5f 45 4e 56 5f 44 20 0a 53 57 35 30 32 38 30 5f 45 4e 56 5f 44 3d 24   ┆t SW50220_ENV_D  SW50280_ENV_D=$┆
0x0044c0…0044e0             52 43 50 41 58 2f 73 77 35 30 32 38 30 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35   ┆RCPAX/sw50280/env   ; export SW5┆
0x0044e0…004500             30 32 38 30 5f 45 4e 56 5f 44 20 0a 53 57 35 30 33 31 31 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58   ┆0280_ENV_D  SW50311_ENV_D=$RCPAX┆
0x004500…004520             2f 73 77 35 30 33 31 31 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35 30 33 31 31 5f   ┆/sw50311/env   ; export SW50311_┆
0x004520…004540             45 4e 56 5f 44 20 0a 53 57 35 30 33 31 32 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 30   ┆ENV_D  SW50312_ENV_D=$RCPAX/sw50┆
0x004540…004560             33 31 32 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35 30 33 31 32 5f 45 4e 56 5f 44   ┆312/env   ; export SW50312_ENV_D┆
0x004560…004580             0a 53 57 35 30 33 31 33 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 30 33 31 33 2f 65 6e   ┆ SW50313_ENV_D=$RCPAX/sw50313/en┆
0x004580…0045a0             76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35 30 33 31 33 5f 45 4e 56 5f 44 20 0a 53 57 35 30   ┆v   ; export SW50313_ENV_D  SW50┆
0x0045a0…0045c0             33 31 34 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 30 33 31 34 2f 65 6e 76 20 20 20 3b   ┆314_ENV_D=$RCPAX/sw50314/env   ;┆
0x0045c0…0045e0             20 65 78 70 6f 72 74 20 53 57 35 30 33 31 34 5f 45 4e 56 5f 44 20 0a 53 57 35 31 30 30 30 5f 45   ┆ export SW50314_ENV_D  SW51000_E┆
0x0045e0…004600             4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 31 30 30 30 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f   ┆NV_D=$RCPAX/sw51000/env   ; expo┆
0x004600…004620 (1, 0, 6)   72 74 20 53 57 35 31 30 30 30 5f 45 4e 56 5f 44 20 0a 53 57 35 31 30 31 30 5f 45 4e 56 5f 44 3d   ┆rt SW51000_ENV_D  SW51010_ENV_D=┆
0x004620…004640             24 52 43 50 41 58 2f 73 77 35 31 30 31 30 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57   ┆$RCPAX/sw51010/env   ; export SW┆
0x004640…004660             35 31 30 31 30 5f 45 4e 56 5f 44 20 0a 53 57 35 31 30 31 35 5f 45 4e 56 5f 44 3d 24 52 43 50 41   ┆51010_ENV_D  SW51015_ENV_D=$RCPA┆
0x004660…004680             58 2f 73 77 35 31 30 31 35 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35 31 30 31 35   ┆X/sw51015/env   ; export SW51015┆
0x004680…0046a0             5f 45 4e 56 5f 44 20 0a 53 57 35 31 30 31 36 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35   ┆_ENV_D  SW51016_ENV_D=$RCPAX/sw5┆
0x0046a0…0046c0             31 30 31 36 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35 31 30 31 36 5f 45 4e 56 5f   ┆1016/env   ; export SW51016_ENV_┆
0x0046c0…0046e0             44 0a 53 57 35 31 30 32 30 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 31 30 32 30 2f 65   ┆D SW51020_ENV_D=$RCPAX/sw51020/e┆
0x0046e0…004700             6e 76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35 31 30 32 30 5f 45 4e 56 5f 44 0a 53 57 46 54   ┆nv   ; export SW51020_ENV_D SWFT┆
0x004700…004720             41 4d 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 66 74 61 6d 2f 65 6e 76 20 20 20 20 20 3b   ┆AM_ENV_D=$RCPAX/swftam/env     ;┆
0x004720…004740             20 65 78 70 6f 72 74 20 53 57 46 54 41 4d 5f 45 4e 56 5f 44 0a 24 52 43 50 41 58 2f 73 77 35 30   ┆ export SWFTAM_ENV_D $RCPAX/sw50┆
0x004740…004760             33 31 32 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35 30 33 31 32 5f 45 4e 56 5f 44   ┆312/env   ; export SW50312_ENV_D┆
0x004760…004780             0a 53 57 35 30 33 31 33 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 30 33 31 33 2f 65 6e   ┆ SW50313_ENV_D=$RCPAX/sw50313/en┆
0x004780…0047a0             76 20 20 20 3b 20 65 78 70 6f 72 74 20 53 57 35 30 33 31 33 5f 45 4e 56 5f 44 20 0a 53 57 35 30   ┆v   ; export SW50313_ENV_D  SW50┆
0x0047a0…0047c0             33 31 34 5f 45 4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 30 33 31 34 2f 65 6e 76 20 20 20 3b   ┆314_ENV_D=$RCPAX/sw50314/env   ;┆
0x0047c0…0047e0             20 65 78 70 6f 72 74 20 53 57 35 30 33 31 34 5f 45 4e 56 5f 44 20 0a 53 57 35 31 30 30 30 5f 45   ┆ export SW50314_ENV_D  SW51000_E┆
0x0047e0…004800             4e 56 5f 44 3d 24 52 43 50 41 58 2f 73 77 35 31 30 30 30 2f 65 6e 76 20 20 20 3b 20 65 78 70 6f   ┆NV_D=$RCPAX/sw51000/env   ; expo┆
0x004800…004820 (1, 0, 7)   2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 63 62 72 65 61 6b 2e 70 61 73 00   ┆../sw2103/src/util/s.cbreak.pas ┆
0x004820…004840             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x004860…004880             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x004880…0048a0             20 20 20 32 35 30 35 20 20 35 32 36 35 33 32 37 36 36 33 20 20 31 31 32 36 35 00 20 00 00 00 00   ┆   2505  5265327663  11265      ┆
0x0048a0…0048c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x004a00…004a20 (1, 0, 8)   01 68 32 31 38 30 39 0a 01 73 20 30 30 30 37 37 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20   ┆ h21809  s 00077/00000/00000  d ┆
0x004a20…004a40             44 20 31 2e 31 20 39 32 2f 31 30 2f 30 39 20 31 31 3a 30 37 3a 33 39 20 73 77 32 31 30 33 20 31   ┆D 1.1 92/10/09 11:07:39 sw2103 1┆
0x004a40…004a60             20 30 0a 01 63 20 53 43 43 53 20 75 73 65 64 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a   ┆ 0  c SCCS used.  e  u  U  t  T ┆
0x004a60…004a80             01 49 20 31 0a 75 6e 69 74 20 43 62 72 65 61 6b 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ I 1 unit Cbreak;  (*-----------┆
0x004a80…004aa0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x004aa0…004ac0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 09 52 6f 75 74 69 6e 65   ┆------------------ -- -- Routine┆
0x004ac0…004ae0             73 20 66 6f 72 20 62 72 65 61 6b 20 62 79 20 43 74 72 6c 2d 43 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d   ┆s for break by Ctrl-C -- -------┆
0x004ae0…004b00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x004b00…004b20             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53   ┆------------------------ -- SCCS┆
0x004b20…004b40             20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d   ┆ information -- File   :  %P% --┆
0x004b40…004b60             09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a   ┆ Module :  %M% -- Version:  %I% ┆
0x004b60…004b80             2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆-- Date   :  %E%  %U% ----------┆
0x004b80…004ba0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x004ba0…004bc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 69 6e   ┆------------------------- *)  in┆
0x004bc0…004be0             74 65 72 66 61 63 65 0a 0a 75 73 65 73 20 44 4f 53 3b 0a 0a 20 20 50 72 6f 63 65 64 75 72 65 20   ┆terface  uses DOS;    Procedure ┆
0x004be0…004c00             73 65 74 5f 63 74 72 6c 5f 62 72 65 61 6b 3b 0a 20 20 46 75 6e 63 74 69 6f 6e 20 6b 65 79 70 72   ┆set_ctrl_break;   Function keypr┆
0x004c00…004c20 (1, 0, 9)   65 73 73 65 64 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 46 75 6e 63 74 69 6f 6e 20 72 65 61 64   ┆essed : boolean;   Function read┆
0x004c20…004c40             6b 65 79 20 3a 20 63 68 61 72 3b 0a 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 20 20 76   ┆key : char;  implementation    v┆
0x004c40…004c60             61 72 0a 20 20 20 20 65 78 69 74 73 61 76 65 20 3a 20 70 6f 69 6e 74 65 72 3b 0a 0a 0a 20 20 50   ┆ar     exitsave : pointer;     P┆
0x004c60…004c80             72 6f 63 65 64 75 72 65 20 73 65 74 5f 63 74 72 6c 5f 62 72 65 61 6b 3b 0a 20 20 20 20 76 61 72   ┆rocedure set_ctrl_break;     var┆
0x004c80…004ca0             20 20 72 65 67 3a 20 72 65 67 69 73 74 65 72 73 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆  reg: registers;     begin     ┆
0x004ca0…004cc0             77 69 74 68 20 72 65 67 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 61 68   ┆with reg do       begin       ah┆
0x004cc0…004ce0             3a 3d 20 24 33 33 3b 20 20 20 61 6c 3a 3d 20 30 31 3b 20 20 20 64 6c 3a 3d 20 30 31 3b 20 20 20   ┆:= $33;   al:= 01;   dl:= 01;   ┆
0x004ce0…004d00             20 20 20 28 2a 20 20 63 74 72 6c 2d 62 72 65 61 6b 20 6f 6e 20 20 2a 29 0a 20 20 20 20 20 20 65   ┆   (*  ctrl-break on  *)       e┆
0x004d00…004d20             6e 64 3b 0a 20 20 20 20 6d 73 64 6f 73 20 28 20 72 65 67 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a   ┆nd;     msdos ( reg);     end;  ┆
0x004d20…004d40             0a 0a 20 20 46 75 6e 63 74 69 6f 6e 20 6b 65 79 70 72 65 73 73 65 64 20 3a 20 62 6f 6f 6c 65 61   ┆    Function keypressed : boolea┆
0x004d40…004d60             6e 3b 0a 20 20 20 20 76 61 72 20 20 72 65 67 3a 20 72 65 67 69 73 74 65 72 73 3b 0a 20 20 20 20   ┆n;     var  reg: registers;     ┆
0x004d60…004d80             62 65 67 69 6e 0a 20 20 20 20 72 65 67 2e 61 68 3a 3d 20 24 30 42 3b 20 20 20 28 2a 20 63 68 65   ┆begin     reg.ah:= $0B;   (* che┆
0x004d80…004da0             63 6b 20 73 74 61 74 75 73 20 20 2a 29 0a 20 20 20 20 6d 73 64 6f 73 20 28 20 72 65 67 29 3b 0a   ┆ck status  *)     msdos ( reg); ┆
0x004da0…004dc0             20 20 20 20 6b 65 79 70 72 65 73 73 65 64 3a 3d 20 72 65 67 2e 61 6c 20 3d 20 24 46 46 0a 20 20   ┆    keypressed:= reg.al = $FF   ┆
0x004dc0…004de0             20 20 65 6e 64 3b 0a 0a 0a 20 20 46 75 6e 63 74 69 6f 6e 20 72 65 61 64 6b 65 79 20 3a 20 63 68   ┆  end;     Function readkey : ch┆
0x004de0…004e00             61 72 3b 0a 20 20 20 20 76 61 72 20 20 72 65 67 3a 20 72 65 67 69 73 74 65 72 73 3b 0a 20 20 20   ┆ar;     var  reg: registers;    ┆
0x004e00…004e20 (1, 0, 10)  20 62 65 67 69 6e 0a 20 20 20 20 72 65 67 2e 61 68 3a 3d 20 30 38 3b 0a 20 20 20 20 6d 73 64 6f   ┆ begin     reg.ah:= 08;     msdo┆
0x004e20…004e40             73 20 28 20 72 65 67 29 3b 0a 20 20 20 20 72 65 61 64 6b 65 79 3a 3d 20 63 68 61 72 20 28 20 72   ┆s ( reg);     readkey:= char ( r┆
0x004e40…004e60             65 67 2e 61 6c 29 0a 20 20 20 20 65 6e 64 3b 0a 0a 0a 0a 20 20 28 2a 24 46 2b 20 20 2a 29 0a 20   ┆eg.al)     end;      (*$F+  *)  ┆
0x004e60…004e80             20 50 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 20 20 20 20 20 20 28 2a 24 46 2d 20 20   ┆ Procedure myexit;       (*$F-  ┆
0x004e80…004ea0             2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 65 78 69 74 70 72 6f 63 3a 3d 20 65 78 69 74   ┆*)     begin     exitproc:= exit┆
0x004ea0…004ec0             73 61 76 65 0a 20 20 20 20 65 6e 64 3b 0a 0a 0a 0a 62 65 67 69 6e 0a 65 78 69 74 73 61 76 65 3a   ┆save     end;    begin exitsave:┆
0x004ec0…004ee0             3d 20 65 78 69 74 70 72 6f 63 3b 0a 65 78 69 74 70 72 6f 63 3a 3d 20 61 64 64 72 20 28 20 6d 79   ┆= exitproc; exitproc:= addr ( my┆
0x004ee0…004f00             65 78 69 74 29 3b 0a 0a 65 6e 64 2e 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆exit);  end.  (*----------------┆
0x004f00…004f20             2d 2d 2d 2d 2d 2d 2d 2d 2d 20 65 6e 64 20 6f 66 20 43 62 72 65 61 6b 20 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------- end of Cbreak --------┆
0x004f20…004f40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 0a   ┆---------------------------*)   ┆
0x004f40…004f60             01 45 20 31 0a 20 20 76 61 72 20 20 72 65 67 3a 20 72 65 67 69 73 74 65 72 73 3b 0a 20 20 20 20   ┆ E 1   var  reg: registers;     ┆
0x004f60…004f80             62 65 67 69 6e 0a 20 20 20 20 72 65 67 2e 61 68 3a 3d 20 24 30 42 3b 20 20 20 28 2a 20 63 68 65   ┆begin     reg.ah:= $0B;   (* che┆
0x004f80…004fa0             63 6b 20 73 74 61 74 75 73 20 20 2a 29 0a 20 20 20 20 6d 73 64 6f 73 20 28 20 72 65 67 29 3b 0a   ┆ck status  *)     msdos ( reg); ┆
0x004fa0…004fc0             20 20 20 20 6b 65 79 70 72 65 73 73 65 64 3a 3d 20 72 65 67 2e 61 6c 20 3d 20 24 46 46 0a 20 20   ┆    keypressed:= reg.al = $FF   ┆
0x004fc0…004fe0             20 20 65 6e 64 3b 0a 0a 0a 20 20 46 75 6e 63 74 69 6f 6e 20 72 65 61 64 6b 65 79 20 3a 20 63 68   ┆  end;     Function readkey : ch┆
0x004fe0…005000             61 72 3b 0a 20 20 20 20 76 61 72 20 20 72 65 67 3a 20 72 65 67 69 73 74 65 72 73 3b 0a 20 20 20   ┆ar;     var  reg: registers;    ┆
0x005000…005020 (1, 0, 11)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 63 6f 6d 70 61 72 65 2e 70 61 73   ┆../sw2103/src/util/s.compare.pas┆
0x005020…005040             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x005060…005080             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x005080…0050a0             20 20 31 37 31 34 37 20 20 34 33 37 36 35 36 30 37 36 30 20 20 31 31 35 31 33 00 20 00 00 00 00   ┆  17147  4376560760  11513      ┆
0x0050a0…0050c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x005200…005220 (1, 0, 12)  01 68 33 37 30 32 38 0a 01 73 20 30 30 33 32 36 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20   ┆ h37028  s 00326/00000/00000  d ┆
0x005220…005240             44 20 31 2e 34 20 39 32 2f 31 30 2f 31 32 20 30 38 3a 35 36 3a 30 35 20 73 77 32 31 30 33 20 31   ┆D 1.4 92/10/12 08:56:05 sw2103 1┆
0x005240…005260             20 30 0a 01 63 20 45 42 4b 3a 20 43 6f 6e 76 65 72 74 65 64 20 74 6f 20 54 55 52 42 4f 0a 01 65   ┆ 0  c EBK: Converted to TURBO  e┆
0x005260…005280             0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 70 72 6f 67 72 61 6d 20 63 6f 6d 70 61 72   ┆  u  U  t  T  I 1 program compar┆
0x005280…0052a0             65 3b 0a 75 73 65 73 20 64 6f 73 2c 20 72 74 70 75 6e 69 74 3b 0a 0a 28 2a 20 78 78 78 78 78 78   ┆e; uses dos, rtpunit;  (* xxxxxx┆
0x0052a0…0052c0             20 6a 61 62 61 20 31 2e 31 20 46 69 72 73 74 20 76 65 72 73 69 6f 6e 20 20 20 20 20 20 20 20 20   ┆ jaba 1.1 First version         ┆
0x0052c0…0052e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29 0a 28 2a 20 38 37 30 36 30 39 20 62 62 20 20 20   ┆              *) (* 870609 bb   ┆
0x0052e0…005300             31 2e 32 20 43 6f 6e 76 65 72 74 65 64 20 74 6f 20 6c 66 33 35 30 32 20 61 6e 64 20 66 70 33 35   ┆1.2 Converted to lf3502 and fp35┆
0x005300…005320             30 32 20 20 20 20 20 20 2a 29 0a 28 2a 20 38 39 30 31 32 30 20 62 62 20 20 20 31 2e 33 20 43 6f   ┆02      *) (* 890120 bb   1.3 Co┆
0x005320…005340             6e 63 65 70 74 20 27 70 61 67 65 27 20 69 6e 73 74 65 61 64 20 6f 66 20 27 73 65 67 6d 65 6e 74   ┆ncept 'page' instead of 'segment┆
0x005340…005360             27 2e 2a 29 0a 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 6f 6e 27 20 73 75   ┆'.*) (*                 'con' su┆
0x005360…005380             62 73 74 69 74 75 74 65 64 20 77 69 74 68 20 6c 66 5f 63 6f 6e 6e 61 6d 65 2e 20 20 2a 29 0a 28   ┆bstituted with lf_conname.  *) (┆
0x005380…0053a0             2a 20 38 39 30 32 31 36 20 65 62 6b 20 20 31 2e 34 20 43 6f 6e 76 65 72 74 65 64 20 74 6f 20 54   ┆* 890216 ebk  1.4 Converted to T┆
0x0053a0…0053c0             55 52 42 4f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29 0a 0a 63 6f 6e 73 74 0a   ┆URBO                  *)  const ┆
0x0053c0…0053e0             74 65 73 74 5f 6f 75 74 3d 20 66 61 6c 73 65 3b 0a 66 69 6c 6d 61 78 20 3d 20 32 35 36 3b 0a 0a   ┆test_out= false; filmax = 256;  ┆
0x0053e0…005400             74 79 70 65 0a 66 69 6c 65 72 65 63 20 3d 20 61 72 72 61 79 5b 31 2e 2e 66 69 6c 6d 61 78 5d 20   ┆type filerec = array[1..filmax] ┆
0x005400…005420 (1, 0, 13)  6f 66 20 69 6e 74 65 67 65 72 3b 0a 0a 76 61 72 0a 73 61 76 65 65 78 69 74 20 20 20 3a 20 70 6f   ┆of integer;  var saveexit   : po┆
0x005420…005440             69 6e 74 65 72 3b 0a 0a 66 69 6c 31 2c 20 66 69 6c 32 20 3a 20 66 69 6c 65 3b 0a 66 69 6c 31 5f   ┆inter;  fil1, fil2 : file; fil1_┆
0x005440…005460             69 78 20 20 20 20 3a 20 69 6e 74 65 67 65 72 3b 0a 66 69 6c 31 5f 72 65 63 20 20 20 3a 20 69 6e   ┆ix    : integer; fil1_rec   : in┆
0x005460…005480             74 65 67 65 72 3b 0a 66 69 6c 31 5f 70 74 72 20 20 20 3a 20 5e 66 69 6c 65 72 65 63 3b 0a 66 69   ┆teger; fil1_ptr   : ^filerec; fi┆
0x005480…0054a0             6c 32 5f 69 78 20 20 20 20 3a 20 69 6e 74 65 67 65 72 3b 0a 66 69 6c 32 5f 72 65 63 20 20 20 3a   ┆l2_ix    : integer; fil2_rec   :┆
0x0054a0…0054c0             20 69 6e 74 65 67 65 72 3b 0a 66 69 6c 32 5f 70 74 72 20 20 20 3a 20 5e 66 69 6c 65 72 65 63 3b   ┆ integer; fil2_ptr   : ^filerec;┆
0x0054c0…0054e0             0a 0a 66 69 72 73 74 5f 70 61 67 65 2c 20 6c 61 73 74 5f 70 61 67 65 2c 20 70 61 67 65 63 6f 75   ┆  first_page, last_page, pagecou┆
0x0054e0…005500             6e 74 2c 20 77 63 6f 75 6e 74 2c 20 69 6e 74 76 61 6c 31 2c 20 69 6e 74 76 61 6c 32 20 3a 20 69   ┆nt, wcount, intval1, intval2 : i┆
0x005500…005520             6e 74 65 67 65 72 3b 0a 6d 61 78 5f 64 69 66 73 2c 20 64 69 66 5f 63 6f 75 6e 74 3a 20 69 6e 74   ┆nteger; max_difs, dif_count: int┆
0x005520…005540             65 67 65 72 3b 0a 0a 73 65 70 2c 20 70 61 72 61 6d 6e 6f 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e   ┆eger;  sep, paramno, call_line_n┆
0x005540…005560             75 6d 62 65 72 20 3a 20 69 6e 74 65 67 65 72 3b 0a 6f 6b 2c 20 65 6f 66 31 2c 20 65 6f 66 32 2c   ┆umber : integer; ok, eof1, eof2,┆
0x005560…005580             20 73 77 61 70 31 2c 20 73 77 61 70 32 2c 20 61 6c 6c 5f 64 69 66 66 2c 20 73 74 6f 70 31 2c 20   ┆ swap1, swap2, all_diff, stop1, ┆
0x005580…0055a0             73 74 6f 70 32 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 6d 61 78 31 5f 6c 61 73 74 2c 20 6d 61 78 31   ┆stop2 : boolean; max1_last, max1┆
0x0055a0…0055c0             5f 72 65 63 2c 20 6d 61 78 32 5f 6c 61 73 74 2c 20 6d 61 78 32 5f 72 65 63 3a 20 69 6e 74 65 67   ┆_rec, max2_last, max2_rec: integ┆
0x0055c0…0055e0             65 72 3b 0a 68 65 6c 70 5f 6c 6f 6e 67 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 0a 62 79 74 31 2c 20 62   ┆er; help_long: longint;  byt1, b┆
0x0055e0…005600             79 74 32 3a 20 62 79 74 65 3b 0a 63 68 31 2c 20 63 68 32 3a 20 63 68 61 72 3b 0a 0a 63 61 6c 6c   ┆yt2: byte; ch1, ch2: char;  call┆
0x005600…005620 (1, 0, 14)  5f 6c 69 6e 65 5f 6e 61 6d 65 3a 20 61 6c 66 61 3b 0a 6f 75 74 70 75 74 5f 66 69 6c 65 5f 6e 61   ┆_line_name: alfa; output_file_na┆
0x005620…005640             6d 65 2c 20 66 69 6c 31 5f 6e 61 6d 65 2c 20 66 69 6c 32 5f 6e 61 6d 65 3a 20 61 6c 66 61 3b 0a   ┆me, fil1_name, fil2_name: alfa; ┆
0x005640…005660             0a 63 6f 6e 73 74 0a 0a 28 2a 20 63 6f 6e 73 74 61 6e 74 73 20 61 6e 64 20 76 61 72 69 61 62 6c   ┆ const  (* constants and variabl┆
0x005660…005680             65 73 20 63 6f 6e 63 65 72 6e 69 6e 67 20 63 61 6c 6c 20 70 61 72 61 6d 65 74 65 72 20 72 65 61   ┆es concerning call parameter rea┆
0x005680…0056a0             64 69 6e 67 20 2a 29 0a 65 71 75 61 6c 20 3d 20 36 3b 20 73 70 61 63 65 20 3d 20 34 3b 20 64 6f   ┆ding *) equal = 6; space = 4; do┆
0x0056a0…0056c0             74 20 3d 20 38 3b 0a 6e 61 6d 65 20 20 3d 20 31 30 3b 20 69 6e 74 20 3d 20 34 3b 0a 70 6f 77 65   ┆t = 8; name  = 10; int = 4; powe┆
0x0056c0…0056e0             72 38 20 3d 20 32 35 36 3b 0a 0a 0a 28 2a 24 46 2b 2a 29 20 70 72 6f 63 65 64 75 72 65 20 65 78   ┆r8 = 256;   (*$F+*) procedure ex┆
0x0056e0…005700             63 65 70 74 69 6f 6e 3b 20 28 2a 24 46 2d 2a 29 0a 62 65 67 69 6e 0a 65 78 69 74 70 72 6f 63 20   ┆ception; (*$F-*) begin exitproc ┆
0x005700…005720             3a 3d 20 73 61 76 65 65 78 69 74 3b 0a 0a 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 28 27 45 6e 64   ┆:= saveexit;  runtime_error('End┆
0x005720…005740             20 6f 66 20 63 6f 6d 70 61 72 65 27 29 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 69   ┆ of compare'); end;  procedure i┆
0x005740…005760             6e 5f 66 69 6c 31 28 76 61 72 20 70 3a 20 69 6e 74 65 67 65 72 29 3b 0a 76 61 72 20 63 6f 75 6e   ┆n_fil1(var p: integer); var coun┆
0x005760…005780             74 3a 20 69 6e 74 65 67 65 72 3b 0a 62 65 67 69 6e 0a 20 20 66 69 6c 31 5f 69 78 20 3a 3d 20 66   ┆t: integer; begin   fil1_ix := f┆
0x005780…0057a0             69 6c 31 5f 69 78 20 2b 20 31 3b 0a 20 20 69 66 20 66 69 6c 31 5f 69 78 20 3e 20 66 69 6c 6d 61   ┆il1_ix + 1;   if fil1_ix > filma┆
0x0057a0…0057c0             78 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 66 69 6c 31 5f 72 65 63 20 3a 3d 20 66   ┆x then   begin     fil1_rec := f┆
0x0057c0…0057e0             69 6c 31 5f 72 65 63 20 2b 20 31 3b 0a 20 20 20 20 66 69 6c 31 5f 69 78 20 3a 3d 20 31 3b 0a 20   ┆il1_rec + 1;     fil1_ix := 1;  ┆
0x0057e0…005800             20 20 20 69 66 20 66 69 6c 31 5f 72 65 63 20 3c 20 6d 61 78 31 5f 72 65 63 20 74 68 65 6e 20 63   ┆   if fil1_rec < max1_rec then c┆
0x005800…005820 (1, 0, 15)  6f 75 6e 74 20 3a 3d 20 66 69 6c 6d 61 78 20 65 6c 73 65 20 63 6f 75 6e 74 20 3a 3d 20 6d 61 78   ┆ount := filmax else count := max┆
0x005820…005840             31 5f 6c 61 73 74 3b 0a 20 20 20 20 62 6c 6f 63 6b 72 65 61 64 28 66 69 6c 31 2c 20 66 69 6c 31   ┆1_last;     blockread(fil1, fil1┆
0x005840…005860             5f 70 74 72 5e 2c 20 63 6f 75 6e 74 29 3b 0a 20 20 65 6e 64 3b 0a 20 20 70 20 3a 3d 20 66 69 6c   ┆_ptr^, count);   end;   p := fil┆
0x005860…005880             31 5f 70 74 72 5e 5b 66 69 6c 31 5f 69 78 5d 3b 0a 20 20 69 66 20 73 77 61 70 31 20 74 68 65 6e   ┆1_ptr^[fil1_ix];   if swap1 then┆
0x005880…0058a0             20 70 20 3a 3d 20 73 77 61 70 28 70 29 3b 0a 20 20 65 6f 66 31 20 3a 3d 20 28 66 69 6c 31 5f 69   ┆ p := swap(p);   eof1 := (fil1_i┆
0x0058a0…0058c0             78 20 3d 20 6d 61 78 31 5f 6c 61 73 74 29 20 61 6e 64 20 28 66 69 6c 31 5f 72 65 63 20 3d 20 6d   ┆x = max1_last) and (fil1_rec = m┆
0x0058c0…0058e0             61 78 31 5f 72 65 63 29 3b 0a 65 6e 64 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 5f 66 69   ┆ax1_rec); end;   procedure in_fi┆
0x0058e0…005900             6c 32 28 76 61 72 20 70 3a 20 69 6e 74 65 67 65 72 29 3b 0a 76 61 72 20 63 6f 75 6e 74 3a 20 69   ┆l2(var p: integer); var count: i┆
0x005900…005920             6e 74 65 67 65 72 3b 0a 62 65 67 69 6e 0a 20 20 66 69 6c 32 5f 69 78 20 3a 3d 20 66 69 6c 32 5f   ┆nteger; begin   fil2_ix := fil2_┆
0x005920…005940             69 78 20 2b 20 31 3b 0a 20 20 69 66 20 66 69 6c 32 5f 69 78 20 3e 20 66 69 6c 6d 61 78 20 74 68   ┆ix + 1;   if fil2_ix > filmax th┆
0x005940…005960             65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 66 69 6c 32 5f 72 65 63 20 3a 3d 20 66 69 6c 32 5f   ┆en   begin     fil2_rec := fil2_┆
0x005960…005980             72 65 63 20 2b 20 31 3b 0a 20 20 20 20 66 69 6c 32 5f 69 78 20 3a 3d 20 31 3b 0a 20 20 20 20 69   ┆rec + 1;     fil2_ix := 1;     i┆
0x005980…0059a0             66 20 66 69 6c 32 5f 72 65 63 20 3c 20 6d 61 78 32 5f 72 65 63 20 74 68 65 6e 20 63 6f 75 6e 74   ┆f fil2_rec < max2_rec then count┆
0x0059a0…0059c0             20 3a 3d 20 66 69 6c 6d 61 78 20 65 6c 73 65 20 63 6f 75 6e 74 20 3a 3d 20 6d 61 78 32 5f 6c 61   ┆ := filmax else count := max2_la┆
0x0059c0…0059e0             73 74 3b 0a 20 20 20 20 62 6c 6f 63 6b 72 65 61 64 28 66 69 6c 32 2c 20 66 69 6c 32 5f 70 74 72   ┆st;     blockread(fil2, fil2_ptr┆
0x0059e0…005a00             5e 2c 20 63 6f 75 6e 74 29 3b 0a 20 20 65 6e 64 3b 0a 20 20 70 20 3a 3d 20 66 69 6c 32 5f 70 74   ┆^, count);   end;   p := fil2_pt┆
0x005a00…005a20 (1, 1, 1)   72 5e 5b 66 69 6c 32 5f 69 78 5d 3b 0a 20 20 69 66 20 73 77 61 70 32 20 74 68 65 6e 20 70 20 3a   ┆r^[fil2_ix];   if swap2 then p :┆
0x005a20…005a40             3d 20 73 77 61 70 28 70 29 3b 0a 20 20 65 6f 66 32 20 3a 3d 20 28 66 69 6c 32 5f 69 78 20 3d 20   ┆= swap(p);   eof2 := (fil2_ix = ┆
0x005a40…005a60             6d 61 78 32 5f 6c 61 73 74 29 20 61 6e 64 20 28 66 69 6c 32 5f 72 65 63 20 3d 20 6d 61 78 32 5f   ┆max2_last) and (fil2_rec = max2_┆
0x005a60…005a80             72 65 63 29 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 61 72 61 6d 65 72 72 6f 72   ┆rec); end;  procedure paramerror┆
0x005a80…005aa0             28 70 6c 61 63 65 3a 20 69 6e 74 65 67 65 72 29 3b 0a 62 65 67 69 6e 0a 77 72 69 74 65 28 6f 75   ┆(place: integer); begin write(ou┆
0x005aa0…005ac0             74 70 75 74 2c 27 2a 2a 2a 20 63 6f 6d 70 61 72 65 2c 20 65 72 72 6f 72 20 69 6e 20 63 61 6c 6c   ┆tput,'*** compare, error in call┆
0x005ac0…005ae0             28 27 2c 70 6c 61 63 65 3a 31 2c 70 61 72 61 6d 6e 6f 3a 31 2c 27 29 3a 20 27 29 3b 0a 69 66 20   ┆(',place:1,paramno:1,'): '); if ┆
0x005ae0…005b00             73 65 70 3d 30 20 74 68 65 6e 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 6d 69 73 73 69 6e   ┆sep=0 then write(output, 'missin┆
0x005b00…005b20             67 20 70 61 72 61 6d 65 74 65 72 27 29 0a 65 6c 73 65 0a 72 65 70 65 61 74 0a 69 66 20 73 65 70   ┆g parameter') else repeat if sep┆
0x005b20…005b40             20 64 69 76 20 70 6f 77 65 72 38 20 3d 20 73 70 61 63 65 20 74 68 65 6e 0a 77 72 69 74 65 28 6f   ┆ div power8 = space then write(o┆
0x005b40…005b60             75 74 70 75 74 2c 27 20 27 29 0a 65 6c 73 65 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 2d 27   ┆utput,' ') else write(output,'-'┆
0x005b60…005b80             29 3b 0a 69 66 20 73 65 70 20 6d 6f 64 20 70 6f 77 65 72 38 20 3d 20 6e 61 6d 65 20 74 68 65 6e   ┆); if sep mod power8 = name then┆
0x005b80…005ba0             0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 61 6d 65 29 0a 65 6c   ┆ write(output,call_line_name) el┆
0x005ba0…005bc0             73 65 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72   ┆se write(output,call_line_number┆
0x005bc0…005be0             3a 31 29 3b 0a 70 61 72 61 6d 6e 6f 3a 3d 20 70 61 72 61 6d 6e 6f 20 2b 20 31 3b 0a 73 65 70 3a   ┆:1); paramno:= paramno + 1; sep:┆
0x005be0…005c00             3d 20 70 61 72 61 6d 72 65 61 64 20 28 70 61 72 61 6d 6e 6f 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f   ┆= paramread (paramno, call_line_┆
0x005c00…005c20 (1, 1, 2)   6e 75 6d 62 65 72 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 61 6d 65 29 3b 0a 69 66 20 73 65 70 20   ┆number, call_line_name); if sep ┆
0x005c20…005c40             3d 20 30 20 74 68 65 6e 20 73 65 70 3a 3d 20 73 70 61 63 65 20 2a 20 70 6f 77 65 72 38 3b 0a 75   ┆= 0 then sep:= space * power8; u┆
0x005c40…005c60             6e 74 69 6c 20 73 65 70 20 64 69 76 20 70 6f 77 65 72 38 20 3d 20 73 70 61 63 65 3b 0a 77 72 69   ┆ntil sep div power8 = space; wri┆
0x005c60…005c80             74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 6f 6b 3a 3d 20 66 61 6c 73 65 3b 0a 70 61 72 61 6d 6e   ┆teln(output); ok:= false; paramn┆
0x005c80…005ca0             6f 3a 3d 20 70 61 72 61 6d 6e 6f 20 2d 20 31 3b 0a 65 6e 64 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20   ┆o:= paramno - 1; end;  function ┆
0x005ca0…005cc0             67 65 74 69 6e 74 20 3a 20 69 6e 74 65 67 65 72 3b 0a 76 61 72 0a 70 3a 20 69 6e 74 65 67 65 72   ┆getint : integer; var p: integer┆
0x005cc0…005ce0             3b 0a 62 65 67 69 6e 0a 70 3a 3d 20 70 61 72 61 6d 72 65 61 64 20 28 70 61 72 61 6d 6e 6f 20 2b   ┆; begin p:= paramread (paramno +┆
0x005ce0…005d00             20 31 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f   ┆ 1, call_line_number, call_line_┆
0x005d00…005d20             6e 61 6d 65 29 3b 0a 69 66 20 70 20 3d 20 64 6f 74 20 2a 20 70 6f 77 65 72 38 20 2b 20 69 6e 74   ┆name); if p = dot * power8 + int┆
0x005d20…005d40             20 74 68 65 6e 0a 62 65 67 69 6e 0a 67 65 74 69 6e 74 3a 3d 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e   ┆ then begin getint:= call_line_n┆
0x005d40…005d60             75 6d 62 65 72 3b 0a 70 61 72 61 6d 6e 6f 3a 3d 20 70 61 72 61 6d 6e 6f 20 2b 20 31 3b 0a 65 6e   ┆umber; paramno:= paramno + 1; en┆
0x005d60…005d80             64 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 70 61 72 61 6d 65 72 72 6f 72 28 30 29 3b 0a 67 65 74 69   ┆d else begin paramerror(0); geti┆
0x005d80…005da0             6e 74 3a 3d 20 30 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 67 65 74   ┆nt:= 0; end; end;  procedure get┆
0x005da0…005dc0             5f 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 62 65 67 69 6e 20 28 2a 20 62 6f 64 79 20 6f 66 20 67   ┆_parameters;  begin (* body of g┆
0x005dc0…005de0             65 74 70 61 72 61 6d 73 20 2a 29 0a 6f 6b 3a 3d 20 74 72 75 65 3b 0a 73 65 70 3a 3d 20 70 61 72   ┆etparams *) ok:= true; sep:= par┆
0x005de0…005e00             61 6d 72 65 61 64 20 28 31 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 63 61 6c   ┆amread (1, call_line_number, cal┆
0x005e00…005e20 (1, 1, 3)   6c 5f 6c 69 6e 65 5f 6e 61 6d 65 29 3b 0a 69 66 20 73 65 70 20 64 69 76 20 70 6f 77 65 72 38 20   ┆l_line_name); if sep div power8 ┆
0x005e20…005e40             3d 20 65 71 75 61 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 73 65 70 3a 3d 20 70 61 72 61 6d 72 65   ┆= equal then begin sep:= paramre┆
0x005e40…005e60             61 64 20 28 30 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 6f 75 74 70 75 74 5f   ┆ad (0, call_line_number, output_┆
0x005e60…005e80             66 69 6c 65 5f 6e 61 6d 65 29 3b 0a 70 61 72 61 6d 6e 6f 3a 3d 20 32 3b 0a 65 6e 64 0a 65 6c 73   ┆file_name); paramno:= 2; end els┆
0x005e80…005ea0             65 0a 70 61 72 61 6d 6e 6f 3a 3d 20 31 3b 0a 0a 73 65 70 3a 3d 20 70 61 72 61 6d 72 65 61 64 20   ┆e paramno:= 1;  sep:= paramread ┆
0x005ea0…005ec0             28 70 61 72 61 6d 6e 6f 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 66 69 6c 31   ┆(paramno, call_line_number, fil1┆
0x005ec0…005ee0             5f 6e 61 6d 65 29 3b 0a 69 66 20 73 65 70 20 3c 3e 20 73 70 61 63 65 20 2a 20 70 6f 77 65 72 38   ┆_name); if sep <> space * power8┆
0x005ee0…005f00             20 2b 20 6e 61 6d 65 20 74 68 65 6e 0a 70 61 72 61 6d 65 72 72 6f 72 28 31 29 3b 0a 70 61 72 61   ┆ + name then paramerror(1); para┆
0x005f00…005f20             6d 6e 6f 3a 3d 20 70 61 72 61 6d 6e 6f 20 2b 20 31 3b 0a 73 65 70 3a 3d 20 70 61 72 61 6d 72 65   ┆mno:= paramno + 1; sep:= paramre┆
0x005f20…005f40             61 64 20 28 70 61 72 61 6d 6e 6f 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 66   ┆ad (paramno, call_line_number, f┆
0x005f40…005f60             69 6c 32 5f 6e 61 6d 65 29 3b 0a 69 66 20 73 65 70 20 3d 20 64 6f 74 20 2a 20 70 6f 77 65 72 38   ┆il2_name); if sep = dot * power8┆
0x005f60…005f80             20 2b 20 6e 61 6d 65 20 74 68 65 6e 0a 62 65 67 69 6e 0a 20 20 69 66 20 66 69 6c 32 5f 6e 61 6d   ┆ + name then begin   if fil2_nam┆
0x005f80…005fa0             65 20 3d 20 27 73 77 61 70 27 20 74 68 65 6e 20 73 77 61 70 31 20 3a 3d 20 74 72 75 65 3b 0a 20   ┆e = 'swap' then swap1 := true;  ┆
0x005fa0…005fc0             20 69 66 20 66 69 6c 32 5f 6e 61 6d 65 20 3d 20 27 73 74 6f 70 27 20 74 68 65 6e 20 73 74 6f 70   ┆ if fil2_name = 'stop' then stop┆
0x005fc0…005fe0             31 20 3a 3d 20 74 72 75 65 3b 0a 20 20 70 61 72 61 6d 6e 6f 20 3a 3d 20 70 61 72 61 6d 6e 6f 20   ┆1 := true;   paramno := paramno ┆
0x005fe0…006000             2b 20 31 3b 0a 65 6e 64 3b 0a 0a 73 65 70 20 3a 3d 20 70 61 72 61 6d 72 65 61 64 28 70 61 72 61   ┆+ 1; end;  sep := paramread(para┆
0x006000…006020 (1, 1, 4)   6d 6e 6f 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 66 69 6c 32 5f 6e 61 6d 65   ┆mno, call_line_number, fil2_name┆
0x006020…006040             29 3b 0a 69 66 20 73 65 70 20 3c 3e 20 73 70 61 63 65 20 2a 20 70 6f 77 65 72 38 20 2b 20 6e 61   ┆); if sep <> space * power8 + na┆
0x006040…006060             6d 65 20 74 68 65 6e 0a 70 61 72 61 6d 65 72 72 6f 72 28 32 29 3b 0a 70 61 72 61 6d 6e 6f 3a 3d   ┆me then paramerror(2); paramno:=┆
0x006060…006080             20 70 61 72 61 6d 6e 6f 20 2b 20 31 3b 0a 73 65 70 20 3a 3d 20 70 61 72 61 6d 72 65 61 64 28 70   ┆ paramno + 1; sep := paramread(p┆
0x006080…0060a0             61 72 61 6d 6e 6f 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 63 61 6c 6c 5f 6c   ┆aramno, call_line_number, call_l┆
0x0060a0…0060c0             69 6e 65 5f 6e 61 6d 65 29 3b 0a 69 66 20 73 65 70 20 3d 20 64 6f 74 20 2a 20 70 6f 77 65 72 38   ┆ine_name); if sep = dot * power8┆
0x0060c0…0060e0             20 2b 20 6e 61 6d 65 20 74 68 65 6e 0a 62 65 67 69 6e 0a 20 20 69 66 20 63 61 6c 6c 5f 6c 69 6e   ┆ + name then begin   if call_lin┆
0x0060e0…006100             65 5f 6e 61 6d 65 20 3d 20 27 73 77 61 70 27 20 74 68 65 6e 20 73 77 61 70 32 20 3a 3d 20 74 72   ┆e_name = 'swap' then swap2 := tr┆
0x006100…006120             75 65 3b 0a 20 20 69 66 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 61 6d 65 20 3d 20 27 73 74 6f 70 27   ┆ue;   if call_line_name = 'stop'┆
0x006120…006140             20 74 68 65 6e 20 73 74 6f 70 32 20 3a 3d 20 74 72 75 65 3b 0a 20 20 70 61 72 61 6d 6e 6f 20 3a   ┆ then stop2 := true;   paramno :┆
0x006140…006160             3d 20 70 61 72 61 6d 6e 6f 20 2b 20 31 3b 0a 20 20 73 65 70 3a 3d 20 70 61 72 61 6d 72 65 61 64   ┆= paramno + 1;   sep:= paramread┆
0x006160…006180             20 28 70 61 72 61 6d 6e 6f 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 63 61 6c   ┆ (paramno, call_line_number, cal┆
0x006180…0061a0             6c 5f 6c 69 6e 65 5f 6e 61 6d 65 29 3b 0a 65 6e 64 3b 0a 0a 77 68 69 6c 65 20 28 73 65 70 3e 30   ┆l_line_name); end;  while (sep>0┆
0x0061a0…0061c0             29 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 73 65 70 20 3c 3e 20 73 70 61 63 65 20 2a 20 70 6f 77   ┆) do begin if sep <> space * pow┆
0x0061c0…0061e0             65 72 38 20 2b 20 6e 61 6d 65 20 74 68 65 6e 0a 70 61 72 61 6d 65 72 72 6f 72 28 33 29 0a 65 6c   ┆er8 + name then paramerror(3) el┆
0x0061e0…006200             73 65 0a 62 65 67 69 6e 0a 69 66 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 61 6d 65 20 3d 20 27 66 69   ┆se begin if call_line_name = 'fi┆
0x006200…006220 (1, 1, 5)   72 73 74 27 20 74 68 65 6e 20 66 69 72 73 74 5f 70 61 67 65 3a 3d 20 67 65 74 69 6e 74 0a 65 6c   ┆rst' then first_page:= getint el┆
0x006220…006240             73 65 0a 69 66 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 61 6d 65 20 3d 20 27 6c 61 73 74 27 20 74 68   ┆se if call_line_name = 'last' th┆
0x006240…006260             65 6e 20 6c 61 73 74 5f 70 61 67 65 3a 3d 20 67 65 74 69 6e 74 0a 65 6c 73 65 0a 69 66 20 63 61   ┆en last_page:= getint else if ca┆
0x006260…006280             6c 6c 5f 6c 69 6e 65 5f 6e 61 6d 65 20 3d 20 27 6d 61 78 64 69 66 73 27 20 74 68 65 6e 20 6d 61   ┆ll_line_name = 'maxdifs' then ma┆
0x006280…0062a0             78 5f 64 69 66 73 3a 3d 20 67 65 74 69 6e 74 0a 65 6c 73 65 0a 69 66 20 63 61 6c 6c 5f 6c 69 6e   ┆x_difs:= getint else if call_lin┆
0x0062a0…0062c0             65 5f 6e 61 6d 65 20 3d 20 27 61 6c 6c 27 20 74 68 65 6e 20 61 6c 6c 5f 64 69 66 66 20 3a 3d 20   ┆e_name = 'all' then all_diff := ┆
0x0062c0…0062e0             74 72 75 65 0a 65 6c 73 65 0a 70 61 72 61 6d 65 72 72 6f 72 28 34 29 3b 0a 0a 65 6e 64 3b 0a 70   ┆true else paramerror(4);  end; p┆
0x0062e0…006300             61 72 61 6d 6e 6f 3a 3d 20 70 61 72 61 6d 6e 6f 20 2b 20 31 3b 0a 73 65 70 3a 3d 20 70 61 72 61   ┆aramno:= paramno + 1; sep:= para┆
0x006300…006320             6d 72 65 61 64 20 28 70 61 72 61 6d 6e 6f 2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72   ┆mread (paramno, call_line_number┆
0x006320…006340             2c 20 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 61 6d 65 29 3b 0a 65 6e 64 3b 0a 69 66 20 6e 6f 74 20 6f   ┆, call_line_name); end; if not o┆
0x006340…006360             6b 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 27 20 63 61   ┆k then begin writeln(output,' ca┆
0x006360…006380             6c 6c 20 73 79 6e 74 61 78 20 69 73 3a 27 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c   ┆ll syntax is:'); writeln(output,┆
0x006380…0063a0             0a 27 28 3c 6f 75 74 66 69 6c 3e 3d 29 63 6f 6d 70 61 72 65 20 3c 69 6e 66 69 6c 31 28 2d 73 74   ┆ '(<outfil>=)compare <infil1(-st┆
0x0063a0…0063c0             6f 70 29 3e 20 3c 69 6e 66 69 6c 32 28 2d 73 74 6f 70 29 3e 27 29 3b 0a 77 72 69 74 65 6c 6e 28   ┆op)> <infil2(-stop)>'); writeln(┆
0x0063c0…0063e0             6f 75 74 70 75 74 2c 0a 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 72   ┆output, '                   (fir┆
0x0063e0…006400             73 74 2d 3c 70 61 67 65 6e 6f 3e 29 20 28 6c 61 73 74 2d 3c 70 61 67 65 6e 6f 3e 29 20 28 6d 61   ┆st-<pageno>) (last-<pageno>) (ma┆
0x006400…006420 (1, 1, 6)   78 64 69 66 73 2d 3c 6d 64 3e 29 27 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 0a 27   ┆xdifs-<md>)'); writeln(output, '┆
0x006420…006440             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6d 64 3e 20 69 73 20 75 70 70 65 72   ┆                   <md> is upper┆
0x006440…006460             20 6c 69 6d 69 74 20 6f 66 20 73 68 6f 77 6e 20 64 69 66 66 65 72 65 6e 74 20 77 6f 72 64 73 27   ┆ limit of shown different words'┆
0x006460…006480             29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 0a 27 20 20 20 20 20 20 20 20 20 20 20 20   ┆); writeln(output, '            ┆
0x006480…0064a0             20 20 20 20 20 20 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 3a 20 66 69 72 73 74 2d 30 20 6c   ┆       default values: first-0 l┆
0x0064a0…0064c0             61 73 74 2d 33 32 30 30 30 20 6d 61 78 64 69 66 73 2d 33 32 30 30 30 27 29 3b 0a 77 72 69 74 65   ┆ast-32000 maxdifs-32000'); write┆
0x0064c0…0064e0             6c 6e 28 6f 75 74 70 75 74 29 3b 0a 72 74 70 68 61 6c 74 28 66 61 6c 73 65 29 3b 0a 65 6e 64 3b   ┆ln(output); rtphalt(false); end;┆
0x0064e0…006500             20 28 2a 20 6e 6f 74 20 6f 6b 20 2a 29 0a 65 6e 64 3b 0a 0a 62 65 67 69 6e 0a 0a 73 61 76 65 65   ┆ (* not ok *) end;  begin  savee┆
0x006500…006520             78 69 74 20 20 20 20 20 20 20 20 20 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a 65 78 69 74 70 72 6f   ┆xit         := exitproc; exitpro┆
0x006520…006540             63 20 20 20 20 20 20 20 20 20 3a 3d 20 40 65 78 63 65 70 74 69 6f 6e 3b 0a 0a 73 65 70 20 20 20   ┆c         := @exception;  sep   ┆
0x006540…006560             20 20 20 20 20 20 20 20 20 20 20 3a 3d 20 30 3b 0a 70 61 72 61 6d 6e 6f 20 20 20 20 20 20 20 20   ┆           := 0; paramno        ┆
0x006560…006580             20 20 3a 3d 20 30 3b 0a 63 61 6c 6c 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 20 3a 3d 20 30 3b 0a 6f   ┆  := 0; call_line_number := 0; o┆
0x006580…0065a0             6b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 3d 20 74 72 75 65 3b 0a 0a 66 69 72 73 74 5f   ┆k               := true;  first_┆
0x0065a0…0065c0             70 61 67 65 20 20 20 20 20 20 20 3a 3d 20 30 3b 0a 6c 61 73 74 5f 70 61 67 65 20 20 20 20 20 20   ┆page       := 0; last_page      ┆
0x0065c0…0065e0             20 20 3a 3d 20 33 32 30 30 30 3b 0a 6d 61 78 5f 64 69 66 73 20 20 20 20 20 20 20 20 20 3a 3d 20   ┆  := 32000; max_difs         := ┆
0x0065e0…006600             33 32 30 30 30 3b 0a 73 77 61 70 31 20 20 20 20 20 20 20 20 20 20 20 20 3a 3d 20 66 61 6c 73 65   ┆32000; swap1            := false┆
0x006600…006620 (1, 1, 7)   3b 0a 73 77 61 70 32 20 20 20 20 20 20 20 20 20 20 20 20 3a 3d 20 66 61 6c 73 65 3b 0a 61 6c 6c   ┆; swap2            := false; all┆
0x006620…006640             5f 64 69 66 66 20 20 20 20 20 20 20 20 20 3a 3d 20 66 61 6c 73 65 3b 0a 73 74 6f 70 31 20 20 20   ┆_diff         := false; stop1   ┆
0x006640…006660             20 20 20 20 20 20 20 20 20 3a 3d 20 66 61 6c 73 65 3b 0a 73 74 6f 70 32 20 20 20 20 20 20 20 20   ┆         := false; stop2        ┆
0x006660…006680             20 20 20 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 66 69 6c 31 5f 72 65 63 20 20 20 20 20 20 20 20 20   ┆    := false;  fil1_rec         ┆
0x006680…0066a0             3a 3d 20 2d 31 3b 0a 66 69 6c 32 5f 72 65 63 20 20 20 20 20 20 20 20 20 3a 3d 20 2d 31 3b 0a 66   ┆:= -1; fil2_rec         := -1; f┆
0x0066a0…0066c0             69 6c 31 5f 69 78 20 20 20 20 20 20 20 20 20 20 3a 3d 20 66 69 6c 6d 61 78 3b 0a 66 69 6c 32 5f   ┆il1_ix          := filmax; fil2_┆
0x0066c0…0066e0             69 78 20 20 20 20 20 20 20 20 20 20 3a 3d 20 66 69 6c 6d 61 78 3b 0a 6e 65 77 28 66 69 6c 31 5f   ┆ix          := filmax; new(fil1_┆
0x0066e0…006700             70 74 72 29 3b 0a 6e 65 77 28 66 69 6c 32 5f 70 74 72 29 3b 0a 0a 61 73 73 69 67 6e 5f 61 6c 66   ┆ptr); new(fil2_ptr);  assign_alf┆
0x006700…006720             61 28 6f 75 74 70 75 74 5f 66 69 6c 65 5f 6e 61 6d 65 2c 20 27 6f 75 74 70 75 74 27 29 3b 0a 67   ┆a(output_file_name, 'output'); g┆
0x006720…006740             65 74 5f 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 61 73 73 69 67 6e 28 66 69 6c 31 2c 20 66 69 6c   ┆et_parameters;  assign(fil1, fil┆
0x006740…006760             31 5f 6e 61 6d 65 29 3b 0a 72 65 73 65 74 28 66 69 6c 31 2c 20 32 29 3b 0a 61 73 73 69 67 6e 28   ┆1_name); reset(fil1, 2); assign(┆
0x006760…006780             66 69 6c 32 2c 20 66 69 6c 32 5f 6e 61 6d 65 29 3b 0a 72 65 73 65 74 20 28 66 69 6c 32 2c 20 32   ┆fil2, fil2_name); reset (fil2, 2┆
0x006780…0067a0             29 3b 0a 0a 68 65 6c 70 5f 6c 6f 6e 67 20 3a 3d 20 66 69 6c 65 73 69 7a 65 28 66 69 6c 31 29 3b   ┆);  help_long := filesize(fil1);┆
0x0067a0…0067c0             0a 6d 61 78 31 5f 72 65 63 20 20 3a 3d 20 68 65 6c 70 5f 6c 6f 6e 67 20 64 69 76 20 66 69 6c 6d   ┆ max1_rec  := help_long div film┆
0x0067c0…0067e0             61 78 3b 0a 6d 61 78 31 5f 6c 61 73 74 20 3a 3d 20 68 65 6c 70 5f 6c 6f 6e 67 20 2d 20 6d 61 78   ┆ax; max1_last := help_long - max┆
0x0067e0…006800             31 5f 72 65 63 2a 66 69 6c 6d 61 78 3b 0a 65 6f 66 31 20 20 20 20 20 20 3a 3d 20 68 65 6c 70 5f   ┆1_rec*filmax; eof1      := help_┆
0x006800…006820 (1, 1, 8)   6c 6f 6e 67 20 3d 20 30 3b 0a 68 65 6c 70 5f 6c 6f 6e 67 20 3a 3d 20 66 69 6c 65 73 69 7a 65 28   ┆long = 0; help_long := filesize(┆
0x006820…006840             66 69 6c 32 29 3b 0a 6d 61 78 32 5f 72 65 63 20 20 3a 3d 20 68 65 6c 70 5f 6c 6f 6e 67 20 64 69   ┆fil2); max2_rec  := help_long di┆
0x006840…006860             76 20 66 69 6c 6d 61 78 3b 0a 6d 61 78 32 5f 6c 61 73 74 20 3a 3d 20 68 65 6c 70 5f 6c 6f 6e 67   ┆v filmax; max2_last := help_long┆
0x006860…006880             20 2d 20 6d 61 78 32 5f 72 65 63 2a 66 69 6c 6d 61 78 3b 0a 65 6f 66 32 20 20 20 20 20 20 3a 3d   ┆ - max2_rec*filmax; eof2      :=┆
0x006880…0068a0             20 68 65 6c 70 5f 6c 6f 6e 67 20 3d 20 30 3b 0a 0a 64 69 66 5f 63 6f 75 6e 74 3a 3d 20 30 3b 0a   ┆ help_long = 0;  dif_count:= 0; ┆
0x0068a0…0068c0             69 66 20 6f 75 74 70 75 74 5f 66 69 6c 65 5f 6e 61 6d 65 3c 3e 27 6f 75 74 70 75 74 27 20 74 68   ┆if output_file_name<>'output' th┆
0x0068c0…0068e0             65 6e 20 28 2a 20 6c 65 66 74 20 68 61 6e 64 20 73 69 64 65 20 69 6e 20 63 61 6c 6c 20 2a 29 0a   ┆en (* left hand side in call *) ┆
0x0068e0…006900             62 65 67 69 6e 0a 63 6c 6f 73 65 28 6f 75 74 70 75 74 29 3b 0a 61 73 73 69 67 6e 28 6f 75 74 70   ┆begin close(output); assign(outp┆
0x006900…006920             75 74 2c 20 6f 75 74 70 75 74 5f 66 69 6c 65 5f 6e 61 6d 65 29 3b 0a 72 65 77 72 69 74 65 28 6f   ┆ut, output_file_name); rewrite(o┆
0x006920…006940             75 74 70 75 74 29 3b 0a 65 6e 64 3b 20 28 2a 20 72 65 73 75 6c 74 20 6f 6e 20 64 69 73 63 20 66   ┆utput); end; (* result on disc f┆
0x006940…006960             69 6c 65 20 2a 29 0a 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 27 70 61 67 65 20 62 79 74   ┆ile *)  writeln(output,'page byt┆
0x006960…006980             65 20 20 20 27 2c 66 69 6c 31 5f 6e 61 6d 65 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆e   ',fil1_name,'               ┆
0x006980…0069a0             20 20 20 20 20 20 20 27 2c 66 69 6c 32 5f 6e 61 6d 65 29 3b 0a 0a 28 2a 20 73 65 74 20 70 6f 73   ┆       ',fil2_name);  (* set pos┆
0x0069a0…0069c0             69 74 69 6f 6e 20 6f 6e 20 69 6e 70 75 74 20 66 69 6c 65 73 20 2a 29 0a 66 6f 72 20 70 61 67 65   ┆ition on input files *) for page┆
0x0069c0…0069e0             63 6f 75 6e 74 3a 3d 20 30 20 74 6f 20 66 69 72 73 74 5f 70 61 67 65 2d 31 20 64 6f 0a 66 6f 72   ┆count:= 0 to first_page-1 do for┆
0x0069e0…006a00             20 77 63 6f 75 6e 74 3a 3d 20 30 20 74 6f 20 32 35 35 20 64 6f 20 69 6e 5f 66 69 6c 31 28 20 69   ┆ wcount:= 0 to 255 do in_fil1( i┆
0x006a00…006a20 (1, 1, 9)   6e 74 76 61 6c 31 20 29 3b 0a 66 6f 72 20 70 61 67 65 63 6f 75 6e 74 3a 3d 20 30 20 74 6f 20 66   ┆ntval1 ); for pagecount:= 0 to f┆
0x006a20…006a40             69 72 73 74 5f 70 61 67 65 20 2d 20 31 20 64 6f 0a 66 6f 72 20 77 63 6f 75 6e 74 3a 3d 20 30 20   ┆irst_page - 1 do for wcount:= 0 ┆
0x006a40…006a60             74 6f 20 32 35 35 20 64 6f 20 69 6e 5f 66 69 6c 32 28 20 69 6e 74 76 61 6c 32 20 29 3b 0a 0a 70   ┆to 255 do in_fil2( intval2 );  p┆
0x006a60…006a80             61 67 65 63 6f 75 6e 74 3a 3d 20 66 69 72 73 74 5f 70 61 67 65 3b 0a 77 68 69 6c 65 20 70 61 67   ┆agecount:= first_page; while pag┆
0x006a80…006aa0             65 63 6f 75 6e 74 20 3c 3d 20 6c 61 73 74 5f 70 61 67 65 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20   ┆ecount <= last_page do begin if ┆
0x006aa0…006ac0             65 6f 66 31 20 6f 72 20 65 6f 66 32 20 74 68 65 6e 0a 62 65 67 69 6e 0a 20 20 70 61 67 65 63 6f   ┆eof1 or eof2 then begin   pageco┆
0x006ac0…006ae0             75 6e 74 20 3a 3d 20 6c 61 73 74 5f 70 61 67 65 3b 0a 65 6e 64 20 65 6c 73 65 0a 62 65 67 69 6e   ┆unt := last_page; end else begin┆
0x006ae0…006b00             0a 69 66 20 74 65 73 74 5f 6f 75 74 20 74 68 65 6e 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20   ┆ if test_out then write(output, ┆
0x006b00…006b20             70 61 67 65 63 6f 75 6e 74 3a 38 29 3b 0a 77 63 6f 75 6e 74 20 3a 3d 20 30 3b 0a 77 68 69 6c 65   ┆pagecount:8); wcount := 0; while┆
0x006b20…006b40             20 77 63 6f 75 6e 74 3c 3d 20 32 35 35 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 65 6f 66 31 20 74   ┆ wcount<= 255 do begin if eof1 t┆
0x006b40…006b60             68 65 6e 20 69 6e 74 76 61 6c 31 3a 3d 20 30 20 65 6c 73 65 20 69 6e 5f 66 69 6c 31 28 20 69 6e   ┆hen intval1:= 0 else in_fil1( in┆
0x006b60…006b80             74 76 61 6c 31 20 29 3b 0a 69 66 20 65 6f 66 32 20 74 68 65 6e 20 69 6e 74 76 61 6c 32 3a 3d 20   ┆tval1 ); if eof2 then intval2:= ┆
0x006b80…006ba0             30 20 65 6c 73 65 20 69 6e 5f 66 69 6c 32 28 20 69 6e 74 76 61 6c 32 20 29 3b 0a 69 66 20 65 6f   ┆0 else in_fil2( intval2 ); if eo┆
0x006ba0…006bc0             66 31 20 74 68 65 6e 20 69 66 20 73 74 6f 70 31 20 74 68 65 6e 20 69 6e 74 76 61 6c 31 20 3a 3d   ┆f1 then if stop1 then intval1 :=┆
0x006bc0…006be0             20 69 6e 74 76 61 6c 32 3b 0a 69 66 20 65 6f 66 32 20 74 68 65 6e 20 69 66 20 73 74 6f 70 32 20   ┆ intval2; if eof2 then if stop2 ┆
0x006be0…006c00             74 68 65 6e 20 69 6e 74 76 61 6c 32 20 3a 3d 20 69 6e 74 76 61 6c 31 3b 0a 0a 69 66 20 28 69 6e   ┆then intval2 := intval1;  if (in┆
0x006c00…006c20 (1, 1, 10)  74 76 61 6c 31 3c 3e 69 6e 74 76 61 6c 32 29 20 6f 72 20 28 61 6c 6c 5f 64 69 66 66 29 20 74 68   ┆tval1<>intval2) or (all_diff) th┆
0x006c20…006c40             65 6e 0a 62 65 67 69 6e 0a 64 69 66 5f 63 6f 75 6e 74 3a 3d 20 64 69 66 5f 63 6f 75 6e 74 2b 31   ┆en begin dif_count:= dif_count+1┆
0x006c40…006c60             3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 70 61 67 65 63 6f 75 6e 74 3a 20 33 2c 20 77 63   ┆; write(output, pagecount: 3, wc┆
0x006c60…006c80             6f 75 6e 74 2a 32 3a 20 34 2c 20 27 3a 27 2c 20 69 6e 74 76 61 6c 31 3a 20 38 29 3b 0a 62 79 74   ┆ount*2: 4, ':', intval1: 8); byt┆
0x006c80…006ca0             31 20 3a 3d 20 69 6e 74 76 61 6c 31 20 73 68 72 20 38 3b 0a 62 79 74 32 20 3a 3d 20 69 6e 74 76   ┆1 := intval1 shr 8; byt2 := intv┆
0x006ca0…006cc0             61 6c 31 20 61 6e 64 20 32 35 35 3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 62 79 74 31 3a   ┆al1 and 255; write(output, byt1:┆
0x006cc0…006ce0             20 34 2c 20 62 79 74 32 3a 20 34 2c 20 27 20 27 29 3b 0a 63 68 31 20 3a 3d 20 63 68 72 28 62 79   ┆ 4, byt2: 4, ' '); ch1 := chr(by┆
0x006ce0…006d00             74 31 29 3b 0a 63 68 32 20 3a 3d 20 63 68 72 28 62 79 74 32 29 3b 0a 69 66 20 28 63 68 31 20 3e   ┆t1); ch2 := chr(byt2); if (ch1 >┆
0x006d00…006d20             3d 27 20 27 29 20 61 6e 64 20 28 62 79 74 31 3c 31 32 37 29 20 74 68 65 6e 20 77 72 69 74 65 28   ┆=' ') and (byt1<127) then write(┆
0x006d20…006d40             6f 75 74 70 75 74 2c 20 63 68 31 29 20 65 6c 73 65 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27   ┆output, ch1) else write(output,'┆
0x006d40…006d60             2e 27 29 3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 20 27 29 3b 0a 69 66 20 28 63 68 32   ┆.'); write(output, ' '); if (ch2┆
0x006d60…006d80             20 3e 3d 27 20 27 29 20 61 6e 64 20 28 62 79 74 32 3c 31 32 37 29 20 74 68 65 6e 20 77 72 69 74   ┆ >=' ') and (byt2<127) then writ┆
0x006d80…006da0             65 28 6f 75 74 70 75 74 2c 20 63 68 32 29 20 65 6c 73 65 20 77 72 69 74 65 28 6f 75 74 70 75 74   ┆e(output, ch2) else write(output┆
0x006da0…006dc0             2c 27 2e 27 29 3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 20 27 29 3b 0a 62 79 74 31 20   ┆,'.'); write(output, ' '); byt1 ┆
0x006dc0…006de0             3a 3d 20 69 6e 74 76 61 6c 32 20 73 68 72 20 38 3b 0a 62 79 74 32 20 3a 3d 20 69 6e 74 76 61 6c   ┆:= intval2 shr 8; byt2 := intval┆
0x006de0…006e00             32 20 61 6e 64 20 32 35 35 3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 69 6e 74 76 61 6c 32   ┆2 and 255; write(output, intval2┆
0x006e00…006e20 (1, 1, 11)  20 3a 32 30 2c 20 62 79 74 31 3a 20 34 2c 20 62 79 74 32 3a 20 34 2c 20 27 20 27 29 3b 0a 63 68   ┆ :20, byt1: 4, byt2: 4, ' '); ch┆
0x006e20…006e40             31 20 3a 3d 20 63 68 72 28 62 79 74 31 29 3b 0a 63 68 32 20 3a 3d 20 63 68 72 28 62 79 74 32 29   ┆1 := chr(byt1); ch2 := chr(byt2)┆
0x006e40…006e60             3b 0a 69 66 20 28 63 68 31 20 3e 3d 27 20 27 29 20 61 6e 64 20 28 62 79 74 31 3c 31 32 37 29 20   ┆; if (ch1 >=' ') and (byt1<127) ┆
0x006e60…006e80             74 68 65 6e 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 63 68 31 29 20 65 6c 73 65 20 77 72 69   ┆then write(output, ch1) else wri┆
0x006e80…006ea0             74 65 28 6f 75 74 70 75 74 2c 27 2e 27 29 3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 20   ┆te(output,'.'); write(output, ' ┆
0x006ea0…006ec0             27 29 3b 0a 69 66 20 28 63 68 32 20 3e 3d 27 20 27 29 20 61 6e 64 20 28 62 79 74 32 3c 31 32 37   ┆'); if (ch2 >=' ') and (byt2<127┆
0x006ec0…006ee0             29 20 74 68 65 6e 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 63 68 32 29 20 65 6c 73 65 20 77   ┆) then write(output, ch2) else w┆
0x006ee0…006f00             72 69 74 65 28 6f 75 74 70 75 74 2c 27 2e 27 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74   ┆rite(output,'.'); writeln(output┆
0x006f00…006f20             29 3b 0a 69 66 20 64 69 66 5f 63 6f 75 6e 74 3e 3d 6d 61 78 5f 64 69 66 73 20 74 68 65 6e 0a 62   ┆); if dif_count>=max_difs then b┆
0x006f20…006f40             65 67 69 6e 0a 20 20 77 63 6f 75 6e 74 20 3a 3d 20 32 35 35 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b   ┆egin   wcount := 255; end;  end;┆
0x006f40…006f60             0a 77 63 6f 75 6e 74 20 3a 3d 20 77 63 6f 75 6e 74 20 2b 20 31 3b 0a 65 6e 64 3b 20 28 2a 20 66   ┆ wcount := wcount + 1; end; (* f┆
0x006f60…006f80             6f 72 20 77 63 6f 75 6e 74 2e 2e 2e 20 2a 29 0a 65 6e 64 3b 0a 0a 69 66 20 64 69 66 5f 63 6f 75   ┆or wcount... *) end;  if dif_cou┆
0x006f80…006fa0             6e 74 3e 3d 6d 61 78 5f 64 69 66 73 20 74 68 65 6e 0a 62 65 67 69 6e 0a 20 20 70 61 67 65 63 6f   ┆nt>=max_difs then begin   pageco┆
0x006fa0…006fc0             75 6e 74 20 3a 3d 20 6c 61 73 74 5f 70 61 67 65 3b 0a 65 6e 64 3b 0a 70 61 67 65 63 6f 75 6e 74   ┆unt := last_page; end; pagecount┆
0x006fc0…006fe0             20 3a 3d 20 70 61 67 65 63 6f 75 6e 74 20 2b 20 31 3b 0a 65 6e 64 3b 20 28 2a 20 66 6f 72 20 70   ┆ := pagecount + 1; end; (* for p┆
0x006fe0…007000             61 67 65 20 63 6f 75 6e 74 2e 2e 2e 20 2a 29 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b   ┆age count... *) writeln(output);┆
0x007000…007020 (1, 1, 12)  20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74   ┆ writeln(output); writeln(output┆
0x007020…007040             2c 20 64 69 66 5f 63 6f 75 6e 74 3a 20 38 2c 20 27 20 6d 69 73 6d 61 74 63 68 65 73 27 29 3b 0a   ┆, dif_count: 8, ' mismatches'); ┆
0x007040…007060             63 6c 6f 73 65 28 66 69 6c 31 29 3b 0a 63 6c 6f 73 65 28 66 69 6c 32 29 3b 0a 0a 65 6e 64 2e 0a   ┆close(fil1); close(fil2);  end. ┆
0x007060…007080             20 0a 01 45 20 31 0a 69 74 65 28 6f 75 74 70 75 74 2c 20 63 68 31 29 20 65 6c 73 65 20 77 72 69   ┆   E 1 ite(output, ch1) else wri┆
0x007080…0070a0             74 65 28 6f 75 74 70 75 74 2c 27 2e 27 29 3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 20   ┆te(output,'.'); write(output, ' ┆
0x0070a0…0070c0             27 29 3b 0a 69 66 20 28 63 68 32 20 3e 3d 27 20 27 29 20 61 6e 64 20 28 62 79 74 32 3c 31 32 37   ┆'); if (ch2 >=' ') and (byt2<127┆
0x0070c0…0070e0             29 20 74 68 65 6e 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 63 68 32 29 20 65 6c 73 65 20 77   ┆) then write(output, ch2) else w┆
0x0070e0…007100             72 69 74 65 28 6f 75 74 70 75 74 2c 27 2e 27 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74   ┆rite(output,'.'); writeln(output┆
0x007100…007120             29 3b 0a 69 66 20 64 69 66 5f 63 6f 75 6e 74 3e 3d 6d 61 78 5f 64 69 66 73 20 74 68 65 6e 0a 62   ┆); if dif_count>=max_difs then b┆
0x007120…007140             65 67 69 6e 0a 20 20 77 63 6f 75 6e 74 20 3a 3d 20 32 35 35 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b   ┆egin   wcount := 255; end;  end;┆
0x007140…007160             0a 77 63 6f 75 6e 74 20 3a 3d 20 77 63 6f 75 6e 74 20 2b 20 31 3b 0a 65 6e 64 3b 20 28 2a 20 66   ┆ wcount := wcount + 1; end; (* f┆
0x007160…007180             6f 72 20 77 63 6f 75 6e 74 2e 2e 2e 20 2a 29 0a 65 6e 64 3b 0a 0a 69 66 20 64 69 66 5f 63 6f 75   ┆or wcount... *) end;  if dif_cou┆
0x007180…0071a0             6e 74 3e 3d 6d 61 78 5f 64 69 66 73 20 74 68 65 6e 0a 62 65 67 69 6e 0a 20 20 70 61 67 65 63 6f   ┆nt>=max_difs then begin   pageco┆
0x0071a0…0071c0             75 6e 74 20 3a 3d 20 6c 61 73 74 5f 70 61 67 65 3b 0a 65 6e 64 3b 0a 70 61 67 65 63 6f 75 6e 74   ┆unt := last_page; end; pagecount┆
0x0071c0…0071e0             20 3a 3d 20 70 61 67 65 63 6f 75 6e 74 20 2b 20 31 3b 0a 65 6e 64 3b 20 28 2a 20 66 6f 72 20 70   ┆ := pagecount + 1; end; (* for p┆
0x0071e0…007200             61 67 65 20 63 6f 75 6e 74 2e 2e 2e 20 2a 29 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b   ┆age count... *) writeln(output);┆
0x007200…007220 (1, 1, 13)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 63 6f 6d 70 72 65 73 73 2e 70 61   ┆../sw2103/src/util/s.compress.pa┆
0x007220…007240             73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆s                               ┆
0x007240…007260             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x007260…007280             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x007280…0072a0             20 20 35 37 32 37 32 20 20 35 32 36 35 32 37 36 34 34 35 20 20 31 31 37 32 35 00 20 00 00 00 00   ┆  57272  5265276445  11725      ┆
0x0072a0…0072c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x007400…007420 (1, 1, 14)  01 68 33 34 37 30 32 0a 01 73 20 30 30 30 30 36 2f 30 30 30 30 33 2f 30 30 37 31 31 0a 01 64 20   ┆ h34702  s 00006/00003/00711  d ┆
0x007420…007440             44 20 31 2e 33 20 39 32 2f 31 30 2f 30 39 20 31 33 3a 33 37 3a 35 35 20 73 77 32 31 30 33 20 32   ┆D 1.3 92/10/09 13:37:55 sw2103 2┆
0x007440…007460             20 31 0a 01 63 20 53 43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01   ┆ 1  c SCCS info and UNIX used.  ┆
0x007460…007480             65 0a 01 73 20 30 30 37 31 34 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20 44 20 31 2e 32 20   ┆e  s 00714/00000/00000  d D 1.2 ┆
0x007480…0074a0             39 32 2f 31 30 2f 30 39 20 31 32 3a 31 36 3a 34 34 20 73 77 32 31 30 33 20 31 20 30 0a 01 63 20   ┆92/10/09 12:16:44 sw2103 1 0  c ┆
0x0074a0…0074c0             53 43 43 53 2c 20 54 75 72 62 6f 20 50 61 73 63 61 6c 2c 20 61 6e 64 20 44 4f 53 20 75 73 65 64   ┆SCCS, Turbo Pascal, and DOS used┆
0x0074c0…0074e0             2c 20 70 61 72 61 6d 65 74 65 72 20 2f 4c 20 61 64 64 65 64 2e 0a 01 65 0a 01 75 0a 01 55 0a 01   ┆, parameter /L added.  e  u  U  ┆
0x0074e0…007500             74 0a 01 54 0a 01 49 20 31 0a 0a 50 72 6f 67 72 61 6d 20 63 6f 6d 70 72 65 73 73 20 28 20 73 6f   ┆t  T  I 1  Program compress ( so┆
0x007500…007520             75 72 63 65 5f 73 70 65 63 2c 20 64 65 73 74 69 6e 61 74 69 6f 6e 5f 73 70 65 63 29 3b 0a 0a 28   ┆urce_spec, destination_spec);  (┆
0x007520…007540             2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆*-------------------------------┆
0x007540…007560             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d   ┆------------------------------ -┆
0x007560…007580             2d 20 4d 6f 64 75 6c 65 3a 20 20 20 20 52 54 50 43 4f 4d 50 52 45 53 53 0a 2d 2d 20 46 69 6c 65   ┆- Module:    RTPCOMPRESS -- File┆
0x007580…0075a0             3a 20 20 20 20 20 20 43 4f 4d 50 52 45 53 53 2e 50 41 53 0a 2d 2d 20 50 61 63 6b 61 67 65 3a 20   ┆:      COMPRESS.PAS -- Package: ┆
0x0075a0…0075c0             20 20 53 57 32 31 30 33 20 20 20 20 53 75 62 73 79 73 74 65 6d 3a 20 55 54 49 4c 49 54 59 20 20   ┆  SW2103    Subsystem: UTILITY  ┆
0x0075c0…0075e0             20 50 72 6f 67 72 61 6d 3a 20 43 4f 4d 50 52 45 53 53 0a 2d 2d 0a 2d 2d 20 43 6f 6e 74 65 6e 74   ┆ Program: COMPRESS -- -- Content┆
0x0075e0…007600             73 3a 20 20 41 20 70 72 6f 67 72 61 6d 20 74 6f 20 72 65 6d 6f 76 65 20 63 6f 6d 6d 65 6e 74 73   ┆s:  A program to remove comments┆
0x007600…007620 (1, 1, 15)  20 61 6e 64 20 73 70 61 63 65 73 20 65 74 63 2e 20 66 72 6f 6d 0a 2d 2d 09 20 20 20 20 20 20 74   ┆ and spaces etc. from --       t┆
0x007620…007640             65 78 74 73 20 28 20 65 2e 67 2e 20 52 54 50 38 36 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 29 20   ┆exts ( e.g. RTP86 environments) ┆
0x007640…007660             74 6f 20 73 61 76 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 74 69 6d 65 2e 0a 2d 2d 0a 2d 2d 20   ┆to save compilation time. -- -- ┆
0x007660…007680             50 72 6f 67 72 61 6d 20 63 61 6c 6c 3a 20 20 43 4f 4d 50 52 45 53 53 20 3c 73 6f 75 72 63 65 66   ┆Program call:  COMPRESS <sourcef┆
0x007680…0076a0             69 6c 65 3e 20 3c 64 65 73 74 69 6e 61 74 69 6f 6e 66 69 6c 65 3e 20 7b 6f 70 74 69 6f 6e 73 7d   ┆ile> <destinationfile> {options}┆
0x0076a0…0076c0             0a 2d 2d 09 09 6f 70 74 69 6f 6e 73 3a 0a 2d 2d 09 09 2f 50 09 70 72 6f 6d 70 74 20 62 65 66 6f   ┆ --  options: --  /P prompt befo┆
0x0076c0…0076e0             72 65 20 70 72 6f 63 65 73 73 69 6e 67 20 65 61 63 68 20 66 69 6c 65 0a 2d 2d 09 09 2f 4d 09 6f   ┆re processing each file --  /M o┆
0x0076e0…007700             6e 6c 79 20 6d 6f 64 69 66 69 65 64 20 73 6f 75 72 63 65 73 20 61 72 65 20 70 72 6f 63 65 73 73   ┆nly modified sources are process┆
0x007700…007720             65 64 0a 2d 2d 09 09 2f 4e 09 6e 6f 20 6f 76 65 72 77 72 69 74 65 20 28 63 6f 6e 66 69 72 6d 20   ┆ed --  /N no overwrite (confirm ┆
0x007720…007740             62 65 66 6f 72 65 20 6f 76 65 72 77 72 69 74 69 6e 67 20 61 20 66 69 6c 65 29 0a 2d 2d 09 09 2f   ┆before overwriting a file) --  /┆
0x007740…007760             4c 09 65 6d 70 74 79 20 6c 69 6e 65 73 20 6e 6f 74 20 72 65 6d 6f 76 65 64 0a 2d 2d 0a 2d 2d 0a   ┆L empty lines not removed -- -- ┆
0x007760…007780             2d 2d 20 50 72 65 72 65 71 75 69 73 69 74 65 73 3a 20 20 44 4f 53 2c 20 43 62 72 65 61 6b 0a 2d   ┆-- Prerequisites:  DOS, Cbreak -┆
0x007780…0077a0             2d 0a 2d 2d 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3a 20 53 57 32 31 30 33 20 50 61 63 6b 61   ┆- -- Documentation: SW2103 Packa┆
0x0077a0…0077c0             67 65 20 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 2d 2d 09 09 20 20 50 4e 3a 20 39 39 30 30 30 39   ┆ge Description, --    PN: 990009┆
0x0077c0…0077e0             39 34 20 52 43 33 35 30 32 20 52 65 61 6c 20 54 69 6d 65 20 50 61 73 63 61 6c 2c 20 70 61 67 65   ┆94 RC3502 Real Time Pascal, page┆
0x0077e0…007800             20 31 35 32 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 6d 65 64 20 62 79 20 49 4e 42 2c 20 4a 41   ┆ 152 -- -- Programmed by INB, JA┆
0x007800…007820 (2, 0, 1)   42 41 2c 20 48 45 4a 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 39 20 62 79   ┆BA, HEJ -- Copyright (C) 1989 by┆
0x007820…007840             20 52 43 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 0a 01 49 20 32 0a 2d 2d 20 43 6f 70 79 72 69   ┆ RC International  I 2 -- Copyri┆
0x007840…007860             67 68 74 20 28 43 29 20 31 39 39 32 20 62 79 20 44 41 4e 4f 53 49 0a 01 45 20 32 0a 2d 2d 2d 2d   ┆ght (C) 1992 by DANOSI  E 2 ----┆
0x007860…007880             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x007880…0078a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 56   ┆--------------------------- -- V┆
0x0078a0…0078c0             65 72 73 69 6f 6e 20 68 69 73 74 6f 72 79 3a 0a 2d 2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44 61 74   ┆ersion history: -- -- Vers.  Dat┆
0x0078c0…0078e0             65 20 20 20 20 20 20 49 6e 69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d   ┆e      Init. Text -- ----   ----┆
0x0078e0…007900             2d 2d 2d 2d 20 20 2d 2d 2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆----  ----  --------------------┆
0x007900…007920             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 31 2e 30 20 20 20 20 38 35 2e   ┆------------------ -- 1.0    85.┆
0x007920…007940             31 30 2e 30 31 20 20 4a 41 42 41 20 20 46 69 72 73 74 20 76 65 72 73 69 6f 6e 2e 0a 2d 2d 20 31   ┆10.01  JABA  First version. -- 1┆
0x007940…007960             2e 31 20 20 20 20 38 37 2e 31 32 2e 30 31 20 20 49 4e 42 20 20 20 63 6f 6d 6d 65 6e 74 20 2d 2d   ┆.1    87.12.01  INB   comment --┆
0x007960…007980             20 61 64 64 65 64 2e 0a 2d 2d 20 31 2e 32 20 20 20 20 38 39 2e 30 37 2e 31 32 20 20 48 45 4a 20   ┆ added. -- 1.2    89.07.12  HEJ ┆
0x007980…0079a0             20 20 54 55 52 42 4f 20 50 41 53 43 41 4c 20 76 65 72 73 69 6f 6e 2e 0a 2d 2d 20 31 2e 32 20 20   ┆  TURBO PASCAL version. -- 1.2  ┆
0x0079a0…0079c0             20 20 38 39 2e 31 30 2e 31 38 20 20 48 45 4a 20 20 20 4f 75 74 70 75 74 20 72 65 64 69 72 65 63   ┆  89.10.18  HEJ   Output redirec┆
0x0079c0…0079e0             74 69 6f 6e 20 63 6f 72 72 65 63 74 65 64 2c 20 6f 70 74 69 6f 6e 2d 6c 20 61 64 64 65 64 2e 0a   ┆tion corrected, option-l added. ┆
0x0079e0…007a00             01 49 20 32 0a 2d 2d 20 31 2e 33 20 20 20 20 39 32 2e 31 30 2e 30 39 20 20 48 45 4a 20 20 20 53   ┆ I 2 -- 1.3    92.10.09  HEJ   S┆
0x007a00…007a20 (2, 0, 2)   43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01 45 20 32 0a 2d 2d 0a   ┆CCS info and UNIX used.  E 2 -- ┆
0x007a20…007a40             01 44 20 32 0a 2d 2d 0a 01 45 20 32 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ D 2 --  E 2 -------------------┆
0x007a40…007a60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x007a60…007a80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 7b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆---------- *) { ----------------┆
0x007a80…007aa0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x007aa0…007ac0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f   ┆------------------- -- SCCS info┆
0x007ac0…007ae0             72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75   ┆rmation -- File   :  %P% -- Modu┆
0x007ae0…007b00             6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61   ┆le :  %M% -- Version:  %I% -- Da┆
0x007b00…007b20             74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆te   :  %E%  %U% ---------------┆
0x007b20…007b40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x007b40…007b60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 7d 0a 0a 0c 0a 0a 28 2a 24 4d 20   ┆-------------------- }     (*$M ┆
0x007b60…007b80             34 30 39 36 2c 30 2c 30 20 20 73 74 61 63 6b 73 69 7a 65 20 20 20 20 2a 29 0a 28 2a 24 52 2b 20   ┆4096,0,0  stacksize    *) (*$R+ ┆
0x007b80…007ba0             20 20 20 20 20 20 20 20 20 72 61 6e 67 65 20 63 68 65 63 6b 20 20 2a 29 0a 0a 75 73 65 73 20 44   ┆         range check  *)  uses D┆
0x007ba0…007bc0             4f 53 2c 20 43 62 72 65 61 6b 3b 0a 0a 63 6f 6e 73 74 0a 01 44 20 32 0a 09 76 65 72 73 69 6f 6e   ┆OS, Cbreak;  const  D 2  version┆
0x007bc0…007be0             09 3d 20 27 20 76 65 72 73 69 6f 6e 20 25 52 25 2e 25 4c 25 2c 20 20 20 31 39 38 39 2e 31 30 2e   ┆ = ' version %R%.%L%,   1989.10.┆
0x007be0…007c00             31 38 20 20 20 27 3b 0a 01 45 20 32 0a 01 49 20 32 0a 09 73 63 63 73 5f 64 61 74 65 20 3d 20 27   ┆18   ';  E 2  I 2  sccs_date = '┆
0x007c00…007c20 (2, 0, 3)   25 45 25 27 20 3b 0a 01 45 20 32 0a 09 64 65 62 75 67 5f 6c 65 76 65 6c 20 20 3d 20 20 31 3b 09   ┆%E%' ;  E 2  debug_level  =  1; ┆
0x007c20…007c40             28 2a 20 20 73 6f 75 72 63 65 20 6f 70 74 69 6f 6e 73 20 20 2a 29 0a 09 64 65 66 5f 73 72 63 5f   ┆(*  source options  *)  def_src_┆
0x007c40…007c60             65 78 74 20 20 3d 20 20 27 2e 45 4e 56 27 3b 0a 09 64 65 66 5f 64 65 73 74 5f 65 78 74 20 3d 20   ┆ext  =  '.ENV';  def_dest_ext = ┆
0x007c60…007c80             20 27 2e 45 32 32 27 3b 0a 0a 63 6f 6e 73 74 20 20 62 6c 61 6e 6b 20 3d 20 27 20 27 3b 0a 20 20   ┆ '.E22';  const  blank = ' ';   ┆
0x007c80…007ca0             20 20 20 20 20 66 66 20 20 20 20 3d 20 20 23 31 32 3b 0a 20 20 20 20 20 20 20 6e 6c 20 20 20 20   ┆     ff    =  #12;        nl    ┆
0x007ca0…007cc0             3d 20 20 23 31 30 3b 0a 20 20 20 20 20 20 20 63 72 20 20 20 20 3d 20 20 23 31 33 3b 0a 0a 74 79   ┆=  #10;        cr    =  #13;  ty┆
0x007cc0…007ce0             70 65 0a 20 20 20 20 20 20 20 69 73 6f 20 20 3d 20 20 63 68 61 72 3b 0a 0a 74 79 70 65 20 20 20   ┆pe        iso  =  char;  type   ┆
0x007ce0…007d00             73 74 61 74 65 74 79 70 65 20 3d 20 20 28 20 73 74 61 72 74 2c 20 73 74 72 69 6e 67 31 2c 20 73   ┆statetype =  ( start, string1, s┆
0x007d00…007d20             74 72 69 6e 67 32 2c 20 73 65 70 5f 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆tring2, sep_s,                  ┆
0x007d20…007d40             20 20 20 6c 65 66 74 31 2c 20 73 74 61 72 31 2c 20 63 6f 6d 31 2c 20 63 6f 6d 31 73 74 61 72 2c   ┆   left1, star1, com1, com1star,┆
0x007d40…007d60             20 6f 70 74 69 6f 6e 31 2c 20 6f 70 31 73 74 61 72 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ option1, op1star,              ┆
0x007d60…007d80             20 20 20 20 20 20 20 6c 65 66 74 32 2c 20 73 74 61 72 32 2c 20 63 6f 6d 32 2c 20 63 6f 6d 32 73   ┆       left2, star2, com2, com2s┆
0x007d80…007da0             74 61 72 2c 20 6f 70 74 69 6f 6e 32 2c 20 6f 70 32 73 74 61 72 2c 20 6f 6e 65 64 61 73 68 2c 0a   ┆tar, option2, op2star, onedash, ┆
0x007da0…007dc0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 33 2c 20 20 73 74 6f 70 29   ┆                    com3,  stop)┆
0x007dc0…007de0             3b 0a 20 20 20 20 20 20 20 63 68 67 72 6f 75 70 74 79 70 65 3d 20 28 20 73 74 61 72 2c 20 73 65   ┆;        chgrouptype= ( star, se┆
0x007de0…007e00             70 61 72 61 74 6f 72 2c 20 6e 65 77 6c 69 6e 65 2c 20 64 65 6c 69 6d 2c 20 64 61 73 68 2c 0a 20   ┆parator, newline, delim, dash,  ┆
0x007e00…007e20 (2, 0, 4)   20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 66 74 70 31 2c 20 72 69 67 68 74   ┆                   leftp1, right┆
0x007e20…007e40             70 31 2c 20 6c 65 66 74 70 32 2c 20 72 69 67 68 74 70 32 2c 20 64 6f 6c 6c 61 72 2c 0a 20 20 20   ┆p1, leftp2, rightp2, dollar,    ┆
0x007e40…007e60             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 66 6e 75 6d 2c 20 73 69 6e 67 6c 65 71   ┆                 alfnum, singleq┆
0x007e60…007e80             75 6f 74 65 2c 20 64 6f 75 62 6c 65 71 75 6f 74 65 2c 20 65 6f 66 67 72 6f 75 70 29 3b 0a 20 20   ┆uote, doublequote, eofgroup);   ┆
0x007e80…007ea0             20 20 20 20 20 61 63 74 69 6f 6e 74 79 70 65 20 3d 20 28 20 4e 2c 20 4e 53 2c 20 61 53 2c 20 64   ┆     actiontype = ( N, NS, aS, d┆
0x007ea0…007ec0             53 2c 20 63 68 53 2c 20 6e 6c 53 2c 20 73 65 70 2c 20 6c 6e 2c 20 6c 31 2c 20 6c 32 2c 20 6f 70   ┆S, chS, nlS, sep, ln, l1, l2, op┆
0x007ec0…007ee0             31 53 2c 20 6f 70 32 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72   ┆1S, op2S,                     pr┆
0x007ee0…007f00             69 6e 74 64 61 73 68 2c 20 63 6c 6f 73 65 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 74 61 62 6c   ┆intdash, closefile);        tabl┆
0x007f00…007f20             65 63 6f 6e 74 65 6e 74 20 3d 20 72 65 63 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆econtent = record               ┆
0x007f20…007f40             20 20 20 20 20 20 20 20 20 20 61 63 74 20 20 20 3a 20 20 61 63 74 69 6f 6e 74 79 70 65 3b 0a 20   ┆          act   :  actiontype;  ┆
0x007f40…007f60             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 73 74 20 20 20 3a 20 20   ┆                       nst   :  ┆
0x007f60…007f80             73 74 61 74 65 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆statetype                       ┆
0x007f80…007fa0             65 6e 64 3b 0a 0a 20 20 20 76 61 72 0a 09 6b 65 79 09 09 3a 20 20 63 68 61 72 3b 0a 0a 09 63 6f   ┆end;     var  key  :  char;   co┆
0x007fa0…007fc0             6e 66 69 72 6d 65 64 09 2c 0a 09 6f 70 74 69 6f 6e 5f 70 09 2c 09 09 28 2a 20 20 70 72 6f 6d 70   ┆nfirmed ,  option_p ,  (*  promp┆
0x007fc0…007fe0             74 20 66 6f 72 20 63 6f 6e 66 69 72 6d 09 09 2a 29 0a 09 6f 70 74 69 6f 6e 5f 6d 09 2c 09 09 28   ┆t for confirm  *)  option_m ,  (┆
0x007fe0…008000             2a 20 20 6f 6e 6c 79 20 6d 6f 64 69 66 69 65 64 09 09 2a 29 0a 09 6f 70 74 69 6f 6e 5f 6c 09 2c   ┆*  only modified  *)  option_l ,┆
0x008000…008020 (2, 0, 5)   09 09 28 2a 20 20 65 6d 70 74 79 20 6c 69 6e 65 73 20 6e 6f 74 20 72 65 6d 6f 76 65 64 09 2a 29   ┆  (*  empty lines not removed *)┆
0x008020…008040             0a 09 6f 70 74 69 6f 6e 5f 6e 09 3a 20 20 62 6f 6f 6c 65 61 6e 3b 09 28 2a 20 20 6e 6f 20 61 75   ┆  option_n :  boolean; (*  no au┆
0x008040…008060             74 6f 6d 61 74 69 63 20 6f 76 65 72 77 72 69 74 65 09 2a 29 0a 0a 09 73 6f 75 72 63 65 5f 74 69   ┆tomatic overwrite *)   source_ti┆
0x008060…008080             6d 65 09 2c 0a 09 64 65 73 74 69 5f 74 69 6d 65 09 3a 20 20 6c 6f 6e 67 69 6e 74 3b 0a 0a 09 73   ┆me ,  desti_time :  longint;   s┆
0x008080…0080a0             6f 75 72 63 65 5f 66 69 6c 65 09 2c 09 09 28 2a 20 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 6e   ┆ource_file ,  (*  a single filen┆
0x0080a0…0080c0             61 6d 65 09 2a 29 0a 09 64 65 73 74 69 5f 66 69 6c 65 09 2c 09 09 28 2a 20 20 20 20 20 20 2d 09   ┆ame *)  desti_file ,  (*      - ┆
0x0080c0…0080e0             09 2a 29 0a 09 73 6f 75 72 63 65 5f 70 61 72 61 6d 09 2c 09 09 28 2a 20 20 63 61 6c 6c 20 70 61   ┆ *)  source_param ,  (*  call pa┆
0x0080e0…008100             72 61 6d 65 74 65 72 09 2a 29 0a 09 64 65 73 74 69 5f 70 61 72 61 6d 09 3a 20 20 70 61 74 68 73   ┆rameter *)  desti_param :  paths┆
0x008100…008120             74 72 3b 0a 09 73 6f 75 72 63 65 5f 64 69 72 09 3a 20 20 64 69 72 73 74 72 3b 0a 09 73 6f 75 72   ┆tr;  source_dir :  dirstr;  sour┆
0x008120…008140             63 65 5f 6e 61 6d 65 09 3a 20 20 6e 61 6d 65 73 74 72 3b 0a 09 73 6f 75 72 63 65 5f 65 78 74 09   ┆ce_name :  namestr;  source_ext ┆
0x008140…008160             3a 20 20 65 78 74 73 74 72 3b 0a 0a 09 64 69 72 69 6e 66 6f 09 09 3a 20 20 73 65 61 72 63 68 72   ┆:  extstr;   dirinfo  :  searchr┆
0x008160…008180             65 63 3b 0a 0a 09 73 6f 75 72 63 65 2c 20 64 65 73 74 69 09 3a 20 20 74 65 78 74 3b 0a 0a 63 6f   ┆ec;   source, desti :  text;  co┆
0x008180…0081a0             6e 73 74 0a 20 20 20 74 61 62 6c 65 20 20 3a 20 20 61 72 72 61 79 20 5b 73 74 61 74 65 74 79 70   ┆nst    table  :  array [statetyp┆
0x0081a0…0081c0             65 2c 20 63 68 67 72 6f 75 70 74 79 70 65 5d 20 6f 66 20 74 61 62 6c 65 63 6f 6e 74 65 6e 74 20   ┆e, chgrouptype] of tablecontent ┆
0x0081c0…0081e0             20 3d 0a 20 20 20 20 20 20 28 28 28 61 63 74 3a 64 53 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20   ┆ =       (((act:dS; nst:start), ┆
0x0081e0…008200             28 61 63 74 3a 6e 6c 53 3b 20 6e 73 74 3a 73 65 70 5f 73 29 2c 20 28 61 63 74 3a 6e 6c 53 3b 20   ┆(act:nlS; nst:sep_s), (act:nlS; ┆
0x008200…008220 (2, 0, 6)   6e 73 74 3a 73 65 70 5f 73 29 2c 20 28 61 63 74 3a 64 53 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c   ┆nst:sep_s), (act:dS; nst:start),┆
0x008220…008240             20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 6f 6e 65 64 61 73 68 29 2c 0a 28 61 63 74 3a 4e 53 3b   ┆ (act:NS; nst:onedash), (act:NS;┆
0x008240…008260             20 6e 73 74 3a 6c 65 66 74 31 29 2c 20 28 61 63 74 3a 64 53 3b 20 6e 73 74 3a 73 74 61 72 74 29   ┆ nst:left1), (act:dS; nst:start)┆
0x008260…008280             2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 6c 65 66 74 32 29 2c 0a 28 61 63 74 3a 64 53 3b 20   ┆, (act:NS; nst:left2), (act:dS; ┆
0x008280…0082a0             6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 64 53 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c   ┆nst:start), (act:dS; nst:start),┆
0x0082a0…0082c0             20 28 61 63 74 3a 61 53 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 63 68 53 3b 20   ┆ (act:aS; nst:start), (act:chS; ┆
0x0082c0…0082e0             6e 73 74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69   ┆nst:string1), (act:chS; nst:stri┆
0x0082e0…008300             6e 67 32 29 2c 0a 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29   ┆ng2), (act:closefile; nst:stop))┆
0x008300…008320             2c 0a 0a 28 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74   ┆,  ((act:chS; nst:string1), (act┆
0x008320…008340             3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73   ┆:chS; nst:string1), (act:chS; ns┆
0x008340…008360             74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67   ┆t:string1), (act:chS; nst:string┆
0x008360…008380             31 29 2c 0a 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74   ┆1), (act:chS; nst:string1), (act┆
0x008380…0083a0             3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73   ┆:chS; nst:string1), (act:chS; ns┆
0x0083a0…0083c0             74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67   ┆t:string1), (act:chS; nst:string┆
0x0083c0…0083e0             31 29 2c 0a 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74   ┆1), (act:chS; nst:string1), (act┆
0x0083e0…008400             3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73   ┆:chS; nst:string1), (act:chS; ns┆
0x008400…008420 (2, 0, 7)   74 3a 73 74 72 69 6e 67 31 29 2c 0a 28 61 63 74 3a 61 53 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c   ┆t:string1), (act:aS; nst:start),┆
0x008420…008440             20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 31 29 2c 20 28 61 63 74 3a 63 6c   ┆ (act:chS; nst:string1), (act:cl┆
0x008440…008460             6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 63 68 53 3b   ┆osefile; nst:stop)),  ((act:chS;┆
0x008460…008480             20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72   ┆ nst:string2), (act:chS; nst:str┆
0x008480…0084a0             69 6e 67 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 20 28   ┆ing2), (act:chS; nst:string2), (┆
0x0084a0…0084c0             61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 0a 28 61 63 74 3a 63 68 53 3b   ┆act:chS; nst:string2), (act:chS;┆
0x0084c0…0084e0             20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72   ┆ nst:string2), (act:chS; nst:str┆
0x0084e0…008500             69 6e 67 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 20 28   ┆ing2), (act:chS; nst:string2), (┆
0x008500…008520             61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 0a 28 61 63 74 3a 63 68 53 3b   ┆act:chS; nst:string2), (act:chS;┆
0x008520…008540             20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72   ┆ nst:string2), (act:chS; nst:str┆
0x008540…008560             69 6e 67 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 20 28   ┆ing2), (act:chS; nst:string2), (┆
0x008560…008580             61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 73 74 72 69 6e 67 32 29 2c 0a 28 61 63 74 3a 61 53 3b 20   ┆act:chS; nst:string2), (act:aS; ┆
0x008580…0085a0             6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a   ┆nst:start), (act:closefile; nst:┆
0x0085a0…0085c0             73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 6c 6e 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28   ┆stop)),  ((act:ln; nst:start), (┆
0x0085c0…0085e0             61 63 74 3a 6e 6c 53 3b 20 6e 73 74 3a 73 65 70 5f 73 29 2c 20 28 61 63 74 3a 6e 6c 53 3b 20 6e   ┆act:nlS; nst:sep_s), (act:nlS; n┆
0x0085e0…008600             73 74 3a 73 65 70 5f 73 29 2c 20 28 61 63 74 3a 6c 6e 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20   ┆st:sep_s), (act:ln; nst:start), ┆
0x008600…008620 (2, 0, 8)   28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a   ┆(act:N; nst:start), (act:N; nst:┆
0x008620…008640             73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 6e 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63   ┆start), (act:ln; nst:start), (ac┆
0x008640…008660             74 3a 4e 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 6e 3b 20 6e 73 74 3a 73 74   ┆t:N; nst:start), (act:ln; nst:st┆
0x008660…008680             61 72 74 29 2c 0a 28 61 63 74 3a 6c 6e 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a   ┆art), (act:ln; nst:start), (act:┆
0x008680…0086a0             73 65 70 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 73 65 70 3b 20 6e 73 74 3a 73   ┆sep; nst:start), (act:sep; nst:s┆
0x0086a0…0086c0             74 61 72 74 29 2c 20 28 61 63 74 3a 73 65 70 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63   ┆tart), (act:sep; nst:start), (ac┆
0x0086c0…0086e0             74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a   ┆t:closefile; nst:stop)),  ((act:┆
0x0086e0…008700             4e 53 3b 20 6e 73 74 3a 73 74 61 72 31 29 2c 20 28 61 63 74 3a 6c 31 3b 20 6e 73 74 3a 73 74 61   ┆NS; nst:star1), (act:l1; nst:sta┆
0x008700…008720             72 74 29 2c 20 28 61 63 74 3a 6c 31 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c   ┆rt), (act:l1; nst:start), (act:l┆
0x008720…008740             31 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63 74 3a 6c 31 3b 20 6e 73 74 3a 73 74 61 72   ┆1; nst:start), (act:l1; nst:star┆
0x008740…008760             74 29 2c 20 28 61 63 74 3a 6c 31 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 31   ┆t), (act:l1; nst:start), (act:l1┆
0x008760…008780             3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 31 3b 20 6e 73 74 3a 73 74 61 72 74   ┆; nst:start), (act:l1; nst:start┆
0x008780…0087a0             29 2c 20 28 61 63 74 3a 6c 31 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63 74 3a 6c 31 3b   ┆), (act:l1; nst:start), (act:l1;┆
0x0087a0…0087c0             20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 31 3b 20 6e 73 74 3a 73 74 61 72 74 29   ┆ nst:start), (act:l1; nst:start)┆
0x0087c0…0087e0             2c 20 28 61 63 74 3a 6c 31 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 31 3b 20   ┆, (act:l1; nst:start), (act:l1; ┆
0x0087e0…008800             6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a   ┆nst:start), (act:closefile; nst:┆
0x008800…008820 (2, 0, 9)   73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63   ┆stop)),  ((act:N; nst:com1), (ac┆
0x008820…008840             74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31   ┆t:N; nst:com1), (act:N; nst:com1┆
0x008840…008860             29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73   ┆), (act:N; nst:com1), (act:N; ns┆
0x008860…008880             74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 0a 28 61 63 74   ┆t:com1), (act:N; nst:com1), (act┆
0x008880…0088a0             3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29   ┆:N; nst:com1), (act:N; nst:com1)┆
0x0088a0…0088c0             2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 6f 70 31 53 3b 20   ┆, (act:N; nst:com1), (act:op1S; ┆
0x0088c0…0088e0             6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c   ┆nst:option1), (act:N; nst:com1),┆
0x0088e0…008900             20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a   ┆ (act:N; nst:com1), (act:N; nst:┆
0x008900…008920             63 6f 6d 31 29 2c 20 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29   ┆com1), (act:closefile; nst:stop)┆
0x008920…008940             29 2c 0a 0a 28 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 31 73 74 61 72 29 2c 20 28 61 63   ┆),  ((act:NS; nst:com1star), (ac┆
0x008940…008960             74 3a 6e 6c 53 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 6e 6c 53 3b 20 6e 73 74 3a   ┆t:nlS; nst:com1), (act:nlS; nst:┆
0x008960…008980             63 6f 6d 31 29 2c 0a 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a   ┆com1), (act:NS; nst:com1), (act:┆
0x008980…0089a0             4e 53 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 31   ┆NS; nst:com1), (act:NS; nst:com1┆
0x0089a0…0089c0             29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 53 3b 20   ┆), (act:NS; nst:com1), (act:NS; ┆
0x0089c0…0089e0             6e 73 74 3a 63 6f 6d 31 29 2c 0a 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28   ┆nst:com1), (act:NS; nst:com1), (┆
0x0089e0…008a00             61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a   ┆act:NS; nst:com1), (act:NS; nst:┆
0x008a00…008a20 (2, 0, 10)  63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a   ┆com1), (act:NS; nst:com1), (act:┆
0x008a20…008a40             4e 53 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 0a 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e   ┆NS; nst:com1), (act:closefile; n┆
0x008a40…008a60             73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20   ┆st:stop)),  ((act:N; nst:com1), ┆
0x008a60…008a80             28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63   ┆(act:N; nst:com1), (act:N; nst:c┆
0x008a80…008aa0             6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b   ┆om1), (act:N; nst:com1), (act:N;┆
0x008aa0…008ac0             20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 0a 28   ┆ nst:com1), (act:N; nst:com1), (┆
0x008ac0…008ae0             61 63 74 3a 4e 53 3b 20 6e 73 74 3a 73 65 70 5f 73 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a   ┆act:NS; nst:sep_s), (act:N; nst:┆
0x008ae0…008b00             63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e   ┆com1), (act:N; nst:com1), (act:N┆
0x008b00…008b20             3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20   ┆; nst:com1), (act:N; nst:com1), ┆
0x008b20…008b40             28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63   ┆(act:N; nst:com1), (act:N; nst:c┆
0x008b40…008b60             6f 6d 31 29 2c 0a 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29   ┆om1), (act:closefile; nst:stop))┆
0x008b60…008b80             2c 0a 0a 28 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 31 73 74 61 72 29 2c 0a 28 61 63 74   ┆,  ((act:chS; nst:op1star), (act┆
0x008b80…008ba0             3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73   ┆:chS; nst:option1), (act:chS; ns┆
0x008ba0…008bc0             74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e   ┆t:option1), (act:chS; nst:option┆
0x008bc0…008be0             31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 0a 28 61 63 74   ┆1), (act:chS; nst:option1), (act┆
0x008be0…008c00             3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73   ┆:chS; nst:option1), (act:chS; ns┆
0x008c00…008c20 (2, 0, 11)  74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e   ┆t:option1), (act:chS; nst:option┆
0x008c20…008c40             31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 0a 28 61 63 74   ┆1), (act:chS; nst:option1), (act┆
0x008c40…008c60             3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73   ┆:chS; nst:option1), (act:chS; ns┆
0x008c60…008c80             74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e   ┆t:option1), (act:chS; nst:option┆
0x008c80…008ca0             31 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 0a 28 61 63 74   ┆1), (act:chS; nst:option1), (act┆
0x008ca0…008cc0             3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 4e   ┆:closefile; nst:stop)),  ((act:N┆
0x008cc0…008ce0             3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69   ┆; nst:option1), (act:N; nst:opti┆
0x008ce0…008d00             6f 6e 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74   ┆on1), (act:N; nst:option1), (act┆
0x008d00…008d20             3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70   ┆:N; nst:option1), (act:N; nst:op┆
0x008d20…008d40             74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 0a 28 61   ┆tion1), (act:N; nst:option1), (a┆
0x008d40…008d60             63 74 3a 64 53 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f   ┆ct:dS; nst:start), (act:N; nst:o┆
0x008d60…008d80             70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28   ┆ption1), (act:N; nst:option1), (┆
0x008d80…008da0             61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74   ┆act:N; nst:option1), (act:N; nst┆
0x008da0…008dc0             3a 6f 70 74 69 6f 6e 31 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c   ┆:option1), (act:N; nst:option1),┆
0x008dc0…008de0             20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 31 29 2c 0a 28 61 63 74 3a 63 6c 6f 73   ┆ (act:N; nst:option1), (act:clos┆
0x008de0…008e00             65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 4e 53 3b 20 6e 73   ┆efile; nst:stop)),  ((act:NS; ns┆
0x008e00…008e20 (2, 0, 12)  74 3a 73 74 61 72 32 29 2c 0a 28 61 63 74 3a 6c 32 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28   ┆t:star2), (act:l2; nst:start), (┆
0x008e20…008e40             61 63 74 3a 6c 32 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 32 3b 20 6e 73 74   ┆act:l2; nst:start), (act:l2; nst┆
0x008e40…008e60             3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 32 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61   ┆:start), (act:l2; nst:start), (a┆
0x008e60…008e80             63 74 3a 6c 32 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63 74 3a 6c 32 3b 20 6e 73 74 3a   ┆ct:l2; nst:start), (act:l2; nst:┆
0x008e80…008ea0             73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 32 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63   ┆start), (act:l2; nst:start), (ac┆
0x008ea0…008ec0             74 3a 6c 32 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 32 3b 20 6e 73 74 3a 73   ┆t:l2; nst:start), (act:l2; nst:s┆
0x008ec0…008ee0             74 61 72 74 29 2c 20 28 61 63 74 3a 6c 32 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63 74   ┆tart), (act:l2; nst:start), (act┆
0x008ee0…008f00             3a 6c 32 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 6c 32 3b 20 6e 73 74 3a 73 74   ┆:l2; nst:start), (act:l2; nst:st┆
0x008f00…008f20             61 72 74 29 2c 0a 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29   ┆art), (act:closefile; nst:stop))┆
0x008f20…008f40             2c 20 0a 0a 28 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20   ┆,   ((act:N; nst:com2), (act:N; ┆
0x008f40…008f60             6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61   ┆nst:com2), (act:N; nst:com2), (a┆
0x008f60…008f80             63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d   ┆ct:N; nst:com2), (act:N; nst:com┆
0x008f80…008fa0             32 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e   ┆2), (act:N; nst:com2), (act:N; n┆
0x008fa0…008fc0             73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63   ┆st:com2), (act:N; nst:com2), (ac┆
0x008fc0…008fe0             74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 0a 28 61 63 74 3a 6f 70 32 53 3b 20 6e 73 74 3a 6f   ┆t:N; nst:com2), (act:op2S; nst:o┆
0x008fe0…009000             70 74 69 6f 6e 32 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74   ┆ption2), (act:N; nst:com2), (act┆
0x009000…009020 (2, 0, 13)  3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29   ┆:N; nst:com2), (act:N; nst:com2)┆
0x009020…009040             2c 20 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28   ┆, (act:closefile; nst:stop)),  (┆
0x009040…009060             28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 32 73 74 61 72 29 2c 20 28 61 63 74 3a 6e 6c 53   ┆(act:NS; nst:com2star), (act:nlS┆
0x009060…009080             3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 6e 6c 53 3b 20 6e 73 74 3a 63 6f 6d 32 29   ┆; nst:com2), (act:nlS; nst:com2)┆
0x009080…0090a0             2c 0a 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e   ┆, (act:NS; nst:com2), (act:NS; n┆
0x0090a0…0090c0             73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61   ┆st:com2), (act:NS; nst:com2), (a┆
0x0090c0…0090e0             63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63   ┆ct:NS; nst:com2), (act:NS; nst:c┆
0x0090e0…009100             6f 6d 32 29 2c 0a 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e   ┆om2), (act:NS; nst:com2), (act:N┆
0x009100…009120             53 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 32 29   ┆S; nst:com2), (act:NS; nst:com2)┆
0x009120…009140             2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e   ┆, (act:NS; nst:com2), (act:NS; n┆
0x009140…009160             73 74 3a 63 6f 6d 32 29 2c 0a 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74   ┆st:com2), (act:closefile; nst:st┆
0x009160…009180             6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a   ┆op)),  ((act:N; nst:com2), (act:┆
0x009180…0091a0             4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c   ┆N; nst:com2), (act:N; nst:com2),┆
0x0091a0…0091c0             20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a   ┆ (act:N; nst:com2), (act:N; nst:┆
0x0091c0…0091e0             63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 0a 28 61 63 74 3a 4e   ┆com2), (act:N; nst:com2), (act:N┆
0x0091e0…009200             3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20   ┆; nst:com2), (act:N; nst:com2), ┆
0x009200…009220 (2, 0, 14)  28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 73 65 70 5f 73 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74   ┆(act:NS; nst:sep_s), (act:N; nst┆
0x009220…009240             3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a   ┆:com2), (act:N; nst:com2), (act:┆
0x009240…009260             4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 63 6f 6d 32 29 2c   ┆N; nst:com2), (act:N; nst:com2),┆
0x009260…009280             0a 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28   ┆ (act:closefile; nst:stop)),  ((┆
0x009280…0092a0             61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 32 73 74 61 72 29 2c 0a 28 61 63 74 3a 63 68 53 3b   ┆act:chS; nst:op2star), (act:chS;┆
0x0092a0…0092c0             20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74   ┆ nst:option2), (act:chS; nst:opt┆
0x0092c0…0092e0             69 6f 6e 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28   ┆ion2), (act:chS; nst:option2), (┆
0x0092e0…009300             61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 0a 28 61 63 74 3a 63 68 53 3b   ┆act:chS; nst:option2), (act:chS;┆
0x009300…009320             20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74   ┆ nst:option2), (act:chS; nst:opt┆
0x009320…009340             69 6f 6e 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28   ┆ion2), (act:chS; nst:option2), (┆
0x009340…009360             61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 0a 28 61 63 74 3a 63 68 53 3b   ┆act:chS; nst:option2), (act:chS;┆
0x009360…009380             20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74   ┆ nst:option2), (act:chS; nst:opt┆
0x009380…0093a0             69 6f 6e 32 29 2c 20 28 61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28   ┆ion2), (act:chS; nst:option2), (┆
0x0093a0…0093c0             61 63 74 3a 63 68 53 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 0a 28 61 63 74 3a 63 6c 6f 73   ┆act:chS; nst:option2), (act:clos┆
0x0093c0…0093e0             65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 4e 3b 20 6e 73 74   ┆efile; nst:stop)),  ((act:N; nst┆
0x0093e0…009400             3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c   ┆:option2), (act:N; nst:option2),┆
0x009400…009420 (2, 0, 15)  20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e   ┆ (act:N; nst:option2), (act:N; n┆
0x009420…009440             73 74 3a 6f 70 74 69 6f 6e 32 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32   ┆st:option2), (act:N; nst:option2┆
0x009440…009460             29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74 3a 4e 3b   ┆), (act:N; nst:option2), (act:N;┆
0x009460…009480             20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f   ┆ nst:option2), (act:N; nst:optio┆
0x009480…0094a0             6e 32 29 2c 0a 28 61 63 74 3a 64 53 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63 74 3a 4e   ┆n2), (act:dS; nst:start), (act:N┆
0x0094a0…0094c0             3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69   ┆; nst:option2), (act:N; nst:opti┆
0x0094c0…0094e0             6f 6e 32 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 20 28 61 63 74   ┆on2), (act:N; nst:option2), (act┆
0x0094e0…009500             3a 4e 3b 20 6e 73 74 3a 6f 70 74 69 6f 6e 32 29 2c 0a 28 61 63 74 3a 63 6c 6f 73 65 66 69 6c 65   ┆:N; nst:option2), (act:closefile┆
0x009500…009520             3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20   ┆; nst:stop)),  ((act:printdash; ┆
0x009520…009540             6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20 6e 73 74 3a   ┆nst:start), (act:printdash; nst:┆
0x009540…009560             73 74 61 72 74 29 2c 20 28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20 6e 73 74 3a 73 74 61 72   ┆start), (act:printdash; nst:star┆
0x009560…009580             74 29 2c 0a 28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20   ┆t), (act:printdash; nst:start), ┆
0x009580…0095a0             28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 33 29 2c 0a 28 61 63 74 3a 70 72 69 6e 74 64 61   ┆(act:NS; nst:com3), (act:printda┆
0x0095a0…0095c0             73 68 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20   ┆sh; nst:start), (act:printdash; ┆
0x0095c0…0095e0             6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20 6e 73 74 3a   ┆nst:start), (act:printdash; nst:┆
0x0095e0…009600             73 74 61 72 74 29 2c 0a 28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20 6e 73 74 3a 73 74 61 72   ┆start), (act:printdash; nst:star┆
0x009600…009620 (2, 1, 1)   74 29 2c 20 28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20   ┆t), (act:printdash; nst:start), ┆
0x009620…009640             28 61 63 74 3a 70 72 69 6e 74 64 61 73 68 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 0a 28 61 63 74   ┆(act:printdash; nst:start), (act┆
0x009640…009660             3a 70 72 69 6e 74 64 61 73 68 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 70 72 69   ┆:printdash; nst:start), (act:pri┆
0x009660…009680             6e 74 64 61 73 68 3b 20 6e 73 74 3a 73 74 61 72 74 29 2c 20 28 61 63 74 3a 63 6c 6f 73 65 66 69   ┆ntdash; nst:start), (act:closefi┆
0x009680…0096a0             6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63   ┆le; nst:stop)),  ((act:NS; nst:c┆
0x0096a0…0096c0             6f 6d 33 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 33 29 2c 20 28 61 63 74 3a 6e   ┆om3), (act:NS; nst:com3), (act:n┆
0x0096c0…0096e0             6c 53 3b 20 6e 73 74 3a 73 65 70 5f 73 29 2c 0a 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d   ┆lS; nst:sep_s), (act:NS; nst:com┆
0x0096e0…009700             33 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 33 29 2c 20 28 61 63 74 3a 4e 53 3b   ┆3), (act:NS; nst:com3), (act:NS;┆
0x009700…009720             20 6e 73 74 3a 63 6f 6d 33 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 33 29 2c 20   ┆ nst:com3), (act:NS; nst:com3), ┆
0x009720…009740             28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 33 29 2c 0a 28 61 63 74 3a 4e 53 3b 20 6e 73 74   ┆(act:NS; nst:com3), (act:NS; nst┆
0x009740…009760             3a 63 6f 6d 33 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 33 29 2c 20 28 61 63 74   ┆:com3), (act:NS; nst:com3), (act┆
0x009760…009780             3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 33 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d   ┆:NS; nst:com3), (act:NS; nst:com┆
0x009780…0097a0             33 29 2c 20 28 61 63 74 3a 4e 53 3b 20 6e 73 74 3a 63 6f 6d 33 29 2c 0a 28 61 63 74 3a 63 6c 6f   ┆3), (act:NS; nst:com3), (act:clo┆
0x0097a0…0097c0             73 65 66 69 6c 65 3b 20 6e 73 74 3a 73 74 6f 70 29 29 2c 0a 0a 28 28 61 63 74 3a 4e 3b 20 6e 73   ┆sefile; nst:stop)),  ((act:N; ns┆
0x0097c0…0097e0             74 3a 73 74 6f 70 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29 2c 20 28 61 63 74   ┆t:stop), (act:N; nst:stop), (act┆
0x0097e0…009800             3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29   ┆:N; nst:stop), (act:N; nst:stop)┆
0x009800…009820 (2, 1, 2)   2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74   ┆, (act:N; nst:stop), (act:N; nst┆
0x009820…009840             3a 73 74 6f 70 29 2c 0a 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29 2c 20 28 61 63 74 3a   ┆:stop), (act:N; nst:stop), (act:┆
0x009840…009860             4e 3b 20 6e 73 74 3a 73 74 6f 70 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29 2c   ┆N; nst:stop), (act:N; nst:stop),┆
0x009860…009880             20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a   ┆ (act:N; nst:stop), (act:N; nst:┆
0x009880…0098a0             73 74 6f 70 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29 2c 0a 28 61 63 74 3a 4e   ┆stop), (act:N; nst:stop), (act:N┆
0x0098a0…0098c0             3b 20 6e 73 74 3a 73 74 6f 70 29 2c 20 28 61 63 74 3a 4e 3b 20 6e 73 74 3a 73 74 6f 70 29 29 29   ┆; nst:stop), (act:N; nst:stop)))┆
0x0098c0…0098e0             3b 0a 0a 20 20 20 28 2a 20 65 78 74 65 72 6e 61 6c 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20   ┆;     (* external definition of ┆
0x0098e0…009900             70 72 6f 63 65 64 75 72 65 20 68 61 6c 74 2c 20 73 65 65 20 54 75 72 62 6f 20 50 61 73 63 61 6c   ┆procedure halt, see Turbo Pascal┆
0x009900…009920             20 70 61 67 65 20 34 33 31 0a 20 20 20 2d 2d 20 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 68 61   ┆ page 431    --     procedure ha┆
0x009920…009940             6c 74 20 28 20 65 78 69 74 63 6f 64 65 20 3a 20 77 6f 72 64 20 29 0a 20 20 20 2a 29 0a 0a 0a 7b   ┆lt ( exitcode : word )    *)   {┆
0x009940…009960             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x009960…009980             2d 2d 2d 2d 2d 2d 2d 2d 2d 20 66 72 6f 6d 20 52 43 38 30 30 30 20 50 61 73 63 61 6c 20 2d 2d 2d   ┆--------- from RC8000 Pascal ---┆
0x009980…0099a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 70 72 6f 63 65 64 75 72 65 20 66 69 6c 65 69 64 3b 0a 20 20 63 6f   ┆--------- procedure fileid;   co┆
0x0099a0…0099c0             6e 73 74 20 70 6f 77 65 72 31 32 20 3d 20 34 30 39 36 3b 0a 20 20 20 20 20 20 20 20 65 71 75 61   ┆nst power12 = 4096;         equa┆
0x0099c0…0099e0             6c 69 74 79 73 69 67 6e 20 3d 20 36 3b 0a 20 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 61 6c 66   ┆litysign = 6;   type         alf┆
0x0099e0…009a00             61 20 3d 20 20 73 74 72 69 6e 67 5b 31 32 5d 3b 0a 0a 20 20 76 61 72 20 20 20 72 65 73 75 6c 74   ┆a =  string[12];    var   result┆
0x009a00…009a20 (2, 1, 3)   2c 20 69 6e 74 2c 20 70 61 72 61 6d 6e 6f 20 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 20 20 20 20   ┆, int, paramno : integer;       ┆
0x009a20…009a40             20 20 69 64 2c 20 6f 5f 66 69 6c 65 20 3a 20 61 6c 66 61 3b 0a 0a 20 20 76 61 6c 75 65 20 6f 5f   ┆  id, o_file : alfa;    value o_┆
0x009a40…009a60             66 69 6c 65 20 3d 20 27 20 20 20 20 20 20 20 20 20 20 27 3b 0a 0a 20 20 70 72 6f 63 65 64 75 72   ┆file = '          ';    procedur┆
0x009a60…009a80             65 20 68 65 6c 70 5f 69 6e 66 6f 72 6d 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77   ┆e help_inform;     begin       w┆
0x009a80…009aa0             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 48 65 6c 70 20 69 6e 66 6f 72 6d 61 74 69   ┆riteln ( output, 'Help informati┆
0x009aa0…009ac0             6f 6e 20 66 6f 72 20 72 74 70 63 6f 6d 70 72 65 73 73 27 29 3b 0a 0a 20 20 20 20 20 20 72 75 6e   ┆on for rtpcompress');        run┆
0x009ac0…009ae0             65 72 72 6f 72 20 28 20 33 20 20 28 2a 2d 2d 2d 66 61 6c 73 65 20 74 65 72 6d 69 6e 61 74 65 20   ┆error ( 3  (*---false terminate ┆
0x009ae0…009b00             70 72 6f 67 72 61 6d 20 77 69 74 68 20 6f 6b 2e 6e 6f 2a 29 29 3b 0a 20 20 20 20 65 6e 64 3b 20   ┆program with ok.no*));     end; ┆
0x009b00…009b20             20 28 2a 20 68 65 6c 70 5f 69 6e 66 6f 72 6d 20 2a 29 0a 0a 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆ (* help_inform *)    begin     ┆
0x009b20…009b40             70 61 72 61 6d 6e 6f 3a 3d 31 3b 0a 20 20 20 20 72 65 73 75 6c 74 3a 3d 73 79 73 74 65 6d 20 28   ┆paramno:=1;     result:=system (┆
0x009b40…009b60             20 70 61 72 61 6d 6e 6f 2c 20 69 6e 74 2c 20 69 64 29 3b 0a 20 20 20 20 69 66 20 72 65 73 75 6c   ┆ paramno, int, id);     if resul┆
0x009b60…009b80             74 20 64 69 76 20 70 6f 77 65 72 31 32 20 3d 20 65 71 75 61 6c 69 74 79 73 69 67 6e 20 74 68 65   ┆t div power12 = equalitysign the┆
0x009b80…009ba0             6e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 20 28 2a 67 65 74 20 64 65 73 74 69 66 69 6c 65 20 2a   ┆n       begin  (*get destifile *┆
0x009ba0…009bc0             29 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 3a 3d 73 79 73 74 65 6d 20 28 20 30 2c 20 69 6e   ┆)         result:=system ( 0, in┆
0x009bc0…009be0             74 2c 20 69 64 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 72 65 73 75 6c 74 20 6d 6f 64 20 70 6f   ┆t, id);         if result mod po┆
0x009be0…009c00             77 65 72 31 32 20 3d 20 31 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a   ┆wer12 = 10 then           begin ┆
0x009c00…009c20 (2, 1, 4)   20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 66 69 6c 65 3a 3d 74 72 75 65 3b 0a 20 20 20   ┆            destifile:=true;    ┆
0x009c20…009c40             20 20 20 20 20 20 20 20 20 6f 70 65 6e 20 28 20 64 65 73 74 69 2c 20 69 64 29 3b 0a 20 20 20 20   ┆         open ( desti, id);     ┆
0x009c40…009c60             20 20 20 20 20 20 20 20 72 65 77 72 69 74 65 20 28 20 64 65 73 74 69 29 3b 0a 20 20 20 20 20 20   ┆        rewrite ( desti);       ┆
0x009c60…009c80             20 20 20 20 20 20 6f 5f 66 69 6c 65 20 3a 3d 20 69 64 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e   ┆      o_file := id;           en┆
0x009c80…009ca0             64 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20   ┆d         else           begin  ┆
0x009ca0…009cc0             20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 3f 3f   ┆           writeln ( output, '??┆
0x009cc0…009ce0             3f 20 69 6c 6c 65 67 61 6c 20 64 65 73 74 69 2d 66 69 6c 65 6e 61 6d 65 27 29 3b 0a 20 20 20 20   ┆? illegal desti-filename');     ┆
0x009ce0…009d00             20 20 20 20 20 20 20 20 68 65 6c 70 5f 69 6e 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 65 6e   ┆        help_inform           en┆
0x009d00…009d20             64 3b 0a 20 20 20 20 20 20 20 20 70 61 72 61 6d 6e 6f 3a 3d 70 61 72 61 6d 6e 6f 2b 31 0a 20 20   ┆d;         paramno:=paramno+1   ┆
0x009d20…009d40             20 20 20 20 65 6e 64 3b 0a 20 20 20 28 2a 20 67 65 74 20 73 6f 75 72 63 65 2d 66 69 6c 65 20 2a   ┆    end;    (* get source-file *┆
0x009d40…009d60             29 0a 20 20 20 20 72 65 73 75 6c 74 3a 3d 73 79 73 74 65 6d 20 28 20 70 61 72 61 6d 6e 6f 2c 20   ┆)     result:=system ( paramno, ┆
0x009d60…009d80             69 6e 74 2c 20 69 64 29 3b 0a 20 20 20 20 69 66 20 72 65 73 75 6c 74 20 6d 6f 64 20 70 6f 77 65   ┆int, id);     if result mod powe┆
0x009d80…009da0             72 31 32 20 3d 20 31 30 20 74 68 65 6e 0a 20 20 20 20 20 20 69 66 20 69 64 20 3d 20 27 68 65 6c   ┆r12 = 10 then       if id = 'hel┆
0x009da0…009dc0             70 20 20 20 20 20 20 27 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆p      ' then         begin     ┆
0x009dc0…009de0             20 20 20 20 20 20 69 66 20 64 65 73 74 69 66 69 6c 65 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20   ┆      if destifile then close ( ┆
0x009de0…009e00             64 65 73 74 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 5f 69 6e 66 6f 72 6d 3b 0a 0a   ┆desti);           help_inform;  ┆
0x009e00…009e20 (2, 1, 5)   20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 69 64 20 3d 20 6f   ┆        end       else if id = o┆
0x009e20…009e40             5f 66 69 6c 65 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20   ┆_file then         begin        ┆
0x009e40…009e60             20 20 20 69 66 20 64 65 73 74 69 66 69 6c 65 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 64 65 73   ┆   if destifile then close ( des┆
0x009e60…009e80             74 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆ti);           writeln ( output,┆
0x009e80…009ea0             20 27 2a 2a 2a 20 64 65 73 74 69 66 69 6c 65 20 3d 20 73 6f 75 72 63 65 66 69 6c 65 20 20 69 73   ┆ '*** destifile = sourcefile  is┆
0x009ea0…009ec0             20 6e 6f 74 20 61 6c 6c 6f 77 65 64 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 68 61 6c 74 20 28   ┆ not allowed');           halt (┆
0x009ec0…009ee0             20 20 31 30 35 20 20 28 2a 74 65 72 6d 69 6e 61 74 65 20 70 72 6f 67 72 61 6d 20 77 69 74 68 20   ┆  105  (*terminate program with ┆
0x009ee0…009f00             6f 6b 2e 6e 6f 2a 29 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65   ┆ok.no*));         end       else┆
0x009f00…009f20             0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6f 70 65 6e 20 28 20   ┆         begin           open ( ┆
0x009f20…009f40             73 6f 75 72 63 65 2c 20 69 64 29 3b 0a 20 20 20 20 20 20 20 20 20 20 72 65 73 65 74 20 28 20 73   ┆source, id);           reset ( s┆
0x009f40…009f60             6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20   ┆ource)         end     else     ┆
0x009f60…009f80             20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 64 65 73 74 69 66 69 6c 65 20 74 68 65   ┆  begin         if destifile the┆
0x009f80…009fa0             6e 20 63 6c 6f 73 65 20 28 20 64 65 73 74 69 29 3b 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 6c   ┆n close ( desti);         writel┆
0x009fa0…009fc0             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 3f 3f 3f 20 69 6c 6c 65 67 61 6c 20 73 6f 75 72 63 65 2d   ┆n ( output, '??? illegal source-┆
0x009fc0…009fe0             66 69 6c 65 6e 61 6d 65 27 29 3b 0a 20 20 20 20 20 20 20 20 68 65 6c 70 5f 69 6e 66 6f 72 6d 3b   ┆filename');         help_inform;┆
0x009fe0…00a000             0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 20 20 20 28 2a 20 66 69 6c 65 69 64 20 2a   ┆       end;   end;   (* fileid *┆
0x00a000…00a020 (2, 1, 6)   29 0a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆)  -----------------------------┆
0x00a020…00a040             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x00a040…00a060             2d 2d 7d 0a 0a 0c 0a 20 46 75 6e 63 74 69 6f 6e 20 63 61 70 73 20 28 20 73 3a 20 73 74 72 69 6e   ┆--}     Function caps ( s: strin┆
0x00a060…00a080             67 29 3a 20 73 74 72 69 6e 67 3b 0a 20 28 2a 20 20 63 6f 6e 76 65 72 74 20 61 20 73 74 72 69 6e   ┆g): string;  (*  convert a strin┆
0x00a080…00a0a0             67 20 74 6f 20 75 70 70 65 72 63 61 73 65 20 20 2a 29 0a 20 20 20 76 61 72 20 20 70 3a 20 20 69   ┆g to uppercase  *)    var  p:  i┆
0x00a0a0…00a0c0             6e 74 65 67 65 72 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f   ┆nteger;    begin    for p:= 1 to┆
0x00a0c0…00a0e0             20 6c 65 6e 67 74 68 20 28 20 73 29 20 64 6f 20 73 5b 70 5d 3a 3d 20 75 70 63 61 73 65 20 28 20   ┆ length ( s) do s[p]:= upcase ( ┆
0x00a0e0…00a100             73 5b 70 5d 29 3b 0a 20 20 20 63 61 70 73 3a 3d 20 73 0a 20 20 20 65 6e 64 3b 0a 0a 0a 0a 20 50   ┆s[p]);    caps:= s    end;     P┆
0x00a100…00a120             72 6f 63 65 64 75 72 65 20 72 65 61 64 5f 70 61 72 61 6d 73 20 28 20 76 61 72 20 73 72 63 5f 70   ┆rocedure read_params ( var src_p┆
0x00a120…00a140             61 74 68 2c 20 64 73 74 5f 70 61 74 68 3a 20 70 61 74 68 73 74 72 3b 0a 09 09 76 61 72 20 6f 70   ┆ath, dst_path: pathstr;   var op┆
0x00a140…00a160             74 69 6f 6e 5f 63 2c 20 6f 70 74 69 6f 6e 5f 6d 2c 20 6f 70 74 69 6f 6e 5f 6e 2c 20 6f 70 74 69   ┆tion_c, option_m, option_n, opti┆
0x00a160…00a180             6f 6e 5f 6c 3a 20 62 6f 6f 6c 65 61 6e 29 3b 0a 0a 20 20 20 76 61 72 0a 20 20 20 20 20 70 20 3a   ┆on_l: boolean);     var      p :┆
0x00a180…00a1a0             20 20 69 6e 74 65 67 65 72 3b 0a 0a 20 20 20 70 72 6f 63 65 64 75 72 65 20 68 65 6c 70 5f 69 6e   ┆  integer;     procedure help_in┆
0x00a1a0…00a1c0             66 6f 72 6d 3b 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆form;      begin      writeln ( ┆
0x00a1c0…00a1e0             6f 75 74 70 75 74 2c 20 27 48 65 6c 70 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 72 74   ┆output, 'Help information for rt┆
0x00a1e0…00a200             70 63 6f 6d 70 72 65 73 73 3a 27 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆pcompress:');      writeln ( out┆
0x00a200…00a220 (2, 1, 7)   70 75 74 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 54 68   ┆put);      writeln ( output, 'Th┆
0x00a220…00a240             69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 75 73 65 64 20 74 6f 20 72 65 6d 6f 76 65 20 63 6f 6d   ┆is program is used to remove com┆
0x00a240…00a260             6d 65 6e 74 73 20 61 6e 64 20 73 70 61 63 65 73 20 65 74 63 2e 20 66 72 6f 6d 27 29 3b 0a 20 20   ┆ments and spaces etc. from');   ┆
0x00a260…00a280             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 74 65 78 74 73 20 28 20 65 2e   ┆   writeln ( output, 'texts ( e.┆
0x00a280…00a2a0             67 2e 20 52 54 50 38 36 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 29 20 74 6f 20 73 61 76 65 20 63   ┆g. RTP86 environments) to save c┆
0x00a2a0…00a2c0             6f 6d 70 69 6c 61 74 69 6f 6e 20 74 69 6d 65 2e 27 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e   ┆ompilation time.');      writeln┆
0x00a2c0…00a2e0             20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆ ( output);      writeln ( outpu┆
0x00a2e0…00a300             74 2c 20 27 50 72 6f 67 72 61 6d 20 63 61 6c 6c 20 3a 20 43 4f 4d 50 52 45 53 53 20 3c 73 6f 75   ┆t, 'Program call : COMPRESS <sou┆
0x00a300…00a320             72 63 65 3e 20 3c 64 65 73 74 69 6e 61 74 69 6f 6e 3e 20 7b 6f 70 74 69 6f 6e 73 7d 27 29 3b 0a   ┆rce> <destination> {options}'); ┆
0x00a320…00a340             20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 3c 73 6f 75 72 63   ┆     writeln ( output, '  <sourc┆
0x00a340…00a360             65 3e 3a 20 20 3c 64 69 72 3e 3c 6e 61 6d 65 3e 3c 65 78 74 65 6e 73 69 6f 6e 3e 27 29 3b 0a 20   ┆e>:  <dir><name><extension>');  ┆
0x00a360…00a380             20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 64 65 66 61   ┆    writeln ( output, '     defa┆
0x00a380…00a3a0             75 6c 74 20 64 69 72 20 69 73 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 29 3b 0a   ┆ult dir is current directory'); ┆
0x00a3a0…00a3c0             20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 6e 61 6d   ┆     writeln ( output, '     nam┆
0x00a3c0…00a3e0             65 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 2a 20 61 6e 64 20 3f 20 66 6f 72 20 6d 75 6c 74 69 20   ┆e may contain * and ? for multi ┆
0x00a3e0…00a400             66 69 6c 65 20 6f 70 65 72 61 74 69 6f 6e 27 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28   ┆file operation');      writeln (┆
0x00a400…00a420 (2, 1, 8)   20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 64 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e   ┆ output, '     default extension┆
0x00a420…00a440             20 69 73 20 22 27 2c 20 64 65 66 5f 73 72 63 5f 65 78 74 2c 20 27 22 20 27 29 3b 0a 20 20 20 20   ┆ is "', def_src_ext, '" ');     ┆
0x00a440…00a460             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 3c 64 65 73 74 69 6e 61 74 69   ┆ writeln ( output, '  <destinati┆
0x00a460…00a480             6f 6e 3e 3a 20 20 3c 64 69 72 3e 3c 6e 61 6d 65 3e 3c 65 78 74 65 6e 73 69 6f 6e 3e 27 29 3b 0a   ┆on>:  <dir><name><extension>'); ┆
0x00a480…00a4a0             20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 64 65 66   ┆     writeln ( output, '     def┆
0x00a4a0…00a4c0             61 75 6c 74 20 64 69 72 20 69 73 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 29 3b   ┆ault dir is current directory');┆
0x00a4c0…00a4e0             0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 6d 69   ┆      writeln ( output, '     mi┆
0x00a4e0…00a500             73 73 69 6e 67 20 6e 61 6d 65 20 61 72 65 20 74 61 6b 65 6e 20 66 72 6f 6d 20 3c 73 6f 75 72 63   ┆ssing name are taken from <sourc┆
0x00a500…00a520             65 3e 20 27 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20   ┆e> ');      writeln ( output, ' ┆
0x00a520…00a540             20 20 20 20 64 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 22 27 2c 20 64 65 66   ┆    default extension is "', def┆
0x00a540…00a560             5f 64 65 73 74 5f 65 78 74 2c 20 27 22 20 27 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28   ┆_dest_ext, '" ');      writeln (┆
0x00a560…00a580             20 6f 75 74 70 75 74 2c 20 27 20 20 6f 70 74 69 6f 6e 73 3a 20 20 2f 50 20 20 20 20 50 72 6f 6d   ┆ output, '  options:  /P    Prom┆
0x00a580…00a5a0             70 74 20 62 65 66 6f 72 65 20 70 72 6f 63 65 73 73 69 6e 67 20 65 61 63 68 20 66 69 6c 65 27 29   ┆pt before processing each file')┆
0x00a5a0…00a5c0             3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 20   ┆;      writeln ( output, '      ┆
0x00a5c0…00a5e0             20 20 20 20 20 20 2f 4d 20 20 20 20 6f 6e 6c 79 20 4d 6f 64 69 66 69 65 64 20 73 6f 75 72 63 65   ┆      /M    only Modified source┆
0x00a5e0…00a600             73 20 61 72 65 20 70 72 6f 63 65 73 73 65 64 27 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20   ┆s are processed');      writeln ┆
0x00a600…00a620 (2, 1, 9)   28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 20 20 20 20 20 20 20 2f 4e 20 20 20 20 4e 6f 20   ┆( output, '            /N    No ┆
0x00a620…00a640             61 75 74 6f 6d 61 74 69 63 20 6f 76 65 72 77 72 69 74 65 27 29 3b 0a 20 20 20 20 20 77 72 69 74   ┆automatic overwrite');      writ┆
0x00a640…00a660             65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 20 20 20 20 20 20 20 2f 4c 20 20 20   ┆eln ( output, '            /L   ┆
0x00a660…00a680             20 65 6d 70 74 79 20 4c 69 6e 65 73 20 6e 6f 74 20 72 65 6d 6f 76 65 64 27 29 3b 0a 20 20 20 20   ┆ empty Lines not removed');     ┆
0x00a680…00a6a0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 65 2e 67 2e 20 20 20 43 4f 4d   ┆ writeln ( output, '  e.g.   COM┆
0x00a6a0…00a6c0             50 52 45 53 53 20 52 3a 5c 50 41 58 37 32 30 5c 2a 2e 45 4e 56 20 2e 45 56 43 2f 4d 2f 4c 27 29   ┆PRESS R:\PAX720\*.ENV .EVC/M/L')┆
0x00a6c0…00a6e0             3b 0a 0a 20 20 20 20 20 68 61 6c 74 20 28 20 33 29 3b 20 20 28 2a 2d 2d 2d 20 74 65 72 6d 69 6e   ┆;       halt ( 3);  (*--- termin┆
0x00a6e0…00a700             61 74 65 20 70 72 6f 67 72 61 6d 20 77 69 74 68 20 6f 6b 2e 6e 6f 2a 29 0a 20 20 20 20 20 65 6e   ┆ate program with ok.no*)      en┆
0x00a700…00a720             64 3b 20 20 28 2a 20 68 65 6c 70 5f 69 6e 66 6f 72 6d 20 2a 29 0a 0a 0a 20 20 20 70 72 6f 63 65   ┆d;  (* help_inform *)      proce┆
0x00a720…00a740             64 75 72 65 20 72 65 61 64 5f 6f 70 74 69 6f 6e 73 20 28 20 76 61 72 20 74 78 74 3a 20 70 61 74   ┆dure read_options ( var txt: pat┆
0x00a740…00a760             68 73 74 72 3b 20 20 76 61 72 20 20 6f 70 74 5f 70 2c 20 6f 70 74 5f 6d 2c 20 6f 70 74 5f 6e 2c   ┆hstr;  var  opt_p, opt_m, opt_n,┆
0x00a760…00a780             20 6f 70 74 5f 6c 3a 20 62 6f 6f 6c 65 61 6e 29 3b 0a 20 20 20 20 20 76 61 72 0a 20 20 20 20 20   ┆ opt_l: boolean);      var      ┆
0x00a780…00a7a0             20 20 70 20 20 20 20 3a 20 20 69 6e 74 65 67 65 72 3b 0a 20 20 20 20 20 20 20 74 61 69 6c 20 3a   ┆  p    :  integer;        tail :┆
0x00a7a0…00a7c0             20 20 70 61 74 68 73 74 72 3b 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 70 3a 3d 20 70   ┆  pathstr;      begin      p:= p┆
0x00a7c0…00a7e0             6f 73 20 28 20 27 2f 27 2c 20 74 78 74 29 3b 0a 20 20 20 20 20 69 66 20 70 20 3e 20 30 20 74 68   ┆os ( '/', txt);      if p > 0 th┆
0x00a7e0…00a800             65 6e 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 74 61 69 6c 3a 3d 20 63 6f   ┆en        begin        tail:= co┆
0x00a800…00a820 (2, 1, 10)  70 79 20 28 20 74 78 74 2c 20 70 2c 20 6c 65 6e 67 74 68 20 28 20 74 78 74 29 20 2d 20 70 20 2b   ┆py ( txt, p, length ( txt) - p +┆
0x00a820…00a840             20 31 29 3b 0a 20 20 20 20 20 20 20 64 65 6c 65 74 65 20 28 20 74 78 74 2c 20 70 2c 20 37 39 29   ┆ 1);        delete ( txt, p, 79)┆
0x00a840…00a860             3b 0a 20 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 2f 50 27 2c 20 74 61 69 6c 29 20 3e 20   ┆;        if pos ( '/P', tail) > ┆
0x00a860…00a880             30 20 74 68 65 6e 20 6f 70 74 5f 70 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 69 66 20 70   ┆0 then opt_p:= true;        if p┆
0x00a880…00a8a0             6f 73 20 28 20 27 2f 4d 27 2c 20 74 61 69 6c 29 20 3e 20 30 20 74 68 65 6e 20 6f 70 74 5f 6d 3a   ┆os ( '/M', tail) > 0 then opt_m:┆
0x00a8a0…00a8c0             3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 2f 4e 27 2c 20 74 61   ┆= true;        if pos ( '/N', ta┆
0x00a8c0…00a8e0             69 6c 29 20 3e 20 30 20 74 68 65 6e 20 6f 70 74 5f 6e 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20   ┆il) > 0 then opt_n:= true;      ┆
0x00a8e0…00a900             20 20 69 66 20 70 6f 73 20 28 20 27 2f 4c 27 2c 20 74 61 69 6c 29 20 3e 20 30 20 74 68 65 6e 20   ┆  if pos ( '/L', tail) > 0 then ┆
0x00a900…00a920             6f 70 74 5f 6c 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 69 66 20 64 65 62 75 67 5f 6c 65   ┆opt_l:= true;        if debug_le┆
0x00a920…00a940             76 65 6c 20 3e 20 35 20 74 68 65 6e 0a 09 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆vel > 5 then   writeln ( output,┆
0x00a940…00a960             20 27 2d 2d 20 74 78 74 2c 74 61 69 6c 20 3a 20 27 2c 20 74 78 74 2c 20 27 2a 2a 27 2c 20 74 61   ┆ '-- txt,tail : ', txt, '**', ta┆
0x00a960…00a980             69 6c 2c 20 27 2a 2a 27 29 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 65 6e 64 3b   ┆il, '**');        end;      end;┆
0x00a980…00a9a0             20 20 28 2a 20 20 72 65 61 64 20 6f 70 74 69 6f 6e 73 20 20 2a 29 0a 0a 0a 20 20 20 62 65 67 69   ┆  (*  read options  *)      begi┆
0x00a9a0…00a9c0             6e 0a 20 20 20 6f 70 74 69 6f 6e 5f 63 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 6f 70 74 69 6f 6e   ┆n    option_c:= false;    option┆
0x00a9c0…00a9e0             5f 6d 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 6f 70 74 69 6f 6e 5f 6e 3a 3d 20 66 61 6c 73 65 3b   ┆_m:= false;    option_n:= false;┆
0x00a9e0…00aa00             0a 20 20 20 6f 70 74 69 6f 6e 5f 6c 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 69 66 20 28 20 70   ┆    option_l:= false;     if ( p┆
0x00aa00…00aa20 (2, 1, 11)  61 72 61 6d 63 6f 75 6e 74 20 3d 20 30 20 29 20 6f 72 20 28 20 63 61 70 73 20 28 20 70 61 72 61   ┆aramcount = 0 ) or ( caps ( para┆
0x00aa20…00aa40             6d 73 74 72 28 31 29 29 20 3d 20 27 48 45 4c 50 27 29 20 74 68 65 6e 20 20 68 65 6c 70 5f 69 6e   ┆mstr(1)) = 'HELP') then  help_in┆
0x00aa40…00aa60             66 6f 72 6d 3b 0a 0a 20 20 20 66 6f 72 20 70 3a 3d 20 33 20 74 6f 20 70 61 72 61 6d 63 6f 75 6e   ┆form;     for p:= 3 to paramcoun┆
0x00aa60…00aa80             74 20 64 6f 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 64 73 74 5f 70 61 74 68 3a 3d 20   ┆t do      begin      dst_path:= ┆
0x00aa80…00aaa0             63 61 70 73 20 28 20 70 61 72 61 6d 73 74 72 20 28 20 70 29 29 3b 0a 20 20 20 20 20 72 65 61 64   ┆caps ( paramstr ( p));      read┆
0x00aaa0…00aac0             5f 6f 70 74 69 6f 6e 73 20 28 20 64 73 74 5f 70 61 74 68 2c 20 6f 70 74 69 6f 6e 5f 70 2c 20 6f   ┆_options ( dst_path, option_p, o┆
0x00aac0…00aae0             70 74 69 6f 6e 5f 6d 2c 20 6f 70 74 69 6f 6e 5f 6e 2c 20 6f 70 74 69 6f 6e 5f 6c 29 3b 0a 20 20   ┆ption_m, option_n, option_l);   ┆
0x00aae0…00ab00             20 20 20 65 6e 64 3b 0a 0a 20 20 20 64 73 74 5f 70 61 74 68 3a 3d 20 27 27 3b 0a 20 20 20 69 66   ┆   end;     dst_path:= '';    if┆
0x00ab00…00ab20             20 70 61 72 61 6d 63 6f 75 6e 74 20 3d 20 31 20 74 68 65 6e 20 20 73 72 63 5f 70 61 74 68 3a 3d   ┆ paramcount = 1 then  src_path:=┆
0x00ab20…00ab40             20 63 61 70 73 20 28 20 70 61 72 61 6d 73 74 72 28 31 29 29 0a 20 20 20 65 6c 73 65 0a 20 20 20   ┆ caps ( paramstr(1))    else    ┆
0x00ab40…00ab60             20 20 62 65 67 69 6e 0a 20 20 20 20 20 73 72 63 5f 70 61 74 68 3a 3d 20 63 61 70 73 20 28 20 70   ┆  begin      src_path:= caps ( p┆
0x00ab60…00ab80             61 72 61 6d 73 74 72 28 31 29 29 3b 0a 20 20 20 20 20 69 66 20 73 72 63 5f 70 61 74 68 5b 31 5d   ┆aramstr(1));      if src_path[1]┆
0x00ab80…00aba0             20 3d 20 27 3d 27 20 74 68 65 6e 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20   ┆ = '=' then        begin        ┆
0x00aba0…00abc0             64 73 74 5f 70 61 74 68 3a 3d 20 73 72 63 5f 70 61 74 68 3b 0a 20 20 20 20 20 20 20 73 72 63 5f   ┆dst_path:= src_path;        src_┆
0x00abc0…00abe0             70 61 74 68 3a 3d 20 63 61 70 73 20 28 20 70 61 72 61 6d 73 74 72 28 32 29 29 3b 0a 20 20 20 20   ┆path:= caps ( paramstr(2));     ┆
0x00abe0…00ac00             20 20 20 65 6e 64 0a 20 20 20 20 20 65 6c 73 65 20 20 64 73 74 5f 70 61 74 68 3a 3d 20 63 61 70   ┆   end      else  dst_path:= cap┆
0x00ac00…00ac20 (2, 1, 12)  73 20 28 20 70 61 72 61 6d 73 74 72 28 32 29 29 0a 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 69   ┆s ( paramstr(2))      end;     i┆
0x00ac20…00ac40             66 20 73 72 63 5f 70 61 74 68 5b 31 5d 20 3d 20 27 3d 27 20 74 68 65 6e 20 64 65 6c 65 74 65 20   ┆f src_path[1] = '=' then delete ┆
0x00ac40…00ac60             28 20 73 72 63 5f 70 61 74 68 2c 20 31 2c 20 31 29 3b 0a 20 20 20 69 66 20 64 73 74 5f 70 61 74   ┆( src_path, 1, 1);    if dst_pat┆
0x00ac60…00ac80             68 5b 31 5d 20 3d 20 27 3d 27 20 74 68 65 6e 20 64 65 6c 65 74 65 20 28 20 64 73 74 5f 70 61 74   ┆h[1] = '=' then delete ( dst_pat┆
0x00ac80…00aca0             68 2c 20 31 2c 20 31 29 3b 0a 0a 20 20 20 69 66 20 70 6f 73 20 28 20 27 2e 27 2c 20 73 72 63 5f   ┆h, 1, 1);     if pos ( '.', src_┆
0x00aca0…00acc0             70 61 74 68 20 29 20 3d 20 30 20 74 68 65 6e 20 73 72 63 5f 70 61 74 68 3a 3d 20 73 72 63 5f 70   ┆path ) = 0 then src_path:= src_p┆
0x00acc0…00ace0             61 74 68 20 2b 20 64 65 66 5f 73 72 63 5f 65 78 74 3b 0a 20 20 20 72 65 61 64 5f 6f 70 74 69 6f   ┆ath + def_src_ext;    read_optio┆
0x00ace0…00ad00             6e 73 20 28 20 64 73 74 5f 70 61 74 68 2c 20 6f 70 74 69 6f 6e 5f 70 2c 20 6f 70 74 69 6f 6e 5f   ┆ns ( dst_path, option_p, option_┆
0x00ad00…00ad20             6d 2c 20 6f 70 74 69 6f 6e 5f 6e 2c 20 6f 70 74 69 6f 6e 5f 6c 29 3b 0a 20 20 20 65 6e 64 3b 20   ┆m, option_n, option_l);    end; ┆
0x00ad20…00ad40             20 28 2a 20 20 72 65 61 64 20 70 61 72 61 6d 73 20 20 2a 29 0a 0a 0c 0a 0a 20 50 72 6f 63 65 64   ┆ (*  read params  *)      Proced┆
0x00ad40…00ad60             75 72 65 20 6d 61 6b 65 5f 66 69 6c 65 6e 61 6d 65 73 20 28 20 73 6f 75 72 63 65 5f 70 61 74 68   ┆ure make_filenames ( source_path┆
0x00ad60…00ad80             2c 20 64 65 73 74 69 5f 70 61 74 68 20 3a 20 70 61 74 68 73 74 72 3b 0a 09 09 76 61 72 20 73 6e   ┆, desti_path : pathstr;   var sn┆
0x00ad80…00ada0             61 6d 65 2c 20 64 6e 61 6d 65 3a 20 70 61 74 68 73 74 72 29 3b 0a 20 20 20 76 61 72 0a 20 20 20   ┆ame, dname: pathstr);    var    ┆
0x00ada0…00adc0             20 20 20 20 73 6f 75 72 63 65 5f 64 69 72 2c 20 64 65 73 74 69 5f 64 69 72 20 20 3a 20 20 64 69   ┆    source_dir, desti_dir  :  di┆
0x00adc0…00ade0             72 73 74 72 3b 0a 20 20 20 20 20 20 20 73 6f 75 72 63 65 5f 6e 61 6d 65 2c 20 64 65 73 74 69 5f   ┆rstr;        source_name, desti_┆
0x00ade0…00ae00             6e 61 6d 65 3a 20 20 6e 61 6d 65 73 74 72 3b 0a 20 20 20 20 20 20 20 73 6f 75 72 63 65 5f 65 78   ┆name:  namestr;        source_ex┆
0x00ae00…00ae20 (2, 1, 13)  74 2c 20 64 65 73 74 69 5f 65 78 74 20 20 3a 20 20 65 78 74 73 74 72 3b 0a 0a 20 20 20 62 65 67   ┆t, desti_ext  :  extstr;     beg┆
0x00ae20…00ae40             69 6e 0a 20 20 20 66 73 70 6c 69 74 20 28 20 73 6f 75 72 63 65 5f 70 61 74 68 2c 20 73 6f 75 72   ┆in    fsplit ( source_path, sour┆
0x00ae40…00ae60             63 65 5f 64 69 72 2c 20 73 6f 75 72 63 65 5f 6e 61 6d 65 2c 20 73 6f 75 72 63 65 5f 65 78 74 29   ┆ce_dir, source_name, source_ext)┆
0x00ae60…00ae80             3b 0a 20 20 20 66 73 70 6c 69 74 20 28 20 64 65 73 74 69 5f 70 61 74 68 2c 20 64 65 73 74 69 5f   ┆;    fsplit ( desti_path, desti_┆
0x00ae80…00aea0             64 69 72 2c 20 64 65 73 74 69 5f 6e 61 6d 65 2c 20 64 65 73 74 69 5f 65 78 74 29 3b 0a 20 20 20   ┆dir, desti_name, desti_ext);    ┆
0x00aea0…00aec0             69 66 20 64 65 73 74 69 5f 6e 61 6d 65 20 3d 20 27 27 20 74 68 65 6e 20 64 65 73 74 69 5f 6e 61   ┆if desti_name = '' then desti_na┆
0x00aec0…00aee0             6d 65 3a 3d 20 73 6f 75 72 63 65 5f 6e 61 6d 65 3b 0a 20 20 20 69 66 20 64 65 73 74 69 5f 65 78   ┆me:= source_name;    if desti_ex┆
0x00aee0…00af00             74 20 20 3d 20 27 27 20 74 68 65 6e 20 64 65 73 74 69 5f 65 78 74 3a 3d 20 64 65 66 5f 64 65 73   ┆t  = '' then desti_ext:= def_des┆
0x00af00…00af20             74 5f 65 78 74 3b 0a 20 20 20 73 6e 61 6d 65 3a 3d 20 73 6f 75 72 63 65 5f 70 61 74 68 3b 0a 20   ┆t_ext;    sname:= source_path;  ┆
0x00af20…00af40             20 20 64 6e 61 6d 65 3a 3d 20 64 65 73 74 69 5f 64 69 72 20 2b 20 64 65 73 74 69 5f 6e 61 6d 65   ┆  dname:= desti_dir + desti_name┆
0x00af40…00af60             20 2b 20 64 65 73 74 69 5f 65 78 74 3b 0a 20 20 20 65 6e 64 3b 0a 0a 0a 0a 20 46 75 6e 63 74 69   ┆ + desti_ext;    end;     Functi┆
0x00af60…00af80             6f 6e 20 6c 6f 6f 6b 75 70 20 28 20 70 61 74 68 3a 20 70 61 74 68 73 74 72 3b 20 20 6d 6f 64 65   ┆on lookup ( path: pathstr;  mode┆
0x00af80…00afa0             3a 20 77 6f 72 64 29 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 28 2a 20 20 20 74 72 79 20 74 6f   ┆: word): longint;    (*   try to┆
0x00afa0…00afc0             20 6f 70 65 6e 20 74 68 65 20 66 69 6c 65 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 69 6d 65 5f   ┆ open the file, and return time_┆
0x00afc0…00afe0             73 74 61 6d 70 20 66 6f 72 20 74 68 65 20 66 69 6c 65 0a 20 20 20 2d 2d 20 20 20 69 6e 70 75 74   ┆stamp for the file    --   input┆
0x00afe0…00b000             20 66 69 6c 65 20 69 73 20 6b 65 70 74 20 6f 70 65 6e 0a 20 20 20 2d 2d 20 20 20 6f 75 74 70 75   ┆ file is kept open    --   outpu┆
0x00b000…00b020 (2, 1, 14)  74 20 66 69 6c 65 20 69 73 20 63 6c 6f 73 65 64 0a 20 20 20 2a 29 0a 20 20 20 76 61 72 0a 20 20   ┆t file is closed    *)    var   ┆
0x00b020…00b040             20 20 20 72 65 73 75 6c 74 3a 20 20 69 6e 74 65 67 65 72 3b 0a 20 20 20 20 20 73 74 61 6d 70 20   ┆   result:  integer;      stamp ┆
0x00b040…00b060             3a 20 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 69 66 20 6d 6f 64 65 20   ┆:  longint;    begin    if mode ┆
0x00b060…00b080             3d 20 66 6d 69 6e 70 75 74 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 61   ┆= fminput then      begin      a┆
0x00b080…00b0a0             73 73 69 67 6e 20 28 20 73 6f 75 72 63 65 2c 20 70 61 74 68 29 3b 0a 20 20 20 20 20 28 2a 24 49   ┆ssign ( source, path);      (*$I┆
0x00b0a0…00b0c0             2d 20 20 2a 29 3b 0a 20 20 20 20 20 72 65 73 65 74 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 20 20   ┆-  *);      reset ( source);    ┆
0x00b0c0…00b0e0             20 20 28 2a 24 49 2b 20 20 2a 29 0a 20 20 20 20 20 72 65 73 75 6c 74 3a 3d 20 69 6f 72 65 73 75   ┆  (*$I+  *)      result:= ioresu┆
0x00b0e0…00b100             6c 74 3b 0a 20 20 20 20 20 69 66 20 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20   ┆lt;      if result <> 0 then    ┆
0x00b100…00b120             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 28 2a 24 49 2d 20 20 2a 29 0a 20 20 20 20 20   ┆    begin        (*$I-  *)      ┆
0x00b120…00b140             20 20 63 6c 6f 73 65 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 20 20 20 20 20 20 72 65 73 75 6c 74   ┆  close ( source);        result┆
0x00b140…00b160             3a 3d 20 69 6f 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 72 65 73 65 74 20 28 20 73 6f 75 72   ┆:= ioresult;        reset ( sour┆
0x00b160…00b180             63 65 29 3b 0a 20 20 20 20 20 20 20 72 65 73 75 6c 74 3a 3d 20 69 6f 72 65 73 75 6c 74 3b 20 20   ┆ce);        result:= ioresult;  ┆
0x00b180…00b1a0             20 20 20 20 28 2a 24 49 2b 20 20 2a 29 0a 20 20 20 20 20 20 20 69 66 20 72 65 73 75 6c 74 20 3c   ┆    (*$I+  *)        if result <┆
0x00b1a0…00b1c0             3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 20 77 72 69 74 65 6c   ┆> 0 then          begin   writel┆
0x00b1c0…00b1e0             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 43 61 6e 6e 6f 74 20 66 69 6e 64 20 73 6f 75   ┆n ( output, '*** Cannot find sou┆
0x00b1e0…00b200             72 63 65 20 22 27 2c 20 70 61 74 68 2c 20 27 22 20 20 20 72 65 73 75 6c 74 20 3a 20 27 2c 20 72   ┆rce "', path, '"   result : ', r┆
0x00b200…00b220 (2, 1, 15)  65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 6b 65 79 3a 3d 20 72 65 61 64 6b 65 79 3b 0a   ┆esult);          key:= readkey; ┆
0x00b220…00b240             20 20 20 20 20 20 20 20 20 72 75 6e 65 72 72 6f 72 20 28 20 72 65 73 75 6c 74 29 0a 20 20 20 20   ┆         runerror ( result)     ┆
0x00b240…00b260             20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 65 6c 73 65 0a 09 20 69 66 20 64 65 62 75 67 5f   ┆     end        else   if debug_┆
0x00b260…00b280             6c 65 76 65 6c 20 3e 20 35 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆level > 5 then  writeln ( output┆
0x00b280…00b2a0             2c 20 27 2d 2d 20 73 6f 75 72 63 65 20 6f 70 65 6e 20 61 66 74 65 72 20 63 6c 6f 73 65 2e 27 29   ┆, '-- source open after close.')┆
0x00b2a0…00b2c0             3b 0a 20 20 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 72 65 73 75 6c 74 20 3c 3e 20 30 20 20 2a   ┆;        end  (*  result <> 0  *┆
0x00b2c0…00b2e0             29 0a 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 69 66 20 64 65 62 75 67 5f 6c 65 76 65 6c 20   ┆)      else      if debug_level ┆
0x00b2e0…00b300             3e 20 35 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 73   ┆> 5 then writeln ( output, '-- s┆
0x00b300…00b320             6f 75 72 63 65 20 6f 70 65 6e 2e 27 29 3b 0a 20 20 20 20 20 67 65 74 66 74 69 6d 65 20 28 20 73   ┆ource open.');      getftime ( s┆
0x00b320…00b340             6f 75 72 63 65 2c 20 73 74 61 6d 70 29 0a 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 66 6d 69 6e   ┆ource, stamp)      end  (*  fmin┆
0x00b340…00b360             70 75 74 20 20 2a 29 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 62 65 67 69 6e 20 20 28 2a 20 20   ┆put  *)    else      begin  (*  ┆
0x00b360…00b380             66 6d 6f 75 74 70 75 74 20 20 2a 29 0a 20 20 20 20 20 61 73 73 69 67 6e 20 28 20 64 65 73 74 69   ┆fmoutput  *)      assign ( desti┆
0x00b380…00b3a0             2c 20 70 61 74 68 29 3b 0a 20 20 20 20 20 28 2a 24 49 2d 20 20 2a 29 0a 20 20 20 20 20 72 65 73   ┆, path);      (*$I-  *)      res┆
0x00b3a0…00b3c0             65 74 20 28 20 64 65 73 74 69 29 3b 0a 20 20 20 20 20 72 65 73 75 6c 74 3a 3d 20 69 6f 72 65 73   ┆et ( desti);      result:= iores┆
0x00b3c0…00b3e0             75 6c 74 3b 0a 20 20 20 20 20 28 2a 24 49 2b 20 20 2a 29 0a 20 20 20 20 20 69 66 20 72 65 73 75   ┆ult;      (*$I+  *)      if resu┆
0x00b3e0…00b400             6c 74 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20   ┆lt = 0 then        begin        ┆
0x00b400…00b420 (3, 0, 1)   67 65 74 66 74 69 6d 65 20 28 20 64 65 73 74 69 2c 20 73 74 61 6d 70 29 3b 0a 20 20 20 20 20 20   ┆getftime ( desti, stamp);       ┆
0x00b420…00b440             20 63 6c 6f 73 65 20 28 20 64 65 73 74 69 29 0a 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20   ┆ close ( desti)        end      ┆
0x00b440…00b460             65 6c 73 65 20 20 73 74 61 6d 70 3a 3d 20 30 0a 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 66   ┆else  stamp:= 0      end;  (*  f┆
0x00b460…00b480             6d 6f 75 74 70 75 74 20 20 2a 29 0a 20 20 20 6c 6f 6f 6b 75 70 3a 3d 20 73 74 61 6d 70 0a 20 20   ┆moutput  *)    lookup:= stamp   ┆
0x00b480…00b4a0             20 65 6e 64 3b 20 20 28 2a 20 20 6c 6f 6f 6b 75 70 20 20 2a 29 0a 0a 0a 0a 20 46 75 6e 63 74 69   ┆ end;  (*  lookup  *)     Functi┆
0x00b4a0…00b4c0             6f 6e 20 67 65 74 5f 63 6f 6e 66 69 72 6d 20 28 20 76 61 72 20 74 78 74 3a 20 70 61 74 68 73 74   ┆on get_confirm ( var txt: pathst┆
0x00b4c0…00b4e0             72 29 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 20 76 61 72 20 20 6b 65 79 20 3a 20 63 68 61 72 3b   ┆r): boolean;    var  key : char;┆
0x00b4e0…00b500             0a 20 20 20 62 65 67 69 6e 0a 20 20 20 72 65 70 65 61 74 0a 20 20 20 20 20 77 72 69 74 65 20 28   ┆    begin    repeat      write (┆
0x00b500…00b520             20 74 78 74 2c 20 27 20 28 59 2f 4e 29 3f 20 27 29 3b 0a 20 20 20 20 20 6b 65 79 3a 3d 20 75 70   ┆ txt, ' (Y/N)? ');      key:= up┆
0x00b520…00b540             63 61 73 65 20 28 20 72 65 61 64 6b 65 79 29 3b 0a 20 20 20 20 20 69 66 20 6b 65 79 20 3d 20 23   ┆case ( readkey);      if key = #┆
0x00b540…00b560             30 30 20 74 68 65 6e 20 6b 65 79 3a 3d 20 75 70 63 61 73 65 20 28 20 72 65 61 64 6b 65 79 29 3b   ┆00 then key:= upcase ( readkey);┆
0x00b560…00b580             0a 20 20 20 20 20 69 66 20 6b 65 79 20 3d 20 23 30 33 20 74 68 65 6e 20 72 75 6e 65 72 72 6f 72   ┆      if key = #03 then runerror┆
0x00b580…00b5a0             20 28 20 32 35 36 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6b 65 79 29 0a 20 20 20   ┆ ( 256);      writeln ( key)    ┆
0x00b5a0…00b5c0             75 6e 74 69 6c 20 6b 65 79 20 69 6e 20 28 2e 20 27 59 27 2c 20 27 4a 27 2c 20 27 4e 27 20 2e 29   ┆until key in (. 'Y', 'J', 'N' .)┆
0x00b5c0…00b5e0             3b 0a 20 20 20 67 65 74 5f 63 6f 6e 66 69 72 6d 3a 3d 20 6b 65 79 20 3c 3e 20 27 4e 27 0a 20 20   ┆;    get_confirm:= key <> 'N'   ┆
0x00b5e0…00b600             20 65 6e 64 3b 20 20 28 2a 20 20 67 65 74 20 63 6f 6e 66 69 72 6d 20 20 2a 29 0a 0a 0a 0a 0a 0a   ┆ end;  (*  get confirm  *)      ┆
0x00b600…00b620 (3, 0, 2)   0c 0a 0a 20 50 72 6f 63 65 64 75 72 65 20 72 74 70 63 6f 6d 70 72 65 73 73 20 28 20 73 6f 75 72   ┆    Procedure rtpcompress ( sour┆
0x00b620…00b640             63 65 5f 70 61 74 68 2c 20 64 65 73 74 69 5f 70 61 74 68 3a 20 70 61 74 68 73 74 72 29 3b 0a 0a   ┆ce_path, desti_path: pathstr);  ┆
0x00b640…00b660             76 61 72 20 20 20 20 63 68 3a 69 73 6f 3b 0a 20 20 20 20 20 20 20 63 68 67 72 6f 75 70 3a 63 68   ┆var    ch:iso;        chgroup:ch┆
0x00b660…00b680             67 72 6f 75 70 74 79 70 65 3b 0a 20 20 20 20 20 20 20 73 74 61 74 65 3a 73 74 61 74 65 74 79 70   ┆grouptype;        state:statetyp┆
0x00b680…00b6a0             65 3b 0a 20 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 3a 74 61 62 6c 65 63 6f 6e 74 65 6e 74 3b 0a   ┆e;        content:tablecontent; ┆
0x00b6a0…00b6c0             20 20 20 20 20 20 20 70 61 73 73 65 64 6e 6c 2c 20 64 65 73 74 69 5f 6f 70 65 6e 3a 62 6f 6f 6c   ┆       passednl, desti_open:bool┆
0x00b6c0…00b6e0             65 61 6e 3b 0a 20 20 20 20 20 20 20 6c 61 73 74 70 72 69 6e 74 65 64 3a 63 68 67 72 6f 75 70 74   ┆ean;        lastprinted:chgroupt┆
0x00b6e0…00b700             79 70 65 3b 0a 0a 20 20 20 20 20 20 20 72 65 73 75 6c 74 2c 20 6c 69 6e 65 6e 6f 09 3a 20 20 69   ┆ype;         result, lineno :  i┆
0x00b700…00b720             6e 74 65 67 65 72 3b 0a 0a 0a 20 70 72 6f 63 65 64 75 72 65 20 6f 70 65 6e 5f 64 65 73 74 5f 66   ┆nteger;    procedure open_dest_f┆
0x00b720…00b740             69 6c 65 20 28 20 64 73 74 5f 70 61 74 68 3a 20 70 61 74 68 73 74 72 29 3b 0a 20 20 20 76 61 72   ┆ile ( dst_path: pathstr);    var┆
0x00b740…00b760             20 72 65 73 75 6c 74 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 61   ┆ result: integer;    begin     a┆
0x00b760…00b780             73 73 69 67 6e 20 28 20 64 65 73 74 69 2c 20 64 73 74 5f 70 61 74 68 29 3b 0a 20 20 20 28 2a 24   ┆ssign ( desti, dst_path);    (*$┆
0x00b780…00b7a0             49 2d 20 20 2a 29 0a 20 20 20 72 65 77 72 69 74 65 20 28 20 64 65 73 74 69 29 3b 0a 20 20 20 72   ┆I-  *)    rewrite ( desti);    r┆
0x00b7a0…00b7c0             65 73 75 6c 74 3a 3d 20 69 6f 72 65 73 75 6c 74 3b 0a 20 20 20 28 2a 24 49 2b 20 20 2a 29 0a 20   ┆esult:= ioresult;    (*$I+  *)  ┆
0x00b7c0…00b7e0             20 20 69 66 20 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e   ┆  if result <> 0 then      begin┆
0x00b7e0…00b800             0a 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 43 61 6e 6e 6f   ┆      write ( output, '*** Canno┆
0x00b800…00b820 (3, 0, 3)   74 20 6f 70 65 6e 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 22 27 2c 20 64 73 74 5f 70 61 74 68 2c   ┆t open destination "', dst_path,┆
0x00b820…00b840             20 27 22 20 20 20 72 65 73 75 6c 74 20 3a 20 27 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20   ┆ '"   result : ', result);      ┆
0x00b840…00b860             6b 65 79 3a 3d 20 72 65 61 64 6b 65 79 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆key:= readkey;      writeln ( ou┆
0x00b860…00b880             74 70 75 74 29 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 3b 0a 20 20 20 20 20 72 75 6e 65 72 72   ┆tput);      writeln;      runerr┆
0x00b880…00b8a0             6f 72 20 28 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 65 6e 64 0a 20 20 20 65 6c 73 65 0a 20 20   ┆or ( result)      end    else   ┆
0x00b8a0…00b8c0             20 69 66 20 64 65 62 75 67 5f 6c 65 76 65 6c 20 3e 20 35 20 74 68 65 6e 20 77 72 69 74 65 6c 6e   ┆ if debug_level > 5 then writeln┆
0x00b8c0…00b8e0             20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 6f 70 65 6e   ┆ ( output, '--  destination open┆
0x00b8e0…00b900             2e 27 29 3b 0a 0a 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 6f 70 65 6e 20 64 65 73 74 20 66 69 6c   ┆.');     end;  (*  open dest fil┆
0x00b900…00b920             65 20 20 2a 29 0a 0a 0c 0a 0a 70 72 6f 63 65 64 75 72 65 20 73 63 61 6e 20 28 20 76 61 72 20 73   ┆e  *)     procedure scan ( var s┆
0x00b920…00b940             79 6d 62 6f 6c 3a 69 73 6f 3b 20 76 61 72 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 63 68 67 72 6f   ┆ymbol:iso; var symbolgroup:chgro┆
0x00b940…00b960             75 70 74 79 70 65 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 65 6f 66 20 28 20 73 6f   ┆uptype);   begin     if eof ( so┆
0x00b960…00b980             75 72 63 65 29 20 74 68 65 6e 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 65 6f 66 67 72 6f 75 70   ┆urce) then symbolgroup:=eofgroup┆
0x00b980…00b9a0             0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 28 20 73 79 6d 62 6f 6c 20 3d 20 66 66 29 20   ┆     else     if ( symbol = ff) ┆
0x00b9a0…00b9c0             6f 72 20 65 6f 6c 6e 20 28 20 73 6f 75 72 63 65 29 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67   ┆or eoln ( source) then       beg┆
0x00b9c0…00b9e0             69 6e 0a 20 20 20 20 20 20 20 20 72 65 61 64 6c 6e 20 28 20 73 6f 75 72 63 65 29 3b 20 73 79 6d   ┆in         readln ( source); sym┆
0x00b9e0…00ba00             62 6f 6c 3a 3d 6e 6c 3b 0a 20 20 20 20 20 20 20 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 6e 65   ┆bol:=nl;         symbolgroup:=ne┆
0x00ba00…00ba20 (3, 0, 4)   77 6c 69 6e 65 3b 0a 09 6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f 20 2b 20 31 3b 0a 20 20 20   ┆wline;  lineno:= lineno + 1;    ┆
0x00ba20…00ba40             20 20 20 69 66 20 6c 69 6e 65 6e 6f 20 6d 6f 64 20 31 30 20 3d 20 30 20 74 68 65 6e 20 20 77 72   ┆   if lineno mod 10 = 0 then  wr┆
0x00ba40…00ba60             69 74 65 20 28 20 23 31 33 2c 20 6c 69 6e 65 6e 6f 3a 35 29 3b 0a 20 20 20 20 20 20 69 66 20 70   ┆ite ( #13, lineno:5);       if p┆
0x00ba60…00ba80             61 73 73 65 64 6e 6c 20 74 68 65 6e 0a 09 62 65 67 69 6e 0a 09 69 66 20 6f 70 74 69 6f 6e 5f 6c   ┆assednl then  begin  if option_l┆
0x00ba80…00baa0             20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 64 65 73 74 69 29 0a 20 20 09 65 6e 64 3b 20 20   ┆ then writeln ( desti)    end;  ┆
0x00baa0…00bac0             28 2a 20 20 6e 6c 20 20 2a 29 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20   ┆(*  nl  *)       end     else   ┆
0x00bac0…00bae0             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 72 65 61 64 20 28 20 73 6f 75 72 63 65 2c   ┆    begin         read ( source,┆
0x00bae0…00bb00             20 73 79 6d 62 6f 6c 29 3b 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 73 79 6d 62 6f 6c 20 6f 66   ┆ symbol);         case symbol of┆
0x00bb00…00bb20             0a 20 20 20 20 20 20 20 20 20 20 27 28 27 20 3a 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 6c 65   ┆           '(' : symbolgroup:=le┆
0x00bb20…00bb40             66 74 70 31 3b 0a 20 20 20 20 20 20 20 20 20 20 27 29 27 20 3a 20 73 79 6d 62 6f 6c 67 72 6f 75   ┆ftp1;           ')' : symbolgrou┆
0x00bb40…00bb60             70 3a 3d 72 69 67 68 74 70 31 3b 0a 20 20 20 20 20 20 20 20 20 20 27 2a 27 20 3a 20 73 79 6d 62   ┆p:=rightp1;           '*' : symb┆
0x00bb60…00bb80             6f 6c 67 72 6f 75 70 3a 3d 73 74 61 72 3b 0a 20 20 20 20 20 20 20 20 20 20 27 24 27 20 3a 20 73   ┆olgroup:=star;           '$' : s┆
0x00bb80…00bba0             79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 64 6f 6c 6c 61 72 3b 0a 20 20 20 20 20 20 20 20 20 20 27 3c   ┆ymbolgroup:=dollar;           '<┆
0x00bba0…00bbc0             27 20 3a 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 6c 65 66 74 70 32 3b 0a 20 20 20 20 20 20 20   ┆' : symbolgroup:=leftp2;        ┆
0x00bbc0…00bbe0             20 20 20 27 3e 27 20 3a 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 72 69 67 68 74 70 32 3b 0a 20   ┆   '>' : symbolgroup:=rightp2;  ┆
0x00bbe0…00bc00             20 20 20 20 20 20 20 20 20 23 33 39 20 3a 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 73 69 6e 67   ┆         #39 : symbolgroup:=sing┆
0x00bc00…00bc20 (3, 0, 5)   6c 65 71 75 6f 74 65 3b 0a 20 20 20 20 20 20 20 20 20 20 27 22 27 20 3a 20 73 79 6d 62 6f 6c 67   ┆lequote;           '"' : symbolg┆
0x00bc20…00bc40             72 6f 75 70 3a 3d 64 6f 75 62 6c 65 71 75 6f 74 65 3b 0a 20 20 20 20 20 20 20 20 20 20 27 2d 27   ┆roup:=doublequote;           '-'┆
0x00bc40…00bc60             20 3a 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 64 61 73 68 3b 0a 20 20 20 20 20 20 20 20 20 20   ┆ : symbolgroup:=dash;           ┆
0x00bc60…00bc80             62 6c 61 6e 6b 20 3a 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a 3d 73 65 70 61 72 61 74 6f 72 3b 0a   ┆blank : symbolgroup:=separator; ┆
0x00bc80…00bca0             20 20 20 20 20 20 20 20 20 20 27 21 27 2c 27 25 27 2c 27 26 27 2c 27 2b 27 2c 27 2c 27 2c 27 2e   ┆          '!','%','&','+',',','.┆
0x00bca0…00bcc0             27 2c 27 2f 27 2c 27 3a 27 2c 27 3b 27 2c 27 3d 27 2c 27 3f 27 2c 27 40 27 2c 0a 20 20 20 20 20   ┆','/',':',';','=','?','@',      ┆
0x00bcc0…00bce0             20 20 20 20 20 27 5e 27 2c 27 60 27 2c 27 7e 27 20 20 3a 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a   ┆     '^','`','~'  : symbolgroup:┆
0x00bce0…00bd00             3d 64 65 6c 69 6d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 73 79 6d 62 6f 6c 67 72 6f 75 70 3a   ┆=delim         else symbolgroup:┆
0x00bd00…00bd20             3d 61 6c 66 6e 75 6d 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 63 61 73 65 20 20   ┆=alfnum;         end  (*  case  ┆
0x00bd20…00bd40             2a 29 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 65 6e 64 3b 20 20 20 28 2a 20 73 63 61 6e 20   ┆*)       end;    end;   (* scan ┆
0x00bd40…00bd60             2a 29 0a 0a 0c 0a 0a 0a 20 20 62 65 67 69 6e 20 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆*)        begin   (*------------┆
0x00bd60…00bd80             2d 2d 2d 2d 2d 2d 2d 20 72 74 70 63 6f 6d 70 72 65 73 73 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆------- rtpcompress ------------┆
0x00bd80…00bda0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 73 74 61 74 65 20 3a 3d 20   ┆------------------*)   state := ┆
0x00bda0…00bdc0             73 74 61 72 74 3b 0a 20 20 70 61 73 73 65 64 6e 6c 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 6c 61 73   ┆start;   passednl:= false;   las┆
0x00bdc0…00bde0             74 70 72 69 6e 74 65 64 3a 3d 20 64 65 6c 69 6d 3b 0a 20 20 6c 69 6e 65 6e 6f 3a 3d 20 30 3b 0a   ┆tprinted:= delim;   lineno:= 0; ┆
0x00bde0…00be00             0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 37 2c 20 73 6f 75 72 63   ┆   writeln ( output, '':7, sourc┆
0x00be00…00be20 (3, 0, 6)   65 5f 70 61 74 68 2c 20 27 20 20 2d 2d 3e 20 20 27 2c 20 64 65 73 74 69 5f 70 61 74 68 29 3b 0a   ┆e_path, '  -->  ', desti_path); ┆
0x00be20…00be40             20 20 6f 70 65 6e 5f 64 65 73 74 5f 66 69 6c 65 20 28 20 64 65 73 74 69 5f 70 61 74 68 29 3b 0a   ┆  open_dest_file ( desti_path); ┆
0x00be40…00be60             0a 20 20 69 66 20 64 65 62 75 67 5f 6c 65 76 65 6c 20 3e 20 35 20 74 68 65 6e 0a 20 20 20 20 77   ┆   if debug_level > 5 then     w┆
0x00be60…00be80             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 73 6f 75 72 63 65 5f 70 61 74 68 2c 20 27 20   ┆riteln ( output, source_path, ' ┆
0x00be80…00bea0             20 2d 2d 3e 20 20 27 2c 20 64 65 73 74 69 5f 70 61 74 68 2c 20 27 20 20 6f 70 65 6e 65 64 27 29   ┆ -->  ', desti_path, '  opened')┆
0x00bea0…00bec0             3b 0a 0a 20 20 69 66 20 64 65 62 75 67 5f 6c 65 76 65 6c 20 3c 20 31 30 20 74 68 65 6e 0a 20 20   ┆;    if debug_level < 10 then   ┆
0x00bec0…00bee0             62 65 67 69 6e 0a 0a 20 20 73 63 61 6e 20 28 20 63 68 2c 20 63 68 67 72 6f 75 70 29 3b 0a 20 20   ┆begin    scan ( ch, chgroup);   ┆
0x00bee0…00bf00             77 68 69 6c 65 20 73 74 61 74 65 20 3c 3e 20 73 74 6f 70 20 64 6f 0a 20 20 20 20 62 65 67 69 6e   ┆while state <> stop do     begin┆
0x00bf00…00bf20             0a 09 69 66 20 66 61 6c 73 65 20 74 68 65 6e 09 28 2a 20 20 73 6f 6d 65 20 52 43 38 30 30 30 20   ┆  if false then (*  some RC8000 ┆
0x00bf20…00bf40             64 65 62 75 67 20 20 2a 29 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20   ┆debug  *)         begin         ┆
0x00bf40…00bf60             77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 73 27 29 3b 0a 20 20 20 20 20 20 20 20 77 72 69   ┆write ( desti, 's');         wri┆
0x00bf60…00bf80             74 65 20 28 20 64 65 73 74 69 2c 20 63 68 72 20 28 20 36 35 2b 6f 72 64 20 28 20 73 74 61 74 65   ┆te ( desti, chr ( 65+ord ( state┆
0x00bf80…00bfa0             29 29 29 3b 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 20 27 29   ┆)));         write ( desti, ' ')┆
0x00bfa0…00bfc0             3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 20 3a 3d   ┆;         end;        content :=┆
0x00bfc0…00bfe0             20 74 61 62 6c 65 5b 73 74 61 74 65 2c 20 63 68 67 72 6f 75 70 5d 3b 0a 20 20 20 20 20 20 63 61   ┆ table[state, chgroup];       ca┆
0x00bfe0…00c000             73 65 20 63 6f 6e 74 65 6e 74 2e 61 63 74 20 6f 66 0a 20 20 20 20 20 20 20 20 4e 20 20 20 3a 20   ┆se content.act of         N   : ┆
0x00c000…00c020 (3, 0, 7)   3b 0a 20 20 20 20 20 20 20 20 4e 53 20 20 3a 20 73 63 61 6e 20 28 20 63 68 2c 20 63 68 67 72 6f   ┆;         NS  : scan ( ch, chgro┆
0x00c020…00c040             75 70 29 3b 0a 20 20 20 20 20 20 20 20 61 53 20 20 3a 20 62 65 67 69 6e 20 77 72 69 74 65 20 28   ┆up);         aS  : begin write (┆
0x00c040…00c060             20 64 65 73 74 69 2c 20 63 68 29 3b 20 6c 61 73 74 70 72 69 6e 74 65 64 3a 3d 61 6c 66 6e 75 6d   ┆ desti, ch); lastprinted:=alfnum┆
0x00c060…00c080             3b 20 73 63 61 6e 20 28 20 63 68 2c 20 63 68 67 72 6f 75 70 29 20 65 6e 64 3b 0a 20 20 20 20 20   ┆; scan ( ch, chgroup) end;      ┆
0x00c080…00c0a0             20 20 20 64 53 20 20 3a 20 62 65 67 69 6e 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 63 68   ┆   dS  : begin write ( desti, ch┆
0x00c0a0…00c0c0             29 3b 20 6c 61 73 74 70 72 69 6e 74 65 64 3a 3d 64 65 6c 69 6d 3b 20 73 63 61 6e 20 28 20 63 68   ┆); lastprinted:=delim; scan ( ch┆
0x00c0c0…00c0e0             2c 20 63 68 67 72 6f 75 70 29 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 63 68 53 20 3a 20 62 65   ┆, chgroup) end;         chS : be┆
0x00c0e0…00c100             67 69 6e 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 63 68 29 3b 20 73 63 61 6e 20 28 20 63   ┆gin write ( desti, ch); scan ( c┆
0x00c100…00c120             68 2c 20 63 68 67 72 6f 75 70 29 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 6e 6c 53 20 3a 20 62   ┆h, chgroup) end;         nlS : b┆
0x00c120…00c140             65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 68 3d 6e 6c 20 74 68   ┆egin                 if ch=nl th┆
0x00c140…00c160             65 6e 20 70 61 73 73 65 64 6e 6c 3a 3d 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆en passednl:=true;              ┆
0x00c160…00c180             20 20 20 73 63 61 6e 20 28 20 63 68 2c 20 63 68 67 72 6f 75 70 29 0a 20 20 20 20 20 20 20 20 20   ┆   scan ( ch, chgroup)          ┆
0x00c180…00c1a0             20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 73 65 70 20 3a 20 62 65 67 69 6e 0a 20 20   ┆     end;         sep : begin   ┆
0x00c1a0…00c1c0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 73 73 65 64 6e 6c 20 74 68 65 6e 20 77   ┆              if passednl then w┆
0x00c1c0…00c1e0             72 69 74 65 6c 6e 20 28 20 64 65 73 74 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆riteln ( desti)                 ┆
0x00c1e0…00c200             65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 61 73 74 70 72 69 6e   ┆else                 if lastprin┆
0x00c200…00c220 (3, 0, 8)   74 65 64 3d 61 6c 66 6e 75 6d 20 74 68 65 6e 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 62   ┆ted=alfnum then write ( desti, b┆
0x00c220…00c240             6c 61 6e 6b 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 65 64 6e 6c 3a   ┆lank);                 passednl:┆
0x00c240…00c260             3d 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 70 72 69 6e   ┆=false;                 lastprin┆
0x00c260…00c280             74 65 64 3a 3d 64 65 6c 69 6d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20   ┆ted:=delim;               end;  ┆
0x00c280…00c2a0             20 20 20 20 20 20 20 6c 6e 20 20 3a 20 69 66 20 70 61 73 73 65 64 6e 6c 20 74 68 65 6e 0a 20 20   ┆       ln  : if passednl then   ┆
0x00c2a0…00c2c0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 77 72 69 74 65 6c 6e 20 28 20 64 65   ┆              begin writeln ( de┆
0x00c2c0…00c2e0             73 74 69 29 3b 20 70 61 73 73 65 64 6e 6c 3a 3d 66 61 6c 73 65 3b 20 6c 61 73 74 70 72 69 6e 74   ┆sti); passednl:=false; lastprint┆
0x00c2e0…00c300             65 64 3a 3d 64 65 6c 69 6d 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 6c 31 20 20 3a 20 62 65 67   ┆ed:=delim end;         l1  : beg┆
0x00c300…00c320             69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 73 73 65 64 6e 6c 20 74   ┆in                 if passednl t┆
0x00c320…00c340             68 65 6e 20 62 65 67 69 6e 20 77 72 69 74 65 6c 6e 20 28 20 64 65 73 74 69 29 3b 20 70 61 73 73   ┆hen begin writeln ( desti); pass┆
0x00c340…00c360             65 64 6e 6c 3a 3d 66 61 6c 73 65 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ednl:=false end;                ┆
0x00c360…00c380             20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 28 27 29 3b 20 6c 61 73 74 70 72 69 6e 74 65   ┆ write ( desti, '('); lastprinte┆
0x00c380…00c3a0             64 3a 3d 64 65 6c 69 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20   ┆d:=delim               end;     ┆
0x00c3a0…00c3c0             20 20 20 20 6c 32 20 20 3a 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆    l2  : begin                 ┆
0x00c3c0…00c3e0             69 66 20 70 61 73 73 65 64 6e 6c 20 74 68 65 6e 20 62 65 67 69 6e 20 77 72 69 74 65 6c 6e 20 28   ┆if passednl then begin writeln (┆
0x00c3e0…00c400             20 64 65 73 74 69 29 3b 20 70 61 73 73 65 64 6e 6c 3a 3d 66 61 6c 73 65 20 65 6e 64 3b 0a 20 20   ┆ desti); passednl:=false end;   ┆
0x00c400…00c420 (3, 0, 9)   20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 3c 27   ┆              write ( desti, '<'┆
0x00c420…00c440             29 3b 20 6c 61 73 74 70 72 69 6e 74 65 64 3a 3d 64 65 6c 69 6d 0a 20 20 20 20 20 20 20 20 20 20   ┆); lastprinted:=delim           ┆
0x00c440…00c460             20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 6f 70 31 53 3a 20 62 65 67 69 6e 0a 20 20 20   ┆    end;         op1S: begin    ┆
0x00c460…00c480             20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 73 73 65 64 6e 6c 20 74 68 65 6e 20 62 65   ┆             if passednl then be┆
0x00c480…00c4a0             67 69 6e 20 77 72 69 74 65 6c 6e 20 28 20 64 65 73 74 69 29 3b 20 70 61 73 73 65 64 6e 6c 3a 3d   ┆gin writeln ( desti); passednl:=┆
0x00c4a0…00c4c0             66 61 6c 73 65 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65   ┆false end;                 write┆
0x00c4c0…00c4e0             20 28 20 64 65 73 74 69 2c 20 27 28 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ ( desti, '(');                 ┆
0x00c4e0…00c500             77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 2a 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20   ┆write ( desti, '*');            ┆
0x00c500…00c520             20 20 20 20 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 24 27 29 3b 0a 20 20 20 20 20 20   ┆     write ( desti, '$');       ┆
0x00c520…00c540             20 20 20 20 20 20 20 20 20 20 73 63 61 6e 20 28 20 63 68 2c 20 63 68 67 72 6f 75 70 29 0a 20 20   ┆          scan ( ch, chgroup)   ┆
0x00c540…00c560             20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 6f 70 32 53 3a 20 62   ┆            end;         op2S: b┆
0x00c560…00c580             65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 73 73 65 64 6e 6c   ┆egin                 if passednl┆
0x00c580…00c5a0             20 74 68 65 6e 20 62 65 67 69 6e 20 77 72 69 74 65 6c 6e 20 28 20 64 65 73 74 69 29 3b 20 70 61   ┆ then begin writeln ( desti); pa┆
0x00c5a0…00c5c0             73 73 65 64 6e 6c 3a 3d 66 61 6c 73 65 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ssednl:=false end;              ┆
0x00c5c0…00c5e0             20 20 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 3c 27 29 3b 0a 20 20 20 20 20 20 20 20   ┆   write ( desti, '<');         ┆
0x00c5e0…00c600             20 20 20 20 20 20 20 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 2a 27 29 3b 0a 20 20 20   ┆        write ( desti, '*');    ┆
0x00c600…00c620 (3, 0, 10)  20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 20 28 20 64 65 73 74 69 2c 20 27 24 27 29   ┆             write ( desti, '$')┆
0x00c620…00c640             3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 63 61 6e 20 28 20 63 68 2c 20 63 68 67   ┆;                 scan ( ch, chg┆
0x00c640…00c660             72 6f 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20   ┆roup)               end;        ┆
0x00c660…00c680             20 70 72 69 6e 74 64 61 73 68 3a 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ printdash: begin               ┆
0x00c680…00c6a0             20 20 20 20 20 20 20 69 66 20 70 61 73 73 65 64 6e 6c 20 74 68 65 6e 20 62 65 67 69 6e 20 77 72   ┆       if passednl then begin wr┆
0x00c6a0…00c6c0             69 74 65 6c 6e 20 28 20 64 65 73 74 69 29 3b 20 70 61 73 73 65 64 6e 6c 3a 3d 66 61 6c 73 65 20   ┆iteln ( desti); passednl:=false ┆
0x00c6c0…00c6e0             65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 20   ┆end;                      write ┆
0x00c6e0…00c700             28 20 64 65 73 74 69 2c 20 27 2d 27 29 3b 20 6c 61 73 74 70 72 69 6e 74 65 64 3a 3d 64 65 6c 69   ┆( desti, '-'); lastprinted:=deli┆
0x00c700…00c720             6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20   ┆m                    end;       ┆
0x00c720…00c740             20 20 63 6c 6f 73 65 66 69 6c 65 3a 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆  closefile: begin              ┆
0x00c740…00c760             20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 64 65 73 74 69 29 3b 0a 09 09 20 20 20 20   ┆        writeln ( desti);       ┆
0x00c760…00c780             20 63 6c 6f 73 65 20 28 20 64 65 73 74 69 29 3b 0a 09 09 20 20 20 20 20 63 6c 6f 73 65 20 28 20   ┆ close ( desti);        close ( ┆
0x00c780…00c7a0             73 6f 75 72 63 65 29 3b 0a 09 09 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆source);        writeln ( output┆
0x00c7a0…00c7c0             2c 20 23 31 33 2c 20 6c 69 6e 65 6e 6f 3a 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆, #13, lineno:5)                ┆
0x00c7c0…00c7e0             20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 61 73 65 20 20 2a   ┆    end;       end;  (*  case  *┆
0x00c7e0…00c800             29 0a 20 20 20 20 20 20 73 74 61 74 65 20 3a 3d 20 63 6f 6e 74 65 6e 74 2e 6e 73 74 20 20 28 2a   ┆)       state := content.nst  (*┆
0x00c800…00c820 (3, 0, 11)  20 6e 65 78 74 20 73 74 61 74 65 20 20 2a 29 0a 20 20 20 20 65 6e 64 20 20 28 2a 20 20 77 68 69   ┆ next state  *)     end  (*  whi┆
0x00c820…00c840             6c 65 20 20 2a 29 0a 20 20 20 20 65 6e 64 20 20 28 2a 20 20 64 65 62 75 67 20 3c 20 31 30 20 20   ┆le  *)     end  (*  debug < 10  ┆
0x00c840…00c860             2a 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 09 28 2a 20 20 64 65 62 75   ┆*)     else       begin (*  debu┆
0x00c860…00c880             67 20 3e 3d 20 31 30 20 20 2a 29 0a 20 20 20 20 20 20 72 65 61 64 20 28 20 73 6f 75 72 63 65 2c   ┆g >= 10  *)       read ( source,┆
0x00c880…00c8a0             20 6b 65 79 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆ key);       writeln ( output, '┆
0x00c8a0…00c8c0             20 66 69 72 73 74 20 63 68 61 72 20 69 73 20 3c 27 2c 20 6f 72 64 28 6b 65 79 29 2c 20 27 3e 27   ┆ first char is <', ord(key), '>'┆
0x00c8c0…00c8e0             29 3b 0a 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 64 65 73 74 69 2c 20 27 46 69 6c 65   ┆);        writeln ( desti, 'File┆
0x00c8e0…00c900             6e 61 6d 65 20 69 73 20 27 2c 20 64 65 73 74 69 5f 70 61 74 68 29 3b 0a 20 20 20 20 20 20 77 72   ┆name is ', desti_path);       wr┆
0x00c900…00c920             69 74 65 6c 6e 20 28 20 64 65 73 74 69 2c 20 27 74 65 78 74 20 69 6e 20 64 65 73 74 69 3a 20 64   ┆iteln ( desti, 'text in desti: d┆
0x00c920…00c940             65 62 75 67 20 3d 20 27 2c 20 64 65 62 75 67 5f 6c 65 76 65 6c 29 3b 0a 20 20 20 20 20 20 77 72   ┆ebug = ', debug_level);       wr┆
0x00c940…00c960             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 63 6c 6f 73 65 20 66 69 6c 65 73 20   ┆iteln ( output, '-- close files ┆
0x00c960…00c980             27 29 3b 0a 20 20 20 20 20 20 63 6c 6f 73 65 20 28 20 64 65 73 74 69 29 3b 0a 20 20 20 20 20 20   ┆');       close ( desti);       ┆
0x00c980…00c9a0             63 6c 6f 73 65 20 28 20 73 6f 75 72 63 65 29 3b 0a 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64   ┆close ( source);      end;   end┆
0x00c9a0…00c9c0             3b 20 20 28 2a 20 20 72 74 70 63 6f 6d 70 72 65 73 73 20 20 2a 29 0a 0a 0c 0a 0a 62 65 67 69 6e   ┆;  (*  rtpcompress  *)     begin┆
0x00c9c0…00c9e0             20 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6d 61 69 6e 20 70 72   ┆   (*------------------- main pr┆
0x00c9e0…00ca00             6f 67 72 61 6d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ogram --------------------------┆
0x00ca00…00ca20 (3, 0, 12)  2d 2d 2d 2d 2a 29 0a 0a 01 44 20 32 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆----*)   D 2   writeln ( output,┆
0x00ca20…00ca40             20 27 27 3a 37 2c 20 27 52 54 50 63 6f 6d 70 72 65 73 73 20 27 2c 20 76 65 72 73 69 6f 6e 29 3b   ┆ '':7, 'RTPcompress ', version);┆
0x00ca40…00ca60             0a 01 45 20 32 0a 01 49 20 32 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆  E 2  I 2   writeln ( output, '┆
0x00ca60…00ca80             27 3a 37 2c 20 27 52 54 50 63 6f 6d 70 72 65 73 73 20 20 72 65 6c 2e 20 25 52 25 2e 25 4c 25 2c   ┆':7, 'RTPcompress  rel. %R%.%L%,┆
0x00ca80…00caa0             20 20 20 31 39 27 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 31 2c   ┆   19',     copy ( sccs_date, 1,┆
0x00caa0…00cac0             20 32 29 2c 20 27 2e 27 2c 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 34 2c 20 32   ┆ 2), '.', copy ( sccs_date, 4, 2┆
0x00cac0…00cae0             29 2c 20 27 2e 27 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 37 2c   ┆), '.',     copy ( sccs_date, 7,┆
0x00cae0…00cb00             20 32 29 29 3b 0a 01 45 20 32 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a   ┆ 2));  E 2   writeln ( output); ┆
0x00cb00…00cb20             20 20 72 65 61 64 5f 70 61 72 61 6d 73 20 28 20 73 6f 75 72 63 65 5f 70 61 72 61 6d 2c 20 64 65   ┆  read_params ( source_param, de┆
0x00cb20…00cb40             73 74 69 5f 70 61 72 61 6d 2c 0a 20 20 20 20 20 20 6f 70 74 69 6f 6e 5f 70 2c 20 6f 70 74 69 6f   ┆sti_param,       option_p, optio┆
0x00cb40…00cb60             6e 5f 6d 2c 20 6f 70 74 69 6f 6e 5f 6e 2c 20 6f 70 74 69 6f 6e 5f 6c 29 3b 0a 20 20 66 73 70 6c   ┆n_m, option_n, option_l);   fspl┆
0x00cb60…00cb80             69 74 20 28 20 73 6f 75 72 63 65 5f 70 61 72 61 6d 2c 20 73 6f 75 72 63 65 5f 64 69 72 2c 20 73   ┆it ( source_param, source_dir, s┆
0x00cb80…00cba0             6f 75 72 63 65 5f 6e 61 6d 65 2c 20 73 6f 75 72 63 65 5f 65 78 74 29 3b 0a 20 20 69 66 20 64 65   ┆ource_name, source_ext);   if de┆
0x00cba0…00cbc0             62 75 67 5f 6c 65 76 65 6c 20 3e 20 31 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆bug_level > 1 then writeln ( out┆
0x00cbc0…00cbe0             70 75 74 2c 20 27 2d 2d 20 64 65 62 75 67 20 6c 65 76 65 6c 20 27 2c 20 64 65 62 75 67 5f 6c 65   ┆put, '-- debug level ', debug_le┆
0x00cbe0…00cc00             76 65 6c 29 3b 0a 20 20 69 66 20 64 65 62 75 67 5f 6c 65 76 65 6c 20 3e 20 33 20 74 68 65 6e 20   ┆vel);   if debug_level > 3 then ┆
0x00cc00…00cc20 (3, 0, 13)  77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 70 61 72 61 6d 65 74 72 65 73   ┆writeln ( output, '-- parametres┆
0x00cc20…00cc40             3a 20 27 2c 0a 20 20 20 20 73 6f 75 72 63 65 5f 70 61 72 61 6d 2c 20 27 20 20 27 2c 20 64 65 73   ┆: ',     source_param, '  ', des┆
0x00cc40…00cc60             74 69 5f 70 61 72 61 6d 2c 20 27 20 20 20 2f 50 20 27 2c 20 6f 70 74 69 6f 6e 5f 70 2c 0a 20 20   ┆ti_param, '   /P ', option_p,   ┆
0x00cc60…00cc80             20 20 27 20 20 20 2f 4d 20 27 2c 20 6f 70 74 69 6f 6e 5f 6d 2c 20 27 20 20 20 2f 4e 20 27 2c 20   ┆  '   /M ', option_m, '   /N ', ┆
0x00cc80…00cca0             6f 70 74 69 6f 6e 5f 6e 2c 20 27 20 20 20 2f 4c 20 27 2c 20 6f 70 74 69 6f 6e 5f 6c 29 3b 0a 0a   ┆option_n, '   /L ', option_l);  ┆
0x00cca0…00ccc0             20 20 66 69 6e 64 66 69 72 73 74 20 28 20 73 6f 75 72 63 65 5f 70 61 72 61 6d 2c 20 61 72 63 68   ┆  findfirst ( source_param, arch┆
0x00ccc0…00cce0             69 76 65 2c 20 64 69 72 69 6e 66 6f 29 3b 0a 20 20 69 66 20 64 6f 73 65 72 72 6f 72 20 3c 3e 20   ┆ive, dirinfo);   if doserror <> ┆
0x00cce0…00cd00             30 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a   ┆0 then     writeln ( output, '**┆
0x00cd00…00cd20             2a 20 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 3a 20 27 2c 20 73 6f 75 72 63 65 5f 70 61 72 61   ┆* File not found: ', source_para┆
0x00cd20…00cd40             6d 29 3b 0a 0a 20 20 77 68 69 6c 65 20 64 6f 73 65 72 72 6f 72 20 3d 20 30 20 64 6f 0a 20 20 20   ┆m);    while doserror = 0 do    ┆
0x00cd40…00cd60             20 62 65 67 69 6e 0a 20 20 20 20 6d 61 6b 65 5f 66 69 6c 65 6e 61 6d 65 73 20 28 20 73 6f 75 72   ┆ begin     make_filenames ( sour┆
0x00cd60…00cd80             63 65 5f 64 69 72 20 2b 20 64 69 72 69 6e 66 6f 2e 6e 61 6d 65 2c 20 64 65 73 74 69 5f 70 61 72   ┆ce_dir + dirinfo.name, desti_par┆
0x00cd80…00cda0             61 6d 2c 0a 09 73 6f 75 72 63 65 5f 66 69 6c 65 2c 20 64 65 73 74 69 5f 66 69 6c 65 29 3b 0a 20   ┆am,  source_file, desti_file);  ┆
0x00cda0…00cdc0             20 20 20 73 6f 75 72 63 65 5f 74 69 6d 65 3a 3d 20 6c 6f 6f 6b 75 70 20 28 20 7b 73 6f 75 72 63   ┆   source_time:= lookup ( {sourc┆
0x00cdc0…00cde0             65 2c 7d 20 73 6f 75 72 63 65 5f 66 69 6c 65 2c 20 66 6d 69 6e 70 75 74 29 3b 0a 20 20 20 20 64   ┆e,} source_file, fminput);     d┆
0x00cde0…00ce00             65 73 74 69 5f 74 69 6d 65 3a 3d 20 6c 6f 6f 6b 75 70 20 28 20 7b 64 65 73 74 69 2c 7d 20 64 65   ┆esti_time:= lookup ( {desti,} de┆
0x00ce00…00ce20 (3, 0, 14)  73 74 69 5f 66 69 6c 65 2c 20 66 6d 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75   ┆sti_file, fmoutput);     if debu┆
0x00ce20…00ce40             67 5f 6c 65 76 65 6c 20 3e 20 35 20 74 68 65 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆g_level > 5 then      writeln ( ┆
0x00ce40…00ce60             6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 27 2c 20 73 6f 75 72 63 65 5f 66 69 6c 65 2c 20 27 3a 20   ┆output, '--  ', source_file, ': ┆
0x00ce60…00ce80             27 2c 20 73 6f 75 72 63 65 5f 74 69 6d 65 2c 0a 20 20 20 20 20 20 20 27 20 20 20 20 27 2c 20 64   ┆', source_time,        '    ', d┆
0x00ce80…00cea0             65 73 74 69 5f 66 69 6c 65 2c 20 27 3a 20 27 2c 20 64 65 73 74 69 5f 74 69 6d 65 29 3b 0a 0a 20   ┆esti_file, ': ', desti_time);   ┆
0x00cea0…00cec0             20 20 20 63 6f 6e 66 69 72 6d 65 64 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 20 20 69 66 20 6f 70 74   ┆   confirmed:= true;      if opt┆
0x00cec0…00cee0             69 6f 6e 5f 6d 20 74 68 65 6e 09 09 28 2a 20 20 6c 6f 6f 6b 20 61 74 20 74 69 6d 65 20 73 74 61   ┆ion_m then  (*  look at time sta┆
0x00cee0…00cf00             6d 70 73 20 20 2a 29 0a 20 20 20 20 20 20 63 6f 6e 66 69 72 6d 65 64 3a 3d 20 73 6f 75 72 63 65   ┆mps  *)       confirmed:= source┆
0x00cf00…00cf20             5f 74 69 6d 65 20 3e 20 64 65 73 74 69 5f 74 69 6d 65 3b 0a 0a 20 20 20 20 69 66 20 63 6f 6e 66   ┆_time > desti_time;      if conf┆
0x00cf20…00cf40             69 72 6d 65 64 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20 20 20 69 66   ┆irmed then       begin        if┆
0x00cf40…00cf60             20 64 65 73 74 69 5f 74 69 6d 65 20 3c 3e 20 30 20 74 68 65 6e 09 09 28 2a 20 20 6f 76 65 72 77   ┆ desti_time <> 0 then  (*  overw┆
0x00cf60…00cf80             72 69 74 65 20 3f 20 20 2a 29 0a 09 62 65 67 69 6e 0a 09 69 66 20 6f 70 74 69 6f 6e 5f 6e 20 74   ┆rite ?  *)  begin  if option_n t┆
0x00cf80…00cfa0             68 65 6e 20 63 6f 6e 66 69 72 6d 65 64 3a 3d 20 67 65 74 5f 63 6f 6e 66 69 72 6d 20 28 20 73 6f   ┆hen confirmed:= get_confirm ( so┆
0x00cfa0…00cfc0             75 72 63 65 5f 66 69 6c 65 29 0a 09 65 6c 73 65 0a 09 69 66 20 6f 70 74 69 6f 6e 5f 70 20 74 68   ┆urce_file)  else  if option_p th┆
0x00cfc0…00cfe0             65 6e 20 63 6f 6e 66 69 72 6d 65 64 3a 3d 20 67 65 74 5f 63 6f 6e 66 69 72 6d 20 28 20 73 6f 75   ┆en confirmed:= get_confirm ( sou┆
0x00cfe0…00d000             72 63 65 5f 66 69 6c 65 29 0a 09 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20   ┆rce_file)  end       else       ┆
0x00d000…00d020 (3, 0, 15)  69 66 20 6f 70 74 69 6f 6e 5f 70 20 74 68 65 6e 20 63 6f 6e 66 69 72 6d 65 64 3a 3d 20 67 65 74   ┆if option_p then confirmed:= get┆
0x00d020…00d040             5f 63 6f 6e 66 69 72 6d 20 28 20 73 6f 75 72 63 65 5f 66 69 6c 65 29 3b 0a 0a 20 20 20 20 20 20   ┆_confirm ( source_file);        ┆
0x00d040…00d060             69 66 20 63 6f 6e 66 69 72 6d 65 64 20 74 68 65 6e 0a 09 72 74 70 63 6f 6d 70 72 65 73 73 20 28   ┆if confirmed then  rtpcompress (┆
0x00d060…00d080             20 73 6f 75 72 63 65 5f 66 69 6c 65 2c 20 64 65 73 74 69 5f 66 69 6c 65 29 3b 0a 20 20 20 20 20   ┆ source_file, desti_file);      ┆
0x00d080…00d0a0             20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 64 65 62 75 67 5f 6c 65 76 65 6c   ┆ end     else     if debug_level┆
0x00d0a0…00d0c0             20 3e 20 35 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20   ┆ > 5 then writeln ( output, '-- ┆
0x00d0c0…00d0e0             64 69 73 63 61 72 64 65 64 20 62 79 20 6f 70 74 69 6f 6e 20 2f 4d 27 29 3b 0a 0a 20 20 20 20 66   ┆discarded by option /M');      f┆
0x00d0e0…00d100             69 6e 64 6e 65 78 74 20 28 20 64 69 72 69 6e 66 6f 29 09 20 20 20 28 2a 20 20 73 65 61 72 63 68   ┆indnext ( dirinfo)    (*  search┆
0x00d100…00d120             20 6e 65 78 74 20 66 69 6c 65 20 20 2a 29 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 68 69   ┆ next file  *)     end;  (*  whi┆
0x00d120…00d140             6c 65 20 20 2a 29 0a 0a 20 20 69 66 20 64 65 62 75 67 5f 6c 65 76 65 6c 20 3e 20 31 20 74 68 65   ┆le  *)    if debug_level > 1 the┆
0x00d140…00d160             6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 64 6f 73 65 72 72 6f 72 20 3c 3e 20 31   ┆n     begin     if doserror <> 1┆
0x00d160…00d180             38 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e   ┆8 then       begin       writeln┆
0x00d180…00d1a0             20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 64 6f 73 20 65 72 72 6f 72 20 27 2c 20 64 6f 73 65   ┆ ( output, '-- dos error ', dose┆
0x00d1a0…00d1c0             72 72 6f 72 2c 20 27 20 20 28 31 38 3a 20 6e 6f 20 6d 6f 72 65 20 66 69 6c 65 73 29 27 29 3b 0a   ┆rror, '  (18: no more files)'); ┆
0x00d1c0…00d1e0             20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 77 72 69 74 65 20 28 20 27 2d 2d 20 20 70 72 65 73   ┆      end;     write ( '--  pres┆
0x00d1e0…00d200             73 20 61 6e 79 20 6b 65 79 20 74 6f 20 66 69 6e 69 73 27 29 3b 0a 20 20 20 20 6b 65 79 3a 3d 20   ┆s any key to finis');     key:= ┆
0x00d200…00d220 (3, 1, 1)   72 65 61 64 6b 65 79 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 0a 20 20 20 20 65 6e 64 3b 0a 0a 20   ┆readkey;     writeln     end;   ┆
0x00d220…00d240             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆writeln ( output);  writeln ( ou┆
0x00d240…00d260             74 70 75 74 2c 20 27 2d 2d 20 20 20 65 6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 20 77 72 69 74   ┆tput, '--   end of job.');  writ┆
0x00d260…00d280             65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 65 6e 64 20 2e 0a 28 2a 20 2d 2d 2d 2d 2d 2d 2d 2d   ┆eln ( output); end . (* --------┆
0x00d280…00d2a0             2d 2d 2d 2d 2d 2d 2d 20 45 6e 64 20 6f 66 20 4d 6f 64 75 6c 65 3a 20 43 4f 4d 50 52 45 53 53 20   ┆------- End of Module: COMPRESS ┆
0x00d2a0…00d2c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 29 0a 0c 0a 01 45 20 31 0a 2c 20 27 2d 2d 20   ┆--------------- *)    E 1 , '-- ┆
0x00d2c0…00d2e0             64 69 73 63 61 72 64 65 64 20 62 79 20 6f 70 74 69 6f 6e 20 2f 4d 27 29 3b 0a 0a 20 20 20 20 66   ┆discarded by option /M');      f┆
0x00d2e0…00d300             69 6e 64 6e 65 78 74 20 28 20 64 69 72 69 6e 66 6f 29 09 20 20 20 28 2a 20 20 73 65 61 72 63 68   ┆indnext ( dirinfo)    (*  search┆
0x00d300…00d320             20 6e 65 78 74 20 66 69 6c 65 20 20 2a 29 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 68 69   ┆ next file  *)     end;  (*  whi┆
0x00d320…00d340             6c 65 20 20 2a 29 0a 0a 20 20 69 66 20 64 65 62 75 67 5f 6c 65 76 65 6c 20 3e 20 31 20 74 68 65   ┆le  *)    if debug_level > 1 the┆
0x00d340…00d360             6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 64 6f 73 65 72 72 6f 72 20 3c 3e 20 31   ┆n     begin     if doserror <> 1┆
0x00d360…00d380             38 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e   ┆8 then       begin       writeln┆
0x00d380…00d3a0             20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 64 6f 73 20 65 72 72 6f 72 20 27 2c 20 64 6f 73 65   ┆ ( output, '-- dos error ', dose┆
0x00d3a0…00d3c0             72 72 6f 72 2c 20 27 20 20 28 31 38 3a 20 6e 6f 20 6d 6f 72 65 20 66 69 6c 65 73 29 27 29 3b 0a   ┆rror, '  (18: no more files)'); ┆
0x00d3c0…00d3e0             20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 77 72 69 74 65 20 28 20 27 2d 2d 20 20 70 72 65 73   ┆      end;     write ( '--  pres┆
0x00d3e0…00d400             73 20 61 6e 79 20 6b 65 79 20 74 6f 20 66 69 6e 69 73 27 29 3b 0a 20 20 20 20 6b 65 79 3a 3d 20   ┆s any key to finis');     key:= ┆
0x00d400…00d420 (3, 1, 2)   2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 63 72 6f 73 6c 69 6e 6b 2e 70 61   ┆../sw2103/src/util/s.croslink.pa┆
0x00d420…00d440             73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆s                               ┆
0x00d440…00d460             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x00d460…00d480             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x00d480…00d4a0             20 31 34 32 30 30 33 20 20 35 32 36 35 33 31 35 35 35 33 20 20 31 31 37 31 33 00 20 00 00 00 00   ┆ 142003  5265315553  11713      ┆
0x00d4a0…00d4c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x00d600…00d620 (3, 1, 3)   01 68 32 31 32 36 35 0a 01 73 20 30 30 30 32 31 2f 30 30 30 30 36 2f 30 31 37 37 33 0a 01 64 20   ┆ h21265  s 00021/00006/01773  d ┆
0x00d620…00d640             44 20 31 2e 31 33 20 39 32 2f 31 30 2f 30 39 20 31 35 3a 34 36 3a 35 39 20 73 77 32 31 30 33 20   ┆D 1.13 92/10/09 15:46:59 sw2103 ┆
0x00d640…00d660             33 20 31 0a 01 63 20 53 43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2c 20   ┆3 1  c SCCS info and UNIX used, ┆
0x00d660…00d680             6c 6f 61 64 65 72 6d 61 70 20 69 6e 63 6f 6e 73 69 73 74 65 6e 73 20 6d 61 64 65 20 66 61 74 61   ┆loadermap inconsistens made fata┆
0x00d680…00d6a0             6c 20 65 72 72 6f 72 2e 0a 01 65 0a 01 73 20 30 30 30 32 31 2f 30 30 30 30 36 2f 30 31 37 37 33   ┆l error.  e  s 00021/00006/01773┆
0x00d6a0…00d6c0             0a 01 64 20 52 20 31 2e 31 33 20 39 32 2f 31 30 2f 30 39 20 31 35 3a 34 33 3a 33 33 20 73 77 32   ┆  d R 1.13 92/10/09 15:43:33 sw2┆
0x00d6c0…00d6e0             31 30 33 20 32 20 31 0a 01 63 20 53 43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73   ┆103 2 1  c SCCS info and UNIX us┆
0x00d6e0…00d700             65 64 2c 20 6c 6f 61 64 65 72 20 6d 61 70 20 69 6e 63 6f 6e 73 69 73 74 65 6e 73 20 6d 61 64 65   ┆ed, loader map inconsistens made┆
0x00d700…00d720             20 66 61 74 61 6c 20 65 72 72 6f 72 2e 0a 01 65 0a 01 73 20 30 31 37 37 39 2f 30 30 30 30 30 2f   ┆ fatal error.  e  s 01779/00000/┆
0x00d720…00d740             30 30 30 30 30 0a 01 64 20 44 20 31 2e 31 32 20 39 32 2f 31 30 2f 30 39 20 31 35 3a 32 32 3a 32   ┆00000  d D 1.12 92/10/09 15:22:2┆
0x00d740…00d760             37 20 73 77 32 31 30 33 20 31 20 30 0a 01 63 20 45 72 72 6f 72 20 69 6e 20 65 71 75 61 6c 5f 70   ┆7 sw2103 1 0  c Error in equal_p┆
0x00d760…00d780             61 72 61 6d 6c 69 73 74 73 20 63 6f 72 72 65 63 74 65 64 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74   ┆aramlists corrected.  e  u  U  t┆
0x00d780…00d7a0             0a 01 54 0a 01 49 20 31 0a 50 72 6f 67 72 61 6d 20 43 72 6f 73 73 6c 69 6e 6b 3b 0a 0a 28 2a 2d   ┆  T  I 1 Program Crosslink;  (*-┆
0x00d7a0…00d7c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x00d7c0…00d7e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20   ┆---------------------------- -- ┆
0x00d7e0…00d800             4d 6f 64 75 6c 65 3a 20 20 20 20 43 72 6f 73 73 20 6c 69 6e 6b 65 72 0a 2d 2d 20 46 69 6c 65 3a   ┆Module:    Cross linker -- File:┆
0x00d800…00d820 (3, 1, 4)   20 20 20 20 20 20 43 52 4f 53 4c 49 4e 4b 2e 50 41 53 0a 2d 2d 20 50 61 63 6b 61 67 65 3a 20 20   ┆      CROSLINK.PAS -- Package:  ┆
0x00d820…00d840             20 53 57 32 31 30 33 20 20 20 20 53 75 62 73 79 73 74 65 6d 3a 20 55 54 49 4c 49 54 59 20 20 20   ┆ SW2103    Subsystem: UTILITY   ┆
0x00d840…00d860             50 72 6f 67 72 61 6d 3a 20 43 52 4f 53 4c 49 4e 4b 0a 2d 2d 0a 2d 2d 20 43 6f 6e 74 65 6e 74 73   ┆Program: CROSLINK -- -- Contents┆
0x00d860…00d880             3a 20 20 41 20 72 74 70 33 35 30 32 20 6c 69 62 72 61 72 79 20 6d 61 69 6e 74 65 6e 61 6e 63 65   ┆:  A rtp3502 library maintenance┆
0x00d880…00d8a0             20 70 72 6f 67 72 61 6d 2c 0a 2d 2d 09 20 20 20 20 20 20 66 6f 72 20 63 72 6f 73 73 6c 69 6e 6b   ┆ program, --       for crosslink┆
0x00d8a0…00d8c0             69 6e 67 20 6f 66 20 6f 62 6a 65 63 74 20 70 72 6f 67 72 61 6d 73 20 69 6e 74 6f 20 61 20 6c 69   ┆ing of object programs into a li┆
0x00d8c0…00d8e0             62 72 61 72 79 2e 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 20 63 61 6c 6c 3a 20 20 43 52 4f 53   ┆brary. -- -- Program call:  CROS┆
0x00d8e0…00d900             4c 49 4e 4b 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 2e 2e 2e 20 3c 70 61 72 61 6d 65 74 65 72 3e   ┆LINK <parameter> ... <parameter>┆
0x00d900…00d920             0a 2d 2d 09 3c 70 61 72 61 6d 65 74 65 72 3e 20 3a 09 3d 3c 66 69 6c 65 70 61 74 68 3e 09 09 6e   ┆ -- <parameter> : =<filepath>  n┆
0x00d920…00d940             61 6d 65 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 0a 2d 2d 09 09 09 50 41 52   ┆ame of destination file --   PAR┆
0x00d940…00d960             41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 09 6e 61 6d 65 20 6f 66 20 66 69 6c 65 20 77 69 74   ┆AMIN-<filepath> name of file wit┆
0x00d960…00d980             68 20 70 61 72 61 6d 65 74 65 72 73 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆h parameters --                 ┆
0x00d980…00d9a0             20 20 20 20 20 53 54 41 52 54 2d 3c 68 65 78 3e 2d 3c 68 65 78 3e 09 61 75 74 6f 6c 6f 61 64 20   ┆     START-<hex>-<hex> autoload ┆
0x00d9a0…00d9c0             73 74 61 72 74 20 61 64 64 72 65 73 73 0a 2d 2d 09 09 09 4d 41 50 2d 3c 79 65 73 6e 6f 3e 09 09   ┆start address --   MAP-<yesno>  ┆
0x00d9c0…00d9e0             6c 69 73 74 20 69 6e 63 6c 75 64 65 64 20 70 72 6f 67 72 61 6d 73 0a 2d 2d 09 09 09 50 52 49 4e   ┆list included programs --   PRIN┆
0x00d9e0…00da00             54 2d 3c 79 65 73 6e 6f 6e 75 6d 62 3e 20 20 20 20 20 20 20 6c 69 73 74 20 6f 66 20 63 6f 72 65   ┆T-<yesnonumb>       list of core┆
0x00da00…00da20 (3, 1, 5)   69 6d 61 67 65 0a 2d 2d 09 09 09 53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72 70 61 74 68 3e 09   ┆image --   SOURCEPATH-<dirpath> ┆
0x00da20…00da40             64 69 72 65 63 74 6f 72 79 20 70 61 74 68 0a 2d 2d 09 09 09 4c 49 42 2d 3c 66 69 6c 65 70 61 74   ┆directory path --   LIB-<filepat┆
0x00da40…00da60             68 3e 09 09 6e 61 6d 65 20 6f 66 20 6c 69 62 20 66 69 6c 65 0a 2d 2d 09 09 09 3c 66 69 6c 65 70   ┆h>  name of lib file --   <filep┆
0x00da60…00da80             61 74 68 3e 09 09 6e 61 6d 65 20 6f 66 20 6f 62 6a 65 63 74 20 66 69 6c 65 0a 2d 2d 0a 2d 2d 09   ┆ath>  name of object file -- -- ┆
0x00da80…00daa0             49 66 20 6e 6f 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 20 66 6f 72   ┆If no extension is specified for┆
0x00daa0…00dac0             20 74 68 65 20 6c 69 62 20 61 6e 64 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 2c 0a 2d 2d 09 65 78   ┆ the lib and object files, -- ex┆
0x00dac0…00dae0             74 65 6e 73 69 6f 6e 20 27 2e 50 32 32 27 20 69 73 20 75 73 65 64 2e 0a 2d 2d 0a 2d 2d 0a 2d 2d   ┆tension '.P22' is used. -- -- --┆
0x00dae0…00db00             20 50 72 65 72 65 71 75 69 73 69 74 65 73 3a 20 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c   ┆ Prerequisites:  DOS, Cbreak, PL┆
0x00db00…00db20             49 42 55 4e 49 54 2c 20 50 6f 6c 79 66 69 6c 65 3b 0a 2d 2d 0a 2d 2d 20 44 6f 63 75 6d 65 6e 74   ┆IBUNIT, Polyfile; -- -- Document┆
0x00db20…00db40             61 74 69 6f 6e 3a 20 20 53 57 32 31 30 33 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 6d 65 64 20   ┆ation:  SW2103 -- -- Programmed ┆
0x00db40…00db60             62 79 20 42 42 2c 20 48 45 4a 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 39   ┆by BB, HEJ -- Copyright (C) 1989┆
0x00db60…00db80             20 62 79 20 52 43 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 0a 2d 2d 20 43 6f 70 79 72 69 67 68   ┆ by RC International -- Copyrigh┆
0x00db80…00dba0             74 20 28 43 29 20 31 39 39 32 20 62 79 20 44 41 4e 4f 53 49 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆t (C) 1992 by DANOSI -----------┆
0x00dba0…00dbc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x00dbc0…00dbe0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 56 65 72 73 69 6f 6e 20   ┆-------------------- -- Version ┆
0x00dbe0…00dc00             68 69 73 74 6f 72 79 3a 0a 2d 2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44 61 74 65 20 20 20 20 20 20   ┆history: -- -- Vers.  Date      ┆
0x00dc00…00dc20 (3, 1, 6)   49 6e 69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 20 2d   ┆Init. Text -- ----   --------  -┆
0x00dc20…00dc40             2d 2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆---  ---------------------------┆
0x00dc40…00dc60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 31 2e 30 20 20 20 20 38 35 30 36 31 33 20   ┆----------- -- -- 1.0    850613 ┆
0x00dc60…00dc80             20 20 20 62 62 20 20 20 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 70 72 69 6e 74 20 64 75 72   ┆   bb    problems with print dur┆
0x00dc80…00dca0             69 6e 67 20 6d 6f 64 75 6c 65 20 73 68 69 66 74 0a 2d 2d 09 09 09 20 20 74 68 65 20 74 77 6f 20   ┆ing module shift --     the two ┆
0x00dca0…00dcc0             6c 61 73 74 20 62 79 74 65 73 20 69 6e 20 65 76 65 72 79 20 6d 6f 64 75 6c 65 20 61 72 65 0a 2d   ┆last bytes in every module are -┆
0x00dcc0…00dce0             2d 09 09 09 20 20 6e 65 76 65 72 20 61 6c 6c 6f 63 61 74 65 64 0a 2d 2d 20 31 2e 30 20 20 20 20   ┆-     never allocated -- 1.0    ┆
0x00dce0…00dd00             38 35 30 38 31 35 20 20 20 20 62 62 20 20 20 20 63 68 65 63 6b 20 6f 6e 20 6f 62 6a 65 63 74 66   ┆850815    bb    check on objectf┆
0x00dd00…00dd20             69 6c 65 20 74 61 69 6c 20 61 6e 64 20 6f 75 74 70 75 74 20 6f 66 0a 2d 2d 09 09 09 20 20 69 6d   ┆ile tail and output of --     im┆
0x00dd20…00dd40             61 67 65 66 69 6c 65 20 74 61 69 6c 20 69 6e 20 6f 75 74 70 75 74 66 69 6c 65 0a 2d 2d 20 31 2e   ┆agefile tail in outputfile -- 1.┆
0x00dd40…00dd60             30 20 20 20 20 38 35 31 31 30 37 20 20 20 20 6a 61 62 61 20 20 61 74 20 6d 6f 73 74 20 36 34 4b   ┆0    851107    jaba  at most 64K┆
0x00dd60…00dd80             20 62 79 74 65 73 20 70 72 6f 67 72 61 6d 73 20 6d 61 79 20 62 65 0a 2d 2d 09 09 09 20 20 63 72   ┆ bytes programs may be --     cr┆
0x00dd80…00dda0             6f 73 73 6c 69 6e 6b 65 64 0a 2d 2d 09 09 09 20 20 70 61 73 63 61 6c 68 61 6c 74 20 69 6e 74 72   ┆osslinked --     pascalhalt intr┆
0x00dda0…00ddc0             6f 64 75 63 65 64 0a 2d 2d 09 09 09 20 20 77 72 69 74 65 68 61 6c 66 77 6f 72 64 73 20 69 6e 74   ┆oduced --     writehalfwords int┆
0x00ddc0…00dde0             72 6f 64 75 63 65 64 0a 2d 2d 20 31 2e 30 20 20 20 20 38 36 30 39 32 36 20 20 20 20 62 62 20 20   ┆roduced -- 1.0    860926    bb  ┆
0x00dde0…00de00             20 20 63 6f 70 69 65 73 20 6e 6f 74 5f 75 73 65 64 20 77 6f 72 64 73 20 69 6e 20 64 65 73 63 72   ┆  copies not_used words in descr┆
0x00de00…00de20 (3, 1, 7)   69 70 74 6f 72 0a 2d 2d 09 09 09 20 20 73 65 67 6d 65 6e 74 20 70 61 72 74 20 31 0a 2d 2d 20 31   ┆iptor --     segment part 1 -- 1┆
0x00de20…00de40             2e 31 20 20 20 20 38 36 31 30 33 31 20 20 20 20 62 62 20 20 20 20 67 65 6e 65 72 61 6c 20 63 6c   ┆.1    861031    bb    general cl┆
0x00de40…00de60             65 61 6e 75 70 20 62 65 63 61 75 73 65 20 73 6f 75 72 63 65 20 69 73 20 6e 6f 0a 2d 2d 09 09 09   ┆eanup because source is no --   ┆
0x00de60…00de80             20 20 6c 6f 6e 67 65 72 20 72 63 38 30 30 30 20 73 6f 75 72 63 65 0a 2d 2d 20 31 2e 31 20 20 20   ┆  longer rc8000 source -- 1.1   ┆
0x00de80…00dea0             20 38 36 31 31 30 33 20 20 20 20 62 62 20 20 20 20 63 6f 73 6d 65 74 69 63 73 0a 2d 2d 20 31 2e   ┆ 861103    bb    cosmetics -- 1.┆
0x00dea0…00dec0             31 20 20 20 20 38 37 30 36 30 39 20 20 20 20 62 62 20 20 20 20 43 6f 6e 76 65 72 74 65 64 20 74   ┆1    870609    bb    Converted t┆
0x00dec0…00dee0             6f 20 6c 66 33 35 30 32 20 61 6e 64 20 66 70 33 35 30 32 0a 2d 2d 20 31 2e 33 20 20 20 20 38 38   ┆o lf3502 and fp3502 -- 1.3    88┆
0x00dee0…00df00             31 30 32 33 20 20 20 20 62 62 20 20 20 20 45 78 74 5f 74 61 62 6c 65 20 63 68 61 6e 67 65 64 20   ┆1023    bb    Ext_table changed ┆
0x00df00…00df20             66 72 6f 6d 20 73 74 61 74 69 63 20 61 72 72 61 79 20 74 6f 20 6c 69 73 74 20 6f 6e 20 68 65 61   ┆from static array to list on hea┆
0x00df20…00df40             70 2e 0a 2d 2d 20 31 2e 34 20 20 20 20 38 38 31 31 31 34 20 20 20 20 62 62 20 20 20 20 42 61 6c   ┆p. -- 1.4    881114    bb    Bal┆
0x00df40…00df60             61 6e 63 65 64 20 62 69 6e 61 72 79 20 73 65 61 72 63 68 20 69 6e 74 72 6f 64 75 63 65 64 0a 2d   ┆anced binary search introduced -┆
0x00df60…00df80             2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44 61 74 65 20 20 20 20 20 20 49 6e 69 74 2e 20 54 65 78 74   ┆- -- Vers.  Date      Init. Text┆
0x00df80…00dfa0             0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 20 2d 2d 2d 2d 20 20 2d 2d 2d 2d 2d   ┆ -- ----   --------  ----  -----┆
0x00dfa0…00dfc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x00dfc0…00dfe0             2d 0a 2d 2d 20 31 2e 34 20 20 20 20 38 39 2e 31 30 2e 31 38 20 20 48 45 4a 20 20 20 46 69 72 73   ┆- -- 1.4    89.10.18  HEJ   Firs┆
0x00dfe0…00e000             74 20 54 75 72 62 6f 20 50 61 73 63 61 6c 20 76 65 72 73 69 6f 6e 2e 0a 2d 2d 20 20 20 20 20 20   ┆t Turbo Pascal version. --      ┆
0x00e000…00e020 (3, 1, 8)   20 20 38 39 2e 31 31 2e 30 31 20 20 48 45 4a 20 20 20 50 72 6f 62 6c 65 6d 73 20 77 69 74 68 20   ┆  89.11.01  HEJ   Problems with ┆
0x00e020…00e040             68 65 61 70 73 69 7a 65 20 73 6f 6c 76 65 64 2e 0a 2d 2d 20 20 20 20 20 20 20 20 38 39 2e 31 31   ┆heapsize solved. --        89.11┆
0x00e040…00e060             2e 30 32 20 20 48 45 4a 20 20 20 43 75 72 72 65 6e 74 20 64 69 72 20 75 73 65 64 20 61 73 20 77   ┆.02  HEJ   Current dir used as w┆
0x00e060…00e080             6f 72 6b 20 64 69 72 2e 0a 2d 2d 20 31 2e 35 20 20 20 20 39 30 2e 30 31 2e 30 38 20 20 48 45 4a   ┆ork dir. -- 1.5    90.01.08  HEJ┆
0x00e080…00e0a0             20 20 20 43 6f 64 65 5f 62 79 74 65 73 20 63 68 61 6e 67 65 64 20 74 6f 20 6c 6f 6e 67 69 6e 74   ┆   Code_bytes changed to longint┆
0x00e0a0…00e0c0             2c 20 62 75 74 20 73 74 69 6c 6c 20 3a 0a 2d 2d 09 09 09 20 20 38 35 31 31 30 37 3a 20 61 74 20   ┆, but still : --     851107: at ┆
0x00e0c0…00e0e0             6d 6f 73 74 20 36 34 20 4b 20 62 79 74 65 73 20 70 72 6f 67 72 61 6d 73 2e 0a 2d 2d 20 20 20 20   ┆most 64 K bytes programs. --    ┆
0x00e0e0…00e100             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 72 72 6f 72 6c 65 76 65 6c 20 73   ┆                    Errorlevel s┆
0x00e100…00e120             65 74 20 74 6f 20 31 20 69 66 20 6c 69 6e 6b 69 6e 67 20 6e 6f 74 20 73 6f 6c 76 65 64 2e 0a 2d   ┆et to 1 if linking not solved. -┆
0x00e120…00e140             2d 20 31 2e 36 20 20 20 20 39 30 2e 30 32 2e 31 35 20 20 48 45 4a 20 20 20 73 6f 75 72 63 65 20   ┆- 1.6    90.02.15  HEJ   source ┆
0x00e140…00e160             66 69 6c 65 73 20 77 69 74 68 6f 75 74 20 65 78 74 65 6e 73 69 6f 6e 20 61 72 65 20 61 63 63 65   ┆files without extension are acce┆
0x00e160…00e180             70 74 65 64 20 74 6f 6f 2e 0a 2d 2d 20 31 2e 37 20 20 20 20 39 30 2e 30 35 2e 33 30 20 20 48 45   ┆pted too. -- 1.7    90.05.30  HE┆
0x00e180…00e1a0             4a 20 20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 27 50 32 32 27 2c 20 20 73 74   ┆J   Default extension 'P22',  st┆
0x00e1a0…00e1c0             6f 70 5f 6d 61 72 6b 20 20 24 46 46 46 46 20 20 2d 3e 20 20 30 30 30 30 2e 0a 2d 2d 20 31 2e 38   ┆op_mark  $FFFF  ->  0000. -- 1.8┆
0x00e1c0…00e1e0             20 20 20 20 39 31 2e 30 34 2e 31 38 20 20 48 45 4a 20 20 20 50 72 69 6e 74 20 75 6e 72 65 73 6f   ┆    91.04.18  HEJ   Print unreso┆
0x00e1e0…00e200             6c 76 65 64 20 72 65 66 65 72 65 6e 63 65 73 2c 20 66 72 65 65 6d 65 6d 20 61 66 74 65 72 20 75   ┆lved references, freemem after u┆
0x00e200…00e220 (3, 1, 9)   73 65 2e 0a 2d 2d 20 31 2e 39 20 20 20 20 39 32 2e 30 32 2e 32 34 20 20 48 45 4a 20 20 20 52 65   ┆se. -- 1.9    92.02.24  HEJ   Re┆
0x00e220…00e240             61 64 69 6e 67 20 6f 66 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 22 50 52 49 4e 54 2d 22 20 63 68   ┆ading of argument to "PRINT-" ch┆
0x00e240…00e260             61 6e 67 65 64 2c 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆anged, --                       ┆
0x00e260…00e280             20 63 6f 72 72 65 63 74 73 20 65 72 72 6f 72 20 72 65 70 6f 72 74 65 64 20 62 79 20 4c 45 49 20   ┆ corrects error reported by LEI ┆
0x00e280…00e2a0             20 39 31 2e 30 34 2e 31 36 2e 0a 2d 2d 20 31 2e 31 30 20 20 20 39 32 2e 30 34 2e 31 35 20 20 48   ┆ 91.04.16. -- 1.10   92.04.15  H┆
0x00e2a0…00e2c0             45 4a 20 20 20 45 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 63 68 61 6e 67 65 64 20 74 6f   ┆EJ   Equal_paramlists changed to┆
0x00e2c0…00e2e0             20 6c 65 74 20 66 72 6f 7a 65 6e 20 76 61 72 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ let frozen var --              ┆
0x00e2e0…00e300             20 20 20 20 20 20 20 20 20 20 61 6e 64 20 69 6e 73 70 65 63 74 20 62 65 20 63 6f 6d 70 61 74 69   ┆          and inspect be compati┆
0x00e300…00e320             62 6c 65 2e 0a 2d 2d 20 31 2e 31 31 20 20 20 39 32 2e 30 35 2e 32 35 20 20 48 45 4a 20 20 20 45   ┆ble. -- 1.11   92.05.25  HEJ   E┆
0x00e320…00e340             78 74 65 6e 73 69 6f 6e 20 27 2e 54 32 32 27 20 69 73 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2e   ┆xtension '.T22' is accepted too.┆
0x00e340…00e360             0a 2d 2d 20 31 2e 31 32 20 20 20 39 32 2e 30 36 2e 32 36 20 20 48 45 4a 20 20 20 45 72 72 6f 72   ┆ -- 1.12   92.06.26  HEJ   Error┆
0x00e360…00e380             20 69 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 63 6f 72 72 65 63 74 65 64 2e 0a   ┆ in equal_paramlists corrected. ┆
0x00e380…00e3a0             01 49 20 33 0a 2d 2d 20 31 2e 31 33 20 20 20 39 32 2e 31 30 2e 30 39 20 20 48 45 4a 20 20 20 53   ┆ I 3 -- 1.13   92.10.09  HEJ   S┆
0x00e3a0…00e3c0             43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2c 0a 2d 2d 09 09 09 20 20 2d   ┆CCS info and UNIX used, --     -┆
0x00e3c0…00e3e0             20 4c 6f 61 64 65 72 20 6d 61 70 20 69 6e 63 6f 6e 73 69 73 74 65 6e 73 20 63 68 61 6e 67 65 64   ┆ Loader map inconsistens changed┆
0x00e3e0…00e400             20 74 6f 20 62 65 20 61 20 66 61 74 61 6c 20 65 72 72 6f 72 2e 0a 01 45 20 33 0a 2d 2d 0a 2d 2d   ┆ to be a fatal error.  E 3 -- --┆
0x00e400…00e420 (3, 1, 10)  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x00e440…00e460             2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20   ┆- -- SCCS information -- File   ┆
0x00e460…00e480             3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69   ┆:  %P% -- Module :  %M% -- Versi┆
0x00e480…00e4a0             6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d   ┆on:  %I% -- Date   :  %E%  %U% -┆
0x00e4a0…00e4c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x00e4e0…00e500             2d 2d 0a 2a 29 0a 0a 0c 0a 0a 55 73 65 73 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49 42   ┆-- *)     Uses DOS, Cbreak, PLIB┆
0x00e500…00e520             55 4e 49 54 2c 20 50 6f 6c 79 66 69 6c 65 3b 0a 0a 28 2a 24 4d 20 38 31 39 32 2c 38 31 39 32 30   ┆UNIT, Polyfile;  (*$M 8192,81920┆
0x00e520…00e540             2c 38 36 39 32 30 20 20 73 74 61 63 6b 20 61 6e 64 20 68 65 61 70 20 20 2a 29 0a 28 2a 24 52 2b   ┆,86920  stack and heap  *) (*$R+┆
0x00e540…00e560             2c 53 2b 09 09 72 61 6e 67 65 20 63 68 65 63 6b 20 20 2a 29 0a 28 2a 24 49 2d 09 09 09 2a 29 0a   ┆,S+  range check  *) (*$I-   *) ┆
0x00e560…00e580             0a 43 6f 6e 73 74 0a 01 44 20 33 0a 20 20 20 76 65 72 73 69 6f 6e 09 3d 20 20 27 20 76 65 72 73   ┆ Const  D 3    version =  ' vers┆
0x00e580…00e5a0             69 6f 6e 20 31 2e 31 32 2c 20 20 20 31 39 39 32 2e 30 36 2e 32 36 20 20 20 20 27 20 3b 0a 01 45   ┆ion 1.12,   1992.06.26    ' ;  E┆
0x00e5a0…00e5c0             20 33 0a 01 49 20 33 0a 20 20 20 73 63 63 73 5f 64 61 74 65 20 20 20 20 3d 20 20 20 27 25 45 25   ┆ 3  I 3    sccs_date    =   '%E%┆
0x00e5c0…00e5e0             27 20 20 3b 0a 01 45 20 33 0a 20 20 20 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 20 27 2e   ┆'  ;  E 3    src_extension=   '.┆
0x00e5e0…00e600             50 32 32 27 20 3b 0a 20 20 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 54 32 32   ┆P22' ;    comp_extension=  '.T22┆
0x00e600…00e620 (3, 1, 11)  27 20 3b 0a 20 20 20 64 65 73 74 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 42 32 32 27 20 3b   ┆' ;    dest_extension=  '.B22' ;┆
0x00e620…00e640             0a 0a 20 20 20 64 65 62 75 67 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28   ┆     debug : boolean =  false; (┆
0x00e640…00e660             2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 20 2a 29 0a 20 20 20 64 65 62 75 67   ┆*  for debug output  *)    debug┆
0x00e660…00e680             31 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65   ┆1 : boolean =  false; (*  for de┆
0x00e680…00e6a0             62 75 67 20 6f 75 74 70 75 74 20 6f 66 20 20 2a 29 0a 20 20 20 64 65 62 75 67 32 09 3a 20 62 6f   ┆bug output of  *)    debug2 : bo┆
0x00e6a0…00e6c0             6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75   ┆olean =  false; (*  for debug ou┆
0x00e6c0…00e6e0             74 70 75 74 20 6f 66 20 6d 6f 64 75 6c 65 20 6e 61 6d 65 73 20 2a 29 0a 20 20 20 64 65 62 75 67   ┆tput of module names *)    debug┆
0x00e6e0…00e700             33 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65   ┆3 : boolean =  false; (*  for de┆
0x00e700…00e720             62 75 67 20 6f 75 74 70 75 74 20 69 6e 20 6f 75 74 73 75 6d 20 20 20 2a 29 0a 20 20 20 64 65 62   ┆bug output in outsum   *)    deb┆
0x00e720…00e740             75 67 34 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20   ┆ug4 : boolean =  false; (*  for ┆
0x00e740…00e760             64 65 62 75 67 20 6f 66 20 73 65 65 6b 09 09 2a 29 0a 20 20 20 64 65 62 75 67 63 61 74 09 3a 20   ┆debug of seek  *)    debugcat : ┆
0x00e760…00e780             62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20   ┆boolean =  false; (*  for debug ┆
0x00e780…00e7a0             6f 66 20 69 74 65 6d 20 63 61 74 61 6c 6f 67 09 2a 29 0a 20 20 20 64 65 62 75 67 36 09 3a 20 62   ┆of item catalog *)    debug6 : b┆
0x00e7a0…00e7c0             6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f   ┆oolean =  false; (*  for debug o┆
0x00e7c0…00e7e0             66 20 6c 6f 61 64 65 72 20 6d 61 70 09 2a 29 0a 20 20 20 64 65 62 75 67 37 09 3a 20 62 6f 6f 6c   ┆f loader map *)    debug7 : bool┆
0x00e7e0…00e800             65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 66 20 69   ┆ean =  false; (*  for debug of i┆
0x00e800…00e820 (3, 1, 12)  6e 64 65 78 09 09 2a 29 0a 0a 20 20 20 64 61 74 5f 6e 61 6d 65 09 3d 20 20 27 43 52 4f 53 57 52   ┆ndex  *)     dat_name =  'CROSWR┆
0x00e820…00e840             4b 2e 44 41 54 27 3b 0a 20 20 20 69 6e 78 5f 6e 61 6d 65 09 3d 20 20 27 43 52 4f 53 57 52 4b 2e   ┆K.DAT';    inx_name =  'CROSWRK.┆
0x00e840…00e860             49 4e 58 27 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 20 6f 6c 64 20 73 68 69 74 20 2d 2d 2d 0a 62 6f   ┆INX';  {-------- old shit --- bo┆
0x00e860…00e880             6f 74 5f 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 20 20 3d 20 36   ┆ot_compiler_version_number   = 6┆
0x00e880…00e8a0             3b 0a 28 2a 20 72 65 76 35 20 62 6f 6f 74 20 66 69 6c 65 73 20 6d 75 73 74 20 73 61 79 20 74 68   ┆; (* rev5 boot files must say th┆
0x00e8a0…00e8c0             69 73 20 76 65 72 73 69 6f 6e 20 21 21 21 20 2a 29 0a 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69   ┆is version !!! *) compiler_versi┆
0x00e8c0…00e8e0             6f 6e 5f 6e 75 6d 62 65 72 20 20 20 20 20 20 20 20 3d 20 37 3b 0a 28 2a 20 74 68 65 20 65 78 70   ┆on_number        = 7; (* the exp┆
0x00e8e0…00e900             65 63 74 65 64 20 70 61 73 63 61 6c 38 30 20 63 6f 6d 70 69 6c 65 72 20 76 65 72 73 69 6f 6e 20   ┆ected pascal80 compiler version ┆
0x00e900…00e920             6e 75 6d 62 65 72 20 2a 29 0a 66 69 78 65 64 5f 72 65 76 35 5f 64 5f 6c 65 6e 67 74 68 20 20 20   ┆number *) fixed_rev5_d_length   ┆
0x00e920…00e940             20 20 20 20 20 20 20 20 20 3d 20 32 30 3b 0a 28 2a 20 6c 65 6e 67 74 68 20 6f 66 20 66 69 78 65   ┆         = 20; (* length of fixe┆
0x00e940…00e960             64 20 70 61 72 74 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 69 6e 20   ┆d part of descriptor segment in ┆
0x00e960…00e980             77 6f 72 64 73 20 2a 29 0a 66 69 78 65 64 5f 63 5f 64 5f 6c 65 6e 67 74 68 09 09 3d 20 32 32 3b   ┆words *) fixed_c_d_length  = 22;┆
0x00e980…00e9a0             20 28 2a 20 6c 65 6e 67 74 68 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 70 61 72 74 31 20 66   ┆ (* length of descriptor part1 f┆
0x00e9a0…00e9c0             6f 72 20 72 63 33 35 30 32 2f 32 20 20 2d 20 61 6c 73 6f 20 69 6e 20 77 6f 72 64 73 20 2a 29 0a   ┆or rc3502/2  - also in words *) ┆
0x00e9c0…00e9e0             63 5f 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 09 09 3d 20 34 3b 0a 6e 6f 5f 6f 66 5f 6e 6f 74   ┆c_no_of_not_used  = 4; no_of_not┆
0x00e9e0…00ea00             5f 75 73 65 64 20 3a 20 20 62 79 74 65 20 3d 20 63 5f 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64   ┆_used :  byte = c_no_of_not_used┆
0x00ea00…00ea20 (3, 1, 13)  3b 0a 66 69 78 65 64 5f 64 5f 6c 65 6e 67 74 68 20 3a 20 77 6f 72 64 20 20 3d 20 66 69 78 65 64   ┆; fixed_d_length : word  = fixed┆
0x00ea20…00ea40             5f 63 5f 64 5f 6c 65 6e 67 74 68 3b 20 28 2a 20 69 6e 69 74 20 74 6f 20 63 6f 6d 70 69 6c 65 72   ┆_c_d_length; (* init to compiler┆
0x00ea40…00ea60             5f 76 65 72 73 69 6f 6e 20 2f 32 20 76 61 6c 75 65 20 2a 29 0a 0a 74 77 6f 5f 74 6f 5f 31 36 20   ┆_version /2 value *)  two_to_16 ┆
0x00ea60…00ea80             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 2d 31 3b 0a 0a 28 2a 20 63   ┆                     = -1;  (* c┆
0x00ea80…00eaa0             6f 6e 74 65 6e 74 73 20 6b 65 79 20 76 61 6c 75 65 73 20 69 6e 20 74 61 69 6c 20 2a 29 0a 6f 62   ┆ontents key values in tail *) ob┆
0x00eaa0…00eac0             6a 65 63 74 66 69 6c 65 5f 63 6f 6e 74 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31   ┆jectfile_content             = 1┆
0x00eac0…00eae0             36 2a 32 35 36 20 2b 20 31 3b 0a 69 6d 61 67 65 66 69 6c 65 5f 63 6f 6e 74 65 6e 74 20 20 20 20   ┆6*256 + 1; imagefile_content    ┆
0x00eae0…00eb00             20 20 20 20 20 20 20 20 20 20 3d 20 31 36 2a 32 35 36 20 2b 20 32 3b 0a 0a 70 72 6f 67 72 61 6d   ┆          = 16*256 + 2;  program┆
0x00eb00…00eb20             5f 6b 69 6e 64 20 20 3d 20 31 3b 20 28 2a 20 75 73 65 64 20 61 73 20 27 6b 69 6e 64 2d 6f 66 2d   ┆_kind  = 1; (* used as 'kind-of-┆
0x00eb20…00eb40             6f 62 6a 27 20 2a 29 0a 6d 69 6e 69 63 6f 72 65 20 20 20 20 20 20 3d 20 31 30 30 30 30 3b 20 28   ┆obj' *) minicore      = 10000; (┆
0x00eb40…00eb60             2a 20 64 65 66 61 75 6c 74 20 73 69 7a 65 20 6f 66 20 63 6f 72 65 20 69 6d 61 67 65 20 28 77 6f   ┆* default size of core image (wo┆
0x00eb60…00eb80             72 64 73 29 20 2a 29 0a 6d 69 64 69 63 6f 72 65 20 20 20 20 20 20 3d 20 32 30 30 30 30 3b 20 28   ┆rds) *) midicore      = 20000; (┆
0x00eb80…00eba0             2a 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 63 6f 72 65 20   ┆* the size of the internal core ┆
0x00eba0…00ebc0             69 6d 61 67 65 20 64 65 70 65 6e 64 73 20 6f 6e 20 2a 29 0a 6d 61 78 69 63 6f 72 65 20 20 20 20   ┆image depends on *) maxicore    ┆
0x00ebc0…00ebe0             20 20 3d 20 32 37 30 30 30 3b 20 28 2a 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 67 72   ┆  = 27000; (* the size of the gr┆
0x00ebe0…00ec00             65 61 74 65 73 74 20 6d 6f 64 75 6c 65 20 74 6f 20 6c 69 6e 6b 20 2a 29 0a 66 75 6c 6c 5f 68 6f   ┆eatest module to link *) full_ho┆
0x00ec00…00ec20 (3, 1, 14)  75 73 65 20 20 20 20 3d 20 6d 61 78 69 6e 74 3b 20 28 2a 20 36 34 20 6b 20 62 79 74 65 73 2c 20   ┆use    = maxint; (* 64 k bytes, ┆
0x00ec20…00ec40             6d 61 78 20 6d 6f 64 75 6c 65 20 73 69 7a 65 20 2a 29 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆max module size *)  ------------┆
0x00ec40…00ec60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x00ec60…00ec80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 62 6f 6f 74 5f 63 5f 63 6f 6d 70 69 6c 65 72 5f 76   ┆------------}  boot_c_compiler_v┆
0x00ec80…00eca0             65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 09 3d 20 31 30 3b 20 28 2a 20 72 63 33 35 30 32 63 20 62   ┆ersion_number = 10; (* rc3502c b┆
0x00eca0…00ecc0             6f 6f 74 66 69 6c 65 73 20 6d 75 73 74 20 73 61 79 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20 2a   ┆ootfiles must say this version *┆
0x00ecc0…00ece0             29 0a 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 09 3d 20 31 30   ┆) compiler_c_version_number = 10┆
0x00ece0…00ed00             3b 20 28 2a 20 65 78 70 65 63 74 65 64 20 52 54 50 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72   ┆; (* expected RTP version number┆
0x00ed00…00ed20             20 2a 29 0a 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 09 09 09 3d 20 33 30 3b 20 28 2a 20 73 61   ┆ *) max_obj_params   = 30; (* sa┆
0x00ed20…00ed40             6d 65 20 6c 69 6d 69 74 20 61 73 20 70 61 73 73 35 20 2a 29 0a 66 69 72 73 74 5f 6d 65 6d 5f 6e   ┆me limit as pass5 *) first_mem_n┆
0x00ed40…00ed60             6f 09 09 09 3d 20 24 43 30 3b 0a 0a 28 2a 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 65 6e   ┆o   = $C0;  (* parameter type en┆
0x00ed60…00ed80             63 6f 64 69 6e 67 20 20 20 20 20 20 39 32 2e 30 34 2e 31 35 20 20 20 20 20 20 20 20 2a 29 0a 63   ┆coding      92.04.15        *) c┆
0x00ed80…00eda0             6f 64 65 5f 76 61 72 5f 70 74 72 20 20 20 20 3d 20 20 20 35 3b 0a 63 6f 64 65 5f 76 61 72 5f 73   ┆ode_var_ptr    =   5; code_var_s┆
0x00eda0…00edc0             79 73 72 65 63 20 3d 20 20 32 35 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 79 73 61 72 72 79 3d 20 20   ┆ysrec =  25; code_var_sysarry=  ┆
0x00edc0…00ede0             32 39 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 69 6d 70 6c 65 20 3d 20 20 33 33 3b 0a 63 6f 64 65 5f   ┆29; code_var_simple =  33; code_┆
0x00ede0…00ee00             69 6e 73 70 65 63 5f 70 74 72 20 3d 20 31 30 36 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79   ┆inspec_ptr = 106; code_inspec_sy┆
0x00ee00…00ee20 (3, 1, 15)  73 72 3d 20 31 32 36 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 61 3d 20 31 33 30 3b 0a   ┆sr= 126; code_inspec_sysa= 130; ┆
0x00ee20…00ee40             63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 69 6d 20 3d 20 31 33 34 3b 0a 0a 28 2a 20 64 65 63 6c 61   ┆code_inspec_sim = 134;  (* decla┆
0x00ee40…00ee60             72 61 74 69 6f 6e 73 20 66 6f 72 20 63 72 63 31 36 20 73 75 6d 63 61 74 61 6c 6f 67 20 2a 29 0a   ┆rations for crc16 sumcatalog *) ┆
0x00ee60…00ee80             6e 6f 5f 6f 66 5f 73 75 6d 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d   ┆no_of_sums                     =┆
0x00ee80…00eea0             20 20 20 33 32 3b 20 28 2a 20 77 6f 72 64 73 20 2a 29 0a 73 75 6d 62 79 74 65 73 20 20 20 20 20   ┆   32; (* words *) sumbytes     ┆
0x00eea0…00eec0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 30 34 38 3b 0a 73 75 6d 77 6f 72   ┆                  = 2048; sumwor┆
0x00eec0…00eee0             64 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 30 32 34 3b   ┆ds                       = 1024;┆
0x00eee0…00ef00             20 28 2a 20 73 75 6d 62 79 74 65 73 20 64 69 76 20 32 20 2a 29 0a 73 75 6d 5f 64 65 73 63 72 69   ┆ (* sumbytes div 2 *) sum_descri┆
0x00ef00…00ef20             70 74 6f 72 5f 6c 65 6e 67 74 68 20 20 20 20 20 20 20 20 20 20 3d 20 20 20 31 30 3b 20 28 2a 20   ┆ptor_length          =   10; (* ┆
0x00ef20…00ef40             62 79 74 65 73 20 2a 29 0a 0a 0a 79 65 73 20 20 20 20 20 20 20 20 20 20 20 3d 20 27 79 65 73 27   ┆bytes *)   yes           = 'yes'┆
0x00ef40…00ef60             3b 0a 6e 6f 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 27 6e 6f 27 3b 09 09 28 2a 20 20 63 61 6c   ┆; no            = 'no';  (*  cal┆
0x00ef60…00ef80             6c 20 70 61 72 61 6d 65 74 65 72 73 20 2a 29 0a 0a 20 20 66 61 74 61 6c 09 09 3d 20 20 31 3b 0a   ┆l parameters *)    fatal  =  1; ┆
0x00ef80…00efa0             20 20 77 61 72 6e 09 09 3d 20 20 32 3b 0a 20 20 6d 61 72 67 69 6e 09 3d 20 20 31 30 3b 0a 0a 54   ┆  warn  =  2;   margin =  10;  T┆
0x00efa0…00efc0             79 70 65 0a 0a 20 20 20 69 64 65 6e 74 69 66 69 65 72 20 3d 20 61 6c 66 61 3b 09 09 28 2a 20 61   ┆ype     identifier = alfa;  (* a┆
0x00efc0…00efe0             72 72 61 79 20 28 20 31 20 2e 2e 20 31 32 20 29 20 6f 66 20 63 68 61 72 20 20 2a 29 0a 0a 20 20   ┆rray ( 1 .. 12 ) of char  *)    ┆
0x00efe0…00f000             20 6d 65 6d 5f 62 79 74 65 73 5f 74 79 70 65 09 3d 20 20 61 72 72 61 79 20 5b 20 30 2e 2e 36 35   ┆ mem_bytes_type =  array [ 0..65┆
0x00f000…00f020 (4, 0, 1)   35 32 30 20 20 5d 20 6f 66 20 62 79 74 65 3b 0a 20 20 20 6d 65 6d 5f 77 6f 72 64 73 5f 74 79 70   ┆520  ] of byte;    mem_words_typ┆
0x00f020…00f040             65 09 3d 20 20 61 72 72 61 79 20 5b 20 30 2e 2e 6d 61 78 69 6e 74 2d 38 20 5d 20 6f 66 20 77 6f   ┆e =  array [ 0..maxint-8 ] of wo┆
0x00f040…00f060             72 64 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 73 65 20 20 70 6c 69 62 75   ┆rd;  {---------------  se  plibu┆
0x00f060…00f080             6e 69 74 0a 70 72 6f 67 72 61 6d 5f 70 6f 69 6e 74 20 3d 0a 20 20 72 65 63 6f 72 64 0a 20 20 70   ┆nit program_point =   record   p┆
0x00f080…00f0a0             61 67 65 5f 6e 6f 20 20 2c 0a 20 20 72 65 6c 5f 62 79 74 65 20 3a 20 77 6f 72 64 0a 20 20 65 6e   ┆age_no  ,   rel_byte : word   en┆
0x00f0a0…00f0c0             64 3b 0a 0a 61 64 64 72 65 73 73 20 3d 0a 20 20 72 65 63 6f 72 64 0a 20 20 62 61 73 65 20 20 2c   ┆d;  address =   record   base  ,┆
0x00f0c0…00f0e0             0a 20 20 64 69 73 70 20 3a 20 77 6f 72 64 0a 20 20 65 6e 64 3b 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d   ┆   disp : word   end;   --------┆
0x00f0e0…00f100             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 70 61 72 61 6d 5f 64 65 73 63 72 20 3d 0a   ┆---------------}  param_descr = ┆
0x00f100…00f120             20 20 72 65 63 6f 72 64 0a 20 20 70 61 72 61 6d 63 6f 75 6e 74 20 3a 20 77 6f 72 64 3b 0a 20 20   ┆  record   paramcount : word;   ┆
0x00f120…00f140             70 61 72 61 6d 20 20 20 20 20 20 20 20 3a 20 61 72 72 61 79 20 5b 20 31 20 2e 2e 20 6d 61 78 5f   ┆param        : array [ 1 .. max_┆
0x00f140…00f160             6f 62 6a 5f 70 61 72 61 6d 73 20 5d 20 6f 66 0a 20 20 20 20 72 65 63 6f 72 64 0a 20 20 20 20 70   ┆obj_params ] of     record     p┆
0x00f160…00f180             61 72 61 6d 5f 74 79 70 65 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 70 61 72 61 6d 5f 73 69 7a 65   ┆aram_type : word;     param_size┆
0x00f180…00f1a0             20 3a 20 77 6f 72 64 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 20 20 65 78 74 5f 73 74   ┆ : word     end   end;    ext_st┆
0x00f1a0…00f1c0             61 74 65 73 20 3d 20 28 20 75 6e 64 65 66 2c 20 64 65 66 69 6e 65 64 29 3b 0a 0a 20 20 69 74 65   ┆ates = ( undef, defined);    ite┆
0x00f1c0…00f1e0             6d 5f 72 65 63 20 3d 20 20 72 65 63 6f 72 64 0a 20 20 20 20 72 65 63 73 74 61 74 09 3a 20 20 77   ┆m_rec =  record     recstat :  w┆
0x00f1e0…00f200             6f 72 64 3b 0a 20 20 20 20 75 73 65 72 6e 61 6d 65 09 3a 20 20 61 6c 66 61 73 74 72 3b 0a 20 20   ┆ord;     username :  alfastr;   ┆
0x00f200…00f220 (4, 0, 2)   20 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 3a 20 63 6f 64 65 64 5f 64 61 74 65 3b 0a 20 20 20   ┆  compile_date : coded_date;    ┆
0x00f220…00f240             20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 3a 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 20 20 20 20   ┆ compile_time : coded_time;     ┆
0x00f240…00f260             73 74 61 74 65 20 20 20 20 20 20 20 20 3a 20 65 78 74 5f 73 74 61 74 65 73 3b 0a 20 20 20 20 70   ┆state        : ext_states;     p┆
0x00f260…00f280             61 72 61 6d 6c 69 73 74 20 20 20 20 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 3b 0a 20 20 20 20 73   ┆aramlist    : param_descr;     s┆
0x00f280…00f2a0             61 76 65 64 5f 64 5f 61 64 64 72 20 3a 20 61 64 64 72 65 73 73 3b 0a 20 20 20 20 65 6e 74 72 79   ┆aved_d_addr : address;     entry┆
0x00f2a0…00f2c0             5f 61 64 64 72 20 20 20 3a 20 61 64 64 72 65 73 73 3b 0a 20 20 20 65 6e 64 3b 0a 0a 0c 0a 0a 56   ┆_addr   : address;    end;     V┆
0x00f2c0…00f2e0             61 72 0a 0a 20 20 20 20 6c 69 62 72 61 72 79 09 2c 0a 20 20 20 73 6f 75 72 63 65 5f 66 69 6c 65   ┆ar      library ,    source_file┆
0x00f2e0…00f300             09 2c 0a 20 20 20 6c 61 73 74 5f 73 63 61 6e 09 2c 0a 20 20 20 61 6e 79 5f 69 6e 63 6c 75 64 65   ┆ ,    last_scan ,    any_include┆
0x00f300…00f320             64 09 2c 0a 20 20 20 61 66 74 65 72 5f 6c 69 62 09 2c 0a 20 20 20 77 61 6e 74 65 64 09 3a 20 62   ┆d ,    after_lib ,    wanted : b┆
0x00f320…00f340             6f 6f 6c 65 61 6e 3b 0a 0a 20 20 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 09 2c 09 09 28 2a 20 20   ┆oolean;     start_module ,  (*  ┆
0x00f340…00f360             20 77 6f 72 64 20 74 79 70 65 20 69 73 20 20 30 2e 2e 36 35 35 33 35 09 2a 29 0a 20 20 20 73 74   ┆ word type is  0..65535 *)    st┆
0x00f360…00f380             61 72 74 5f 64 69 73 70 6c 09 2c 0a 20 20 20 66 69 72 73 74 5f 6f 66 5f 6d 6f 64 75 6c 65 09 2c   ┆art_displ ,    first_of_module ,┆
0x00f380…00f3a0             0a 20 20 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 2c 0a 20 20 20 70 72 65 6f 63 63 75 70 69 65   ┆    top_of_module,    preoccupie┆
0x00f3a0…00f3c0             64 09 2c 0a 20 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 09 2c 0a 20 20 20 6e 6f 5f 6f 66 5f 6f 62   ┆d ,    param_index ,    no_of_ob┆
0x00f3c0…00f3e0             6a 5f 66 69 6c 65 73 09 2c 0a 20 20 20 73 74 65 70 09 09 2c 0a 20 20 20 70 2c 20 77 72 6b 09 2c   ┆j_files ,    step  ,    p, wrk ,┆
0x00f3e0…00f400             0a 20 20 20 75 6e 64 65 66 5f 63 6f 75 6e 74 09 2c 20 28 2a 20 68 6f 6c 64 73 20 6e 75 6d 62 65   ┆    undef_count , (* holds numbe┆
0x00f400…00f420 (4, 0, 3)   72 20 6f 66 20 65 78 74 5f 74 61 62 6c 65 20 65 6e 74 72 69 65 73 20 77 69 74 68 20 73 74 61 74   ┆r of ext_table entries with stat┆
0x00f420…00f440             65 20 3d 20 75 6e 64 65 66 20 2a 29 0a 20 20 20 73 63 61 6e 09 09 3a 20 77 6f 72 64 3b 0a 0a 20   ┆e = undef *)    scan  : word;   ┆
0x00f440…00f460             20 20 6c 61 73 74 5f 65 78 74 65 72 6e 61 6c 2c 0a 20 20 20 6e 6f 5f 6f 66 5f 75 73 65 73 09 2c   ┆  last_external,    no_of_uses ,┆
0x00f460…00f480             0a 20 20 20 6e 6f 5f 6f 66 5f 69 6e 74 09 2c 0a 20 20 20 6e 6f 5f 6f 66 5f 65 78 74 09 3a 20 77   ┆    no_of_int ,    no_of_ext : w┆
0x00f480…00f4a0             6f 72 64 3b 0a 0a 20 20 20 63 6f 64 65 5f 77 6f 72 64 73 09 2c 09 09 28 2a 20 20 6e 6f 20 6f 66   ┆ord;     code_words ,  (*  no of┆
0x00f4a0…00f4c0             20 77 6f 72 64 73 20 69 6e 20 63 6f 64 65 09 09 2a 29 0a 20 20 20 63 6f 64 65 5f 62 79 74 65 73   ┆ words in code  *)    code_bytes┆
0x00f4c0…00f4e0             09 2c 09 09 28 2a 20 20 2d 20 20 2d 20 20 62 79 74 65 73 20 2d 20 20 2d 09 09 2a 29 0a 20 20 20   ┆ ,  (*  -  -  bytes -  -  *)    ┆
0x00f4e0…00f500             6f 63 74 65 74 73 09 3a 20 20 6c 6f 6e 67 69 6e 74 3b 09 28 2a 20 20 65 76 65 6e 20 6e 6f 20 6f   ┆octets :  longint; (*  even no o┆
0x00f500…00f520             66 20 62 79 74 65 73 20 69 6e 20 63 6f 64 65 09 2a 29 0a 0a 20 20 20 74 6f 5f 61 64 64 72 09 2c   ┆f bytes in code *)     to_addr ,┆
0x00f520…00f540             0a 20 20 20 6d 61 70 5f 61 64 64 72 09 2c 0a 20 20 20 73 74 61 72 74 5f 61 64 64 72 09 2c 0a 20   ┆    map_addr ,    start_addr ,  ┆
0x00f540…00f560             20 20 74 6f 70 5f 6f 66 5f 62 69 6e 09 2c 0a 20 20 20 64 5f 61 64 64 72 09 2c 0a 20 20 20 63 6f   ┆  top_of_bin ,    d_addr ,    co┆
0x00f560…00f580             64 65 5f 61 64 64 72 09 3a 20 61 64 64 72 65 73 73 3b 0a 0a 20 20 20 28 2a 20 76 61 72 69 61 62   ┆de_addr : address;     (* variab┆
0x00f580…00f5a0             6c 65 73 20 63 6f 6e 63 65 72 6e 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e   ┆les concerning descriptor segmen┆
0x00f5a0…00f5c0             74 20 70 61 72 74 20 31 20 2a 29 0a 20 20 20 68 65 61 64 09 09 3a 20 20 64 65 73 63 72 69 70 74   ┆t part 1 *)    head  :  descript┆
0x00f5c0…00f5e0             6f 72 5f 70 61 72 74 31 3b 0a 0a 20 20 20 6f 62 6a 5f 70 61 72 61 6d 73 09 3a 20 20 70 61 72 61   ┆or_part1;     obj_params :  para┆
0x00f5e0…00f600             6d 5f 64 65 73 63 72 3b 0a 20 20 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 09 3a 20 20 61 6c 66 61 3b   ┆m_descr;    name_of_ext :  alfa;┆
0x00f600…00f620 (4, 0, 4)   0a 0a 20 20 20 69 74 65 6d 09 09 2c 0a 20 20 20 65 78 74 5f 69 74 65 6d 09 3a 20 69 74 65 6d 5f   ┆     item  ,    ext_item : item_┆
0x00f620…00f640             72 65 63 3b 0a 0a 20 20 20 74 78 74 09 09 3a 20 20 73 74 72 69 6e 67 5b 34 30 5d 3b 0a 0a 20 20   ┆rec;     txt  :  string[40];    ┆
0x00f640…00f660             20 70 61 72 61 6d 74 78 74 09 2c 0a 20 20 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 3a 20 20 70   ┆ paramtxt ,    obj_file_name:  p┆
0x00f660…00f680             61 74 68 73 74 72 3b 0a 0a 20 20 20 63 6f 72 65 73 69 7a 65 09 3a 20 20 77 6f 72 64 3b 20 28 2a   ┆athstr;     coresize :  word; (*┆
0x00f680…00f6a0             20 61 63 74 75 61 6c 20 73 69 7a 65 20 6f 66 20 63 6f 72 65 20 69 6d 61 67 65 20 2a 29 0a 20 20   ┆ actual size of core image *)   ┆
0x00f6a0…00f6c0             20 63 6f 72 65 09 09 3a 20 20 5e 6d 65 6d 5f 62 79 74 65 73 5f 74 79 70 65 3b 0a 20 20 20 63 6f   ┆ core  :  ^mem_bytes_type;    co┆
0x00f6c0…00f6e0             72 65 77 09 3a 20 20 5e 6d 65 6d 5f 77 6f 72 64 73 5f 74 79 70 65 20 61 62 73 6f 6c 75 74 65 20   ┆rew :  ^mem_words_type absolute ┆
0x00f6e0…00f700             63 6f 72 65 3b 0a 20 20 20 75 70 70 65 72 63 6f 72 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 0a   ┆core;    uppercore :  pointer;  ┆
0x00f700…00f720             20 20 20 66 70 6f 73 20 20 20 20 20 20 20 20 20 3a 20 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 69   ┆   fpos         :  longint;    i┆
0x00f720…00f740             6e 5f 6f 62 6a 5f 66 69 6c 65 09 2c 0a 20 20 20 6f 75 74 62 69 6e 66 69 6c 65 09 3a 20 66 69 6c   ┆n_obj_file ,    outbinfile : fil┆
0x00f740…00f760             65 3b 0a 0a 20 20 20 64 61 74 66 09 09 3a 20 20 64 61 74 61 66 69 6c 65 3b 0a 20 20 20 69 6e 78   ┆e;     datf  :  datafile;    inx┆
0x00f760…00f780             66 09 09 3a 20 20 69 6e 64 65 78 66 69 6c 65 3b 0a 20 20 20 6c 6f 67 6e 6f 09 2c 0a 20 20 20 64   ┆f  :  indexfile;    logno ,    d┆
0x00f780…00f7a0             72 6e 2c 20 69 74 65 6d 6e 6f 09 3a 20 20 77 6f 72 64 3b 09 28 2a 20 20 64 61 74 61 20 72 65 63   ┆rn, itemno :  word; (*  data rec┆
0x00f7a0…00f7c0             6f 72 64 20 6e 6f 20 20 2a 29 0a 20 20 20 6b 65 79 09 09 3a 20 20 61 6c 66 61 73 74 72 3b 0a 20   ┆ord no  *)    key  :  alfastr;  ┆
0x00f7c0…00f7e0             20 20 65 78 69 74 73 61 76 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 20 20 20 6c 6f 67 09 09 3a   ┆  exitsave :  pointer;    log  :┆
0x00f7e0…00f800             20 20 74 65 78 74 3b 0a 0a 20 20 20 73 75 6d 63 61 74 61 6c 6f 67 09 3a 20 61 72 72 61 79 20 5b   ┆  text;     sumcatalog : array [┆
0x00f800…00f820 (4, 0, 5)   20 31 2e 2e 6e 6f 5f 6f 66 5f 73 75 6d 73 20 5d 20 6f 66 20 77 6f 72 64 3b 0a 20 20 20 73 75 6d   ┆ 1..no_of_sums ] of word;    sum┆
0x00f820…00f840             69 6e 64 65 78 09 2c 0a 20 20 20 73 75 6d 63 6f 75 6e 74 09 2c 0a 20 20 20 73 75 6d 09 09 3a 20   ┆index ,    sumcount ,    sum  : ┆
0x00f840…00f860             20 77 6f 72 64 3b 0a 0a 0a 20 43 6f 6e 73 74 20 20 20 28 2a 20 20 69 6e 69 74 69 61 6c 69 7a 65   ┆ word;    Const   (*  initialize┆
0x00f860…00f880             64 20 76 61 72 20 20 2a 29 0a 0a 20 20 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64 3a 20 20 62 6f   ┆d var  *)     source_opened:  bo┆
0x00f880…00f8a0             6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 64 65 73 74 5f 6f 70 65 6e 65 64 20 20   ┆olean =  false;    dest_opened  ┆
0x00f8a0…00f8c0             3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 6e 65 77 6f 62 6a 5f 6f   ┆:  boolean =  false;    newobj_o┆
0x00f8c0…00f8e0             70 65 6e 65 64 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 64 61 74   ┆pened:  boolean =  false;    dat┆
0x00f8e0…00f900             61 62 61 73 65 5f 6f 70 65 6e 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20   ┆abase_open:  boolean =  false;  ┆
0x00f900…00f920             20 20 6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c   ┆  mem_allocated:  boolean =  fal┆
0x00f920…00f940             73 65 3b 0a 01 49 20 33 0a 20 20 20 6c 6f 61 64 65 72 6d 61 70 5f 65 72 72 3a 20 20 62 6f 6f 6c   ┆se;  I 3    loadermap_err:  bool┆
0x00f940…00f960             65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 01 45 20 33 0a 20 20 20 6d 79 5f 65 78 63 6f 64 65 20   ┆ean =  false;  E 3    my_excode ┆
0x00f960…00f980             20 20 20 3a 20 20 77 6f 72 64 20 20 20 09 3d 20 20 30 3b 0a 0a 20 20 20 63 6f 6d 70 69 6c 65 72   ┆   :  word    =  0;     compiler┆
0x00f980…00f9a0             5f 76 65 72 73 69 6f 6e 20 3a 20 77 6f 72 64 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72   ┆_version : word = compiler_c_ver┆
0x00f9a0…00f9c0             73 69 6f 6e 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 62 6f 6f 74 65 72 5f 76 65 72 73 69 6f 6e 20 20   ┆sion_number;    booter_version  ┆
0x00f9c0…00f9e0             20 3a 20 77 6f 72 64 20 3d 20 62 6f 6f 74 5f 63 5f 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f   ┆ : word = boot_c_compiler_versio┆
0x00f9e0…00fa00             6e 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 62 69 6e 64 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61 6e   ┆n_number;    bind_yes :  boolean┆
0x00fa00…00fa20 (4, 0, 6)   20 3d 20 20 74 72 75 65 3b 0a 20 20 20 64 65 73 63 72 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61   ┆ =  true;    descr_yes :  boolea┆
0x00fa20…00fa40             6e 20 3d 20 20 74 72 75 65 3b 0a 20 20 20 6d 61 70 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61 6e   ┆n =  true;    map_yes :  boolean┆
0x00fa40…00fa60             20 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 70 72 69 6e 74 5f 63 6f 64 65 09 3a 20 20 62 6f 6f 6c   ┆ =  false;    print_code :  bool┆
0x00fa60…00fa80             65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 3a 20   ┆ean =  false;    print_pr_line: ┆
0x00fa80…00faa0             20 77 6f 72 64 20 20 20 20 3d 20 20 20 20 20 31 36 3b 0a 20 20 20 70 72 69 6e 74 5f 68 65 61 64   ┆ word    =     16;    print_head┆
0x00faa0…00fac0             69 6e 67 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 61 6c 6c 5f 6f   ┆ing:  boolean =  false;    all_o┆
0x00fac0…00fae0             6e 65 73 09 3a 20 20 77 6f 72 64 09 20 20 20 3d 20 20 24 46 46 46 46 3b 0a 0a 0c 0a 0a 20 56 61   ┆nes :  word    =  $FFFF;      Va┆
0x00fae0…00fb00             72 0a 20 20 20 20 63 72 63 74 61 62 20 3a 20 20 61 72 72 61 79 20 5b 20 30 2e 2e 20 32 35 35 20   ┆r     crctab :  array [ 0.. 255 ┆
0x00fb00…00fb20             5d 20 6f 66 20 77 6f 72 64 3b 20 20 20 20 28 2a 20 20 63 72 63 74 61 62 74 79 70 65 3b 20 20 2a   ┆] of word;    (*  crctabtype;  *┆
0x00fb20…00fb40             29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 63 72 63 31 36 20 28 20 76 61 72 20 73 75 6d 3a 20   ┆)    Procedure crc16 ( var sum: ┆
0x00fb40…00fb60             77 6f 72 64 3b 20 64 61 74 61 3a 20 77 6f 72 64 29 3b 0a 20 20 28 2a 20 20 75 70 64 61 74 65 20   ┆word; data: word);   (*  update ┆
0x00fb60…00fb80             73 75 6d 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 6f 6c 64 20 73 75 6d 20 61 6e 64 20 64 61 74   ┆sum according to old sum and dat┆
0x00fb80…00fba0             61 2c 20 4e 42 20 62 6f 74 68 20 62 79 74 65 73 21 20 20 6c 6f 2c 20 68 69 0a 20 20 2d 2d 20 20   ┆a, NB both bytes!  lo, hi   --  ┆
0x00fba0…00fbc0             67 6c 6f 62 61 6c 20 3a 20 20 63 72 63 74 61 62 20 20 20 20 2a 29 0a 20 20 62 65 67 69 6e 0a 20   ┆global :  crctab    *)   begin  ┆
0x00fbc0…00fbe0             20 69 6e 6c 69 6e 65 20 28 0a 09 20 24 38 41 2f 24 34 36 2f 3c 64 61 74 61 2f 09 09 28 2a 20 20   ┆ inline (   $8A/$46/<data/  (*  ┆
0x00fbe0…00fc00             20 4d 4f 56 20 41 4c 2c 6c 6f 28 64 61 74 61 5b 42 50 5d 29 2a 29 0a 09 20 24 33 30 2f 24 45 34   ┆ MOV AL,lo(data[BP])*)   $30/$E4┆
0x00fc00…00fc20 (4, 0, 7)   2f 09 09 28 2a 20 20 20 58 4f 52 20 41 48 2c 41 48 09 09 2a 29 0a 09 20 24 43 34 2f 24 37 45 2f   ┆/  (*   XOR AH,AH  *)   $C4/$7E/┆
0x00fc20…00fc40             3c 73 75 6d 2f 20 20 09 28 2a 20 20 20 4c 45 53 20 44 49 2c 73 75 6d 5b 42 50 5d 09 2a 29 0a 09   ┆<sum/   (*   LES DI,sum[BP] *)  ┆
0x00fc40…00fc60             20 24 32 36 2f 24 33 33 2f 24 30 35 2f 09 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 45 53 3a 5b 44   ┆ $26/$33/$05/  (*   XOR AX,ES:[D┆
0x00fc60…00fc80             49 5d 09 2a 29 0a 09 20 24 33 32 2f 24 46 36 2f 09 09 28 2a 20 20 20 58 4f 52 20 44 48 2c 44 48   ┆I] *)   $32/$F6/  (*   XOR DH,DH┆
0x00fc80…00fca0             09 09 2a 29 0a 09 20 24 38 41 2f 24 44 30 2f 09 09 28 2a 20 20 20 4d 4f 56 20 44 4c 2c 41 4c 09   ┆  *)   $8A/$D0/  (*   MOV DL,AL ┆
0x00fca0…00fcc0             09 2a 29 0a 09 20 24 38 36 2f 24 43 34 2f 09 09 28 2a 20 20 20 58 43 48 47 20 41 4c 2c 41 48 09   ┆ *)   $86/$C4/  (*   XCHG AL,AH ┆
0x00fcc0…00fce0             09 2a 29 0a 09 20 24 33 30 2f 24 45 34 2f 09 09 28 2a 20 20 20 58 4f 52 20 41 48 2c 41 48 09 09   ┆ *)   $30/$E4/  (*   XOR AH,AH  ┆
0x00fce0…00fd00             2a 29 0a 09 20 24 38 42 2f 24 46 41 2f 09 09 28 2a 20 20 20 4d 4f 56 20 44 49 2c 44 58 09 09 2a   ┆*)   $8B/$FA/  (*   MOV DI,DX  *┆
0x00fd00…00fd20             29 0a 09 20 24 44 31 2f 24 45 37 2f 09 09 28 2a 20 20 20 53 48 4c 20 44 49 2c 31 20 09 09 2a 29   ┆)   $D1/$E7/  (*   SHL DI,1   *)┆
0x00fd20…00fd40             0a 09 20 24 33 33 2f 24 38 35 2f 63 72 63 74 61 62 2f 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 63   ┆   $33/$85/crctab/ (*   XOR AX,c┆
0x00fd40…00fd60             72 63 74 61 62 5b 44 49 5d 09 2a 29 0a 09 20 24 38 41 2f 24 35 36 2f 3c 64 61 74 61 2b 31 2f 09   ┆rctab[DI] *)   $8A/$56/<data+1/ ┆
0x00fd60…00fd80             28 2a 20 20 20 4d 4f 56 20 44 4c 2c 68 69 28 64 61 74 61 5b 42 50 5d 29 2a 29 0a 09 20 24 33 33   ┆(*   MOV DL,hi(data[BP])*)   $33┆
0x00fd80…00fda0             2f 24 43 32 2f 09 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 44 58 09 09 2a 29 0a 09 20 24 38 41 2f   ┆/$C2/  (*   XOR AX,DX  *)   $8A/┆
0x00fda0…00fdc0             24 44 30 2f 09 09 28 2a 20 20 20 4d 4f 56 20 44 4c 2c 41 4c 09 09 2a 29 0a 09 20 24 38 36 2f 24   ┆$D0/  (*   MOV DL,AL  *)   $86/$┆
0x00fdc0…00fde0             43 34 2f 09 09 28 2a 20 20 20 58 43 48 47 20 41 4c 2c 41 48 09 09 2a 29 0a 09 20 24 33 30 2f 24   ┆C4/  (*   XCHG AL,AH  *)   $30/$┆
0x00fde0…00fe00             45 34 2f 09 09 28 2a 20 20 20 58 4f 52 20 41 48 2c 41 48 09 09 2a 29 0a 09 20 24 38 42 2f 24 46   ┆E4/  (*   XOR AH,AH  *)   $8B/$F┆
0x00fe00…00fe20 (4, 0, 8)   41 2f 09 09 28 2a 20 20 20 4d 4f 56 20 44 49 2c 44 58 09 09 2a 29 0a 09 20 24 44 31 2f 24 45 37   ┆A/  (*   MOV DI,DX  *)   $D1/$E7┆
0x00fe20…00fe40             2f 09 09 28 2a 20 20 20 53 48 4c 20 44 49 2c 31 20 09 09 2a 29 0a 09 20 24 33 33 2f 24 38 35 2f   ┆/  (*   SHL DI,1   *)   $33/$85/┆
0x00fe40…00fe60             63 72 63 74 61 62 2f 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 63 72 63 74 61 62 5b 44 49 5d 09 2a   ┆crctab/ (*   XOR AX,crctab[DI] *┆
0x00fe60…00fe80             29 0a 09 20 24 43 34 2f 24 37 45 2f 3c 73 75 6d 2f 20 20 09 28 2a 20 20 20 4c 45 53 20 44 49 2c   ┆)   $C4/$7E/<sum/   (*   LES DI,┆
0x00fe80…00fea0             73 75 6d 5b 42 50 5d 09 2a 29 0a 09 20 24 32 36 2f 24 38 39 2f 24 30 35 20 20 09 09 28 2a 20 20   ┆sum[BP] *)   $26/$89/$05    (*  ┆
0x00fea0…00fec0             20 4d 4f 56 20 45 53 3a 5b 44 49 5d 2c 41 58 09 2a 29 0a 20 20 20 20 20 20 20 29 0a 0a 0a 7b 2d   ┆ MOV ES:[DI],AX *)        )   {-┆
0x00fec0…00fee0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 69 6e 20 50 41 53 43 41 4c 20 3a 20 20 2d 2d 0a 20 20   ┆------------  in PASCAL :  --   ┆
0x00fee0…00ff00             77 72 6b 3a 3d 20 73 75 6d 20 58 4f 52 20 6c 6f 28 64 61 74 61 29 3b 09 09 28 2a 20 20 74 61 6b   ┆wrk:= sum XOR lo(data);  (*  tak┆
0x00ff00…00ff20             65 20 74 68 65 20 6c 6f 77 20 62 79 74 65 20 20 2a 29 0a 20 20 77 72 6b 3a 3d 20 68 69 28 77 72   ┆e the low byte  *)   wrk:= hi(wr┆
0x00ff20…00ff40             6b 29 20 58 4f 52 20 63 72 63 74 61 62 5b 6c 6f 28 77 72 6b 29 5d 3b 0a 0a 20 20 77 72 6b 3a 3d   ┆k) XOR crctab[lo(wrk)];    wrk:=┆
0x00ff40…00ff60             20 77 72 6b 20 58 4f 52 20 68 69 28 64 61 74 61 29 3b 09 09 28 2a 20 20 74 61 6b 65 20 74 68 65   ┆ wrk XOR hi(data);  (*  take the┆
0x00ff60…00ff80             20 68 69 67 68 20 62 79 74 65 20 20 2a 29 0a 20 20 73 75 6d 3a 3d 20 68 69 28 77 72 6b 29 20 58   ┆ high byte  *)   sum:= hi(wrk) X┆
0x00ff80…00ffa0             4f 52 20 63 72 63 74 61 62 5b 6c 6f 28 77 72 6b 29 5d 3b 0a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆OR crctab[lo(wrk)];  -----------┆
0x00ffa0…00ffc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆----------------}   {-----------┆
0x00ffc0…00ffe0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 4d   ┆-----------------------------  M┆
0x00ffe0…010000             52 57 3a 0a 20 20 73 75 6d 3a 3d 73 75 6d 20 58 4f 52 20 6c 6f 28 64 61 74 61 29 3b 20 20 20 20   ┆RW:   sum:=sum XOR lo(data);    ┆
0x010000…010020 (4, 0, 9)   20 20 20 20 20 20 20 28 2a 20 20 73 75 6d 3a 3d 73 75 6d 20 45 58 4f 52 20 28 64 61 74 61 20 64   ┆       (*  sum:=sum EXOR (data d┆
0x010020…010040             69 76 20 32 35 36 29 3b 20 2a 29 0a 20 20 74 65 6d 70 3a 3d 20 63 72 63 74 61 62 5b 6c 6f 28 73   ┆iv 256); *)   temp:= crctab[lo(s┆
0x010040…010060             75 6d 29 5d 3b 0a 20 20 73 75 6d 3a 3d 20 20 68 69 28 73 75 6d 29 3b 20 20 20 20 20 20 20 20 20   ┆um)];   sum:=  hi(sum);         ┆
0x010060…010080             20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 73 75 6d 3a 3d 20 20 73 75 6d 20 64 69 76 20 32 35   ┆           (*  sum:=  sum div 25┆
0x010080…0100a0             36 3b 20 2a 29 0a 20 20 73 75 6d 3a 3d 20 20 73 75 6d 20 58 4f 52 20 74 65 6d 70 3b 0a 2d 2d 2d   ┆6; *)   sum:=  sum XOR temp; ---┆
0x0100a0…0100c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0100c0…0100e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 72 63 31 36 20 20 2a 29   ┆---------}   end;  (*  crc16  *)┆
0x0100e0…010100             0a 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 69 74 5f 63 72 63 74 61 62 20 3b 0a 20 20 28   ┆     Procedure init_crctab ;   (┆
0x010100…010120             2a 20 20 67 6c 6f 62 61 6c 73 3a 20 20 20 63 72 63 74 61 62 20 20 20 2a 29 0a 20 20 63 6f 6e 73   ┆*  globals:   crctab   *)   cons┆
0x010120…010140             74 0a 20 20 20 20 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 20 3d 20 20 24 38 34 30 38 3b 09 09   ┆t      crc16quotient =  $8408;  ┆
0x010140…010160             28 2a 20 20 32 27 31 36 20 2b 20 32 27 31 32 20 2b 20 32 27 35 20 2b 20 31 20 20 20 2a 29 0a 0a   ┆(*  2'16 + 2'12 + 2'5 + 1   *)  ┆
0x010160…010180             20 20 76 61 72 0a 20 20 20 20 20 69 2c 20 6a 2c 0a 20 20 20 20 20 71 2c 20 73 75 6d 3a 20 77 6f   ┆  var      i, j,      q, sum: wo┆
0x010180…0101a0             72 64 3b 0a 0a 20 20 62 65 67 69 6e 0a 20 20 71 3a 3d 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74   ┆rd;    begin   q:= crc16quotient┆
0x0101a0…0101c0             3b 0a 0a 20 20 66 6f 72 20 69 3a 3d 30 20 74 6f 20 32 35 35 20 64 6f 0a 20 20 62 65 67 69 6e 0a   ┆;    for i:=0 to 255 do   begin ┆
0x0101c0…0101e0             20 20 20 20 73 75 6d 3a 3d 20 69 3b 0a 20 20 20 20 66 6f 72 20 6a 3a 3d 31 20 74 6f 20 38 20 64   ┆    sum:= i;     for j:=1 to 8 d┆
0x0101e0…010200             6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 20 28 73 75 6d 20 61 6e 64 20 31   ┆o     begin       if  (sum and 1┆
0x010200…010220 (4, 0, 10)  29 20 3d 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2d 20 20 20 20 20 20 69 66 20 20   ┆) = 0               {-      if  ┆
0x010220…010240             73 75 6d 20 6d 6f 64 20 32 20 3d 20 30 20 2d 7d 0a 20 20 20 20 20 20 74 68 65 6e 20 20 73 75 6d   ┆sum mod 2 = 0 -}       then  sum┆
0x010240…010260             3a 3d 20 73 75 6d 20 53 48 52 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2d 20 20 20 20 20   ┆:= sum SHR 1             {-     ┆
0x010260…010280             20 74 68 65 6e 20 20 73 75 6d 3a 3d 20 73 75 6d 20 64 69 76 20 32 20 2d 7d 0a 20 20 20 20 20 20   ┆ then  sum:= sum div 2 -}       ┆
0x010280…0102a0             65 6c 73 65 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 20 73 75 6d 20 53 48 52   ┆else begin         sum:= sum SHR┆
0x0102a0…0102c0             20 31 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2d 20 20 20 20 20 20 20 20 73 75 6d   ┆ 1;                {-        sum┆
0x0102c0…0102e0             3a 3d 20 73 75 6d 20 64 69 76 20 32 3b 20 2d 7d 0a 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 20 73   ┆:= sum div 2; -}         sum:= s┆
0x0102e0…010300             75 6d 20 58 4f 52 20 71 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20   ┆um XOR q;       end;     end;   ┆
0x010300…010320             20 20 63 72 63 74 61 62 20 5b 69 5d 3a 3d 20 73 75 6d 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a   ┆  crctab [i]:= sum;   end; end; ┆
0x010320…010340             0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6f 6c 64 20 2d 2d 0a 66 75 6e 63 74 69 6f 6e 20 63 72   ┆ (*---------- old -- function cr┆
0x010340…010360             63 31 36 20 28 20 6f 70 2c 20 71 75 6f 74 69 65 6e 74 20 3a 20 77 6f 72 64 29 20 3a 20 77 6f 72   ┆c16 ( op, quotient : word) : wor┆
0x010360…010380             64 3b 0a 20 20 65 78 74 65 72 6e 61 6c 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆d;   external; -----------------┆
0x010380…0103a0             2d 2a 29 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 6b 69   ┆-*)   Procedure  call_error ( ki┆
0x0103a0…0103c0             6e 64 2c 20 6e 6f 2c 20 69 6e 66 20 3a 20 77 6f 72 64 3b 20 74 78 74 20 3a 20 70 61 74 68 73 74   ┆nd, no, inf : word; txt : pathst┆
0x0103c0…0103e0             72 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 6b 69 6e 64 20 3d 20 66 61 74 61 6c 20 74 68   ┆r);   begin   if kind = fatal th┆
0x0103e0…010400             65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 20 66 61 74   ┆en     write ( output, '***  fat┆
0x010400…010420 (4, 0, 11)  61 6c 20 65 72 72 6f 72 3a 20 27 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 77 72 69 74 65 20 28 20   ┆al error: ')   else     write ( ┆
0x010420…010440             6f 75 74 70 75 74 2c 20 27 21 21 20 20 20 77 61 72 6e 69 6e 67 3a 20 27 29 3b 0a 0a 20 20 63 61   ┆output, '!!   warning: ');    ca┆
0x010440…010460             73 65 20 6e 6f 20 6f 66 0a 0a 01 49 20 33 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 01 45 20 33 0a   ┆se no of   I 3 {----------  E 3 ┆
0x010460…010480             20 20 31 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 4e 6f 20 6f 75 74 66   ┆  1:  writeln ( output, 'No outf┆
0x010480…0104a0             69 6c 65 20 73 70 65 63 69 66 69 65 64 2e 27 29 3b 0a 0a 20 20 32 3a 20 20 77 72 69 74 65 6c 6e   ┆ile specified.');    2:  writeln┆
0x0104a0…0104c0             20 28 20 6f 75 74 70 75 74 2c 20 27 45 72 72 6f 72 20 69 6e 20 63 72 6f 73 73 6c 69 6e 6b 20 27   ┆ ( output, 'Error in crosslink '┆
0x0104c0…0104e0             2c 20 69 6e 66 29 3b 0a 0a 20 20 33 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆, inf);    3:  writeln ( output,┆
0x0104e0…010500             20 27 45 72 72 6f 72 20 69 6e 20 63 61 6c 6c 20 6f 66 20 63 72 6f 73 73 6c 69 6e 6b 3b 20 70 61   ┆ 'Error in call of crosslink; pa┆
0x010500…010520             72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c 0a 20 20 20 20 20 20 20 20 27   ┆rameter number ', inf,         '┆
0x010520…010540             3a 20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 2c 20 27 20 20 22 27 2c 20 74 78   ┆:  ', getparam ( inf), '  "', tx┆
0x010540…010560             74 2c 20 27 22 27 29 3b 0a 01 49 20 33 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 01 45 20 33   ┆t, '"');  I 3 ------------}  E 3┆
0x010560…010580             0a 0a 20 20 34 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6c 6c 65 67   ┆    4:  writeln ( output, 'Illeg┆
0x010580…0105a0             61 6c 20 68 65 78 61 64 65 63 69 6d 61 6c 20 6e 75 6d 62 65 72 20 69 6e 20 63 61 6c 6c 3b 20 70   ┆al hexadecimal number in call; p┆
0x0105a0…0105c0             61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c 0a 20 20 20 20 20 20 20 20   ┆arameter number ', inf,         ┆
0x0105c0…0105e0             27 3a 20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 2c 20 27 20 20 22 27 2c 20 74   ┆':  ', getparam ( inf), '  "', t┆
0x0105e0…010600             78 74 2c 20 27 22 27 29 3b 0a 0a 20 20 35 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆xt, '"');    5:  writeln ( outpu┆
0x010600…010620 (4, 0, 12)  74 2c 20 27 42 61 64 20 76 65 72 73 69 6f 6e 2c 20 72 65 63 6f 6d 70 69 6c 65 20 27 2c 20 74 78   ┆t, 'Bad version, recompile ', tx┆
0x010620…010640             74 2c 20 27 2c 20 20 76 65 72 73 69 6f 6e 20 27 2c 20 69 6e 66 2c 0a 09 20 20 20 20 20 27 20 3c   ┆t, ',  version ', inf,       ' <┆
0x010640…010660             3e 20 27 2c 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 29 3b 0a 0a 01 49 20 33 0a 7b   ┆> ', compiler_version );   I 3 {┆
0x010660…010680             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 01 45 20 33 0a 20 20 36 3a 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆----------  E 3   6:  writeln ( ┆
0x010680…0106a0             6f 75 74 70 75 74 2c 20 27 79 65 73 20 6f 72 20 6e 6f 20 65 78 70 65 63 74 65 64 20 61 66 74 65   ┆output, 'yes or no expected afte┆
0x0106a0…0106c0             72 20 22 64 65 73 63 72 2d 22 27 2c 20 74 78 74 29 3b 0a 01 49 20 33 0a 2d 2d 2d 2d 2d 2d 2d 2d   ┆r "descr-"', txt);  I 3 --------┆
0x0106c0…0106e0             2d 2d 2d 2d 7d 0a 01 45 20 33 0a 0a 20 20 37 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆----}  E 3    7:  writeln ( outp┆
0x0106e0…010700             75 74 2c 20 27 49 6c 6c 65 67 61 6c 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 6f 62 6a 65 63 74 20   ┆ut, 'Illegal contents of object ┆
0x010700…010720             6f 72 20 6c 69 62 72 61 72 79 20 66 69 6c 65 20 27 2c 20 69 6e 66 2c 20 27 27 3a 33 2c 20 74 78   ┆or library file ', inf, '':3, tx┆
0x010720…010740             74 29 3b 0a 0a 01 49 20 33 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 01 45 20 33 0a 20 20 38 3a 20   ┆t);   I 3 {----------  E 3   8: ┆
0x010740…010760             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 54 6f 6f 20 6d 61 6e 79 20 6d 6f 64   ┆ writeln ( output, 'Too many mod┆
0x010760…010780             75 6c 65 73 2c 20 28 6d 6f 72 65 20 74 68 61 6e 20 27 2c 20 69 6e 66 2c 20 27 29 27 29 3b 0a 01   ┆ules, (more than ', inf, ')');  ┆
0x010780…0107a0             49 20 33 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 01 45 20 33 0a 0a 20 20 39 3a 20 20 62 65   ┆I 3 ------------}  E 3    9:  be┆
0x0107a0…0107c0             67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6c 6c   ┆gin       writeln ( output, 'Ill┆
0x0107c0…0107e0             65 67 61 6c 20 76 61 6c 75 65 20 6f 66 20 22 73 74 61 72 74 22 70 61 72 61 6d 65 74 65 72 3b 20   ┆egal value of "start"parameter; ┆
0x0107e0…010800             70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 0a 20 20 20 20 20 20 20 20 70 61 72 61   ┆parameter number ',         para┆
0x010800…010820 (4, 0, 13)  6d 5f 69 6e 64 65 78 2c 20 27 2c 20 20 20 76 61 6c 75 65 20 20 48 27 2c 20 74 78 74 2c 20 27 2c   ┆m_index, ',   value  H', txt, ',┆
0x010820…010840             20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 29 29 3b 0a 20   ┆  ', getparam ( param_index));  ┆
0x010840…010860             20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 27 2c 20 73   ┆     writeln ( output, '    ', s┆
0x010860…010880             74 72 68 65 78 20 28 20 73 74 61 72 74 5f 61 64 64 72 2e 62 61 73 65 29 2c 20 27 3a 27 2c 20 73   ┆trhex ( start_addr.base), ':', s┆
0x010880…0108a0             74 72 68 65 78 20 28 20 73 74 61 72 74 5f 61 64 64 72 2e 64 69 73 70 29 2c 0a 20 20 20 20 20 20   ┆trhex ( start_addr.disp),       ┆
0x0108a0…0108c0             20 27 20 3c 20 27 2c 20 73 74 72 68 65 78 20 28 20 74 6f 70 5f 6f 66 5f 62 69 6e 2e 62 61 73 65   ┆ ' < ', strhex ( top_of_bin.base┆
0x0108c0…0108e0             29 2c 20 27 3a 27 2c 20 73 74 72 68 65 78 20 28 20 74 6f 70 5f 6f 66 5f 62 69 6e 2e 64 69 73 70   ┆), ':', strhex ( top_of_bin.disp┆
0x0108e0…010900             29 20 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 31 30 3a 20 77 72 69 74 65 6c 6e 20 28   ┆) );       end;    10: writeln (┆
0x010900…010920             20 6f 75 74 70 75 74 2c 20 27 54 6f 6f 20 6d 61 6e 79 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65   ┆ output, 'Too many formal parame┆
0x010920…010940             74 65 72 73 2c 20 6d 6f 64 75 6c 65 3a 20 27 2c 20 74 78 74 2c 0a 09 20 27 20 20 27 2c 20 69 6e   ┆ters, module: ', txt,   '  ', in┆
0x010940…010960             66 2c 20 27 20 3e 20 27 2c 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 29 3b 0a 0a 20 20 31   ┆f, ' > ', max_obj_params );    1┆
0x010960…010980             31 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 63 6f 6e 73 69 73 74 65   ┆1: writeln ( output, 'Inconsiste┆
0x010980…0109a0             6e 63 79 20 69 6e 20 64 65 73 63 72 69 70 74 6f 72 20 6c 65 6e 67 74 68 20 27 2c 20 69 6e 66 2c   ┆ncy in descriptor length ', inf,┆
0x0109a0…0109c0             20 74 78 74 29 3b 20 20 20 28 2a 20 20 20 6e 61 6d 65 5f 6f 66 5f 6f 62 6a 20 20 2a 29 0a 0a 20   ┆ txt);   (*   name_of_obj  *)   ┆
0x0109c0…0109e0             20 31 34 3a 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆ 14:  begin     writeln ( output┆
0x0109e0…010a00             2c 20 27 22 79 65 73 22 2c 20 22 6e 6f 22 2c 20 6f 72 20 22 79 65 73 2d 3c 6e 75 6d 62 65 72 3e   ┆, '"yes", "no", or "yes-<number>┆
0x010a00…010a20 (4, 0, 14)  22 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72 20 22 70 72 69 6e 74 2d 22 27 29 3b 0a 20 20 20   ┆" expected after "print-"');    ┆
0x010a20…010a40             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 20 70 61 72 61 6d 65   ┆ writeln ( output, '      parame┆
0x010a40…010a60             74 65 72 20 67 69 76 65 6e 3a 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 29 3b 0a   ┆ter given: ', getparam ( inf)); ┆
0x010a60…010a80             20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 31 36 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆      end;    16:  writeln ( out┆
0x010a80…010aa0             70 75 74 2c 20 27 55 6e 6b 6e 6f 77 6e 20 6f 70 74 69 6f 6e 3b 20 70 61 72 61 6d 65 74 65 72 20   ┆put, 'Unknown option; parameter ┆
0x010aa0…010ac0             6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c 0a 20 20 20 20 20 20 20 20 27 3a 20 20 27 2c 20 67 65   ┆number ', inf,         ':  ', ge┆
0x010ac0…010ae0             74 70 61 72 61 6d 20 28 20 69 6e 66 29 29 3b 0a 0a 01 49 20 33 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆tparam ( inf));   I 3 {---------┆
0x010ae0…010b00             2d 0a 01 45 20 33 0a 20 20 31 37 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆-  E 3   17:  writeln ( output, ┆
0x010b00…010b20             27 4e 61 6d 65 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72 20 22 6c 69 62 2d 22 3b 20 70 61 72   ┆'Name expected after "lib-"; par┆
0x010b20…010b40             61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c 0a 20 20 20 20 20 20 20 20 27 3a   ┆ameter number ', inf,         ':┆
0x010b40…010b60             20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 29 3b 0a 01 49 20 33 0a 2d 2d 2d 2d   ┆  ', getparam ( inf));  I 3 ----┆
0x010b60…010b80             2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 01 45 20 33 0a 0a 20 20 31 38 3a 20 20 77 72 69 74 65 6c 6e 20 28   ┆--------}  E 3    18:  writeln (┆
0x010b80…010ba0             20 6f 75 74 70 75 74 2c 20 27 49 6e 63 6f 6e 73 69 73 74 65 6e 63 79 20 69 6e 20 6c 6f 61 64 65   ┆ output, 'Inconsistency in loade┆
0x010ba0…010bc0             72 20 6d 61 70 27 29 3b 0a 0a 20 20 32 30 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆r map');    20:  writeln ( outpu┆
0x010bc0…010be0             74 2c 20 27 79 65 73 20 6f 72 20 6e 6f 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72 20 22 6d 61   ┆t, 'yes or no expected after "ma┆
0x010be0…010c00             70 2d 22 20 27 29 3b 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 32 31 3a 20 20 77 72 69 74 65   ┆p-" '); {----------   21:  write┆
0x010c00…010c20 (4, 0, 15)  6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 79 65 73 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72   ┆ln ( output, 'yes expected after┆
0x010c20…010c40             20 22 62 69 6e 64 2d 22 20 27 29 3b 0a 0a 20 20 32 32 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆ "bind-" ');    22:  writeln ( o┆
0x010c40…010c60             75 74 70 75 74 2c 20 27 22 62 69 6e 64 2e 79 65 73 22 20 72 65 71 75 69 72 65 64 20 62 79 20 72   ┆utput, '"bind.yes" required by r┆
0x010c60…010c80             63 33 35 30 32 2f 32 20 27 29 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 20 20 32 33 3a 20   ┆c3502/2 '); ------------}   23: ┆
0x010c80…010ca0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 66 69 6c 65 3a 20 27 2c 20 6f 62 6a   ┆ writeln ( output, 'file: ', obj┆
0x010ca0…010cc0             5f 66 69 6c 65 5f 6e 61 6d 65 2c 20 27 20 6e 6f 74 20 52 54 50 20 6f 62 6a 65 63 74 20 66 69 6c   ┆_file_name, ' not RTP object fil┆
0x010cc0…010ce0             65 27 29 3b 0a 0a 20 20 32 34 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆e');    24:  writeln ( output, '┆
0x010ce0…010d00             4d 61 78 20 61 76 61 69 6c 61 62 6c 65 20 6d 65 6d 20 66 6f 72 20 63 6f 72 65 69 6d 61 67 65 20   ┆Max available mem for coreimage ┆
0x010d00…010d20             69 73 20 27 2c 20 69 6e 66 2c 20 27 20 3c 20 36 35 35 33 35 20 27 29 3b 0a 0a 20 20 32 35 3a 20   ┆is ', inf, ' < 65535 ');    25: ┆
0x010d20…010d40             20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆ begin        writeln ( output, ┆
0x010d40…010d60             27 49 6c 6c 65 67 61 6c 20 6d 6f 64 75 6c 65 20 69 6e 20 22 73 74 61 72 74 22 70 61 72 61 6d 65   ┆'Illegal module in "start"parame┆
0x010d60…010d80             74 65 72 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 0a 20 20 20 20 20 20 20   ┆ter; parameter number ',        ┆
0x010d80…010da0             20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 2c 20 20 76 61 6c 75 65 20 20 24 27 2c 20 73 74 72   ┆ param_index, ',  value  $', str┆
0x010da0…010dc0             68 65 78 28 69 6e 66 29 2c 20 27 2c 20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29   ┆hex(inf), ',  ', getparam ( inf)┆
0x010dc0…010de0             29 3b 0a 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20   ┆);        writeln ( output, '   ┆
0x010de0…010e00             20 20 20 4d 6f 64 75 6c 65 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 20 24 43 30 20 2e 2e 20 24   ┆   Module should be in  $C0 .. $┆
0x010e00…010e20 (4, 1, 1)   46 45 20 20 27 29 3b 0a 20 20 20 20 20 20 20 65 6e 64 0a 20 20 65 6c 73 65 20 3b 0a 20 20 65 6e   ┆FE  ');        end   else ;   en┆
0x010e20…010e40             64 3b 20 20 28 2a 20 20 63 61 73 65 20 20 2a 29 0a 0a 01 44 20 33 0a 20 20 69 66 20 6b 69 6e 64   ┆d;  (*  case  *)   D 3   if kind┆
0x010e40…010e60             20 3d 20 66 61 74 61 6c 20 74 68 65 6e 20 68 61 6c 74 20 28 20 32 35 34 29 3b 0a 01 45 20 33 0a   ┆ = fatal then halt ( 254);  E 3 ┆
0x010e60…010e80             01 49 20 33 0a 20 20 69 66 20 6b 69 6e 64 20 3d 20 66 61 74 61 6c 20 74 68 65 6e 20 68 61 6c 74   ┆ I 3   if kind = fatal then halt┆
0x010e80…010ea0             20 28 20 31 29 3b 0a 01 45 20 33 0a 20 20 65 6e 64 3b 20 28 2a 20 63 61 6c 6c 5f 65 72 72 6f 72   ┆ ( 1);  E 3   end; (* call_error┆
0x010ea0…010ec0             20 2a 29 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 70 72 6f 63 65 64 75 72 65 20 77 72 69 74   ┆ *)  {----------- procedure writ┆
0x010ec0…010ee0             65 68 65 78 20 28 64 65 63 69 6d 61 6c 2c 20 70 6f 73 20 3a 20 77 6f 72 64 29 3b 0a 62 65 67 69   ┆ehex (decimal, pos : word); begi┆
0x010ee0…010f00             6e 0a 6f 75 74 68 65 78 20 28 6f 75 74 70 75 74 2c 20 64 65 63 69 6d 61 6c 2c 20 70 6f 73 29 3b   ┆n outhex (output, decimal, pos);┆
0x010f00…010f20             0a 65 6e 64 3b 20 28 2a 20 77 72 69 74 65 68 65 78 20 2a 29 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ end; (* writehex *) -----------┆
0x010f20…010f40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 69 6e 5f 6f 70 65   ┆-----------}   Procedure  in_ope┆
0x010f40…010f60             6e 66 69 6c 65 20 28 20 76 61 72 20 70 61 74 68 3a 20 70 61 74 68 73 74 72 29 3b 0a 20 20 62 65   ┆nfile ( var path: pathstr);   be┆
0x010f60…010f80             67 69 6e 0a 20 20 69 66 20 73 63 61 6e 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e   ┆gin   if scan = 1 then     begin┆
0x010f80…010fa0             0a 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 70 61 74 68 29 20 74 68 65 6e 20 20 28 2a 20   ┆     if lookup ( path) then  (* ┆
0x010fa0…010fc0             20 6f 6b 20 20 2a 29 0a 20 20 20 20 65 6c 73 65 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66   ┆ ok  *)     else  call_error ( f┆
0x010fc0…010fe0             61 74 61 6c 2c 20 32 33 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 70 61 74 68 29 3b 0a 20 20   ┆atal, 23, param_index, path);   ┆
0x010fe0…011000             20 20 65 6e 64 3b 0a 20 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65   ┆  end;   open_file ( in_obj_file┆
0x011000…011020 (4, 1, 2)   2c 20 70 61 74 68 2c 20 66 6d 5f 72 65 61 64 20 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 0a 50 72   ┆, path, fm_read );   end;     Pr┆
0x011020…011040             6f 63 65 64 75 72 65 20 20 69 6e 5f 69 64 65 6e 74 69 66 69 65 72 20 28 20 76 61 72 20 69 64 20   ┆ocedure  in_identifier ( var id ┆
0x011040…011060             3a 20 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 72 65 61 64 61 6c 66   ┆: identifier);   begin   readalf┆
0x011060…011080             61 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 69 64 29 3b 0a 20 20 65 6e 64 3b 20 28 2a 20   ┆a ( in_obj_file, id);   end; (* ┆
0x011080…0110a0             69 6e 5f 69 64 65 6e 74 69 66 69 65 72 20 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e   ┆in_identifier *)    Procedure in┆
0x0110a0…0110c0             5f 70 61 72 61 6d 73 20 28 20 63 6f 75 6e 74 3a 20 77 6f 72 64 3b 20 76 61 72 20 70 61 72 6d 3a   ┆_params ( count: word; var parm:┆
0x0110c0…0110e0             20 70 61 72 61 6d 5f 64 65 73 63 72 3b 20 76 61 72 20 6e 61 6d 65 3a 20 61 6c 66 61 29 3b 0a 28   ┆ param_descr; var name: alfa); (┆
0x0110e0…011100             2a 20 72 65 61 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73   ┆* read parameters,  no_of_params┆
0x011100…011120             20 69 73 20 73 65 74 20 74 6f 20 63 6f 75 6e 74 20 20 2a 29 0a 20 20 76 61 72 20 20 70 3a 20 77   ┆ is set to count  *)   var  p: w┆
0x011120…011140             6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 69 6c 6c 63 68 61 72 20 28 20 70 61 72 6d 2c 20   ┆ord;   begin   fillchar ( parm, ┆
0x011140…011160             73 69 7a 65 6f 66 20 28 20 70 61 72 6d 29 2c 20 30 29 3b 0a 20 20 77 69 74 68 20 70 61 72 6d 20   ┆sizeof ( parm), 0);   with parm ┆
0x011160…011180             64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 63 6f 75 6e 74 20 3e 20 6d 61 78 5f   ┆do     begin     if count > max_┆
0x011180…0111a0             6f 62 6a 5f 70 61 72 61 6d 73 20 74 68 65 6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72   ┆obj_params then       call_error┆
0x0111a0…0111c0             20 28 20 66 61 74 61 6c 2c 20 31 30 2c 20 63 6f 75 6e 74 2c 20 73 74 72 61 6c 66 61 20 28 20 6e   ┆ ( fatal, 10, count, stralfa ( n┆
0x0111c0…0111e0             61 6d 65 29 20 29 3b 0a 20 20 20 20 70 61 72 61 6d 63 6f 75 6e 74 3a 3d 20 63 6f 75 6e 74 3b 0a   ┆ame) );     paramcount:= count; ┆
0x0111e0…011200             20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20   ┆    for p := 1 to count do      ┆
0x011200…011220 (4, 1, 3)   77 69 74 68 20 70 61 72 61 6d 5b 70 5d 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆with param[p] do       begin    ┆
0x011220…011240             20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61   ┆   readinteger ( in_obj_file, pa┆
0x011240…011260             72 61 6d 5f 74 79 70 65 29 3b 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69   ┆ram_type);       readinteger ( i┆
0x011260…011280             6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 72 61 6d 5f 73 69 7a 65 29 3b 0a 20 20 20 20 20 20 65   ┆n_obj_file, param_size);       e┆
0x011280…0112a0             6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 65   ┆nd;     end;   end;   Function e┆
0x0112a0…0112c0             71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 28 20 76 61 72 20 61 2c 20 62 3a 20 70 61 72 61   ┆qual_paramlists ( var a, b: para┆
0x0112c0…0112e0             6d 5f 64 65 73 63 72 29 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 76 61 72 0a 20 20 20 20 70 3a 20   ┆m_descr): boolean;   var     p: ┆
0x0112e0…011300             69 6e 74 65 67 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69   ┆integer;   begin   equal_paramli┆
0x011300…011320             73 74 73 20 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 61 73 73 75 6d 65 20 65 76 65 72 79 74 68 69   ┆sts := true;  (* assume everythi┆
0x011320…011340             6e 67 20 6f 6b 20 2a 29 0a 20 20 77 69 74 68 20 61 20 64 6f 0a 20 20 20 20 69 66 20 70 61 72 61   ┆ng ok *)   with a do     if para┆
0x011340…011360             6d 63 6f 75 6e 74 20 3c 3e 20 62 2e 70 61 72 61 6d 63 6f 75 6e 74 20 74 68 65 6e 0a 20 20 20 20   ┆mcount <> b.paramcount then     ┆
0x011360…011380             20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20   ┆  equal_paramlists := false     ┆
0x011380…0113a0             65 6c 73 65 0a 20 20 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 63 6f   ┆else       for p := 1 to paramco┆
0x0113a0…0113c0             75 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20 77 69 74 68 20 70 61 72 61 6d 5b 70 5d 20 64 6f 0a   ┆unt do         with param[p] do ┆
0x0113c0…0113e0             20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 73 69 7a 65 20 3d 20 62 2e 70 61 72 61 6d   ┆         if param_size = b.param┆
0x0113e0…011400             5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65   ┆[p].param_size then           be┆
0x011400…011420 (4, 1, 4)   67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 62   ┆gin           if param_type <> b┆
0x011420…011440             2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20   ┆.param[p].param_type then       ┆
0x011440…011460             20 20 20 20 63 61 73 65 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 74 79 70 65 20 6f   ┆    case b.param[p].param_type o┆
0x011460…011480             66 0a 63 6f 64 65 5f 76 61 72 5f 70 74 72 20 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20   ┆f code_var_ptr :             if ┆
0x011480…0114a0             70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 69 6e 73 70 65 63 5f 70 74 72 20 20 74   ┆param_type <> code_inspec_ptr  t┆
0x0114a0…0114c0             68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f   ┆hen equal_paramlists:= false; co┆
0x0114c0…0114e0             64 65 5f 76 61 72 5f 73 79 73 72 65 63 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61   ┆de_var_sysrec:             if pa┆
0x0114e0…011500             72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 72 20 74 68 65   ┆ram_type <> code_inspec_sysr the┆
0x011500…011520             6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65   ┆n equal_paramlists:= false; code┆
0x011520…011540             5f 76 61 72 5f 73 79 73 61 72 72 79 20 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61   ┆_var_sysarry :             if pa┆
0x011540…011560             72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 61 20 74 68 65   ┆ram_type <> code_inspec_sysa the┆
0x011560…011580             6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65   ┆n equal_paramlists:= false; code┆
0x011580…0115a0             5f 76 61 72 5f 73 69 6d 70 6c 65 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61   ┆_var_simple:             if para┆
0x0115a0…0115c0             6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 69 6d 20 20 74 68 65 6e 20   ┆m_type <> code_inspec_sim  then ┆
0x0115c0…0115e0             65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 69   ┆equal_paramlists:= false; code_i┆
0x0115e0…011600             6e 73 70 65 63 5f 70 74 72 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f   ┆nspec_ptr:             if param_┆
0x011600…011620 (4, 1, 5)   74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 76 61 72 5f 70 74 72 20 20 20 20 20 74 68 65 6e 20 65 71   ┆type <> code_var_ptr     then eq┆
0x011620…011640             75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 69 6e 73   ┆ual_paramlists:= false; code_ins┆
0x011640…011660             70 65 63 5f 73 79 73 72 3a 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79   ┆pec_sysr:            if param_ty┆
0x011660…011680             70 65 20 3c 3e 20 63 6f 64 65 5f 76 61 72 5f 73 79 73 72 65 63 20 20 74 68 65 6e 20 65 71 75 61   ┆pe <> code_var_sysrec  then equa┆
0x011680…0116a0             6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 69 6e 73 70 65   ┆l_paramlists:= false; code_inspe┆
0x0116a0…0116c0             63 5f 73 79 73 61 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70   ┆c_sysa:             if param_typ┆
0x0116c0…0116e0             65 20 3c 3e 20 63 6f 64 65 5f 76 61 72 5f 73 79 73 61 72 72 79 20 74 68 65 6e 20 65 71 75 61 6c   ┆e <> code_var_sysarry then equal┆
0x0116e0…011700             5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63   ┆_paramlists:= false; code_inspec┆
0x011700…011720             5f 73 69 6d 3a 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c   ┆_sim:            if param_type <┆
0x011720…011740             3e 20 63 6f 64 65 5f 76 61 72 5f 73 69 6d 70 6c 65 20 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61   ┆> code_var_simple  then equal_pa┆
0x011740…011760             72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 65 6c 73 65 20 20 20 20 20 20   ┆ramlists:= false;     else      ┆
0x011760…011780             20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20   ┆  equal_paramlists:= false;     ┆
0x011780…0117a0             20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 61 73 65 20 20 2a 29 0a 0a 20 20 20 20 20   ┆       end;  (*  case  *)       ┆
0x0117a0…0117c0             20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 73 69 7a 65 20 3d 20 20 20 2a 29 0a 20 20 20 20 20 20   ┆     end  (*  size =   *)       ┆
0x0117c0…0117e0             20 20 20 20 65 6c 73 65 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 66 61   ┆    else  equal_paramlists := fa┆
0x0117e0…011800             6c 73 65 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 69 6e   ┆lse;   end;    Procedure  out_in┆
0x011800…011820 (4, 1, 6)   74 65 67 65 72 20 28 20 69 6e 74 65 6c 20 3a 20 77 6f 72 64 20 29 3b 0a 20 20 62 65 67 69 6e 0a   ┆teger ( intel : word );   begin ┆
0x011820…011840             20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c 20 69 6e 74   ┆  writeinteger ( outbinfile, int┆
0x011840…011860             65 6c 20 29 3b 0a 20 20 20 28 2a 2d 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f   ┆el );    (*- if current_version_┆
0x011860…011880             6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62   ┆number = compiler_c_version_numb┆
0x011880…0118a0             65 72 20 74 68 65 6e 20 20 2d 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 63 72 63 31 36   ┆er then  -*)     begin     crc16┆
0x0118a0…0118c0             20 28 20 73 75 6d 2c 20 73 77 61 70 20 28 20 69 6e 74 65 6c 29 29 3b 0a 20 20 20 20 28 2a 2d 2d   ┆ ( sum, swap ( intel));     (*--┆
0x0118c0…0118e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 20 20 73 75 6d 3a 3d 20 63 72 63 31 36 20 28 20 63 72 63 31   ┆---------     sum:= crc16 ( crc1┆
0x0118e0…011900             36 20 28 20 73 75 6d 20 78 6f 72 20 68 69 28 69 29 2c 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74   ┆6 ( sum xor hi(i), crc16quotient┆
0x011900…011920             29 0a 20 20 20 20 78 6f 72 20 6c 6f 28 69 29 2c 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 20 29   ┆)     xor lo(i), crc16quotient )┆
0x011920…011940             3b 0a 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 20 69 6e 63 20 28 20 73   ┆;     ------------*)     inc ( s┆
0x011940…011960             75 6d 63 6f 75 6e 74 29 3b 0a 20 20 20 20 69 66 20 73 75 6d 63 6f 75 6e 74 20 3e 20 73 75 6d 77   ┆umcount);     if sumcount > sumw┆
0x011960…011980             6f 72 64 73 0a 20 20 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 20 20 73 75 6d 63 61 74   ┆ords     then begin       sumcat┆
0x011980…0119a0             61 6c 6f 67 5b 73 75 6d 69 6e 64 65 78 5d 20 3a 3d 20 6e 6f 74 20 73 77 61 70 20 28 20 73 75 6d   ┆alog[sumindex] := not swap ( sum┆
0x0119a0…0119c0             20 29 3b 0a 20 20 20 20 20 20 69 6e 63 20 28 20 73 75 6d 69 6e 64 65 78 29 3b 0a 20 20 20 20 20   ┆ );       inc ( sumindex);      ┆
0x0119c0…0119e0             20 69 66 20 73 75 6d 69 6e 64 65 78 20 3e 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 74 68 65 6e 0a 20   ┆ if sumindex > no_of_sums then  ┆
0x0119e0…011a00             20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 20 20 73 75   ┆       writeln ( output, '**  su┆
0x011a00…011a20 (4, 1, 7)   6d 69 6e 64 65 78 20 69 6e 20 6f 75 74 20 69 6e 74 67 20 3a 20 27 2c 20 73 75 6d 69 6e 64 65 78   ┆mindex in out intg : ', sumindex┆
0x011a20…011a40             29 3b 0a 20 20 20 20 20 20 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 20 20 20 20 20 20 73 75 6d   ┆);       sumcount:= 1;       sum┆
0x011a40…011a60             3a 3d 20 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64   ┆:=  all_ones;       end;     end┆
0x011a60…011a80             3b 0a 20 20 65 6e 64 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 61 64 64 72 20 28   ┆;   end;   procedure  out_addr (┆
0x011a80…011aa0             20 61 20 3a 20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6f 75 74 5f 69 6e   ┆ a : address );   begin   out_in┆
0x011aa0…011ac0             74 65 67 65 72 20 28 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 61 2e 62 61 73 65 20 73 68   ┆teger ( first_mem_no + a.base sh┆
0x011ac0…011ae0             6c 20 31 20 29 3b 0a 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 61 2e 64 69 73 70 20 29 0a   ┆l 1 );   out_integer ( a.disp ) ┆
0x011ae0…011b00             20 20 65 6e 64 3b 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 69 64 65 6e 74 69 66   ┆  end;    procedure  out_identif┆
0x011b00…011b20             69 65 72 20 28 20 69 64 20 3a 20 61 6c 66 61 20 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 70 20 20   ┆ier ( id : alfa );   var     p  ┆
0x011b20…011b40             3a 20 77 6f 72 64 3b 0a 20 20 20 20 69 61 72 3a 20 20 61 72 72 61 79 20 5b 20 31 2e 2e 36 20 5d   ┆: word;     iar:  array [ 1..6 ]┆
0x011b40…011b60             20 6f 66 20 77 6f 72 64 20 20 61 62 73 6f 6c 75 74 65 20 69 64 3b 0a 20 20 62 65 67 69 6e 0a 20   ┆ of word  absolute id;   begin  ┆
0x011b60…011b80             20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 36 20 64 6f 20 6f 75 74 5f 69 6e 74 65 67 65 72 20   ┆ for p := 1 to 6 do out_integer ┆
0x011b80…011ba0             28 20 73 77 61 70 20 28 20 69 61 72 5b 70 5d 29 20 29 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f   ┆( swap ( iar[p]) )   end;    Pro┆
0x011ba0…011bc0             63 65 64 75 72 65 20 6f 75 74 5f 73 75 6d 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 70 20 20 20 3a   ┆cedure out_sum;   var      p   :┆
0x011bc0…011be0             20 77 6f 72 64 3b 0a 20 20 20 20 20 64 61 74 20 3a 20 20 63 6f 64 65 64 5f 64 61 74 65 3b 0a 20   ┆ word;      dat :  coded_date;  ┆
0x011be0…011c00             20 20 20 20 74 69 6d 20 3a 20 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 20 20 20 20 20 6e 6f 77 20   ┆    tim :  coded_time;      now ┆
0x011c00…011c20 (4, 1, 8)   3a 20 20 64 61 74 65 74 69 6d 65 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 6c 61 73 74 5f 73   ┆:  datetime;   begin   if last_s┆
0x011c20…011c40             63 61 6e 20 20 28 2a 2d 20 61 6e 64 20 28 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75   ┆can  (*- and (current_version_nu┆
0x011c40…011c60             6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72   ┆mber = compiler_c_version_number┆
0x011c60…011c80             29 20 2d 2a 29 0a 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67   ┆) -*)   then begin     out_integ┆
0x011c80…011ca0             65 72 20 28 20 73 75 6d 5f 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 29 3b 0a 20 20   ┆er ( sum_descriptor_length );   ┆
0x011ca0…011cc0             20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 31 20 29 3b 0a 20 20 20 20 6f 75 74 5f 69 6e 74   ┆  out_integer ( 1 );     out_int┆
0x011cc0…011ce0             65 67 65 72 20 28 20 73 75 6d 62 79 74 65 73 20 29 3b 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67   ┆eger ( sumbytes );     out_integ┆
0x011ce0…011d00             65 72 20 28 20 34 20 2b 20 32 2a 6e 6f 5f 6f 66 5f 73 75 6d 73 20 29 3b 0a 20 20 20 20 6f 75 74   ┆er ( 4 + 2*no_of_sums );     out┆
0x011d00…011d20             5f 69 6e 74 65 67 65 72 20 28 20 73 75 6d 6b 69 6e 64 20 29 3b 0a 20 20 20 20 28 2a 20 6f 75 74   ┆_integer ( sumkind );     (* out┆
0x011d20…011d40             70 75 74 20 64 61 74 65 20 61 6e 64 20 74 69 6d 65 20 6f 66 20 63 72 6f 73 73 6c 69 6e 6b 20 2a   ┆put date and time of crosslink *┆
0x011d40…011d60             29 0a 20 20 20 20 67 65 74 63 6c 6f 63 6b 20 28 20 6e 6f 77 29 3b 0a 20 20 20 20 64 61 74 65 5f   ┆)     getclock ( now);     date_┆
0x011d60…011d80             61 6e 64 5f 74 69 6d 65 5f 74 6f 5f 72 63 33 35 30 32 20 28 20 6e 6f 77 2c 20 64 61 74 2c 20 74   ┆and_time_to_rc3502 ( now, dat, t┆
0x011d80…011da0             69 6d 29 3b 0a 20 20 20 20 28 2a 20 20 20 20 20 20 63 6c 6f 63 6b 2e 74 69 6d 65 2e 63 6f 6d 70   ┆im);     (*      clock.time.comp┆
0x011da0…011dc0             69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 3a 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69   ┆iler_version := compiler_c_versi┆
0x011dc0…011de0             6f 6e 5f 6e 75 6d 62 65 72 3b 20 20 2a 29 0a 20 20 20 20 74 69 6d 3a 3d 20 62 6f 6f 74 65 72 5f   ┆on_number;  *)     tim:= booter_┆
0x011de0…011e00             76 65 72 73 69 6f 6e 20 73 68 6c 20 31 31 20 2b 20 74 69 6d 3b 0a 20 20 20 20 69 66 20 64 65 62   ┆version shl 11 + tim;     if deb┆
0x011e00…011e20 (4, 1, 9)   75 67 33 20 74 68 65 6e 20 20 20 20 20 20 20 28 2a 20 20 6f 6e 6c 79 20 66 6f 72 20 64 65 62 75   ┆ug3 then       (*  only for debu┆
0x011e20…011e40             67 20 20 2a 29 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 64 61 74 3a 3d 20 24 42   ┆g  *)       begin       dat:= $B┆
0x011e40…011e60             33 30 34 3b 0a 20 20 20 20 20 20 74 69 6d 3a 3d 20 24 35 32 43 34 3b 0a 20 20 20 20 20 20 65 6e   ┆304;       tim:= $52C4;       en┆
0x011e60…011e80             64 3b 0a 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 64 61 74 29 3b 0a 20 20 20 20   ┆d;      out_integer ( dat);     ┆
0x011e80…011ea0             6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 74 69 6d 29 3b 0a 20 20 20 20 73 75 6d 63 61 74 61 6c   ┆out_integer ( tim);     sumcatal┆
0x011ea0…011ec0             6f 67 5b 73 75 6d 69 6e 64 65 78 5d 20 3a 3d 20 6e 6f 74 20 73 77 61 70 20 28 73 75 6d 20 29 3b   ┆og[sumindex] := not swap (sum );┆
0x011ec0…011ee0             0a 0a 20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e   ┆      if debug3 then       begin┆
0x011ee0…011f00             0a 20 20 20 20 20 20 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 35 20 64 6f 20 20 77 72 69 74 65   ┆        for p:= 1 to 5 do  write┆
0x011f00…011f20             6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 73 75 6d 20 27 2c 20 70 3a 38 2c 20 73 74 72   ┆ln ( output, '   sum ', p:8, str┆
0x011f20…011f40             68 65 78 20 28 20 73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 29 3a 38 29 3b 0a 20 20 20 20 20 20 65   ┆hex ( sumcatalog[p]):8);       e┆
0x011f40…011f60             6e 64 3b 0a 0a 20 20 20 20 66 6f 72 20 70 3a 3d 31 20 74 6f 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20   ┆nd;      for p:=1 to no_of_sums ┆
0x011f60…011f80             64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 69 6e 74 65 67 65   ┆do       begin       writeintege┆
0x011f80…011fa0             72 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c 20 73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 20 29 3b   ┆r ( outbinfile, sumcatalog[p] );┆
0x011fa0…011fc0             0a 20 20 20 20 20 20 73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 3a 3d 20 61 6c 6c 5f 6f 6e 65 73 3b   ┆       sumcatalog[p]:= all_ones;┆
0x011fc0…011fe0             0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 20 20   ┆       end;     sumcount:= 1;   ┆
0x011fe0…012000             20 20 73 75 6d 3a 3d 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20   ┆  sum:= all_ones;     end;  (*  ┆
0x012000…012020 (4, 1, 10)  6c 61 73 74 20 73 63 61 6e 20 20 2a 29 0a 20 20 73 75 6d 69 6e 64 65 78 20 3a 3d 20 31 3b 0a 20   ┆last scan  *)   sumindex := 1;  ┆
0x012020…012040             20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 65 6e 64 3b 0a 20 20 62   ┆ end;    Procedure  out_end;   b┆
0x012040…012060             65 67 69 6e 0a 20 20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3c 3e 20 30 20 74 68 65 6e 0a   ┆egin   if undef_count <> 0 then ┆
0x012060…012080             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 72 65 77 72 69 74 65 20 28 20 6f 75 74 62 69 6e 66 69   ┆    begin     rewrite ( outbinfi┆
0x012080…0120a0             6c 65 2c 20 31 29 3b 09 28 2a 20 65 6d 70 74 79 20 6f 75 74 70 75 74 20 2a 29 0a 20 20 20 20 69   ┆le, 1); (* empty output *)     i┆
0x0120a0…0120c0             6f 63 68 65 63 6b 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 29 0a 20 20 20 20 65 6e 64 0a 20 20 65   ┆ocheck ( outbinfile)     end   e┆
0x0120c0…0120e0             6c 73 65 0a 20 20 20 20 6f 75 74 5f 73 75 6d 3b 0a 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65   ┆lse     out_sum;   if debug3 the┆
0x0120e0…012100             6e 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 20 77 72 69 74 65 73 20 20 24 30 30 20   ┆n write ( output, ' writes  $00 ┆
0x012100…012120             27 29 3b 0a 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c   ┆');   writeinteger ( outbinfile,┆
0x012120…012140             20 73 74 6f 70 5f 6d 61 72 6b 29 3b 0a 0a 20 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 6f 75 74   ┆ stop_mark);    close_file ( out┆
0x012140…012160             62 69 6e 66 69 6c 65 20 29 3b 0a 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74   ┆binfile );   if debug3 then writ┆
0x012160…012180             65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 24 30 30 20 20 61 6e 64 20 63 6c 6f 73 65 2e 20 27   ┆eln ( output, '$00  and close. '┆
0x012180…0121a0             29 3b 0a 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 5f 61 64 64 72 20   ┆);    end;    Function str_addr ┆
0x0121a0…0121c0             28 20 61 64 3a 20 61 64 64 72 65 73 73 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 76 61 72 20 20 20   ┆( ad: address): string;   var   ┆
0x0121c0…0121e0             20 6e 75 6c 6e 75 6c 20 3a 20 20 73 74 72 69 6e 67 5b 32 5d 3b 0a 20 20 62 65 67 69 6e 0a 20 20   ┆ nulnul :  string[2];   begin   ┆
0x0121e0…012200             77 69 74 68 20 61 64 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 64 69 73 70   ┆with ad do     begin     if disp┆
0x012200…012220 (4, 1, 11)  20 3c 3d 20 24 46 46 20 74 68 65 6e 20 6e 75 6c 6e 75 6c 3a 3d 20 27 30 30 27 20 65 6c 73 65 20   ┆ <= $FF then nulnul:= '00' else ┆
0x012220…012240             6e 75 6c 6e 75 6c 3a 3d 20 27 27 3b 0a 20 20 20 20 73 74 72 5f 61 64 64 72 3a 3d 20 73 74 72 68   ┆nulnul:= '';     str_addr:= strh┆
0x012240…012260             65 78 20 28 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 62 61 73 65 20 73 68 6c 20 31 29 20   ┆ex ( first_mem_no + base shl 1) ┆
0x012260…012280             2b 20 27 2e 27 0a 20 20 20 20 20 2b 20 6e 75 6c 6e 75 6c 20 2b 20 73 74 72 68 65 78 20 28 20 64   ┆+ '.'      + nulnul + strhex ( d┆
0x012280…0122a0             69 73 70 29 3b 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72   ┆isp);     end   end;    Procedur┆
0x0122a0…0122c0             65 20 70 72 69 6e 74 5f 69 74 65 6d 73 20 3b 0a 20 20 28 2a 20 70 72 69 6e 74 20 61 6c 6c 20 75   ┆e print_items ;   (* print all u┆
0x0122c0…0122e0             6e 64 65 66 69 6e 65 64 20 69 74 65 6d 73 20 20 2a 29 0a 20 20 62 65 67 69 6e 0a 20 20 63 6c 65   ┆ndefined items  *)   begin   cle┆
0x0122e0…012300             61 72 6b 65 79 20 28 20 69 6e 78 66 29 3b 0a 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20   ┆arkey ( inxf);   inc ( logno);  ┆
0x012300…012320             20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f   ┆ if debug7 then     writeln ( lo┆
0x012320…012340             67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 43 6c 65 61 72 6b 65 79 20 26 31 40 22 20 20   ┆g, '#', logno, '$Clearkey &1@"  ┆
0x012340…012360             2d 3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆->', success);   writeln ( outpu┆
0x012360…012380             74 29 3b 0a 0a 20 20 72 65 70 65 61 74 0a 20 20 20 20 6e 65 78 74 6b 65 79 20 28 20 69 6e 78 66   ┆t);    repeat     nextkey ( inxf┆
0x012380…0123a0             2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20   ┆, drn, key);     inc ( logno);  ┆
0x0123a0…0123c0             20 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20   ┆   if debug7 then       writeln ┆
0x0123c0…0123e0             28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 4e 65 78 74 6b 65 79 20 26 27 2c   ┆( log, '#', logno, '$Nextkey &',┆
0x0123e0…012400             20 64 72 6e 2c 20 27 40 27 2c 20 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73 73   ┆ drn, '@', key, '"  ->', success┆
0x012400…012420 (4, 1, 12)  29 3b 0a 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67   ┆);     if success then       beg┆
0x012420…012440             69 6e 0a 20 20 20 20 20 20 67 65 74 72 65 63 20 28 20 64 61 74 66 2c 20 64 72 6e 2c 20 69 74 65   ┆in       getrec ( datf, drn, ite┆
0x012440…012460             6d 29 3b 0a 20 20 20 20 20 20 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 20 20 20 20 20 20 20 20 69   ┆m);       with item do         i┆
0x012460…012480             66 20 73 74 61 74 65 20 3d 20 75 6e 64 65 66 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62   ┆f state = undef then           b┆
0x012480…0124a0             65 67 69 6e 0a 09 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72   ┆egin    writeln ( output, '':mar┆
0x0124a0…0124c0             67 69 6e 2c 20 27 2a 2a 2a 20 20 27 2c 20 6b 65 79 2c 20 27 20 3a 20 20 6e 6f 74 20 64 65 66 69   ┆gin, '***  ', key, ' :  not defi┆
0x0124c0…0124e0             6e 65 64 2c 20 20 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 75 73 65 64 20 62 79 20 27 2c 20 75   ┆ned,  ',           'used by ', u┆
0x0124e0…012500             73 65 72 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 65 6e   ┆sername);           end;      en┆
0x012500…012520             64 0a 0a 20 20 75 6e 74 69 6c 20 6e 6f 74 20 73 75 63 63 65 73 73 3b 0a 0a 20 20 69 66 20 64 65   ┆d    until not success;    if de┆
0x012520…012540             62 75 67 37 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 6c 6f 67 29 3b 0a 01 44 20 33 0a 20 20 6d   ┆bug7 then close ( log);  D 3   m┆
0x012540…012560             79 5f 65 78 63 6f 64 65 3a 3d 20 31 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20   ┆y_excode:= 1;                (* ┆
0x012560…012580             20 74 68 69 73 20 69 73 20 61 20 77 61 72 6e 69 6e 67 20 6f 6e 6c 79 20 20 20 2a 29 0a 01 45 20   ┆ this is a warning only   *)  E ┆
0x012580…0125a0             33 0a 01 49 20 33 0a 20 20 6d 79 5f 65 78 63 6f 64 65 3a 3d 20 31 3b 20 20 20 20 20 20 20 20 20   ┆3  I 3   my_excode:= 1;         ┆
0x0125a0…0125c0             20 20 20 20 20 20 20 28 2a 20 20 74 68 69 73 20 73 65 74 73 20 65 72 72 6f 72 6c 65 76 65 6c 20   ┆       (*  this sets errorlevel ┆
0x0125c0…0125e0             31 20 20 20 2a 29 0a 01 45 20 33 0a 20 20 65 6e 64 3b 20 28 2a 20 70 72 69 6e 74 5f 69 74 65 6d   ┆1   *)  E 3   end; (* print_item┆
0x0125e0…012600             73 20 20 2a 29 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 70 72 69 6e 74 5f 6d 61 70 20 28 20 76 61   ┆s  *)   Procedure print_map ( va┆
0x012600…012620 (4, 1, 13)  72 20 69 74 65 6d 3a 20 69 74 65 6d 5f 72 65 63 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 70 20   ┆r item: item_rec);   var      p ┆
0x012620…012640             3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 70 72 69 6e 74 5f 68 65 61 64 69   ┆: word;   begin   if print_headi┆
0x012640…012660             6e 67 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆ng then     begin     writeln ( ┆
0x012660…012680             6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆output);     writeln ( output, '┆
0x012680…0126a0             27 3a 6d 61 72 67 69 6e 2c 0a 20 20 27 20 20 6b 69 6e 64 20 20 20 20 20 20 6e 61 6d 65 20 20 20   ┆':margin,   '  kind      name   ┆
0x0126a0…0126c0             20 20 20 20 20 20 20 20 64 61 74 65 20 20 20 20 74 69 6d 65 20 20 20 20 64 65 73 63 72 20 20 20   ┆        date    time    descr   ┆
0x0126c0…0126e0             20 63 6f 64 65 20 20 20 6c 65 6e 67 74 68 28 68 65 78 29 27 29 3b 0a 20 20 20 20 77 72 69 74 65   ┆ code   length(hex)');     write┆
0x0126e0…012700             6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 0a 20 20 27 2d 2d 2d 2d 2d   ┆ln ( output, '':margin,   '-----┆
0x012700…012720             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x012740…012760             2d 27 29 3b 0a 20 20 20 20 70 72 69 6e 74 5f 68 65 61 64 69 6e 67 20 3a 3d 20 66 61 6c 73 65 3b   ┆-');     print_heading := false;┆
0x012760…012780             0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 20 20 62 65 67 69   ┆     end;    with item do   begi┆
0x012780…0127a0             6e 0a 20 20 63 61 73 65 20 68 65 61 64 2e 6b 69 6e 64 20 6f 66 0a 20 20 31 3a 20 20 77 72 69 74   ┆n   case head.kind of   1:  writ┆
0x0127a0…0127c0             65 20 28 20 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 50 52 4f 47 52 41 4d   ┆e (  output, '':margin, 'PROGRAM┆
0x0127c0…0127e0             20 20 20 27 29 3b 0a 20 20 32 3a 20 20 77 72 69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20 27 27   ┆   ');   2:  write (  output, ''┆
0x0127e0…012800             3a 6d 61 72 67 69 6e 2c 20 27 50 52 4f 43 45 44 55 52 45 20 27 29 3b 0a 20 20 33 3a 20 20 77 72   ┆:margin, 'PROCEDURE ');   3:  wr┆
0x012800…012820 (4, 1, 14)  69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 46 55 4e 43 54   ┆ite (  output, '':margin, 'FUNCT┆
0x012820…012840             49 4f 4e 20 20 27 29 3b 0a 20 20 36 3a 20 20 77 72 69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20   ┆ION  ');   6:  write (  output, ┆
0x012840…012860             27 27 3a 6d 61 72 67 69 6e 2c 20 27 44 41 54 41 20 20 20 20 20 20 27 29 3b 0a 20 20 65 6e 64 3b   ┆'':margin, 'DATA      ');   end;┆
0x012860…012880             0a 0a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 61 6c 66 61 20 28 20 68 65   ┆    write ( output, stralfa ( he┆
0x012880…0128a0             61 64 2e 6e 61 6d 65 29 2c 20 27 27 3a 32 29 3b 0a 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 64 61   ┆ad.name), '':2);   if compile_da┆
0x0128a0…0128c0             74 65 20 73 68 72 20 39 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75   ┆te shr 9 > 0 then     write ( ou┆
0x0128c0…0128e0             74 70 75 74 2c 20 73 74 72 64 61 74 65 20 28 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 29 2c 20 27   ┆tput, strdate ( compile_date), '┆
0x0128e0…012900             3a 27 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆:')   else     write ( output, '┆
0x012900…012920             20 20 2e 2e 2e 2e 2e 20 27 3a 31 31 29 3b 0a 0a 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 74 69 6d   ┆  ..... ':11);    if compile_tim┆
0x012920…012940             65 20 73 68 72 20 31 31 20 3c 3e 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 74 68 65   ┆e shr 11 <> compiler_version the┆
0x012940…012960             6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 3f 27 2c 20 63 6f 6d 70 69   ┆n     write ( output, '?', compi┆
0x012960…012980             6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 2c 20 27 3f 27 29 0a 20 20 65 6c 73 65 0a 20 20 20 20   ┆le_time shr 11, '?')   else     ┆
0x012980…0129a0             77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 74 69 6d 65 20 28 20 63 6f 6d 70 69 6c   ┆write ( output, strtime ( compil┆
0x0129a0…0129c0             65 5f 74 69 6d 65 29 29 3b 0a 0a 20 20 69 66 20 64 65 73 63 72 5f 79 65 73 20 74 68 65 6e 0a 20   ┆e_time));    if descr_yes then  ┆
0x0129c0…0129e0             20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 33 2c 20 73 74 72 5f 61 64 64   ┆   write ( output, '':3, str_add┆
0x0129e0…012a00             72 20 28 20 64 5f 61 64 64 72 29 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 77 72 69 74 65 20 28 20   ┆r ( d_addr))   else     write ( ┆
0x012a00…012a20 (4, 1, 15)  6f 75 74 70 75 74 2c 20 27 27 3a 33 2c 20 27 27 3a 37 29 3b 0a 0a 20 20 77 72 69 74 65 6c 6e 20   ┆output, '':3, '':7);    writeln ┆
0x012a20…012a40             28 20 6f 75 74 70 75 74 2c 20 27 27 3a 32 2c 20 73 74 72 5f 61 64 64 72 20 28 20 63 6f 64 65 5f   ┆( output, '':2, str_addr ( code_┆
0x012a40…012a60             61 64 64 72 29 2c 20 27 27 3a 32 2c 0a 20 20 20 20 20 20 73 74 72 68 65 78 20 28 20 74 6f 70 5f   ┆addr), '':2,       strhex ( top_┆
0x012a60…012a80             6f 66 5f 62 69 6e 2e 64 69 73 70 20 2d 20 63 6f 64 65 5f 61 64 64 72 2e 64 69 73 70 20 2b 20 68   ┆of_bin.disp - code_addr.disp + h┆
0x012a80…012aa0             65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 29 3a 34 20 29 3b 0a 0a 20 20 69   ┆ead.descriptor_length):4 );    i┆
0x012aa0…012ac0             66 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 20 3c 3e 20 63 6f 6d 70 69 6c 65   ┆f compile_time shr 11 <> compile┆
0x012ac0…012ae0             72 5f 76 65 72 73 69 6f 6e 20 20 74 68 65 6e 0a 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20   ┆r_version  then      call_error ┆
0x012ae0…012b00             28 20 77 61 72 6e 2c 20 35 2c 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 2c 20   ┆( warn, 5, compile_time shr 11, ┆
0x012b00…012b20             68 65 61 64 2e 6e 61 6d 65 20 29 3b 0a 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 50 72 6f   ┆head.name );   end;   end;   Pro┆
0x012b20…012b40             63 65 64 75 72 65 20 20 63 6f 6e 76 65 72 74 5f 74 6f 5f 68 65 78 20 28 20 61 20 3a 20 61 6c 66   ┆cedure  convert_to_hex ( a : alf┆
0x012b40…012b60             61 73 74 72 3b 20 76 61 72 20 68 65 78 5f 6e 75 6d 62 65 72 20 3a 20 77 6f 72 64 20 29 3b 0a 20   ┆astr; var hex_number : word );  ┆
0x012b60…012b80             20 76 61 72 0a 20 20 20 20 20 70 3a 20 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66   ┆ var      p:  word;   begin   if┆
0x012b80…012ba0             20 28 20 61 5b 31 5d 20 3c 3e 20 27 68 27 20 29 20 61 6e 64 20 28 20 61 5b 31 5d 20 3c 3e 20 27   ┆ ( a[1] <> 'h' ) and ( a[1] <> '┆
0x012ba0…012bc0             24 27 20 29 20 74 68 65 6e 0a 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61   ┆$' ) then      call_error ( fata┆
0x012bc0…012be0             6c 2c 20 34 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 61 29 3b 0a 20 20 68 65 78 5f 6e 75 6d   ┆l, 4, param_index, a);   hex_num┆
0x012be0…012c00             62 65 72 20 3a 3d 20 30 3b 0a 0a 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 20 77 72 69 74 65   ┆ber := 0;    if false then write┆
0x012c00…012c20 (5, 0, 1)   6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 63 6f 6e 76 65 72 74 20 3c 27 2c 20 61 2c 20 27 3e   ┆ln ( output, ' convert <', a, '>┆
0x012c20…012c40             20 20 27 29 3b 0a 20 20 66 6f 72 20 70 20 3a 3d 20 32 20 74 6f 20 6c 65 6e 67 74 68 28 61 29 20   ┆  ');   for p := 2 to length(a) ┆
0x012c40…012c60             64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 28 20 27 30 27 20 3c 3d 20 61 5b 70   ┆do     begin     if ( '0' <= a[p┆
0x012c60…012c80             5d 20 29 20 61 6e 64 20 28 20 61 5b 70 5d 20 3c 3d 20 27 39 27 20 29 20 74 68 65 6e 0a 20 20 20   ┆] ) and ( a[p] <= '9' ) then    ┆
0x012c80…012ca0             20 20 20 68 65 78 5f 6e 75 6d 62 65 72 20 3a 3d 20 68 65 78 5f 6e 75 6d 62 65 72 20 73 68 6c 20   ┆   hex_number := hex_number shl ┆
0x012ca0…012cc0             34 20 2b 20 28 20 6f 72 64 28 20 61 5b 70 5d 20 29 20 2d 20 6f 72 64 28 20 27 30 27 20 29 20 29   ┆4 + ( ord( a[p] ) - ord( '0' ) )┆
0x012cc0…012ce0             0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 28 20 27 61 27 20 3c 3d 20 61 5b 70 5d 20 29   ┆     else     if ( 'a' <= a[p] )┆
0x012ce0…012d00             20 61 6e 64 20 28 20 61 5b 70 5d 20 3c 3d 20 27 66 27 20 29 20 74 68 65 6e 0a 20 20 20 20 20 20   ┆ and ( a[p] <= 'f' ) then       ┆
0x012d00…012d20             68 65 78 5f 6e 75 6d 62 65 72 20 3a 3d 20 68 65 78 5f 6e 75 6d 62 65 72 20 73 68 6c 20 34 20 2b   ┆hex_number := hex_number shl 4 +┆
0x012d20…012d40             20 28 20 6f 72 64 28 20 61 5b 70 5d 20 29 20 2d 20 6f 72 64 28 20 27 61 27 20 29 20 2b 20 31 30   ┆ ( ord( a[p] ) - ord( 'a' ) + 10┆
0x012d40…012d60             20 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66   ┆ )     else       begin       if┆
0x012d60…012d80             20 66 61 6c 73 65 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20   ┆ false then writeln ( output, ' ┆
0x012d80…012da0             20 65 78 69 74 20 61 74 20 70 6f 73 20 27 2c 20 70 2c 20 27 20 20 3c 27 2c 20 61 5b 70 5d 2c 20   ┆ exit at pos ', p, '  <', a[p], ┆
0x012da0…012dc0             27 3e 27 29 3b 0a 20 20 20 20 20 20 65 78 69 74 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65   ┆'>');       exit       end     e┆
0x012dc0…012de0             6e 64 3b 20 28 2a 20 20 66 6f 72 20 2e 2e 2e 2e 2e 20 20 2a 29 0a 0a 20 20 65 6e 64 3b 20 20 28   ┆nd; (*  for .....  *)    end;  (┆
0x012de0…012e00             2a 20 20 63 6f 6e 76 65 72 74 20 68 65 78 20 20 2a 29 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20   ┆*  convert hex  *)   Procedure  ┆
0x012e00…012e20 (5, 0, 2)   6d 61 70 5f 6c 61 64 64 72 20 28 20 6d 2c 20 64 20 3a 20 77 6f 72 64 3b 20 76 61 72 20 61 20 3a   ┆map_laddr ( m, d : word; var a :┆
0x012e20…012e40             20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 20 6d 20 3e 3d 20 33   ┆ address );   begin   if  m >= 3┆
0x012e40…012e60             32 20 20 74 68 65 6e 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 37 2c 20 6d   ┆2  then call_error ( fatal, 7, m┆
0x012e60…012e80             2c 20 27 20 6d 20 3e 3d 20 33 32 20 27 29 3b 0a 20 20 61 2e 62 61 73 65 20 3a 3d 20 6d 3b 0a 20   ┆, ' m >= 32 ');   a.base := m;  ┆
0x012e80…012ea0             20 61 2e 64 69 73 70 20 3a 3d 20 64 0a 20 20 65 6e 64 3b 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20   ┆ a.disp := d   end;   Procedure ┆
0x012ea0…012ec0             72 65 73 65 72 76 65 5f 61 72 65 61 20 28 20 73 69 7a 65 3a 20 6c 6f 6e 67 69 6e 74 3b 20 76 61   ┆reserve_area ( size: longint; va┆
0x012ec0…012ee0             72 20 61 3a 20 61 64 64 72 65 73 73 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 74 6f 70 5f   ┆r a: address);   begin   if top_┆
0x012ee0…012f00             6f 66 5f 6d 6f 64 75 6c 65 20 2d 20 73 69 7a 65 20 3c 20 61 2e 64 69 73 70 20 74 68 65 6e 0a 20   ┆of_module - size < a.disp then  ┆
0x012f00…012f20             20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 64 65 62 75 67 36 20 74 68 65 6e 0a 20 20 20 20   ┆   begin     if debug6 then     ┆
0x012f20…012f40             20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆  begin       writeln ( output, ┆
0x012f40…012f60             27 2d 2d 20 20 72 65 73 65 72 76 65 20 28 74 6f 70 2c 73 69 7a 65 2c 61 2c 73 61 76 65 64 5f 64   ┆'--  reserve (top,size,a,saved_d┆
0x012f60…012f80             29 27 2c 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 2c 20 27 20 20 27 2c 20 73 69 7a 65 2c 20 27   ┆)', top_of_module, '  ', size, '┆
0x012f80…012fa0             20 20 27 2c 0a 20 20 20 20 20 20 61 2e 64 69 73 70 2c 20 27 20 20 27 2c 20 73 74 72 5f 61 64 64   ┆  ',       a.disp, '  ', str_add┆
0x012fa0…012fc0             72 20 28 20 61 29 2c 20 27 20 20 27 2c 20 73 74 72 5f 61 64 64 72 20 28 20 69 74 65 6d 2e 73 61   ┆r ( a), '  ', str_addr ( item.sa┆
0x012fc0…012fe0             76 65 64 5f 64 5f 61 64 64 72 29 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆ved_d_addr));       writeln ( ou┆
0x012fe0…013000             74 70 75 74 2c 20 27 2d 2d 20 20 72 65 73 65 72 76 65 20 28 64 65 73 5f 6c 65 6e 67 2c 6f 63 74   ┆tput, '--  reserve (des_leng,oct┆
0x013000…013020 (5, 0, 3)   65 74 73 29 20 27 2c 20 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 2c 0a   ┆ets) ', head.descriptor_length, ┆
0x013020…013040             20 20 20 20 20 20 27 20 20 27 2c 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a   ┆      '  ', octets);       end; ┆
0x013040…013060             20 20 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20 61 2e 62 61 73 65 20 2b 20 31 2c 20 66 69 72 73   ┆    map_laddr ( a.base + 1, firs┆
0x013060…013080             74 5f 6f 66 5f 6d 6f 64 75 6c 65 2c 20 61 29 3b 0a 20 20 20 20 6f 75 74 5f 73 75 6d 3b 0a 20 20   ┆t_of_module, a);     out_sum;   ┆
0x013080…0130a0             20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6d 61 70 5f   ┆  end;   end;    Procedure  map_┆
0x0130a0…0130c0             69 6e 63 72 20 28 20 66 72 6f 6d 20 3a 20 61 64 64 72 65 73 73 3b 20 6f 66 66 73 65 74 20 3a 20   ┆incr ( from : address; offset : ┆
0x0130c0…0130e0             6c 6f 6e 67 69 6e 74 3b 20 76 61 72 20 61 20 3a 20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 76 61   ┆longint; var a : address );   va┆
0x0130e0…013100             72 20 6f 6c 64 5f 62 61 73 65 20 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6f 6c 64   ┆r old_base : word;   begin   old┆
0x013100…013120             5f 62 61 73 65 20 3a 3d 20 66 72 6f 6d 2e 62 61 73 65 3b 0a 20 20 72 65 73 65 72 76 65 5f 61 72   ┆_base := from.base;   reserve_ar┆
0x013120…013140             65 61 20 28 20 6f 66 66 73 65 74 2c 20 66 72 6f 6d 29 3b 0a 20 20 61 2e 62 61 73 65 20 3a 3d 20   ┆ea ( offset, from);   a.base := ┆
0x013140…013160             66 72 6f 6d 2e 62 61 73 65 3b 0a 20 20 69 66 20 6f 6c 64 5f 62 61 73 65 20 3d 20 66 72 6f 6d 2e   ┆from.base;   if old_base = from.┆
0x013160…013180             62 61 73 65 20 74 68 65 6e 20 20 28 2a 20 73 61 6d 65 20 6d 6f 64 75 6c 65 20 2a 29 0a 20 20 20   ┆base then  (* same module *)    ┆
0x013180…0131a0             20 61 2e 64 69 73 70 20 3a 3d 20 66 72 6f 6d 2e 64 69 73 70 20 2b 20 20 6f 66 66 73 65 74 0a 20   ┆ a.disp := from.disp +  offset  ┆
0x0131a0…0131c0             20 65 6c 73 65 20 28 2a 20 63 68 61 6e 67 65 20 6d 6f 64 75 6c 65 20 2a 29 0a 20 20 20 20 61 2e   ┆ else (* change module *)     a.┆
0x0131c0…0131e0             64 69 73 70 20 3a 3d 20 66 72 6f 6d 2e 64 69 73 70 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f   ┆disp := from.disp;   end;    Pro┆
0x0131e0…013200             63 65 64 75 72 65 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 66 72 6f 6d 20 3a 20 61 64 64 72 65   ┆cedure  map_point ( from : addre┆
0x013200…013220 (5, 0, 4)   73 73 3b 20 73 69 7a 65 20 3a 20 77 6f 72 64 3b 20 70 20 3a 20 70 72 6f 67 72 61 6d 5f 70 6f 69   ┆ss; size : word; p : program_poi┆
0x013220…013240             6e 74 3b 0a 09 20 20 20 20 20 76 61 72 20 61 20 3a 20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 76   ┆nt;       var a : address );   v┆
0x013240…013260             61 72 20 20 6f 66 66 73 65 74 20 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 62 65 67 69 6e 0a 20 20   ┆ar  offset : longint;   begin   ┆
0x013260…013280             6f 66 66 73 65 74 3a 3d 20 70 2e 72 65 6c 5f 62 79 74 65 3b 0a 20 20 6f 66 66 73 65 74 20 3a 3d   ┆offset:= p.rel_byte;   offset :=┆
0x013280…0132a0             20 6f 66 66 73 65 74 20 2b 20 28 20 70 2e 70 61 67 65 5f 6e 6f 20 2d 20 31 29 20 2a 20 73 69 7a   ┆ offset + ( p.page_no - 1) * siz┆
0x0132a0…0132c0             65 3b 0a 20 20 69 66 20 6f 66 66 73 65 74 20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 20 20 74 68   ┆e;   if offset >= code_bytes  th┆
0x0132c0…0132e0             65 6e 0a 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 37 2c 20 6f 66   ┆en     call_error ( fatal, 7, of┆
0x0132e0…013300             66 73 65 74 2c 20 27 6f 66 66 73 65 74 20 3e 3d 20 63 6f 64 65 62 79 74 65 73 20 27 29 3b 0a 20   ┆fset, 'offset >= codebytes ');  ┆
0x013300…013320             20 6d 61 70 5f 69 6e 63 72 20 28 20 66 72 6f 6d 2c 20 6f 66 66 73 65 74 2c 20 61 20 29 0a 20 20   ┆ map_incr ( from, offset, a )   ┆
0x013320…013340             65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 5f 61 64 64 72 20 28 20 76 61 72 20   ┆end;    Procedure in_addr ( var ┆
0x013340…013360             61 3a 20 61 64 64 72 65 73 73 29 3b 0a 20 20 76 61 72 20 70 6f 69 6e 74 3a 20 70 72 6f 67 72 61   ┆a: address);   var point: progra┆
0x013360…013380             6d 5f 70 6f 69 6e 74 3b 0a 20 20 62 65 67 69 6e 0a 20 20 28 2a 20 73 69 6d 75 6c 61 74 65 3a 20   ┆m_point;   begin   (* simulate: ┆
0x013380…0133a0             69 6e 5f 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 3b 20 2a 29 0a 20 20 77 69 74 68 20 70 6f 69 6e   ┆in_point (point); *)   with poin┆
0x0133a0…0133c0             74 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28   ┆t do     begin     readinteger (┆
0x0133c0…0133e0             20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 67 65 5f 6e 6f 29 3b 0a 20 20 20 20 72 65 61 64   ┆ in_obj_file, page_no);     read┆
0x0133e0…013400             69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 72 65 6c 5f 62 79 74 65 29   ┆integer ( in_obj_file, rel_byte)┆
0x013400…013420 (5, 0, 5)   3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61 64   ┆;     end;   map_point ( code_ad┆
0x013420…013440             64 72 2c 20 68 65 61 64 2e 70 61 67 65 73 69 7a 65 2c 20 70 6f 69 6e 74 2c 20 61 29 3b 0a 20 20   ┆dr, head.pagesize, point, a);   ┆
0x013440…013460             65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 67 65 74 5f 62 79 74 65 20 28 20 66 72 6f 6d   ┆end;    Function get_byte ( from┆
0x013460…013480             5f 61 64 64 72 3a 20 61 64 64 72 65 73 73 3b 20 72 65 6c 3a 20 69 6e 74 65 67 65 72 29 20 3a 20   ┆_addr: address; rel: integer) : ┆
0x013480…0134a0             62 79 74 65 3b 0a 20 20 76 61 72 0a 20 20 20 20 62 79 74 65 5f 69 6e 64 65 78 3a 20 77 6f 72 64   ┆byte;   var     byte_index: word┆
0x0134a0…0134c0             3b 0a 20 20 62 65 67 69 6e 0a 20 20 77 69 74 68 20 66 72 6f 6d 5f 61 64 64 72 20 64 6f 0a 20 20   ┆;   begin   with from_addr do   ┆
0x0134c0…0134e0             20 20 62 65 67 69 6e 0a 20 20 20 20 62 79 74 65 5f 69 6e 64 65 78 20 3a 3d 20 64 69 73 70 20 2b   ┆  begin     byte_index := disp +┆
0x0134e0…013500             20 72 65 6c 20 2d 20 63 6f 64 65 5f 61 64 64 72 2e 64 69 73 70 3b 0a 20 20 20 20 69 66 20 62 79   ┆ rel - code_addr.disp;     if by┆
0x013500…013520             74 65 5f 69 6e 64 65 78 20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 20 74 68 65 6e 0a 20 20 20 20   ┆te_index >= code_bytes then     ┆
0x013520…013540             20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 37 2c 20 62 79 74 65 5f 69 6e   ┆  call_error ( fatal, 7, byte_in┆
0x013540…013560             64 65 78 2c 20 27 62 79 74 65 69 6e 64 65 78 20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 27 29 3b   ┆dex, 'byteindex >= code_bytes');┆
0x013560…013580             0a 20 20 20 20 67 65 74 5f 62 79 74 65 3a 3d 20 63 6f 72 65 5e 5b 62 79 74 65 5f 69 6e 64 65 78   ┆     get_byte:= core^[byte_index┆
0x013580…0135a0             5d 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20   ┆];     end;   end;    Procedure ┆
0x0135a0…0135c0             73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72 3a 20 61 64 64 72 65 73 73 3b 20 72   ┆store_byte ( to_addr: address; r┆
0x0135c0…0135e0             65 6c 3a 20 69 6e 74 65 67 65 72 3b 20 62 79 76 61 3a 20 62 79 74 65 29 3b 0a 20 20 76 61 72 0a   ┆el: integer; byva: byte);   var ┆
0x0135e0…013600             20 20 20 20 62 79 74 65 5f 69 6e 64 65 78 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20   ┆    byte_index: word;   begin   ┆
0x013600…013620 (5, 0, 6)   77 69 74 68 20 74 6f 5f 61 64 64 72 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 62 79   ┆with to_addr do     begin     by┆
0x013620…013640             74 65 5f 69 6e 64 65 78 20 3a 3d 20 64 69 73 70 20 2b 20 72 65 6c 20 2d 20 63 6f 64 65 5f 61 64   ┆te_index := disp + rel - code_ad┆
0x013640…013660             64 72 2e 64 69 73 70 3b 0a 20 20 20 20 69 66 20 62 79 74 65 5f 69 6e 64 65 78 20 3e 3d 20 63 6f   ┆dr.disp;     if byte_index >= co┆
0x013660…013680             64 65 5f 62 79 74 65 73 20 74 68 65 6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28   ┆de_bytes then       call_error (┆
0x013680…0136a0             20 66 61 74 61 6c 2c 20 37 2c 20 62 79 74 65 5f 69 6e 64 65 78 2c 20 27 62 79 74 65 69 6e 64 65   ┆ fatal, 7, byte_index, 'byteinde┆
0x0136a0…0136c0             78 20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 27 29 3b 0a 20 20 20 20 63 6f 72 65 5e 5b 62 79 74   ┆x >= code_bytes');     core^[byt┆
0x0136c0…0136e0             65 5f 69 6e 64 65 78 5d 3a 3d 20 62 79 76 61 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b   ┆e_index]:= byva;     end;   end;┆
0x0136e0…013700             0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 67 65 74 62 6c 6f 63 6b 20 28 20 62 79 74 65 63 6f 75   ┆    Procedure getblock ( bytecou┆
0x013700…013720             6e 74 3a 20 6c 6f 6e 67 69 6e 74 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 62 79 74 65 73 20 3a 20   ┆nt: longint);   var     bytes : ┆
0x013720…013740             77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 62 6c 6f 63 6b 72 65 61 64 20 28 20 69 6e 5f 6f   ┆word;   begin   blockread ( in_o┆
0x013740…013760             62 6a 5f 66 69 6c 65 2c 20 63 6f 72 65 5e 2c 20 62 79 74 65 63 6f 75 6e 74 2c 20 62 79 74 65 73   ┆bj_file, core^, bytecount, bytes┆
0x013760…013780             29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 69   ┆);   iocheck ( in_obj_file);   i┆
0x013780…0137a0             66 20 62 79 74 65 73 20 3c 20 62 79 74 65 63 6f 75 6e 74 20 74 68 65 6e 20 72 75 6e 65 72 72 6f   ┆f bytes < bytecount then runerro┆
0x0137a0…0137c0             72 20 28 20 31 33 30 29 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 70 75 74   ┆r ( 130)   end;    Procedure put┆
0x0137c0…0137e0             62 6c 6f 63 6b 20 28 20 62 79 74 65 63 6f 75 6e 74 3a 20 6c 6f 6e 67 69 6e 74 29 3b 0a 20 20 76   ┆block ( bytecount: longint);   v┆
0x0137e0…013800             61 72 0a 20 20 20 20 70 2c 20 62 79 74 65 73 2c 20 6c 61 73 74 20 3a 20 77 6f 72 64 3b 0a 20 20   ┆ar     p, bytes, last : word;   ┆
0x013800…013820 (5, 0, 7)   62 65 67 69 6e 0a 20 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c   ┆begin   blockwrite ( outbinfile,┆
0x013820…013840             20 63 6f 72 65 5e 2c 20 62 79 74 65 63 6f 75 6e 74 2c 20 62 79 74 65 73 29 3b 0a 20 20 69 6f 63   ┆ core^, bytecount, bytes);   ioc┆
0x013840…013860             68 65 63 6b 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 29 3b 0a 20 20 69 66 20 62 79 74 65 73 20 3c   ┆heck ( outbinfile);   if bytes <┆
0x013860…013880             20 62 79 74 65 63 6f 75 6e 74 20 74 68 65 6e 20 72 75 6e 65 72 72 6f 72 20 28 20 31 33 31 29 3b   ┆ bytecount then runerror ( 131);┆
0x013880…0138a0             0a 20 20 28 2a 2d 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65   ┆   (*-  if current_version_numbe┆
0x0138a0…0138c0             72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 20 74   ┆r = compiler_c_version_number  t┆
0x0138c0…0138e0             68 65 6e 20 20 2d 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6c 61 73 74 3a 3d 20 28 20   ┆hen  -*)     begin     last:= ( ┆
0x0138e0…013900             62 79 74 65 63 6f 75 6e 74 20 73 68 72 20 31 20 29 20 2d 20 31 3b 0a 20 20 20 20 66 6f 72 20 70   ┆bytecount shr 1 ) - 1;     for p┆
0x013900…013920             3a 3d 20 30 20 74 6f 20 6c 61 73 74 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆:= 0 to last do       begin     ┆
0x013920…013940             20 20 63 72 63 31 36 20 28 20 73 75 6d 2c 20 63 6f 72 65 77 5e 5b 70 5d 29 3b 0a 20 20 20 20 28   ┆  crc16 ( sum, corew^[p]);     (┆
0x013940…013960             2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 20 20 20   ┆*-------------------------      ┆
0x013960…013980             20 73 75 6d 3a 3d 20 63 72 63 31 36 20 28 20 63 72 63 31 36 20 28 20 73 75 6d 20 78 6f 72 20 68   ┆ sum:= crc16 ( crc16 ( sum xor h┆
0x013980…0139a0             69 28 62 79 74 65 73 29 2c 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 20 29 0a 20 20 20 20 20 20   ┆i(bytes), crc16quotient )       ┆
0x0139a0…0139c0             78 6f 72 20 20 20 20 20 6c 6f 28 62 79 74 65 73 29 20 2c 20 63 72 63 31 36 71 75 6f 74 69 65 6e   ┆xor     lo(bytes) , crc16quotien┆
0x0139c0…0139e0             74 20 29 3b 0a 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆t );       ---------------------┆
0x0139e0…013a00             2d 2d 2d 2d 2a 29 0a 20 20 20 20 20 20 69 6e 63 20 28 20 73 75 6d 63 6f 75 6e 74 29 3b 0a 20 20   ┆----*)       inc ( sumcount);   ┆
0x013a00…013a20 (5, 0, 8)   20 20 20 20 69 66 20 73 75 6d 63 6f 75 6e 74 20 3e 20 73 75 6d 77 6f 72 64 73 0a 20 20 20 20 20   ┆    if sumcount > sumwords      ┆
0x013a20…013a40             20 74 68 65 6e 20 62 65 67 69 6e 0a 09 73 75 6d 63 61 74 61 6c 6f 67 5b 73 75 6d 69 6e 64 65 78   ┆ then begin  sumcatalog[sumindex┆
0x013a40…013a60             5d 3a 3d 20 6e 6f 74 20 73 77 61 70 20 28 20 73 75 6d 20 29 3b 0a 09 69 6e 63 20 28 20 73 75 6d   ┆]:= not swap ( sum );  inc ( sum┆
0x013a60…013a80             69 6e 64 65 78 29 3b 0a 20 20 20 20 20 20 69 66 20 73 75 6d 69 6e 64 65 78 20 3e 20 6e 6f 5f 6f   ┆index);       if sumindex > no_o┆
0x013a80…013aa0             66 5f 73 75 6d 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆f_sums then         writeln ( ou┆
0x013aa0…013ac0             74 70 75 74 2c 20 27 2a 2a 20 20 73 75 6d 69 6e 64 65 78 20 69 6e 20 70 75 74 62 6c 6f 63 6b 28   ┆tput, '**  sumindex in putblock(┆
0x013ac0…013ae0             27 2c 20 62 79 74 65 63 6f 75 6e 74 2c 27 25 27 2c 20 6c 61 73 74 2c 27 29 20 3a 20 27 2c 20 73   ┆', bytecount,'%', last,') : ', s┆
0x013ae0…013b00             75 6d 69 6e 64 65 78 20 29 3b 0a 09 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 09 73 75 6d 3a 3d   ┆umindex );  sumcount:= 1;  sum:=┆
0x013b00…013b20             20 61 6c 6c 5f 6f 6e 65 73 3b 0a 09 65 6e 64 3b 0a 20 20 20 20 20 20 65 6e 64 3b 20 20 20 28 2a   ┆ all_ones;  end;       end;   (*┆
0x013b20…013b40             20 20 66 6f 72 20 70 20 20 2a 29 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 20 20 28 2a 20   ┆  for p  *)     end;   end;  (* ┆
0x013b40…013b60             20 70 75 74 62 6c 6f 63 6b 20 20 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 73 74 6f 72 65   ┆ putblock  *)    Procedure store┆
0x013b60…013b80             5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 2c 20 6b 5f 61 64 64 72 3a 20 61 64 64 72 65 73 73   ┆_addr ( to_addr, k_addr: address┆
0x013b80…013ba0             29 3b 0a 20 20 28 2a 20 61 64 64 20 74 68 65 20 64 69 73 70 20 69 6e 20 63 6f 72 65 2d 69 6d 61   ┆);   (* add the disp in core-ima┆
0x013ba0…013bc0             67 65 20 74 6f 20 74 68 65 20 6e 65 77 20 63 6f 6e 74 65 6e 74 73 20 2a 29 0a 20 20 62 65 67 69   ┆ge to the new contents *)   begi┆
0x013bc0…013be0             6e 0a 20 20 6d 61 70 5f 69 6e 63 72 20 28 20 6b 5f 61 64 64 72 2c 20 73 77 61 70 28 67 65 74 5f   ┆n   map_incr ( k_addr, swap(get_┆
0x013be0…013c00             62 79 74 65 28 74 6f 5f 61 64 64 72 2c 2d 31 29 29 20 2b 20 67 65 74 5f 62 79 74 65 28 74 6f 5f   ┆byte(to_addr,-1)) + get_byte(to_┆
0x013c00…013c20 (5, 0, 9)   61 64 64 72 2c 30 29 2c 20 6b 5f 61 64 64 72 29 3b 0a 20 20 77 69 74 68 20 6b 5f 61 64 64 72 20   ┆addr,0), k_addr);   with k_addr ┆
0x013c20…013c40             64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 62 61 73 65 20 3a 3d 20 66 69 72 73 74 5f 6d   ┆do     begin     base := first_m┆
0x013c40…013c60             65 6d 5f 6e 6f 20 2b 20 62 61 73 65 20 73 68 6c 20 31 3b 0a 20 20 20 20 28 2a 2d 2d 2d 2d 20 20   ┆em_no + base shl 1;     (*----  ┆
0x013c60…013c80             6f 6c 64 20 20 2d 2d 2d 0a 20 20 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f   ┆old  ---     if current_version_┆
0x013c80…013ca0             6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72   ┆number = compiler_version_number┆
0x013ca0…013cc0             20 74 68 65 6e 0a 20 20 20 20 20 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72   ┆ then       store_byte ( to_addr┆
0x013cc0…013ce0             2c 20 2d 33 2c 20 73 77 61 70 28 62 61 73 65 29 20 61 6e 64 20 32 35 35 29 3b 0a 20 20 20 20 2d   ┆, -3, swap(base) and 255);     -┆
0x013ce0…013d00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 20 73 74 6f 72 65 5f 62 79 74 65   ┆---------------*)     store_byte┆
0x013d00…013d20             20 28 20 74 6f 5f 61 64 64 72 2c 20 2d 32 2c 20 6c 6f 28 62 61 73 65 29 29 3b 0a 20 20 20 20 73   ┆ ( to_addr, -2, lo(base));     s┆
0x013d20…013d40             74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72 2c 20 2d 31 2c 20 68 69 28 64 69 73 70   ┆tore_byte ( to_addr, -1, hi(disp┆
0x013d40…013d60             29 29 3b 0a 20 20 20 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72 2c 20 20 30   ┆));     store_byte ( to_addr,  0┆
0x013d60…013d80             2c 20 6c 6f 28 64 69 73 70 29 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a   ┆, lo(disp));     end;   end;    ┆
0x013d80…013da0             50 72 6f 63 65 64 75 72 65 20 67 65 74 5f 64 61 74 65 20 28 20 76 61 72 20 64 61 74 65 3a 20 63   ┆Procedure get_date ( var date: c┆
0x013da0…013dc0             6f 64 65 64 5f 64 61 74 65 3b 20 76 61 72 20 74 69 6d 65 3a 20 63 6f 64 65 64 5f 74 69 6d 65 29   ┆oded_date; var time: coded_time)┆
0x013dc0…013de0             3b 0a 20 20 76 61 72 0a 20 20 20 20 20 66 70 6f 73 20 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20   ┆;   var      fpos : longint;    ┆
0x013de0…013e00             62 65 67 69 6e 0a 20 20 20 66 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 69 6e 5f 6f 62 6a   ┆begin    fpos:= filepos ( in_obj┆
0x013e00…013e20 (5, 0, 10)  5f 66 69 6c 65 29 3b 0a 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65   ┆_file);    iocheck ( in_obj_file┆
0x013e20…013e40             29 3b 0a 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c   ┆);    readinteger ( in_obj_file,┆
0x013e40…013e60             20 64 61 74 65 29 3b 0a 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f   ┆ date);    readinteger ( in_obj_┆
0x013e60…013e80             66 69 6c 65 2c 20 74 69 6d 65 29 3b 0a 20 20 20 69 66 20 74 69 6d 65 20 73 68 72 20 31 31 20 3c   ┆file, time);    if time shr 11 <┆
0x013e80…013ea0             3e 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67   ┆> compiler_version then      beg┆
0x013ea0…013ec0             69 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 63 6f 6d   ┆in      writeln ( output, '! com┆
0x013ec0…013ee0             70 69 6c 65 20 74 69 6d 65 20 20 24 27 2c 20 73 74 72 68 65 78 20 28 20 74 69 6d 65 29 2c 0a 09   ┆pile time  $', strhex ( time),  ┆
0x013ee0…013f00             27 20 20 20 27 2c 20 73 74 72 64 61 74 65 20 28 20 64 61 74 65 29 2c 20 27 27 3a 32 2c 20 73 74   ┆'   ', strdate ( date), '':2, st┆
0x013f00…013f20             72 74 69 6d 65 20 28 20 74 69 6d 65 29 29 3b 0a 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20   ┆rtime ( time));      call_error ┆
0x013f20…013f40             28 20 66 61 74 61 6c 2c 20 35 2c 20 74 69 6d 65 20 73 68 72 20 31 31 2c 20 73 74 72 61 6c 66 61   ┆( fatal, 5, time shr 11, stralfa┆
0x013f40…013f60             20 28 20 68 65 61 64 2e 6e 61 6d 65 29 20 29 3b 0a 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 73 65   ┆ ( head.name) );      end;    se┆
0x013f60…013f80             65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 66 70 6f 73 29 3b 09 28 2a 20 20 62 61 63   ┆ek ( in_obj_file, fpos); (*  bac┆
0x013f80…013fa0             6b 20 61 67 61 69 6e 20 20 2a 29 0a 20 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65   ┆k again  *)    end;    Procedure┆
0x013fa0…013fc0             20 69 6e 69 74 5f 69 74 65 6d 20 28 20 76 61 72 20 69 74 65 6d 3a 20 69 74 65 6d 5f 72 65 63 3b   ┆ init_item ( var item: item_rec;┆
0x013fc0…013fe0             20 76 61 72 20 72 65 63 6e 6f 3a 20 77 6f 72 64 3b 0a 09 09 20 20 20 20 20 20 6b 65 79 3a 20 61   ┆ var recno: word;         key: a┆
0x013fe0…014000             6c 66 61 73 74 72 3b 20 73 65 74 5f 64 61 74 65 3a 20 62 6f 6f 6c 65 61 6e 29 3b 0a 20 20 62 65   ┆lfastr; set_date: boolean);   be┆
0x014000…014020 (5, 0, 11)  67 69 6e 0a 20 20 66 69 6c 6c 63 68 61 72 20 28 20 69 74 65 6d 2c 20 73 69 7a 65 6f 66 20 28 20   ┆gin   fillchar ( item, sizeof ( ┆
0x014020…014040             69 74 65 6d 29 2c 20 30 29 3b 0a 20 20 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 20 20 20 20 62 65   ┆item), 0);   with item do     be┆
0x014040…014060             67 69 6e 0a 20 20 20 20 28 2a 20 20 72 65 63 73 74 61 74 3a 3d 20 30 3b 20 20 20 62 79 20 66 69   ┆gin     (*  recstat:= 0;   by fi┆
0x014060…014080             6c 6c 63 68 61 72 20 20 2a 29 0a 20 20 20 20 69 66 20 73 65 74 5f 64 61 74 65 20 74 68 65 6e 20   ┆llchar  *)     if set_date then ┆
0x014080…0140a0             20 67 65 74 5f 64 61 74 65 20 28 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 2c 20 63 6f 6d 70 69 6c   ┆ get_date ( compile_date, compil┆
0x0140a0…0140c0             65 5f 74 69 6d 65 29 3b 0a 20 20 20 28 2a 20 20 20 20 65 6c 73 65 20 20 63 6f 6d 70 69 6c 65 5f   ┆e_time);    (*    else  compile_┆
0x0140c0…0140e0             64 61 74 65 3a 3d 20 30 3b 20 20 20 75 6e 64 65 66 69 6e 65 64 20 64 61 74 65 20 2a 29 0a 0a 20   ┆date:= 0;   undefined date *)   ┆
0x0140e0…014100             20 20 20 73 74 61 74 65 20 3a 3d 20 75 6e 64 65 66 3b 0a 20 20 20 20 75 73 65 72 6e 61 6d 65 3a   ┆   state := undef;     username:┆
0x014100…014120             3d 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 3b 0a 20 20 20 20 70 61 72 61   ┆= stralfa ( head.name);     para┆
0x014120…014140             6d 6c 69 73 74 20 3a 3d 20 6f 62 6a 5f 70 61 72 61 6d 73 3b 0a 20 20 20 20 65 6e 74 72 79 5f 61   ┆mlist := obj_params;     entry_a┆
0x014140…014160             64 64 72 20 3a 3d 20 73 74 61 72 74 5f 61 64 64 72 3b 20 20 28 2a 20 64 75 6d 6d 79 20 65 6e 74   ┆ddr := start_addr;  (* dummy ent┆
0x014160…014180             72 79 2d 61 64 64 72 20 2a 29 0a 20 20 20 20 65 6e 64 3b 0a 20 20 61 6e 79 5f 69 6e 63 6c 75 64   ┆ry-addr *)     end;   any_includ┆
0x014180…0141a0             65 64 20 3a 3d 20 74 72 75 65 3b 0a 20 20 69 6e 63 20 28 20 6c 61 73 74 5f 65 78 74 65 72 6e 61   ┆ed := true;   inc ( last_externa┆
0x0141a0…0141c0             6c 29 3b 0a 20 20 69 6e 63 20 28 20 75 6e 64 65 66 5f 63 6f 75 6e 74 29 3b 0a 20 20 61 64 64 72   ┆l);   inc ( undef_count);   addr┆
0x0141c0…0141e0             65 63 20 28 20 64 61 74 66 2c 20 72 65 63 6e 6f 2c 20 69 74 65 6d 29 3b 0a 20 20 6b 65 79 3a 3d   ┆ec ( datf, recno, item);   key:=┆
0x0141e0…014200             20 6b 65 79 20 2b 20 27 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a 20 20 69 66 20 64 65 62 75   ┆ key + '            ';   if debu┆
0x014200…014220 (5, 0, 12)  67 63 61 74 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20   ┆gcat then  writeln ( output, '  ┆
0x014220…014240             20 61 64 64 72 65 63 20 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 27 2c 20 72 65 63 6e 6f 3a 34 2c 20   ┆ addrec : ', key, ',', recno:4, ┆
0x014240…014260             73 65 74 5f 64 61 74 65 3a 38 29 3b 0a 20 20 61 64 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 72 65   ┆set_date:8);   addkey ( inxf, re┆
0x014260…014280             63 6e 6f 2c 20 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20 20 69   ┆cno, key);     inc ( logno);   i┆
0x014280…0142a0             66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f 67 2c   ┆f debug7 then     writeln ( log,┆
0x0142a0…0142c0             20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 41 64 64 6b 65 79 20 26 27 2c 20 72 65 63 6e 6f 2c   ┆ '#', logno, '$Addkey &', recno,┆
0x0142c0…0142e0             20 27 40 27 2c 20 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 0a 0a   ┆ '@', key, '"  ->', success);   ┆
0x0142e0…014300             20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 73 65 61 72 63 68 20 28 20 76 61 72   ┆  end;    Procedure search ( var┆
0x014300…014320             20 69 74 65 6d 3a 20 69 74 65 6d 5f 72 65 63 3b 20 76 61 72 20 72 65 63 6e 6f 3a 20 77 6f 72 64   ┆ item: item_rec; var recno: word┆
0x014320…014340             3b 0a 20 20 20 20 76 61 72 20 6b 65 79 3a 20 61 6c 66 61 73 74 72 3b 20 76 61 72 20 70 61 72 61   ┆;     var key: alfastr; var para┆
0x014340…014360             6d 73 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 29 3b 0a 20 28 2a 20 20 73 65 61 72 63 68 20 66 6f   ┆ms: param_descr);  (*  search fo┆
0x014360…014380             72 20 61 6e 20 69 74 65 6d 20 77 69 74 68 20 20 69 64 20 3d 20 6b 65 79 20 61 6e 64 20 70 61 72   ┆r an item with  id = key and par┆
0x014380…0143a0             61 6d 6c 69 73 74 20 3d 20 70 61 72 61 6d 73 0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20 73 75 63   ┆amlist = params  --  returns suc┆
0x0143a0…0143c0             63 65 73 73 20 3d 20 66 61 6c 73 65 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 0a 20 2d 2d 20 20 72   ┆cess = false if not found  --  r┆
0x0143c0…0143e0             65 74 75 72 6e 73 20 73 75 63 63 65 73 73 20 3d 20 74 72 75 65 20 61 6e 64 20 74 68 65 20 69 74   ┆eturns success = true and the it┆
0x0143e0…014400             65 6d 2c 20 69 66 20 66 6f 75 6e 64 0a 20 2d 2d 20 20 67 6c 6f 62 61 6c 73 3a 20 69 6e 78 66 2c   ┆em, if found  --  globals: inxf,┆
0x014400…014420 (5, 0, 13)  20 64 61 74 66 0a 20 2a 29 0a 20 20 20 76 61 72 20 20 6e 5f 6b 65 79 20 3a 20 61 6c 66 61 73 74   ┆ datf  *)    var  n_key : alfast┆
0x014420…014440             72 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 72 65 63 6e 6f 3a 3d 20 30 3b 0a 20 20 20 6e 5f 6b   ┆r;    begin    recno:= 0;    n_k┆
0x014440…014460             65 79 3a 3d 20 6b 65 79 3b 0a 20 20 20 69 66 20 64 65 62 75 67 63 61 74 20 74 68 65 6e 20 20 77   ┆ey:= key;    if debugcat then  w┆
0x014460…014480             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 73 2e 66 69 6e 64 6b 65 79 20 3a 20 27 2c   ┆riteln ( output, 's.findkey : ',┆
0x014480…0144a0             20 6e 5f 6b 65 79 2c 20 27 2c 27 29 3b 0a 20 20 20 66 69 6e 64 6b 65 79 20 28 20 69 6e 78 66 2c   ┆ n_key, ',');    findkey ( inxf,┆
0x0144a0…0144c0             20 72 65 63 6e 6f 2c 20 6e 5f 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29   ┆ recno, n_key);     inc ( logno)┆
0x0144c0…0144e0             3b 0a 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28   ┆;   if debug7 then     writeln (┆
0x0144e0…014500             20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 46 69 6e 64 6b 65 79 20 26 27 2c 20   ┆ log, '#', logno, '$Findkey &', ┆
0x014500…014520             72 65 63 6e 6f 2c 20 27 40 27 2c 20 6e 5f 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63   ┆recno, '@', n_key, '"  ->', succ┆
0x014520…014540             65 73 73 29 3b 0a 0a 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 20 20 62   ┆ess);     if success then      b┆
0x014540…014560             65 67 69 6e 0a 20 20 20 20 20 77 68 69 6c 65 20 28 20 6e 5f 6b 65 79 20 3d 20 6b 65 79 29 20 61   ┆egin      while ( n_key = key) a┆
0x014560…014580             6e 64 20 73 75 63 63 65 73 73 20 64 6f 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20   ┆nd success do        begin      ┆
0x014580…0145a0             20 20 67 65 74 72 65 63 20 28 20 64 61 74 66 2c 20 72 65 63 6e 6f 2c 20 69 74 65 6d 29 3b 0a 20   ┆  getrec ( datf, recno, item);  ┆
0x0145a0…0145c0             20 20 20 20 20 20 69 66 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 28 20 69 74 65 6d   ┆      if equal_paramlists ( item┆
0x0145c0…0145e0             2e 70 61 72 61 6d 6c 69 73 74 2c 20 70 61 72 61 6d 73 29 20 74 68 65 6e 20 65 78 69 74 3b 0a 20   ┆.paramlist, params) then exit;  ┆
0x0145e0…014600             20 20 20 20 20 20 6e 65 78 74 6b 65 79 20 28 20 69 6e 78 66 2c 20 72 65 63 6e 6f 2c 20 6e 5f 6b   ┆      nextkey ( inxf, recno, n_k┆
0x014600…014620 (5, 0, 14)  65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20 20 20 20 69 66 20 64 65   ┆ey);     inc ( logno);     if de┆
0x014620…014640             62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27   ┆bug7 then     writeln ( log, '#'┆
0x014640…014660             2c 20 6c 6f 67 6e 6f 2c 20 27 24 4e 65 78 74 6b 65 79 20 26 27 2c 20 72 65 63 6e 6f 2c 20 27 40   ┆, logno, '$Nextkey &', recno, '@┆
0x014660…014680             27 2c 20 6e 5f 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 20 20 20   ┆', n_key, '"  ->', success);    ┆
0x014680…0146a0             20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 68 69 6c 65 20 20 2a 29 0a 0a 20 20 20 20 20 73 75   ┆    end;  (*  while  *)       su┆
0x0146a0…0146c0             63 63 65 73 73 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 6b 65 79 20   ┆ccess:= false      end  (*  key ┆
0x0146c0…0146e0             66 6f 75 6e 64 20 20 2a 29 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 73 65 61 72 63 68 20 20   ┆found  *)     end;  (*  search  ┆
0x0146e0…014700             2a 29 0a 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆*)   {--------------------------┆
0x014700…014720             2d 2d 2d 2d 0a 46 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 5f 65 78 74 20 28 70 20 3a 20 5e 20   ┆---- Function search_ext (p : ^ ┆
0x014720…014740             6e 6f 64 65 29 20 3a 20 5e 20 65 78 74 5f 74 61 62 6c 65 5f 74 3b 0a 76 61 72 0a 69 74 65 6d 20   ┆node) : ^ ext_table_t; var item ┆
0x014740…014760             3a 20 5e 20 65 78 74 5f 74 61 62 6c 65 5f 74 3b 0a 62 65 67 69 6e 0a 69 74 65 6d 20 3a 3d 20 70   ┆: ^ ext_table_t; begin item := p┆
0x014760…014780             5e 2e 65 78 74 5f 74 61 62 6c 65 3b 0a 77 68 69 6c 65 20 6e 6f 74 20 6e 69 6c 20 28 69 74 65 6d   ┆^.ext_table; while not nil (item┆
0x014780…0147a0             29 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 28   ┆) do begin if equal_paramlists (┆
0x0147a0…0147c0             69 74 65 6d 29 20 74 68 65 6e 0a 65 78 69 74 6c 6f 6f 70 3b 0a 69 74 65 6d 20 3a 3d 20 69 74 65   ┆item) then exitloop; item := ite┆
0x0147c0…0147e0             6d 5e 2e 6e 65 78 74 3b 0a 65 6e 64 3b 0a 73 65 61 72 63 68 5f 65 78 74 20 3a 3d 20 69 74 65 6d   ┆m^.next; end; search_ext := item┆
0x0147e0…014800             3b 0a 65 6e 64 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆; end; -------------------------┆
0x014800…014820 (5, 0, 15)  2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 50 72 6f 63 65 64 75 72 65 20 73 65 74 5f 65 78 74 65 6e 73 69   ┆--------}  Procedure set_extensi┆
0x014820…014840             6f 6e 20 28 20 76 61 72 20 70 61 74 68 3a 20 70 61 74 68 73 74 72 29 3b 0a 20 20 76 61 72 0a 20   ┆on ( var path: pathstr);   var  ┆
0x014840…014860             20 20 20 20 64 69 72 09 3a 20 20 64 69 72 73 74 72 3b 0a 20 20 20 20 20 6e 61 6d 65 09 3a 20 20   ┆    dir :  dirstr;      name :  ┆
0x014860…014880             6e 61 6d 65 73 74 72 3b 0a 20 20 20 20 20 65 78 74 09 3a 20 20 65 78 74 73 74 72 3b 0a 20 20 62   ┆namestr;      ext :  extstr;   b┆
0x014880…0148a0             65 67 69 6e 0a 20 20 66 73 70 6c 69 74 20 28 20 70 61 74 68 2c 20 64 69 72 2c 20 6e 61 6d 65 2c   ┆egin   fsplit ( path, dir, name,┆
0x0148a0…0148c0             20 65 78 74 29 3b 0a 20 20 69 66 20 65 78 74 20 3d 20 27 27 20 74 68 65 6e 0a 20 20 20 20 62 65   ┆ ext);   if ext = '' then     be┆
0x0148c0…0148e0             67 69 6e 0a 20 20 20 20 70 61 74 68 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 73 72 63 5f   ┆gin     path:= dir + name + src_┆
0x0148e0…014900             65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 70 61 74 68 29   ┆extension;     if lookup ( path)┆
0x014900…014920             20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20   ┆ then  (*  ok  *)     else      ┆
0x014920…014940             20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 61 74 68 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b   ┆ begin       path:= dir + name +┆
0x014940…014960             20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70   ┆ comp_extension;       if lookup┆
0x014960…014980             20 28 20 70 61 74 68 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20   ┆ ( path) then  (*  ok  *)       ┆
0x014980…0149a0             65 6c 73 65 20 70 61 74 68 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 0a 20 20 20 20 20 20 65 6e 64   ┆else path:= dir + name       end┆
0x0149a0…0149c0             0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 0c 0a 0a 50 72 6f 63 65 64 75 72 65 20   ┆     end   end;       Procedure ┆
0x0149c0…0149e0             63 68 65 63 6b 5f 70 61 72 61 6d 73 20 3b 0a 20 28 2a 20 20 72 65 61 64 20 6c 69 73 74 20 6f 66   ┆check_params ;  (*  read list of┆
0x0149e0…014a00             20 70 61 72 61 6d 65 74 65 72 73 0a 20 2d 2d 20 20 61 6e 64 20 63 68 65 63 6b 20 74 68 61 74 20   ┆ parameters  --  and check that ┆
0x014a00…014a20 (5, 1, 1)   73 6f 75 72 63 65 20 66 69 6c 65 73 20 65 78 69 73 74 0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20   ┆source files exist  --  returns ┆
0x014a20…014a40             6f 72 20 68 61 6c 74 73 20 74 68 65 20 70 72 6f 67 72 61 6d 0a 20 2d 2d 20 20 47 6c 6f 62 61 6c   ┆or halts the program  --  Global┆
0x014a40…014a60             73 3a 20 20 73 6f 75 72 63 65 2c 20 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 6c 65 66 74 73   ┆s:  source, src_extension, lefts┆
0x014a60…014a80             69 64 65 0a 20 2a 29 0a 0a 20 20 76 61 72 0a 20 20 20 20 20 64 69 72 09 3a 20 20 64 69 72 73 74   ┆ide  *)    var      dir :  dirst┆
0x014a80…014aa0             72 3b 0a 20 20 20 20 20 6e 61 6d 65 09 3a 20 20 6e 61 6d 65 73 74 72 3b 0a 20 20 20 20 20 65 78   ┆r;      name :  namestr;      ex┆
0x014aa0…014ac0             74 09 3a 20 20 65 78 74 73 74 72 3b 0a 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 28 20 70 61 72   ┆t :  extstr;    begin   if ( par┆
0x014ac0…014ae0             61 6d 63 6f 75 6e 74 20 3d 20 30 20 29 20 6f 72 20 28 20 70 61 72 61 6d 73 74 72 20 28 20 31 29   ┆amcount = 0 ) or ( paramstr ( 1)┆
0x014ae0…014b00             20 3d 20 27 48 45 4c 50 27 20 29 0a 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69   ┆ = 'HELP' )   then begin     wri┆
0x014b00…014b20             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 48 65 6c 70 20 69 6e 66 6f 72 6d 61 74 69 6f 6e   ┆teln ( output, 'Help information┆
0x014b20…014b40             20 66 6f 72 20 43 72 6f 73 73 20 6c 69 6e 6b 65 72 20 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65   ┆ for Cross linker :');     write┆
0x014b40…014b60             6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 27 54 68 65 20 70 72 6f 67 72 61 6d 20 77 69   ┆ln ( output,     'The program wi┆
0x014b60…014b80             6c 6c 20 67 65 6e 65 72 61 74 65 20 61 20 52 43 35 30 30 30 20 63 6f 72 65 69 6d 61 67 65 20 63   ┆ll generate a RC5000 coreimage c┆
0x014b80…014ba0             6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆ontaining all ');     writeln ( ┆
0x014ba0…014bc0             6f 75 74 70 75 74 2c 0a 20 20 20 20 27 74 68 65 20 73 70 65 63 69 66 69 65 64 20 6f 62 6a 65 63   ┆output,     'the specified objec┆
0x014bc0…014be0             74 20 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 6c 69 62   ┆t programs and the necessary lib┆
0x014be0…014c00             72 61 72 79 20 72 6f 75 74 69 6e 65 73 2e 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆rary routines.');     writeln ( ┆
0x014c00…014c20 (5, 1, 2)   6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆output);     writeln ( output, '┆
0x014c20…014c40             43 61 6c 6c 20 73 79 6e 74 61 78 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆Call syntax:');     writeln ( ou┆
0x014c40…014c60             74 70 75 74 2c 0a 20 20 20 20 20 20 27 43 52 4f 53 4c 49 4e 4b 20 3c 70 61 72 61 6d 65 74 65 72   ┆tput,       'CROSLINK <parameter┆
0x014c60…014c80             3e 20 2e 2e 2e 20 3c 70 61 72 61 6d 65 74 65 72 3e 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e   ┆> ... <parameter>');     writeln┆
0x014c80…014ca0             20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 3c 70 61 72 61 6d 65 74 65   ┆ ( output,       '     <paramete┆
0x014ca0…014cc0             72 3e 20 3a 20 20 20 20 20 20 20 3d 3c 66 69 6c 65 70 61 74 68 3e 2d 3c 77 6f 72 6b 64 69 72 3e   ┆r> :       =<filepath>-<workdir>┆
0x014cc0…014ce0             20 20 20 6e 61 6d 65 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 27 29 3b 0a 20   ┆   name of destination file');  ┆
0x014ce0…014d00             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20   ┆   writeln ( output,       '    ┆
0x014d00…014d20             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 3c 77 6f 72 6b 64 69 72 3e 20   ┆                     -<workdir> ┆
0x014d20…014d40             20 20 69 73 20 6f 6e 6c 79 20 6e 65 65 64 65 64 20 69 66 20 6e 6f 74 20 63 75 72 72 65 6e 74 20   ┆  is only needed if not current ┆
0x014d40…014d60             64 69 72 65 63 74 6f 72 79 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆directory');     writeln ( outpu┆
0x014d60…014d80             74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆t,       '                      ┆
0x014d80…014da0             20 20 20 50 41 52 41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 20 20 20 20 20 20 6e 61 6d 65 20   ┆   PARAMIN-<filepath>      name ┆
0x014da0…014dc0             6f 66 20 66 69 6c 65 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20 20 77   ┆of file with parameters');     w┆
0x014dc0…014de0             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20   ┆riteln ( output,       '        ┆
0x014de0…014e00             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72   ┆                 SOURCEPATH-<dir┆
0x014e00…014e20 (5, 1, 3)   70 61 74 68 3e 20 20 20 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 20 66 6f 72 20 6f 62 6a 65   ┆path>    directory path for obje┆
0x014e20…014e40             63 74 73 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20   ┆cts');     writeln ( output,    ┆
0x014e40…014e60             20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 41   ┆   '                         STA┆
0x014e60…014e80             52 54 2d 3c 68 65 78 3e 2d 3c 68 65 78 3e 20 20 20 20 20 20 20 73 65 74 20 62 61 73 65 20 61 6e   ┆RT-<hex>-<hex>       set base an┆
0x014e80…014ea0             64 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆d displacement');     writeln ( ┆
0x014ea0…014ec0             6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆output,       '                 ┆
0x014ec0…014ee0             20 20 20 20 20 20 20 20 4d 41 50 2d 3c 79 65 73 6e 6f 3e 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆        MAP-<yesno>             ┆
0x014ee0…014f00             6c 69 73 74 20 69 6e 63 6c 75 64 65 64 20 70 72 6f 67 72 61 6d 73 27 29 3b 0a 20 20 20 20 77 72   ┆list included programs');     wr┆
0x014f00…014f20             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20   ┆iteln ( output,       '         ┆
0x014f20…014f40             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 52 49 4e 54 2d 3c 79 65 73 6e 6f 6e 75 6d 62   ┆                PRINT-<yesnonumb┆
0x014f40…014f60             3e 20 20 20 20 20 20 20 6c 69 73 74 20 6f 66 20 63 6f 72 65 69 6d 61 67 65 27 29 3b 0a 20 20 20   ┆>       list of coreimage');    ┆
0x014f60…014f80             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20   ┆ writeln ( output,       '      ┆
0x014f80…014fa0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 49 42 2d 3c 66 69 6c 65 70 61 74 68   ┆                   LIB-<filepath┆
0x014fa0…014fc0             3e 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 6c 69 62 72 61 72 79 20 66 69 6c 65 27   ┆>          name of library file'┆
0x014fc0…014fe0             29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27   ┆);     writeln ( output,       '┆
0x014fe0…015000             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 66 69 6c 65 70 61   ┆                         <filepa┆
0x015000…015020 (5, 1, 4)   74 68 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 73 6f 75 72 63 65 20   ┆th>              name of source ┆
0x015020…015040             66 69 6c 65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20   ┆file');     writeln ( output);  ┆
0x015040…015060             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20   ┆   writeln ( output,       '    ┆
0x015060…015080             20 20 20 20 20 20 20 20 20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 66 6f 72 20   ┆          Default extension for ┆
0x015080…0150a0             6c 69 62 72 61 72 79 20 61 6e 64 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 69 73 20 22 27 2c 0a   ┆library and object files is "', ┆
0x0150a0…0150c0             09 09 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 27 22 20 20 27 29 3b 0a 20 20 20 20 77 72 69   ┆  src_extension, '"  ');     wri┆
0x0150c0…0150e0             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70   ┆teln ( output);     write ( outp┆
0x0150e0…015100             75 74 2c 20 27 21 20 53 70 65 63 69 66 79 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20   ┆ut, '! Specify parameters');    ┆
0x015100…015120             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 68 61 6c 74 20 28 20 31   ┆ writeln ( output);     halt ( 1┆
0x015120…015140             29 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 6c 65 66 74 73 69 64 65 20 3d 20 27 27 0a 20   ┆)     end;    if leftside = ''  ┆
0x015140…015160             20 74 68 65 6e 0a 20 20 20 20 6c 65 66 74 73 69 64 65 3a 3d 20 27 43 4f 52 45 49 4d 41 47 27 20   ┆ then     leftside:= 'COREIMAG' ┆
0x015160…015180             2b 20 64 65 73 74 5f 65 78 74 65 6e 73 69 6f 6e 0a 20 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69   ┆+ dest_extension   else     begi┆
0x015180…0151a0             6e 0a 20 20 20 20 66 73 70 6c 69 74 20 28 20 6c 65 66 74 73 69 64 65 2c 20 64 69 72 2c 20 6e 61   ┆n     fsplit ( leftside, dir, na┆
0x0151a0…0151c0             6d 65 2c 20 65 78 74 29 3b 0a 20 20 20 20 69 66 20 65 78 74 20 3d 20 27 27 20 74 68 65 6e 20 20   ┆me, ext);     if ext = '' then  ┆
0x0151c0…0151e0             6c 65 66 74 73 69 64 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 64 65 73 74 5f 65 78 74   ┆leftside:= dir + name + dest_ext┆
0x0151e0…015200             65 6e 73 69 6f 6e 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 68 65   ┆ension     end;    end;  (*  che┆
0x015200…015220 (5, 1, 5)   63 6b 20 70 61 72 61 6d 73 20 20 2a 29 0a 0a 0c 0a 0a 28 2a 24 46 2b 2a 29 20 50 72 6f 63 65 64   ┆ck params  *)     (*$F+*) Proced┆
0x015220…015240             75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29 0a 62 65 67 69 6e 0a 0a 20 20 69 66 20   ┆ure myexit; (*$F-*) begin    if ┆
0x015240…015260             6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆mem_allocated then     begin    ┆
0x015260…015280             20 66 72 65 65 6d 65 6d 20 28 20 75 70 70 65 72 63 6f 72 65 2c 20 6d 61 78 69 6e 74 29 3b 0a 20   ┆ freemem ( uppercore, maxint);  ┆
0x015280…0152a0             20 20 20 66 72 65 65 6d 65 6d 20 28 20 63 6f 72 65 2c 20 6d 61 78 69 6e 74 29 3b 0a 20 20 20 20   ┆   freemem ( core, maxint);     ┆
0x0152a0…0152c0             6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6e 64 3b 0a 0a   ┆mem_allocated:= false     end;  ┆
0x0152c0…0152e0             20 20 69 66 20 28 20 65 78 69 74 63 6f 64 65 20 3c 3e 20 30 20 29 20 61 6e 64 20 28 20 65 78 69   ┆  if ( exitcode <> 0 ) and ( exi┆
0x0152e0…015300             74 63 6f 64 65 20 3c 3e 20 32 35 34 20 29 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 0a 20   ┆tcode <> 254 ) then     begin   ┆
0x015300…015320             20 20 20 69 66 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 62   ┆   if database_open then       b┆
0x015320…015340             65 67 69 6e 0a 20 20 20 20 20 20 63 6c 6f 73 65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a 20 20   ┆egin       closefile ( datf);   ┆
0x015340…015360             20 20 20 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 3b 0a 20 20 20 20 20 20 65 6e   ┆    closeindex ( inxf);       en┆
0x015360…015380             64 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 6c 6f   ┆d;     if debug7 then close ( lo┆
0x015380…0153a0             67 29 3b 0a 0a 20 20 20 20 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 20 20 28 20 27 21 20 20 65 72   ┆g);      runtime_error  ( '!  er┆
0x0153a0…0153c0             72 6f 72 20 20 69 6e 20 63 72 6f 73 6c 69 6e 6b 2e 20 27 29 3b 0a 20 20 20 20 65 78 69 74 63 6f   ┆ror  in croslink. ');     exitco┆
0x0153c0…0153e0             64 65 3a 3d 20 32 35 34 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 65 78 69 74 73 61 76 65   ┆de:= 254     end;    if exitsave┆
0x0153e0…015400             20 3c 3e 20 61 64 64 72 20 28 20 6d 79 65 78 69 74 29 20 74 68 65 6e 20 65 78 69 74 70 72 6f 63   ┆ <> addr ( myexit) then exitproc┆
0x015400…015420 (5, 1, 6)   20 3a 3d 20 65 78 69 74 73 61 76 65 3b 0a 65 6e 64 3b 0a 0a 0a 0c 0a 0a 62 65 67 69 6e 09 28 2a   ┆ := exitsave; end;      begin (*┆
0x015420…015440             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6d 61 69 6e 20 70 72 6f 67 72 61 6d 20 2d   ┆----------------- main program -┆
0x015440…015460             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 65 78 69   ┆-------------------------*)  exi┆
0x015460…015480             74 73 61 76 65 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a 65 78 69 74 70 72 6f 63 3a 3d 20 61 64 64   ┆tsave:= exitproc; exitproc:= add┆
0x015480…0154a0             72 20 28 20 6d 79 65 78 69 74 29 3b 0a 0a 01 44 20 33 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆r ( myexit);   D 3  writeln ( ou┆
0x0154a0…0154c0             74 70 75 74 2c 20 27 27 3a 37 2c 20 27 43 72 6f 73 73 20 6c 69 6e 6b 65 72 27 2c 20 76 65 72 73   ┆tput, '':7, 'Cross linker', vers┆
0x0154c0…0154e0             69 6f 6e 29 3b 0a 01 45 20 33 0a 01 49 20 33 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆ion);  E 3  I 3  writeln ( outpu┆
0x0154e0…015500             74 2c 20 27 27 3a 37 2c 20 27 43 72 6f 73 73 20 6c 69 6e 6b 65 72 20 20 72 65 6c 2e 20 25 52 25   ┆t, '':7, 'Cross linker  rel. %R%┆
0x015500…015520             2e 25 4c 25 2c 20 20 20 31 39 27 20 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61   ┆.%L%,   19' ,     copy ( sccs_da┆
0x015520…015540             74 65 2c 20 31 2c 20 32 29 2c 20 27 2e 27 2c 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65   ┆te, 1, 2), '.', copy ( sccs_date┆
0x015540…015560             2c 20 34 2c 20 32 29 2c 20 27 2e 27 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61   ┆, 4, 2), '.',     copy ( sccs_da┆
0x015560…015580             74 65 2c 20 37 2c 20 32 29 29 3b 0a 01 45 20 33 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆te, 7, 2));  E 3  writeln ( outp┆
0x015580…0155a0             75 74 29 3b 0a 0a 63 68 65 63 6b 5f 70 61 72 61 6d 73 20 3b 0a 0a 0a 20 20 20 20 20 28 2a 20 72   ┆ut);  check_params ;        (* r┆
0x0155a0…0155c0             65 73 65 72 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 62 75 66 66 65 72 20 66 6f 72 20 63 6f 72 65   ┆eserve a maximum buffer for core┆
0x0155c0…0155e0             20 69 6d 61 67 65 20 2a 29 0a 69 66 20 6d 61 78 61 76 61 69 6c 20 3c 20 36 35 35 33 35 20 74 68   ┆ image *) if maxavail < 65535 th┆
0x0155e0…015600             65 6e 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 34 2c 20 6d 61 78 61 76   ┆en call_error ( fatal, 24, maxav┆
0x015600…015620 (5, 1, 7)   61 69 6c 2c 20 27 27 29 3b 0a 67 65 74 6d 65 6d 20 28 20 63 6f 72 65 2c 20 6d 61 78 69 6e 74 29   ┆ail, ''); getmem ( core, maxint)┆
0x015620…015640             3b 0a 67 65 74 6d 65 6d 20 28 20 75 70 70 65 72 63 6f 72 65 2c 20 6d 61 78 69 6e 74 29 3b 0a 6d   ┆; getmem ( uppercore, maxint); m┆
0x015640…015660             65 6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 3d 20 74 72 75 65 3b 0a 0a 28 2a 2d 2d 20 69 6e 69 74 69   ┆em_allocated:= true;  (*-- initi┆
0x015660…015680             61 6c 69 7a 65 20 64 61 74 61 73 74 72 75 63 74 75 72 65 73 20 69 6e 20 64 61 74 61 66 69 6c 65   ┆alize datastructures in datafile┆
0x015680…0156a0             20 61 6e 64 20 69 6e 64 65 78 66 69 6c 65 09 2a 29 0a 70 6f 6c 79 66 69 6c 65 5f 63 6f 6e 66 69   ┆ and indexfile *) polyfile_confi┆
0x0156a0…0156c0             67 20 28 20 73 69 7a 65 6f 66 20 28 20 69 74 65 6d 5f 72 65 63 29 2c 20 61 6c 66 61 6c 65 6e 67   ┆g ( sizeof ( item_rec), alfaleng┆
0x0156c0…0156e0             74 68 2c 20 31 36 2c 20 31 38 2c 20 36 29 3b 0a 6d 61 6b 65 66 69 6c 65 20 20 28 20 64 61 74 66   ┆th, 16, 18, 6); makefile  ( datf┆
0x0156e0…015700             2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 64 61 74 5f 6e 61 6d 65 2c 20 73 69 7a 65   ┆, plibwork_name + dat_name, size┆
0x015700…015720             6f 66 20 28 20 69 74 65 6d 5f 72 65 63 29 20 29 3b 0a 6d 61 6b 65 69 6e 64 65 78 20 28 20 69 6e   ┆of ( item_rec) ); makeindex ( in┆
0x015720…015740             78 66 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 69 6e 78 5f 6e 61 6d 65 2c 20 61 6c   ┆xf, plibwork_name + inx_name, al┆
0x015740…015760             66 61 6c 65 6e 67 74 68 2c 20 64 75 70 6c 69 63 61 74 65 5f 6b 65 79 73 29 3b 0a 64 61 74 61 62   ┆falength, duplicate_keys); datab┆
0x015760…015780             61 73 65 5f 6f 70 65 6e 3a 3d 20 74 72 75 65 3b 0a 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a   ┆ase_open:= true; if debug7 then ┆
0x015780…0157a0             20 20 62 65 67 69 6e 0a 20 20 61 73 73 69 67 6e 20 28 20 6c 6f 67 2c 20 27 4c 4f 47 49 4e 44 45   ┆  begin   assign ( log, 'LOGINDE┆
0x0157a0…0157c0             58 2e 54 58 54 27 29 3b 0a 20 20 72 65 77 72 69 74 65 20 28 20 6c 6f 67 29 3b 0a 20 20 65 6e 64   ┆X.TXT');   rewrite ( log);   end┆
0x0157c0…0157e0             3b 0a 6c 6f 67 6e 6f 3a 3d 20 30 3b 0a 6c 61 73 74 5f 65 78 74 65 72 6e 61 6c 20 3a 3d 20 30 3b   ┆; logno:= 0; last_external := 0;┆
0x0157e0…015800             0a 66 69 6c 6c 63 68 61 72 20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 2c 20 61 6c 66 61 6c 65 6e   ┆ fillchar ( name_of_ext, alfalen┆
0x015800…015820 (5, 1, 8)   67 74 68 2c 20 30 29 3b 0a 0a 28 2a 20 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 6f 75 74   ┆gth, 0);  (*  initialize the out┆
0x015820…015840             70 75 74 20 6d 6f 64 75 6c 65 20 3a 20 20 2a 29 0a 0a 70 72 69 6e 74 5f 68 65 61 64 69 6e 67 20   ┆put module :  *)  print_heading ┆
0x015840…015860             3a 3d 20 74 72 75 65 3b 0a 0a 6f 70 65 6e 5f 66 69 6c 65 20 28 20 6f 75 74 62 69 6e 66 69 6c 65   ┆:= true;  open_file ( outbinfile┆
0x015860…015880             2c 20 6c 65 66 74 73 69 64 65 2c 20 66 6d 5f 77 72 69 74 65 20 29 3b 0a 0a 73 63 61 6e 20 3a 3d   ┆, leftside, fm_write );  scan :=┆
0x015880…0158a0             20 30 3b 0a 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3a 3d 20 30 3b 0a 61 6e 79 5f 69 6e 63 6c 75 64   ┆ 0; undef_count := 0; any_includ┆
0x0158a0…0158c0             65 64 20 3a 3d 20 74 72 75 65 3b 09 28 2a 20 61 63 74 75 61 6c 6c 79 20 6e 6f 74 20 63 6f 72 72   ┆ed := true; (* actually not corr┆
0x0158c0…0158e0             65 63 74 2c 20 62 75 74 20 68 65 6c 70 73 20 66 69 72 73 74 20 73 63 61 6e 20 2a 29 0a 66 6f 72   ┆ect, but helps first scan *) for┆
0x0158e0…015900             20 70 3a 3d 31 20 74 6f 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 64 6f 20 73 75 6d 63 61 74 61 6c 6f   ┆ p:=1 to no_of_sums do sumcatalo┆
0x015900…015920             67 5b 70 5d 3a 3d 20 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 70 72 65 6f 63 63 75 70 69 65 64 3a 3d 20   ┆g[p]:=  all_ones; preoccupied:= ┆
0x015920…015940             32 3b 20 28 2a 20 74 77 6f 20 62 79 74 65 73 20 61 72 65 20 6e 65 76 65 72 20 61 6c 6c 6f 63 61   ┆2; (* two bytes are never alloca┆
0x015940…015960             74 65 64 20 2a 29 0a 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 3a 3d 20 20 24 46 46 46 45 3b 09 09   ┆ted *) top_of_module:=  $FFFE;  ┆
0x015960…015980             28 2a 20 20 20 20 2d 20 70 72 65 6f 63 63 75 70 69 65 64 3b 20 20 2a 29 0a 73 75 6d 69 6e 64 65   ┆(*    - preoccupied;  *) suminde┆
0x015980…0159a0             78 3a 3d 20 31 3b 0a 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 73 75 6d 3a 3d 20 61 6c 6c 5f 6f   ┆x:= 1; sumcount:= 1; sum:= all_o┆
0x0159a0…0159c0             6e 65 73 3b 0a 69 6e 69 74 5f 63 72 63 74 61 62 3b 0a 0a 0a 28 2a 20 20 73 63 61 6e 20 74 68 65   ┆nes; init_crctab;   (*  scan the┆
0x0159c0…0159e0             20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 20 3a 20 20 2a 29 0a 72 65 70 65 61 74 0a 20 20 6c   ┆ parameter list :  *) repeat   l┆
0x0159e0…015a00             61 73 74 5f 73 63 61 6e 20 3a 3d 20 6e 6f 74 20 61 6e 79 5f 69 6e 63 6c 75 64 65 64 20 6f 72 20   ┆ast_scan := not any_included or ┆
0x015a00…015a20 (5, 1, 9)   28 28 73 63 61 6e 20 3e 20 30 20 29 20 61 6e 64 20 28 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3d 20   ┆((scan > 0 ) and (undef_count = ┆
0x015a20…015a40             30 29 29 3b 0a 20 20 61 6e 79 5f 69 6e 63 6c 75 64 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20   ┆0));   any_included := false;   ┆
0x015a40…015a60             61 66 74 65 72 5f 6c 69 62 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 28 2a 20 64 65 66 61 75 6c   ┆after_lib := false;    (* defaul┆
0x015a60…015a80             74 20 76 61 6c 75 65 73 20 66 6f 72 20 6f 70 74 69 6f 6e 73 20 2a 29 0a 0a 20 20 73 74 61 72 74   ┆t values for options *)    start┆
0x015a80…015aa0             5f 6d 6f 64 75 6c 65 20 3a 3d 20 30 3b 0a 20 20 73 74 61 72 74 5f 64 69 73 70 6c 20 20 3a 3d 20   ┆_module := 0;   start_displ  := ┆
0x015aa0…015ac0             24 31 30 30 3b 09 09 28 2a 20 20 20 3d 20 32 35 36 20 20 20 2a 29 0a 20 20 6d 61 70 5f 6c 61 64   ┆$100;  (*   = 256   *)   map_lad┆
0x015ac0…015ae0             64 72 20 28 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 2c 20   ┆dr ( start_module, start_displ, ┆
0x015ae0…015b00             74 6f 70 5f 6f 66 5f 62 69 6e 29 3b 0a 20 20 70 72 69 6e 74 5f 63 6f 64 65 20 3a 3d 20 66 61 6c   ┆top_of_bin);   print_code := fal┆
0x015b00…015b20             73 65 3b 0a 20 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 20 3a 3d 20 31 36 3b 09 09 28 2a 20 64   ┆se;   print_pr_line := 16;  (* d┆
0x015b20…015b40             65 66 61 75 6c 74 3a 20 31 36 20 77 6f 72 64 73 20 70 72 20 6c 69 6e 65 20 2a 29 0a 20 20 6d 61   ┆efault: 16 words pr line *)   ma┆
0x015b40…015b60             70 5f 79 65 73 20 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 0a   ┆p_yes := true;    if false then ┆
0x015b60…015b80             20 20 62 65 67 69 6e 0a 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3a 3d 20 30 3b 0a 0a 20 20 77   ┆  begin   param_index := 0;    w┆
0x015b80…015ba0             68 69 6c 65 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3c 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65   ┆hile param_index < paramlist.ite┆
0x015ba0…015bc0             6d 73 20 64 6f 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 69 6e 63 20 28 20 70 61 72 61 6d 5f 69 6e   ┆ms do    begin    inc ( param_in┆
0x015bc0…015be0             64 65 78 29 3b 0a 20 20 20 70 61 72 61 6d 74 78 74 3a 3d 20 67 65 74 70 61 72 61 6d 20 28 20 70   ┆dex);    paramtxt:= getparam ( p┆
0x015be0…015c00             61 72 61 6d 5f 69 6e 64 65 78 20 29 3b 0a 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆aram_index );    writeln ( outpu┆
0x015c00…015c20 (5, 1, 10)  74 2c 20 27 20 70 61 72 61 6d 20 27 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 3a 33 2c 20 27 3a 20   ┆t, ' param ', param_index:3, ': ┆
0x015c20…015c40             22 27 2c 20 70 61 72 61 6d 74 78 74 2c 20 27 22 27 29 3b 0a 20 20 20 65 6e 64 3b 20 20 28 2a 20   ┆"', paramtxt, '"');    end;  (* ┆
0x015c40…015c60             77 68 69 6c 65 20 20 2a 29 0a 20 20 65 6e 64 3b 20 20 20 28 2a 20 20 64 65 62 75 67 20 20 2a 29   ┆while  *)   end;   (*  debug  *)┆
0x015c60…015c80             0a 0a 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3a 3d 20 30 3b 0a 0a 20 20 73 63 61 6e 20 3a 3d   ┆    param_index := 0;    scan :=┆
0x015c80…015ca0             20 73 63 61 6e 20 2b 20 31 3b 0a 20 20 69 66 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20   ┆ scan + 1;   if last_scan then  ┆
0x015ca0…015cc0             20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a   ┆   begin     writeln ( output); ┆
0x015cc0…015ce0             20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 29 3b 0a   ┆    write ( output, '':margin); ┆
0x015ce0…015d00             20 20 20 20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3d 20 30 20 74 68 65 6e 20 77 72 69 74   ┆    if undef_count = 0 then writ┆
0x015d00…015d20             65 20 28 20 6f 75 74 70 75 74 2c 20 27 4c 69 6e 6b 69 6e 67 20 73 6f 6c 76 65 64 27 29 0a 20 20   ┆e ( output, 'Linking solved')   ┆
0x015d20…015d40             20 20 65 6c 73 65 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 4c 69 6e 6b 69 6e   ┆  else write ( output, '! Linkin┆
0x015d40…015d60             67 20 75 6e 63 6f 6d 70 6c 65 74 65 64 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆g uncompleted');     writeln ( o┆
0x015d60…015d80             75 74 70 75 74 2c 20 27 20 69 6e 3a 20 27 2c 20 73 63 61 6e 2c 20 27 20 73 63 61 6e 73 2e 27 29   ┆utput, ' in: ', scan, ' scans.')┆
0x015d80…015da0             3b 0a 20 20 20 20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3c 3e 20 30 20 74 68 65 6e 0a 20   ┆;     if undef_count <> 0 then  ┆
0x015da0…015dc0             20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 69 74 65 6d 73 3b 0a 20 20   ┆     begin       print_items;   ┆
0x015dc0…015de0             20 20 20 20 6d 61 70 5f 79 65 73 3a 3d 20 66 61 6c 73 65 3b 09 09 09 28 2a 20 20 64 6f 6e 74 20   ┆    map_yes:= false;   (*  dont ┆
0x015de0…015e00             70 72 69 6e 74 20 6d 61 70 09 2a 29 0a 20 20 20 20 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 3a 3d   ┆print map *)       param_index:=┆
0x015e00…015e20 (5, 1, 11)  20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 09 28 2a 20 20 73 6b 69 70 20 6c 69 6e 6b 69 6e   ┆ paramlist.items (*  skip linkin┆
0x015e20…015e40             67 09 2a 29 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 28 2a 20 69 6e   ┆g *)       end     end;    (* in┆
0x015e40…015e60             69 74 69 61 6c 69 7a 65 20 6c 6f 6f 70 2d 76 61 72 69 61 62 6c 65 73 20 2a 29 0a 0a 20 20 66 69   ┆itialize loop-variables *)    fi┆
0x015e60…015e80             72 73 74 5f 6f 66 5f 6d 6f 64 75 6c 65 20 3a 3d 20 32 3b 0a 20 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f   ┆rst_of_module := 2;   no_of_obj_┆
0x015e80…015ea0             66 69 6c 65 73 20 3a 3d 20 30 3b 0a 0a 20 77 68 69 6c 65 20 70 61 72 61 6d 5f 69 6e 64 65 78 20   ┆files := 0;   while param_index ┆
0x015ea0…015ec0             3c 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 69   ┆< paramlist.items do   begin   i┆
0x015ec0…015ee0             6e 63 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 29 3b 0a 20 20 70 61 72 61 6d 74 78 74 3a 3d 20   ┆nc ( param_index);   paramtxt:= ┆
0x015ee0…015f00             67 65 74 70 61 72 61 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 29 3b 0a 0a 20 20 6c 69 62   ┆getparam ( param_index );    lib┆
0x015f00…015f20             72 61 72 79 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 73 6f 75 72 63 65 5f 66 69 6c 65 20 3a 3d   ┆rary := false;    source_file :=┆
0x015f20…015f40             20 66 61 6c 73 65 3b 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 73 74 61 72 74 2d 27 2c 20 70 61   ┆ false;    if pos ( 'start-', pa┆
0x015f40…015f60             72 61 6d 74 78 74 29 20 3d 20 31 20 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20   ┆ramtxt) = 1  then     begin     ┆
0x015f60…015f80             20 28 2a 20 20 67 65 74 20 74 68 65 20 6d 6f 64 75 6c 65 20 6e 6f 2e 20 3a 20 20 2a 29 0a 0a 20   ┆ (*  get the module no. :  *)   ┆
0x015f80…015fa0             20 20 20 74 78 74 3a 3d 20 63 6f 70 79 20 28 20 70 61 72 61 6d 74 78 74 2c 20 37 2c 20 32 30 29   ┆   txt:= copy ( paramtxt, 7, 20)┆
0x015fa0…015fc0             3b 0a 20 20 20 20 69 66 20 28 74 78 74 5b 31 5d 20 3d 20 27 68 27 29 20 6f 72 20 28 20 74 78 74   ┆;     if (txt[1] = 'h') or ( txt┆
0x015fc0…015fe0             5b 31 5d 20 3d 20 27 24 27 29 20 74 68 65 6e 20 63 6f 6e 76 65 72 74 5f 74 6f 5f 68 65 78 20 28   ┆[1] = '$') then convert_to_hex (┆
0x015fe0…016000             20 74 78 74 2c 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29 0a 20 20 20 20 65 6c 73 65 20 76 61 6c   ┆ txt, start_module)     else val┆
0x016000…016020 (5, 1, 12)  20 28 20 74 78 74 2c 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 77 72 6b 29 3b 0a 0a 20 20 20   ┆ ( txt, start_module, wrk);     ┆
0x016020…016040             20 69 66 20 28 73 74 61 72 74 5f 6d 6f 64 75 6c 65 20 3c 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f   ┆ if (start_module < first_mem_no┆
0x016040…016060             20 29 20 6f 72 20 28 32 35 36 20 3c 3d 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29 20 74 68 65 6e   ┆ ) or (256 <= start_module) then┆
0x016060…016080             0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 35 2c 20 70   ┆       call_error ( fatal, 25, p┆
0x016080…0160a0             61 72 61 6d 5f 69 6e 64 65 78 20 2c 20 27 27 29 3b 0a 0a 20 20 20 20 73 74 61 72 74 5f 6d 6f 64   ┆aram_index , '');      start_mod┆
0x0160a0…0160c0             75 6c 65 20 3a 3d 20 28 73 74 61 72 74 5f 6d 6f 64 75 6c 65 20 6d 6f 64 20 36 34 29 20 64 69 76   ┆ule := (start_module mod 64) div┆
0x0160c0…0160e0             20 32 3b 0a 0a 0a 20 20 20 20 28 2a 20 20 67 65 74 20 74 68 65 20 64 69 73 70 6c 61 63 65 6d 65   ┆ 2;       (*  get the displaceme┆
0x0160e0…016100             6e 74 20 3a 20 20 2a 29 0a 0a 20 20 20 20 70 3a 3d 20 70 6f 73 20 28 20 27 2d 27 2c 20 74 78 74   ┆nt :  *)      p:= pos ( '-', txt┆
0x016100…016120             29 3b 0a 01 44 20 33 0a 20 20 20 20 69 66 20 70 20 3d 20 30 20 74 68 65 6e 20 20 63 61 6c 6c 5f   ┆);  D 3     if p = 0 then  call_┆
0x016120…016140             65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 39 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27   ┆error ( fatal, 9, param_index, '┆
0x016140…016160             20 20 6e 6f 20 64 69 73 70 6c 20 27 29 3b 0a 01 45 20 33 0a 01 49 20 33 0a 20 20 20 20 69 66 20   ┆  no displ ');  E 3  I 3     if ┆
0x016160…016180             70 20 3d 20 30 20 74 68 65 6e 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20   ┆p = 0 then  call_error ( fatal, ┆
0x016180…0161a0             39 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 20 20 6e 6f 20 64 69 73 70 6c 61 63 65 6d 65   ┆9, param_index, '  no displaceme┆
0x0161a0…0161c0             6e 74 20 27 29 3b 0a 01 45 20 33 0a 0a 20 20 20 20 64 65 6c 65 74 65 20 28 20 74 78 74 2c 20 31   ┆nt ');  E 3      delete ( txt, 1┆
0x0161c0…0161e0             2c 20 70 29 3b 0a 20 20 20 20 69 66 20 28 20 74 78 74 5b 31 5d 20 3d 20 27 68 27 29 20 6f 72 20   ┆, p);     if ( txt[1] = 'h') or ┆
0x0161e0…016200             28 20 74 78 74 5b 31 5d 20 3d 20 27 24 27 29 20 74 68 65 6e 20 20 63 6f 6e 76 65 72 74 5f 74 6f   ┆( txt[1] = '$') then  convert_to┆
0x016200…016220 (5, 1, 13)  5f 68 65 78 20 28 20 74 78 74 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 20 29 0a 20 20 20 20 20 65   ┆_hex ( txt, start_displ )      e┆
0x016220…016240             6c 73 65 20 76 61 6c 20 28 20 74 78 74 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 2c 20 77 72 6b 29   ┆lse val ( txt, start_displ, wrk)┆
0x016240…016260             3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 27   ┆;     if debug1 then writeln ( '┆
0x016260…016280             20 64 69 73 70 6c 20 3a 20 24 27 2c 20 73 74 72 68 65 78 28 73 74 61 72 74 5f 64 69 73 70 6c 29   ┆ displ : $', strhex(start_displ)┆
0x016280…0162a0             2c 20 27 20 20 20 27 2c 20 74 78 74 29 3b 0a 0a 20 20 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20   ┆, '   ', txt);      map_laddr ( ┆
0x0162a0…0162c0             73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 2c 20 73 74 61 72 74   ┆start_module, start_displ, start┆
0x0162c0…0162e0             5f 61 64 64 72 29 3b 0a 20 20 20 20 77 69 74 68 20 74 6f 70 5f 6f 66 5f 62 69 6e 20 64 6f 0a 20   ┆_addr);     with top_of_bin do  ┆
0x0162e0…016300             20 20 20 20 69 66 20 28 73 74 61 72 74 5f 61 64 64 72 20 2e 20 62 61 73 65 20 3c 20 62 61 73 65   ┆    if (start_addr . base < base┆
0x016300…016320             20 29 20 6f 72 0a 20 20 20 20 20 28 28 73 74 61 72 74 5f 61 64 64 72 20 2e 20 62 61 73 65 20 3d   ┆ ) or      ((start_addr . base =┆
0x016320…016340             20 62 61 73 65 29 20 61 6e 64 20 28 73 74 61 72 74 5f 61 64 64 72 20 2e 20 64 69 73 70 20 3c 20   ┆ base) and (start_addr . disp < ┆
0x016340…016360             64 69 73 70 29 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20   ┆disp)) then        call_error ( ┆
0x016360…016380             66 61 74 61 6c 2c 20 39 20 28 2a 20 69 6c 6c 65 67 61 6c 20 76 61 6c 75 65 20 6f 66 20 73 74 61   ┆fatal, 9 (* illegal value of sta┆
0x016380…0163a0             72 74 20 70 61 72 61 6d 20 2a 29 2c 0a 20 20 20 20 20 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c   ┆rt param *),        param_index,┆
0x0163a0…0163c0             20 73 74 72 68 65 78 20 28 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29 20 2b 20 27 3a 27 20 2b 20 73   ┆ strhex (start_module) + ':' + s┆
0x0163c0…0163e0             74 72 68 65 78 20 28 20 73 74 61 72 74 5f 64 69 73 70 6c 29 29 3b 0a 20 20 20 20 69 66 20 6c 61   ┆trhex ( start_displ));     if la┆
0x0163e0…016400             73 74 5f 73 63 61 6e 20 61 6e 64 20 28 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 3e 20   ┆st_scan and ( no_of_obj_files > ┆
0x016400…016420 (5, 1, 14)  31 20 29 20 74 68 65 6e 20 6f 75 74 5f 73 75 6d 3b 0a 0a 20 20 20 20 74 6f 70 5f 6f 66 5f 62 69   ┆1 ) then out_sum;      top_of_bi┆
0x016420…016440             6e 20 3a 3d 20 73 74 61 72 74 5f 61 64 64 72 3b 0a 20 20 20 20 28 2a 20 66 6f 72 63 65 20 73 63   ┆n := start_addr;     (* force sc┆
0x016440…016460             61 6e 6e 69 6e 67 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 61 64 6a   ┆anning all files in order to adj┆
0x016460…016480             75 73 74 20 74 6f 70 5f 6f 66 5f 62 69 6e 20 2a 29 0a 20 20 20 20 61 66 74 65 72 5f 6c 69 62 20   ┆ust top_of_bin *)     after_lib ┆
0x016480…0164a0             3a 3d 20 74 72 75 65 3b 0a 0a 20 20 20 20 69 66 20 66 61 6c 73 65 20 7b 64 65 62 75 67 7d 20 74   ┆:= true;      if false {debug} t┆
0x0164a0…0164c0             68 65 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20   ┆hen      writeln ( output, '    ┆
0x0164c0…0164e0             53 54 41 52 54 20 20 27 2c 20 73 74 72 68 65 78 20 28 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29   ┆START  ', strhex ( start_module)┆
0x0164e0…016500             2c 20 27 3a 27 2c 20 73 74 72 68 65 78 20 28 20 73 74 61 72 74 5f 64 69 73 70 6c 29 29 3b 0a 0a   ┆, ':', strhex ( start_displ));  ┆
0x016500…016520             20 20 65 6e 64 20 28 2a 20 20 70 61 72 61 6d 20 3d 20 27 73 74 61 72 74 2d 27 20 2e 2e 2e 2e 2e   ┆  end (*  param = 'start-' .....┆
0x016520…016540             2e 2e 20 20 2a 29 0a 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 70 72 69 6e   ┆..  *)    else    if pos ( 'prin┆
0x016540…016560             74 2d 27 2c 20 70 61 72 61 6d 74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69   ┆t-', paramtxt) = 1 then     begi┆
0x016560…016580             6e 0a 20 20 20 20 69 66 20 66 61 6c 73 65 20 7b 64 65 62 75 67 7d 20 74 68 65 6e 20 20 77 72 69   ┆n     if false {debug} then  wri┆
0x016580…0165a0             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 50 52 49 4e 54 20 20 27 2c 20 70 61 72 61   ┆teln ( output, '  PRINT  ', para┆
0x0165a0…0165c0             6d 74 78 74 29 3b 0a 20 20 20 20 74 78 74 3a 3d 20 63 6f 70 79 20 28 20 70 61 72 61 6d 74 78 74   ┆mtxt);     txt:= copy ( paramtxt┆
0x0165c0…0165e0             2c 20 37 2c 20 32 30 29 3b 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 79 65 73 27 2c 20 74 78   ┆, 7, 20);     if pos ( 'yes', tx┆
0x0165e0…016600             74 20 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70   ┆t ) > 0 then       begin       p┆
0x016600…016620 (5, 1, 15)  72 69 6e 74 5f 63 6f 64 65 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 70 3a 3d 20 30 3b 0a 20   ┆rint_code:= true;       p:= 0;  ┆
0x016620…016640             20 20 20 20 20 76 61 6c 20 28 20 63 6f 70 79 20 28 20 74 78 74 2c 20 35 2c 20 32 30 29 2c 20 70   ┆     val ( copy ( txt, 5, 20), p┆
0x016640…016660             2c 20 77 72 6b 29 3b 0a 20 20 20 20 20 20 69 66 20 70 20 3e 20 30 20 74 68 65 6e 20 70 72 69 6e   ┆, wrk);       if p > 0 then prin┆
0x016660…016680             74 5f 70 72 5f 6c 69 6e 65 3a 3d 20 70 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65   ┆t_pr_line:= p       end     else┆
0x016680…0166a0             0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 6e 6f 27 2c 20 74 78 74 20 29 20 3e 20 30 20 20 74   ┆     if pos ( 'no', txt ) > 0  t┆
0x0166a0…0166c0             68 65 6e 20 70 72 69 6e 74 5f 63 6f 64 65 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a   ┆hen print_code:= false     else ┆
0x0166c0…0166e0             20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 31 34 2c 20 70 61   ┆      call_error ( fatal, 14, pa┆
0x0166e0…016700             72 61 6d 5f 69 6e 64 65 78 2c 20 27 70 72 69 6e 74 2d 27 20 2b 20 74 78 74 29 3b 0a 0a 20 20 20   ┆ram_index, 'print-' + txt);     ┆
0x016700…016720             20 69 66 20 66 61 6c 73 65 20 7b 64 65 62 75 67 7d 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20   ┆ if false {debug} then  writeln ┆
0x016720…016740             28 20 6f 75 74 70 75 74 2c 20 27 20 20 50 52 49 4e 54 20 20 27 2c 20 70 72 69 6e 74 5f 63 6f 64   ┆( output, '  PRINT  ', print_cod┆
0x016740…016760             65 3a 38 2c 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 3a 36 29 3b 0a 0a 20 20 20 20 65 6e 64 20   ┆e:8, print_pr_line:6);      end ┆
0x016760…016780             28 2a 20 61 20 3d 20 27 70 72 69 6e 74 27 20 2e 2e 2e 2e 2e 2e 2e 20 20 2a 29 0a 0a 20 20 65 6c   ┆(* a = 'print' .......  *)    el┆
0x016780…0167a0             73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 6c 69 62 2d 27 2c 20 70 61 72 61 6d 74 78 74 29   ┆se    if pos ( 'lib-', paramtxt)┆
0x0167a0…0167c0             20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 64 65 6c 65 74 65 20 28   ┆ = 1 then     begin     delete (┆
0x0167c0…0167e0             20 70 61 72 61 6d 74 78 74 2c 20 31 2c 20 34 29 3b 0a 20 20 20 20 73 65 74 5f 65 78 74 65 6e 73   ┆ paramtxt, 1, 4);     set_extens┆
0x0167e0…016800             69 6f 6e 20 28 20 70 61 72 61 6d 74 78 74 29 3b 0a 20 20 20 20 6c 69 62 72 61 72 79 20 3a 3d 20   ┆ion ( paramtxt);     library := ┆
0x016800…016820 (6, 0, 1)   74 72 75 65 3b 0a 20 20 20 20 73 6f 75 72 63 65 5f 66 69 6c 65 20 3a 3d 20 74 72 75 65 3b 0a 20   ┆true;     source_file := true;  ┆
0x016820…016840             20 20 20 65 6e 64 20 28 2a 20 61 20 3d 20 27 6c 69 62 27 20 2e 2e 2e 2e 2e 2e 2e 20 2a 29 0a 0a   ┆   end (* a = 'lib' ....... *)  ┆
0x016840…016860             20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 6d 61 70 2d 27 2c 20 70 61 72 61 6d   ┆  else    if pos ( 'map-', param┆
0x016860…016880             74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 74 78 74   ┆txt) = 1 then     begin      txt┆
0x016880…0168a0             3a 3d 20 63 6f 70 79 20 28 20 70 61 72 61 6d 74 78 74 2c 20 35 2c 20 32 30 29 3b 0a 20 20 20 20   ┆:= copy ( paramtxt, 5, 20);     ┆
0x0168a0…0168c0             69 66 20 70 6f 73 20 28 20 79 65 73 2c 20 74 78 74 20 29 20 3e 20 30 20 74 68 65 6e 20 20 20 6d   ┆if pos ( yes, txt ) > 0 then   m┆
0x0168c0…0168e0             61 70 5f 79 65 73 3a 3d 20 74 72 75 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 70 6f   ┆ap_yes:= true     else     if po┆
0x0168e0…016900             73 20 28 20 6e 6f 2c 20 74 78 74 20 29 20 3e 20 30 20 74 68 65 6e 20 20 20 6d 61 70 5f 79 65 73   ┆s ( no, txt ) > 0 then   map_yes┆
0x016900…016920             3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72   ┆:= false     else       call_err┆
0x016920…016940             6f 72 20 28 20 66 61 74 61 6c 2c 20 32 30 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 27 29   ┆or ( fatal, 20, param_index, '')┆
0x016940…016960             3b 0a 0a 20 20 20 20 65 6e 64 20 28 2a 20 61 20 3d 20 27 6d 61 70 27 20 2e 2e 2e 2e 2e 2e 2e 20   ┆;      end (* a = 'map' ....... ┆
0x016960…016980             2a 29 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 64 65 62 75 67 2d 27 2c 20   ┆*)   else    if pos ( 'debug-', ┆
0x016980…0169a0             70 61 72 61 6d 74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆paramtxt) = 1 then     begin    ┆
0x0169a0…0169c0             20 63 61 73 65 20 70 61 72 61 6d 74 78 74 5b 37 5d 20 6f 66 0a 20 20 20 20 27 30 27 3a 20 20 64   ┆ case paramtxt[7] of     '0':  d┆
0x0169c0…0169e0             65 62 75 67 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 31 27 3a 20 20 64 65 62 75 67 31 3a 3d 20   ┆ebug:= true;     '1':  debug1:= ┆
0x0169e0…016a00             74 72 75 65 3b 0a 20 20 20 20 27 32 27 3a 20 20 64 65 62 75 67 32 3a 3d 20 74 72 75 65 3b 0a 20   ┆true;     '2':  debug2:= true;  ┆
0x016a00…016a20 (6, 0, 2)   20 20 20 27 33 27 3a 20 20 64 65 62 75 67 33 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 34 27 3a   ┆   '3':  debug3:= true;     '4':┆
0x016a20…016a40             20 20 64 65 62 75 67 34 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 35 27 3a 20 20 64 65 62 75 67   ┆  debug4:= true;     '5':  debug┆
0x016a40…016a60             63 61 74 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 36 27 3a 20 20 64 65 62 75 67 36 3a 3d 20 74   ┆cat:= true;     '6':  debug6:= t┆
0x016a60…016a80             72 75 65 3b 0a 20 20 20 20 27 37 27 3a 20 20 64 65 62 75 67 37 3a 3d 20 74 72 75 65 3b 0a 20 20   ┆rue;     '7':  debug7:= true;   ┆
0x016a80…016aa0             20 20 65 6e 64 0a 20 20 20 20 65 6e 64 0a 0a 20 20 65 6c 73 65 0a 0a 20 20 7b 2d 2d 2d 2d 2d 2d   ┆  end     end    else    {------┆
0x016aa0…016ac0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 6f 6c 64 0a 20 20 69 66 20 61 20 3d 20 27 62   ┆---------------  old   if a = 'b┆
0x016ac0…016ae0             69 6e 64 27 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 72 20 3a 3d 20 66 70 5f 73 79 73 74   ┆ind' then   begin   r := fp_syst┆
0x016ae0…016b00             65 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 2b 20 31 2c 20 69 2c 20 61 20 29 3b 0a 20 20   ┆em ( param_index + 1, i, a );   ┆
0x016b00…016b20             69 66 20 72 20 6d 6f 64 20 32 35 36 20 3c 3e 20 31 30 20 74 68 65 6e 0a 20 20 6d 65 73 73 5f 65   ┆if r mod 256 <> 10 then   mess_e┆
0x016b20…016b40             72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 31 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 69   ┆rror ( fatal, 21, param_index, i┆
0x016b40…016b60             74 65 6d 20 29 3b 0a 20 20 69 66 20 28 61 3d 79 65 73 29 20 6f 72 20 28 61 3d 6e 6f 29 20 74 68   ┆tem );   if (a=yes) or (a=no) th┆
0x016b60…016b80             65 6e 0a 20 20 62 69 6e 64 5f 79 65 73 20 3a 3d 20 61 20 3d 20 79 65 73 0a 20 20 65 6c 73 65 0a   ┆en   bind_yes := a = yes   else ┆
0x016b80…016ba0             20 20 6d 65 73 73 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 31 2c 20 70 61 72 61 6d 5f   ┆  mess_error ( fatal, 21, param_┆
0x016ba0…016bc0             69 6e 64 65 78 2c 20 69 74 65 6d 20 29 3b 20 28 2a 20 79 65 73 20 6f 72 20 6e 6f 20 65 78 63 70   ┆index, item ); (* yes or no excp┆
0x016bc0…016be0             65 63 74 65 64 20 2a 29 0a 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3a 3d 20 70 61 72 61 6d 5f   ┆ected *)   param_index := param_┆
0x016be0…016c00             69 6e 64 65 78 20 2b 20 32 3b 0a 20 20 65 6e 64 20 20 20 28 2a 20 61 20 3d 20 27 62 69 6e 64 27   ┆index + 2;   end   (* a = 'bind'┆
0x016c00…016c20 (6, 0, 3)   20 2a 29 0a 0a 20 20 65 6c 73 65 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ *)    else   ------------------┆
0x016c20…016c40             2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 2d 27 2c 20 70 61 72 61 6d   ┆--------}    if pos ( '-', param┆
0x016c40…016c60             74 78 74 20 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20   ┆txt ) > 0 then     call_error ( ┆
0x016c60…016c80             66 61 74 61 6c 2c 20 31 36 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 27 29 20 28 2a 20 75   ┆fatal, 16, param_index, '') (* u┆
0x016c80…016ca0             6e 6b 6e 6f 77 6e 20 6f 70 74 69 6f 6e 2d 6e 61 6d 65 20 2a 29 0a 20 20 65 6c 73 65 0a 20 20 20   ┆nknown option-name *)   else    ┆
0x016ca0…016cc0             20 73 6f 75 72 63 65 5f 66 69 6c 65 3a 3d 20 74 72 75 65 3b 0a 0a 0a 20 20 69 66 20 73 6f 75 72   ┆ source_file:= true;     if sour┆
0x016cc0…016ce0             63 65 5f 66 69 6c 65 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 0a 20 20 28 2a 20 20 27 70 61 72   ┆ce_file then   begin    (*  'par┆
0x016ce0…016d00             61 6d 74 78 74 27 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20   ┆amtxt' must contain the name of ┆
0x016d00…016d20             61 6e 20 6f 62 6a 65 63 74 20 70 72 6f 67 72 61 6d 20 28 20 66 69 6c 65 20 29 2c 0a 20 20 77 68   ┆an object program ( file ),   wh┆
0x016d20…016d40             69 63 68 20 68 61 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 62 69   ┆ich has to be included in the bi┆
0x016d40…016d60             6e 61 72 79 20 70 72 6f 67 61 6d 20 28 20 66 69 6c 65 20 29 20 2e 20 20 2a 29 0a 0a 20 20 6f 62   ┆nary progam ( file ) .  *)    ob┆
0x016d60…016d80             6a 5f 66 69 6c 65 5f 6e 61 6d 65 20 3a 3d 20 70 61 72 61 6d 74 78 74 3b 0a 20 20 73 65 74 5f 65   ┆j_file_name := paramtxt;   set_e┆
0x016d80…016da0             78 74 65 6e 73 69 6f 6e 20 28 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 29 3b 0a 20 20 6e 6f 5f   ┆xtension ( obj_file_name);   no_┆
0x016da0…016dc0             6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 3a 3d 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20   ┆of_obj_files := no_of_obj_files ┆
0x016dc0…016de0             2b 20 31 3b 0a 0a 20 20 28 2a 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3a 20 6f 6d 69 74 20 73 63   ┆+ 1;    (* optimization: omit sc┆
0x016de0…016e00             61 6e 6e 69 6e 67 20 74 68 65 20 28 6e 6f 72 6d 61 6c 29 20 73 6f 75 72 63 65 66 69 6c 65 73 20   ┆anning the (normal) sourcefiles ┆
0x016e00…016e20 (6, 0, 4)   65 78 63 65 70 74 20 20 20 2a 29 0a 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64   ┆except   *)   (*               d┆
0x016e20…016e40             75 72 69 6e 67 20 74 68 65 20 76 65 72 79 20 66 69 72 73 74 20 61 6e 64 20 6c 61 73 74 20 73 63   ┆uring the very first and last sc┆
0x016e40…016e60             61 6e 73 2c 20 61 6e 64 20 61 66 74 65 72 20 2a 29 0a 20 20 28 2a 20 20 20 20 20 20 20 20 20 20   ┆ans, and after *)   (*          ┆
0x016e60…016e80             20 20 20 20 20 61 6e 79 20 6c 69 62 72 61 72 79 2d 66 69 6c 65 73 20 20 20 20 20 20 20 20 20 20   ┆     any library-files          ┆
0x016e80…016ea0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29 0a 0a 20 20 61 66 74 65 72   ┆                     *)    after┆
0x016ea0…016ec0             5f 6c 69 62 20 3a 3d 20 61 66 74 65 72 5f 6c 69 62 20 6f 72 20 6c 69 62 72 61 72 79 3b 0a 20 20   ┆_lib := after_lib or library;   ┆
0x016ec0…016ee0             69 66 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20   ┆if no_of_obj_files = 1 then     ┆
0x016ee0…016f00             62 65 67 69 6e 0a 20 20 20 20 69 66 20 28 73 63 61 6e 20 3d 20 31 29 20 6f 72 20 6c 61 73 74 5f   ┆begin     if (scan = 1) or last_┆
0x016f00…016f20             73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20 73 74 61 72 74 5f   ┆scan then     map_laddr ( start_┆
0x016f20…016f40             6d 6f 64 75 6c 65 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 2c 20 73 74 61 72 74 5f 61 64 64 72 29   ┆module, start_displ, start_addr)┆
0x016f40…016f60             3b 0a 20 20 20 20 74 6f 70 5f 6f 66 5f 62 69 6e 20 3a 3d 20 73 74 61 72 74 5f 61 64 64 72 3b 0a   ┆;     top_of_bin := start_addr; ┆
0x016f60…016f80             20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 28 73 63 61 6e 20 3d 20 31 29 20 6f 72 20 6c 61 73   ┆    end;    if (scan = 1) or las┆
0x016f80…016fa0             74 5f 73 63 61 6e 20 6f 72 20 61 66 74 65 72 5f 6c 69 62 20 74 68 65 6e 0a 20 20 20 20 62 65 67   ┆t_scan or after_lib then     beg┆
0x016fa0…016fc0             69 6e 09 09 28 2a 20 20 72 65 61 64 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 20 2a 29 0a 0a 20 20   ┆in  (*  read object file  *)    ┆
0x016fc0…016fe0             6f 70 65 6e 5f 66 69 6c 65 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 6f 62 6a 5f 66 69 6c   ┆open_file ( in_obj_file, obj_fil┆
0x016fe0…017000             65 5f 6e 61 6d 65 2c 20 66 6d 5f 72 65 61 64 20 29 3b 0a 20 20 69 66 20 73 63 61 6e 20 3d 20 31   ┆e_name, fm_read );   if scan = 1┆
0x017000…017020 (6, 0, 5)   20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67   ┆ then  writeln ( output, '':marg┆
0x017020…017040             69 6e 2c 20 27 20 20 72 65 61 64 20 66 69 6c 65 20 3a 20 27 2c 20 6f 62 6a 5f 66 69 6c 65 5f 6e   ┆in, '  read file : ', obj_file_n┆
0x017040…017060             61 6d 65 29 3b 0a 0a 20 20 28 2a 20 20 72 65 61 64 20 73 65 67 6d 65 6e 74 20 64 65 73 63 72 69   ┆ame);    (*  read segment descri┆
0x017060…017080             70 74 6f 72 2c 20 70 61 72 74 20 31 20 3a 20 20 2a 29 0a 0a 20 20 72 65 61 64 68 65 61 64 20 28   ┆ptor, part 1 :  *)    readhead (┆
0x017080…0170a0             20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 68 65 61 64 20 29 3b 0a 0a 20 20 7b 2d 2d 2d 2d 2d 2d   ┆ in_obj_file, head );    {------┆
0x0170a0…0170c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20   ┆------------------------------- ┆
0x0170c0…0170e0             20 6f 6c 64 0a 20 20 28 2a 20 69 66 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 6e 75   ┆ old   (* if compiler_version nu┆
0x0170e0…017100             6d 62 65 72 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 73 6b 69 70 20 74 68 65 20 64 65 73 63 72   ┆mber is undefined skip the descr┆
0x017100…017120             69 70 74 6f 72 20 2a 29 0a 20 20 28 2a 20 73 65 67 6d 65 6e 74 20 61 6e 64 20 70 69 63 6b 75 70   ┆iptor *)   (* segment and pickup┆
0x017120…017140             20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 66 72 6f 6d 20 74 68 65 20 73 65 63   ┆ the version number from the sec┆
0x017140…017160             6f 6e 64 20 2a 29 0a 20 20 28 2a 20 77 6f 72 64 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 63 6f   ┆ond *)   (* word on the first co┆
0x017160…017180             64 65 70 61 67 65 20 77 68 65 72 65 61 66 74 65 72 20 74 68 65 20 66 69 6c 65 20 69 73 20 72 65   ┆depage whereafter the file is re┆
0x017180…0171a0             77 6f 75 6e 64 65 64 20 2a 29 0a 20 20 69 66 20 64 65 73 63 72 5f 79 65 73 20 74 68 65 6e 0a 20   ┆wounded *)   if descr_yes then  ┆
0x0171a0…0171c0             20 62 65 67 69 6e 0a 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62   ┆ begin   if current_version_numb┆
0x0171c0…0171e0             65 72 20 3d 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 66 6f 72 20 69 20 3a 3d 20 32   ┆er = 0 then   begin   for i := 2┆
0x0171e0…017200             20 74 6f 20 64 65 73 63 72 5f 6c 65 6e 67 74 68 20 64 69 76 20 32 20 64 6f 0a 20 20 6c 66 5f 72   ┆ to descr_length div 2 do   lf_r┆
0x017200…017220 (6, 0, 6)   65 61 64 69 6e 74 65 67 65 72 20 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 64 75 6d 6d 79 29 3b 0a   ┆eadinteger (in_obj_file,dummy); ┆
0x017220…017240             20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 20 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 64 75   ┆  lf_readinteger (in_obj_file,du┆
0x017240…017260             6d 6d 79 29 3b 20 28 2a 20 72 65 61 64 20 63 6f 6d 70 69 6c 65 20 64 61 74 65 20 2a 29 0a 20 20   ┆mmy); (* read compile date *)   ┆
0x017260…017280             6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 69 29 3b 0a 20   ┆lf_readinteger(in_obj_file,i);  ┆
0x017280…0172a0             20 77 69 74 68 20 69 20 61 73 20 74 69 6d 65 20 3a 20 63 6f 64 65 64 5f 74 69 6d 65 20 64 6f 0a   ┆ with i as time : coded_time do ┆
0x0172a0…0172c0             20 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3a 3d 20 74 69 6d 65   ┆  current_version_number := time┆
0x0172c0…0172e0             2e 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 3b 0a 20 20 6c 66 5f 72 65 73 65 74 20 28 69   ┆.compiler_version;   lf_reset (i┆
0x0172e0…017300             6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 69 6e   ┆n_obj_file);   lf_readinteger(in┆
0x017300…017320             5f 6f 62 6a 5f 66 69 6c 65 2c 20 64 65 73 63 72 5f 6c 65 6e 67 74 68 29 3b 0a 20 20 69 66 20 63   ┆_obj_file, descr_length);   if c┆
0x017320…017340             75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72   ┆urrent_version_number = compiler┆
0x017340…017360             5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20   ┆_c_version_number then   begin  ┆
0x017360…017380             20 66 69 78 65 64 5f 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 66 69 78 65 64 5f 63 5f 64 5f 6c 65 6e   ┆ fixed_d_length := fixed_c_d_len┆
0x017380…0173a0             67 74 68 3b 0a 20 20 62 69 6e 64 5f 79 65 73 20 20 20 20 20 20 20 3a 3d 20 74 72 75 65 3b 0a 20   ┆gth;   bind_yes       := true;  ┆
0x0173a0…0173c0             20 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 20 3a 3d 20 63 5f 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75   ┆ no_of_not_used := c_no_of_not_u┆
0x0173c0…0173e0             73 65 64 3b 0a 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 20 20 65 6e 64 0a 20 20 65 6c 73 65 0a   ┆sed;   end;   end;   end   else ┆
0x0173e0…017400             20 20 28 2a 20 6e 6f 74 65 20 3a 20 6e 6f 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e   ┆  (* note : no descriptor segmen┆
0x017400…017420 (6, 0, 7)   74 20 69 73 20 6f 6e 6c 79 20 70 6f 73 73 69 62 6c 65 20 69 6e 20 72 65 76 20 35 20 21 21 21 21   ┆t is only possible in rev 5 !!!!┆
0x017420…017440             21 21 20 2a 29 0a 20 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3a   ┆!! *)   current_version_number :┆
0x017440…017460             3d 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 3b 0a 20 20 70 72 65   ┆= compiler_version_number;   pre┆
0x017460…017480             6f 63 63 75 70 69 65 64 3a 3d 20 70 72 65 6f 63 63 75 70 69 65 64 20 2b 20 73 75 6d 5f 64 65 73   ┆occupied:= preoccupied + sum_des┆
0x017480…0174a0             63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2b 20 34 20 2b 20 32 2a 6e 6f 5f 6f 66 5f 73 75 6d   ┆criptor_length + 4 + 2*no_of_sum┆
0x0174a0…0174c0             73 3b 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆s;   ---------------------------┆
0x0174c0…0174e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0174e0…017500             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 70 72 65 6f 63 63 75 70 69 65 64 3a 3d 20 32 20   ┆-----------}    preoccupied:= 2 ┆
0x017500…017520             2b 20 73 75 6d 5f 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2b 20 34 20 2b 20 32 2a   ┆+ sum_descriptor_length + 4 + 2*┆
0x017520…017540             6e 6f 5f 6f 66 5f 73 75 6d 73 3b 0a 20 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 3a 3d 20 20 24   ┆no_of_sums;   top_of_module:=  $┆
0x017540…017560             46 46 46 46 20 2d 20 70 72 65 6f 63 63 75 70 69 65 64 20 2b 20 31 3b 0a 0a 20 20 77 68 69 6c 65   ┆FFFF - preoccupied + 1;    while┆
0x017560…017580             20 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f   ┆ head.descriptor_length <> stop_┆
0x017580…0175a0             6d 61 72 6b 20 64 6f 0a 20 20 20 77 69 74 68 20 68 65 61 64 20 64 6f 0a 20 20 20 20 62 65 67 69   ┆mark do    with head do     begi┆
0x0175a0…0175c0             6e 0a 0a 20 20 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 64   ┆n      {---------------------  d┆
0x0175c0…0175e0             6f 6e 65 20 69 6e 20 72 65 61 64 68 65 61 64 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67   ┆one in readhead     lf_readinteg┆
0x0175e0…017600             65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 20 29 3b   ┆er( in_obj_file,  no_of_pages );┆
0x017600…017620 (6, 0, 8)   0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65   ┆     lf_readinteger( in_obj_file┆
0x017620…017640             2c 20 20 73 69 7a 65 5f 6f 66 5f 70 61 67 65 20 29 3b 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e   ┆,  size_of_page );     lf_readin┆
0x017640…017660             74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 62 79 74 65 73 5f 6f 6e 5f 6c 61   ┆teger( in_obj_file,  bytes_on_la┆
0x017660…017680             73 74 5f 70 61 67 65 20 29 3b 0a 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20   ┆st_page );      lf_readinteger( ┆
0x017680…0176a0             69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 6b 69 6e 64 5f 6f 66 5f 6f 62 6a 20 29 3b 0a 0a 20 20   ┆in_obj_file,  kind_of_obj );    ┆
0x0176a0…0176c0             20 20 69 6e 5f 69 64 65 6e 74 69 66 69 65 72 28 20 6e 61 6d 65 5f 6f 66 5f 6f 62 6a 20 29 3b 0a   ┆  in_identifier( name_of_obj ); ┆
0x0176c0…0176e0             0a 20 20 20 20 69 6e 5f 70 6f 69 6e 74 28 20 65 6e 74 72 79 5f 70 6f 69 6e 74 20 29 3b 0a 20 20   ┆     in_point( entry_point );   ┆
0x0176e0…017700             20 20 69 6e 5f 70 6f 69 6e 74 28 20 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 20 29 3b 0a 20   ┆  in_point( exception_point );  ┆
0x017700…017720             20 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63   ┆   if current_version_number = c┆
0x017720…017740             6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 74 68 65 6e 0a 20 20 20 20   ┆ompiler_version_number then     ┆
0x017740…017760             69 6e 5f 70 6f 69 6e 74 28 20 65 78 69 74 5f 70 6f 69 6e 74 20 29 3b 0a 0a 20 20 20 20 6c 66 5f   ┆in_point( exit_point );      lf_┆
0x017760…017780             72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 64 65 66 61 75   ┆readinteger( in_obj_file,  defau┆
0x017780…0177a0             6c 74 5f 61 70 70 65 74 69 74 65 20 29 3b 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65   ┆lt_appetite );     lf_readintege┆
0x0177a0…0177c0             72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 61 70 70 65 74 69 74 65 20 29 3b 0a 20 20 20   ┆r( in_obj_file,  appetite );    ┆
0x0177c0…0177e0             20 66 6f 72 20 69 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 20 64 6f   ┆ for i := 1 to no_of_not_used do┆
0x0177e0…017800             0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c   ┆     lf_readinteger(in_obj_file,┆
0x017800…017820 (6, 0, 9)   20 6e 6f 74 5f 75 73 65 64 20 28 69 29 29 3b 0a 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ not_used (i));     ------------┆
0x017820…017840             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x017840…017860             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 7d 0a 0a 20 20 20 20 77 61 6e 74 65 64 3a 3d 20 6b 69 6e 64   ┆----------- }      wanted:= kind┆
0x017860…017880             20 3c 3d 20 33 3b 09 09 28 2a 20 73 6b 69 70 20 6f 70 65 6e 20 72 6f 75 74 69 6e 65 73 20 69 6e   ┆ <= 3;  (* skip open routines in┆
0x017880…0178a0             20 6c 69 62 72 61 72 79 20 2a 29 0a 20 20 20 20 69 6e 5f 70 61 72 61 6d 73 20 28 20 6e 6f 5f 6f   ┆ library *)     in_params ( no_o┆
0x0178a0…0178c0             66 5f 70 61 72 61 6d 73 2c 20 6f 62 6a 5f 70 61 72 61 6d 73 2c 20 68 65 61 64 2e 6e 61 6d 65 29   ┆f_params, obj_params, head.name)┆
0x0178c0…0178e0             3b 0a 0a 0a 20 20 20 20 77 72 6b 3a 3d 20 20 6c 65 6e 67 74 68 5f 6f 66 5f 66 69 78 65 64 5f 70   ┆;       wrk:=  length_of_fixed_p┆
0x0178e0…017900             61 72 74 31 20 2b 20 6f 62 6a 5f 70 61 72 61 6d 73 2e 70 61 72 61 6d 63 6f 75 6e 74 20 2a 20 32   ┆art1 + obj_params.paramcount * 2┆
0x017900…017920             20 2a 20 73 69 7a 65 6f 66 20 28 20 77 6f 72 64 29 3b 0a 20 20 20 20 69 66 20 64 65 73 63 72 69   ┆ * sizeof ( word);     if descri┆
0x017920…017940             70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 77 72 6b 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65   ┆ptor_length <> wrk then       be┆
0x017940…017960             67 69 6e 0a 20 20 20 20 20 20 69 66 20 74 72 75 65 20 74 68 65 6e 0a 09 77 69 74 68 20 6f 62 6a   ┆gin       if true then  with obj┆
0x017960…017980             5f 70 61 72 61 6d 73 20 64 6f 0a 09 62 65 67 69 6e 0a 09 69 66 20 6e 6f 5f 6f 66 5f 70 61 72 61   ┆_params do  begin  if no_of_para┆
0x017980…0179a0             6d 73 20 3d 20 30 20 74 68 65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 72 65 61 64 69 6e 74 65   ┆ms = 0 then    begin    readinte┆
0x0179a0…0179c0             67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 72 61 6d 5b 31 5d 2e 70 61 72 61   ┆ger ( in_obj_file, param[1].para┆
0x0179c0…0179e0             6d 5f 74 79 70 65 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a   ┆m_type);    readinteger ( in_obj┆
0x0179e0…017a00             5f 66 69 6c 65 2c 20 70 61 72 61 6d 5b 31 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 29 3b 0a 09 20 20   ┆_file, param[1].param_size);    ┆
0x017a00…017a20 (6, 0, 10)  65 6e 64 3b 0a 09 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 64 20 6c 65 6e 67   ┆end;  writeln ( output, ' d leng┆
0x017a20…017a40             74 2c 20 70 61 72 61 6d 73 2c 20 78 31 2c 20 78 32 20 3a 20 27 2c 20 64 65 73 63 72 69 70 74 6f   ┆t, params, x1, x2 : ', descripto┆
0x017a40…017a60             72 5f 6c 65 6e 67 74 68 3a 36 2c 0a 09 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 3a 36 2c 20 70   ┆r_length:6,    no_of_params:6, p┆
0x017a60…017a80             61 72 61 6d 5b 31 5d 2e 70 61 72 61 6d 5f 74 79 70 65 3a 36 2c 20 70 61 72 61 6d 5b 31 5d 2e 70   ┆aram[1].param_type:6, param[1].p┆
0x017a80…017aa0             61 72 61 6d 5f 73 69 7a 65 3a 36 29 3b 0a 09 65 6e 64 3b 0a 0a 20 20 20 20 20 20 63 61 6c 6c 5f   ┆aram_size:6);  end;        call_┆
0x017aa0…017ac0             65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 31 31 2c 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65   ┆error ( fatal, 11, descriptor_le┆
0x017ac0…017ae0             6e 67 74 68 2c 0a 20 20 20 20 20 20 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65   ┆ngth,        stralfa ( head.name┆
0x017ae0…017b00             29 20 2b 20 27 20 20 27 20 2b 20 73 74 72 69 6e 74 20 28 77 72 6b 29 29 3b 0a 20 20 20 20 20 20   ┆) + '  ' + strint (wrk));       ┆
0x017b00…017b20             65 6e 64 3b 20 20 28 2a 20 20 77 72 6f 6e 67 20 6e 6f 20 6f 66 20 70 61 72 61 6d 73 20 20 2a 29   ┆end;  (*  wrong no of params  *)┆
0x017b20…017b40             0a 0a 20 20 20 20 28 2a 2d 20 20 69 66 20 64 65 73 63 72 5f 79 65 73 20 74 68 65 6e 20 20 20 20   ┆      (*-  if descr_yes then    ┆
0x017b40…017b60             20 2d 2a 29 0a 20 20 20 20 28 2a 2d 20 20 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 64 65 73 63 72 5f   ┆ -*)     (*-  d_length := descr_┆
0x017b60…017b80             6c 65 6e 67 74 68 3b 20 20 2d 2a 29 0a 20 20 20 20 28 2a 2d 20 20 65 6c 73 65 20 20 20 20 64 5f   ┆length;  -*)     (*-  else    d_┆
0x017b80…017ba0             6c 65 6e 67 74 68 20 3a 3d 20 30 3b 20 20 2d 2a 29 0a 0a 20 20 20 20 63 6f 64 65 5f 62 79 74 65   ┆length := 0;  -*)      code_byte┆
0x017ba0…017bc0             73 20 3a 3d 20 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 20 20 63 6f 64 65   ┆s :=  last_page_length;     code┆
0x017bc0…017be0             5f 62 79 74 65 73 20 3a 3d 20 20 63 6f 64 65 5f 62 79 74 65 73 20 2b 20 28 6e 6f 5f 6f 66 5f 70   ┆_bytes :=  code_bytes + (no_of_p┆
0x017be0…017c00             61 67 65 73 20 2d 20 31 20 29 20 2a 20 70 61 67 65 73 69 7a 65 3b 0a 20 20 20 20 63 6f 64 65 5f   ┆ages - 1 ) * pagesize;     code_┆
0x017c00…017c20 (6, 0, 11)  77 6f 72 64 73 20 3a 3d 20 28 63 6f 64 65 5f 62 79 74 65 73 20 2b 20 31 29 20 64 69 76 20 32 3b   ┆words := (code_bytes + 1) div 2;┆
0x017c20…017c40             0a 20 20 20 20 6f 63 74 65 74 73 20 20 20 20 20 3a 3d 20 63 6f 64 65 5f 77 6f 72 64 73 20 2a 20   ┆     octets     := code_words * ┆
0x017c40…017c60             32 3b 0a 0a 0a 20 20 20 20 6b 65 79 3a 3d 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 20 2b   ┆2;       key:= stralfa ( name) +┆
0x017c60…017c80             20 27 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 32 20 74   ┆ '            ';     if debug2 t┆
0x017c80…017ca0             68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 69 74 65 6d 20 3a 20 27   ┆hen writeln ( output, ' item : '┆
0x017ca0…017cc0             2c 20 6b 65 79 2c 20 27 2c 20 77 6f 72 64 73 20 3a 20 27 2c 20 63 6f 64 65 5f 77 6f 72 64 73 2c   ┆, key, ', words : ', code_words,┆
0x017cc0…017ce0             0a 20 20 20 20 20 20 27 20 20 62 79 74 65 73 20 3a 20 27 2c 20 63 6f 64 65 5f 62 79 74 65 73 29   ┆       '  bytes : ', code_bytes)┆
0x017ce0…017d00             3b 0a 20 20 20 20 73 65 61 72 63 68 20 28 20 69 74 65 6d 2c 20 69 74 65 6d 6e 6f 2c 20 6b 65 79   ┆;     search ( item, itemno, key┆
0x017d00…017d20             2c 20 6f 62 6a 5f 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 63 61 74 20 74   ┆, obj_params);     if debugcat t┆
0x017d20…017d40             68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 73 65 61 72 63   ┆hen  writeln ( output, '   searc┆
0x017d40…017d60             68 20 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 27 2c 20 69 74 65 6d 6e 6f 3a 34 2c 20 73 75 63 63 65   ┆h : ', key, ',', itemno:4, succe┆
0x017d60…017d80             73 73 3a 38 29 3b 0a 0a 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 20 20 28 2a 20   ┆ss:8);      if success then  (* ┆
0x017d80…017da0             20 66 6f 75 6e 64 20 20 2a 29 0a 20 20 20 20 65 6c 73 65 09 28 2a 20 6e 6f 74 20 69 6e 20 74 61   ┆ found  *)     else (* not in ta┆
0x017da0…017dc0             62 6c 65 20 2a 29 0a 20 20 20 20 20 20 69 66 20 6c 69 62 72 61 72 79 20 74 68 65 6e 0a 20 20 20   ┆ble *)       if library then    ┆
0x017dc0…017de0             20 20 20 20 20 77 61 6e 74 65 64 20 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 20 65 6c 73 65 0a   ┆     wanted := false       else ┆
0x017de0…017e00             09 69 6e 69 74 5f 69 74 65 6d 20 28 20 69 74 65 6d 2c 20 69 74 65 6d 6e 6f 2c 20 73 74 72 61 6c   ┆ init_item ( item, itemno, stral┆
0x017e00…017e20 (6, 0, 12)  66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 2c 20 74 72 75 65 29 3b 0a 0a 0a 20 20 20 20 69 66   ┆fa ( head.name), true);       if┆
0x017e20…017e40             20 77 61 6e 74 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 69 74 68 20   ┆ wanted then     begin     with ┆
0x017e40…017e60             69 74 65 6d 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 64 5f 61 64 64 72 20 3a 3d 20   ┆item do     begin     d_addr := ┆
0x017e60…017e80             74 6f 70 5f 6f 66 5f 62 69 6e 3b 0a 0a 20 20 20 20 28 2a 2d 20 20 20 69 66 20 62 69 6e 64 5f 79   ┆top_of_bin;      (*-   if bind_y┆
0x017e80…017ea0             65 73 20 74 68 65 6e 20 20 20 2d 2a 29 0a 20 20 20 20 28 2a 20 66 6f 72 63 65 20 6e 65 77 20 6d   ┆es then   -*)     (* force new m┆
0x017ea0…017ec0             6f 64 75 6c 65 20 69 66 20 28 64 65 73 63 72 2d 6c 65 6e 67 74 68 20 2b 20 63 6f 64 65 2d 6c 65   ┆odule if (descr-length + code-le┆
0x017ec0…017ee0             6e 67 74 68 29 20 65 78 63 65 65 64 73 0a 20 20 20 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20   ┆ngth) exceeds     the remaining ┆
0x017ee0…017f00             70 61 72 74 20 6f 66 20 63 75 72 72 65 6e 74 20 6d 6f 64 75 6c 65 20 2a 29 0a 0a 20 20 20 20 72   ┆part of current module *)      r┆
0x017f00…017f20             65 73 65 72 76 65 5f 61 72 65 61 20 28 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20   ┆eserve_area ( descriptor_length ┆
0x017f20…017f40             2b 20 6f 63 74 65 74 73 2c 20 64 5f 61 64 64 72 29 3b 0a 0a 20 20 20 20 28 2a 2d 20 20 65 6c 73   ┆+ octets, d_addr);      (*-  els┆
0x017f40…017f60             65 20 20 20 72 65 73 65 72 76 65 5f 61 72 65 61 20 28 64 5f 6c 65 6e 67 74 68 2c 20 64 5f 61 64   ┆e   reserve_area (d_length, d_ad┆
0x017f60…017f80             64 72 29 3b 20 20 20 2d 2a 29 0a 0a 20 20 20 20 69 66 20 6e 6f 74 20 6c 61 73 74 5f 73 63 61 6e   ┆dr);   -*)      if not last_scan┆
0x017f80…017fa0             20 74 68 65 6e 0a 20 20 20 20 20 20 73 61 76 65 64 5f 64 5f 61 64 64 72 20 3a 3d 20 64 5f 61 64   ┆ then       saved_d_addr := d_ad┆
0x017fa0…017fc0             64 72 0a 20 20 20 20 65 6c 73 65 20 28 2a 20 74 65 73 74 20 74 68 61 74 20 74 68 65 20 73 74 61   ┆dr     else (* test that the sta┆
0x017fc0…017fe0             72 74 2d 61 64 64 72 65 73 73 20 68 61 73 27 6e 74 20 63 68 61 6e 67 65 64 20 64 75 72 69 6e 67   ┆rt-address has'nt changed during┆
0x017fe0…018000             20 74 68 65 20 76 65 72 79 20 6c 61 73 74 20 73 63 61 6e 20 2a 29 0a 20 20 20 20 69 66 20 20 28   ┆ the very last scan *)     if  (┆
0x018000…018020 (6, 0, 13)  20 73 61 76 65 64 5f 64 5f 61 64 64 72 2e 62 61 73 65 20 3c 3e 20 64 5f 61 64 64 72 2e 62 61 73   ┆ saved_d_addr.base <> d_addr.bas┆
0x018020…018040             65 20 29 0a 20 20 20 20 6f 72 20 20 28 20 73 61 76 65 64 5f 64 5f 61 64 64 72 2e 64 69 73 70 20   ┆e )     or  ( saved_d_addr.disp ┆
0x018040…018060             3c 3e 20 64 5f 61 64 64 72 2e 64 69 73 70 20 29 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69   ┆<> d_addr.disp ) then       begi┆
0x018060…018080             6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 77 61 72 6e 2c 20 31 38 2c 20 30   ┆n       call_error ( warn, 18, 0┆
0x018080…0180a0             2c 20 27 27 29 3b 0a 01 49 20 33 0a 20 20 20 20 20 20 6c 6f 61 64 65 72 6d 61 70 5f 65 72 72 3a   ┆, '');  I 3       loadermap_err:┆
0x0180a0…0180c0             3d 20 74 72 75 65 3b 0a 01 45 20 33 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 6d 61 70 20 28 20 69   ┆= true;  E 3       print_map ( i┆
0x0180c0…0180e0             74 65 6d 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20   ┆tem);       writeln ( output, ' ┆
0x0180e0…018100             20 20 73 61 76 65 64 5f 64 5f 61 64 64 72 20 77 61 73 3a 20 27 2c 20 73 74 72 5f 61 64 64 72 20   ┆  saved_d_addr was: ', str_addr ┆
0x018100…018120             28 20 73 61 76 65 64 5f 64 5f 61 64 64 72 29 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20   ┆( saved_d_addr));       end;    ┆
0x018120…018140             20 20 6d 61 70 5f 69 6e 63 72 20 28 20 64 5f 61 64 64 72 2c 20 64 65 73 63 72 69 70 74 6f 72 5f   ┆  map_incr ( d_addr, descriptor_┆
0x018140…018160             6c 65 6e 67 74 68 2c 20 63 6f 64 65 5f 61 64 64 72 29 3b 0a 20 20 20 20 72 65 73 65 72 76 65 5f   ┆length, code_addr);     reserve_┆
0x018160…018180             61 72 65 61 20 28 20 6f 63 74 65 74 73 2c 20 63 6f 64 65 5f 61 64 64 72 29 3b 0a 20 20 20 20 6d   ┆area ( octets, code_addr);     m┆
0x018180…0181a0             61 70 5f 69 6e 63 72 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 6f 63 74 65 74 73 2c 20 74 6f 70   ┆ap_incr ( code_addr, octets, top┆
0x0181a0…0181c0             5f 6f 66 5f 62 69 6e 29 3b 0a 20 20 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61   ┆_of_bin);     map_point ( code_a┆
0x0181c0…0181e0             64 64 72 2c 20 70 61 67 65 73 69 7a 65 2c 20 65 6e 74 72 79 5f 70 6f 69 6e 74 2c 20 65 6e 74 72   ┆ddr, pagesize, entry_point, entr┆
0x0181e0…018200             79 5f 61 64 64 72 29 3b 0a 0a 20 20 20 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 3d   ┆y_addr);       if compile_date =┆
0x018200…018220 (6, 0, 14)  20 30 20 74 68 65 6e 20 67 65 74 5f 64 61 74 65 20 28 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 2c   ┆ 0 then get_date ( compile_date,┆
0x018220…018240             20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 29 3b 0a 20 20 20 20 28 2a 20 64 65 63 72 65 6d 65 6e 74   ┆ compile_time);     (* decrement┆
0x018240…018260             20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 69 66 20 74 68 65 20 6d 6f 64 75 6c 65 20 68 61 73 20 6e   ┆ undef_count if the module has n┆
0x018260…018280             6f 74 20 62 65 65 6e 20 64 65 66 69 6e 65 64 20 62 65 66 6f 72 65 20 2a 29 0a 20 20 20 20 75 6e   ┆ot been defined before *)     un┆
0x018280…0182a0             64 65 66 5f 63 6f 75 6e 74 20 3a 3d 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 2d 20 31 20 2a 20 6f   ┆def_count := undef_count - 1 * o┆
0x0182a0…0182c0             72 64 28 73 74 61 74 65 20 3d 20 75 6e 64 65 66 29 3b 0a 20 20 20 20 73 74 61 74 65 20 3a 3d 20   ┆rd(state = undef);     state := ┆
0x0182c0…0182e0             64 65 66 69 6e 65 64 3b 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 69 74 68 20 69 74 65 6d   ┆defined;     end;  (*  with item┆
0x0182e0…018300             20 20 2a 29 0a 0a 20 20 20 20 70 75 74 72 65 63 20 28 20 64 61 74 66 2c 20 69 74 65 6d 6e 6f 2c   ┆  *)      putrec ( datf, itemno,┆
0x018300…018320             20 69 74 65 6d 29 3b 0a 0a 20 20 20 20 69 66 20 64 65 62 75 67 63 61 74 20 74 68 65 6e 20 77 72   ┆ item);      if debugcat then wr┆
0x018320…018340             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 70 75 74 72 65 63 20 3a 20 27 2c 20   ┆iteln ( output, '   putrec : ', ┆
0x018340…018360             73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 2c 20 69 74 65 6d 6e 6f 3a 34 29 3b   ┆stralfa ( head.name), itemno:4);┆
0x018360…018380             0a 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 69 66 20 77 61 6e 74 65 64 20 20 2a 29 0a 0a 0a   ┆      end;  (*  if wanted  *)   ┆
0x018380…0183a0             20 20 20 20 69 66 20 64 65 73 63 72 5f 79 65 73 20 61 6e 64 20 77 61 6e 74 65 64 20 61 6e 64 20   ┆    if descr_yes and wanted and ┆
0x0183a0…0183c0             6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20   ┆last_scan then       begin      ┆
0x0183c0…0183e0             20 20 28 2a 20 20 6f 75 74 70 75 74 20 74 68 65 20 72 65 64 75 63 65 64 20 64 65 73 63 72 69 70   ┆  (*  output the reduced descrip┆
0x0183e0…018400             74 6f 72 20 73 65 67 6d 65 6e 74 20 3a 20 20 2a 29 0a 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74   ┆tor segment :  *)        out_int┆
0x018400…018420 (6, 0, 15)  65 67 65 72 20 28 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 29 3b 0a 20 20 20 20   ┆eger ( descriptor_length );     ┆
0x018420…018440             20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 20 29 3b 0a 20   ┆  out_integer ( no_of_pages );  ┆
0x018440…018460             20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 70 61 67 65 73 69 7a 65 20 29 3b 0a 20   ┆     out_integer ( pagesize );  ┆
0x018460…018480             20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e   ┆     out_integer ( last_page_len┆
0x018480…0184a0             67 74 68 20 29 3b 0a 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 6b 69 6e 64   ┆gth );        out_integer ( kind┆
0x0184a0…0184c0             20 29 3b 0a 0a 20 20 20 20 20 20 6f 75 74 5f 69 64 65 6e 74 69 66 69 65 72 20 28 20 6e 61 6d 65   ┆ );        out_identifier ( name┆
0x0184c0…0184e0             20 29 3b 0a 0a 20 20 20 20 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61 64 64 72   ┆ );        map_point ( code_addr┆
0x0184e0…018500             2c 20 70 61 67 65 73 69 7a 65 2c 20 65 6e 74 72 79 5f 70 6f 69 6e 74 2c 20 6d 61 70 5f 61 64 64   ┆, pagesize, entry_point, map_add┆
0x018500…018520             72 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 61 64 64 72 20 28 20 6d 61 70 5f 61 64 64 72 20 29   ┆r );       out_addr ( map_addr )┆
0x018520…018540             3b 0a 0a 20 20 20 20 20 20 69 66 20 6b 69 6e 64 20 3d 20 70 72 6f 67 72 61 6d 6b 69 6e 64 20 74   ┆;        if kind = programkind t┆
0x018540…018560             68 65 6e 0a 09 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 70 61 67 65   ┆hen  map_point ( code_addr, page┆
0x018560…018580             73 69 7a 65 2c 20 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 2c 20 6d 61 70 5f 61 64 64 72 20   ┆size, exception_point, map_addr ┆
0x018580…0185a0             29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 61 64 64 72 20 28 20 6d 61 70 5f 61 64 64 72 20 29 3b 0a   ┆);       out_addr ( map_addr ); ┆
0x0185a0…0185c0             0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 64 65 66 61 75 6c 74 5f 61 70 70   ┆       out_integer ( default_app┆
0x0185c0…0185e0             65 74 69 74 65 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 6c 61 73   ┆etite );       out_integer ( las┆
0x0185e0…018600             74 5f 70 61 72 61 6d 5f 6f 66 66 73 65 74 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65   ┆t_param_offset );       out_inte┆
0x018600…018620 (6, 1, 1)   67 65 72 20 28 20 73 6f 75 72 63 65 5f 64 61 74 65 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69   ┆ger ( source_date );       out_i┆
0x018620…018640             6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 5f 74 69 6d 65 29 3b 0a 20 20 20 20 20 20 6f 75 74   ┆nteger ( source_time);       out┆
0x018640…018660             5f 69 6e 74 65 67 65 72 20 28 20 76 65 72 73 69 6f 6e 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69   ┆_integer ( version);       out_i┆
0x018660…018680             6e 74 65 67 65 72 20 28 20 65 78 74 72 61 20 29 3b 0a 0a 20 20 20 20 20 20 77 69 74 68 20 6f 62   ┆nteger ( extra );        with ob┆
0x018680…0186a0             6a 5f 70 61 72 61 6d 73 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 6f 75 74 5f 69   ┆j_params do         begin  out_i┆
0x0186a0…0186c0             6e 74 65 67 65 72 20 28 20 70 61 72 61 6d 63 6f 75 6e 74 29 3b 0a 09 66 6f 72 20 70 20 3a 3d 20   ┆nteger ( paramcount);  for p := ┆
0x0186c0…0186e0             31 20 74 6f 20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20 20 62 65 67 69   ┆1 to paramcount do          begi┆
0x0186e0…018700             6e 0a 20 20 20 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 70 61 72 61 6d 5b 70   ┆n          out_integer ( param[p┆
0x018700…018720             5d 2e 70 61 72 61 6d 5f 74 79 70 65 20 29 3b 0a 20 20 20 20 20 20 20 20 20 6f 75 74 5f 69 6e 74   ┆].param_type );          out_int┆
0x018720…018740             65 67 65 72 20 28 20 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 20 29 3b 0a 20 20   ┆eger ( param[p].param_size );   ┆
0x018740…018760             20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 0a 20 20 20 20 20 20 65 6e   ┆       end         end        en┆
0x018760…018780             64 3b 20 20 28 2a 20 20 6f 75 74 70 75 74 20 64 65 73 63 72 69 70 74 6f 72 20 20 73 65 67 6d 20   ┆d;  (*  output descriptor  segm ┆
0x018780…0187a0             20 2a 29 0a 0a 20 20 20 20 69 66 20 6e 6f 74 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20   ┆ *)      if not last_scan then  ┆
0x0187a0…0187c0             20 20 20 20 20 62 65 67 69 6e 09 09 09 20 28 2a 20 73 6b 69 70 20 74 68 65 20 63 6f 64 65 20 70   ┆     begin    (* skip the code p┆
0x0187c0…0187e0             61 72 74 20 2a 29 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 20 77 72 69   ┆art *)       if debug4 then  wri┆
0x0187e0…018800             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 73 65 65 6b 20 74 6f 20 20 70 6f 73 20 2b 20 20   ┆teln ( output, 'seek to  pos +  ┆
0x018800…018820 (6, 1, 2)   20 27 2c 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20 20 66 70 6f 73 3a 3d 20 66 69 6c 65 70 6f   ┆ ', octets);       fpos:= filepo┆
0x018820…018840             73 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 20 2b 20 6f 63 74 65 74 73 3b 0a 20 20 20 20 20   ┆s ( in_obj_file) + octets;      ┆
0x018840…018860             20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆ if debug4 then  writeln ( outpu┆
0x018860…018880             74 2c 20 27 73 65 65 6b 20 66 72 6f 6d 20 3a 20 20 27 2c 20 66 70 6f 73 20 2d 20 6f 63 74 65 74   ┆t, 'seek from :  ', fpos - octet┆
0x018880…0188a0             73 29 3b 0a 0a 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65   ┆s);        iocheck ( in_obj_file┆
0x0188a0…0188c0             20 29 3b 0a 20 20 20 20 20 20 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 66 70   ┆ );       seek ( in_obj_file, fp┆
0x0188c0…0188e0             6f 73 29 3b 0a 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65   ┆os);       iocheck ( in_obj_file┆
0x0188e0…018900             20 29 3b 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 77 72 69 74 65 6c 6e   ┆ );       if debug4 then writeln┆
0x018900…018920             20 28 20 6f 75 74 70 75 74 2c 20 27 20 73 65 65 6b 20 6f 6b 20 20 27 29 3b 0a 20 20 20 20 20 20   ┆ ( output, ' seek ok  ');       ┆
0x018920…018940             65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 67   ┆end     else       begin       g┆
0x018940…018960             65 74 62 6c 6f 63 6b 20 28 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20 20 7b 2d 2d 2d 2d 2d 2d   ┆etblock ( octets);       {------┆
0x018960…018980             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 73 65 65 20 69 6e 69 74 20 69 74 65 6d 20 2d   ┆---------------- see init item -┆
0x018980…0189a0             2d 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 61 6e 64 20 64 65 73 63 72 5f 79 65 73 20   ┆-       if wanted and descr_yes ┆
0x0189a0…0189c0             74 68 65 6e 0a 09 62 65 67 69 6e 0a 09 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 09 20 20 62 65 67   ┆then  begin  with item do    beg┆
0x0189c0…0189e0             69 6e 0a 09 20 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 3a 3d 20 63 6f 72 65 77 5e 5b 30 5d 3b 0a   ┆in    compile_date:= corew^[0]; ┆
0x0189e0…018a00             09 20 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 3a 3d 20 63 6f 72 65 77 5e 5b 31 5d 3b 0a 0a 09 20   ┆   compile_time:= corew^[1];    ┆
0x018a00…018a20 (6, 1, 3)   20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3c 3e 20 63 6f   ┆ if current_version_number <> co┆
0x018a20…018a40             6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 20 74 68 65 6e 0a 09 20 20 20 20 63 61 6c 6c   ┆mpile_time shr 11 then      call┆
0x018a40…018a60             5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 35 2c 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20   ┆_error ( fatal, 5, compile_time ┆
0x018a60…018a80             73 68 72 20 31 31 2c 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 29 3b 0a 09   ┆shr 11, stralfa ( head.name));  ┆
0x018a80…018aa0             20 20 65 6e 64 3b 20 20 28 2a 20 20 77 69 74 68 20 20 2a 29 0a 09 70 75 74 72 65 63 20 28 20 64   ┆  end;  (*  with  *)  putrec ( d┆
0x018aa0…018ac0             61 74 66 2c 20 69 74 65 6d 6e 6f 2c 20 69 74 65 6d 29 0a 09 65 6e 64 3b 0a 20 20 20 20 20 20 2d   ┆atf, itemno, item)  end;       -┆
0x018ac0…018ae0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x018ae0…018b00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20   ┆-------------}        if wanted ┆
0x018b00…018b20             61 6e 64 20 28 6d 61 70 5f 79 65 73 20 6f 72 20 70 72 69 6e 74 5f 63 6f 64 65 29 20 74 68 65 6e   ┆and (map_yes or print_code) then┆
0x018b20…018b40             20 20 70 72 69 6e 74 5f 6d 61 70 20 28 20 69 74 65 6d 20 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b   ┆  print_map ( item );       end;┆
0x018b40…018b60             20 20 28 2a 20 20 6c 61 73 74 20 73 63 61 6e 20 20 2a 29 0a 0a 20 20 20 20 69 66 20 66 61 6c 73   ┆  (*  last scan  *)      if fals┆
0x018b60…018b80             65 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 72 65 61   ┆e then  writeln ( output, '  rea┆
0x018b80…018ba0             64 79 20 66 6f 72 20 65 78 74 65 72 6e 20 27 29 3b 0a 20 20 20 20 72 65 61 64 69 6e 74 65 67 65   ┆dy for extern ');     readintege┆
0x018ba0…018bc0             72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 6e 6f 5f 6f 66 5f 65 78 74 29 3b 0a 0a 20 20   ┆r ( in_obj_file, no_of_ext);    ┆
0x018bc0…018be0             20 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆  if debug1 then  writeln ( outp┆
0x018be0…018c00             75 74 2c 20 27 6e 6f 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 3a 20 27 2c 20 6e 6f 5f 6f 66 5f 65   ┆ut, 'no of external : ', no_of_e┆
0x018c00…018c20 (6, 1, 4)   78 74 29 3b 0a 0a 20 20 20 20 66 6f 72 20 73 74 65 70 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f 66   ┆xt);      for step := 1 to no_of┆
0x018c20…018c40             5f 65 78 74 20 64 6f 09 28 2a 20 20 70 72 6f 63 65 73 73 20 65 78 74 65 72 6e 61 6c 20 6c 69 6e   ┆_ext do (*  process external lin┆
0x018c40…018c60             6b 73 20 20 2a 29 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 6e 5f 69 64 65 6e   ┆ks  *)       begin       in_iden┆
0x018c60…018c80             74 69 66 69 65 72 20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 29 3b 0a 20 20 20 20 20 20 72 65 61   ┆tifier ( name_of_ext);       rea┆
0x018c80…018ca0             64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 77 72 6b 29 3b 0a 20 20   ┆dinteger ( in_obj_file, wrk);   ┆
0x018ca0…018cc0             20 20 20 20 69 6e 5f 70 61 72 61 6d 73 20 28 20 77 72 6b 2c 20 6f 62 6a 5f 70 61 72 61 6d 73 2c   ┆    in_params ( wrk, obj_params,┆
0x018cc0…018ce0             20 6e 61 6d 65 5f 6f 66 5f 65 78 74 29 3b 0a 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20   ┆ name_of_ext);        if wanted ┆
0x018ce0…018d00             74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6b 65 79 3a 3d   ┆then         begin         key:=┆
0x018d00…018d20             20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 29 20 2b 20 27 20 20 20 20 20   ┆ stralfa ( name_of_ext) + '     ┆
0x018d20…018d40             20 20 20 20 20 20 20 27 3b 0a 09 73 65 61 72 63 68 20 28 20 65 78 74 5f 69 74 65 6d 2c 20 64 72   ┆       ';  search ( ext_item, dr┆
0x018d40…018d60             6e 2c 20 6b 65 79 2c 20 6f 62 6a 5f 70 61 72 61 6d 73 20 29 3b 0a 09 69 66 20 64 65 62 75 67 63   ┆n, key, obj_params );  if debugc┆
0x018d60…018d80             61 74 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 73 65 61 72   ┆at then  writeln ( output, 'sear┆
0x018d80…018da0             63 68 20 65 78 74 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 27 2c 20 64 72 6e 3a 34 2c 20 73 75 63 63   ┆ch ext: ', key, ',', drn:4, succ┆
0x018da0…018dc0             65 73 73 3a 38 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 75 63 63 65 73 73 20 74   ┆ess:8);         if not success t┆
0x018dc0…018de0             68 65 6e 0a 09 20 20 69 6e 69 74 5f 69 74 65 6d 20 28 20 65 78 74 5f 69 74 65 6d 2c 20 64 72 6e   ┆hen    init_item ( ext_item, drn┆
0x018de0…018e00             2c 20 6b 65 79 2c 20 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 6d 61 70 5f 61 64 64 72 20   ┆, key, false);         map_addr ┆
0x018e00…018e20 (6, 1, 5)   3a 3d 20 65 78 74 5f 69 74 65 6d 2e 65 6e 74 72 79 5f 61 64 64 72 3b 0a 20 20 20 20 20 20 20 20   ┆:= ext_item.entry_addr;         ┆
0x018e20…018e40             65 6e 64 3b 0a 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a   ┆end;        readinteger ( in_obj┆
0x018e40…018e60             5f 66 69 6c 65 2c 20 6e 6f 5f 6f 66 5f 75 73 65 73 29 3b 0a 20 20 20 20 20 20 69 66 20 77 61 6e   ┆_file, no_of_uses);       if wan┆
0x018e60…018e80             74 65 64 20 61 6e 64 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 09 66 6f 72 20 70 20 3a 3d   ┆ted and last_scan then  for p :=┆
0x018e80…018ea0             20 31 20 74 6f 20 6e 6f 5f 6f 66 5f 75 73 65 73 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69   ┆ 1 to no_of_uses do         begi┆
0x018ea0…018ec0             6e 0a 20 20 20 20 20 20 20 20 69 6e 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 29 3b 0a 20 20   ┆n         in_addr ( to_addr);   ┆
0x018ec0…018ee0             20 20 20 20 20 20 73 74 6f 72 65 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 2c 20 6d 61 70 5f   ┆      store_addr ( to_addr, map_┆
0x018ee0…018f00             61 64 64 72 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 09 09 28   ┆addr);         end       else  (┆
0x018f00…018f20             2a 20 20 73 6b 69 70 20 20 2a 29 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 66 70 6f 73 3a   ┆*  skip  *)         begin  fpos:┆
0x018f20…018f40             3d 20 66 69 6c 65 70 6f 73 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 20 2b 20 6e 6f 5f 6f 66   ┆= filepos ( in_obj_file) + no_of┆
0x018f40…018f60             5f 75 73 65 73 20 2a 20 73 69 7a 65 6f 66 20 28 20 61 64 64 72 65 73 73 29 3b 0a 20 20 20 20 20   ┆_uses * sizeof ( address);      ┆
0x018f60…018f80             20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 09 73 65 65 6b   ┆   iocheck ( in_obj_file);  seek┆
0x018f80…018fa0             20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 66 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 20 69   ┆ ( in_obj_file, fpos);         i┆
0x018fa0…018fc0             6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 65   ┆ocheck ( in_obj_file);         e┆
0x018fc0…018fe0             6e 64 3b 0a 20 20 20 20 20 20 65 6e 64 3b 20 28 2a 20 70 72 6f 63 65 73 73 20 65 78 74 65 72 6e   ┆nd;       end; (* process extern┆
0x018fe0…019000             61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 0a 20 20 20 20 20 20 28 2a 20 70 72 6f 63 65 73 73 20 74 68   ┆al links *)        (* process th┆
0x019000…019020 (6, 1, 6)   65 20 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 20 6c 69 73 74 20 2a 29 0a 20 20 20 20 20 20 72 65   ┆e internal link list *)       re┆
0x019020…019040             61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 6e 6f 5f 6f 66 5f   ┆adinteger ( in_obj_file,  no_of_┆
0x019040…019060             69 6e 74 20 29 3b 0a 20 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 61 6e 64 20 6c 61 73 74   ┆int );        if wanted and last┆
0x019060…019080             5f 73 63 61 6e 20 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74   ┆_scan  then         for p := 1 t┆
0x019080…0190a0             6f 20 6e 6f 5f 6f 66 5f 69 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆o no_of_int do         begin    ┆
0x0190a0…0190c0             20 20 20 20 20 69 6e 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 29 3b 0a 20 20 20 20 20 20 20   ┆     in_addr ( to_addr);        ┆
0x0190c0…0190e0             20 69 6e 5f 61 64 64 72 20 28 20 6d 61 70 5f 61 64 64 72 29 3b 0a 20 20 20 20 20 20 20 20 73 74   ┆ in_addr ( map_addr);         st┆
0x0190e0…019100             6f 72 65 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 2c 20 6d 61 70 5f 61 64 64 72 29 3b 0a 20   ┆ore_addr ( to_addr, map_addr);  ┆
0x019100…019120             20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 09 28 2a 20 73 6b 69 70 20 74 68   ┆       end       else (* skip th┆
0x019120…019140             65 20 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 20 20 20 20 20 20 20 20 62 65 67 69   ┆e internal links *)         begi┆
0x019140…019160             6e 0a 09 66 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29   ┆n  fpos:= filepos ( in_obj_file)┆
0x019160…019180             20 2b 20 6e 6f 5f 6f 66 5f 69 6e 74 20 2a 20 32 20 2a 20 73 69 7a 65 6f 66 20 28 20 61 64 64 72   ┆ + no_of_int * 2 * sizeof ( addr┆
0x019180…0191a0             65 73 73 29 3b 0a 20 20 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66   ┆ess);         iocheck ( in_obj_f┆
0x0191a0…0191c0             69 6c 65 29 3b 0a 09 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 66 70 6f 73 29   ┆ile);  seek ( in_obj_file, fpos)┆
0x0191c0…0191e0             3b 0a 20 20 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29   ┆;         iocheck ( in_obj_file)┆
0x0191e0…019200             3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64   ┆;         end;         if wanted┆
0x019200…019220 (6, 1, 7)   20 61 6e 64 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69   ┆ and last_scan then         begi┆
0x019220…019240             6e 0a 0a 0a 09 28 2a 20 70 75 74 20 62 6f 6f 74 2d 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20   ┆n    (* put boot-version number ┆
0x019240…019260             69 6e 74 6f 20 63 6f 72 65 69 6d 61 67 65 20 28 32 29 20 69 66 20 63 6f 72 72 65 63 74 20 63 6f   ┆into coreimage (2) if correct co┆
0x019260…019280             6d 70 69 6c 65 72 20 76 65 72 73 69 6f 6e 20 2a 29 0a 20 20 20 20 20 20 77 72 6b 3a 3d 20 73 77   ┆mpiler version *)       wrk:= sw┆
0x019280…0192a0             61 70 20 28 20 63 6f 72 65 77 5e 5b 31 5d 29 3b 09 09 28 2a 20 20 20 73 65 74 20 76 65 72 73 69   ┆ap ( corew^[1]);  (*   set versi┆
0x0192a0…0192c0             6f 6e 20 6e 75 6d 62 65 72 20 66 6f 72 20 62 6f 6f 74 65 72 20 20 2a 29 0a 20 20 20 20 20 20 77   ┆on number for booter  *)       w┆
0x0192c0…0192e0             72 6b 3a 3d 20 62 6f 6f 74 65 72 5f 76 65 72 73 69 6f 6e 20 73 68 6c 20 31 31 20 2b 20 28 20 77   ┆rk:= booter_version shl 11 + ( w┆
0x0192e0…019300             72 6b 20 61 6e 64 20 24 30 37 46 46 20 29 3b 0a 20 20 20 20 20 20 63 6f 72 65 77 5e 5b 31 5d 3a   ┆rk and $07FF );       corew^[1]:┆
0x019300…019320             3d 20 73 77 61 70 20 28 20 77 72 6b 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 64 65 62 75 67   ┆= swap ( wrk);          if debug┆
0x019320…019340             34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 62 65 66 6f   ┆4 then  writeln ( output, ' befo┆
0x019340…019360             72 65 20 70 75 74 62 6c 6f 63 6b 20 20 27 2c 20 6f 63 74 65 74 73 2c 20 27 20 62 79 74 65 73 20   ┆re putblock  ', octets, ' bytes ┆
0x019360…019380             27 29 3b 0a 09 70 75 74 62 6c 6f 63 6b 20 28 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20 20 20   ┆');  putblock ( octets);        ┆
0x019380…0193a0             20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆ if debug4 then  writeln ( outpu┆
0x0193a0…0193c0             74 2c 20 27 20 61 66 74 65 72 20 20 70 75 74 62 6c 6f 63 6b 20 20 27 2c 20 6f 63 74 65 74 73 2c   ┆t, ' after  putblock  ', octets,┆
0x0193c0…0193e0             20 27 20 62 79 74 65 73 20 27 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 70 72 69 6e 74 5f 63   ┆ ' bytes ');          if print_c┆
0x0193e0…019400             6f 64 65 20 74 68 65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 66 6f 72 20 70 20 3a 3d 20 31 20   ┆ode then    begin    for p := 1 ┆
0x019400…019420 (6, 1, 8)   74 6f 20 63 6f 64 65 5f 77 6f 72 64 73 20 64 6f 0a 09 20 20 20 20 62 65 67 69 6e 0a 09 20 20 20   ┆to code_words do      begin     ┆
0x019420…019440             20 20 20 69 66 20 28 70 20 6d 6f 64 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 29 20 3d 20 31 20   ┆   if (p mod print_pr_line) = 1 ┆
0x019440…019460             74 68 65 6e 0a 09 09 62 65 67 69 6e 0a 09 09 6d 61 70 5f 69 6e 63 72 20 28 20 63 6f 64 65 5f 61   ┆then   begin   map_incr ( code_a┆
0x019460…019480             64 64 72 2c 20 32 20 2a 20 70 20 2d 20 32 2c 20 6d 61 70 5f 61 64 64 72 29 3b 0a 09 09 77 72 69   ┆ddr, 2 * p - 2, map_addr);   wri┆
0x019480…0194a0             74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 68 65 78 20 28 20 66 69 72 73 74 5f 6d 65 6d 5f   ┆te ( output, strhex ( first_mem_┆
0x0194a0…0194c0             6e 6f 20 2b 20 6d 61 70 5f 61 64 64 72 2e 62 61 73 65 20 73 68 6c 20 31 29 2c 20 27 2e 27 2c 20   ┆no + map_addr.base shl 1), '.', ┆
0x0194c0…0194e0             73 74 72 68 65 78 20 28 20 6d 61 70 5f 61 64 64 72 2e 64 69 73 70 29 2c 0a 09 09 20 27 20 27 2c   ┆strhex ( map_addr.disp),    ' ',┆
0x0194e0…019500             20 73 74 72 68 65 78 20 28 70 2a 32 20 2d 20 32 29 2c 20 27 3a 27 29 0a 09 09 65 6e 64 3b 0a 09   ┆ strhex (p*2 - 2), ':')   end;  ┆
0x019500…019520             20 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 32 2c 20 73 74 72 68   ┆      write ( output, '':2, strh┆
0x019520…019540             65 78 20 28 0a 09 20 20 20 20 20 20 20 73 77 61 70 20 28 20 67 65 74 5f 62 79 74 65 20 28 20 63   ┆ex (         swap ( get_byte ( c┆
0x019540…019560             6f 64 65 5f 61 64 64 72 2c 20 70 2d 31 20 29 20 2b 20 67 65 74 5f 62 79 74 65 20 28 20 63 6f 64   ┆ode_addr, p-1 ) + get_byte ( cod┆
0x019560…019580             65 5f 61 64 64 72 2c 70 29 20 29 29 29 3b 0a 09 20 20 20 20 20 20 69 66 20 28 20 70 20 6d 6f 64   ┆e_addr,p) )));        if ( p mod┆
0x019580…0195a0             20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 29 20 3d 20 30 20 74 68 65 6e 0a 09 09 77 72 69 74 65   ┆ print_pr_line) = 0 then   write┆
0x0195a0…0195c0             6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 09 20 20 20 20 20 20 65 6e 64 3b 20 20 20 28 2a 20 20   ┆ln ( output);        end;   (*  ┆
0x0195c0…0195e0             66 6f 72 20 20 70 20 20 2a 29 0a 0a 09 20 20 20 20 69 66 20 28 20 70 20 6d 6f 64 20 70 72 69 6e   ┆for  p  *)       if ( p mod prin┆
0x0195e0…019600             74 5f 70 72 5f 6c 69 6e 65 29 20 3c 3e 20 30 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆t_pr_line) <> 0 then  writeln ( ┆
0x019600…019620 (6, 1, 9)   6f 75 74 70 75 74 29 3b 0a 09 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 0a   ┆output);      writeln ( output) ┆
0x019620…019640             09 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 69 66 20 70 72 69 6e 74 20 63 6f 64 65 20 20 2a 29   ┆     end;  (*  if print code  *)┆
0x019640…019660             0a 0a 0a 09 20 65 6e 64 3b 20 28 2a 20 6f 75 74 70 75 74 20 65 74 63 20 2a 29 0a 01 44 20 33 0a   ┆     end; (* output etc *)  D 3 ┆
0x019660…019680             0a 01 45 20 33 0a 01 49 20 33 0a 20 20 20 20 0a 20 20 20 20 69 66 20 6c 6f 61 64 65 72 6d 61 70   ┆  E 3  I 3          if loadermap┆
0x019680…0196a0             5f 65 72 72 20 74 68 65 6e 20 68 61 6c 74 20 28 20 31 29 3b 09 28 2a 20 20 73 65 74 20 65 72 72   ┆_err then halt ( 1); (*  set err┆
0x0196a0…0196c0             6f 72 6c 65 76 65 6c 20 31 20 20 2a 29 0a 01 45 20 33 0a 20 20 20 20 72 65 61 64 68 65 61 64 20   ┆orlevel 1  *)  E 3     readhead ┆
0x0196c0…0196e0             28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 68 65 61 64 29 3b 0a 0a 20 20 20 20 65 6e 64 3b 20   ┆( in_obj_file, head);      end; ┆
0x0196e0…019700             28 2a 20 77 68 69 6c 65 20 64 65 73 63 72 2d 6c 65 6e 67 74 68 20 3e 20 30 20 2a 29 0a 0a 0a 20   ┆(* while descr-length > 0 *)    ┆
0x019700…019720             20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 0a 20 20 69   ┆ close_file ( in_obj_file);    i┆
0x019720…019740             66 20 6e 6f 74 20 61 66 74 65 72 5f 6c 69 62 20 74 68 65 6e 20 20 73 74 61 72 74 5f 61 64 64 72   ┆f not after_lib then  start_addr┆
0x019740…019760             20 3a 3d 20 74 6f 70 5f 6f 66 5f 62 69 6e 3b 0a 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 72 65 61   ┆ := top_of_bin;    end;  (*  rea┆
0x019760…019780             64 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 20 2a 29 0a 0a 20 20 65 6e 64 20 20 28 2a 20 20 69 66   ┆d object file  *)    end  (*  if┆
0x019780…0197a0             20 73 6f 75 72 63 65 20 66 69 6c 65 20 20 2a 29 0a 0a 20 20 65 6e 64 20 20 28 2a 20 20 77 68 69   ┆ source file  *)    end  (*  whi┆
0x0197a0…0197c0             6c 65 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3c 20 69 74 65 6d 73 20 20 2e 2e 2e 2e 2e 2e 20   ┆le  param_index < items  ...... ┆
0x0197c0…0197e0             20 2a 29 3b 0a 0a 20 75 6e 74 69 6c 20 6c 61 73 74 5f 73 63 61 6e 3b 0a 0a 0a 28 2a 20 20 74 68   ┆ *);   until last_scan;   (*  th┆
0x0197e0…019800             65 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 20 69 73 20 65 78 68 61 75 73 74 65 64 2e 20 20   ┆e parameter list is exhausted.  ┆
0x019800…019820 (6, 1, 10)  20 2a 29 0a 0a 0a 28 2a 20 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 20 6d 6f 64 75 6c 65 73 20   ┆ *)   (*  terminate the modules ┆
0x019820…019840             3a 20 20 2a 29 0a 0a 20 20 6f 75 74 5f 65 6e 64 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆:  *)    out_end;               ┆
0x019840…019860             20 20 20 20 28 2a 20 20 6c 61 73 74 20 63 68 65 63 6b 73 75 6d 73 20 20 2a 29 0a 20 20 63 6c 6f   ┆    (*  last checksums  *)   clo┆
0x019860…019880             73 65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a 20 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69   ┆sefile ( datf);   closeindex ( i┆
0x019880…0198a0             6e 78 66 29 3b 0a 20 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 3d 20 66 61 6c 73 65 3b 0a 20   ┆nxf);   database_open:= false;  ┆
0x0198a0…0198c0             20 65 72 61 73 65 20 28 20 64 61 74 66 2e 66 29 3b 0a 20 20 65 72 61 73 65 20 28 20 69 6e 78 66   ┆ erase ( datf.f);   erase ( inxf┆
0x0198c0…0198e0             2e 64 2e 66 29 3b 0a 0a 69 66 20 74 72 75 65 7b 64 65 62 75 67 63 61 74 7d 20 74 68 65 6e 0a 20   ┆.d.f);  if true{debugcat} then  ┆
0x0198e0…019900             20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 77 72   ┆ begin   writeln ( output);   wr┆
0x019900…019920             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 20 20 20 6e   ┆iteln ( output, '':margin, '   n┆
0x019920…019940             6f 20 6f 66 20 65 78 74 65 72 6e 61 6c 73 20 20 20 3a 20 27 2c 20 6c 61 73 74 5f 65 78 74 65 72   ┆o of externals   : ', last_exter┆
0x019940…019960             6e 61 6c 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29   ┆nal);   end;   writeln ( output)┆
0x019960…019980             3b 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 65 6e 64 20 6f 66   ┆; writeln ( output, '--   end of┆
0x019980…0199a0             20 6a 6f 62 2e 27 29 3b 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 68 61 6c 74   ┆ job.'); writeln ( output); halt┆
0x0199a0…0199c0             20 28 20 6d 79 5f 65 78 63 6f 64 65 29 3b 0a 65 6e 64 20 2e 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ ( my_excode); end . (*---------┆
0x0199c0…0199e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 65 6e 64 20 6f 66 20 43 72 6f 73 6c 69 6e 6b 20 2d 2d 2d 2d   ┆----------- end of Croslink ----┆
0x0199e0…019a00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 01 45   ┆-------------------------*)    E┆
0x019a00…019a20 (6, 1, 11)  20 31 0a 0a 0a 0a 28 2a 20 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 20 6d 6f 64 75 6c 65 73 20   ┆ 1    (*  terminate the modules ┆
0x019a20…019a40             3a 20 20 2a 29 0a 0a 20 20 6f 75 74 5f 65 6e 64 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆:  *)    out_end;               ┆
0x019a40…019a60             20 20 20 20 28 2a 20 20 6c 61 73 74 20 63 68 65 63 6b 73 75 6d 73 20 20 2a 29 0a 20 20 63 6c 6f   ┆    (*  last checksums  *)   clo┆
0x019a60…019a80             73 65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a 20 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69   ┆sefile ( datf);   closeindex ( i┆
0x019a80…019aa0             6e 78 66 29 3b 0a 20 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 3d 20 66 61 6c 73 65 3b 0a 20   ┆nxf);   database_open:= false;  ┆
0x019aa0…019ac0             20 65 72 61 73 65 20 28 20 64 61 74 66 2e 66 29 3b 0a 20 20 65 72 61 73 65 20 28 20 69 6e 78 66   ┆ erase ( datf.f);   erase ( inxf┆
0x019ac0…019ae0             2e 64 2e 66 29 3b 0a 0a 69 66 20 74 72 75 65 7b 64 65 62 75 67 63 61 74 7d 20 74 68 65 6e 0a 20   ┆.d.f);  if true{debugcat} then  ┆
0x019ae0…019b00             20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 77 72   ┆ begin   writeln ( output);   wr┆
0x019b00…019b20             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 20 20 20 6e   ┆iteln ( output, '':margin, '   n┆
0x019b20…019b40             6f 20 6f 66 20 65 78 74 65 72 6e 61 6c 73 20 20 20 3a 20 27 2c 20 6c 61 73 74 5f 65 78 74 65 72   ┆o of externals   : ', last_exter┆
0x019b40…019b60             6e 61 6c 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29   ┆nal);   end;   writeln ( output)┆
0x019b60…019b80             3b 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 65 6e 64 20 6f 66   ┆; writeln ( output, '--   end of┆
0x019b80…019ba0             20 6a 6f 62 2e 27 29 3b 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 68 61 6c 74   ┆ job.'); writeln ( output); halt┆
0x019ba0…019bc0             20 28 20 6d 79 5f 65 78 63 6f 64 65 29 3b 0a 65 6e 64 20 2e 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ ( my_excode); end . (*---------┆
0x019bc0…019be0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 65 6e 64 20 6f 66 20 43 72 6f 73 6c 69 6e 6b 20 2d 2d 2d 2d   ┆----------- end of Croslink ----┆
0x019be0…019c00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 01 45   ┆-------------------------*)    E┆
0x019c00…019c20 (6, 1, 12)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 70 6c 69 62 2e 70 61 73 00 00 00   ┆../sw2103/src/util/s.plib.pas   ┆
0x019c20…019c40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x019c60…019c80             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x019c80…019ca0             20 20 36 32 36 34 30 20 20 35 32 36 35 33 30 34 31 37 33 20 20 31 31 30 30 31 00 20 00 00 00 00   ┆  62640  5265304173  11001      ┆
0x019ca0…019cc0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x019e00…019e20 (6, 1, 13)  01 68 32 35 30 32 39 0a 01 73 20 30 30 30 30 35 2f 30 30 30 30 33 2f 30 30 39 30 37 0a 01 64 20   ┆ h25029  s 00005/00003/00907  d ┆
0x019e20…019e40             44 20 31 2e 31 38 20 39 32 2f 31 30 2f 30 39 20 31 34 3a 32 36 3a 31 36 20 73 77 32 31 30 33 20   ┆D 1.18 92/10/09 14:26:16 sw2103 ┆
0x019e40…019e60             32 20 31 0a 01 63 20 53 43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a   ┆2 1  c SCCS info and UNIX used. ┆
0x019e60…019e80             01 65 0a 01 73 20 30 30 39 31 30 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20 44 20 31 2e 31   ┆ e  s 00910/00000/00000  d D 1.1┆
0x019e80…019ea0             37 20 39 32 2f 31 30 2f 30 39 20 31 34 3a 32 31 3a 33 34 20 73 77 32 31 30 33 20 31 20 30 0a 01   ┆7 92/10/09 14:21:34 sw2103 1 0  ┆
0x019ea0…019ec0             63 20 45 78 74 65 6e 73 69 6f 6e 20 2e 54 32 32 20 61 63 63 65 70 74 65 64 2c 20 52 43 33 35 30   ┆c Extension .T22 accepted, RC350┆
0x019ec0…019ee0             32 20 2d 3e 20 52 43 35 30 30 30 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31   ┆2 -> RC5000.  e  u  U  t  T  I 1┆
0x019ee0…019f00             0a 50 72 6f 67 72 61 6d 20 50 4c 49 42 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ Program PLIB;  (*--------------┆
0x019f00…019f20             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x019f20…019f40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20   ┆--------------- -- -- Copyright ┆
0x019f40…019f60             28 43 29 20 31 39 39 32 20 62 79 20 44 41 4e 4f 53 49 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20   ┆(C) 1992 by DANOSI -- Copyright ┆
0x019f60…019f80             28 43 29 20 31 39 38 39 20 62 79 20 52 43 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 0a 2d 2d 0a   ┆(C) 1989 by RC International -- ┆
0x019f80…019fa0             2d 2d 20 4d 6f 64 75 6c 65 3a 0a 2d 2d 20 46 69 6c 65 3a 20 20 20 20 20 20 50 4c 49 42 2e 50 41   ┆-- Module: -- File:      PLIB.PA┆
0x019fa0…019fc0             53 0a 2d 2d 20 50 61 63 6b 61 67 65 3a 20 20 20 53 57 32 31 30 33 20 20 20 20 53 75 62 73 79 73   ┆S -- Package:   SW2103    Subsys┆
0x019fc0…019fe0             74 65 6d 3a 20 55 54 49 4c 49 54 59 20 20 20 50 72 6f 67 72 61 6d 3a 20 50 4c 49 42 0a 2d 2d 0a   ┆tem: UTILITY   Program: PLIB -- ┆
0x019fe0…01a000             2d 2d 20 43 6f 6e 74 65 6e 74 73 3a 20 20 41 20 72 74 70 33 35 30 32 20 6c 69 62 72 61 72 79 20   ┆-- Contents:  A rtp3502 library ┆
0x01a000…01a020 (6, 1, 14)  6d 61 69 6e 74 65 6e 61 6e 63 65 20 70 72 6f 67 72 61 6d 2c 0a 2d 2d 09 20 20 20 20 20 20 66 6f   ┆maintenance program, --       fo┆
0x01a020…01a040             72 20 75 70 64 61 74 69 6e 67 20 6f 66 20 61 20 6c 69 62 72 61 72 79 2e 0a 2d 2d 0a 2d 2d 20 50   ┆r updating of a library. -- -- P┆
0x01a040…01a060             72 6f 67 72 61 6d 20 63 61 6c 6c 3a 20 20 50 4c 49 42 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 2e   ┆rogram call:  PLIB <parameter> .┆
0x01a060…01a080             2e 2e 20 3c 70 61 72 61 6d 65 74 65 72 3e 0a 2d 2d 09 3c 70 61 72 61 6d 65 74 65 72 3e 20 3a 09   ┆.. <parameter> -- <parameter> : ┆
0x01a080…01a0a0             3d 3c 66 69 6c 65 70 61 74 68 3e 2d 3c 77 6f 72 6b 64 69 72 3e 09 6e 61 6d 65 20 6f 66 20 6e 65   ┆=<filepath>-<workdir> name of ne┆
0x01a0a0…01a0c0             77 20 6c 69 62 20 66 69 6c 65 0a 2d 2d 09 09 09 2f 49 4e 53 45 52 54 09 09 09 77 6f 72 6b 73 20   ┆w lib file --   /INSERT   works ┆
0x01a0c0…01a0e0             61 73 20 50 4c 49 42 49 4e 53 45 52 54 0a 2d 2d 09 09 09 2f 44 45 4c 45 54 45 09 09 09 77 6f 72   ┆as PLIBINSERT --   /DELETE   wor┆
0x01a0e0…01a100             6b 73 20 61 73 20 50 4c 49 42 44 45 4c 45 54 45 0a 2d 2d 09 09 09 2f 45 58 54 52 41 43 54 09 09   ┆ks as PLIBDELETE --   /EXTRACT  ┆
0x01a100…01a120             77 6f 72 6b 73 20 61 73 20 50 4c 49 42 45 58 54 52 41 43 54 0a 2d 2d 09 09 09 50 41 52 41 4d 49   ┆works as PLIBEXTRACT --   PARAMI┆
0x01a120…01a140             4e 2d 3c 66 69 6c 65 70 61 74 68 3e 09 6e 61 6d 65 20 6f 66 20 66 69 6c 65 20 77 69 74 68 20 70   ┆N-<filepath> name of file with p┆
0x01a140…01a160             61 72 61 6d 65 74 65 72 73 0a 2d 2d 09 09 09 53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72 70 61   ┆arameters --   SOURCEPATH-<dirpa┆
0x01a160…01a180             74 68 3e 09 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 0a 2d 2d 09 09 09 4c 49 42 2d 3c 66 69 6c   ┆th> directory path --   LIB-<fil┆
0x01a180…01a1a0             65 70 61 74 68 3e 09 09 6e 61 6d 65 20 6f 66 20 6f 6c 64 20 6c 69 62 20 66 69 6c 65 0a 2d 2d 09   ┆epath>  name of old lib file -- ┆
0x01a1a0…01a1c0             09 09 3c 66 69 6c 65 70 61 74 68 3e 09 09 6e 61 6d 65 20 6f 66 20 73 6f 75 72 63 65 20 66 69 6c   ┆  <filepath>  name of source fil┆
0x01a1c0…01a1e0             65 20 66 6f 72 20 49 4e 53 45 52 54 0a 2d 2d 09 09 09 3c 65 6e 74 72 79 3e 09 09 09 66 6f 72 20   ┆e for INSERT --   <entry>   for ┆
0x01a1e0…01a200             44 45 4c 45 54 45 20 61 6e 64 20 45 58 54 52 41 43 54 0a 2d 2d 0a 2d 2d 20 20 20 20 20 20 3c 65   ┆DELETE and EXTRACT -- --      <e┆
0x01a200…01a220 (6, 1, 15)  6e 74 72 79 3e 20 3a 09 3c 65 6e 74 72 79 6e 61 6d 65 3e 09 09 75 70 20 74 6f 20 31 32 20 63 68   ┆ntry> : <entryname>  up to 12 ch┆
0x01a220…01a240             61 72 61 63 74 65 72 73 0a 2d 2d 09 09 09 45 4e 54 52 59 2d 3c 6e 75 6d 62 65 72 3e 09 09 77 61   ┆aracters --   ENTRY-<number>  wa┆
0x01a240…01a260             6e 74 65 64 20 65 6e 74 72 79 20 6e 75 6d 62 65 72 0a 2d 2d 0a 2d 2d 09 49 66 20 6e 6f 20 65 78   ┆nted entry number -- -- If no ex┆
0x01a260…01a280             74 65 6e 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 20 74 68 65 20 66 69 6c   ┆tension is specified for the fil┆
0x01a280…01a2a0             65 73 2c 20 65 78 74 65 6e 73 69 6f 6e 20 27 2e 50 32 32 27 0a 2d 2d 20 20 20 20 20 20 6f 72 20   ┆es, extension '.P22' --      or ┆
0x01a2a0…01a2c0             27 2e 54 32 32 27 20 69 73 20 75 73 65 64 2e 0a 2d 2d 0a 2d 2d 0a 2d 2d 20 50 72 65 72 65 71 75   ┆'.T22' is used. -- -- -- Prerequ┆
0x01a2c0…01a2e0             69 73 69 74 65 73 3a 20 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49 42 55 4e 49 54 2c 20   ┆isites:  DOS, Cbreak, PLIBUNIT, ┆
0x01a2e0…01a300             50 6f 6c 79 66 69 6c 65 3b 0a 2d 2d 0a 2d 2d 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3a 20 20   ┆Polyfile; -- -- Documentation:  ┆
0x01a300…01a320             53 57 32 31 30 33 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 6d 65 64 20 62 79 20 42 42 2c 20 48   ┆SW2103 -- -- Programmed by BB, H┆
0x01a320…01a340             45 4a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆EJ -----------------------------┆
0x01a340…01a360             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x01a360…01a380             2d 2d 0a 2d 2d 20 56 65 72 73 69 6f 6e 20 68 69 73 74 6f 72 79 3a 0a 2d 2d 0a 2d 2d 20 56 65 72   ┆-- -- Version history: -- -- Ver┆
0x01a380…01a3a0             73 2e 20 20 44 61 74 65 20 20 20 20 20 20 49 6e 69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d 2d 2d 2d   ┆s.  Date      Init. Text -- ----┆
0x01a3a0…01a3c0             20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 20 2d 2d 2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆   --------  ----  -------------┆
0x01a3c0…01a3e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 38 36 31   ┆------------------------- -- 861┆
0x01a3e0…01a400             30 32 39 20 42 42 20 31 2e 32 20 09 20 20 47 65 6e 65 72 61 6c 20 63 6c 65 61 6e 20 75 70 20 61   ┆029 BB 1.2    General clean up a┆
0x01a400…01a420 (7, 0, 1)   6e 64 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 73 6f 75 72 63 65 20 64 61 74 65 0a 2d 2d 20 38 37   ┆nd handling of source date -- 87┆
0x01a420…01a440             30 31 32 33 20 62 62 20 31 2e 33 20 50 6c 69 62 2e 61 6c 6c 20 61 6e 64 20 70 6c 69 62 2e 69 6d   ┆0123 bb 1.3 Plib.all and plib.im┆
0x01a440…01a460             61 67 65 20 69 6e 74 72 6f 64 75 63 65 64 0a 2d 2d 20 38 37 30 33 31 32 20 62 62 20 31 2e 34 20   ┆age introduced -- 870312 bb 1.4 ┆
0x01a460…01a480             41 6d 38 30 30 30 20 72 65 70 6c 61 63 65 64 20 62 79 20 6c 66 33 35 30 32 20 61 63 63 65 73 73   ┆Am8000 replaced by lf3502 access┆
0x01a480…01a4a0             20 6d 65 74 68 6f 64 65 0a 2d 2d 20 38 37 30 36 30 39 20 62 62 20 31 2e 35 20 53 79 73 74 65 6d   ┆ methode -- 870609 bb 1.5 System┆
0x01a4a0…01a4c0             20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 66 70 5f 73 79 73 74 65 6d 0a 2d 2d 20 20 20 20 20 20   ┆ converted to fp_system --      ┆
0x01a4c0…01a4e0             20 20 20 20 20 20 20 20 20 61 6e 64 20 68 61 6c 74 20 74 6f 20 66 70 5f 68 61 6c 74 2e 0a 2d 2d   ┆         and halt to fp_halt. --┆
0x01a4e0…01a500             20 38 37 31 31 31 30 20 62 62 20 31 2e 36 20 4c 66 5f 69 6e 69 74 20 63 61 6c 6c 20 69 6e 73 65   ┆ 871110 bb 1.6 Lf_init call inse┆
0x01a500…01a520             72 74 65 64 0a 2d 2d 20 38 37 31 31 32 30 20 62 62 20 31 2e 37 20 55 73 65 20 6f 66 20 6c 66 5f   ┆rted -- 871120 bb 1.7 Use of lf_┆
0x01a520…01a540             6f 66 66 73 65 74 20 69 6e 74 72 6f 64 75 63 65 64 20 74 6f 20 73 70 65 65 64 20 75 70 20 73 63   ┆offset introduced to speed up sc┆
0x01a540…01a560             61 6e 6e 69 6e 67 0a 2d 2d 20 38 37 31 31 32 34 20 62 62 20 31 2e 38 20 43 6c 65 61 6e 20 75 70   ┆anning -- 871124 bb 1.8 Clean up┆
0x01a560…01a580             20 61 6e 64 20 61 72 69 74 68 6d 65 74 69 63 20 6f 76 65 72 66 6c 6f 77 20 63 6f 72 72 65 63 74   ┆ and arithmetic overflow correct┆
0x01a580…01a5a0             65 64 20 69 6e 20 6c 6f 6f 6b 75 70 0a 2d 2d 20 38 38 31 31 30 37 20 62 62 20 31 2e 39 20 50 72   ┆ed in lookup -- 881107 bb 1.9 Pr┆
0x01a5a0…01a5c0             6f 63 65 73 73 20 6b 69 6e 64 20 6e 61 6d 65 20 63 68 61 6e 67 65 64 20 74 6f 20 70 72 6f 67 72   ┆ocess kind name changed to progr┆
0x01a5c0…01a5e0             61 6d 2e 0a 2d 2d 20 38 39 30 31 32 30 20 62 62 20 31 2e 31 30 20 45 6f 66 20 6c 6f 67 69 63 20   ┆am. -- 890120 bb 1.10 Eof logic ┆
0x01a5e0…01a600             63 68 61 6e 67 65 64 20 74 6f 20 72 65 61 64 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 20 73 65   ┆changed to reading descriptor se┆
0x01a600…01a620 (7, 0, 2)   67 6d 65 6e 74 20 70 61 72 74 31 2e 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42   ┆gment part1. --                B┆
0x01a620…01a640             79 74 65 20 6c 6f 67 69 63 20 69 6e 20 73 74 65 61 64 20 6f 66 20 77 6f 72 64 20 6c 6f 67 69 63   ┆yte logic in stead of word logic┆
0x01a640…01a660             2c 20 70 65 72 6d 69 74 74 69 6e 67 20 6f 64 64 20 6c 65 6e 67 74 68 73 2e 0a 2d 2d 20 38 39 30   ┆, permitting odd lengths. -- 890┆
0x01a660…01a680             31 32 31 20 62 62 20 31 2e 31 31 20 53 6b 69 70 20 6f 66 20 69 6e 74 65 72 6e 61 6c 73 20 73 68   ┆121 bb 1.11 Skip of internals sh┆
0x01a680…01a6a0             6f 75 6c 64 20 61 6c 73 6f 20 62 65 20 64 6f 75 62 6c 65 20 61 72 69 74 68 6d 65 74 69 63 73 2e   ┆ould also be double arithmetics.┆
0x01a6a0…01a6c0             0a 2d 2d 20 38 39 30 31 32 34 20 62 62 20 31 2e 31 32 20 45 78 74 72 61 63 74 20 61 6e 64 20 64   ┆ -- 890124 bb 1.12 Extract and d┆
0x01a6c0…01a6e0             65 6c 65 74 65 20 63 6f 75 6c 64 20 6e 6f 74 20 68 61 6e 64 6c 65 20 65 6d 70 74 79 0a 2d 2d 20   ┆elete could not handle empty -- ┆
0x01a6e0…01a700             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e   ┆               descriptor segmen┆
0x01a700…01a720             74 20 70 61 72 74 20 32 2e 0a 2d 2d 20 38 39 30 31 33 31 20 62 62 20 31 2e 31 33 20 4d 6f 72 65   ┆t part 2. -- 890131 bb 1.13 More┆
0x01a720…01a740             20 74 65 73 74 6f 75 74 70 75 74 20 69 6e 73 65 72 74 65 64 2e 0a 2d 2d 20 20 20 20 20 20 20 20   ┆ testoutput inserted. --        ┆
0x01a740…01a760             20 20 20 20 20 20 20 20 54 65 72 6d 69 6e 61 74 69 6f 6e 20 69 66 20 64 65 73 63 72 69 70 74 6f   ┆        Termination if descripto┆
0x01a760…01a780             72 5f 6c 65 6e 67 74 68 20 3c 3d 20 30 2e 0a 2d 2d 0a 2d 2d 20 31 2e 31 33 20 20 20 38 39 2e 31   ┆r_length <= 0. -- -- 1.13   89.1┆
0x01a780…01a7a0             30 2e 32 34 20 20 20 48 45 4a 20 20 20 54 55 52 42 4f 20 50 41 53 43 41 4c 20 76 65 72 73 69 6f   ┆0.24   HEJ   TURBO PASCAL versio┆
0x01a7a0…01a7c0             6e 2e 0a 2d 2d 20 20 20 20 20 20 20 20 38 39 2e 31 31 2e 30 31 20 20 20 48 45 4a 20 20 20 50 72   ┆n. --        89.11.01   HEJ   Pr┆
0x01a7c0…01a7e0             6f 62 6c 65 6d 73 20 77 69 74 68 20 68 65 61 70 73 69 7a 65 20 73 6f 6c 76 65 64 2e 0a 2d 2d 20   ┆oblems with heapsize solved. -- ┆
0x01a7e0…01a800             20 20 20 20 20 20 20 38 39 2e 31 31 2e 30 32 20 20 20 48 45 4a 20 20 20 43 75 72 72 65 6e 74 20   ┆       89.11.02   HEJ   Current ┆
0x01a800…01a820 (7, 0, 3)   64 69 72 20 75 73 65 64 20 61 73 20 77 6f 72 6b 20 64 69 72 2c 20 61 6e 64 20 73 74 6f 70 5f 6d   ┆dir used as work dir, and stop_m┆
0x01a820…01a840             61 72 6b 20 77 72 69 74 74 65 6e 2e 0a 2d 2d 20 31 2e 31 34 20 20 20 39 30 2e 30 31 2e 30 38 20   ┆ark written. -- 1.14   90.01.08 ┆
0x01a840…01a860             20 20 48 45 4a 20 20 20 45 72 72 6f 72 20 73 65 74 73 20 65 72 72 6f 72 6c 65 76 65 6c 0a 2d 2d   ┆  HEJ   Error sets errorlevel --┆
0x01a860…01a880             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 65 72 72   ┆                         and err┆
0x01a880…01a8a0             6f 72 6c 65 76 65 6c 20 73 65 74 20 69 66 20 65 78 74 72 61 63 74 20 6e 6f 74 20 6f 6b 2e 0a 2d   ┆orlevel set if extract not ok. -┆
0x01a8a0…01a8c0             2d 20 31 2e 31 35 20 20 20 39 30 2e 30 32 2e 32 32 20 20 20 48 45 4a 20 20 20 6f 62 6a 65 63 74   ┆- 1.15   90.02.22   HEJ   object┆
0x01a8c0…01a8e0             66 69 6c 65 73 20 77 69 74 68 6f 75 74 20 65 78 74 65 6e 73 69 6f 6e 20 61 72 65 20 61 63 63 65   ┆files without extension are acce┆
0x01a8e0…01a900             70 74 65 64 20 74 6f 6f 2e 0a 2d 2d 20 31 2e 31 36 20 20 20 39 30 2e 30 35 2e 33 30 20 20 20 48   ┆pted too. -- 1.16   90.05.30   H┆
0x01a900…01a920             45 4a 20 20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 27 50 32 32 27 2c 20 20 73   ┆EJ   Default extension 'P22',  s┆
0x01a920…01a940             74 6f 70 5f 6d 61 72 6b 20 20 24 46 46 46 46 20 20 2d 3e 20 20 30 30 30 30 2e 0a 2d 2d 20 31 2e   ┆top_mark  $FFFF  ->  0000. -- 1.┆
0x01a940…01a960             31 37 20 20 20 39 32 2e 30 35 2e 32 35 20 20 20 48 45 4a 20 20 20 45 78 74 65 6e 73 69 6f 6e 20   ┆17   92.05.25   HEJ   Extension ┆
0x01a960…01a980             27 54 32 32 27 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2c 20 52 43 33 35 30 32 20 20 2d 3e 20 20   ┆'T22' accepted too, RC3502  ->  ┆
0x01a980…01a9a0             52 43 35 30 30 30 2e 0a 01 49 20 32 0a 2d 2d 20 31 2e 31 38 20 20 20 39 32 2e 31 30 2e 30 39 20   ┆RC5000.  I 2 -- 1.18   92.10.09 ┆
0x01a9a0…01a9c0             20 20 48 45 4a 20 20 20 53 43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e   ┆  HEJ   SCCS info and UNIX used.┆
0x01a9c0…01a9e0             0a 01 45 20 32 0a 2d 2d 0a 01 44 20 32 0a 2d 2d 0a 01 45 20 32 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆  E 2 --  D 2 --  E 2 ----------┆
0x01a9e0…01aa00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x01aa00…01aa20 (7, 0, 4)   2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43   ┆------------------------- -- SCC┆
0x01aa20…01aa40             53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d   ┆S information -- File   :  %P% -┆
0x01aa40…01aa60             2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25   ┆- Module :  %M% -- Version:  %I%┆
0x01aa60…01aa80             0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ -- Date   :  %E%  %U% ---------┆
0x01aa80…01aaa0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x01aaa0…01aac0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 0c   ┆-------------------------- *)   ┆
0x01aac0…01aae0             0a 0a 55 73 65 73 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49 42 55 4e 49 54 2c 20 50 6f   ┆  Uses DOS, Cbreak, PLIBUNIT, Po┆
0x01aae0…01ab00             6c 79 66 69 6c 65 20 3b 0a 0a 28 2a 24 4d 20 34 30 39 36 2c 38 31 39 32 30 2c 38 36 33 38 34 20   ┆lyfile ;  (*$M 4096,81920,86384 ┆
0x01ab00…01ab20             20 73 74 61 63 6b 20 61 6e 64 20 68 65 61 70 20 20 2a 29 0a 28 2a 24 52 2b 2c 53 2b 09 09 72 61   ┆ stack and heap  *) (*$R+,S+  ra┆
0x01ab20…01ab40             6e 67 65 20 63 68 65 63 6b 20 20 2a 29 0a 28 2a 24 49 2d 20 20 2a 29 0a 0a 43 6f 6e 73 74 0a 01   ┆nge check  *) (*$I-  *)  Const  ┆
0x01ab40…01ab60             44 20 32 0a 20 20 20 76 65 72 73 69 6f 6e 09 3d 20 20 27 20 76 65 72 73 69 6f 6e 20 31 2e 31 37   ┆D 2    version =  ' version 1.17┆
0x01ab60…01ab80             2c 20 20 20 31 39 39 32 2e 30 35 2e 32 35 20 20 20 27 20 3b 0a 01 45 20 32 0a 01 49 20 32 0a 20   ┆,   1992.05.25   ' ;  E 2  I 2  ┆
0x01ab80…01aba0             20 20 73 63 63 73 5f 64 61 74 65 20 20 20 20 3d 20 20 27 25 45 25 27 20 3b 0a 01 45 20 32 0a 20   ┆  sccs_date    =  '%E%' ;  E 2  ┆
0x01aba0…01abc0             20 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 50 32 32 27 20 3b 0a 20 20 20 63 6f   ┆  def_extension=  '.P22' ;    co┆
0x01abc0…01abe0             6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 54 32 32 27 20 3b 0a 0a 20 20 20 64 65 62 75   ┆mp_extension=  '.T22' ;     debu┆
0x01abe0…01ac00             67 09 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74   ┆g =  false; (*  for debug output┆
0x01ac00…01ac20 (7, 0, 5)   20 20 2a 29 0a 20 20 20 64 65 62 75 67 31 09 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72   ┆  *)    debug1 =  false; (*  for┆
0x01ac20…01ac40             20 64 65 62 75 67 20 6f 75 74 70 75 74 20 6f 66 20 6b 65 79 73 20 2a 29 0a 20 20 20 64 65 62 75   ┆ debug output of keys *)    debu┆
0x01ac40…01ac60             67 32 09 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75   ┆g2 =  false; (*  for debug outpu┆
0x01ac60…01ac80             74 20 6f 66 20 6d 6f 64 75 6c 65 20 6e 61 6d 65 73 20 2a 29 0a 20 20 20 64 65 62 75 67 33 09 3d   ┆t of module names *)    debug3 =┆
0x01ac80…01aca0             20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 69 6e   ┆  false; (*  for debug output in┆
0x01aca0…01acc0             20 73 63 61 6e 20 63 6f 70 79 20 20 2a 29 0a 20 20 20 6c 69 62 5f 69 6e 73 65 72 74 09 3d 20 20   ┆ scan copy  *)    lib_insert =  ┆
0x01acc0…01ace0             27 69 6e 73 65 72 74 27 3b 0a 20 20 20 6c 69 62 5f 64 65 6c 65 74 65 09 3d 20 20 27 64 65 6c 65   ┆'insert';    lib_delete =  'dele┆
0x01ace0…01ad00             74 65 27 3b 0a 20 20 20 6c 69 62 5f 65 78 74 72 61 63 74 09 3d 20 20 27 65 78 74 72 61 63 74 27   ┆te';    lib_extract =  'extract'┆
0x01ad00…01ad20             3b 0a 20 20 20 73 6b 69 70 6d 6f 64 65 09 3d 20 20 30 3b 0a 20 20 20 63 6f 70 79 6d 6f 64 65 09   ┆;    skipmode =  0;    copymode ┆
0x01ad20…01ad40             3d 20 20 31 3b 0a 0a 0a 54 79 70 65 0a 20 20 20 70 72 6f 67 72 61 6d 6d 6f 64 65 5f 74 79 70 65   ┆=  1;   Type    programmode_type┆
0x01ad40…01ad60             20 3d 20 20 28 20 69 6e 73 65 72 74 69 6e 67 2c 20 65 78 74 72 61 63 74 69 6e 67 2c 20 64 65 6c   ┆ =  ( inserting, extracting, del┆
0x01ad60…01ad80             65 74 69 6e 67 20 29 3b 0a 0a 20 20 20 6d 6f 64 75 6c 65 5f 72 65 63 20 20 3d 20 20 72 65 63 6f   ┆eting );     module_rec  =  reco┆
0x01ad80…01ada0             72 64 0a 20 20 20 20 20 72 65 63 73 74 61 74 20 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 20 70 61   ┆rd      recstat :  word;      pa┆
0x01ada0…01adc0             74 68 20 20 20 20 3a 20 20 70 61 74 68 73 74 72 3b 09 28 2a 20 20 6f 62 6a 65 63 74 20 66 69 6c   ┆th    :  pathstr; (*  object fil┆
0x01adc0…01ade0             65 20 20 20 20 2a 29 0a 20 20 20 20 20 64 65 73 70 6f 73 20 20 3a 20 20 6c 6f 6e 67 69 6e 74 3b   ┆e    *)      despos  :  longint;┆
0x01ade0…01ae00             09 28 2a 20 20 66 69 6c 65 20 70 6f 73 69 74 69 6f 6e 20 20 2a 29 0a 20 20 20 20 20 65 6e 64 3b   ┆ (*  file position  *)      end;┆
0x01ae00…01ae20 (7, 0, 6)   0a 0a 43 6f 6e 73 74 20 20 20 28 2a 20 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72 20 20 2a   ┆  Const   (*  initialized var  *┆
0x01ae20…01ae40             29 0a 20 20 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20   ┆)    source_opened:  boolean =  ┆
0x01ae40…01ae60             66 61 6c 73 65 3b 0a 20 20 20 64 65 73 74 5f 6f 70 65 6e 65 64 20 20 3a 20 20 62 6f 6f 6c 65 61   ┆false;    dest_opened  :  boolea┆
0x01ae60…01ae80             6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 6e 65 77 6f 62 6a 5f 6f 70 65 6e 65 64 3a 20 20 62   ┆n =  false;    newobj_opened:  b┆
0x01ae80…01aea0             6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 64 61 74 61 62 61 73 65 5f 6f 70 65   ┆oolean =  false;    database_ope┆
0x01aea0…01aec0             6e 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 72 6f 75 74 69 6e 65   ┆n:  boolean =  false;    routine┆
0x01aec0…01aee0             20 20 20 20 20 20 3a 20 20 61 6c 66 61 73 74 72 20 20 20 20 20 20 3d 20 20 27 6d 61 69 6e 20 27   ┆      :  alfastr      =  'main '┆
0x01aee0…01af00             3b 0a 20 20 20 64 61 74 5f 6e 61 6d 65 09 3a 20 20 70 61 74 68 73 74 72 09 3d 20 20 27 50 4c 49   ┆;    dat_name :  pathstr =  'PLI┆
0x01af00…01af20             42 57 52 4b 2e 44 41 54 27 3b 0a 20 20 20 69 6e 78 5f 6e 61 6d 65 09 3a 20 20 70 61 74 68 73 74   ┆BWRK.DAT';    inx_name :  pathst┆
0x01af20…01af40             72 09 3d 20 20 27 50 4c 49 42 57 52 4b 2e 49 4e 58 27 3b 0a 0a 56 61 72 0a 20 20 20 6f 6c 64 6c   ┆r =  'PLIBWRK.INX';  Var    oldl┆
0x01af40…01af60             69 62 5f 6e 61 6d 65 09 2c 09 09 09 28 2a 20 20 70 61 74 68 20 6f 66 20 73 6f 75 72 63 65 20 66   ┆ib_name ,   (*  path of source f┆
0x01af60…01af80             69 6c 65 09 09 2a 29 0a 20 20 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 09 2c 09 09 09 28 2a 20 20 70   ┆ile  *)    newobj_name ,   (*  p┆
0x01af80…01afa0             61 74 68 20 6f 66 20 6e 65 77 20 6f 62 6a 65 63 74 20 66 69 6c 65 09 2a 29 0a 20 20 20 6e 65 77   ┆ath of new object file *)    new┆
0x01afa0…01afc0             6c 69 62 5f 6e 61 6d 65 09 3a 20 20 70 61 74 68 73 74 72 3b 09 09 28 2a 20 20 70 61 74 68 20 6f   ┆lib_name :  pathstr;  (*  path o┆
0x01afc0…01afe0             66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 09 2a 29 0a 20 20 20 73 6f 75 72 63 65 09   ┆f destination file *)    source ┆
0x01afe0…01b000             2c 09 09 09 28 2a 20 20 6c 69 62 72 61 72 79 20 66 69 6c 65 09 09 2a 29 0a 20 20 20 6e 65 77 6f   ┆,   (*  library file  *)    newo┆
0x01b000…01b020 (7, 0, 7)   62 6a 09 2c 09 09 09 28 2a 20 20 6c 69 62 72 61 72 79 20 66 69 6c 65 09 09 2a 29 0a 20 20 20 64   ┆bj ,   (*  library file  *)    d┆
0x01b020…01b040             65 73 74 69 6e 61 74 69 6f 6e 09 3a 20 20 66 69 6c 65 3b 09 09 28 2a 20 20 6c 69 62 72 61 72 79   ┆estination :  file;  (*  library┆
0x01b040…01b060             20 66 69 6c 65 09 09 2a 29 0a 0a 20 20 20 77 61 6e 74 65 64 5f 69 74 65 6d 73 20 3a 20 20 77 6f   ┆ file  *)     wanted_items :  wo┆
0x01b060…01b080             72 64 3b 0a 0a 20 20 20 74 63 20 20 20 20 20 20 20 20 20 20 20 3a 20 20 63 68 61 72 3b 0a 20 20   ┆rd;     tc           :  char;   ┆
0x01b080…01b0a0             20 65 78 69 74 73 61 76 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 0a 20 20 20 6d 6f 64 75 6c 65   ┆ exitsave :  pointer;     module┆
0x01b0a0…01b0c0             09 3a 20 20 6d 6f 64 75 6c 65 5f 72 65 63 3b 0a 0a 20 20 20 64 61 74 66 09 09 3a 20 20 64 61 74   ┆ :  module_rec;     datf  :  dat┆
0x01b0c0…01b0e0             61 66 69 6c 65 3b 0a 20 20 20 69 6e 78 66 09 09 3a 20 20 69 6e 64 65 78 66 69 6c 65 3b 0a 0a 28   ┆afile;    inxf  :  indexfile;  (┆
0x01b0e0…01b100             2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆*-------------------------------┆
0x01b100…01b120             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x01b120…01b140             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 65 72 72 6f 72 20   ┆----------*)    Procedure error ┆
0x01b140…01b160             28 20 65 72 72 6f 72 6c 65 76 65 6c 3a 20 77 6f 72 64 3b 20 73 74 72 3a 20 73 74 72 69 6e 67 29   ┆( errorlevel: word; str: string)┆
0x01b160…01b180             3b 0a 20 20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 73 74   ┆;   begin   writeln ( output, st┆
0x01b180…01b1a0             72 20 29 3b 0a 20 20 68 61 6c 74 20 28 20 65 72 72 6f 72 6c 65 76 65 6c 29 3b 0a 20 20 65 6e 64   ┆r );   halt ( errorlevel);   end┆
0x01b1a0…01b1c0             3b 0a 0a 0a 0a 20 46 75 6e 63 74 69 6f 6e 20 6e 75 6d 62 65 72 6b 65 79 20 28 20 69 74 65 6d 5f   ┆;     Function numberkey ( item_┆
0x01b1c0…01b1e0             6e 75 6d 62 65 72 3a 20 77 6f 72 64 29 3a 20 61 6c 66 61 73 74 72 3b 0a 20 28 2a 20 20 63 6f 6e   ┆number: word): alfastr;  (*  con┆
0x01b1e0…01b200             76 65 72 74 20 69 74 65 6d 5f 6e 75 6d 62 65 72 20 74 6f 20 61 20 73 74 72 69 6e 67 20 6c 69 6b   ┆vert item_number to a string lik┆
0x01b200…01b220 (7, 0, 8)   65 20 20 22 23 20 20 31 37 2c 22 20 20 20 20 2a 29 0a 20 20 20 76 61 72 20 20 73 20 3a 20 61 6c   ┆e  "#  17,"    *)    var  s : al┆
0x01b220…01b240             66 61 73 74 72 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 73 74 72 20 28 20 69 74 65 6d 5f 6e 75   ┆fastr;    begin    str ( item_nu┆
0x01b240…01b260             6d 62 65 72 3a 34 2c 20 73 29 3b 0a 20 20 20 6e 75 6d 62 65 72 6b 65 79 3a 3d 20 27 23 27 20 2b   ┆mber:4, s);    numberkey:= '#' +┆
0x01b260…01b280             20 73 20 2b 20 27 2c 20 20 20 20 20 20 20 20 20 20 27 0a 20 20 20 65 6e 64 3b 0a 0a 0c 0a 0a 20   ┆ s + ',          '    end;      ┆
0x01b280…01b2a0             50 72 6f 63 65 64 75 72 65 20 72 65 61 64 5f 70 61 72 61 6d 73 20 28 20 76 61 72 20 6f 6c 64 6c   ┆Procedure read_params ( var oldl┆
0x01b2a0…01b2c0             69 62 6e 61 6d 65 2c 20 6e 65 77 6c 69 62 6e 61 6d 65 3a 20 70 61 74 68 73 74 72 3b 0a 09 64 65   ┆ibname, newlibname: pathstr;  de┆
0x01b2c0…01b2e0             66 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3a 20 65 78 74   ┆f_extension, comp_extension: ext┆
0x01b2e0…01b300             73 74 72 3b 20 20 64 61 74 61 5f 72 65 63 5f 73 69 7a 65 3a 20 77 6f 72 64 3b 0a 09 76 61 72 20   ┆str;  data_rec_size: word;  var ┆
0x01b300…01b320             77 61 6e 74 65 64 5f 69 74 65 6d 73 3a 20 77 6f 72 64 3b 0a 09 76 61 72 20 64 61 74 61 62 61 73   ┆wanted_items: word;  var databas┆
0x01b320…01b340             65 5f 6f 70 65 6e 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 09 76 61 72 20 64 61 74 5f 6e 61 6d 65 2c 20   ┆e_open: boolean;  var dat_name, ┆
0x01b340…01b360             69 6e 78 5f 6e 61 6d 65 3a 20 70 61 74 68 73 74 72 3b 0a 09 76 61 72 20 64 61 74 66 20 3a 20 64   ┆inx_name: pathstr;  var datf : d┆
0x01b360…01b380             61 74 61 66 69 6c 65 3b 20 76 61 72 20 69 6e 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 29 3b 0a 20   ┆atafile; var inxf: indexfile);  ┆
0x01b380…01b3a0             28 2a 20 20 72 65 61 64 20 6c 69 73 74 20 6f 66 20 70 61 72 61 6d 65 74 65 72 73 0a 20 2d 2d 20   ┆(*  read list of parameters  -- ┆
0x01b3a0…01b3c0             20 61 6e 64 20 63 68 65 63 6b 20 74 68 61 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 65 78 69   ┆ and check that source files exi┆
0x01b3c0…01b3e0             73 74 0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20 6f 72 20 68 61 6c 74 73 20 74 68 65 20 70 72 6f   ┆st  --  returns or halts the pro┆
0x01b3e0…01b400             67 72 61 6d 0a 20 2d 2d 20 20 47 6c 6f 62 61 6c 73 3a 20 20 73 6f 75 72 63 65 2c 20 6f 6c 64 6c   ┆gram  --  Globals:  source, oldl┆
0x01b400…01b420 (7, 0, 9)   69 62 5f 70 61 74 68 0a 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 70 61 67 65 73 2c 20 77 6f   ┆ib_path  *)   var      pages, wo┆
0x01b420…01b440             72 6b 09 3a 20 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 20 20 70 6e 6f 2c 20 6e 75 6d 2c 0a 20 20   ┆rk :  longint;      pno, num,   ┆
0x01b440…01b460             20 20 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 2c 0a 20 20 20 20 20 6e 6f 5f 6f 66 5f 70   ┆   no_of_externals,      no_of_p┆
0x01b460…01b480             61 72 61 6d 73 2c 0a 20 20 20 20 20 6e 6f 5f 6f 66 5f 75 73 65 73 2c 0a 20 20 20 20 20 70 2c 20   ┆arams,      no_of_uses,      p, ┆
0x01b480…01b4a0             64 72 6e 09 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 2c 0a 20   ┆drn :  word;      newobj_name,  ┆
0x01b4a0…01b4c0             20 20 20 20 70 61 72 61 6d 09 3a 20 20 70 61 74 68 73 74 72 3b 0a 20 20 20 20 20 64 69 72 09 3a   ┆    param :  pathstr;      dir :┆
0x01b4c0…01b4e0             20 20 64 69 72 73 74 72 3b 0a 20 20 20 20 20 6e 61 6d 65 09 3a 20 20 6e 61 6d 65 73 74 72 3b 0a   ┆  dirstr;      name :  namestr; ┆
0x01b4e0…01b500             20 20 20 20 20 65 78 74 09 3a 20 20 65 78 74 73 74 72 3b 0a 20 20 20 20 20 6b 65 79 09 3a 20 20   ┆     ext :  extstr;      key :  ┆
0x01b500…01b520             61 6c 66 61 73 74 72 3b 0a 20 20 20 20 20 6d 6f 64 75 6c 65 09 3a 20 20 6d 6f 64 75 6c 65 5f 72   ┆alfastr;      module :  module_r┆
0x01b520…01b540             65 63 3b 0a 20 20 20 20 20 6e 65 77 68 65 61 64 09 3a 20 20 64 65 73 63 72 69 70 74 6f 72 5f 70   ┆ec;      newhead :  descriptor_p┆
0x01b540…01b560             61 72 74 31 3b 0a 20 20 20 20 20 6e 65 77 6f 62 6a 09 3a 20 20 66 69 6c 65 3b 0a 20 20 20 20 20   ┆art1;      newobj :  file;      ┆
0x01b560…01b580             6e 65 77 6f 62 6a 5f 6f 70 65 6e 65 64 20 3a 20 20 62 6f 6f 6c 65 61 6e 3b 0a 0a 20 20 70 72 6f   ┆newobj_opened :  boolean;    pro┆
0x01b580…01b5a0             63 65 64 75 72 65 20 73 6b 69 70 20 28 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 20 3a 20 6c 6f 6e 67   ┆cedure skip ( no_of_bytes : long┆
0x01b5a0…01b5c0             69 6e 74 29 3b 0a 0a 20 20 76 61 72 20 20 63 75 72 5f 70 6f 73 3a 20 6c 6f 6e 67 69 6e 74 3b 0a   ┆int);    var  cur_pos: longint; ┆
0x01b5c0…01b5e0             20 20 62 65 67 69 6e 0a 20 20 63 75 72 5f 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 6e 65   ┆  begin   cur_pos:= filepos ( ne┆
0x01b5e0…01b600             77 6f 62 6a 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 0a 20 20 69   ┆wobj);   iocheck ( newobj);    i┆
0x01b600…01b620 (7, 0, 10)  66 20 28 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 20 3e 20 66 69 6c 65 73 69 7a 65 20 28 20 6e 65 77   ┆f ( no_of_bytes > filesize ( new┆
0x01b620…01b640             6f 62 6a 29 20 2d 20 63 75 72 5f 70 6f 73 20 29 0a 20 20 6f 72 20 28 20 6e 6f 5f 6f 66 5f 62 79   ┆obj) - cur_pos )   or ( no_of_by┆
0x01b640…01b660             74 65 73 20 3c 20 2d 20 63 75 72 5f 70 6f 73 20 29 0a 20 20 20 20 74 68 65 6e 20 68 61 6c 74 20   ┆tes < - cur_pos )     then halt ┆
0x01b660…01b680             28 20 31 30 30 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 0a 20 20   ┆( 100);   iocheck ( newobj);    ┆
0x01b680…01b6a0             73 65 65 6b 20 28 20 6e 65 77 6f 62 6a 2c 20 63 75 72 5f 70 6f 73 20 2b 20 6e 6f 5f 6f 66 5f 62   ┆seek ( newobj, cur_pos + no_of_b┆
0x01b6a0…01b6c0             79 74 65 73 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 6e 65 77 6f 62 6a 29 0a 20 20 65 6e 64   ┆ytes);   iocheck ( newobj)   end┆
0x01b6c0…01b6e0             3b 20 28 2a 20 73 6b 69 70 20 2a 29 0a 0a 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 28 20 70 61   ┆; (* skip *)     begin   if ( pa┆
0x01b6e0…01b700             72 61 6d 63 6f 75 6e 74 20 3d 20 30 20 29 20 6f 72 20 28 20 70 61 72 61 6d 73 74 72 20 28 20 31   ┆ramcount = 0 ) or ( paramstr ( 1┆
0x01b700…01b720             29 20 3d 20 27 48 45 4c 50 27 20 29 0a 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 77 72   ┆) = 'HELP' )   then begin     wr┆
0x01b720…01b740             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 48 65 6c 70 20 69 6e 66 6f 72 6d 61 74 69 6f   ┆iteln ( output, 'Help informatio┆
0x01b740…01b760             6e 20 66 6f 72 20 50 4c 49 42 20 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆n for PLIB :');     writeln ( ou┆
0x01b760…01b780             74 70 75 74 2c 0a 20 20 20 20 27 54 68 65 20 70 72 6f 67 72 61 6d 20 75 70 64 61 74 65 73 20 61   ┆tput,     'The program updates a┆
0x01b780…01b7a0             20 52 43 35 30 30 30 20 6f 62 6a 65 63 74 20 6c 69 62 72 61 72 79 2e 27 29 3b 0a 20 20 20 20 77   ┆ RC5000 object library.');     w┆
0x01b7a0…01b7c0             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆riteln ( output);     writeln ( ┆
0x01b7c0…01b7e0             6f 75 74 70 75 74 2c 20 27 43 61 6c 6c 20 73 79 6e 74 61 78 3a 27 29 3b 0a 20 20 20 20 77 72 69   ┆output, 'Call syntax:');     wri┆
0x01b7e0…01b800             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 50 4c 49 42 20 2f 49 4e 53 45   ┆teln ( output,       'PLIB /INSE┆
0x01b800…01b820 (7, 0, 11)  52 54 20 3d 3c 6e 65 77 6c 69 62 3e 2d 3c 77 6f 72 6b 64 69 72 65 63 74 6f 72 79 3e 20 3c 6f 62   ┆RT =<newlib>-<workdirectory> <ob┆
0x01b820…01b840             6a 65 63 74 6c 69 73 74 3e 20 4c 49 42 2d 3c 6f 6c 64 6c 69 62 3e 27 29 3b 0a 20 20 20 20 77 72   ┆jectlist> LIB-<oldlib>');     wr┆
0x01b840…01b860             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 50 4c 49 42 20 2f 44 45 4c   ┆iteln ( output,       'PLIB /DEL┆
0x01b860…01b880             45 54 45 20 3d 3c 6e 65 77 6c 69 62 3e 2d 3c 77 6f 72 6b 64 69 72 65 63 74 6f 72 79 3e 20 3c 65   ┆ETE =<newlib>-<workdirectory> <e┆
0x01b880…01b8a0             6e 74 72 79 6c 69 73 74 3e 20 4c 49 42 2d 3c 6f 6c 64 6c 69 62 3e 27 29 3b 0a 20 20 20 20 77 72   ┆ntrylist> LIB-<oldlib>');     wr┆
0x01b8a0…01b8c0             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 50 4c 49 42 20 2f 45 58 54   ┆iteln ( output,       'PLIB /EXT┆
0x01b8c0…01b8e0             52 41 43 54 20 3d 3c 6e 65 77 6c 69 62 3e 2d 3c 77 6f 72 6b 64 69 72 65 63 74 6f 72 79 3e 20 3c   ┆RACT =<newlib>-<workdirectory> <┆
0x01b8e0…01b900             65 6e 74 72 79 6c 69 73 74 3e 20 4c 49 42 2d 3c 6f 6c 64 6c 69 62 3e 27 29 3b 0a 20 20 20 20 77   ┆entrylist> LIB-<oldlib>');     w┆
0x01b900…01b920             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20   ┆riteln ( output,       '        ┆
0x01b920…01b940             20 2d 3c 77 6f 72 6b 64 69 72 65 63 74 6f 72 79 3e 20 20 20 20 69 73 20 6f 6e 6c 79 20 6e 65 65   ┆ -<workdirectory>    is only nee┆
0x01b940…01b960             64 65 64 20 69 66 20 6e 6f 74 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 29 3b 0a   ┆ded if not current directory'); ┆
0x01b960…01b980             20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20   ┆    writeln ( output,       '   ┆
0x01b980…01b9a0             20 20 20 20 20 20 3c 6e 65 77 6c 69 62 3e 2c 3c 6f 6c 64 6c 69 62 3e 3a 20 20 20 20 20 6e 61 6d   ┆      <newlib>,<oldlib>:     nam┆
0x01b9a0…01b9c0             65 20 6f 66 20 6c 69 62 72 61 72 79 20 66 69 6c 65 73 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c   ┆e of library files');     writel┆
0x01b9c0…01b9e0             6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 3c 6f 62 6a   ┆n ( output,       '         <obj┆
0x01b9e0…01ba00             65 63 74 6c 69 73 74 3e 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 20 6f 66 20 6e 61 6d 65 73   ┆ectlist>           list of names┆
0x01ba00…01ba20 (7, 0, 12)  20 6f 66 20 66 69 6c 65 73 20 77 69 74 68 20 6f 62 6a 65 63 74 63 6f 64 65 27 29 3b 0a 20 20 20   ┆ of files with objectcode');    ┆
0x01ba20…01ba40             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20   ┆ writeln ( output,       '      ┆
0x01ba40…01ba60             20 20 20 50 41 52 41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 20 20 20 20 20 6e 61 6d 65 20 6f   ┆   PARAMIN-<filepath>     name o┆
0x01ba60…01ba80             66 20 66 69 6c 65 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20 20 77 72   ┆f file with parameters');     wr┆
0x01ba80…01baa0             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20   ┆iteln ( output,       '         ┆
0x01baa0…01bac0             53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72 70 61 74 68 3e 20 20 20 64 69 72 65 63 74 6f 72 79   ┆SOURCEPATH-<dirpath>   directory┆
0x01bac0…01bae0             20 70 61 74 68 20 66 6f 72 20 70 61 72 61 6d 65 74 65 72 20 72 65 61 64 69 6e 67 27 29 3b 0a 20   ┆ path for parameter reading');  ┆
0x01bae0…01bb00             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20   ┆   writeln ( output,       '    ┆
0x01bb00…01bb20             20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 69   ┆             Default extension i┆
0x01bb20…01bb40             73 20 20 22 27 2c 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 27 22 20 20 27 29 3b 0a 20 20   ┆s  "', def_extension, '"  ');   ┆
0x01bb40…01bb60             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20   ┆  writeln ( output,       '     ┆
0x01bb60…01bb80             20 20 20 20 3c 65 6e 74 72 79 6c 69 73 74 3e 3a 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 20   ┆    <entrylist>:           list ┆
0x01bb80…01bba0             6f 66 20 3c 65 6e 74 72 79 3e 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆of <entry>');     writeln ( outp┆
0x01bba0…01bbc0             75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 3c 65 6e 74 72 79 3e 3a 20 20 20 20   ┆ut,       '         <entry>:    ┆
0x01bbc0…01bbe0             20 20 20 20 20 20 20 20 20 20 20 45 4e 54 52 59 2d 3c 65 6e 74 72 79 6e 75 6d 62 65 72 3e 20 6f   ┆           ENTRY-<entrynumber> o┆
0x01bbe0…01bc00             72 20 3c 6e 61 6d 65 20 6f 66 20 6d 6f 64 75 6c 65 3e 27 29 3b 0a 0a 20 20 20 20 77 72 69 74 65   ┆r <name of module>');      write┆
0x01bc00…01bc20 (7, 0, 13)  6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 27 29 3b 0a 20 20 20 20 77 72   ┆ln ( output,       '  ');     wr┆
0x01bc20…01bc40             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 20 20 20 20 65 72 72 6f 72 20 28 20 31 2c   ┆iteln ( output);      error ( 1,┆
0x01bc40…01bc60             20 27 21 20 53 70 65 63 69 66 79 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20 20 65 6e   ┆ '! Specify parameters');     en┆
0x01bc60…01bc80             64 3b 0a 0a 20 20 20 28 2a 20 20 66 69 6e 64 20 6f 6c 64 6c 69 62 20 6e 61 6d 65 20 20 2a 29 0a   ┆d;     (*  find oldlib name  *) ┆
0x01bc80…01bca0             20 20 20 6f 6c 64 6c 69 62 6e 61 6d 65 3a 3d 20 27 4f 4c 44 4c 49 42 27 3b 0a 0a 20 20 66 6f 72   ┆   oldlibname:= 'OLDLIB';    for┆
0x01bca0…01bcc0             20 70 6e 6f 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a 20   ┆ pno:= 1 to paramlist.items do  ┆
0x01bcc0…01bce0             20 20 20 62 65 67 69 6e 0a 20 20 20 20 70 61 72 61 6d 3a 3d 20 67 65 74 70 61 72 61 6d 20 28 20   ┆   begin     param:= getparam ( ┆
0x01bce0…01bd00             70 6e 6f 29 3b 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 6c 69 62 2d 27 2c 20 70 61 72 61 6d   ┆pno);     if pos ( 'lib-', param┆
0x01bd00…01bd20             29 20 3d 20 31 20 74 68 65 6e 09 09 28 2a 20 20 20 20 4c 49 42 2d 3c 66 69 6c 65 3e 20 20 20 2a   ┆) = 1 then  (*    LIB-<file>   *┆
0x01bd20…01bd40             29 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6f 6c 64 6c 69 62 6e 61 6d 65 3a 3d   ┆)       begin       oldlibname:=┆
0x01bd40…01bd60             20 63 6f 70 79 20 28 20 70 61 72 61 6d 2c 20 35 2c 20 70 61 74 68 6c 65 6e 67 74 68 29 3b 0a 20   ┆ copy ( param, 5, pathlength);  ┆
0x01bd60…01bd80             20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 66 6f 72 20 61 6c 6c 20 69   ┆     end     end;  (*  for all i┆
0x01bd80…01bda0             74 65 6d 73 20 20 2a 29 0a 0a 20 20 66 73 70 6c 69 74 20 28 20 6f 6c 64 6c 69 62 6e 61 6d 65 2c   ┆tems  *)    fsplit ( oldlibname,┆
0x01bda0…01bdc0             20 64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 69 66 20 65 78 74 20 3d 20 27 27 20   ┆ dir, name, ext);   if ext = '' ┆
0x01bdc0…01bde0             74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6f 6c 64 6c 69 62 6e 61 6d 65 3a 3d 20   ┆then     begin     oldlibname:= ┆
0x01bde0…01be00             64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 20 20   ┆dir + name + def_extension;     ┆
0x01be00…01be20 (7, 0, 14)  69 66 20 6c 6f 6f 6b 75 70 20 28 20 6f 6c 64 6c 69 62 6e 61 6d 65 29 20 74 68 65 6e 20 20 28 2a   ┆if lookup ( oldlibname) then  (*┆
0x01be20…01be40             20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20   ┆  ok  *)     else       begin   ┆
0x01be40…01be60             20 20 20 20 6f 6c 64 6c 69 62 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 63 6f   ┆    oldlibname:= dir + name + co┆
0x01be60…01be80             6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20   ┆mp_extension;       if lookup ( ┆
0x01be80…01bea0             6f 6c 64 6c 69 62 6e 61 6d 65 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20   ┆oldlibname) then  (*  ok  *)    ┆
0x01bea0…01bec0             20 20 20 65 6c 73 65 20 6f 6c 64 6c 69 62 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 0a   ┆   else oldlibname:= dir + name ┆
0x01bec0…01bee0             20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 6c 6f 6f 6b 75 70 20   ┆      end     end;    if lookup ┆
0x01bee0…01bf00             28 20 6f 6c 64 6c 69 62 6e 61 6d 65 29 0a 20 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29   ┆( oldlibname)   then  (*  ok  *)┆
0x01bf00…01bf20             0a 20 20 65 6c 73 65 20 65 72 72 6f 72 20 28 20 32 2c 20 63 6f 6e 63 61 74 20 28 27 2a 2a 2a 20   ┆   else error ( 2, concat ('*** ┆
0x01bf20…01bf40             46 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 73 3a 20 27 2c 20 6f 6c 64 6c 69 62 6e   ┆File does not exists: ', oldlibn┆
0x01bf40…01bf60             61 6d 65 29 29 3b 0a 0a 20 20 69 66 20 6c 65 66 74 73 69 64 65 20 3c 3e 20 27 27 20 74 68 65 6e   ┆ame));    if leftside <> '' then┆
0x01bf60…01bf80             20 20 6e 65 77 6c 69 62 6e 61 6d 65 3a 3d 20 6c 65 66 74 73 69 64 65 0a 20 20 65 6c 73 65 20 20   ┆  newlibname:= leftside   else  ┆
0x01bf80…01bfa0             6e 65 77 6c 69 62 6e 61 6d 65 3a 3d 20 27 4c 49 42 27 3b 0a 0a 20 20 66 73 70 6c 69 74 20 28 20   ┆newlibname:= 'LIB';    fsplit ( ┆
0x01bfa0…01bfc0             6e 65 77 6c 69 62 6e 61 6d 65 2c 20 64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 69   ┆newlibname, dir, name, ext);   i┆
0x01bfc0…01bfe0             66 20 65 78 74 20 3d 20 27 27 20 74 68 65 6e 20 20 6e 65 77 6c 69 62 6e 61 6d 65 3a 3d 20 64 69   ┆f ext = '' then  newlibname:= di┆
0x01bfe0…01c000             72 20 2b 20 6e 61 6d 65 20 2b 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 0a 20 20 69 66 20   ┆r + name + def_extension;    if ┆
0x01c000…01c020 (7, 0, 15)  74 72 75 65 20 74 68 65 6e 20 20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆true then  begin   writeln ( out┆
0x01c020…01c040             70 75 74 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20 20 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20   ┆put);   writeln   ( output, '-- ┆
0x01c040…01c060             20 20 50 4c 49 42 20 20 70 72 6f 67 72 61 6d 20 27 2c 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20   ┆  PLIB  program ', programname, ┆
0x01c060…01c080             27 3a 20 27 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 6f 6c 64   ┆': ');   writeln ( output, ' old┆
0x01c080…01c0a0             6c 69 62 20 66 69 6c 65 3a 20 27 2c 20 20 6f 6c 64 6c 69 62 6e 61 6d 65 20 29 3b 0a 20 20 77 72   ┆lib file: ',  oldlibname );   wr┆
0x01c0a0…01c0c0             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 6e 65 77 6c 69 62 20 66 69 6c 65 3a 20 27   ┆iteln ( output, ' newlib file: '┆
0x01c0c0…01c0e0             2c 20 20 6e 65 77 6c 69 62 6e 61 6d 65 20 29 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 28 20   ┆,  newlibname );   end;    if ( ┆
0x01c0e0…01c100             70 72 6f 67 72 61 6d 6e 61 6d 65 20 3c 3e 20 6c 69 62 5f 69 6e 73 65 72 74 20 29 0a 20 20 61 6e   ┆programname <> lib_insert )   an┆
0x01c100…01c120             64 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 20 3c 3e 20 6c 69 62 5f 64 65 6c 65 74 65 20 29 0a   ┆d ( programname <> lib_delete ) ┆
0x01c120…01c140             20 20 61 6e 64 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 20 3c 3e 20 6c 69 62 5f 65 78 74 72 61   ┆  and ( programname <> lib_extra┆
0x01c140…01c160             63 74 20 29 0a 20 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 0a 20 20 20 20 65 72 72   ┆ct )   then    begin         err┆
0x01c160…01c180             6f 72 20 28 20 31 2c 20 27 2a 2a 2a 20 50 61 72 61 6d 65 74 65 72 20 2f 49 4e 53 45 52 54 20 6f   ┆or ( 1, '*** Parameter /INSERT o┆
0x01c180…01c1a0             72 20 2f 44 45 4c 45 54 45 20 6f 72 20 2f 45 58 54 52 41 43 54 20 6d 75 73 74 20 62 65 20 73 70   ┆r /DELETE or /EXTRACT must be sp┆
0x01c1a0…01c1c0             65 63 69 66 69 65 64 2e 27 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 6d 61 6b 65 66 69 6c 65   ┆ecified.');     end;    makefile┆
0x01c1c0…01c1e0             20 20 28 20 64 61 74 66 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 64 61 74 5f 6e 61   ┆  ( datf, plibwork_name + dat_na┆
0x01c1e0…01c200             6d 65 2c 20 64 61 74 61 5f 72 65 63 5f 73 69 7a 65 20 20 28 2a 20 73 69 7a 65 6f 66 20 28 20 6d   ┆me, data_rec_size  (* sizeof ( m┆
0x01c200…01c220 (7, 1, 1)   6f 64 75 6c 65 5f 72 65 63 29 20 2a 29 20 29 3b 0a 20 20 6d 61 6b 65 69 6e 64 65 78 20 28 20 69   ┆odule_rec) *) );   makeindex ( i┆
0x01c220…01c240             6e 78 66 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 69 6e 78 5f 6e 61 6d 65 2c 20 61   ┆nxf, plibwork_name + inx_name, a┆
0x01c240…01c260             6c 66 61 6c 65 6e 67 74 68 2c 20 75 6e 69 71 75 65 5f 6b 65 79 73 29 3b 0a 20 20 64 61 74 61 62   ┆lfalength, unique_keys);   datab┆
0x01c260…01c280             61 73 65 5f 6f 70 65 6e 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 77 61 6e 74 65 64 5f 69 74 65 6d 73   ┆ase_open:= true;    wanted_items┆
0x01c280…01c2a0             3a 3d 20 30 3b 0a 0a 20 20 69 66 20 70 72 6f 67 72 61 6d 6e 61 6d 65 20 3d 20 6c 69 62 5f 69 6e   ┆:= 0;    if programname = lib_in┆
0x01c2a0…01c2c0             73 65 72 74 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 61 6e 74 65 64 5f 69   ┆sert then     begin     wanted_i┆
0x01c2c0…01c2e0             74 65 6d 73 3a 3d 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 3b 0a 20 20 20 20 66 6f 72 20   ┆tems:= paramlist.items;     for ┆
0x01c2e0…01c300             70 6e 6f 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a 20 20   ┆pno:= 1 to paramlist.items do   ┆
0x01c300…01c320             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 3a 3d 20 67 65   ┆    begin       newobj_name:= ge┆
0x01c320…01c340             74 70 61 72 61 6d 20 28 20 70 6e 6f 29 3b 0a 0a 20 20 20 20 20 20 69 66 20 66 61 6c 73 65 20 74   ┆tparam ( pno);        if false t┆
0x01c340…01c360             68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 70 61 72 61 6d 65 74   ┆hen  writeln ( output, ' paramet┆
0x01c360…01c380             65 72 20 20 27 2c 20 70 6e 6f 2c 20 27 20 3a 20 27 2c 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 29 3b   ┆er  ', pno, ' : ', newobj_name);┆
0x01c380…01c3a0             0a 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 6c 69 62 2d 27 2c 20 6e 65 77 6f 62 6a 5f 6e   ┆       if pos ( 'lib-', newobj_n┆
0x01c3a0…01c3c0             61 6d 65 29 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20   ┆ame) = 0 then       begin       ┆
0x01c3c0…01c3e0             66 73 70 6c 69 74 20 28 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 2c 20 64 69 72 2c 20 6e 61 6d 65 2c   ┆fsplit ( newobj_name, dir, name,┆
0x01c3e0…01c400             20 65 78 74 29 3b 0a 20 20 20 20 20 20 69 66 20 65 78 74 20 3d 20 27 27 20 74 68 65 6e 0a 20 20   ┆ ext);       if ext = '' then   ┆
0x01c400…01c420 (7, 1, 2)   20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 3a   ┆      begin         newobj_name:┆
0x01c420…01c440             3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20   ┆= dir + name + def_extension;   ┆
0x01c440…01c460             20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 29 20 74   ┆      if lookup ( newobj_name) t┆
0x01c460…01c480             68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20   ┆hen  (*  ok  *)         else    ┆
0x01c480…01c4a0             20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6e 65 77 6f 62 6a 5f 6e 61   ┆       begin           newobj_na┆
0x01c4a0…01c4c0             6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e   ┆me:= dir + name + comp_extension┆
0x01c4c0…01c4e0             3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 6e 65 77 6f 62 6a 5f 6e   ┆;           if lookup ( newobj_n┆
0x01c4e0…01c500             61 6d 65 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20   ┆ame) then  (*  ok  *)           ┆
0x01c500…01c520             65 6c 73 65 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 3b 0a 20   ┆else newobj_name:= dir + name;  ┆
0x01c520…01c540             20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20   ┆         end         end;       ┆
0x01c540…01c560             20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 6e 65 77 6f 62 6a 2c 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65   ┆ open_file ( newobj, newobj_name┆
0x01c560…01c580             2c 20 66 6d 5f 72 65 61 64 29 3b 0a 20 20 20 20 20 20 69 66 20 69 6f 73 74 61 74 20 3c 3e 20 30   ┆, fm_read);       if iostat <> 0┆
0x01c580…01c5a0             20 74 68 65 6e 20 20 65 72 72 6f 72 20 28 20 32 2c 20 27 2a 2a 2a 20 46 69 6c 65 20 64 6f 65 73   ┆ then  error ( 2, '*** File does┆
0x01c5a0…01c5c0             20 6e 6f 74 20 65 78 69 73 74 3a 20 27 20 2b 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 29 0a 20 20 20   ┆ not exist: ' + newobj_name)    ┆
0x01c5c0…01c5e0             20 20 20 65 6c 73 65 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6e 65 77 6f 62 6a 5f 6f 70   ┆   else  begin         newobj_op┆
0x01c5e0…01c600             65 6e 65 64 3a 3d 20 74 72 75 65 3b 0a 09 72 65 70 65 61 74 0a 09 20 20 77 69 74 68 20 6d 6f 64   ┆ened:= true;  repeat    with mod┆
0x01c600…01c620 (7, 1, 3)   75 6c 65 20 64 6f 20 20 62 65 67 69 6e 0a 09 20 20 20 20 72 65 63 73 74 61 74 3a 3d 20 30 3b 0a   ┆ule do  begin      recstat:= 0; ┆
0x01c620…01c640             09 20 20 20 20 70 61 74 68 3a 3d 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 3b 0a 09 20 20 20 20 64 65   ┆     path:= newobj_name;      de┆
0x01c640…01c660             73 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 09 20 20 20 20 69   ┆spos:= filepos ( newobj);      i┆
0x01c660…01c680             6f 63 68 65 63 6b 20 28 20 6e 65 77 6f 62 6a 29 0a 09 20 20 20 20 65 6e 64 3b 0a 0a 09 20 20 72   ┆ocheck ( newobj)      end;     r┆
0x01c680…01c6a0             65 61 64 68 65 61 64 20 28 20 6e 65 77 6f 62 6a 2c 20 6e 65 77 68 65 61 64 29 3b 0a 09 20 20 77   ┆eadhead ( newobj, newhead);    w┆
0x01c6a0…01c6c0             69 74 68 20 6e 65 77 68 65 61 64 20 64 6f 0a 09 20 20 20 69 66 20 64 65 73 63 72 69 70 74 6f 72   ┆ith newhead do     if descriptor┆
0x01c6c0…01c6e0             5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72 6b 20 74 68 65 6e 0a 09 20 20 20 20 62   ┆_length <> stop_mark then      b┆
0x01c6e0…01c700             65 67 69 6e 0a 09 20 20 20 20 69 66 20 20 6b 69 6e 64 20 69 6e 20 28 2e 20 31 2e 2e 36 20 2e 29   ┆egin      if  kind in (. 1..6 .)┆
0x01c700…01c720             20 20 74 68 65 6e 0a 09 20 20 20 20 20 20 62 65 67 69 6e 0a 09 20 20 20 20 20 20 61 64 64 72 65   ┆  then        begin        addre┆
0x01c720…01c740             63 20 28 20 64 61 74 66 2c 20 64 72 6e 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 20 20 20 20 20 20 6b   ┆c ( datf, drn, module);        k┆
0x01c740…01c760             65 79 3a 3d 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 20 2b 20 27 20 20 20 20 20 20 20 20   ┆ey:= stralfa ( name) + '        ┆
0x01c760…01c780             20 20 20 20 27 3b 0a 09 20 20 20 20 20 20 61 64 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e   ┆    ';        addkey ( inxf, drn┆
0x01c780…01c7a0             2c 20 6b 65 79 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 64 65 62 75 67 31 20   ┆, key);               if debug1 ┆
0x01c7a0…01c7c0             74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 20 20 20 61 64 64 6b   ┆then writeln ( output, '-   addk┆
0x01c7c0…01c7e0             65 79 20 20 20 22 27 2c 20 6b 65 79 2c 20 27 22 27 29 3b 0a 09 20 20 20 20 20 20 69 66 20 6e 6f   ┆ey   "', key, '"');        if no┆
0x01c7e0…01c800             74 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 09 09 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆t success then   writeln ( outpu┆
0x01c800…01c820 (7, 1, 4)   74 2c 20 27 21 20 20 20 44 75 70 6c 69 63 61 74 65 20 65 6e 74 72 79 20 6e 61 6d 65 3a 20 27 2c   ┆t, '!   Duplicate entry name: ',┆
0x01c820…01c840             20 6b 65 79 29 3b 0a 0a 09 20 20 20 20 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 0a 20 20 20   ┆ key);         if false then    ┆
0x01c840…01c860             20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆             begin              ┆
0x01c860…01c880             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 6d 6f 64 75 6c 65 20 72   ┆   writeln ( output, '  module r┆
0x01c880…01c8a0             65 63 20 66 6f 72 20 3a 20 27 2c 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 2c 20 27 20 20 27 2c 20 73   ┆ec for : ', newobj_name, '  ', s┆
0x01c8a0…01c8c0             74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆tralfa ( name));                ┆
0x01c8c0…01c8e0             20 74 63 3a 3d 20 72 65 61 64 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e   ┆ tc:= readkey                 en┆
0x01c8e0…01c900             64 3b 0a 09 20 20 20 20 20 20 65 6e 64 3b 0a 0a 0a 09 20 20 20 20 69 66 20 6b 69 6e 64 20 3d 20   ┆d;        end;        if kind = ┆
0x01c900…01c920             73 75 6d 6b 69 6e 64 20 74 68 65 6e 0a 09 20 20 20 20 65 6c 73 65 20 20 62 65 67 69 6e 09 09 28   ┆sumkind then      else  begin  (┆
0x01c920…01c940             2a 20 73 6b 69 70 20 72 65 73 74 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e   ┆* skip rest of descriptor segmen┆
0x01c940…01c960             74 20 2a 29 0a 09 20 20 20 20 20 20 73 65 65 6b 20 28 20 6e 65 77 6f 62 6a 2c 20 6d 6f 64 75 6c   ┆t *)        seek ( newobj, modul┆
0x01c960…01c980             65 2e 64 65 73 70 6f 73 20 2b 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 29 3b 0a   ┆e.despos + descriptor_length ); ┆
0x01c980…01c9a0             09 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 6e 65 77 6f 62 6a 29 0a 09 20 20 20 20 20 20   ┆       iocheck ( newobj)        ┆
0x01c9a0…01c9c0             65 6e 64 3b 0a 0a 09 20 20 20 20 28 2a 2d 2d 20 63 6f 6d 70 75 74 65 20 6e 6f 20 6f 66 20 63 6f   ┆end;       (*-- compute no of co┆
0x01c9c0…01c9e0             64 65 62 79 74 65 73 20 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 73 3a 3d 20   ┆debytes  *)             pages:= ┆
0x01c9e0…01ca00             6e 6f 5f 6f 66 5f 70 61 67 65 73 3b 0a 09 20 20 20 20 77 6f 72 6b 3a 3d 20 6c 61 73 74 5f 70 61   ┆no_of_pages;      work:= last_pa┆
0x01ca00…01ca20 (7, 1, 5)   67 65 5f 6c 65 6e 67 74 68 3b 0a 09 20 20 20 20 77 6f 72 6b 20 3a 3d 20 77 6f 72 6b 20 2b 20 28   ┆ge_length;      work := work + (┆
0x01ca20…01ca40             20 70 61 67 65 73 20 2d 20 31 20 29 20 2a 20 70 61 67 65 73 69 7a 65 3b 0a 0a 09 20 20 20 20 73   ┆ pages - 1 ) * pagesize;       s┆
0x01ca40…01ca60             6b 69 70 20 28 20 77 6f 72 6b 29 3b 0a 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 6e   ┆kip ( work);     readinteger ( n┆
0x01ca60…01ca80             65 77 6f 62 6a 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 20 20 28 2a 20 6e 75 6d   ┆ewobj, no_of_externals);  (* num┆
0x01ca80…01caa0             62 65 72 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 0a 20 20 20 20 20 20   ┆ber of external links *)        ┆
0x01caa0…01cac0             20 69 66 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 3e 20 31 32 30 30 30 20 74 68 65 6e   ┆ if no_of_externals > 12000 then┆
0x01cac0…01cae0             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 74 6f 6f 20 6d 61 6e   ┆  writeln ( output, '*** too man┆
0x01cae0…01cb00             79 20 65 78 74 65 72 6e 61 6c 73 20 20 3a 20 27 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c   ┆y externals  : ', no_of_external┆
0x01cb00…01cb20             73 29 3b 0a 0a 20 20 20 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f   ┆s);         for p := 1 to no_of_┆
0x01cb20…01cb40             65 78 74 65 72 6e 61 6c 73 20 64 6f 0a 09 20 62 65 67 69 6e 0a 09 20 73 6b 69 70 20 28 20 61 6c   ┆externals do   begin   skip ( al┆
0x01cb40…01cb60             66 61 6c 65 6e 67 74 68 29 3b 0a 0a 09 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 6e 65 77 6f   ┆falength);    readinteger ( newo┆
0x01cb60…01cb80             62 6a 2c 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 29 3b 0a 09 20 73 6b 69 70 20 28 20 6e 6f 5f 6f   ┆bj, no_of_params);   skip ( no_o┆
0x01cb80…01cba0             66 5f 70 61 72 61 6d 73 20 2a 20 34 29 3b 0a 09 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 6e   ┆f_params * 4);   readinteger ( n┆
0x01cba0…01cbc0             65 77 6f 62 6a 2c 20 6e 6f 5f 6f 66 5f 75 73 65 73 29 3b 0a 09 20 73 6b 69 70 20 28 20 6e 6f 5f   ┆ewobj, no_of_uses);   skip ( no_┆
0x01cbc0…01cbe0             6f 66 5f 75 73 65 73 20 2a 20 34 20 29 3b 0a 09 20 65 6e 64 3b 20 20 28 2a 20 20 66 6f 72 20 70   ┆of_uses * 4 );   end;  (*  for p┆
0x01cbe0…01cc00             20 65 78 74 65 72 6e 61 6c 73 20 20 2a 29 0a 0a 20 20 20 20 20 20 28 2a 20 73 6b 69 70 20 69 6e   ┆ externals  *)        (* skip in┆
0x01cc00…01cc20 (7, 1, 6)   74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65   ┆ternal links *)       readintege┆
0x01cc20…01cc40             72 20 28 20 6e 65 77 6f 62 6a 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 20 20   ┆r ( newobj, no_of_externals);   ┆
0x01cc40…01cc60             20 20 20 20 69 66 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 3e 20 31 32 30 30 30 20 74   ┆    if no_of_externals > 12000 t┆
0x01cc60…01cc80             68 65 6e 0a 09 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 74 6f 6f   ┆hen   writeln ( output, '*** too┆
0x01cc80…01cca0             20 6d 61 6e 79 20 6c 69 6e 6b 73 20 3a 20 27 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73   ┆ many links : ', no_of_externals┆
0x01cca0…01ccc0             29 3b 0a 20 20 20 20 20 20 73 6b 69 70 20 28 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20   ┆);       skip ( no_of_externals ┆
0x01ccc0…01cce0             2a 20 20 38 20 29 3b 0a 0a 09 20 20 20 20 65 6e 64 20 20 28 2a 20 20 6e 6f 74 20 73 74 6f 70 20   ┆*  8 );       end  (*  not stop ┆
0x01cce0…01cd00             6d 61 72 6b 20 20 2a 29 0a 0a 09 75 6e 74 69 6c 20 6e 65 77 68 65 61 64 2e 64 65 73 63 72 69 70   ┆mark  *)   until newhead.descrip┆
0x01cd00…01cd20             74 6f 72 5f 6c 65 6e 67 74 68 20 3d 20 73 74 6f 70 5f 6d 61 72 6b 3b 0a 0a 09 63 6c 6f 73 65 5f   ┆tor_length = stop_mark;   close_┆
0x01cd20…01cd40             66 69 6c 65 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 20 20 20 20 20 20 20 20 6e 65 77 6f 62 6a 5f 6f   ┆file ( newobj);         newobj_o┆
0x01cd40…01cd60             70 65 6e 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 09 65 6e 64 3b 20 20 28 2a 20 20 6e 65 77 6f 62 6a   ┆pened:= false;  end;  (*  newobj┆
0x01cd60…01cd80             20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 6e 6f 74 20 4c 49 42   ┆ ok  *)        end;  (*  not LIB┆
0x01cd80…01cda0             2d 20 20 20 2a 29 0a 09 6e 65 77 6f 62 6a 5f 6e 61 6d 65 3a 3d 20 27 23 27 3b 0a 20 20 20 20 20   ┆-   *)  newobj_name:= '#';      ┆
0x01cda0…01cdc0             20 65 6e 64 20 20 28 2a 20 20 66 6f 72 20 61 6c 6c 20 69 74 65 6d 73 20 20 2a 29 0a 20 20 20 20   ┆ end  (*  for all items  *)     ┆
0x01cdc0…01cde0             65 6e 64 20 20 28 2a 20 20 69 6e 73 65 72 74 20 20 2a 29 0a 0a 20 20 65 6c 73 65 09 09 28 2a 20   ┆end  (*  insert  *)    else  (* ┆
0x01cde0…01ce00             20 64 65 6c 65 74 65 20 6f 72 20 65 78 74 72 61 63 74 20 20 2a 29 0a 20 20 20 20 62 65 67 69 6e   ┆ delete or extract  *)     begin┆
0x01ce00…01ce20 (7, 1, 7)   0a 20 20 20 20 66 6f 72 20 70 6e 6f 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 6c 69 73 74 2e 69 74   ┆     for pno:= 1 to paramlist.it┆
0x01ce20…01ce40             65 6d 73 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6b 65 79 3a 3d 20 67   ┆ems do       begin       key:= g┆
0x01ce40…01ce60             65 74 70 61 72 61 6d 20 28 20 70 6e 6f 29 3b 0a 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27   ┆etparam ( pno);       if pos ( '┆
0x01ce60…01ce80             6c 69 62 2d 27 2c 20 6b 65 79 29 20 3e 20 30 20 74 68 65 6e 09 28 2a 20 20 6c 69 62 20 66 69 6c   ┆lib-', key) > 0 then (*  lib fil┆
0x01ce80…01cea0             65 20 20 2a 29 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆e  *)       else       begin    ┆
0x01cea0…01cec0             20 20 20 69 66 20 70 6f 73 20 28 20 27 65 6e 74 72 79 2d 27 2c 20 6b 65 79 29 20 3e 20 30 20 74   ┆   if pos ( 'entry-', key) > 0 t┆
0x01cec0…01cee0             68 65 6e 09 09 28 2a 20 20 20 20 65 6e 74 72 79 2d 3c 6e 75 6d 62 65 72 3e 20 20 20 2a 29 0a 20   ┆hen  (*    entry-<number>   *)  ┆
0x01cee0…01cf00             20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 76 61 6c 20 28 20 63 6f 70 79 20 28 20 6b 65 79 2c 20   ┆       begin  val ( copy ( key, ┆
0x01cf00…01cf20             37 2c 20 31 32 29 2c 20 6e 75 6d 2c 20 70 29 3b 0a 09 6b 65 79 3a 3d 20 6e 75 6d 62 65 72 6b 65   ┆7, 12), num, p);  key:= numberke┆
0x01cf20…01cf40             79 20 28 20 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 20   ┆y ( num)         end       else ┆
0x01cf40…01cf60             6b 65 79 3a 3d 20 6b 65 79 20 2b 20 27 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a 20 20 20 20   ┆key:= key + '            ';     ┆
0x01cf60…01cf80             20 20 61 64 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 70 6e 6f 2c 20 6b 65 79 29 3b 0a 20 20 20 20   ┆  addkey ( inxf, pno, key);     ┆
0x01cf80…01cfa0             20 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆  if debug1 then writeln ( outpu┆
0x01cfa0…01cfc0             74 2c 20 27 2d 20 20 20 61 64 64 6b 65 79 20 20 20 22 27 2c 20 6b 65 79 2c 20 27 22 27 29 3b 0a   ┆t, '-   addkey   "', key, '"'); ┆
0x01cfc0…01cfe0             20 20 20 20 20 20 69 6e 63 20 28 20 77 61 6e 74 65 64 5f 69 74 65 6d 73 29 3b 0a 20 20 20 20 20   ┆      inc ( wanted_items);      ┆
0x01cfe0…01d000             20 69 66 20 6e 6f 74 20 73 75 63 63 65 73 73 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆ if not success then  writeln ( ┆
0x01d000…01d020 (7, 1, 8)   6f 75 74 70 75 74 2c 20 27 2a 20 20 20 44 75 70 6c 69 63 61 74 65 20 65 6e 74 72 79 20 6e 61 6d   ┆output, '*   Duplicate entry nam┆
0x01d020…01d040             65 3a 20 27 2c 20 6b 65 79 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 6e 6f 74 20   ┆e: ', key);       end;  (*  not ┆
0x01d040…01d060             6c 69 62 20 66 69 6c 65 20 20 2a 29 0a 20 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 66 6f 72 20   ┆lib file  *)       end  (*  for ┆
0x01d060…01d080             61 6c 6c 20 69 74 65 6d 73 20 20 2a 29 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 65 6e 64 3b 20 20   ┆all items  *)     end;    end;  ┆
0x01d080…01d0a0             28 2a 20 20 72 65 61 64 20 70 61 72 61 6d 73 20 20 2a 29 0a 0a 0c 0a 0a 0a 0a 50 72 6f 63 65 64   ┆(*  read params  *)       Proced┆
0x01d0a0…01d0c0             75 72 65 20 6d 61 6b 65 5f 6c 69 62 20 28 20 76 61 72 20 6f 6c 64 6c 69 62 5f 6e 61 6d 65 2c 20   ┆ure make_lib ( var oldlib_name, ┆
0x01d0c0…01d0e0             6e 65 77 6c 69 62 5f 6e 61 6d 65 20 3a 20 70 61 74 68 73 74 72 3b 0a 09 20 20 77 61 6e 74 65 64   ┆newlib_name : pathstr;    wanted┆
0x01d0e0…01d100             5f 69 74 65 6d 73 3a 20 77 6f 72 64 3b 20 20 76 61 72 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c   ┆_items: word;  var datf: datafil┆
0x01d100…01d120             65 3b 20 76 61 72 20 69 6e 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 29 3b 0a 28 2a 09 73 63 61 6e   ┆e; var inxf: indexfile); (* scan┆
0x01d120…01d140             20 6f 6c 64 6c 69 62 2c 20 66 6f 72 20 65 61 63 68 20 6d 6f 64 75 6c 65 20 3a 6c 6f 6f 6b 20 74   ┆ oldlib, for each module :look t┆
0x01d140…01d160             68 65 20 6e 61 6d 65 20 75 70 20 69 6e 20 69 6e 64 65 78 0a 2d 2d 09 61 6e 64 20 63 6f 70 79 20   ┆he name up in index -- and copy ┆
0x01d160…01d180             6f 72 20 73 6b 69 70 20 61 73 20 61 70 70 72 6f 70 72 69 61 74 65 0a 2a 29 0a 0a 20 20 74 79 70   ┆or skip as appropriate *)    typ┆
0x01d180…01d1a0             65 0a 20 20 20 20 20 62 6c 6f 63 6b 5f 74 79 70 65 09 3d 20 20 61 72 72 61 79 20 5b 20 31 2e 2e   ┆e      block_type =  array [ 1..┆
0x01d1a0…01d1c0             6d 61 78 69 6e 74 20 20 7b 62 6c 6f 63 6b 73 69 7a 65 7d 20 5d 20 6f 66 20 62 79 74 65 3b 0a 0a   ┆maxint  {blocksize} ] of byte;  ┆
0x01d1c0…01d1e0             20 20 63 6f 6e 73 74 0a 20 20 20 20 20 62 6c 6f 63 6b 73 69 7a 65 09 3a 20 20 77 6f 72 64 09 3d   ┆  const      blocksize :  word =┆
0x01d1e0…01d200             20 20 31 36 20 2a 20 31 30 32 34 3b 0a 20 20 20 20 20 6c 69 6e 65 6e 6f 09 3a 20 20 77 6f 72 64   ┆  16 * 1024;      lineno :  word┆
0x01d200…01d220 (7, 1, 9)   20 3d 20 20 30 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 68 69 74 09 3a 20 20 62 6f 6f 6c 65 61 6e   ┆ =  0;   var      hit :  boolean┆
0x01d220…01d240             3b 0a 20 20 20 20 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 2c 0a 20 20 20 20 20 6e 6f 5f   ┆;      no_of_externals,      no_┆
0x01d240…01d260             6f 66 5f 70 61 72 61 6d 73 20 2c 0a 20 20 20 20 20 6e 6f 5f 6f 66 5f 75 73 65 73 20 20 20 2c 0a   ┆of_params ,      no_of_uses   , ┆
0x01d260…01d280             20 20 20 20 20 73 74 65 70 20 20 20 20 20 20 20 20 20 2c 0a 20 20 20 20 20 69 74 65 6d 5f 6e 75   ┆     step         ,      item_nu┆
0x01d280…01d2a0             6d 62 65 72 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 64 65 73 63 72 5f 70 6f 73 20 20 20 20 2c   ┆mber : word;      descr_pos    ,┆
0x01d2a0…01d2c0             0a 20 20 20 20 20 77 6f 72 6b 20 20 20 20 20 20 20 20 20 3a 20 20 6c 6f 6e 67 69 6e 74 3b 0a 0a   ┆      work         :  longint;  ┆
0x01d2c0…01d2e0             20 20 20 20 20 70 72 6f 67 72 61 6d 6d 6f 64 65 09 3a 20 20 70 72 6f 67 72 61 6d 6d 6f 64 65 5f   ┆     programmode :  programmode_┆
0x01d2e0…01d300             74 79 70 65 3b 0a 20 20 20 20 20 68 65 61 64 2c 20 6e 65 77 68 65 61 64 09 3a 20 20 64 65 73 63   ┆type;      head, newhead :  desc┆
0x01d300…01d320             72 69 70 74 6f 72 5f 70 61 72 74 31 3b 0a 0a 20 20 20 20 20 62 6c 6f 63 6b 09 09 3a 20 20 5e 62   ┆riptor_part1;       block  :  ^b┆
0x01d320…01d340             6c 6f 63 6b 5f 74 79 70 65 3b 0a 0a 20 20 20 20 20 70 2c 20 62 79 74 65 73 2c 0a 20 20 20 20 20   ┆lock_type;       p, bytes,      ┆
0x01d340…01d360             64 72 6e 2c 20 6d 61 78 09 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 20 6b 65 79 09 3a 20 20 61 6c   ┆drn, max :  word;      key :  al┆
0x01d360…01d380             66 61 73 74 72 3b 0a 20 20 20 20 20 74 78 74 34 20 20 20 20 3a 20 20 73 74 72 69 6e 67 5b 34 5d   ┆fastr;      txt4    :  string[4]┆
0x01d380…01d3a0             3b 0a 20 20 20 20 20 73 74 61 6d 70 20 20 20 3a 20 20 64 61 74 65 74 69 6d 65 3b 0a 0a 0a 0a 0a   ┆;      stamp   :  datetime;     ┆
0x01d3a0…01d3c0             20 20 70 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 5f 72 65 6d 61 72 6b 20 28 20 76 61 72 20 68   ┆  procedure write_remark ( var h┆
0x01d3c0…01d3e0             65 61 64 3a 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 3b 20 72 65 6d 3a 20 61 6c 66 61   ┆ead: descriptor_part1; rem: alfa┆
0x01d3e0…01d400             73 74 72 29 3b 0a 20 20 28 2a 20 20 77 72 69 74 65 20 6e 61 6d 65 20 64 61 74 65 20 76 65 72 73   ┆str);   (*  write name date vers┆
0x01d400…01d420 (7, 1, 10)  69 6f 6e 20 61 6e 64 20 72 65 6d 61 72 6b 20 20 2a 29 0a 20 20 28 2a 20 20 70 61 72 61 6d 65 74   ┆ion and remark  *)   (*  paramet┆
0x01d420…01d440             65 72 73 20 73 68 6f 75 6c 64 20 62 65 20 66 72 6f 7a 65 6e 20 76 61 72 20 20 2a 29 0a 20 20 20   ┆ers should be frozen var  *)    ┆
0x01d440…01d460             20 62 65 67 69 6e 0a 20 20 20 20 69 6e 63 20 28 20 6c 69 6e 65 6e 6f 29 3b 0a 20 20 20 20 69 66   ┆ begin     inc ( lineno);     if┆
0x01d460…01d480             20 6c 69 6e 65 6e 6f 20 6d 6f 64 20 36 30 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65   ┆ lineno mod 60 = 0 then       be┆
0x01d480…01d4a0             67 69 6e 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69 74 65 6c 6e   ┆gin  writeln ( output);  writeln┆
0x01d4a0…01d4c0             20 28 20 6f 75 74 70 75 74 2c 0a 20 27 20 20 20 20 20 20 6e 72 20 20 6b 69 6e 64 20 20 20 20 20   ┆ ( output,  '      nr  kind     ┆
0x01d4c0…01d4e0             20 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 20 64 61 74 65 20 20 20 20 20 20   ┆ name          source date      ┆
0x01d4e0…01d500             20 76 65 72 73 69 6f 6e 20 20 20 63 68 61 6e 67 65 73 27 0a 20 29 3b 0a 20 77 72 69 74 65 6c 6e   ┆ version   changes'  );  writeln┆
0x01d500…01d520             20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 77 69 74 68   ┆ ( output);       end;      with┆
0x01d520…01d540             20 68 65 61 64 20 64 6f 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70   ┆ head do  begin     write ( outp┆
0x01d540…01d560             75 74 2c 20 69 74 65 6d 5f 6e 75 6d 62 65 72 3a 38 2c 20 27 20 20 27 29 3b 0a 0a 20 20 20 20 63   ┆ut, item_number:8, '  ');      c┆
0x01d560…01d580             61 73 65 20 6b 69 6e 64 20 6f 66 0a 20 20 20 20 20 30 20 20 20 3a 20 20 77 72 69 74 65 20 28 20   ┆ase kind of      0   :  write ( ┆
0x01d580…01d5a0             6f 75 74 70 75 74 2c 20 27 53 55 4d 20 20 20 20 20 20 20 27 29 3b 0a 20 20 20 20 20 31 20 20 20   ┆output, 'SUM       ');      1   ┆
0x01d5a0…01d5c0             3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 50 52 4f 47 52 41 4d 20 20 20 27 29   ┆:  write ( output, 'PROGRAM   ')┆
0x01d5c0…01d5e0             3b 0a 20 20 20 20 20 32 2c 20 34 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 50   ┆;      2, 4:  write ( output, 'P┆
0x01d5e0…01d600             52 4f 43 45 44 55 52 45 20 27 29 3b 0a 20 20 20 20 20 33 2c 20 35 3a 20 20 77 72 69 74 65 20 28   ┆ROCEDURE ');      3, 5:  write (┆
0x01d600…01d620 (7, 1, 11)  20 6f 75 74 70 75 74 2c 20 27 46 55 4e 43 54 49 4f 4e 20 20 27 29 3b 0a 20 20 20 20 20 36 20 20   ┆ output, 'FUNCTION  ');      6  ┆
0x01d620…01d640             20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 44 41 54 41 20 20 20 20 20 20 27   ┆ :  write ( output, 'DATA      '┆
0x01d640…01d660             29 3b 0a 20 20 20 20 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 6b 69 6e 64 20 2a 29 0a 0a 20 20 20   ┆);     end; (* case kind *)     ┆
0x01d660…01d680             20 74 78 74 34 3a 3d 20 27 2e 27 20 2b 20 73 74 72 69 6e 74 20 28 20 6c 6f 20 28 20 76 65 72 73   ┆ txt4:= '.' + strint ( lo ( vers┆
0x01d680…01d6a0             69 6f 6e 29 29 20 2b 20 27 20 20 20 27 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆ion)) + '   ';     writeln ( out┆
0x01d6a0…01d6c0             70 75 74 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 2c 20 27 27 3a 32 2c 20 73 74 72 64   ┆put, stralfa ( name), '':2, strd┆
0x01d6c0…01d6e0             61 74 65 20 28 73 6f 75 72 63 65 5f 64 61 74 65 29 2c 0a 20 20 20 20 20 20 27 3a 27 2c 20 73 74   ┆ate (source_date),       ':', st┆
0x01d6e0…01d700             72 74 69 6d 65 20 28 73 6f 75 72 63 65 5f 74 69 6d 65 29 2c 20 68 69 28 76 65 72 73 69 6f 6e 29   ┆rtime (source_time), hi(version)┆
0x01d700…01d720             3a 34 2c 20 74 78 74 34 2c 20 27 27 3a 34 2c 20 72 65 6d 20 29 3b 0a 20 20 20 20 65 6e 64 0a 20   ┆:4, txt4, '':4, rem );     end  ┆
0x01d720…01d740             20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 72 69 74 65 20 72 65 6d 61 72 6b 20 20 2a 29 0a 0a 0a   ┆   end;  (*  write remark  *)   ┆
0x01d740…01d760             0a 20 20 70 72 6f 63 65 64 75 72 65 20 63 6f 70 79 20 28 20 76 61 72 20 73 75 72 63 2c 20 64 65   ┆   procedure copy ( var surc, de┆
0x01d760…01d780             73 74 3a 20 66 69 6c 65 3b 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 3a 20 6c 6f 6e 67 69 6e 74 3b 20   ┆st: file; no_of_bytes: longint; ┆
0x01d780…01d7a0             6d 6f 64 65 3a 20 62 79 74 65 29 3b 0a 20 20 20 20 76 61 72 0a 20 20 20 20 20 20 6e 6f 5f 6f 66   ┆mode: byte);     var       no_of┆
0x01d7a0…01d7c0             5f 62 6c 6f 63 6b 73 2c 20 72 65 73 74 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 20 20 20 62 79   ┆_blocks, rest: longint;       by┆
0x01d7c0…01d7e0             74 65 73 20 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20 69 66 20 64   ┆tes :  word;     begin      if d┆
0x01d7e0…01d800             65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 20 20 69 66 20 28 20 6d 6f 64 65 20 3d 20 63 6f 70   ┆ebug3 then       if ( mode = cop┆
0x01d800…01d820 (7, 1, 12)  79 6d 6f 64 65 29 20 74 68 65 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆ymode) then       writeln ( outp┆
0x01d820…01d840             75 74 2c 20 27 2d 2d 20 20 63 6f 70 79 20 63 61 6c 6c 65 64 2c 20 62 79 74 65 73 20 3a 20 27 2c   ┆ut, '--  copy called, bytes : ',┆
0x01d840…01d860             20 6e 6f 5f 6f 66 5f 62 79 74 65 73 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65   ┆ no_of_bytes);     if debug3 the┆
0x01d860…01d880             6e 0a 20 20 20 20 20 20 69 66 20 28 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 29 20 74 68   ┆n       if ( mode = copymode) th┆
0x01d880…01d8a0             65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆en       begin       writeln ( o┆
0x01d8a0…01d8c0             75 74 70 75 74 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 63   ┆utput);       write ( output, 'c┆
0x01d8c0…01d8e0             6f 70 79 3a 20 62 65 66 6f 72 65 20 6f 66 66 73 65 74 2c 20 61 66 74 65 72 3a 20 27 2c 20 66 69   ┆opy: before offset, after: ', fi┆
0x01d8e0…01d900             6c 65 70 6f 73 20 28 20 73 75 72 63 29 2c 20 27 2c 20 27 2c 0a 20 20 20 20 20 20 20 20 6e 6f 5f   ┆lepos ( surc), ', ',         no_┆
0x01d900…01d920             6f 66 5f 62 79 74 65 73 2c 20 27 2c 20 27 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20   ┆of_bytes, ', ');       end;     ┆
0x01d920…01d940             20 69 66 20 6d 6f 64 65 20 3d 20 73 6b 69 70 6d 6f 64 65 20 74 68 65 6e 0a 20 20 20 20 20 20 62   ┆ if mode = skipmode then       b┆
0x01d940…01d960             65 67 69 6e 0a 20 20 20 20 20 20 73 65 65 6b 20 28 20 73 75 72 63 2c 20 66 69 6c 65 70 6f 73 20   ┆egin       seek ( surc, filepos ┆
0x01d960…01d980             28 20 73 75 72 63 29 20 2b 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 29 3b 0a 20 20 20 20 20 20 69 6f   ┆( surc) + no_of_bytes);       io┆
0x01d980…01d9a0             63 68 65 63 6b 20 28 20 73 75 72 63 29 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65   ┆check ( surc)       end     else┆
0x01d9a0…01d9c0             0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 62 6c 6f 63 6b 73 20   ┆       begin       no_of_blocks ┆
0x01d9c0…01d9e0             3a 3d 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 20 64 69 76 20 62 6c 6f 63 6b 73 69 7a 65 3b 0a 20 20   ┆:= no_of_bytes div blocksize;   ┆
0x01d9e0…01da00             20 20 20 20 72 65 73 74 3a 3d 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 20 6d 6f 64 20 62 6c 6f 63 6b   ┆    rest:= no_of_bytes mod block┆
0x01da00…01da20 (7, 1, 13)  73 69 7a 65 3b 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 20   ┆size;       if debug3 then      ┆
0x01da20…01da40             20 20 20 62 65 67 69 6e 0a 09 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 63 6f   ┆   begin  writeln ( output, ' co┆
0x01da40…01da60             70 79 20 27 2c 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 2c 20 27 20 3d 20 27 2c 20 6e 6f 5f 6f 66 5f   ┆py ', no_of_bytes, ' = ', no_of_┆
0x01da60…01da80             62 6c 6f 63 6b 73 2c 20 27 20 2a 20 27 2c 20 62 6c 6f 63 6b 73 69 7a 65 2c 0a 20 20 20 20 20 20   ┆blocks, ' * ', blocksize,       ┆
0x01da80…01daa0             20 20 27 20 2b 20 27 2c 20 72 65 73 74 20 29 3b 0a 20 20 20 20 20 20 20 20 74 63 3a 3d 20 72 65   ┆  ' + ', rest );         tc:= re┆
0x01daa0…01dac0             61 64 6b 65 79 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 77 68 69 6c 65 20   ┆adkey         end;        while ┆
0x01dac0…01dae0             6e 6f 5f 6f 66 5f 62 6c 6f 63 6b 73 20 3e 20 30 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69   ┆no_of_blocks > 0 do         begi┆
0x01dae0…01db00             6e 0a 09 62 6c 6f 63 6b 72 65 61 64 20 20 28 20 73 75 72 63 2c 20 62 6c 6f 63 6b 5e 2c 20 62 6c   ┆n  blockread  ( surc, block^, bl┆
0x01db00…01db20             6f 63 6b 73 69 7a 65 2c 20 62 79 74 65 73 29 3b 0a 09 69 6f 63 68 65 63 6b 20 28 20 73 75 72 63   ┆ocksize, bytes);  iocheck ( surc┆
0x01db20…01db40             29 3b 0a 09 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 64 65 73 74 2c 20 62 6c 6f 63 6b 5e 2c 20 62   ┆);  blockwrite ( dest, block^, b┆
0x01db40…01db60             6c 6f 63 6b 73 69 7a 65 2c 20 62 79 74 65 73 29 3b 0a 09 69 6f 63 68 65 63 6b 20 28 20 64 65 73   ┆locksize, bytes);  iocheck ( des┆
0x01db60…01db80             74 29 3b 0a 20 20 20 20 20 20 20 20 64 65 63 20 28 20 6e 6f 5f 6f 66 5f 62 6c 6f 63 6b 73 29 3b   ┆t);         dec ( no_of_blocks);┆
0x01db80…01dba0             0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 69 66 20 72 65 73 74 20 3c 3e 20 30   ┆         end;       if rest <> 0┆
0x01dba0…01dbc0             20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 62 6c 6f 63 6b 72 65 61 64 20 20   ┆ then         begin  blockread  ┆
0x01dbc0…01dbe0             28 20 73 75 72 63 2c 20 62 6c 6f 63 6b 5e 2c 20 72 65 73 74 2c 20 62 79 74 65 73 29 3b 0a 09 69   ┆( surc, block^, rest, bytes);  i┆
0x01dbe0…01dc00             6f 63 68 65 63 6b 20 28 20 73 75 72 63 29 3b 0a 09 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 64 65   ┆ocheck ( surc);  blockwrite ( de┆
0x01dc00…01dc20 (7, 1, 14)  73 74 2c 20 62 6c 6f 63 6b 5e 2c 20 72 65 73 74 2c 20 62 79 74 65 73 29 3b 0a 09 69 6f 63 68 65   ┆st, block^, rest, bytes);  ioche┆
0x01dc20…01dc40             63 6b 20 28 20 73 75 72 63 29 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 65 6e   ┆ck ( surc)         end;       en┆
0x01dc40…01dc60             64 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28   ┆d;     if debug3 then  writeln (┆
0x01dc60…01dc80             20 6f 75 74 70 75 74 2c 20 66 69 6c 65 70 6f 73 20 28 20 73 75 72 63 29 29 3b 0a 20 20 20 20 65   ┆ output, filepos ( surc));     e┆
0x01dc80…01dca0             6e 64 3b 20 28 2a 20 63 6f 70 79 20 2a 29 0a 0a 20 0c 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20   ┆nd; (* copy *)        procedure ┆
0x01dca0…01dcc0             73 63 61 6e 20 28 20 76 61 72 20 73 75 72 63 2c 20 64 65 73 74 3a 20 66 69 6c 65 3b 20 76 61 72   ┆scan ( var surc, dest: file; var┆
0x01dcc0…01dce0             20 68 65 61 64 3a 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 3b 20 6d 6f 64 65 3a 20 62   ┆ head: descriptor_part1; mode: b┆
0x01dce0…01dd00             79 74 65 29 3b 0a 20 20 20 20 76 61 72 0a 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e   ┆yte);     var       no_of_extern┆
0x01dd00…01dd20             61 6c 73 2c 0a 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 20 2c 0a 20 20 20 20 20 20   ┆als,       no_of_params ,       ┆
0x01dd20…01dd40             6e 6f 5f 6f 66 5f 75 73 65 73 20 20 20 2c 0a 20 20 20 20 20 20 73 74 65 70 09 3a 20 20 77 6f 72   ┆no_of_uses   ,       step :  wor┆
0x01dd40…01dd60             64 3b 0a 20 20 20 20 20 20 70 61 67 65 73 2c 20 77 6f 72 6b 20 20 3a 20 20 6c 6f 6e 67 69 6e 74   ┆d;       pages, work  :  longint┆
0x01dd60…01dd80             3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 69 74 68 20 68 65 61 64 20 64 6f 0a 20 20 20   ┆;     begin     with head do    ┆
0x01dd80…01dda0             20 69 66 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61   ┆ if descriptor_length <> stop_ma┆
0x01dda0…01ddc0             72 6b 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 64 65 62   ┆rk then       begin       if deb┆
0x01ddc0…01dde0             75 67 33 20 74 68 65 6e 0a 09 69 66 20 28 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 20 29 20   ┆ug3 then  if (mode = copymode ) ┆
0x01dde0…01de00             74 68 65 6e 0a 09 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 73 63   ┆then   writeln ( output, '--  sc┆
0x01de00…01de20 (7, 1, 15)  61 6e 20 20 63 61 6c 6c 65 64 2c 20 62 79 74 65 73 20 3a 20 27 2c 20 64 65 73 63 72 69 70 74 6f   ┆an  called, bytes : ', descripto┆
0x01de20…01de40             72 5f 6c 65 6e 67 74 68 29 3b 0a 20 20 20 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d   ┆r_length);       if mode = copym┆
0x01de40…01de60             6f 64 65 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 77 72 69   ┆ode then       begin         wri┆
0x01de60…01de80             74 65 68 65 61 64 20 28 20 64 65 73 74 2c 20 68 65 61 64 29 3b 0a 09 69 66 20 64 65 62 75 67 33   ┆tehead ( dest, head);  if debug3┆
0x01de80…01dea0             20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 77 72 69   ┆ then  writeln ( output, '-- wri┆
0x01dea0…01dec0             74 65 68 65 61 64 20 27 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 29 3b 0a 20 20 20 20   ┆tehead ', stralfa ( name));     ┆
0x01dec0…01dee0             20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 28 2a 20 63 6f 70 79 20 6f 72 20 73 6b 69 70 20   ┆    end;        (* copy or skip ┆
0x01dee0…01df00             72 65 73 74 20 6f 66 20 68 65 61 64 20 61 6e 64 20 74 68 65 20 63 6f 64 65 20 70 61 72 74 20 2a   ┆rest of head and the code part *┆
0x01df00…01df20             29 0a 20 20 20 20 20 20 63 6f 70 79 20 28 20 73 75 72 63 2c 20 64 65 73 74 2c 20 64 65 73 63 72   ┆)       copy ( surc, dest, descr┆
0x01df20…01df40             69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2d 20 6c 65 6e 67 74 68 5f 6f 66 5f 66 69 78 65 64 5f 70   ┆iptor_length - length_of_fixed_p┆
0x01df40…01df60             61 72 74 31 2c 20 6d 6f 64 65 29 3b 0a 0a 20 20 20 20 20 20 28 2a 20 63 6f 70 79 20 6f 72 20 73   ┆art1, mode);        (* copy or s┆
0x01df60…01df80             6b 69 70 20 74 68 65 20 63 6f 64 65 20 70 61 72 74 20 2a 29 0a 20 20 20 20 20 20 70 61 67 65 73   ┆kip the code part *)       pages┆
0x01df80…01dfa0             3a 3d 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 3b 0a 20 20 20 20 20 20 77 6f 72 6b 3a 3d 20 6c 61 73   ┆:= no_of_pages;       work:= las┆
0x01dfa0…01dfc0             74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 20 20 20 20 77 6f 72 6b 3a 3d 20 77 6f 72 6b   ┆t_page_length;       work:= work┆
0x01dfc0…01dfe0             20 2b 20 28 20 70 61 67 65 73 20 2d 20 31 20 29 20 2a 20 70 61 67 65 73 69 7a 65 3b 0a 20 20 20   ┆ + ( pages - 1 ) * pagesize;    ┆
0x01dfe0…01e000             20 20 20 63 6f 70 79 20 28 20 73 75 72 63 2c 20 64 65 73 74 2c 20 77 6f 72 6b 2c 20 6d 6f 64 65   ┆   copy ( surc, dest, work, mode┆
0x01e000…01e020 (8, 0, 1)   29 3b 0a 0a 20 20 20 20 20 20 28 2a 20 63 6f 70 79 20 6f 72 20 73 6b 69 70 20 27 6e 75 6d 62 65   ┆);        (* copy or skip 'numbe┆
0x01e020…01e040             72 20 6f 66 20 65 78 74 65 72 6e 61 6c 73 27 20 2a 29 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74   ┆r of externals' *)       readint┆
0x01e040…01e060             65 67 65 72 20 28 20 73 75 72 63 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 20   ┆eger ( surc, no_of_externals);  ┆
0x01e060…01e080             20 20 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 20 74 68 65 6e 20 20 77 72   ┆     if mode = copymode then  wr┆
0x01e080…01e0a0             69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61   ┆iteinteger ( dest, no_of_externa┆
0x01e0a0…01e0c0             6c 73 29 3b 0a 0a 20 20 20 20 20 20 28 2a 20 63 6f 70 79 20 6f 72 20 73 6b 69 70 20 74 68 65 20   ┆ls);        (* copy or skip the ┆
0x01e0c0…01e0e0             65 78 74 65 72 6e 61 6c 73 20 2a 29 0a 20 20 20 20 20 20 66 6f 72 20 73 74 65 70 20 3a 3d 20 31   ┆externals *)       for step := 1┆
0x01e0e0…01e100             20 74 6f 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 64 6f 0a 20 20 20 20 20 20 20 20 62   ┆ to no_of_externals do         b┆
0x01e100…01e120             65 67 69 6e 0a 09 63 6f 70 79 20 28 20 73 75 72 63 2c 20 64 65 73 74 2c 20 61 6c 66 61 6c 65 6e   ┆egin  copy ( surc, dest, alfalen┆
0x01e120…01e140             67 74 68 2c 20 6d 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20   ┆gth, mode);         readinteger ┆
0x01e140…01e160             28 20 73 75 72 63 2c 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 29 3b 0a 0a 20 20 20 20 20 20 20 20   ┆( surc, no_of_params);          ┆
0x01e160…01e180             69 66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 20 74 68 65 6e 20 20 77 72 69 74 65 69 6e   ┆if mode = copymode then  writein┆
0x01e180…01e1a0             74 65 67 65 72 20 28 20 64 65 73 74 2c 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 29 3b 0a 0a 20 20   ┆teger ( dest, no_of_params);    ┆
0x01e1a0…01e1c0             20 20 20 20 20 20 63 6f 70 79 20 20 28 20 73 75 72 63 2c 20 64 65 73 74 2c 20 34 20 2a 20 6e 6f   ┆      copy  ( surc, dest, 4 * no┆
0x01e1c0…01e1e0             5f 6f 66 5f 70 61 72 61 6d 73 2c 20 6d 6f 64 65 29 3b 0a 0a 20 20 20 20 20 20 20 20 72 65 61 64   ┆_of_params, mode);          read┆
0x01e1e0…01e200             69 6e 74 65 67 65 72 20 28 20 73 75 72 63 2c 20 6e 6f 5f 6f 66 5f 75 73 65 73 29 3b 0a 20 20 20   ┆integer ( surc, no_of_uses);    ┆
0x01e200…01e220 (8, 0, 2)   20 20 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 20 74 68 65 6e 20 20 77 72   ┆     if mode = copymode then  wr┆
0x01e220…01e240             69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 2c 20 6e 6f 5f 6f 66 5f 75 73 65 73 29 3b 0a   ┆iteinteger ( dest, no_of_uses); ┆
0x01e240…01e260             20 20 20 20 20 20 20 20 63 6f 70 79 20 20 28 20 73 75 72 63 2c 20 64 65 73 74 2c 20 34 20 2a 20   ┆        copy  ( surc, dest, 4 * ┆
0x01e260…01e280             6e 6f 5f 6f 66 5f 75 73 65 73 2c 20 6d 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a   ┆no_of_uses, mode);         end; ┆
0x01e280…01e2a0             0a 20 20 20 20 20 20 28 2a 20 63 6f 70 79 20 6f 72 20 73 6b 69 70 20 74 68 65 20 69 6e 74 65 72   ┆       (* copy or skip the inter┆
0x01e2a0…01e2c0             6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28   ┆nal links *)       readinteger (┆
0x01e2c0…01e2e0             20 73 75 72 63 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 20 20 20 20 20 20 69   ┆ surc, no_of_externals);       i┆
0x01e2e0…01e300             66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 20 74 68 65 6e 20 20 77 72 69 74 65 69 6e 74   ┆f mode = copymode then  writeint┆
0x01e300…01e320             65 67 65 72 20 28 20 64 65 73 74 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 20   ┆eger ( dest, no_of_externals);  ┆
0x01e320…01e340             20 20 20 20 20 63 6f 70 79 20 28 20 73 75 72 63 2c 20 64 65 73 74 2c 20 6e 6f 5f 6f 66 5f 65 78   ┆     copy ( surc, dest, no_of_ex┆
0x01e340…01e360             74 65 72 6e 61 6c 73 20 2a 20 38 2c 20 6d 6f 64 65 29 3b 0a 0a 20 20 20 20 20 20 65 6e 64 20 20   ┆ternals * 8, mode);        end  ┆
0x01e360…01e380             28 2a 20 20 77 69 74 68 20 68 65 61 64 20 2a 29 0a 20 20 20 20 65 6e 64 3b 20 28 2a 20 73 63 61   ┆(*  with head *)     end; (* sca┆
0x01e380…01e3a0             6e 20 2a 29 0a 0a 0c 0a 0a 20 62 65 67 69 6e 09 28 2a 20 20 20 20 6d 61 6b 65 20 6c 69 62 20 2a   ┆n *)      begin (*    make lib *┆
0x01e3a0…01e3c0             29 0a 0a 20 63 6c 65 61 72 6b 65 79 20 28 20 69 6e 78 66 29 3b 0a 0a 20 69 66 20 70 72 6f 67 72   ┆)   clearkey ( inxf);   if progr┆
0x01e3c0…01e3e0             61 6d 6e 61 6d 65 20 3d 20 6c 69 62 5f 69 6e 73 65 72 74 20 74 68 65 6e 20 70 72 6f 67 72 61 6d   ┆amname = lib_insert then program┆
0x01e3e0…01e400             6d 6f 64 65 3a 3d 20 69 6e 73 65 72 74 69 6e 67 20 20 65 6c 73 65 0a 20 69 66 20 70 72 6f 67 72   ┆mode:= inserting  else  if progr┆
0x01e400…01e420 (8, 0, 3)   61 6d 6e 61 6d 65 20 3d 20 6c 69 62 5f 64 65 6c 65 74 65 20 74 68 65 6e 20 70 72 6f 67 72 61 6d   ┆amname = lib_delete then program┆
0x01e420…01e440             6d 6f 64 65 3a 3d 20 64 65 6c 65 74 69 6e 67 0a 20 65 6c 73 65 20 20 70 72 6f 67 72 61 6d 6d 6f   ┆mode:= deleting  else  programmo┆
0x01e440…01e460             64 65 3a 3d 20 65 78 74 72 61 63 74 69 6e 67 3b 0a 0a 20 69 66 20 64 65 62 75 67 31 20 74 68 65   ┆de:= extracting;   if debug1 the┆
0x01e460…01e480             6e 0a 20 20 20 72 65 70 65 61 74 0a 20 20 20 20 20 6e 65 78 74 6b 65 79 20 28 20 69 6e 78 66 2c   ┆n    repeat      nextkey ( inxf,┆
0x01e480…01e4a0             20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e   ┆ drn, key);      if success then┆
0x01e4a0…01e4c0             0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆        begin        writeln ( o┆
0x01e4c0…01e4e0             75 74 70 75 74 2c 20 27 6b 65 79 77 6f 72 64 20 27 2c 20 64 72 6e 2c 20 27 3a 20 22 27 2c 20 20   ┆utput, 'keyword ', drn, ': "',  ┆
0x01e4e0…01e500             6b 65 79 2c 20 27 22 27 29 3b 0a 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 75 6e 74 69 6c 20 6e   ┆key, '"');        end    until n┆
0x01e500…01e520             6f 74 20 73 75 63 63 65 73 73 3b 0a 0a 0a 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 73 6f 75 72 63   ┆ot success;    open_file ( sourc┆
0x01e520…01e540             65 2c 20 6f 6c 64 6c 69 62 5f 6e 61 6d 65 2c 20 66 6d 5f 72 65 61 64 29 3b 0a 20 73 6f 75 72 63   ┆e, oldlib_name, fm_read);  sourc┆
0x01e540…01e560             65 5f 6f 70 65 6e 65 64 20 20 3a 3d 20 74 72 75 65 3b 0a 0a 20 77 68 69 6c 65 20 28 20 62 6c 6f   ┆e_opened  := true;   while ( blo┆
0x01e560…01e580             63 6b 73 69 7a 65 20 3e 20 6d 61 78 61 76 61 69 6c 20 29 20 61 6e 64 20 28 20 62 6c 6f 63 6b 73   ┆cksize > maxavail ) and ( blocks┆
0x01e580…01e5a0             69 7a 65 20 3e 20 32 30 34 38 20 29 20 64 6f 0a 20 20 20 62 6c 6f 63 6b 73 69 7a 65 3a 3d 20 62   ┆ize > 2048 ) do    blocksize:= b┆
0x01e5a0…01e5c0             6c 6f 63 6b 73 69 7a 65 20 2d 20 31 30 32 34 3b 0a 0a 20 67 65 74 6d 65 6d 20 28 20 62 6c 6f 63   ┆locksize - 1024;   getmem ( bloc┆
0x01e5c0…01e5e0             6b 2c 20 62 6c 6f 63 6b 73 69 7a 65 29 3b 0a 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆k, blocksize);   writeln ( outpu┆
0x01e5e0…01e600             74 29 3b 0a 20 77 72 69 74 65 20 20 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 50 4c 49   ┆t);  write   ( output, '--   PLI┆
0x01e600…01e620 (8, 0, 4)   42 20 27 29 3b 0a 20 63 61 73 65 20 70 72 6f 67 72 61 6d 6d 6f 64 65 20 6f 66 0a 20 20 20 69 6e   ┆B ');  case programmode of    in┆
0x01e620…01e640             73 65 72 74 69 6e 67 20 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 49 4e 53   ┆serting  :  write ( output, 'INS┆
0x01e640…01e660             45 52 54 20 20 27 29 3b 0a 20 20 20 64 65 6c 65 74 69 6e 67 20 20 20 3a 20 20 77 72 69 74 65 20   ┆ERT  ');    deleting   :  write ┆
0x01e660…01e680             28 20 6f 75 74 70 75 74 2c 20 27 44 45 4c 45 54 45 20 20 27 29 3b 0a 20 20 20 65 78 74 72 61 63   ┆( output, 'DELETE  ');    extrac┆
0x01e680…01e6a0             74 69 6e 67 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 45 58 54 52 41 43 54   ┆ting :  write ( output, 'EXTRACT┆
0x01e6a0…01e6c0             20 27 29 3b 0a 20 20 20 65 6e 64 3b 0a 20 67 65 74 66 74 69 6d 65 20 28 20 73 6f 75 72 63 65 2c   ┆ ');    end;  getftime ( source,┆
0x01e6c0…01e6e0             20 77 6f 72 6b 29 3b 0a 20 75 6e 70 61 63 6b 74 69 6d 65 20 28 20 77 6f 72 6b 2c 20 73 74 61 6d   ┆ work);  unpacktime ( work, stam┆
0x01e6e0…01e700             70 29 3b 0a 20 77 69 74 68 20 73 74 61 6d 70 20 64 6f 0a 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆p);  with stamp do    writeln ( ┆
0x01e700…01e720             6f 75 74 70 75 74 2c 20 27 20 6f 6c 64 6c 69 62 20 66 69 6c 65 3a 20 27 2c 20 66 65 78 70 61 6e   ┆output, ' oldlib file: ', fexpan┆
0x01e720…01e740             64 20 28 20 6f 6c 64 6c 69 62 5f 6e 61 6d 65 29 2c 0a 20 20 20 20 20 79 65 61 72 3a 37 2c 20 27   ┆d ( oldlib_name),      year:7, '┆
0x01e740…01e760             2d 27 2c 20 6d 6f 6e 74 68 2c 20 27 2d 27 2c 20 64 61 79 2c 20 68 6f 75 72 3a 33 2c 20 27 3a 27   ┆-', month, '-', day, hour:3, ':'┆
0x01e760…01e780             2c 20 6d 69 6e 29 3b 0a 0a 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 64 65 73 74 69 6e 61 74 69 6f   ┆, min);   open_file ( destinatio┆
0x01e780…01e7a0             6e 2c 20 6e 65 77 6c 69 62 5f 6e 61 6d 65 2c 20 66 6d 5f 77 72 69 74 65 29 3b 0a 20 69 66 20 69   ┆n, newlib_name, fm_write);  if i┆
0x01e7a0…01e7c0             6f 73 74 61 74 20 3c 3e 20 30 20 74 68 65 6e 20 65 72 72 6f 72 20 28 20 31 30 31 2c 20 27 2a 2a   ┆ostat <> 0 then error ( 101, '**┆
0x01e7c0…01e7e0             2a 20 4e 6f 20 72 6f 6f 6d 20 66 6f 72 20 6e 65 77 20 6c 69 62 20 27 20 2b 20 6e 65 77 6c 69 62   ┆* No room for new lib ' + newlib┆
0x01e7e0…01e800             5f 6e 61 6d 65 29 3b 0a 20 64 65 73 74 5f 6f 70 65 6e 65 64 3a 3d 20 74 72 75 65 3b 0a 20 77 72   ┆_name);  dest_opened:= true;  wr┆
0x01e800…01e820 (8, 0, 5)   69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 31 39 2c 20 27 6e 65 77 6c 69 62 20 66   ┆iteln ( output, '':19, 'newlib f┆
0x01e820…01e840             69 6c 65 3a 20 27 2c 20 66 65 78 70 61 6e 64 20 28 20 6e 65 77 6c 69 62 5f 6e 61 6d 65 29 29 3b   ┆ile: ', fexpand ( newlib_name));┆
0x01e840…01e860             0a 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28   ┆   writeln ( output);  writeln (┆
0x01e860…01e880             20 6f 75 74 70 75 74 2c 0a 20 27 20 20 20 20 20 20 6e 72 20 20 6b 69 6e 64 20 20 20 20 20 20 6e   ┆ output,  '      nr  kind      n┆
0x01e880…01e8a0             61 6d 65 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 20 64 61 74 65 20 20 20 20 20 20 20 76   ┆ame          source date       v┆
0x01e8a0…01e8c0             65 72 73 69 6f 6e 20 20 20 63 68 61 6e 67 65 73 27 0a 20 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28   ┆ersion   changes'  );  writeln (┆
0x01e8c0…01e8e0             20 6f 75 74 70 75 74 29 3b 0a 0a 20 69 74 65 6d 5f 6e 75 6d 62 65 72 20 3a 3d 20 30 3b 0a 0a 20   ┆ output);   item_number := 0;   ┆
0x01e8e0…01e900             72 65 70 65 61 74 0a 20 20 20 64 65 73 63 72 5f 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20   ┆repeat    descr_pos:= filepos ( ┆
0x01e900…01e920             73 6f 75 72 63 65 29 3b 0a 20 20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 3b 0a 20   ┆source);    iocheck ( source);  ┆
0x01e920…01e940             20 20 72 65 61 64 68 65 61 64 20 28 20 73 6f 75 72 63 65 2c 20 68 65 61 64 29 3b 0a 20 20 20 77   ┆  readhead ( source, head);    w┆
0x01e940…01e960             69 74 68 20 68 65 61 64 20 64 6f 0a 20 20 20 20 69 66 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65   ┆ith head do     if descriptor_le┆
0x01e960…01e980             6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72 6b 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69   ┆ngth <> stop_mark then      begi┆
0x01e980…01e9a0             6e 0a 20 20 20 20 20 69 74 65 6d 5f 6e 75 6d 62 65 72 20 3a 3d 20 69 74 65 6d 5f 6e 75 6d 62 65   ┆n      item_number := item_numbe┆
0x01e9a0…01e9c0             72 20 2b 20 31 3b 0a 0a 20 20 20 20 20 69 66 20 64 65 62 75 67 32 20 74 68 65 6e 0a 20 20 20 20   ┆r + 1;       if debug2 then     ┆
0x01e9c0…01e9e0             20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20   ┆   begin        write ( output, ┆
0x01e9e0…01ea00             69 74 65 6d 5f 6e 75 6d 62 65 72 3a 33 2c 20 27 20 20 27 29 3b 0a 0a 20 20 20 20 20 20 20 63 61   ┆item_number:3, '  ');         ca┆
0x01ea00…01ea20 (8, 0, 6)   73 65 20 6b 69 6e 64 20 6f 66 0a 20 20 20 20 20 20 20 30 20 20 20 3a 20 20 77 72 69 74 65 20 28   ┆se kind of        0   :  write (┆
0x01ea20…01ea40             20 6f 75 74 70 75 74 2c 20 27 53 55 4d 20 20 20 20 20 20 20 27 29 3b 0a 20 20 20 20 20 20 20 31   ┆ output, 'SUM       ');        1┆
0x01ea40…01ea60             20 20 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 50 52 4f 47 52 41 4d 20 20   ┆   :  write ( output, 'PROGRAM  ┆
0x01ea60…01ea80             20 27 29 3b 0a 20 20 20 20 20 20 20 32 2c 20 34 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75   ┆ ');        2, 4:  write ( outpu┆
0x01ea80…01eaa0             74 2c 20 27 50 52 4f 43 45 44 55 52 45 20 27 29 3b 0a 20 20 20 20 20 20 20 33 2c 20 35 3a 20 20   ┆t, 'PROCEDURE ');        3, 5:  ┆
0x01eaa0…01eac0             77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 46 55 4e 43 54 49 4f 4e 20 20 27 29 3b 0a 20   ┆write ( output, 'FUNCTION  ');  ┆
0x01eac0…01eae0             20 20 20 20 20 20 36 20 20 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 44 41   ┆      6   :  write ( output, 'DA┆
0x01eae0…01eb00             54 41 20 20 20 20 20 20 27 29 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 20 28 2a 20 63 61 73 65 20   ┆TA      ');        end; (* case ┆
0x01eb00…01eb20             6b 69 6e 64 20 2a 29 0a 0a 20 20 20 20 20 20 20 69 66 20 6b 69 6e 64 20 3c 3e 20 73 75 6d 6b 69   ┆kind *)         if kind <> sumki┆
0x01eb20…01eb40             6e 64 0a 20 20 20 20 20 20 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20   ┆nd        then          writeln ┆
0x01eb40…01eb60             28 20 6f 75 74 70 75 74 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 2c 20 27 27 3a 32 2c   ┆( output, stralfa ( name), '':2,┆
0x01eb60…01eb80             20 73 74 72 64 61 74 65 20 28 73 6f 75 72 63 65 5f 64 61 74 65 29 2c 0a 20 20 20 20 20 20 20 20   ┆ strdate (source_date),         ┆
0x01eb80…01eba0             20 20 27 3a 27 2c 20 73 74 72 74 69 6d 65 20 28 73 6f 75 72 63 65 5f 74 69 6d 65 29 2c 20 27 27   ┆  ':', strtime (source_time), ''┆
0x01eba0…01ebc0             3a 32 29 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 64 65 62 75 67 20 20 2a 29 0a   ┆:2);        end;  (*  debug  *) ┆
0x01ebc0…01ebe0             0a 20 20 20 20 20 69 66 20 6b 69 6e 64 20 3c 3e 20 73 75 6d 6b 69 6e 64 20 74 68 65 6e 0a 20 20   ┆      if kind <> sumkind then   ┆
0x01ebe0…01ec00             20 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20 20 20 20 6b 65 79 3a 3d 20 73 74 72 61 6c 66 61   ┆     begin         key:= stralfa┆
0x01ec00…01ec20 (8, 0, 7)   20 28 20 6e 61 6d 65 29 20 2b 20 27 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a 20 20 20 20 20   ┆ ( name) + '            ';      ┆
0x01ec20…01ec40             20 20 66 69 6e 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20   ┆  findkey ( inxf, drn, key);    ┆
0x01ec40…01ec60             20 20 20 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆    if debug1 then writeln ( out┆
0x01ec60…01ec80             70 75 74 2c 20 27 2d 20 20 66 69 6e 64 6b 65 79 20 20 20 22 27 2c 20 6b 65 79 2c 20 27 22 20 20   ┆put, '-  findkey   "', key, '"  ┆
0x01ec80…01eca0             20 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 20 20 20 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20   ┆ ', success);        if success ┆
0x01eca0…01ecc0             74 68 65 6e 20 64 65 6c 65 74 65 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29   ┆then deletekey ( inxf, drn, key)┆
0x01ecc0…01ece0             3b 0a 20 20 20 20 20 20 20 68 69 74 3a 3d 20 73 75 63 63 65 73 73 3b 0a 0a 20 20 20 20 20 20 20   ┆;        hit:= success;         ┆
0x01ece0…01ed00             63 61 73 65 20 70 72 6f 67 72 61 6d 6d 6f 64 65 20 6f 66 0a 0a 20 20 20 20 20 69 6e 73 65 72 74   ┆case programmode of       insert┆
0x01ed00…01ed20             69 6e 67 20 3a 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 69 66 20 73 75 63 63 65 73 73   ┆ing :  begin          if success┆
0x01ed20…01ed40             20 74 68 65 6e 0a 09 20 20 20 20 62 65 67 69 6e 20 20 20 28 2a 20 20 66 69 6e 64 20 6d 6f 64 75   ┆ then      begin   (*  find modu┆
0x01ed40…01ed60             6c 65 20 69 6e 20 6e 65 77 6f 62 6a 20 61 6e 64 20 74 61 6b 65 20 69 74 20 66 72 6f 6d 20 74 68   ┆le in newobj and take it from th┆
0x01ed60…01ed80             65 72 65 20 20 2a 29 0a 09 20 20 20 68 69 74 3a 3d 20 66 61 6c 73 65 3b 0a 09 20 20 20 67 65 74   ┆ere  *)     hit:= false;     get┆
0x01ed80…01eda0             72 65 63 20 28 20 64 61 74 66 2c 20 64 72 6e 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 20 20 20 69 66   ┆rec ( datf, drn, module);     if┆
0x01eda0…01edc0             20 6d 6f 64 75 6c 65 2e 72 65 63 73 74 61 74 20 3d 20 30 20 74 68 65 6e 0a 09 20 20 20 20 20 62   ┆ module.recstat = 0 then       b┆
0x01edc0…01ede0             65 67 69 6e 0a 09 20 20 20 20 20 77 69 74 68 20 6d 6f 64 75 6c 65 20 64 6f 20 20 62 65 67 69 6e   ┆egin       with module do  begin┆
0x01ede0…01ee00             0a 09 20 20 20 20 20 20 20 69 66 20 70 61 74 68 20 3c 3e 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 20   ┆         if path <> newobj_name ┆
0x01ee00…01ee20 (8, 0, 8)   74 68 65 6e 0a 09 09 20 62 65 67 69 6e 0a 09 09 20 69 66 20 6e 65 77 6f 62 6a 5f 6f 70 65 6e 65   ┆then    begin    if newobj_opene┆
0x01ee20…01ee40             64 20 74 68 65 6e 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 09 09 20   ┆d then close_file ( newobj);    ┆
0x01ee40…01ee60             6f 70 65 6e 5f 66 69 6c 65 20 28 20 6e 65 77 6f 62 6a 2c 20 70 61 74 68 2c 20 66 6d 5f 72 65 61   ┆open_file ( newobj, path, fm_rea┆
0x01ee60…01ee80             64 29 3b 0a 09 09 20 6e 65 77 6f 62 6a 5f 6f 70 65 6e 65 64 3a 3d 20 74 72 75 65 3b 0a 09 09 20   ┆d);    newobj_opened:= true;    ┆
0x01ee80…01eea0             6e 65 77 6f 62 6a 5f 6e 61 6d 65 3a 3d 20 70 61 74 68 0a 09 09 20 65 6e 64 3b 20 20 28 2a 20 20   ┆newobj_name:= path    end;  (*  ┆
0x01eea0…01eec0             6e 65 77 6f 62 6a 20 63 68 61 6e 67 65 64 20 20 2a 29 0a 09 20 20 20 20 20 20 20 73 65 65 6b 20   ┆newobj changed  *)         seek ┆
0x01eec0…01eee0             28 20 6e 65 77 6f 62 6a 2c 20 64 65 73 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆( newobj, despos);              ┆
0x01eee0…01ef00             20 20 69 6f 63 68 65 63 6b 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 09 20 20 20 20 20 20 20 72 65 61   ┆  iocheck ( newobj);         rea┆
0x01ef00…01ef20             64 68 65 61 64 20 28 20 6e 65 77 6f 62 6a 2c 20 6e 65 77 68 65 61 64 29 3b 0a 0a 20 20 20 20 20   ┆dhead ( newobj, newhead);       ┆
0x01ef20…01ef40             20 20 20 20 20 20 20 20 20 20 69 66 20 64 65 62 75 67 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20   ┆          if debug then         ┆
0x01ef40…01ef60             20 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20   ┆         writeln ( output, '--  ┆
0x01ef60…01ef80             72 65 61 64 79 20 66 6f 72 20 69 6e 73 65 72 74 20 27 2c 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 2c   ┆ready for insert ', newobj_name,┆
0x01ef80…01efa0             20 27 20 20 27 2c 20 73 74 72 61 6c 66 61 28 20 6e 65 77 68 65 61 64 2e 6e 61 6d 65 29 29 3b 0a   ┆ '  ', stralfa( newhead.name)); ┆
0x01efa0…01efc0             0a 09 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 69 74 68 20 6d 6f 64 75 6c 65 20 20   ┆         end;  (*  with module  ┆
0x01efc0…01efe0             2a 29 0a 09 20 20 20 20 20 68 69 74 3a 3d 20 28 20 6e 65 77 68 65 61 64 2e 64 65 73 63 72 69 70   ┆*)       hit:= ( newhead.descrip┆
0x01efe0…01f000             74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72 6b 20 29 0a 09 20 20 20 20 20   ┆tor_length <> stop_mark )       ┆
0x01f000…01f020 (8, 0, 9)   20 20 61 6e 64 20 28 20 6e 65 77 68 65 61 64 2e 6b 69 6e 64 20 3d 20 68 65 61 64 2e 6b 69 6e 64   ┆  and ( newhead.kind = head.kind┆
0x01f020…01f040             29 3b 0a 0a 09 20 20 20 20 20 69 66 20 68 69 74 20 74 68 65 6e 09 28 2a 20 20 69 6e 73 65 72 74   ┆);        if hit then (*  insert┆
0x01f040…01f060             20 20 2a 29 0a 09 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 09 73 63 61 6e 20 28 20 6e 65 77 6f   ┆  *)         begin   scan ( newo┆
0x01f060…01f080             62 6a 2c 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 6e 65 77 68 65 61 64 2c 20 63 6f 70 79 6d 6f   ┆bj, destination, newhead, copymo┆
0x01f080…01f0a0             64 65 29 3b 0a 09 09 73 63 61 6e 20 28 20 73 6f 75 72 63 65 2c 20 64 65 73 74 69 6e 61 74 69 6f   ┆de);   scan ( source, destinatio┆
0x01f0a0…01f0c0             6e 2c 20 68 65 61 64 2c 20 73 6b 69 70 6d 6f 64 65 29 3b 0a 09 09 77 72 69 74 65 5f 72 65 6d 61   ┆n, head, skipmode);   write_rema┆
0x01f0c0…01f0e0             72 6b 20 28 20 6e 65 77 68 65 61 64 2c 20 27 69 6e 73 65 72 74 65 64 27 29 3b 0a 09 09 64 65 6c   ┆rk ( newhead, 'inserted');   del┆
0x01f0e0…01f100             65 74 65 72 65 63 20 28 20 64 61 74 66 2c 20 64 72 6e 29 3b 0a 09 09 64 65 6c 65 74 65 6b 65 79   ┆eterec ( datf, drn);   deletekey┆
0x01f100…01f120             20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 0a 09 20 20 20 20 20 20 20 65 6e 64 20 20   ┆ ( inxf, drn, key)         end  ┆
0x01f120…01f140             28 2a 20 20 68 69 74 20 20 2a 29 0a 09 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 72 65 63 73 74   ┆(*  hit  *)       end  (*  recst┆
0x01f140…01f160             61 74 20 6f 6b 20 20 2a 29 0a 0a 09 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 6e 61 6d 65 20 66 6f   ┆at ok  *)      end;  (*  name fo┆
0x01f160…01f180             75 6e 64 20 20 2a 29 0a 0a 09 20 69 66 20 68 69 74 20 74 68 65 6e 20 20 28 2a 20 20 69 6e 73 65   ┆und  *)    if hit then  (*  inse┆
0x01f180…01f1a0             72 74 65 64 20 66 72 6f 6d 20 6e 65 77 6f 62 6a 20 20 2a 29 0a 09 20 65 6c 73 65 20 20 20 73 63   ┆rted from newobj  *)   else   sc┆
0x01f1a0…01f1c0             61 6e 20 28 20 73 6f 75 72 63 65 2c 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 68 65 61 64 2c 20   ┆an ( source, destination, head, ┆
0x01f1c0…01f1e0             63 6f 70 79 6d 6f 64 65 29 0a 09 20 65 6e 64 3b 20 20 28 2a 20 20 69 6e 73 65 72 74 69 6e 67 20   ┆copymode)   end;  (*  inserting ┆
0x01f1e0…01f200             20 2a 29 0a 0a 20 20 20 20 20 64 65 6c 65 74 69 6e 67 20 3a 20 62 65 67 69 6e 0a 28 2a 2d 2d 2d   ┆ *)       deleting : begin (*---┆
0x01f200…01f220 (8, 0, 10)  20 20 20 20 20 20 09 20 6b 65 79 3a 3d 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 20 2b 20   ┆        key:= stralfa ( name) + ┆
0x01f220…01f240             27 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a 20 20 20 20 20 09 20 66 69 6e 64 6b 65 79 20 28   ┆'            ';        findkey (┆
0x01f240…01f260             20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20 20 20 09 20 69 66 20 73 75 63 63   ┆ inxf, drn, key);        if succ┆
0x01f260…01f280             65 73 73 20 74 68 65 6e 20 64 65 6c 65 74 65 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20   ┆ess then deletekey ( inxf, drn, ┆
0x01f280…01f2a0             6b 65 79 29 3b 0a 20 20 20 20 20 09 20 68 69 74 3a 3d 20 73 75 63 63 65 73 73 3b 0a 20 20 20 20   ┆key);        hit:= success;     ┆
0x01f2a0…01f2c0             20 20 20 20 20 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 20 20 09 20 6b 65 79 3a 3d 20 6e 75 6d 62 65 72   ┆     -----*)        key:= number┆
0x01f2c0…01f2e0             6b 65 79 20 28 20 69 74 65 6d 5f 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 20 09 20 66 69 6e 64 6b   ┆key ( item_number);        findk┆
0x01f2e0…01f300             65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20 20 20 20 20 20 20 69   ┆ey ( inxf, drn, key);          i┆
0x01f300…01f320             66 20 64 65 62 75 67 31 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆f debug1 then writeln ( output, ┆
0x01f320…01f340             27 2d 20 20 66 69 6e 64 6b 65 79 20 20 20 22 27 2c 20 6b 65 79 2c 20 27 22 20 20 20 27 2c 20 73   ┆'-  findkey   "', key, '"   ', s┆
0x01f340…01f360             75 63 63 65 73 73 29 3b 0a 20 20 20 20 20 09 20 68 69 74 3a 3d 20 68 69 74 20 6f 72 20 73 75 63   ┆uccess);        hit:= hit or suc┆
0x01f360…01f380             63 65 73 73 3b 0a 20 20 20 20 20 09 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 20 64 65 6c   ┆cess;        if success then del┆
0x01f380…01f3a0             65 74 65 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 09 20 73 63 61 6e   ┆etekey ( inxf, drn, key);   scan┆
0x01f3a0…01f3c0             20 28 20 73 6f 75 72 63 65 2c 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 68 65 61 64 2c 20 31 20   ┆ ( source, destination, head, 1 ┆
0x01f3c0…01f3e0             2d 20 6f 72 64 20 28 20 68 69 74 29 20 29 3b 0a 09 20 69 66 20 68 69 74 20 74 68 65 6e 20 77 72   ┆- ord ( hit) );   if hit then wr┆
0x01f3e0…01f400             69 74 65 5f 72 65 6d 61 72 6b 20 28 20 68 65 61 64 2c 20 27 64 65 6c 65 74 65 64 27 29 0a 20 20   ┆ite_remark ( head, 'deleted')   ┆
0x01f400…01f420 (8, 0, 11)  20 20 20 09 20 65 6e 64 3b 0a 0a 20 20 20 20 20 65 78 74 72 61 63 74 69 6e 67 20 3a 20 20 62 65   ┆     end;       extracting :  be┆
0x01f420…01f440             67 69 6e 0a 20 20 20 20 20 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 20 20 64 65   ┆gin          if success then  de┆
0x01f440…01f460             63 20 28 20 77 61 6e 74 65 64 5f 69 74 65 6d 73 29 3b 0a 0a 20 20 20 20 20 09 20 6b 65 79 3a 3d   ┆c ( wanted_items);         key:=┆
0x01f460…01f480             20 6e 75 6d 62 65 72 6b 65 79 20 28 20 69 74 65 6d 5f 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 20   ┆ numberkey ( item_number);      ┆
0x01f480…01f4a0             09 20 66 69 6e 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20   ┆  findkey ( inxf, drn, key);    ┆
0x01f4a0…01f4c0             20 20 09 20 68 69 74 3a 3d 20 68 69 74 20 6f 72 20 73 75 63 63 65 73 73 3b 0a 0a 20 20 20 20 20   ┆    hit:= hit or success;       ┆
0x01f4c0…01f4e0             09 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67   ┆  if success then            beg┆
0x01f4e0…01f500             69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 6b 65 79 20 28 20 69 6e 78 66 2c 20   ┆in            deletekey ( inxf, ┆
0x01f500…01f520             64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 64 65 63 20 28 20 77 61 6e 74   ┆drn, key);            dec ( want┆
0x01f520…01f540             65 64 5f 69 74 65 6d 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20   ┆ed_items);            end;      ┆
0x01f540…01f560             09 20 73 63 61 6e 20 28 20 73 6f 75 72 63 65 2c 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 68 65   ┆  scan ( source, destination, he┆
0x01f560…01f580             61 64 2c 20 6f 72 64 20 28 20 68 69 74 29 20 29 3b 0a 09 20 69 66 20 68 69 74 20 74 68 65 6e 20   ┆ad, ord ( hit) );   if hit then ┆
0x01f580…01f5a0             20 77 72 69 74 65 5f 72 65 6d 61 72 6b 20 28 20 68 65 61 64 2c 20 27 65 78 74 72 61 63 74 65 64   ┆ write_remark ( head, 'extracted┆
0x01f5a0…01f5c0             27 29 3b 0a 09 20 65 6e 64 3b 20 28 2a 20 20 65 78 74 72 61 63 74 69 6e 67 20 20 2a 29 0a 20 20   ┆');   end; (*  extracting  *)   ┆
0x01f5c0…01f5e0             20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 61 73 65 20 70 72 6f 67 72 61 6d 6d 6f 64 65   ┆      end;  (*  case programmode┆
0x01f5e0…01f600             20 20 2a 29 0a 0a 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 6e 6f 74 20 73 75 6d 6b 69   ┆  *)         end;  (*  not sumki┆
0x01f600…01f620 (8, 0, 12)  6e 64 20 20 2a 29 0a 0a 20 20 20 20 20 65 6e 64 20 28 2a 20 77 69 74 68 20 68 65 61 64 20 64 6f   ┆nd  *)       end (* with head do┆
0x01f620…01f640             20 2a 29 0a 0a 20 75 6e 74 69 6c 20 28 20 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65   ┆ *)   until ( head.descriptor_le┆
0x01f640…01f660             6e 67 74 68 20 3d 20 73 74 6f 70 5f 6d 61 72 6b 20 29 20 6f 72 20 28 20 77 61 6e 74 65 64 5f 69   ┆ngth = stop_mark ) or ( wanted_i┆
0x01f660…01f680             74 65 6d 73 20 3d 20 30 29 3b 0a 0a 20 28 2a 20 20 6e 6f 77 20 61 6c 6c 20 66 72 6f 6d 20 73 6f   ┆tems = 0);   (*  now all from so┆
0x01f680…01f6a0             75 72 63 65 20 61 72 65 20 74 61 6b 65 6e 2c 20 61 70 70 65 6e 64 20 75 6e 69 6e 73 65 72 74 65   ┆urce are taken, append uninserte┆
0x01f6a0…01f6c0             64 20 6d 6f 64 75 6c 65 73 20 66 72 6f 6d 20 6e 65 77 20 6f 62 6a 20 20 2a 29 0a 0a 20 69 66 20   ┆d modules from new obj  *)   if ┆
0x01f6c0…01f6e0             64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20   ┆debug3 then writeln ( output, ' ┆
0x01f6e0…01f700             20 75 73 65 64 20 72 65 63 73 20 3d 20 27 2c 20 75 73 65 64 72 65 63 73 20 28 20 64 61 74 66 29   ┆ used recs = ', usedrecs ( datf)┆
0x01f700…01f720             2c 20 27 2c 20 27 2c 20 77 61 6e 74 65 64 5f 69 74 65 6d 73 29 3b 0a 0a 20 66 69 6e 64 6b 65 79   ┆, ', ', wanted_items);   findkey┆
0x01f720…01f740             20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 0a 20 69 66 20 64 65 62 75 67 33 20   ┆ ( inxf, drn, key);   if debug3 ┆
0x01f740…01f760             74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 75 73 65 64 20 72   ┆then writeln ( output, '  used r┆
0x01f760…01f780             65 63 73 20 3d 20 27 2c 20 75 73 65 64 72 65 63 73 20 28 20 64 61 74 66 29 2c 20 27 2c 20 27 2c   ┆ecs = ', usedrecs ( datf), ', ',┆
0x01f780…01f7a0             20 77 61 6e 74 65 64 5f 69 74 65 6d 73 29 3b 0a 0a 20 69 66 20 75 73 65 64 72 65 63 73 20 28 20   ┆ wanted_items);   if usedrecs ( ┆
0x01f7a0…01f7c0             64 61 74 66 20 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 6d 61 78 3a   ┆datf ) > 0 then    begin    max:┆
0x01f7c0…01f7e0             3d 20 66 69 6c 65 6c 65 6e 20 28 20 64 61 74 66 29 20 2d 20 31 3b 0a 0a 20 20 20 66 6f 72 20 64   ┆= filelen ( datf) - 1;     for d┆
0x01f7e0…01f800             72 6e 3a 3d 20 31 20 74 6f 20 6d 61 78 20 64 6f 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆rn:= 1 to max do      begin     ┆
0x01f800…01f820 (8, 0, 13)  20 67 65 74 72 65 63 20 28 20 64 61 74 66 2c 20 64 72 6e 2c 20 6d 6f 64 75 6c 65 29 3b 0a 20 20   ┆ getrec ( datf, drn, module);   ┆
0x01f820…01f840             20 20 20 69 66 20 6d 6f 64 75 6c 65 2e 72 65 63 73 74 61 74 20 3d 20 30 20 74 68 65 6e 0a 20 20   ┆   if module.recstat = 0 then   ┆
0x01f840…01f860             20 20 20 20 20 62 65 67 69 6e 0a 09 77 69 74 68 20 6d 6f 64 75 6c 65 20 64 6f 20 20 62 65 67 69   ┆     begin  with module do  begi┆
0x01f860…01f880             6e 0a 09 20 20 69 66 20 70 61 74 68 20 3c 3e 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 20 74 68 65 6e   ┆n    if path <> newobj_name then┆
0x01f880…01f8a0             0a 09 20 20 20 20 62 65 67 69 6e 0a 09 20 20 20 20 69 66 20 6e 65 77 6f 62 6a 5f 6f 70 65 6e 65   ┆      begin      if newobj_opene┆
0x01f8a0…01f8c0             64 20 74 68 65 6e 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 09 20 20   ┆d then close_file ( newobj);    ┆
0x01f8c0…01f8e0             20 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 6e 65 77 6f 62 6a 2c 20 70 61 74 68 2c 20 66 6d 5f 72   ┆  open_file ( newobj, path, fm_r┆
0x01f8e0…01f900             65 61 64 29 3b 0a 09 20 20 20 20 6e 65 77 6f 62 6a 5f 6f 70 65 6e 65 64 3a 3d 20 74 72 75 65 3b   ┆ead);      newobj_opened:= true;┆
0x01f900…01f920             0a 09 20 20 20 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 3a 3d 20 70 61 74 68 0a 09 20 20 20 20 65 6e   ┆      newobj_name:= path      en┆
0x01f920…01f940             64 3b 20 20 28 2a 20 20 6e 65 77 6f 62 6a 20 63 68 61 6e 67 65 64 20 20 2a 29 0a 09 20 20 73 65   ┆d;  (*  newobj changed  *)    se┆
0x01f940…01f960             65 6b 20 28 20 6e 65 77 6f 62 6a 2c 20 64 65 73 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20   ┆ek ( newobj, despos);           ┆
0x01f960…01f980             69 6f 63 68 65 63 6b 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 09 20 20 72 65 61 64 68 65 61 64 20 28   ┆iocheck ( newobj);    readhead (┆
0x01f980…01f9a0             20 6e 65 77 6f 62 6a 2c 20 6e 65 77 68 65 61 64 29 3b 0a 09 20 20 65 6e 64 3b 20 20 28 2a 20 20   ┆ newobj, newhead);    end;  (*  ┆
0x01f9a0…01f9c0             77 69 74 68 20 6d 6f 64 75 6c 65 20 20 2a 29 0a 0a 20 20 20 20 20 20 20 69 66 20 6e 65 77 68 65   ┆with module  *)         if newhe┆
0x01f9c0…01f9e0             61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72   ┆ad.descriptor_length <> stop_mar┆
0x01f9e0…01fa00             6b 20 74 68 65 6e 0a 09 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 69 74 65 6d 5f 6e 75 6d   ┆k then   begin          item_num┆
0x01fa00…01fa20 (8, 0, 14)  62 65 72 20 3a 3d 20 69 74 65 6d 5f 6e 75 6d 62 65 72 20 2b 20 31 3b 0a 09 20 73 63 61 6e 20 28   ┆ber := item_number + 1;   scan (┆
0x01fa20…01fa40             20 6e 65 77 6f 62 6a 2c 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 6e 65 77 68 65 61 64 2c 20 63   ┆ newobj, destination, newhead, c┆
0x01fa40…01fa60             6f 70 79 6d 6f 64 65 29 3b 0a 09 20 77 72 69 74 65 5f 72 65 6d 61 72 6b 20 28 20 6e 65 77 68 65   ┆opymode);   write_remark ( newhe┆
0x01fa60…01fa80             61 64 2c 20 27 61 70 70 65 6e 64 65 64 27 29 0a 09 20 65 6e 64 20 20 28 2a 20 20 6e 6f 74 20 73   ┆ad, 'appended')   end  (*  not s┆
0x01fa80…01faa0             74 6f 70 6d 61 72 6b 20 20 2a 29 0a 20 20 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 72 65 63 73   ┆topmark  *)        end  (*  recs┆
0x01faa0…01fac0             74 61 74 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 66 6f 72 20 64 72 6e   ┆tat ok  *)      end  (*  for drn┆
0x01fac0…01fae0             20 20 2a 29 0a 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 75 73 65 64 72 65 63 73 20 3e 20 30 20 20   ┆  *)    end;  (*  usedrecs > 0  ┆
0x01fae0…01fb00             2a 29 0a 0a 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 73 6f 75 72   ┆*)   close_file ( source);  sour┆
0x01fb00…01fb20             63 65 5f 6f 70 65 6e 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 77 72 69 74 65 69 6e 74 65 67 65   ┆ce_opened := false;  writeintege┆
0x01fb20…01fb40             72 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 73 74 6f 70 5f 6d 61 72 6b 29 3b 0a 20 63 6c   ┆r ( destination, stop_mark);  cl┆
0x01fb40…01fb60             6f 73 65 5f 66 69 6c 65 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 3b 0a 20 64 65 73 74 5f 6f   ┆ose_file ( destination);  dest_o┆
0x01fb60…01fb80             70 65 6e 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 20 69 66 20 6e 65 77 6f 62 6a 5f 6f 70 65 6e 65 64   ┆pened:= false;  if newobj_opened┆
0x01fb80…01fba0             20 74 68 65 6e 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 20 6e 65 77   ┆ then close_file ( newobj);  new┆
0x01fba0…01fbc0             6f 62 6a 5f 6f 70 65 6e 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 63 6c 6f 73 65 66 69 6c 65 20   ┆obj_opened:= false;   closefile ┆
0x01fbc0…01fbe0             28 20 64 61 74 66 29 3b 0a 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 3b 0a 20 64   ┆( datf);  closeindex ( inxf);  d┆
0x01fbe0…01fc00             61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 3d 20 66 61 6c 73 65 3b 0a 20 65 72 61 73 65 20 28 20 64   ┆atabase_open:= false;  erase ( d┆
0x01fc00…01fc20 (8, 0, 15)  61 74 66 2e 66 29 3b 0a 20 65 72 61 73 65 20 28 20 69 6e 78 66 2e 64 2e 66 29 3b 0a 0a 20 69 66   ┆atf.f);  erase ( inxf.d.f);   if┆
0x01fc20…01fc40             20 28 20 70 72 6f 67 72 61 6d 6d 6f 64 65 20 3d 20 65 78 74 72 61 63 74 69 6e 67 20 29 20 61 6e   ┆ ( programmode = extracting ) an┆
0x01fc40…01fc60             64 20 28 20 77 61 6e 74 65 64 5f 69 74 65 6d 73 20 3e 20 30 20 29 20 74 68 65 6e 0a 20 20 20 62   ┆d ( wanted_items > 0 ) then    b┆
0x01fc60…01fc80             65 67 69 6e 0a 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20   ┆egin    writeln ( output, '--   ┆
0x01fc80…01fca0             65 6e 64 20 6f 66 20 6a 6f 62 2e 20 20 20 20 28 20 27 2c 20 77 61 6e 74 65 64 5f 69 74 65 6d 73   ┆end of job.    ( ', wanted_items┆
0x01fca0…01fcc0             2c 20 27 20 69 74 65 6d 73 20 6e 6f 74 20 66 6f 75 6e 64 29 27 29 3b 0a 20 20 20 68 61 6c 74 20   ┆, ' items not found)');    halt ┆
0x01fcc0…01fce0             28 20 31 29 0a 20 20 20 65 6e 64 3b 0a 0a 20 65 6e 64 3b 20 28 2a 20 6d 61 6b 65 5f 6c 69 62 20   ┆( 1)    end;   end; (* make_lib ┆
0x01fce0…01fd00             2a 29 0a 0a 0a 0a 28 2a 24 46 2b 20 20 2a 29 20 20 70 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69   ┆*)    (*$F+  *)  procedure myexi┆
0x01fd00…01fd20             74 3b 20 20 28 2a 24 46 2d 20 20 2a 29 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 73 6f 75   ┆t;  (*$F-  *)   begin     if sou┆
0x01fd20…01fd40             72 63 65 5f 6f 70 65 6e 65 64 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 73 6f 75 72 63 65 29 3b   ┆rce_opened then close ( source);┆
0x01fd40…01fd60             0a 20 20 20 20 69 66 20 64 65 73 74 5f 6f 70 65 6e 65 64 20 74 68 65 6e 20 63 6c 6f 73 65 20 28   ┆     if dest_opened then close (┆
0x01fd60…01fd80             20 64 65 73 74 69 6e 61 74 69 6f 6e 29 3b 0a 20 20 20 20 69 66 20 6e 65 77 6f 62 6a 5f 6f 70 65   ┆ destination);     if newobj_ope┆
0x01fd80…01fda0             6e 65 64 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 6e 65 77 6f 62 6a 29 3b 0a 20 20 20 20 69 66   ┆ned then close ( newobj);     if┆
0x01fda0…01fdc0             20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a   ┆ database_open then       begin ┆
0x01fdc0…01fde0             20 20 20 20 20 20 63 6c 6f 73 65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a 20 20 20 20 20 20 63   ┆      closefile ( datf);       c┆
0x01fde0…01fe00             6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 69   ┆loseindex ( inxf)       end;   i┆
0x01fe00…01fe20 (8, 1, 1)   66 20 65 72 72 6f 72 61 64 64 72 20 3c 3e 20 6e 69 6c 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69   ┆f erroraddr <> nil then     begi┆
0x01fe20…01fe40             6e 0a 20 20 20 20 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 20 28 20 27 2a 2a 20 20 43 61 6c 6c 65   ┆n     runtime_error ( '**  Calle┆
0x01fe40…01fe60             64 20 66 72 6f 6d 20 50 4c 49 42 3a 20 20 20 27 29 3b 0a 20 20 20 20 65 72 72 6f 72 61 64 64 72   ┆d from PLIB:   ');     erroraddr┆
0x01fe60…01fe80             3a 3d 20 4e 49 4c 3b 0a 20 20 20 20 28 2a 2d 2d 2d 2d 2d 0a 20 20 20 20 74 63 3a 3d 20 72 65 61   ┆:= NIL;     (*-----     tc:= rea┆
0x01fe80…01fea0             64 6b 65 79 3b 0a 20 20 20 20 69 66 20 65 78 69 74 63 6f 64 65 20 3c 3e 20 32 30 31 20 74 68 65   ┆dkey;     if exitcode <> 201 the┆
0x01fea0…01fec0             6e 20 65 78 69 74 63 6f 64 65 3a 3d 20 32 35 34 20 20 2d 2d 2a 29 0a 20 20 20 20 65 6e 64 3b 0a   ┆n exitcode:= 254  --*)     end; ┆
0x01fec0…01fee0             0a 20 20 65 78 69 74 70 72 6f 63 3a 3d 20 65 78 69 74 73 61 76 65 0a 20 20 65 6e 64 3b 20 20 28   ┆   exitproc:= exitsave   end;  (┆
0x01fee0…01ff00             2a 20 20 6d 79 65 78 69 74 20 20 2a 29 0a 0a 0a 0a 20 62 65 67 69 6e 09 28 2a 2d 2d 2d 2d 2d 2d   ┆*  myexit  *)     begin (*------┆
0x01ff00…01ff20             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6d 61 69 6e 20 70 72 6f 67 72 61 6d 20 2d 2d 2d 2d   ┆-------------- main program ----┆
0x01ff20…01ff40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 65 78 69 74 73 61 76 65 3a 3d 20 65   ┆----------------*)  exitsave:= e┆
0x01ff40…01ff60             78 69 74 70 72 6f 63 3b 0a 20 65 78 69 74 70 72 6f 63 3a 3d 20 61 64 64 72 20 28 20 6d 79 65 78   ┆xitproc;  exitproc:= addr ( myex┆
0x01ff60…01ff80             69 74 29 3b 0a 0a 01 44 20 32 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27   ┆it);   D 2  writeln ( output, ''┆
0x01ff80…01ffa0             3a 37 2c 20 27 50 4c 49 42 27 2c 20 76 65 72 73 69 6f 6e 29 3b 0a 01 45 20 32 0a 01 49 20 32 0a   ┆:7, 'PLIB', version);  E 2  I 2 ┆
0x01ffa0…01ffc0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 37 2c 20 27 50 4c 49 42 20 20   ┆ writeln ( output, '':7, 'PLIB  ┆
0x01ffc0…01ffe0             20 72 65 6c 2e 20 25 52 25 2e 25 4c 25 2c 20 20 20 31 39 27 20 2c 0a 20 20 20 20 63 6f 70 79 20   ┆ rel. %R%.%L%,   19' ,     copy ┆
0x01ffe0…020000             28 20 73 63 63 73 5f 64 61 74 65 2c 20 31 2c 20 32 29 2c 20 27 2e 27 2c 20 63 6f 70 79 20 28 20   ┆( sccs_date, 1, 2), '.', copy ( ┆
0x020000…020020 (8, 1, 2)   73 63 63 73 5f 64 61 74 65 2c 20 34 2c 20 32 29 2c 20 27 2e 27 2c 0a 20 20 20 20 63 6f 70 79 20   ┆sccs_date, 4, 2), '.',     copy ┆
0x020020…020040             28 20 73 63 63 73 5f 64 61 74 65 2c 20 37 2c 20 32 29 29 3b 0a 01 45 20 32 0a 20 77 72 69 74 65   ┆( sccs_date, 7, 2));  E 2  write┆
0x020040…020060             6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 20 6e 65 77 6f 62 6a 5f 6e 61 6d 65 3a 3d 20 27 27   ┆ln ( output);   newobj_name:= ''┆
0x020060…020080             3b 0a 0a 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆;   if debug3 then writeln ( out┆
0x020080…0200a0             70 75 74 2c 20 27 20 6d 61 78 61 76 61 69 6c 20 3d 20 27 2c 20 6d 61 78 61 76 61 69 6c 29 3b 0a   ┆put, ' maxavail = ', maxavail); ┆
0x0200a0…0200c0             0a 20 70 6f 6c 79 66 69 6c 65 5f 63 6f 6e 66 69 67 20 28 20 73 69 7a 65 6f 66 20 28 20 6d 6f 64   ┆  polyfile_config ( sizeof ( mod┆
0x0200c0…0200e0             75 6c 65 5f 72 65 63 29 2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 32 36 2c 20 32 38 2c 20 36 29   ┆ule_rec), alfalength, 26, 28, 6)┆
0x0200e0…020100             3b 0a 20 69 66 20 6e 6f 74 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a   ┆;  if not success then    begin ┆
0x020100…020120             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 20 50 72 6f 62 6c 65 6d   ┆   writeln ( output, '!  Problem┆
0x020120…020140             73 20 77 69 74 68 20 68 65 61 70 73 69 7a 65 20 69 6e 20 70 6f 6c 79 66 69 6c 65 20 63 6f 6e 66   ┆s with heapsize in polyfile conf┆
0x020140…020160             69 67 27 29 3b 0a 20 20 20 68 61 6c 74 20 28 20 32 30 33 29 0a 20 20 20 65 6e 64 3b 0a 0a 20 72   ┆ig');    halt ( 203)    end;   r┆
0x020160…020180             65 61 64 5f 70 61 72 61 6d 73 20 28 20 6f 6c 64 6c 69 62 5f 6e 61 6d 65 2c 20 6e 65 77 6c 69 62   ┆ead_params ( oldlib_name, newlib┆
0x020180…0201a0             5f 6e 61 6d 65 2c 0a 20 20 20 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 63 6f 6d 70 5f 65   ┆_name,     def_extension, comp_e┆
0x0201a0…0201c0             78 74 65 6e 73 69 6f 6e 2c 20 73 69 7a 65 6f 66 20 28 20 6d 6f 64 75 6c 65 5f 72 65 63 29 2c 0a   ┆xtension, sizeof ( module_rec), ┆
0x0201c0…0201e0             20 20 20 20 77 61 6e 74 65 64 5f 69 74 65 6d 73 2c 0a 20 20 20 20 64 61 74 61 62 61 73 65 5f 6f   ┆    wanted_items,     database_o┆
0x0201e0…020200             70 65 6e 2c 20 64 61 74 5f 6e 61 6d 65 2c 20 69 6e 78 5f 6e 61 6d 65 2c 20 64 61 74 66 2c 20 69   ┆pen, dat_name, inx_name, datf, i┆
0x020200…020220 (8, 1, 3)   6e 78 66 29 3b 0a 0a 0a 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20   ┆nxf);    if debug3 then writeln ┆
0x020220…020240             28 20 6f 75 74 70 75 74 2c 20 27 20 6d 61 78 61 76 61 69 6c 20 3d 20 27 2c 20 6d 61 78 61 76 61   ┆( output, ' maxavail = ', maxava┆
0x020240…020260             69 6c 29 3b 0a 0a 20 6d 61 6b 65 5f 6c 69 62 20 28 20 6f 6c 64 6c 69 62 5f 6e 61 6d 65 2c 20 6e   ┆il);   make_lib ( oldlib_name, n┆
0x020260…020280             65 77 6c 69 62 5f 6e 61 6d 65 2c 20 77 61 6e 74 65 64 5f 69 74 65 6d 73 2c 20 64 61 74 66 2c 20   ┆ewlib_name, wanted_items, datf, ┆
0x020280…0202a0             69 6e 78 66 29 3b 0a 0a 20 69 66 20 64 65 62 75 67 20 6f 72 20 64 65 62 75 67 31 20 6f 72 20 64   ┆inxf);   if debug or debug1 or d┆
0x0202a0…0202c0             65 62 75 67 32 20 6f 72 20 64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a 20 20   ┆ebug2 or debug3 then    begin   ┆
0x0202c0…0202e0             20 77 72 69 74 65 20 28 20 27 70 72 65 73 73 20 61 6e 79 20 6b 65 79 20 27 29 3b 0a 20 20 20 74   ┆ write ( 'press any key ');    t┆
0x0202e0…020300             63 3a 3d 20 72 65 61 64 6b 65 79 3b 20 20 77 72 69 74 65 6c 6e 0a 20 20 20 65 6e 64 3b 0a 0a 20   ┆c:= readkey;  writeln    end;   ┆
0x020300…020320             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆writeln ( output);  writeln ( ou┆
0x020320…020340             74 70 75 74 2c 20 27 2d 2d 20 20 20 65 6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 20 77 72 69 74   ┆tput, '--   end of job.');  writ┆
0x020340…020360             65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 20 65 6e 64 20 2e 09 28 2a 2d 2d 2d 2d 2d 2d 2d   ┆eln ( output);   end . (*-------┆
0x020360…020380             2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6f 66 20 50 4c 49 42 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------- of PLIB --------------┆
0x020380…0203a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 0a 01 45 20 31 0a   ┆---------------------*)     E 1 ┆
0x0203a0…0203c0             78 74 65 6e 73 69 6f 6e 2c 20 73 69 7a 65 6f 66 20 28 20 6d 6f 64 75 6c 65 5f 72 65 63 29 2c 0a   ┆xtension, sizeof ( module_rec), ┆
0x0203c0…0203e0             20 20 20 20 77 61 6e 74 65 64 5f 69 74 65 6d 73 2c 0a 20 20 20 20 64 61 74 61 62 61 73 65 5f 6f   ┆    wanted_items,     database_o┆
0x0203e0…020400             70 65 6e 2c 20 64 61 74 5f 6e 61 6d 65 2c 20 69 6e 78 5f 6e 61 6d 65 2c 20 64 61 74 66 2c 20 69   ┆pen, dat_name, inx_name, datf, i┆
0x020400…020420 (8, 1, 4)   2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 70 6c 69 62 63 6f 6e 76 2e 70 61   ┆../sw2103/src/util/s.plibconv.pa┆
0x020420…020440             73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆s                               ┆
0x020440…020460             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x020460…020480             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x020480…0204a0             20 20 32 35 37 36 37 20 20 35 32 36 35 33 30 32 37 34 30 20 20 31 31 36 37 36 00 20 00 00 00 00   ┆  25767  5265302740  11676      ┆
0x0204a0…0204c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x020600…020620 (8, 1, 5)   01 68 34 34 36 38 32 0a 01 73 20 30 30 30 30 34 2f 30 30 30 30 32 2f 30 30 33 34 34 0a 01 64 20   ┆ h44682  s 00004/00002/00344  d ┆
0x020620…020640             44 20 31 2e 37 20 39 32 2f 31 30 2f 30 39 20 31 34 3a 31 35 3a 31 31 20 73 77 32 31 30 33 20 32   ┆D 1.7 92/10/09 14:15:11 sw2103 2┆
0x020640…020660             20 31 0a 01 63 20 53 43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01   ┆ 1  c SCCS info and UNIX used.  ┆
0x020660…020680             65 0a 01 73 20 30 30 33 34 36 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20 44 20 31 2e 36 20   ┆e  s 00346/00000/00000  d D 1.6 ┆
0x020680…0206a0             39 32 2f 31 30 2f 30 39 20 31 34 3a 31 32 3a 30 34 20 73 77 32 31 30 33 20 31 20 30 0a 01 63 20   ┆92/10/09 14:12:04 sw2103 1 0  c ┆
0x0206a0…0206c0             56 45 52 53 49 4f 4e 2e 50 32 32 20 77 61 73 20 75 73 65 64 20 61 73 20 64 65 73 74 69 6e 61 74   ┆VERSION.P22 was used as destinat┆
0x0206c0…0206e0             69 6f 6e 2c 20 73 6f 6c 76 65 64 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31   ┆ion, solved.  e  u  U  t  T  I 1┆
0x0206e0…020700             0a 0a 50 72 6f 67 72 61 6d 20 70 6c 69 62 63 6f 6e 76 65 72 74 20 3b 0a 0a 28 2a 2d 2d 2d 2d 2d   ┆  Program plibconvert ;  (*-----┆
0x020700…020720             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x020720…020740             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 4d 6f 64 75   ┆------------------------ -- Modu┆
0x020740…020760             6c 65 3a 20 20 20 20 50 4c 49 42 43 4f 4e 56 45 52 54 0a 2d 2d 20 46 69 6c 65 3a 20 20 20 20 20   ┆le:    PLIBCONVERT -- File:     ┆
0x020760…020780             20 50 4c 49 42 43 4f 4e 56 2e 50 41 53 0a 2d 2d 20 50 61 63 6b 61 67 65 3a 20 20 20 53 57 32 31   ┆ PLIBCONV.PAS -- Package:   SW21┆
0x020780…0207a0             30 33 20 20 20 20 53 75 62 73 79 73 74 65 6d 3a 20 55 54 49 4c 49 54 59 20 20 20 50 72 6f 67 72   ┆03    Subsystem: UTILITY   Progr┆
0x0207a0…0207c0             61 6d 3a 20 50 4c 49 42 43 4f 4e 56 45 52 54 0a 2d 2d 0a 2d 2d 20 43 6f 6e 74 65 6e 74 73 3a 0a   ┆am: PLIBCONVERT -- -- Contents: ┆
0x0207c0…0207e0             2d 2d 09 41 20 70 72 6f 67 72 61 6d 20 74 6f 20 63 6f 6e 76 65 72 74 20 66 69 6c 65 28 73 29 20   ┆-- A program to convert file(s) ┆
0x0207e0…020800             69 6e 74 6f 20 52 43 33 35 30 32 20 66 6f 72 6d 61 74 2c 0a 2d 2d 09 77 68 69 63 68 20 63 61 6e   ┆into RC3502 format, -- which can┆
0x020800…020820 (8, 1, 6)   20 62 65 20 6c 6f 61 64 65 64 20 61 73 20 44 41 54 41 20 69 6e 20 52 43 33 35 30 32 2c 0a 2d 2d   ┆ be loaded as DATA in RC3502, --┆
0x020820…020840             09 69 65 2e 20 52 43 33 35 30 32 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 69   ┆ ie. RC3502 descriptor segment i┆
0x020840…020860             73 20 69 6e 73 65 72 74 65 64 2e 0a 2d 2d 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 20 63 61 6c   ┆s inserted. -- -- -- Program cal┆
0x020860…020880             6c 3a 20 20 50 4c 49 42 43 4f 4e 56 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 2e 2e 2e 20 3c 70 61   ┆l:  PLIBCONV <parameter> ... <pa┆
0x020880…0208a0             72 61 6d 65 74 65 72 3e 0a 2d 2d 09 3c 70 61 72 61 6d 65 74 65 72 3e 20 3a 09 3d 3c 66 69 6c 65   ┆rameter> -- <parameter> : =<file┆
0x0208a0…0208c0             70 61 74 68 3e 09 09 6e 61 6d 65 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 0a   ┆path>  name of destination file ┆
0x0208c0…0208e0             2d 2d 09 09 09 50 41 52 41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 09 6e 61 6d 65 20 6f 66 20   ┆--   PARAMIN-<filepath> name of ┆
0x0208e0…020900             66 69 6c 65 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 0a 2d 2d 09 09 09 53 4f 55 52 43 45   ┆file with parameters --   SOURCE┆
0x020900…020920             50 41 54 48 2d 3c 64 69 72 70 61 74 68 3e 09 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 0a 2d 2d   ┆PATH-<dirpath> directory path --┆
0x020920…020940             09 09 09 56 45 52 53 49 4f 4e 2d 3c 72 65 6c 3e 2d 3c 72 65 76 3e 20 20 20 20 20 76 65 72 73 69   ┆   VERSION-<rel>-<rev>     versi┆
0x020940…020960             6f 6e 20 6e 75 6d 62 65 72 20 66 6f 72 20 66 6f 6c 6c 6f 77 69 6e 67 0a 2d 2d 09 09 09 09 09 09   ┆on number for following --      ┆
0x020960…020980             73 6f 75 72 63 65 73 0a 2d 2d 09 09 09 3c 66 69 6c 65 70 61 74 68 3e 09 09 6e 61 6d 65 20 6f 66   ┆sources --   <filepath>  name of┆
0x020980…0209a0             20 73 6f 75 72 63 65 20 66 69 6c 65 0a 2d 2d 09 49 66 20 6e 6f 20 65 78 74 65 6e 73 69 6f 6e 20   ┆ source file -- If no extension ┆
0x0209a0…0209c0             69 73 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e   ┆is specified for the destination┆
0x0209c0…0209e0             20 66 69 6c 65 2c 0a 2d 2d 09 65 78 74 65 6e 73 69 6f 6e 20 27 2e 50 32 32 27 20 69 73 20 75 73   ┆ file, -- extension '.P22' is us┆
0x0209e0…020a00             65 64 2e 0a 2d 2d 09 49 66 20 6e 6f 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66   ┆ed. -- If no extension is specif┆
0x020a00…020a20 (8, 1, 7)   69 65 64 20 66 6f 72 20 74 68 65 20 73 6f 75 72 63 65 20 66 69 6c 65 2c 0a 2d 2d 09 65 78 74 65   ┆ied for the source file, -- exte┆
0x020a20…020a40             6e 73 69 6f 6e 20 27 2e 50 4f 46 27 20 69 73 20 75 73 65 64 2e 0a 2d 2d 09 49 66 20 6e 6f 20 64   ┆nsion '.POF' is used. -- If no d┆
0x020a40…020a60             65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 74 68   ┆estination file is specified, th┆
0x020a60…020a80             65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 69 72 73 74 0a 2d 2d 09 73 6f 75 72 63 65 20 66 69   ┆e name of the first -- source fi┆
0x020a80…020aa0             6c 65 20 69 73 20 75 73 65 64 2c 20 77 69 74 68 20 65 78 74 65 6e 73 69 6f 6e 20 27 2e 50 32 32   ┆le is used, with extension '.P22┆
0x020aa0…020ac0             27 2e 0a 2d 2d 0a 2d 2d 0a 2d 2d 20 50 72 65 72 65 71 75 69 73 69 74 65 73 3a 20 20 44 4f 53 2c   ┆'. -- -- -- Prerequisites:  DOS,┆
0x020ac0…020ae0             20 43 62 72 65 61 6b 2c 20 50 4c 49 42 55 4e 49 54 0a 2d 2d 0a 2d 2d 20 44 6f 63 75 6d 65 6e 74   ┆ Cbreak, PLIBUNIT -- -- Document┆
0x020ae0…020b00             61 74 69 6f 6e 3a 20 20 53 57 32 31 30 33 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 6d 65 64 20   ┆ation:  SW2103 -- -- Programmed ┆
0x020b00…020b20             62 79 20 20 4a 4b 4b 2c 20 48 45 4a 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39   ┆by  JKK, HEJ -- Copyright (C) 19┆
0x020b20…020b40             38 39 20 62 79 20 52 43 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 0a 2d 2d 20 43 6f 70 79 72 69   ┆89 by RC International -- Copyri┆
0x020b40…020b60             67 68 74 20 28 43 29 20 31 39 39 32 20 62 79 20 44 41 4e 4f 53 49 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ght (C) 1992 by DANOSI ---------┆
0x020b60…020b80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x020b80…020ba0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 56 65 72 73 69 6f   ┆---------------------- -- Versio┆
0x020ba0…020bc0             6e 20 68 69 73 74 6f 72 79 3a 0a 2d 2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44 61 74 65 20 20 20 20   ┆n history: -- -- Vers.  Date    ┆
0x020bc0…020be0             20 20 49 6e 69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20   ┆  Init. Text -- ----   -------- ┆
0x020be0…020c00             20 2d 2d 2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ ----  -------------------------┆
0x020c00…020c20 (8, 1, 8)   2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 31 2e 30 20 20 20 20 38 39 2e 30 31 2e 30 31   ┆------------- -- 1.0    89.01.01┆
0x020c20…020c40             20 20 4a 4b 4b 20 20 20 46 69 72 73 74 20 76 65 72 73 69 6f 6e 20 69 6e 20 50 6f 6c 79 50 61 73   ┆  JKK   First version in PolyPas┆
0x020c40…020c60             63 61 6c 2e 0a 2d 2d 20 31 2e 31 20 20 20 20 38 39 2e 31 30 2e 31 38 20 20 48 45 4a 20 20 20 54   ┆cal. -- 1.1    89.10.18  HEJ   T┆
0x020c60…020c80             55 52 42 4f 20 50 41 53 43 41 4c 20 76 65 72 73 69 6f 6e 2e 0a 2d 2d 20 31 2e 32 20 20 20 20 39   ┆URBO PASCAL version. -- 1.2    9┆
0x020c80…020ca0             30 2e 30 31 2e 30 35 20 20 48 45 4a 20 20 20 45 72 72 6f 72 6c 65 76 65 6c 20 6f 70 64 61 74 65   ┆0.01.05  HEJ   Errorlevel opdate┆
0x020ca0…020cc0             64 20 77 68 65 6e 20 65 72 72 6f 72 2e 0a 2d 2d 20 31 2e 33 20 20 20 20 39 30 2e 30 31 2e 32 33   ┆d when error. -- 1.3    90.01.23┆
0x020cc0…020ce0             20 20 48 45 4a 20 20 20 41 6c 6c 77 61 79 73 20 61 6e 20 65 76 65 6e 20 6e 75 6d 62 65 72 20 6f   ┆  HEJ   Allways an even number o┆
0x020ce0…020d00             66 20 62 79 74 65 73 20 64 65 6c 69 76 65 72 65 64 2e 0a 2d 2d 20 31 2e 34 20 20 20 20 39 30 2e   ┆f bytes delivered. -- 1.4    90.┆
0x020d00…020d20             30 32 2e 31 35 20 20 48 45 4a 20 20 20 53 6f 75 72 63 65 66 69 6c 65 73 20 77 69 74 68 6f 75 74   ┆02.15  HEJ   Sourcefiles without┆
0x020d20…020d40             20 65 78 74 65 6e 73 69 6f 6e 20 61 72 65 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2e 0a 2d 2d 20   ┆ extension are accepted too. -- ┆
0x020d40…020d60             31 2e 35 20 20 20 20 39 30 2e 30 35 2e 33 30 20 20 48 45 4a 20 20 20 44 65 66 61 75 6c 74 20 65   ┆1.5    90.05.30  HEJ   Default e┆
0x020d60…020d80             78 74 65 6e 73 69 6f 6e 20 27 50 32 32 27 2c 20 20 73 74 6f 70 5f 6d 61 72 6b 20 20 24 46 46 46   ┆xtension 'P22',  stop_mark  $FFF┆
0x020d80…020da0             46 20 20 2d 3e 20 20 30 30 30 30 2e 0a 2d 2d 20 31 2e 36 20 20 20 20 39 32 2e 30 32 2e 32 34 20   ┆F  ->  0000. -- 1.6    92.02.24 ┆
0x020da0…020dc0             20 48 45 4a 20 20 20 45 72 72 6f 72 20 63 6f 72 72 65 63 74 65 64 3a 20 56 45 52 53 49 4f 4e 2e   ┆ HEJ   Error corrected: VERSION.┆
0x020dc0…020de0             50 32 32 20 77 61 73 20 75 73 65 64 20 61 73 20 64 65 73 74 69 6e 61 74 69 6f 6e 2e 0a 2d 2d 0a   ┆P22 was used as destination. -- ┆
0x020de0…020e00             2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆-- -----------------------------┆
0x020e00…020e20 (8, 1, 9)   2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x020e20…020e40             2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69   ┆------ -- SCCS information -- Fi┆
0x020e40…020e60             6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09   ┆le   :  %P% -- Module :  %M% -- ┆
0x020e60…020e80             56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20   ┆Version:  %I% -- Date   :  %E%  ┆
0x020e80…020ea0             25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆%U% ----------------------------┆
0x020ea0…020ec0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x020ec0…020ee0             2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 0c 0a 0a 20 55 73 65 73 20 20 44 4f 53 2c 20 43 62 72 65 61   ┆------- *)      Uses  DOS, Cbrea┆
0x020ee0…020f00             6b 2c 20 50 4c 49 42 55 4e 49 54 3b 0a 0a 20 43 6f 6e 73 74 0a 01 44 20 32 0a 20 20 20 20 76 65   ┆k, PLIBUNIT;   Const  D 2     ve┆
0x020f00…020f20             72 73 69 6f 6e 09 3d 20 20 27 20 76 65 72 73 69 6f 6e 20 20 31 2e 36 2c 20 20 20 20 31 39 39 32   ┆rsion =  ' version  1.6,    1992┆
0x020f20…020f40             2e 30 32 2e 32 34 20 20 20 20 20 27 3b 0a 01 45 20 32 0a 01 49 20 32 0a 20 20 20 20 73 63 63 73   ┆.02.24     ';  E 2  I 2     sccs┆
0x020f40…020f60             5f 64 61 74 65 20 20 20 3d 20 20 27 25 45 25 27 20 3b 0a 01 45 20 32 0a 20 20 20 20 64 65 66 5f   ┆_date   =  '%E%' ;  E 2     def_┆
0x020f60…020f80             65 78 74 65 6e 73 69 6f 6e 3d 20 27 2e 50 32 32 27 3b 0a 20 20 20 20 64 65 66 5f 73 72 63 5f 65   ┆extension= '.P22';     def_src_e┆
0x020f80…020fa0             78 74 09 3d 20 20 27 2e 50 4f 46 27 3b 0a 0a 20 54 79 70 65 0a 20 20 20 20 66 69 6c 65 6e 61 6d   ┆xt =  '.POF';   Type     filenam┆
0x020fa0…020fc0             65 5f 74 79 70 65 20 3d 20 20 70 61 74 68 73 74 72 3b 09 28 2a 20 20 20 73 74 72 69 6e 67 5b 37   ┆e_type =  pathstr; (*   string[7┆
0x020fc0…020fe0             39 5d 20 20 20 20 61 73 20 69 6e 20 44 4f 53 20 20 2a 29 0a 0a 56 61 72 0a 20 20 20 69 6e 70 75   ┆9]    as in DOS  *)  Var    inpu┆
0x020fe0…021000             74 66 69 6c 65 73 09 3a 20 20 69 6e 74 65 67 65 72 3b 09 09 28 2a 20 20 6e 6f 20 6f 66 20 73 6f   ┆tfiles :  integer;  (*  no of so┆
0x021000…021020 (8, 1, 10)  75 72 63 65 20 66 69 6c 65 73 09 09 2a 29 0a 20 20 20 64 65 73 74 69 5f 66 69 6c 65 6e 61 6d 65   ┆urce files  *)    desti_filename┆
0x021020…021040             3a 20 66 69 6c 65 6e 61 6d 65 5f 74 79 70 65 3b 09 28 2a 20 20 70 61 74 68 20 6f 66 20 64 65 73   ┆: filename_type; (*  path of des┆
0x021040…021060             74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 09 2a 29 0a 20 20 20 73 6f 75 72 63 65 09 2c 09 09 09 28   ┆tination file *)    source ,   (┆
0x021060…021080             2a 20 20 73 6f 75 72 63 65 20 66 69 6c 65 09 09 09 2a 29 0a 20 20 20 64 65 73 74 69 6e 61 74 69   ┆*  source file   *)    destinati┆
0x021080…0210a0             6f 6e 09 3a 20 20 66 69 6c 65 3b 09 09 28 2a 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c   ┆on :  file;  (*  destination fil┆
0x0210a0…0210c0             65 09 09 2a 29 0a 20 20 20 70 61 67 65 09 09 3a 20 20 70 61 67 65 5f 74 79 70 65 3b 09 09 28 2a   ┆e  *)    page  :  page_type;  (*┆
0x0210c0…0210e0             20 20 66 6f 72 20 64 65 73 63 72 69 70 74 6f 72 09 09 2a 29 0a 20 20 20 70 09 09 3a 20 20 69 6e   ┆  for descriptor  *)    p  :  in┆
0x0210e0…021100             74 65 67 65 72 3b 0a 20 20 20 64 61 74 61 68 65 61 64 09 3a 20 20 64 65 73 63 72 69 70 74 6f 72   ┆teger;    datahead :  descriptor┆
0x021100…021120             5f 70 61 72 74 31 3b 0a 20 20 20 6b 65 79 20 20 3a 20 20 63 68 61 72 3b 0a 0a 43 6f 6e 73 74 0a   ┆_part1;    key  :  char;  Const ┆
0x021120…021140             20 20 20 64 61 74 61 5f 76 65 72 73 69 6f 6e 09 3a 20 20 77 6f 72 64 20 3d 20 20 30 30 3b 09 09   ┆   data_version :  word =  00;  ┆
0x021140…021160             28 2a 20 20 20 72 65 6c 20 2a 20 32 35 36 20 2b 20 20 72 65 76 09 20 09 2a 29 0a 0a 0a 50 72 6f   ┆(*   rel * 256 +  rev   *)   Pro┆
0x021160…021180             63 65 64 75 72 65 20 65 72 72 6f 72 20 28 20 65 72 72 6f 72 6c 65 76 65 6c 3a 20 77 6f 72 64 3b   ┆cedure error ( errorlevel: word;┆
0x021180…0211a0             20 73 74 72 3a 20 66 69 6c 65 6e 61 6d 65 5f 74 79 70 65 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20   ┆ str: filename_type);   begin   ┆
0x0211a0…0211c0             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 20 29 3b 0a 20 20 68 61 6c 74 20   ┆writeln ( output, str );   halt ┆
0x0211c0…0211e0             28 20 65 72 72 6f 72 6c 65 76 65 6c 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 0a 20 46 75 6e 63 74   ┆( errorlevel);   end;      Funct┆
0x0211e0…021200             69 6f 6e 20 63 68 65 63 6b 5f 70 61 72 61 6d 73 20 28 20 76 61 72 20 64 65 73 74 69 6e 61 74 69   ┆ion check_params ( var destinati┆
0x021200…021220 (8, 1, 11)  6f 6e 5f 6e 61 6d 65 3a 20 70 61 74 68 73 74 72 29 3a 20 77 6f 72 64 3b 0a 20 28 2a 20 20 72 65   ┆on_name: pathstr): word;  (*  re┆
0x021220…021240             61 64 20 6c 69 73 74 20 6f 66 20 70 61 72 61 6d 65 74 65 72 73 0a 20 2d 2d 20 20 61 6e 64 20 63   ┆ad list of parameters  --  and c┆
0x021240…021260             68 65 63 6b 20 74 68 61 74 20 61 6c 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 65 78 69 73 74   ┆heck that all source files exist┆
0x021260…021280             0a 20 2d 2d 20 20 63 6f 6d 70 6c 65 74 65 73 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20   ┆  --  completes the destination ┆
0x021280…0212a0             66 69 6c 65 20 6e 61 6d 65 0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20 6e 6f 20 6f 66 20 73 6f 75   ┆file name  --  returns no of sou┆
0x0212a0…0212c0             72 63 65 20 66 69 6c 65 73 20 6f 72 20 68 61 6c 74 73 20 74 68 65 20 70 72 6f 67 72 61 6d 0a 20   ┆rce files or halts the program  ┆
0x0212c0…0212e0             2d 2d 20 20 47 6c 6f 62 61 6c 73 3a 20 20 73 6f 75 72 63 65 2c 20 64 65 66 5f 65 78 74 65 6e 73   ┆--  Globals:  source, def_extens┆
0x0212e0…021300             69 6f 6e 0a 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 66 69 6c 65 6e 6f 09 3a 20 20 77 6f 72   ┆ion  *)   var      fileno :  wor┆
0x021300…021320             64 3b 0a 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 09 3a 20 20 70 61 74 68 73 74 72 3b 0a 20 20 20   ┆d;      filename :  pathstr;    ┆
0x021320…021340             20 20 64 69 72 09 3a 20 20 64 69 72 73 74 72 3b 0a 20 20 20 20 20 6e 61 6d 65 09 3a 20 20 6e 61   ┆  dir :  dirstr;      name :  na┆
0x021340…021360             6d 65 73 74 72 3b 0a 20 20 20 20 20 65 78 74 09 3a 20 20 65 78 74 73 74 72 3b 0a 20 20 62 65 67   ┆mestr;      ext :  extstr;   beg┆
0x021360…021380             69 6e 0a 0a 20 20 69 66 20 70 61 72 61 6d 63 6f 75 6e 74 20 3d 20 30 0a 20 20 74 68 65 6e 20 62   ┆in    if paramcount = 0   then b┆
0x021380…0213a0             65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 48 65 6c 70   ┆egin     writeln ( output, 'Help┆
0x0213a0…0213c0             20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 50 4c 49 42 43 4f 4e 56 45 52 54 3a 27 29 3b   ┆ information for PLIBCONVERT:');┆
0x0213c0…0213e0             0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 27 54 68 65 20   ┆     writeln ( output,     'The ┆
0x0213e0…021400             70 72 6f 67 72 61 6d 20 63 6f 6e 76 65 72 74 73 20 66 69 6c 65 28 73 29 20 69 6e 74 6f 20 52 43   ┆program converts file(s) into RC┆
0x021400…021420 (8, 1, 12)  33 35 30 32 20 66 6f 72 6d 61 74 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 6c 6f 61 64 65 64   ┆3502 format, which can be loaded┆
0x021420…021440             20 61 73 20 44 41 54 41 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆ as DATA');     writeln ( output┆
0x021440…021460             2c 20 27 20 69 6e 20 52 43 33 35 30 32 2c 20 69 2e 65 2e 20 52 43 33 35 30 32 20 64 65 73 63 72   ┆, ' in RC3502, i.e. RC3502 descr┆
0x021460…021480             69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 69 73 20 69 6e 73 65 72 74 65 64 2e 27 29 3b 0a 20 20   ┆iptor segment is inserted.');   ┆
0x021480…0214a0             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e   ┆  writeln ( output);     writeln┆
0x0214a0…0214c0             20 28 20 6f 75 74 70 75 74 2c 20 27 43 61 6c 6c 20 73 79 6e 74 61 78 3a 27 29 3b 0a 20 20 20 20   ┆ ( output, 'Call syntax:');     ┆
0x0214c0…0214e0             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 50 4c 49 42 43 4f 4e   ┆writeln ( output,       'PLIBCON┆
0x0214e0…021500             56 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 2e 2e 2e 20 3c 70 61 72 61 6d 65 74 65 72 3e 27 29 3b   ┆V <parameter> ... <parameter>');┆
0x021500…021520             0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20   ┆     writeln ( output,       '  ┆
0x021520…021540             20 20 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 3a 20 20 20 20 20 20 20 3d 3c 66 69 6c 65 70 61 74   ┆   <parameter> :       =<filepat┆
0x021540…021560             68 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 64 65 73 74 69 6e 61 74 69   ┆h>             name of destinati┆
0x021560…021580             6f 6e 20 66 69 6c 65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆on file');     writeln ( output,┆
0x021580…0215a0             0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆       '                        ┆
0x0215a0…0215c0             20 50 41 52 41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 20 20 20 20 20 20 6e 61 6d 65 20 6f 66   ┆ PARAMIN-<filepath>      name of┆
0x0215c0…0215e0             20 66 69 6c 65 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20 20 77 72 69   ┆ file with parameters');     wri┆
0x0215e0…021600             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20   ┆teln ( output,       '          ┆
0x021600…021620 (8, 1, 13)  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72 70 61   ┆               SOURCEPATH-<dirpa┆
0x021620…021640             74 68 3e 20 20 20 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 27 29 3b 0a 20 20 20 20 77 72 69   ┆th>    directory path');     wri┆
0x021640…021660             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20   ┆teln ( output,       '          ┆
0x021660…021680             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 45 52 53 49 4f 4e 2d 3c 72 65 6c 3e 2d 3c 72 65   ┆               VERSION-<rel>-<re┆
0x021680…0216a0             76 3e 20 20 20 20 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 27 29 3b 0a 20 20 20 20 77 72   ┆v>     version number ');     wr┆
0x0216a0…0216c0             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20   ┆iteln ( output,       '         ┆
0x0216c0…0216e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 66 69 6c 65 70 61 74 68 3e 20 20 20 20 20 20   ┆                <filepath>      ┆
0x0216e0…021700             20 20 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 73 6f 75 72 63 65 20 66 69 6c 65 27 29 3b 0a 20   ┆        name of source file');  ┆
0x021700…021720             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 65 72 72 6f 72 20   ┆   writeln ( output);     error ┆
0x021720…021740             28 20 31 2c 20 27 21 20 53 70 65 63 69 66 79 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20   ┆( 1, '! Specify parameters');   ┆
0x021740…021760             20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 5f 6e 61 6d 65 20 3d 20   ┆  end;    if destination_name = ┆
0x021760…021780             27 27 0a 20 20 74 68 65 6e 20 20 62 65 67 69 6e 0a 20 20 20 20 66 69 6c 65 6e 61 6d 65 3a 3d 20   ┆''   then  begin     filename:= ┆
0x021780…0217a0             67 65 74 70 61 72 61 6d 20 28 20 31 29 3b 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 76 65 72   ┆getparam ( 1);     if pos ( 'ver┆
0x0217a0…0217c0             73 69 6f 6e 2d 27 2c 20 66 69 6c 65 6e 61 6d 65 20 29 20 3c 3e 20 30 20 74 68 65 6e 20 20 20 20   ┆sion-', filename ) <> 0 then    ┆
0x0217c0…0217e0             20 28 2a 20 20 31 2e 36 20 20 20 2a 29 0a 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 3a 3d 20 67   ┆ (*  1.6   *)       filename:= g┆
0x0217e0…021800             65 74 70 61 72 61 6d 20 28 20 32 29 3b 0a 20 20 20 20 66 73 70 6c 69 74 20 28 20 66 69 6c 65 6e   ┆etparam ( 2);     fsplit ( filen┆
0x021800…021820 (8, 1, 14)  61 6d 65 2c 20 64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 20 20 64 65 73 74 69 6e   ┆ame, dir, name, ext);     destin┆
0x021820…021840             61 74 69 6f 6e 5f 6e 61 6d 65 3a 3d 20 6e 61 6d 65 20 2b 20 64 65 66 5f 65 78 74 65 6e 73 69 6f   ┆ation_name:= name + def_extensio┆
0x021840…021860             6e 0a 20 20 20 20 65 6e 64 0a 20 20 65 6c 73 65 20 20 62 65 67 69 6e 0a 20 20 20 20 66 73 70 6c   ┆n     end   else  begin     fspl┆
0x021860…021880             69 74 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 5f 6e 61 6d 65 2c 20 64 69 72 2c 20 6e 61 6d 65   ┆it ( destination_name, dir, name┆
0x021880…0218a0             2c 20 65 78 74 29 3b 0a 20 20 20 20 69 66 20 65 78 74 20 3d 20 27 27 20 74 68 65 6e 20 20 64 65   ┆, ext);     if ext = '' then  de┆
0x0218a0…0218c0             73 74 69 6e 61 74 69 6f 6e 5f 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 64 65   ┆stination_name:= dir + name + de┆
0x0218c0…0218e0             66 5f 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 65 6e 64 3b 0a 0a 0a 20 20 66 6f 72 20 66 69 6c   ┆f_extension     end;     for fil┆
0x0218e0…021900             65 6e 6f 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a 20 20   ┆eno:= 1 to paramlist.items do   ┆
0x021900…021920             20 20 62 65 67 69 6e 0a 20 20 20 20 66 69 6c 65 6e 61 6d 65 3a 3d 20 67 65 74 70 61 72 61 6d 20   ┆  begin     filename:= getparam ┆
0x021920…021940             28 20 66 69 6c 65 6e 6f 20 29 3b 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 76 65 72 73 69 6f   ┆( fileno );     if pos ( 'versio┆
0x021940…021960             6e 2d 27 2c 20 66 69 6c 65 6e 61 6d 65 20 29 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 62   ┆n-', filename ) = 0 then       b┆
0x021960…021980             65 67 69 6e 0a 20 20 20 20 20 20 66 73 70 6c 69 74 20 28 20 66 69 6c 65 6e 61 6d 65 2c 20 64 69   ┆egin       fsplit ( filename, di┆
0x021980…0219a0             72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 20 20 20 20 69 66 20 65 78 74 20 3d 20 27 27   ┆r, name, ext);       if ext = ''┆
0x0219a0…0219c0             20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 20 20 28 2a 20 20 31 2e 34 20 20 20   ┆ then         begin   (*  1.4   ┆
0x0219c0…0219e0             2a 29 0a 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65   ┆*)         filename:= dir + name┆
0x0219e0…021a00             20 2b 20 64 65 66 5f 73 72 63 5f 65 78 74 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75   ┆ + def_src_ext;         if looku┆
0x021a00…021a20 (8, 1, 15)  70 20 28 20 66 69 6c 65 6e 61 6d 65 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20   ┆p ( filename) then  (*  ok  *)  ┆
0x021a20…021a40             20 20 20 20 20 20 20 65 6c 73 65 20 66 69 6c 65 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d   ┆       else filename:= dir + nam┆
0x021a40…021a60             65 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28   ┆e         end;       if lookup (┆
0x021a60…021a80             20 66 69 6c 65 6e 61 6d 65 20 29 20 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20   ┆ filename )  then  (*  ok  *)   ┆
0x021a80…021aa0             20 20 20 20 65 6c 73 65 20 20 65 72 72 6f 72 20 28 20 32 2c 20 27 2a 2a 2a 20 46 69 6c 65 20 64   ┆    else  error ( 2, '*** File d┆
0x021aa0…021ac0             6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20 27 20 2b 20 66 69 6c 65 6e 61 6d 65 20 29 0a 20 20   ┆oes not exist: ' + filename )   ┆
0x021ac0…021ae0             20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 66 6f 72 20 66 69 6c 65 6e 6f   ┆    end     end;  (*  for fileno┆
0x021ae0…021b00             20 20 2a 29 0a 0a 20 20 63 68 65 63 6b 5f 70 61 72 61 6d 73 3a 3d 20 70 61 72 61 6d 6c 69 73 74   ┆  *)    check_params:= paramlist┆
0x021b00…021b20             2e 69 74 65 6d 73 0a 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 68 65 63 6b 20 70 61 72 61 6d 73   ┆.items    end;  (*  check params┆
0x021b20…021b40             20 20 2a 29 0a 0a 0c 0a 0a 50 72 6f 63 65 64 75 72 65 20 63 6f 6e 76 65 72 74 5f 66 69 6c 65 20   ┆  *)     Procedure convert_file ┆
0x021b40…021b60             28 20 66 69 6c 65 6e 61 6d 65 3a 20 66 69 6c 65 6e 61 6d 65 5f 74 79 70 65 20 29 3b 0a 20 20 76   ┆( filename: filename_type );   v┆
0x021b60…021b80             61 72 0a 20 20 20 20 70 2c 20 72 65 73 2c 0a 20 20 20 20 72 65 6c 6e 6f 2c 20 72 65 76 6e 6f 2c   ┆ar     p, res,     relno, revno,┆
0x021b80…021ba0             0a 20 20 20 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 09 2c 0a 20 20 20 20 6c 61 73 74 5f 70 61 67 65   ┆     no_of_pages ,     last_page┆
0x021ba0…021bc0             5f 6c 65 6e 67 74 68 2c 0a 20 20 20 20 62 79 74 65 73 5f 72 65 61 64 09 2c 0a 20 20 20 20 62 79   ┆_length,     bytes_read ,     by┆
0x021bc0…021be0             74 65 73 5f 77 72 69 74 74 65 6e 3a 20 77 6f 72 64 3b 0a 0a 20 20 20 20 66 69 6c 65 6c 65 6e 67   ┆tes_written: word;      fileleng┆
0x021be0…021c00             74 68 09 2c 0a 20 20 20 20 6c 6f 6e 67 70 61 67 65 73 09 2c 0a 20 20 20 20 6c 6f 6e 67 74 65 6d   ┆th ,     longpages ,     longtem┆
0x021c00…021c20 (9, 0, 1)   70 09 3a 20 20 6c 6f 6e 67 69 6e 74 3b 0a 0a 20 20 20 20 73 74 61 6d 70 09 3a 20 20 64 61 74 65   ┆p :  longint;      stamp :  date┆
0x021c20…021c40             74 69 6d 65 3b 0a 20 20 20 20 64 61 74 65 2c 20 74 69 6d 65 09 3a 20 20 77 6f 72 64 3b 0a 20 20   ┆time;     date, time :  word;   ┆
0x021c40…021c60             20 20 70 72 6f 67 72 61 6d 6e 61 6d 65 09 3a 20 20 66 69 6c 65 6e 61 6d 65 5f 74 79 70 65 3b 0a   ┆  programname :  filename_type; ┆
0x021c60…021c80             20 20 20 20 74 78 74 32 30 09 3a 20 20 73 74 72 69 6e 67 5b 32 30 5d 3b 0a 20 20 20 20 20 64 69   ┆    txt20 :  string[20];      di┆
0x021c80…021ca0             72 09 3a 20 20 64 69 72 73 74 72 3b 0a 20 20 20 20 20 6e 61 6d 65 09 3a 20 20 6e 61 6d 65 73 74   ┆r :  dirstr;      name :  namest┆
0x021ca0…021cc0             72 3b 0a 20 20 20 20 20 65 78 74 09 3a 20 20 65 78 74 73 74 72 3b 0a 0a 20 20 62 65 67 69 6e 0a   ┆r;      ext :  extstr;    begin ┆
0x021cc0…021ce0             0a 20 20 70 3a 3d 20 70 6f 73 20 28 20 27 76 65 72 73 69 6f 6e 2d 27 2c 20 66 69 6c 65 6e 61 6d   ┆   p:= pos ( 'version-', filenam┆
0x021ce0…021d00             65 29 3b 0a 20 20 69 66 20 70 20 3d 20 31 20 74 68 65 6e 09 09 09 09 28 2a 20 20 63 68 61 6e 67   ┆e);   if p = 1 then    (*  chang┆
0x021d00…021d20             65 20 76 65 72 73 69 6f 6e 20 20 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 72 65 6c 6e   ┆e version  *)     begin     reln┆
0x021d20…021d40             6f 3a 3d 20 30 3b 0a 20 20 20 20 72 65 76 6e 6f 3a 3d 20 30 3b 0a 20 20 20 20 74 78 74 32 30 3a   ┆o:= 0;     revno:= 0;     txt20:┆
0x021d40…021d60             3d 20 63 6f 70 79 20 28 20 66 69 6c 65 6e 61 6d 65 2c 20 39 2c 20 32 30 29 3b 0a 20 20 20 20 70   ┆= copy ( filename, 9, 20);     p┆
0x021d60…021d80             3a 3d 20 70 6f 73 20 28 20 27 2d 27 2c 20 74 78 74 32 30 29 3b 0a 20 20 20 20 69 66 20 70 20 3d   ┆:= pos ( '-', txt20);     if p =┆
0x021d80…021da0             20 30 20 74 68 65 6e 20 70 3a 3d 20 70 6f 73 20 28 20 27 2e 27 2c 20 74 78 74 32 30 29 3b 0a 20   ┆ 0 then p:= pos ( '.', txt20);  ┆
0x021da0…021dc0             20 20 20 69 66 20 70 20 3d 20 30 0a 20 20 20 20 74 68 65 6e 20 76 61 6c 20 28 20 74 78 74 32 30   ┆   if p = 0     then val ( txt20┆
0x021dc0…021de0             2c 20 72 65 6c 6e 6f 2c 20 72 65 73 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67   ┆, relno, res)     else       beg┆
0x021de0…021e00             69 6e 0a 20 20 20 20 20 20 76 61 6c 20 28 20 63 6f 70 79 20 28 20 74 78 74 32 30 2c 20 31 2c 20   ┆in       val ( copy ( txt20, 1, ┆
0x021e00…021e20 (9, 0, 2)   70 2d 31 29 2c 20 72 65 6c 6e 6f 2c 20 72 65 73 29 3b 0a 20 20 20 20 20 20 76 61 6c 20 28 20 63   ┆p-1), relno, res);       val ( c┆
0x021e20…021e40             6f 70 79 20 28 20 74 78 74 32 30 2c 20 70 2b 31 2c 20 32 30 29 2c 20 72 65 76 6e 6f 2c 20 72 65   ┆opy ( txt20, p+1, 20), revno, re┆
0x021e40…021e60             73 29 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 64 61 74 61 5f 76 65 72 73 69 6f 6e 3a 3d   ┆s)       end;     data_version:=┆
0x021e60…021e80             20 28 20 72 65 6c 6e 6f 20 61 6e 64 20 32 35 35 20 29 20 73 68 6c 20 38 20 2b 20 72 65 76 6e 6f   ┆ ( relno and 255 ) shl 8 + revno┆
0x021e80…021ea0             20 61 6e 64 20 32 35 35 3b 0a 20 20 20 20 65 6e 64 0a 20 20 65 6c 73 65 0a 20 20 20 20 62 65 67   ┆ and 255;     end   else     beg┆
0x021ea0…021ec0             69 6e 09 09 09 09 28 2a 20 20 63 6f 6e 76 65 72 74 20 66 69 6c 65 20 20 2a 29 0a 20 20 20 20 66   ┆in    (*  convert file  *)     f┆
0x021ec0…021ee0             73 70 6c 69 74 20 28 20 66 69 6c 65 6e 61 6d 65 2c 20 64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74   ┆split ( filename, dir, name, ext┆
0x021ee0…021f00             29 3b 0a 20 20 20 20 69 66 20 65 78 74 20 3d 20 27 27 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65   ┆);     if ext = '' then       be┆
0x021f00…021f20             67 69 6e 20 20 20 28 2a 20 20 31 2e 34 20 20 20 2a 29 0a 20 20 20 20 20 20 66 69 6c 65 6e 61 6d   ┆gin   (*  1.4   *)       filenam┆
0x021f20…021f40             65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 64 65 66 5f 73 72 63 5f 65 78 74 3b 0a 20 20   ┆e:= dir + name + def_src_ext;   ┆
0x021f40…021f60             20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 66 69 6c 65 6e 61 6d 65 29 20 74 68 65 6e 20 20   ┆    if lookup ( filename) then  ┆
0x021f60…021f80             28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20 65 6c 73 65 20 66 69 6c 65 6e 61 6d 65 3a 3d   ┆(*  ok  *)       else filename:=┆
0x021f80…021fa0             20 64 69 72 20 2b 20 6e 61 6d 65 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 6f 70 65 6e 5f   ┆ dir + name       end;     open_┆
0x021fa0…021fc0             66 69 6c 65 20 28 20 73 6f 75 72 63 65 2c 20 66 69 6c 65 6e 61 6d 65 2c 20 66 6d 5f 72 65 61 64   ┆file ( source, filename, fm_read┆
0x021fc0…021fe0             20 29 3b 0a 20 20 20 20 66 69 6c 65 5f 73 74 61 6d 70 20 28 20 73 6f 75 72 63 65 2c 20 73 74 61   ┆ );     file_stamp ( source, sta┆
0x021fe0…022000             6d 70 29 3b 0a 20 20 20 20 66 69 6c 65 6c 65 6e 67 74 68 3a 3d 20 66 69 6c 65 73 69 7a 65 20 28   ┆mp);     filelength:= filesize (┆
0x022000…022020 (9, 0, 3)   20 73 6f 75 72 63 65 20 29 3b 0a 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29   ┆ source );     iocheck ( source)┆
0x022020…022040             3b 0a 20 20 20 20 69 66 20 66 69 6c 65 6c 65 6e 67 74 68 20 3c 20 31 20 74 68 65 6e 20 20 65 72   ┆;     if filelength < 1 then  er┆
0x022040…022060             72 6f 72 20 28 20 31 30 30 2c 20 63 6f 6e 63 61 74 20 28 20 27 2a 2a 2a 20 46 69 6c 65 20 65 6d   ┆ror ( 100, concat ( '*** File em┆
0x022060…022080             70 74 79 3a 20 27 2c 20 66 69 6c 65 6e 61 6d 65 20 29 20 29 3b 0a 20 20 20 20 6c 6f 6e 67 70 61   ┆pty: ', filename ) );     longpa┆
0x022080…0220a0             67 65 73 3a 3d 20 28 20 66 69 6c 65 6c 65 6e 67 74 68 20 2b 20 28 64 61 74 61 70 61 67 65 73 69   ┆ges:= ( filelength + (datapagesi┆
0x0220a0…0220c0             7a 65 2d 31 29 29 20 64 69 76 20 64 61 74 61 70 61 67 65 73 69 7a 65 20 3b 0a 20 20 20 20 6e 6f   ┆ze-1)) div datapagesize ;     no┆
0x0220c0…0220e0             5f 6f 66 5f 70 61 67 65 73 3a 3d 20 6c 6f 6e 67 70 61 67 65 73 3b 0a 20 20 20 20 6c 6f 6e 67 74   ┆_of_pages:= longpages;     longt┆
0x0220e0…022100             65 6d 70 3a 3d 20 66 69 6c 65 6c 65 6e 67 74 68 20 2d 20 64 61 74 61 70 61 67 65 73 69 7a 65 20   ┆emp:= filelength - datapagesize ┆
0x022100…022120             2a 20 28 6c 6f 6e 67 70 61 67 65 73 20 2d 20 31 29 3b 0a 20 20 20 20 6c 61 73 74 5f 70 61 67 65   ┆* (longpages - 1);     last_page┆
0x022120…022140             5f 6c 65 6e 67 74 68 3a 3d 20 6c 6f 6e 67 74 65 6d 70 3b 0a 20 20 20 20 64 61 74 61 68 65 61 64   ┆_length:= longtemp;     datahead┆
0x022140…022160             2e 6e 6f 5f 6f 66 5f 70 61 67 65 73 3a 3d 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 20 3b 0a 20 20 20   ┆.no_of_pages:= no_of_pages ;    ┆
0x022160…022180             20 64 61 74 61 68 65 61 64 2e 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3a 3d 20 6c 61 73   ┆ datahead.last_page_length:= las┆
0x022180…0221a0             74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 20 2b 20 6f 72 64 20 28 20 6f 64 64 20 28 20 6c 61 73 74   ┆t_page_length + ord ( odd ( last┆
0x0221a0…0221c0             5f 70 61 67 65 5f 6c 65 6e 67 74 68 29 29 20 3b 0a 0a 20 20 20 20 28 2a 20 72 65 6d 6f 76 65 20   ┆_page_length)) ;      (* remove ┆
0x0221c0…0221e0             63 68 61 72 61 63 74 65 72 73 20 61 68 65 61 64 20 61 6e 64 20 69 6e 63 6c 75 64 69 6e 67 20 6c   ┆characters ahead and including l┆
0x0221e0…022200             61 73 74 20 27 5c 27 20 2a 29 0a 20 20 20 20 70 72 6f 67 72 61 6d 6e 61 6d 65 3a 3d 20 66 69 6c   ┆ast '\' *)     programname:= fil┆
0x022200…022220 (9, 0, 4)   65 6e 61 6d 65 3b 0a 0a 20 20 20 20 72 65 70 65 61 74 0a 20 20 20 20 20 20 70 3a 3d 20 70 6f 73   ┆ename;      repeat       p:= pos┆
0x022220…022240             20 28 20 27 5c 27 2c 20 70 72 6f 67 72 61 6d 6e 61 6d 65 20 29 3b 0a 20 20 20 20 20 20 70 72 6f   ┆ ( '\', programname );       pro┆
0x022240…022260             67 72 61 6d 6e 61 6d 65 3a 3d 20 63 6f 70 79 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 70   ┆gramname:= copy ( programname, p┆
0x022260…022280             20 2b 20 31 2c 20 6c 65 6e 67 74 68 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 20 29 20 2d 20 70   ┆ + 1, length ( programname ) - p┆
0x022280…0222a0             20 29 3b 0a 20 20 20 20 75 6e 74 69 6c 20 70 20 3d 20 30 3b 0a 0a 20 20 20 20 28 2a 20 72 65 6d   ┆ );     until p = 0;      (* rem┆
0x0222a0…0222c0             6f 76 65 20 63 68 61 72 61 63 74 65 72 73 20 61 68 65 61 64 20 61 6e 64 20 69 6e 63 6c 75 64 69   ┆ove characters ahead and includi┆
0x0222c0…0222e0             6e 67 20 27 3a 27 20 2a 29 0a 20 20 20 20 70 3a 3d 20 70 6f 73 20 28 20 27 3a 27 2c 20 70 72 6f   ┆ng ':' *)     p:= pos ( ':', pro┆
0x0222e0…022300             67 72 61 6d 6e 61 6d 65 20 29 3b 0a 20 20 20 20 70 72 6f 67 72 61 6d 6e 61 6d 65 3a 3d 20 63 6f   ┆gramname );     programname:= co┆
0x022300…022320             70 79 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 70 20 2b 20 31 2c 20 6c 65 6e 67 74 68 20   ┆py ( programname, p + 1, length ┆
0x022320…022340             28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 20 29 20 2d 20 70 20 29 3b 0a 0a 20 20 20 20 28 2a 20 72   ┆( programname ) - p );      (* r┆
0x022340…022360             65 6d 6f 76 65 20 27 2e 27 20 2a 29 0a 20 20 20 20 70 3a 3d 20 70 6f 73 20 28 20 27 2e 27 2c 20   ┆emove '.' *)     p:= pos ( '.', ┆
0x022360…022380             70 72 6f 67 72 61 6d 6e 61 6d 65 20 29 3b 0a 20 20 20 20 70 72 6f 67 72 61 6d 6e 61 6d 65 3a 3d   ┆programname );     programname:=┆
0x022380…0223a0             20 63 6f 6e 63 61 74 20 28 20 63 6f 70 79 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 31 2c   ┆ concat ( copy ( programname, 1,┆
0x0223a0…0223c0             20 70 20 2d 20 31 20 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f   ┆ p - 1 ),                     co┆
0x0223c0…0223e0             70 79 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 70 20 2b 20 31 2c 20 6c 65 6e 67 74 68 20   ┆py ( programname, p + 1, length ┆
0x0223e0…022400             28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 20 29 20 2d 20 70 20 29 20 29 3b 0a 20 20 20 20 66 6f 72   ┆( programname ) - p ) );     for┆
0x022400…022420 (9, 0, 5)   20 70 3a 3d 20 31 20 74 6f 20 31 32 20 64 6f 0a 20 20 20 20 20 20 69 66 20 6c 65 6e 67 74 68 28   ┆ p:= 1 to 12 do       if length(┆
0x022420…022440             70 72 6f 67 72 61 6d 6e 61 6d 65 29 20 3e 3d 20 70 0a 20 20 20 20 20 20 74 68 65 6e 20 64 61 74   ┆programname) >= p       then dat┆
0x022440…022460             61 68 65 61 64 2e 6e 61 6d 65 5b 70 5d 3a 3d 20 70 72 6f 67 72 61 6d 6e 61 6d 65 5b 70 5d 0a 20   ┆ahead.name[p]:= programname[p]  ┆
0x022460…022480             20 20 20 20 20 65 6c 73 65 20 64 61 74 61 68 65 61 64 2e 6e 61 6d 65 5b 70 5d 3a 3d 20 27 20 27   ┆     else datahead.name[p]:= ' '┆
0x022480…0224a0             3b 0a 20 20 20 20 64 61 74 65 5f 61 6e 64 5f 74 69 6d 65 5f 74 6f 5f 72 63 33 35 30 32 20 28 20   ┆;     date_and_time_to_rc3502 ( ┆
0x0224a0…0224c0             73 74 61 6d 70 2c 20 64 61 74 61 68 65 61 64 2e 73 6f 75 72 63 65 5f 64 61 74 65 2c 0a 20 20 20   ┆stamp, datahead.source_date,    ┆
0x0224c0…0224e0             20 20 20 64 61 74 61 68 65 61 64 2e 73 6f 75 72 63 65 5f 74 69 6d 65 20 29 3b 0a 20 20 20 20 64   ┆   datahead.source_time );     d┆
0x0224e0…022500             61 74 61 68 65 61 64 2e 76 65 72 73 69 6f 6e 3a 3d 20 64 61 74 61 5f 76 65 72 73 69 6f 6e 3b 0a   ┆atahead.version:= data_version; ┆
0x022500…022520             0a 20 20 20 20 77 72 69 74 65 68 65 61 64 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 64 61   ┆     writehead ( destination, da┆
0x022520…022540             74 61 68 65 61 64 29 3b 0a 20 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆tahead);    {-------------------┆
0x022540…022560             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 20 20 77 69   ┆-------------------------     wi┆
0x022560…022580             74 68 20 64 61 74 61 68 65 61 64 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20   ┆th datahead do       begin      ┆
0x022580…0225a0             20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 64 65 73   ┆ writeinteger ( destination, des┆
0x0225a0…0225c0             63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 29 3b 20 20 20 28 2a 20 20 66 6f 72 20 73 77 61 70 20   ┆criptor_length);   (*  for swap ┆
0x0225c0…0225e0             20 2a 29 0a 20 20 20 20 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 69 6e 61   ┆ *)       writeinteger ( destina┆
0x0225e0…022600             74 69 6f 6e 2c 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 69   ┆tion, no_of_pages);       writei┆
0x022600…022620 (9, 0, 6)   6e 74 65 67 65 72 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 70 61 67 65 73 69 7a 65 29 3b   ┆nteger ( destination, pagesize);┆
0x022620…022640             0a 20 20 20 20 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 69 6e 61 74 69 6f   ┆       writeinteger ( destinatio┆
0x022640…022660             6e 2c 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 29 3b 0a 20 20 20 20 20 20 77 72 69 74   ┆n, last_page_length);       writ┆
0x022660…022680             65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 6b 69 6e 64 29 3b 0a 0a   ┆einteger ( destination, kind);  ┆
0x022680…0226a0             20 20 20 20 20 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20   ┆      blockwrite ( destination, ┆
0x0226a0…0226c0             64 61 74 61 68 65 61 64 2e 6e 61 6d 65 2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 62 79 74 65 73   ┆datahead.name, alfalength, bytes┆
0x0226c0…0226e0             5f 77 72 69 74 74 65 6e 20 29 3b 0a 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 64 65 73 74   ┆_written );       iocheck ( dest┆
0x0226e0…022700             69 6e 61 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 69 66 20 62 79 74 65 73 5f 77 72 69 74 74 65 6e   ┆ination);       if bytes_written┆
0x022700…022720             20 3c 3e 20 61 6c 66 61 6c 65 6e 67 74 68 20 74 68 65 6e 20 65 72 72 6f 72 20 28 27 2a 2a 2a 20   ┆ <> alfalength then error ('*** ┆
0x022720…022740             44 69 73 6b 20 66 75 6c 6c 27 29 3b 0a 0a 20 20 20 20 20 20 77 72 69 74 65 69 6e 74 65 67 65 72   ┆Disk full');        writeinteger┆
0x022740…022760             20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 64 61 74 61 5f 6f 62 6a 65 63 74 5f 64 61 74 65   ┆ ( destination, data_object_date┆
0x022760…022780             29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 69 6e 61 74   ┆);       writeinteger ( destinat┆
0x022780…0227a0             69 6f 6e 2c 20 64 61 74 61 5f 6f 62 6a 65 63 74 5f 74 69 6d 65 29 3b 0a 20 20 20 20 20 20 66 6f   ┆ion, data_object_time);       fo┆
0x0227a0…0227c0             72 20 70 3a 3d 20 66 69 72 73 74 5f 6f 66 5f 74 61 69 6c 20 74 6f 20 6c 61 73 74 5f 6f 66 5f 64   ┆r p:= first_of_tail to last_of_d┆
0x0227c0…0227e0             65 73 63 72 69 70 74 6f 72 20 64 6f 0a 09 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73   ┆escriptor do  writeinteger ( des┆
0x0227e0…022800             74 69 6e 61 74 69 6f 6e 2c 20 64 61 74 61 5f 74 61 69 6c 5b 70 5d 29 3b 0a 20 20 20 20 20 20 65   ┆tination, data_tail[p]);       e┆
0x022800…022820 (9, 0, 7)   6e 64 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆nd; ----------------------------┆
0x022820…022840             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f   ┆-----------------}     write ( o┆
0x022840…022860             75 74 70 75 74 2c 20 27 20 20 20 43 6f 6e 76 65 72 74 69 6e 67 3a 20 27 2c 20 66 69 6c 65 6e 61   ┆utput, '   Converting: ', filena┆
0x022860…022880             6d 65 3a 20 31 32 2c 20 27 20 4c 65 6e 67 74 68 3a 20 27 2c 20 66 69 6c 65 6c 65 6e 67 74 68 3a   ┆me: 12, ' Length: ', filelength:┆
0x022880…0228a0             38 20 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 50 61 67   ┆8 );     writeln ( output, ' Pag┆
0x0228a0…0228c0             65 73 3a 20 27 2c 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 3a 20 34 2c 20 27 20 4c 61 73 74 70 61 67   ┆es: ', no_of_pages: 4, ' Lastpag┆
0x0228c0…0228e0             65 3a 20 27 2c 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3a 20 34 20 29 3b 0a 0a 20 20   ┆e: ', last_page_length: 4 );    ┆
0x0228e0…022900             20 20 28 2a 20 63 6f 70 79 20 66 69 6c 65 20 2a 29 0a 20 20 20 20 66 6f 72 20 70 3a 3d 31 20 74   ┆  (* copy file *)     for p:=1 t┆
0x022900…022920             6f 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 20 2d 20 31 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20   ┆o no_of_pages - 1 do     begin  ┆
0x022920…022940             20 20 20 20 20 62 6c 6f 63 6b 72 65 61 64 20 28 20 20 73 6f 75 72 63 65 2c 20 70 61 67 65 2c 20   ┆     blockread (  source, page, ┆
0x022940…022960             64 61 74 61 70 61 67 65 73 69 7a 65 2c 20 62 79 74 65 73 5f 72 65 61 64 20 29 3b 0a 20 20 20 20   ┆datapagesize, bytes_read );     ┆
0x022960…022980             20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 20 20 20 20 20 69 66 20 62 79   ┆  iocheck ( source);       if by┆
0x022980…0229a0             74 65 73 5f 72 65 61 64 20 3c 3e 20 64 61 74 61 70 61 67 65 73 69 7a 65 20 74 68 65 6e 0a 20 20   ┆tes_read <> datapagesize then   ┆
0x0229a0…0229c0             20 20 20 20 20 20 65 72 72 6f 72 20 28 20 31 30 30 2c 20 27 2a 2a 2a 20 52 65 61 64 20 66 61 69   ┆      error ( 100, '*** Read fai┆
0x0229c0…0229e0             6c 75 72 65 20 28 70 61 67 65 73 69 7a 65 2c 62 79 74 65 73 20 72 65 61 64 29 27 0a 20 20 20 20   ┆lure (pagesize,bytes read)'     ┆
0x0229e0…022a00             20 20 20 20 2b 20 73 74 72 69 6e 74 20 28 20 64 61 74 61 70 61 67 65 73 69 7a 65 29 20 2b 20 27   ┆    + strint ( datapagesize) + '┆
0x022a00…022a20 (9, 0, 8)   20 20 27 20 2b 20 73 74 72 69 6e 74 20 28 20 62 79 74 65 73 5f 72 65 61 64 29 20 29 3b 0a 20 20   ┆  ' + strint ( bytes_read) );   ┆
0x022a20…022a40             20 20 20 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 70 61   ┆    blockwrite ( destination, pa┆
0x022a40…022a60             67 65 2c 20 64 61 74 61 70 61 67 65 73 69 7a 65 2c 20 62 79 74 65 73 5f 77 72 69 74 74 65 6e 20   ┆ge, datapagesize, bytes_written ┆
0x022a60…022a80             29 3b 0a 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 3b   ┆);       iocheck ( destination);┆
0x022a80…022aa0             0a 20 20 20 20 20 20 69 66 20 62 79 74 65 73 5f 77 72 69 74 74 65 6e 20 3c 3e 20 64 61 74 61 70   ┆       if bytes_written <> datap┆
0x022aa0…022ac0             61 67 65 73 69 7a 65 20 74 68 65 6e 20 65 72 72 6f 72 20 28 20 31 30 31 2c 20 27 2a 2a 2a 20 44   ┆agesize then error ( 101, '*** D┆
0x022ac0…022ae0             69 73 6b 20 66 75 6c 6c 27 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 62 6c 6f 63 6b 72   ┆isk full');     end;      blockr┆
0x022ae0…022b00             65 61 64 20 28 20 20 73 6f 75 72 63 65 2c 20 70 61 67 65 2c 20 6c 61 73 74 5f 70 61 67 65 5f 6c   ┆ead (  source, page, last_page_l┆
0x022b00…022b20             65 6e 67 74 68 2c 20 62 79 74 65 73 5f 72 65 61 64 20 29 3b 0a 20 20 20 20 69 6f 63 68 65 63 6b   ┆ength, bytes_read );     iocheck┆
0x022b20…022b40             20 28 20 73 6f 75 72 63 65 29 3b 0a 20 20 20 20 69 66 20 62 79 74 65 73 5f 72 65 61 64 20 3c 3e   ┆ ( source);     if bytes_read <>┆
0x022b40…022b60             20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 20 74 68 65 6e 0a 20 20 20 20 20 20 65 72 72   ┆ last_page_length then       err┆
0x022b60…022b80             6f 72 20 28 20 31 30 30 2c 20 27 2a 2a 2a 20 52 65 61 64 20 66 61 69 6c 75 72 65 20 6c 61 73 74   ┆or ( 100, '*** Read failure last┆
0x022b80…022ba0             20 70 61 67 65 20 28 6c 61 73 74 20 70 61 67 65 20 6c 65 6e 67 74 68 2c 20 62 79 74 65 73 20 72   ┆ page (last page length, bytes r┆
0x022ba0…022bc0             65 61 64 29 20 27 0a 20 20 20 20 20 20 2b 20 73 74 72 69 6e 74 20 28 20 6c 61 73 74 5f 70 61 67   ┆ead) '       + strint ( last_pag┆
0x022bc0…022be0             65 5f 6c 65 6e 67 74 68 29 20 2b 20 27 20 20 27 20 2b 20 73 74 72 69 6e 74 20 28 20 62 79 74 65   ┆e_length) + '  ' + strint ( byte┆
0x022be0…022c00             73 5f 72 65 61 64 29 29 3b 0a 0a 20 20 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 69 6e 20   ┆s_read));      (*----------  in ┆
0x022c00…022c20 (9, 0, 9)   75 73 65 20 20 39 30 2e 30 31 2e 32 33 20 2d 2d 20 2a 29 0a 20 20 20 20 69 66 20 6f 64 64 28 6c   ┆use  90.01.23 -- *)     if odd(l┆
0x022c20…022c40             61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 29 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20   ┆ast_page_length) then begin     ┆
0x022c40…022c60             20 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3a 3d 20 6c 61 73 74 5f 70 61 67 65 5f 6c   ┆  last_page_length:= last_page_l┆
0x022c60…022c80             65 6e 67 74 68 20 2b 20 31 3b 0a 20 20 20 20 20 20 70 61 67 65 5b 6c 61 73 74 5f 70 61 67 65 5f   ┆ength + 1;       page[last_page_┆
0x022c80…022ca0             6c 65 6e 67 74 68 5d 3a 3d 20 30 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 28 2a 2d 2d 2d 2d   ┆length]:= 0;     end;     (*----┆
0x022ca0…022cc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 20 20 20 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 64 65   ┆---------*)      blockwrite ( de┆
0x022cc0…022ce0             73 74 69 6e 61 74 69 6f 6e 2c 20 70 61 67 65 2c 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74   ┆stination, page, last_page_lengt┆
0x022ce0…022d00             68 2c 20 62 79 74 65 73 5f 77 72 69 74 74 65 6e 20 29 3b 0a 20 20 20 20 69 6f 63 68 65 63 6b 20   ┆h, bytes_written );     iocheck ┆
0x022d00…022d20             28 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 3b 0a 20 20 20 20 69 66 20 62 79 74 65 73 5f 77 72 69   ┆( destination);     if bytes_wri┆
0x022d20…022d40             74 74 65 6e 20 3c 3e 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 20 74 68 65 6e 20 65 72   ┆tten <> last_page_length then er┆
0x022d40…022d60             72 6f 72 20 28 20 31 30 31 2c 20 27 2a 2a 2a 20 44 69 73 6b 20 66 75 6c 6c 27 29 3b 0a 0a 20 20   ┆ror ( 101, '*** Disk full');    ┆
0x022d60…022d80             20 20 28 2a 20 77 72 69 74 65 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 70 61   ┆  (* write descriptor segment pa┆
0x022d80…022da0             72 74 20 32 20 2a 29 0a 20 20 20 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 34 20 64 6f 20 70 61   ┆rt 2 *)     for p:= 1 to 4 do pa┆
0x022da0…022dc0             67 65 5b 70 5d 3a 3d 20 30 3b 0a 20 20 20 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 64 65 73 74   ┆ge[p]:= 0;     blockwrite ( dest┆
0x022dc0…022de0             69 6e 61 74 69 6f 6e 2c 20 70 61 67 65 2c 20 34 2c 20 62 79 74 65 73 5f 77 72 69 74 74 65 6e 20   ┆ination, page, 4, bytes_written ┆
0x022de0…022e00             29 3b 0a 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 3b 0a 20   ┆);     iocheck ( destination);  ┆
0x022e00…022e20 (9, 0, 10)  20 20 20 69 66 20 62 79 74 65 73 5f 77 72 69 74 74 65 6e 20 3c 3e 20 34 20 74 68 65 6e 20 65 72   ┆   if bytes_written <> 4 then er┆
0x022e20…022e40             72 6f 72 20 28 20 31 30 31 2c 20 27 2a 2a 2a 20 44 69 73 6b 20 66 75 6c 6c 27 29 3b 0a 0a 20 20   ┆ror ( 101, '*** Disk full');    ┆
0x022e40…022e60             20 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 73 6f 75 72 63 65 20 29 3b 0a 20 20 20 20 65 6e 64   ┆  close_file ( source );     end┆
0x022e60…022e80             20 20 28 2a 20 20 63 6f 6e 76 65 72 74 20 66 69 6c 65 20 20 2a 29 0a 20 20 65 6e 64 3b 20 20 28   ┆  (*  convert file  *)   end;  (┆
0x022e80…022ea0             2a 20 20 63 6f 6e 76 65 72 74 20 66 69 6c 65 20 20 2a 29 0a 0a 0a 0a 0a 0c 0a 0a 20 62 65 67 69   ┆*  convert file  *)         begi┆
0x022ea0…022ec0             6e 09 09 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 6d 61 69 6e 20 70 72 6f 67 72 61 6d   ┆n  (*-------------  main program┆
0x022ec0…022ee0             20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 01 44 20 32 0a 20 77 72   ┆  ------------------*)   D 2  wr┆
0x022ee0…022f00             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 37 2c 20 27 50 4c 49 42 63 6f 6e 76 65   ┆iteln ( output, '':7, 'PLIBconve┆
0x022f00…022f20             72 74 27 2c 20 76 65 72 73 69 6f 6e 29 3b 0a 01 45 20 32 0a 01 49 20 32 0a 20 77 72 69 74 65 6c   ┆rt', version);  E 2  I 2  writel┆
0x022f20…022f40             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 37 2c 20 27 50 4c 49 42 63 6f 6e 76 65 72 74 20 20   ┆n ( output, '':7, 'PLIBconvert  ┆
0x022f40…022f60             72 65 6c 2e 20 20 25 52 25 2e 25 4c 25 2c 20 20 20 20 31 39 27 2c 0a 20 20 20 20 63 6f 70 79 20   ┆rel.  %R%.%L%,    19',     copy ┆
0x022f60…022f80             28 20 73 63 63 73 5f 64 61 74 65 2c 20 31 2c 20 32 29 2c 20 27 2e 27 2c 20 63 6f 70 79 20 28 20   ┆( sccs_date, 1, 2), '.', copy ( ┆
0x022f80…022fa0             73 63 63 73 5f 64 61 74 65 2c 20 34 2c 20 32 29 2c 20 27 2e 27 2c 0a 20 20 20 20 63 6f 70 79 20   ┆sccs_date, 4, 2), '.',     copy ┆
0x022fa0…022fc0             28 20 73 63 63 73 5f 64 61 74 65 2c 20 37 2c 20 32 29 29 3b 0a 01 45 20 32 0a 20 77 72 69 74 65   ┆( sccs_date, 7, 2));  E 2  write┆
0x022fc0…022fe0             6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 20 69 6e 70 75 74 66 69 6c 65 73 3a 3d 20 63 68 65   ┆ln ( output);   inputfiles:= che┆
0x022fe0…023000             63 6b 5f 70 61 72 61 6d 73 20 28 20 6c 65 66 74 73 69 64 65 29 3b 0a 0a 20 69 6e 69 74 5f 64 61   ┆ck_params ( leftside);   init_da┆
0x023000…023020 (9, 0, 11)  74 61 5f 64 65 73 63 72 69 70 74 6f 72 20 28 20 64 61 74 61 68 65 61 64 29 3b 0a 0a 20 6f 70 65   ┆ta_descriptor ( datahead);   ope┆
0x023020…023040             6e 5f 66 69 6c 65 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 6c 65 66 74 73 69 64 65 2c 20   ┆n_file ( destination, leftside, ┆
0x023040…023060             66 6d 5f 77 72 69 74 65 20 29 3b 0a 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 69 6e 70 75 74 66   ┆fm_write );  for p:= 1 to inputf┆
0x023060…023080             69 6c 65 73 20 64 6f 20 20 63 6f 6e 76 65 72 74 5f 66 69 6c 65 20 28 20 67 65 74 70 61 72 61 6d   ┆iles do  convert_file ( getparam┆
0x023080…0230a0             20 28 20 70 29 20 29 3b 0a 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 73 69 7a 65 6f 66 20 28 20   ┆ ( p) );  for p:= 1 to sizeof ( ┆
0x0230a0…0230c0             64 61 74 61 68 65 61 64 29 20 64 6f 20 70 61 67 65 5b 70 5d 3a 3d 20 30 3b 20 20 20 20 20 20 20   ┆datahead) do page[p]:= 0;       ┆
0x0230c0…0230e0             28 2a 20 20 20 31 2e 35 20 20 20 2a 29 0a 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 64 65 73 74   ┆(*   1.5   *)  blockwrite ( dest┆
0x0230e0…023100             69 6e 61 74 69 6f 6e 2c 20 70 61 67 65 2c 20 73 69 7a 65 6f 66 20 28 20 64 61 74 61 68 65 61 64   ┆ination, page, sizeof ( datahead┆
0x023100…023120             29 2c 20 70 20 29 3b 0a 20 69 6f 63 68 65 63 6b 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 3b   ┆), p );  iocheck ( destination);┆
0x023120…023140             0a 20 69 66 20 70 20 3c 3e 20 73 69 7a 65 6f 66 20 28 20 64 61 74 61 68 65 61 64 29 20 74 68 65   ┆  if p <> sizeof ( datahead) the┆
0x023140…023160             6e 20 65 72 72 6f 72 20 28 20 31 30 31 2c 20 27 2a 2a 2a 20 44 69 73 6b 20 66 75 6c 6c 2e 27 20   ┆n error ( 101, '*** Disk full.' ┆
0x023160…023180             29 3b 0a 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 29 3b 0a   ┆);  close_file ( destination ); ┆
0x023180…0231a0             0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20   ┆  writeln ( output);  writeln ( ┆
0x0231a0…0231c0             6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 65 6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 20 77 72   ┆output, '--   end of job.');  wr┆
0x0231c0…0231e0             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 65 6e 64 20 2e 09 09 28 2a 20 20 6f 66 20   ┆iteln ( output);  end .  (*  of ┆
0x0231e0…023200             50 4c 49 42 43 4f 4e 56 45 52 54 20 20 2a 29 0a 0c 0a 01 45 20 31 0a 0a 20 69 6e 69 74 5f 64 61   ┆PLIBCONVERT  *)    E 1   init_da┆
0x023200…023220 (9, 0, 12)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 70 6c 69 62 6a 6f 69 6e 2e 70 61   ┆../sw2103/src/util/s.plibjoin.pa┆
0x023220…023240             73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆s                               ┆
0x023240…023260             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x023260…023280             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x023280…0232a0             20 20 35 34 33 37 35 20 20 35 33 34 30 31 32 37 36 34 30 20 20 31 31 36 36 33 00 20 00 00 00 00   ┆  54375  5340127640  11663      ┆
0x0232a0…0232c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x023400…023420 (9, 0, 13)  01 68 34 38 36 31 30 0a 01 73 20 30 30 30 30 36 2f 30 30 30 30 32 2f 30 30 38 31 30 0a 01 64 20   ┆ h48610  s 00006/00002/00810  d ┆
0x023420…023440             44 20 31 2e 35 20 39 33 2f 30 32 2f 31 36 20 31 30 3a 31 30 3a 35 33 20 73 77 32 31 30 33 20 34   ┆D 1.5 93/02/16 10:10:53 sw2103 4┆
0x023440…023460             20 33 0a 01 63 20 4e 6f 20 63 68 65 63 6b 20 6f 66 20 63 6f 6d 70 69 6c 65 72 20 76 65 72 73 69   ┆ 3  c No check of compiler versi┆
0x023460…023480             6f 6e 20 69 6e 20 64 61 74 61 20 6d 6f 64 75 6c 65 73 2e 0a 01 65 0a 01 73 20 30 30 30 30 35 2f   ┆on in data modules.  e  s 00005/┆
0x023480…0234a0             30 30 30 30 32 2f 30 30 38 30 37 0a 01 64 20 44 20 31 2e 34 20 39 32 2f 31 30 2f 30 39 20 31 33   ┆00002/00807  d D 1.4 92/10/09 13┆
0x0234a0…0234c0             3a 32 30 3a 31 36 20 73 77 32 31 30 33 20 33 20 31 0a 01 63 20 53 43 43 53 20 69 6e 66 6f 20 75   ┆:20:16 sw2103 3 1  c SCCS info u┆
0x0234c0…0234e0             73 65 64 2c 20 61 6e 64 20 55 4e 49 58 2e 0a 01 65 0a 01 73 20 30 30 30 30 35 2f 30 30 30 30 32   ┆sed, and UNIX.  e  s 00005/00002┆
0x0234e0…023500             2f 30 30 38 30 37 0a 01 64 20 52 20 31 2e 34 20 39 32 2f 31 30 2f 30 39 20 31 33 3a 31 32 3a 35   ┆/00807  d R 1.4 92/10/09 13:12:5┆
0x023500…023520             33 20 73 77 32 31 30 33 20 32 20 31 0a 01 63 20 22 53 43 43 53 20 69 6e 66 6f 20 75 73 65 64 2c   ┆3 sw2103 2 1  c "SCCS info used,┆
0x023520…023540             20 61 6e 64 20 55 4e 49 58 2e 22 0a 01 65 0a 01 73 20 30 30 38 30 39 2f 30 30 30 30 30 2f 30 30   ┆ and UNIX."  e  s 00809/00000/00┆
0x023540…023560             30 30 30 0a 01 64 20 44 20 31 2e 33 20 39 32 2f 31 30 2f 30 39 20 31 32 3a 30 33 3a 33 36 20 73   ┆000  d D 1.3 92/10/09 12:03:36 s┆
0x023560…023580             77 32 31 30 33 20 31 20 30 0a 01 63 20 50 61 72 61 6d 65 74 65 72 20 4c 49 42 2d 20 72 65 6d 6f   ┆w2103 1 0  c Parameter LIB- remo┆
0x023580…0235a0             76 65 64 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 50 72 6f 67 72 61 6d   ┆ved.  e  u  U  t  T  I 1 Program┆
0x0235a0…0235c0             20 50 4c 49 42 4a 4f 49 4e 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ PLIBJOIN;  (*------------------┆
0x0235c0…0235e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0235e0…023600             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 4d 6f 64 75 6c 65 3a 0a 2d 2d 20 46 69 6c 65 3a 20   ┆----------- -- Module: -- File: ┆
0x023600…023620 (9, 0, 14)  20 20 20 20 20 50 4c 49 42 4a 4f 49 4e 2e 50 41 53 0a 2d 2d 20 50 61 63 6b 61 67 65 3a 20 20 20   ┆     PLIBJOIN.PAS -- Package:   ┆
0x023620…023640             53 57 32 31 30 33 20 20 20 20 53 75 62 73 79 73 74 65 6d 3a 20 55 54 49 4c 49 54 59 20 20 20 50   ┆SW2103    Subsystem: UTILITY   P┆
0x023640…023660             72 6f 67 72 61 6d 3a 20 50 4c 49 42 4a 4f 49 4e 0a 2d 2d 0a 2d 2d 20 43 6f 6e 74 65 6e 74 73 3a   ┆rogram: PLIBJOIN -- -- Contents:┆
0x023660…023680             20 20 41 20 72 74 70 33 35 30 32 20 6c 69 62 72 61 72 79 20 6d 61 69 6e 74 65 6e 61 6e 63 65 20   ┆  A rtp3502 library maintenance ┆
0x023680…0236a0             70 72 6f 67 72 61 6d 2c 0a 2d 2d 09 20 20 20 20 20 20 66 6f 72 20 6d 61 6b 69 6e 67 20 61 20 52   ┆program, --       for making a R┆
0x0236a0…0236c0             43 35 30 30 30 20 70 72 6f 67 72 61 6d 20 6c 69 62 72 61 72 79 2e 0a 2d 2d 20 20 20 20 20 20 20   ┆C5000 program library. --       ┆
0x0236c0…0236e0             20 20 20 20 20 22 49 64 65 6e 74 69 63 61 6c 22 20 72 6f 75 74 69 6e 65 73 20 68 61 76 65 20 69   ┆     "Identical" routines have i┆
0x0236e0…023700             64 65 6e 74 69 63 61 6c 20 6e 61 6d 65 73 20 41 4e 44 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73   ┆dentical names AND parameter lis┆
0x023700…023720             74 73 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 20 63 61 6c 6c 3a 20 20 50 4c 49 42 4a 4f 49 4e   ┆ts -- -- Program call:  PLIBJOIN┆
0x023720…023740             20 3c 70 61 72 61 6d 65 74 65 72 3e 20 2e 2e 2e 20 3c 70 61 72 61 6d 65 74 65 72 3e 0a 2d 2d 09   ┆ <parameter> ... <parameter> -- ┆
0x023740…023760             3c 70 61 72 61 6d 65 74 65 72 3e 20 3a 09 3d 3c 66 69 6c 65 70 61 74 68 3e 2d 3c 77 6f 72 6b 64   ┆<parameter> : =<filepath>-<workd┆
0x023760…023780             69 72 3e 09 6e 61 6d 65 20 6f 66 20 6e 65 77 20 6c 69 62 20 66 69 6c 65 0a 2d 2d 09 09 09 2f 4f   ┆ir> name of new lib file --   /O┆
0x023780…0237a0             52 44 45 52 09 09 09 6f 62 6a 65 63 74 73 20 61 72 65 20 74 61 6b 65 6e 20 69 6e 20 6f 72 64 65   ┆RDER   objects are taken in orde┆
0x0237a0…0237c0             72 20 6f 66 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆r of --                         ┆
0x0237c0…0237e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 70 70 65 61 72 65 6e 63 65 20   ┆                     appearence ┆
0x0237e0…023800             69 6e 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 0a 2d 2d 09 09 09 2f 44 41 54 45   ┆in the parameter list --   /DATE┆
0x023800…023820 (9, 0, 15)  09 09 09 74 68 65 20 6c 61 74 65 73 74 20 63 6f 6d 70 69 6c 65 64 20 6f 62 6a 65 63 74 20 69 73   ┆   the latest compiled object is┆
0x023820…023840             20 74 61 6b 65 6e 0a 2d 2d 09 09 09 50 41 52 41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 09 6e   ┆ taken --   PARAMIN-<filepath> n┆
0x023840…023860             61 6d 65 20 6f 66 20 66 69 6c 65 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 0a 2d 2d 09 09   ┆ame of file with parameters --  ┆
0x023860…023880             09 53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72 70 61 74 68 3e 09 64 69 72 65 63 74 6f 72 79 20   ┆ SOURCEPATH-<dirpath> directory ┆
0x023880…0238a0             70 61 74 68 20 66 6f 72 20 73 6f 75 72 63 65 73 0a 2d 2d 09 09 09 3c 66 69 6c 65 70 61 74 68 3e   ┆path for sources --   <filepath>┆
0x0238a0…0238c0             09 09 6e 61 6d 65 20 6f 66 20 73 6f 75 72 63 65 20 66 69 6c 65 0a 2d 2d 0a 2d 2d 0a 2d 2d 09 49   ┆  name of source file -- -- -- I┆
0x0238c0…0238e0             66 20 6e 6f 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 20   ┆f no extension is specified for ┆
0x0238e0…023900             74 68 65 20 66 69 6c 65 73 2c 20 65 78 74 65 6e 73 69 6f 6e 20 27 2e 50 32 32 27 0a 2d 2d 20 20   ┆the files, extension '.P22' --  ┆
0x023900…023920             20 20 20 20 6f 72 20 27 2e 54 32 32 27 20 69 73 20 75 73 65 64 2e 0a 2d 2d 0a 2d 2d 0a 2d 2d 20   ┆    or '.T22' is used. -- -- -- ┆
0x023920…023940             50 72 65 72 65 71 75 69 73 69 74 65 73 3a 20 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49   ┆Prerequisites:  DOS, Cbreak, PLI┆
0x023940…023960             42 55 4e 49 54 2c 20 50 6f 6c 79 66 69 6c 65 3b 0a 2d 2d 0a 2d 2d 20 44 6f 63 75 6d 65 6e 74 61   ┆BUNIT, Polyfile; -- -- Documenta┆
0x023960…023980             74 69 6f 6e 3a 20 20 53 57 32 31 30 33 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 6d 65 64 20 62   ┆tion:  SW2103 -- -- Programmed b┆
0x023980…0239a0             79 20 48 45 4a 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 39 32 20 62 79 20 44   ┆y HEJ -- Copyright (C) 1992 by D┆
0x0239a0…0239c0             41 4e 4f 53 49 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ANOSI --------------------------┆
0x0239c0…0239e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0239e0…023a00             2d 2d 2d 2d 2d 0a 2d 2d 20 56 65 72 73 69 6f 6e 20 68 69 73 74 6f 72 79 3a 0a 2d 2d 0a 2d 2d 20   ┆----- -- Version history: -- -- ┆
0x023a00…023a20 (9, 1, 1)   56 65 72 73 2e 20 20 44 61 74 65 20 20 20 20 20 20 49 6e 69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d   ┆Vers.  Date      Init. Text -- -┆
0x023a20…023a40             2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 20 2d 2d 2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆---   --------  ----  ----------┆
0x023a40…023a60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a   ┆---------------------------- -- ┆
0x023a60…023a80             2d 2d 20 31 2e 31 20 20 20 20 39 32 2e 30 32 2e 31 37 20 20 20 48 45 4a 20 20 20 46 69 72 73 74   ┆-- 1.1    92.02.17   HEJ   First┆
0x023a80…023aa0             20 76 65 72 73 69 6f 6e 20 6d 61 64 65 20 75 70 6f 6e 20 50 4c 49 42 20 76 65 72 73 69 6f 6e 20   ┆ version made upon PLIB version ┆
0x023aa0…023ac0             31 2e 31 36 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆1.16 --                         ┆
0x023ac0…023ae0             61 6e 64 20 43 52 4f 53 4c 49 4e 4b 20 31 2e 38 0a 2d 2d 20 31 2e 32 20 20 20 20 39 32 2e 30 35   ┆and CROSLINK 1.8 -- 1.2    92.05┆
0x023ae0…023b00             2e 32 35 20 20 20 48 45 4a 20 20 20 45 78 74 65 6e 73 69 6f 6e 20 27 2e 54 32 32 27 20 69 73 20   ┆.25   HEJ   Extension '.T22' is ┆
0x023b00…023b20             61 63 63 65 70 74 65 64 20 74 6f 6f 2e 0a 2d 2d 20 31 2e 33 20 20 20 20 39 32 2e 30 36 2e 30 32   ┆accepted too. -- 1.3    92.06.02┆
0x023b20…023b40             20 20 20 48 45 4a 20 20 20 50 61 72 61 6d 65 74 65 72 20 4c 49 42 2d 20 72 65 6d 6f 76 65 64 2e   ┆   HEJ   Parameter LIB- removed.┆
0x023b40…023b60             0a 01 49 20 33 0a 2d 2d 20 31 2e 34 20 20 20 20 39 32 2e 31 30 2e 30 39 20 20 20 48 45 4a 20 20   ┆  I 3 -- 1.4    92.10.09   HEJ  ┆
0x023b60…023b80             20 53 43 43 53 20 61 6e 64 20 44 4f 53 20 75 73 65 64 2e 0a 01 49 20 34 0a 2d 2d 20 31 2e 35 20   ┆ SCCS and DOS used.  I 4 -- 1.5 ┆
0x023b80…023ba0             20 20 20 39 33 2e 30 32 2e 31 36 20 20 20 48 45 4a 20 20 20 4e 6f 20 63 68 65 63 6b 20 6f 66 20   ┆   93.02.16   HEJ   No check of ┆
0x023ba0…023bc0             63 6f 6d 70 69 6c 65 72 20 76 65 72 73 69 6f 6e 20 69 6e 20 64 61 74 61 20 6d 6f 64 75 6c 65 73   ┆compiler version in data modules┆
0x023bc0…023be0             2e 0a 01 45 20 34 0a 01 45 20 33 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆.  E 4  E 3 -- -----------------┆
0x023be0…023c00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x023c00…023c20 (9, 1, 2)   2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 7b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆------------ *) { --------------┆
0x023c20…023c40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x023c40…023c60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e   ┆--------------------- -- SCCS in┆
0x023c60…023c80             66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f   ┆formation -- File   :  %P% -- Mo┆
0x023c80…023ca0             64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09   ┆dule :  %M% -- Version:  %I% -- ┆
0x023ca0…023cc0             44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆Date   :  %E%  %U% -------------┆
0x023cc0…023ce0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x023ce0…023d00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 7d 0a 0a 0c 0a 0a 55 73 65   ┆---------------------- }     Use┆
0x023d00…023d20             73 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49 42 55 4e 49 54 2c 20 50 6f 6c 79 66 69 6c   ┆s DOS, Cbreak, PLIBUNIT, Polyfil┆
0x023d20…023d40             65 20 3b 0a 0a 28 2a 24 4d 20 34 30 39 36 2c 38 31 39 32 30 2c 38 36 33 38 34 20 20 73 74 61 63   ┆e ;  (*$M 4096,81920,86384  stac┆
0x023d40…023d60             6b 20 61 6e 64 20 68 65 61 70 20 20 2a 29 0a 28 2a 24 52 2b 2c 53 2b 09 09 72 61 6e 67 65 20 63   ┆k and heap  *) (*$R+,S+  range c┆
0x023d60…023d80             68 65 63 6b 20 20 2a 29 0a 28 2a 24 49 2d 20 20 2a 29 0a 0a 43 6f 6e 73 74 0a 01 44 20 33 0a 20   ┆heck  *) (*$I-  *)  Const  D 3  ┆
0x023d80…023da0             20 20 76 65 72 73 69 6f 6e 09 3d 20 20 27 20 76 65 72 73 69 6f 6e 20 31 2e 33 2c 20 20 20 31 39   ┆  version =  ' version 1.3,   19┆
0x023da0…023dc0             39 32 2e 30 36 2e 30 32 20 20 20 27 20 3b 0a 01 45 20 33 0a 01 49 20 33 0a 20 20 20 73 63 63 73   ┆92.06.02   ' ;  E 3  I 3    sccs┆
0x023dc0…023de0             5f 64 61 74 65 20 20 20 20 3d 20 20 27 25 45 25 27 3b 0a 01 45 20 33 0a 20 20 20 64 65 66 5f 65   ┆_date    =  '%E%';  E 3    def_e┆
0x023de0…023e00             78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 50 32 32 27 20 3b 0a 20 20 20 63 6f 6d 70 5f 65 78 74 65   ┆xtension=  '.P22' ;    comp_exte┆
0x023e00…023e20 (9, 1, 3)   6e 73 69 6f 6e 3d 20 20 27 2e 54 32 32 27 20 3b 0a 0a 20 20 20 64 65 62 75 67 09 3d 20 20 66 61   ┆nsion=  '.T22' ;     debug =  fa┆
0x023e20…023e40             6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 20 2a 29 0a 20 20   ┆lse; (*  for debug output  *)   ┆
0x023e40…023e60             20 64 65 62 75 67 31 09 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20   ┆ debug1 =  false; (*  for debug ┆
0x023e60…023e80             6f 75 74 70 75 74 20 6f 66 20 6b 65 79 73 20 2a 29 0a 20 20 20 64 65 62 75 67 32 09 3d 20 20 66   ┆output of keys *)    debug2 =  f┆
0x023e80…023ea0             61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 6f 66 20 6d 6f   ┆alse; (*  for debug output of mo┆
0x023ea0…023ec0             64 75 6c 65 20 6e 61 6d 65 73 20 2a 29 0a 20 20 20 64 65 62 75 67 33 09 3d 20 20 66 61 6c 73 65   ┆dule names *)    debug3 =  false┆
0x023ec0…023ee0             3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 69 6e 20 73 63 61 6e 20 63   ┆; (*  for debug output in scan c┆
0x023ee0…023f00             6f 70 79 20 20 2a 29 0a 20 20 20 64 65 62 75 67 34 09 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20   ┆opy  *)    debug4 =  false; (*  ┆
0x023f00…023f20             66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 6f 66 20 6d 6f 64 75 6c 65 20 72 65 63 6f 72   ┆for debug output of module recor┆
0x023f20…023f40             64 73 20 2a 29 0a 0a 20 20 20 64 61 74 65 5f 6d 6f 64 65 09 3d 20 20 27 64 61 74 65 27 3b 0a 20   ┆ds *)     date_mode =  'date';  ┆
0x023f40…023f60             20 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 3d 20 33 30 3b 20 20 20 20 20 20 20 20 20 20 20   ┆  max_obj_params= 30;           ┆
0x023f60…023f80             28 2a 20 20 73 61 6d 65 20 6c 69 6d 69 74 20 61 73 20 70 61 73 73 20 35 20 20 2a 29 0a 20 20 20   ┆(*  same limit as pass 5  *)    ┆
0x023f80…023fa0             63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 20 31 30 3b   ┆compiler_c_version_number =  10;┆
0x023fa0…023fc0             0a 20 20 20 73 6b 69 70 6d 6f 64 65 20 20 20 20 20 3d 20 20 30 3b 0a 20 20 20 63 6f 70 79 6d 6f   ┆    skipmode     =  0;    copymo┆
0x023fc0…023fe0             64 65 20 20 20 20 20 3d 20 20 31 3b 0a 0a 54 79 70 65 0a 0a 70 61 72 61 6d 5f 64 65 73 63 72 20   ┆de     =  1;  Type  param_descr ┆
0x023fe0…024000             3d 0a 20 20 72 65 63 6f 72 64 0a 20 20 70 61 72 61 6d 63 6f 75 6e 74 20 3a 20 77 6f 72 64 3b 0a   ┆=   record   paramcount : word; ┆
0x024000…024020 (9, 1, 4)   20 20 70 61 72 61 6d 20 20 20 20 20 20 20 20 3a 20 61 72 72 61 79 20 5b 20 31 20 2e 2e 20 6d 61   ┆  param        : array [ 1 .. ma┆
0x024020…024040             78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 5d 20 6f 66 0a 20 20 20 20 72 65 63 6f 72 64 0a 20 20 20   ┆x_obj_params ] of     record    ┆
0x024040…024060             20 70 61 72 61 6d 5f 74 79 70 65 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 70 61 72 61 6d 5f 73 69   ┆ param_type : word;     param_si┆
0x024060…024080             7a 65 20 3a 20 77 6f 72 64 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 20 20 20 6d 6f 64   ┆ze : word     end   end;     mod┆
0x024080…0240a0             75 6c 65 5f 72 65 63 20 20 3d 20 20 72 65 63 6f 72 64 0a 20 20 20 20 20 72 65 63 73 74 61 74 20   ┆ule_rec  =  record      recstat ┆
0x0240a0…0240c0             3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 20 70 61 74 68 20 20 20 20 3a 20 20 70 61 74 68 73 74 72   ┆:  word;      path    :  pathstr┆
0x0240c0…0240e0             3b 09 28 2a 20 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 20 20 20 2a 29 0a 20 20 20 20 20 64 65 73   ┆; (*  object file    *)      des┆
0x0240e0…024100             70 6f 73 20 20 3a 20 20 6c 6f 6e 67 69 6e 74 3b 09 28 2a 20 20 66 69 6c 65 20 70 6f 73 69 74 69   ┆pos  :  longint; (*  file positi┆
0x024100…024120             6f 6e 20 20 2a 29 0a 20 20 20 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 3a 20 63 6f 64 65 64 5f   ┆on  *)     compile_date : coded_┆
0x024120…024140             64 61 74 65 3b 0a 20 20 20 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 3a 20 63 6f 64 65 64 5f 74   ┆date;     compile_time : coded_t┆
0x024140…024160             69 6d 65 3b 0a 20 20 20 20 70 61 72 61 6d 6c 69 73 74 20 20 20 20 3a 20 70 61 72 61 6d 5f 64 65   ┆ime;     paramlist    : param_de┆
0x024160…024180             73 63 72 3b 0a 20 20 20 20 20 65 6e 64 3b 0a 0a 43 6f 6e 73 74 20 20 20 28 2a 20 20 69 6e 69 74   ┆scr;      end;  Const   (*  init┆
0x024180…0241a0             69 61 6c 69 7a 65 64 20 76 61 72 20 20 2a 29 0a 20 20 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64   ┆ialized var  *)    source_opened┆
0x0241a0…0241c0             3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 64 65 73 74 5f 6f 70 65   ┆:  boolean =  false;    dest_ope┆
0x0241c0…0241e0             6e 65 64 20 20 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 64 61 74   ┆ned  :  boolean =  false;    dat┆
0x0241e0…024200             61 62 61 73 65 5f 6f 70 65 6e 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20   ┆abase_open:  boolean =  false;  ┆
0x024200…024220 (9, 1, 5)   20 20 64 61 74 5f 6e 61 6d 65 09 3a 20 20 70 61 74 68 73 74 72 09 3d 20 20 27 50 4c 49 4a 57 52   ┆  dat_name :  pathstr =  'PLIJWR┆
0x024220…024240             4b 2e 44 41 54 27 3b 0a 20 20 20 69 6e 78 5f 6e 61 6d 65 09 3a 20 20 70 61 74 68 73 74 72 09 3d   ┆K.DAT';    inx_name :  pathstr =┆
0x024240…024260             20 20 27 50 4c 49 4a 57 52 4b 2e 49 4e 58 27 3b 0a 20 20 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72   ┆  'PLIJWRK.INX';    compiler_ver┆
0x024260…024280             73 69 6f 6e 20 3a 20 77 6f 72 64 20 20 20 20 20 20 3d 20 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76   ┆sion : word      =  compiler_c_v┆
0x024280…0242a0             65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 3b 0a 0a 56 61 72 0a 20 20 20 73 6f 75 72 63 65 5f 6e 61   ┆ersion_number;  Var    source_na┆
0x0242a0…0242c0             6d 65 09 2c 09 09 09 28 2a 20 20 70 61 74 68 20 6f 66 20 6e 65 77 20 6f 62 6a 65 63 74 20 66 69   ┆me ,   (*  path of new object fi┆
0x0242c0…0242e0             6c 65 09 2a 29 0a 20 20 20 6e 65 77 6c 69 62 5f 6e 61 6d 65 09 3a 20 20 70 61 74 68 73 74 72 3b   ┆le *)    newlib_name :  pathstr;┆
0x0242e0…024300             09 09 28 2a 20 20 70 61 74 68 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 09 2a   ┆  (*  path of destination file *┆
0x024300…024320             29 0a 20 20 20 73 6f 75 72 63 65 09 2c 09 09 09 28 2a 20 20 6c 69 62 72 61 72 79 20 66 69 6c 65   ┆)    source ,   (*  library file┆
0x024320…024340             09 09 2a 29 0a 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 09 3a 20 20 66 69 6c 65 3b 09 09 28 2a   ┆  *)    destination :  file;  (*┆
0x024340…024360             20 20 6c 69 62 72 61 72 79 20 66 69 6c 65 09 09 2a 29 0a 0a 20 20 20 77 61 6e 74 65 64 5f 69 74   ┆  library file  *)     wanted_it┆
0x024360…024380             65 6d 73 20 3a 20 20 77 6f 72 64 3b 0a 0a 20 20 20 74 63 20 20 20 20 20 20 20 20 20 20 20 3a 20   ┆ems :  word;     tc           : ┆
0x024380…0243a0             20 63 68 61 72 3b 0a 20 20 20 65 78 69 74 73 61 76 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 20   ┆ char;    exitsave :  pointer;  ┆
0x0243a0…0243c0             20 20 0a 20 20 20 73 65 65 6e 20 20 20 20 20 20 20 20 20 2c 0a 20 20 20 6d 6f 64 75 6c 65 09 3a   ┆      seen         ,    module :┆
0x0243c0…0243e0             20 20 6d 6f 64 75 6c 65 5f 72 65 63 3b 0a 0a 20 20 20 64 61 74 66 09 09 3a 20 20 64 61 74 61 66   ┆  module_rec;     datf  :  dataf┆
0x0243e0…024400             69 6c 65 3b 0a 20 20 20 69 6e 78 66 09 09 3a 20 20 69 6e 64 65 78 66 69 6c 65 3b 0a 0a 28 2a 2d   ┆ile;    inxf  :  indexfile;  (*-┆
0x024400…024420 (9, 1, 6)   2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x024440…024460             2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 65 72 72 6f 72 20 28 20   ┆--------*)    Procedure error ( ┆
0x024460…024480             65 72 72 6f 72 6c 65 76 65 6c 3a 20 77 6f 72 64 3b 20 73 74 72 3a 20 73 74 72 69 6e 67 29 3b 0a   ┆errorlevel: word; str: string); ┆
0x024480…0244a0             20 20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 20   ┆  begin   writeln ( output, str ┆
0x0244a0…0244c0             29 3b 0a 20 20 68 61 6c 74 20 28 20 65 72 72 6f 72 6c 65 76 65 6c 29 3b 0a 20 20 65 6e 64 3b 0a   ┆);   halt ( errorlevel);   end; ┆
0x0244c0…0244e0             0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 5f 70 61 72 61 6d 73 20 28 20 76 61 72 20 66 3a 20   ┆   Procedure in_params ( var f: ┆
0x0244e0…024500             66 69 6c 65 3b 20 63 6f 75 6e 74 3a 20 77 6f 72 64 3b 20 76 61 72 20 70 6c 69 73 74 3a 20 70 61   ┆file; count: word; var plist: pa┆
0x024500…024520             72 61 6d 5f 64 65 73 63 72 3b 20 76 61 72 20 6e 61 6d 65 3a 20 61 6c 66 61 29 3b 0a 28 2a 20 72   ┆ram_descr; var name: alfa); (* r┆
0x024520…024540             65 61 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 20 69 73   ┆ead parameters,  no_of_params is┆
0x024540…024560             20 73 65 74 20 74 6f 20 63 6f 75 6e 74 20 20 2a 29 0a 20 20 76 61 72 20 20 70 3a 20 77 6f 72 64   ┆ set to count  *)   var  p: word┆
0x024560…024580             3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 69 6c 6c 63 68 61 72 20 28 20 70 6c 69 73 74 2c 20 73 69   ┆;   begin   fillchar ( plist, si┆
0x024580…0245a0             7a 65 6f 66 20 28 20 70 6c 69 73 74 29 2c 20 30 29 3b 0a 20 20 77 69 74 68 20 70 6c 69 73 74 20   ┆zeof ( plist), 0);   with plist ┆
0x0245a0…0245c0             64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 63 6f 75 6e 74 20 3e 20 6d 61 78 5f   ┆do     begin     if count > max_┆
0x0245c0…0245e0             6f 62 6a 5f 70 61 72 61 6d 73 20 74 68 65 6e 0a 20 20 20 20 20 20 65 72 72 6f 72 20 28 20 32 2c   ┆obj_params then       error ( 2,┆
0x0245e0…024600             20 27 74 6f 6f 20 6d 61 6e 79 20 70 61 72 61 6d 65 74 65 72 73 20 28 27 20 2b 20 73 74 72 69 6e   ┆ 'too many parameters (' + strin┆
0x024600…024620 (9, 1, 7)   74 28 63 6f 75 6e 74 29 20 2b 0a 20 20 20 20 20 20 20 20 27 20 69 6e 20 27 2b 20 73 74 72 61 6c   ┆t(count) +         ' in '+ stral┆
0x024620…024640             66 61 20 28 20 6e 61 6d 65 29 20 29 3b 0a 20 20 20 20 70 61 72 61 6d 63 6f 75 6e 74 3a 3d 20 63   ┆fa ( name) );     paramcount:= c┆
0x024640…024660             6f 75 6e 74 3b 0a 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 63 6f 75 6e 74 20 64 6f   ┆ount;     for p := 1 to count do┆
0x024660…024680             0a 20 20 20 20 20 77 69 74 68 20 70 61 72 61 6d 5b 70 5d 20 64 6f 0a 20 20 20 20 20 20 62 65 67   ┆      with param[p] do       beg┆
0x024680…0246a0             69 6e 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 70 61 72 61 6d 5f   ┆in       readinteger ( f, param_┆
0x0246a0…0246c0             74 79 70 65 29 3b 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 70 61   ┆type);       readinteger ( f, pa┆
0x0246c0…0246e0             72 61 6d 5f 73 69 7a 65 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20   ┆ram_size);       end;     end;  ┆
0x0246e0…024700             20 65 6e 64 3b 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74   ┆ end;   Function equal_paramlist┆
0x024700…024720             73 20 28 20 76 61 72 20 61 2c 20 62 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 29 3a 20 62 6f 6f 6c   ┆s ( var a, b: param_descr): bool┆
0x024720…024740             65 61 6e 3b 0a 20 20 76 61 72 0a 20 20 20 20 70 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 62 65 67   ┆ean;   var     p: integer;   beg┆
0x024740…024760             69 6e 0a 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 74 72 75 65 3b 20 20   ┆in   equal_paramlists := true;  ┆
0x024760…024780             28 2a 20 61 73 73 75 6d 65 20 65 76 65 72 79 74 68 69 6e 67 20 6f 6b 20 2a 29 0a 20 20 77 69 74   ┆(* assume everything ok *)   wit┆
0x024780…0247a0             68 20 61 20 64 6f 0a 20 20 20 20 69 66 20 70 61 72 61 6d 63 6f 75 6e 74 20 3c 3e 20 62 2e 70 61   ┆h a do     if paramcount <> b.pa┆
0x0247a0…0247c0             72 61 6d 63 6f 75 6e 74 20 74 68 65 6e 0a 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c   ┆ramcount then       equal_paraml┆
0x0247c0…0247e0             69 73 74 73 20 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 66 6f 72   ┆ists := false     else       for┆
0x0247e0…024800             20 70 20 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 20 20   ┆ p := 1 to paramcount do        ┆
0x024800…024820 (9, 1, 8)   20 77 69 74 68 20 70 61 72 61 6d 5b 70 5d 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 28   ┆ with param[p] do           if (┆
0x024820…024840             20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f   ┆ param_type <> b.param[p].param_┆
0x024840…024860             74 79 70 65 20 29 0a 20 20 20 20 20 20 20 20 20 20 6f 72 20 28 20 70 61 72 61 6d 5f 73 69 7a 65   ┆type )           or ( param_size┆
0x024860…024880             20 3c 3e 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 20 29 0a 20 20 20 20   ┆ <> b.param[p].param_size )     ┆
0x024880…0248a0             20 20 20 20 20 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72   ┆      then             equal_par┆
0x0248a0…0248c0             61 6d 6c 69 73 74 73 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 65 6e 64 3b 0a 0a 0c 0a 0a 0a 50 72   ┆amlists := false;   end;      Pr┆
0x0248c0…0248e0             6f 63 65 64 75 72 65 20 67 65 74 5f 64 61 74 65 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 0a   ┆ocedure get_date ( var f: file; ┆
0x0248e0…024900             20 20 76 61 72 20 64 61 74 65 3a 20 63 6f 64 65 64 5f 64 61 74 65 3b 20 76 61 72 20 74 69 6d 65   ┆  var date: coded_date; var time┆
0x024900…024920             3a 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 01 44 20 34 0a 20 20 76 61 72 20 6e 61 6d 65 3a 20 61   ┆: coded_time;  D 4   var name: a┆
0x024920…024940             6c 66 61 29 3b 0a 01 45 20 34 0a 01 49 20 34 0a 20 20 76 61 72 20 6e 61 6d 65 3a 20 61 6c 66 61   ┆lfa);  E 4  I 4   var name: alfa┆
0x024940…024960             3b 20 6b 69 6e 64 3a 20 77 6f 72 64 29 3b 0a 01 45 20 34 0a 20 20 76 61 72 0a 20 20 20 20 20 66   ┆; kind: word);  E 4   var      f┆
0x024960…024980             70 6f 73 20 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 66 70 6f 73 3a   ┆pos : longint;    begin    fpos:┆
0x024980…0249a0             3d 20 66 69 6c 65 70 6f 73 20 28 20 66 29 3b 0a 20 20 20 69 6f 63 68 65 63 6b 20 28 20 66 29 3b   ┆= filepos ( f);    iocheck ( f);┆
0x0249a0…0249c0             0a 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 64 61 74 65 29 3b 0a 20 20 20 72   ┆    readinteger ( f, date);    r┆
0x0249c0…0249e0             65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 74 69 6d 65 29 3b 0a 01 49 20 34 0a 20 20 20 09   ┆eadinteger ( f, time);  I 4     ┆
0x0249e0…024a00             09 28 2a 20 20 64 61 74 61 20 6d 6f 64 75 6c 65 73 20 28 20 6b 69 6e 64 20 36 20 29 20 68 61 76   ┆ (*  data modules ( kind 6 ) hav┆
0x024a00…024a20 (9, 1, 9)   65 20 6e 6f 20 63 6f 6d 70 69 6c 65 72 20 76 65 72 73 69 6f 6e 20 2a 29 0a 20 20 20 69 66 20 6b   ┆e no compiler version *)    if k┆
0x024a20…024a40             69 6e 64 20 3c 3e 20 64 61 74 61 6b 69 6e 64 20 74 68 65 6e 0a 01 45 20 34 0a 20 20 20 69 66 20   ┆ind <> datakind then  E 4    if ┆
0x024a40…024a60             74 69 6d 65 20 73 68 72 20 31 31 20 3c 3e 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20   ┆time shr 11 <> compiler_version ┆
0x024a60…024a80             74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆then      begin      writeln ( o┆
0x024a80…024aa0             75 74 70 75 74 2c 20 27 21 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 20 24 27 2c 20 73 74 72 68   ┆utput, '! compile time  $', strh┆
0x024aa0…024ac0             65 78 20 28 20 74 69 6d 65 29 2c 0a 09 27 20 20 20 27 2c 20 73 74 72 64 61 74 65 20 28 20 64 61   ┆ex ( time),  '   ', strdate ( da┆
0x024ac0…024ae0             74 65 29 2c 20 27 27 3a 32 2c 20 73 74 72 74 69 6d 65 20 28 20 74 69 6d 65 29 29 3b 0a 20 20 20   ┆te), '':2, strtime ( time));    ┆
0x024ae0…024b00             20 20 65 72 72 6f 72 20 28 20 32 2c 20 27 2a 2a 2a 20 77 72 6f 6e 67 20 63 6f 6d 70 69 6c 65 72   ┆  error ( 2, '*** wrong compiler┆
0x024b00…024b20             20 76 65 72 73 69 6f 6e 20 27 20 2b 20 73 74 72 69 6e 74 20 28 20 74 69 6d 65 20 73 68 72 20 31   ┆ version ' + strint ( time shr 1┆
0x024b20…024b40             31 29 20 2b 0a 20 20 20 20 20 20 27 20 69 6e 20 27 20 2b 20 73 74 72 61 6c 66 61 20 28 20 6e 61   ┆1) +       ' in ' + stralfa ( na┆
0x024b40…024b60             6d 65 29 20 29 3b 0a 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 73 65 65 6b 20 28 20 66 2c 20 66 70   ┆me) );      end;    seek ( f, fp┆
0x024b60…024b80             6f 73 29 3b 09 28 2a 20 20 62 61 63 6b 20 61 67 61 69 6e 20 20 2a 29 0a 20 20 20 65 6e 64 3b 0a   ┆os); (*  back again  *)    end; ┆
0x024b80…024ba0             0a 0a 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 73 65 61 72 63 68 20 28 20 76 61 72 20 69 74 65   ┆      Procedure search ( var ite┆
0x024ba0…024bc0             6d 3a 20 6d 6f 64 75 6c 65 5f 72 65 63 3b 20 76 61 72 20 72 65 63 6e 6f 3a 20 77 6f 72 64 3b 0a   ┆m: module_rec; var recno: word; ┆
0x024bc0…024be0             20 20 20 20 76 61 72 20 6b 65 79 3a 20 61 6c 66 61 73 74 72 3b 20 76 61 72 20 70 61 72 61 6d 73   ┆    var key: alfastr; var params┆
0x024be0…024c00             3a 20 70 61 72 61 6d 5f 64 65 73 63 72 29 3b 0a 20 28 2a 20 20 73 65 61 72 63 68 20 66 6f 72 20   ┆: param_descr);  (*  search for ┆
0x024c00…024c20 (9, 1, 10)  61 6e 20 69 74 65 6d 20 77 69 74 68 20 20 69 64 20 3d 20 6b 65 79 20 61 6e 64 20 70 61 72 61 6d   ┆an item with  id = key and param┆
0x024c20…024c40             6c 69 73 74 20 3d 20 70 61 72 61 6d 73 0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20 73 75 63 63 65   ┆list = params  --  returns succe┆
0x024c40…024c60             73 73 20 3d 20 66 61 6c 73 65 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 0a 20 2d 2d 20 20 72 65 74   ┆ss = false if not found  --  ret┆
0x024c60…024c80             75 72 6e 73 20 73 75 63 63 65 73 73 20 3d 20 74 72 75 65 20 61 6e 64 20 74 68 65 20 69 74 65 6d   ┆urns success = true and the item┆
0x024c80…024ca0             2c 20 69 66 20 66 6f 75 6e 64 0a 20 2d 2d 20 20 67 6c 6f 62 61 6c 73 3a 20 69 6e 78 66 2c 20 64   ┆, if found  --  globals: inxf, d┆
0x024ca0…024cc0             61 74 66 0a 20 2a 29 0a 20 20 20 76 61 72 20 20 6e 5f 6b 65 79 20 3a 20 61 6c 66 61 73 74 72 3b   ┆atf  *)    var  n_key : alfastr;┆
0x024cc0…024ce0             0a 20 20 20 62 65 67 69 6e 0a 20 20 20 72 65 63 6e 6f 3a 3d 20 30 3b 0a 20 20 20 6e 5f 6b 65 79   ┆    begin    recno:= 0;    n_key┆
0x024ce0…024d00             3a 3d 20 6b 65 79 3b 0a 20 20 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 20 20 77 72 69 74 65   ┆:= key;    if debug1 then  write┆
0x024d00…024d20             6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 73 2e 66 69 6e 64 6b 65 79 20 3a 20 27 2c 20 6e 5f 6b   ┆ln ( output, 's.findkey : ', n_k┆
0x024d20…024d40             65 79 2c 20 27 2c 27 29 3b 0a 20 20 20 66 69 6e 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 72 65 63   ┆ey, ',');    findkey ( inxf, rec┆
0x024d40…024d60             6e 6f 2c 20 6e 5f 6b 65 79 29 3b 0a 0a 20 20 7b 2d 2d 2d 2d 2d 2d 0a 20 20 69 6e 63 20 28 20 6c   ┆no, n_key);    {------   inc ( l┆
0x024d60…024d80             6f 67 6e 6f 29 3b 0a 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74   ┆ogno);   if debug7 then     writ┆
0x024d80…024da0             65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 46 69 6e 64 6b 65 79   ┆eln ( log, '#', logno, '$Findkey┆
0x024da0…024dc0             20 26 27 2c 20 72 65 63 6e 6f 2c 20 27 40 27 2c 20 6e 5f 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c   ┆ &', recno, '@', n_key, '"  ->',┆
0x024dc0…024de0             20 73 75 63 63 65 73 73 29 3b 0a 20 20 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 20 69 66 20 73 75 63 63   ┆ success);   ------}     if succ┆
0x024de0…024e00             65 73 73 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 77 68 69 6c 65 20 28   ┆ess then      begin      while (┆
0x024e00…024e20 (9, 1, 11)  20 6e 5f 6b 65 79 20 3d 20 6b 65 79 29 20 61 6e 64 20 73 75 63 63 65 73 73 20 64 6f 0a 20 20 20   ┆ n_key = key) and success do    ┆
0x024e20…024e40             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 67 65 74 72 65 63 20 28 20 64 61 74 66 2c 20   ┆    begin        getrec ( datf, ┆
0x024e40…024e60             72 65 63 6e 6f 2c 20 69 74 65 6d 29 3b 0a 20 20 20 20 20 20 20 69 66 20 65 71 75 61 6c 5f 70 61   ┆recno, item);        if equal_pa┆
0x024e60…024e80             72 61 6d 6c 69 73 74 73 20 28 20 69 74 65 6d 2e 70 61 72 61 6d 6c 69 73 74 2c 20 70 61 72 61 6d   ┆ramlists ( item.paramlist, param┆
0x024e80…024ea0             73 29 20 74 68 65 6e 20 65 78 69 74 3b 0a 20 20 20 20 20 20 20 6e 65 78 74 6b 65 79 20 28 20 69   ┆s) then exit;        nextkey ( i┆
0x024ea0…024ec0             6e 78 66 2c 20 72 65 63 6e 6f 2c 20 6e 5f 6b 65 79 29 3b 0a 20 20 20 7b 2d 2d 2d 2d 2d 2d 0a 20   ┆nxf, recno, n_key);    {------  ┆
0x024ec0…024ee0             20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 37 20 74   ┆   inc ( logno);     if debug7 t┆
0x024ee0…024f00             68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e   ┆hen     writeln ( log, '#', logn┆
0x024f00…024f20             6f 2c 20 27 24 4e 65 78 74 6b 65 79 20 26 27 2c 20 72 65 63 6e 6f 2c 20 27 40 27 2c 20 6e 5f 6b   ┆o, '$Nextkey &', recno, '@', n_k┆
0x024f20…024f40             65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 20 20 20 20 2d 2d 2d 2d 2d   ┆ey, '"  ->', success);     -----┆
0x024f40…024f60             2d 7d 0a 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 68 69 6c 65 20 20 2a 29 0a 0a 20   ┆-}        end;  (*  while  *)   ┆
0x024f60…024f80             20 20 20 20 73 75 63 63 65 73 73 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 65 6e 64 20 20 28 2a   ┆    success:= false      end  (*┆
0x024f80…024fa0             20 20 6b 65 79 20 66 6f 75 6e 64 20 20 2a 29 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 73 65   ┆  key found  *)     end;  (*  se┆
0x024fa0…024fc0             61 72 63 68 20 20 2a 29 0a 0a 0a 0a 0c 0a 0a 20 50 72 6f 63 65 64 75 72 65 20 72 65 61 64 5f 70   ┆arch  *)        Procedure read_p┆
0x024fc0…024fe0             61 72 61 6d 73 20 28 20 76 61 72 20 73 6f 75 72 63 65 6e 61 6d 65 2c 20 6e 65 77 6c 69 62 6e 61   ┆arams ( var sourcename, newlibna┆
0x024fe0…025000             6d 65 3a 20 70 61 74 68 73 74 72 3b 0a 09 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 63 6f 6d   ┆me: pathstr;  def_extension, com┆
0x025000…025020 (9, 1, 12)  70 5f 65 78 74 65 6e 73 69 6f 6e 3a 20 65 78 74 73 74 72 3b 20 20 64 61 74 61 5f 72 65 63 5f 73   ┆p_extension: extstr;  data_rec_s┆
0x025020…025040             69 7a 65 3a 20 77 6f 72 64 3b 0a 09 76 61 72 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 20 62   ┆ize: word;  var database_open: b┆
0x025040…025060             6f 6f 6c 65 61 6e 3b 0a 09 76 61 72 20 64 61 74 5f 6e 61 6d 65 2c 20 69 6e 78 5f 6e 61 6d 65 3a   ┆oolean;  var dat_name, inx_name:┆
0x025060…025080             20 70 61 74 68 73 74 72 3b 0a 09 76 61 72 20 64 61 74 66 20 3a 20 64 61 74 61 66 69 6c 65 3b 20   ┆ pathstr;  var datf : datafile; ┆
0x025080…0250a0             76 61 72 20 69 6e 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 29 3b 0a 20 28 2a 20 20 72 65 61 64 20   ┆var inxf: indexfile);  (*  read ┆
0x0250a0…0250c0             6c 69 73 74 20 6f 66 20 70 61 72 61 6d 65 74 65 72 73 0a 20 2d 2d 20 20 61 6e 64 20 63 68 65 63   ┆list of parameters  --  and chec┆
0x0250c0…0250e0             6b 20 74 68 61 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 65 78 69 73 74 0a 20 2d 2d 20 20 72   ┆k that source files exist  --  r┆
0x0250e0…025100             65 74 75 72 6e 73 20 6f 72 20 68 61 6c 74 73 20 74 68 65 20 70 72 6f 67 72 61 6d 0a 20 2d 2d 20   ┆eturns or halts the program  -- ┆
0x025100…025120             20 47 6c 6f 62 61 6c 73 3a 20 20 73 6f 75 72 63 65 2c 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64   ┆ Globals:  source, source_opened┆
0x025120…025140             0a 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 70 61 67 65 73 2c 20 77 6f 72 6b 09 3a 20 20 6c   ┆  *)   var      pages, work :  l┆
0x025140…025160             6f 6e 67 69 6e 74 3b 0a 20 20 20 20 20 70 6e 6f 2c 20 6e 75 6d 2c 0a 20 20 20 20 20 6e 6f 5f 6f   ┆ongint;      pno, num,      no_o┆
0x025160…025180             66 5f 65 78 74 65 72 6e 61 6c 73 2c 0a 20 20 20 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 2c 0a   ┆f_externals,      no_of_params, ┆
0x025180…0251a0             20 20 20 20 20 6e 6f 5f 6f 66 5f 75 73 65 73 2c 0a 20 20 20 20 20 70 2c 20 64 72 6e 2c 20 73 65   ┆     no_of_uses,      p, drn, se┆
0x0251a0…0251c0             65 6e 6e 6f 20 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 20 70 61 72 61 6d 09 3a 20 20 70 61 74 68   ┆enno :  word;      param :  path┆
0x0251c0…0251e0             73 74 72 3b 0a 20 20 20 20 20 64 69 72 09 3a 20 20 64 69 72 73 74 72 3b 0a 20 20 20 20 20 6e 61   ┆str;      dir :  dirstr;      na┆
0x0251e0…025200             6d 65 09 3a 20 20 6e 61 6d 65 73 74 72 3b 0a 20 20 20 20 20 65 78 74 09 3a 20 20 65 78 74 73 74   ┆me :  namestr;      ext :  extst┆
0x025200…025220 (9, 1, 13)  72 3b 0a 20 20 20 20 20 6b 65 79 09 3a 20 20 61 6c 66 61 73 74 72 3b 0a 20 20 20 20 20 6e 65 77   ┆r;      key :  alfastr;      new┆
0x025220…025240             68 65 61 64 09 3a 20 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 3b 0a 20 20 20 20 20 6e   ┆head :  descriptor_part1;      n┆
0x025240…025260             65 77 70 61 72 61 6d 6c 69 73 74 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 3b 0a 0a 0a 20 20 70 72   ┆ewparamlist: param_descr;     pr┆
0x025260…025280             6f 63 65 64 75 72 65 20 73 6b 69 70 20 28 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 20 3a 20 6c 6f 6e   ┆ocedure skip ( no_of_bytes : lon┆
0x025280…0252a0             67 69 6e 74 29 3b 0a 0a 20 20 76 61 72 20 20 63 75 72 5f 70 6f 73 3a 20 6c 6f 6e 67 69 6e 74 3b   ┆gint);    var  cur_pos: longint;┆
0x0252a0…0252c0             0a 20 20 62 65 67 69 6e 0a 20 20 63 75 72 5f 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 73   ┆   begin   cur_pos:= filepos ( s┆
0x0252c0…0252e0             6f 75 72 63 65 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 3b 0a 0a 20 20   ┆ource);   iocheck ( source);    ┆
0x0252e0…025300             69 66 20 28 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 20 3e 20 66 69 6c 65 73 69 7a 65 20 28 20 73 6f   ┆if ( no_of_bytes > filesize ( so┆
0x025300…025320             75 72 63 65 29 20 2d 20 63 75 72 5f 70 6f 73 20 29 0a 20 20 6f 72 20 28 20 6e 6f 5f 6f 66 5f 62   ┆urce) - cur_pos )   or ( no_of_b┆
0x025320…025340             79 74 65 73 20 3c 20 2d 20 63 75 72 5f 70 6f 73 20 29 0a 20 20 20 20 74 68 65 6e 20 68 61 6c 74   ┆ytes < - cur_pos )     then halt┆
0x025340…025360             20 28 20 31 30 30 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 20   ┆ ( 100);   iocheck ( source);   ┆
0x025360…025380             73 65 65 6b 20 28 20 73 6f 75 72 63 65 2c 20 63 75 72 5f 70 6f 73 20 2b 20 6e 6f 5f 6f 66 5f 62   ┆seek ( source, cur_pos + no_of_b┆
0x025380…0253a0             79 74 65 73 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 0a 20 20 65 6e 64   ┆ytes);   iocheck ( source)   end┆
0x0253a0…0253c0             3b 20 28 2a 20 73 6b 69 70 20 2a 29 0a 0a 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 28 20 70 61   ┆; (* skip *)     begin   if ( pa┆
0x0253c0…0253e0             72 61 6d 63 6f 75 6e 74 20 3d 20 30 20 29 20 6f 72 20 28 20 70 61 72 61 6d 73 74 72 20 28 20 31   ┆ramcount = 0 ) or ( paramstr ( 1┆
0x0253e0…025400             29 20 3d 20 27 48 45 4c 50 27 20 29 0a 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 77 72   ┆) = 'HELP' )   then begin     wr┆
0x025400…025420 (9, 1, 14)  69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 48 65 6c 70 20 69 6e 66 6f 72 6d 61 74 69 6f   ┆iteln ( output, 'Help informatio┆
0x025420…025440             6e 20 66 6f 72 20 50 4c 49 42 4a 4f 49 4e 20 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20   ┆n for PLIBJOIN :');     writeln ┆
0x025440…025460             28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 27 54 68 65 20 70 72 6f 67 72 61 6d 20 63 6f 6d 62 69   ┆( output,     'The program combi┆
0x025460…025480             6e 65 73 20 66 69 6c 65 73 20 69 6e 74 6f 20 61 20 52 43 35 30 30 30 20 6f 62 6a 65 63 74 20 6c   ┆nes files into a RC5000 object l┆
0x025480…0254a0             69 62 72 61 72 79 2e 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆ibrary.');     writeln ( output,┆
0x0254a0…0254c0             0a 20 20 20 20 27 4d 6f 64 75 6c 65 20 6e 61 6d 65 20 28 20 31 32 20 63 68 61 72 61 63 74 65 72   ┆     'Module name ( 12 character┆
0x0254c0…0254e0             73 29 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 6c 69 73 74 20 61 72 65 20 75 73 65 64 20 66 6f   ┆s) and parameterlist are used fo┆
0x0254e0…025500             72 20 63 6f 6d 70 61 72 69 73 6f 6e 2e 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆r comparison.');     writeln ( o┆
0x025500…025520             75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 43   ┆utput);     writeln ( output, 'C┆
0x025520…025540             61 6c 6c 20 73 79 6e 74 61 78 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆all syntax:');     writeln ( out┆
0x025540…025560             70 75 74 2c 0a 20 20 20 20 20 20 27 50 4c 49 42 4a 4f 49 4e 20 20 20 20 20 20 20 3d 3c 6e 65 77   ┆put,       'PLIBJOIN       =<new┆
0x025560…025580             6c 69 62 3e 2d 3c 77 6f 72 6b 64 69 72 65 63 74 6f 72 79 3e 20 3c 6f 62 6a 65 63 74 6c 69 73 74   ┆lib>-<workdirectory> <objectlist┆
0x025580…0255a0             3e 20 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20   ┆> ');     writeln ( output,     ┆
0x0255a0…0255c0             20 20 27 50 4c 49 42 4a 4f 49 4e 20 2f 44 41 54 45 20 3d 3c 6e 65 77 6c 69 62 3e 2d 3c 77 6f 72   ┆  'PLIBJOIN /DATE =<newlib>-<wor┆
0x0255c0…0255e0             6b 64 69 72 65 63 74 6f 72 79 3e 20 3c 6f 62 6a 65 63 74 6c 69 73 74 3e 20 27 29 3b 0a 20 20 20   ┆kdirectory> <objectlist> ');    ┆
0x0255e0…025600             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20   ┆ writeln ( output,       '      ┆
0x025600…025620 (9, 1, 15)  20 20 20 2d 3c 77 6f 72 6b 64 69 72 65 63 74 6f 72 79 3e 20 20 20 20 69 73 20 6f 6e 6c 79 20 6e   ┆   -<workdirectory>    is only n┆
0x025620…025640             65 65 64 65 64 20 69 66 20 6e 6f 74 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 29   ┆eeded if not current directory')┆
0x025640…025660             3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20   ┆;     writeln ( output,       ' ┆
0x025660…025680             20 20 20 20 20 20 20 20 3c 6e 65 77 6c 69 62 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e   ┆        <newlib>               n┆
0x025680…0256a0             61 6d 65 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 6c 69 62 72 61 72 79 20 66 69 6c 65 27   ┆ame of destination library file'┆
0x0256a0…0256c0             29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27   ┆);     writeln ( output,       '┆
0x0256c0…0256e0             20 20 20 20 20 20 20 20 20 3c 6f 62 6a 65 63 74 6c 69 73 74 3e 20 20 20 20 20 20 20 20 20 20 20   ┆         <objectlist>           ┆
0x0256e0…025700             6c 69 73 74 20 6f 66 20 6e 61 6d 65 73 20 6f 66 20 66 69 6c 65 73 20 77 69 74 68 20 6f 62 6a 65   ┆list of names of files with obje┆
0x025700…025720             63 74 63 6f 64 65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a   ┆ctcode');     writeln ( output, ┆
0x025720…025740             20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 50 41 52 41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74   ┆      '         PARAMIN-<filepat┆
0x025740…025760             68 3e 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 66 69 6c 65 20 77 69 74 68 20 70 61 72 61 6d 65 74   ┆h>     name of file with paramet┆
0x025760…025780             65 72 73 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20   ┆ers');     writeln ( output,    ┆
0x025780…0257a0             20 20 20 27 20 20 20 20 20 20 20 20 20 53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72 70 61 74 68   ┆   '         SOURCEPATH-<dirpath┆
0x0257a0…0257c0             3e 20 20 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 20 66 6f 72 20 70 61 72 61 6d 65 74 65 72   ┆>   directory path for parameter┆
0x0257c0…0257e0             20 72 65 61 64 69 6e 67 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆ reading');     writeln ( output┆
0x0257e0…025800             2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 2f 44 41 54 45 20 20 20 20 20 20 20 20 20   ┆,       '         /DATE         ┆
0x025800…025820 (10, 0, 1)  20 20 20 20 20 20 20 20 20 6c 61 74 65 73 74 20 63 6f 6d 70 69 6c 65 64 20 6f 62 6a 65 63 74 20   ┆         latest compiled object ┆
0x025820…025840             69 73 20 75 73 65 64 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆is used');     writeln ( output,┆
0x025840…025860             0a 20 20 20 20 20 20 27 20 20 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆       '  ');     writeln ( outp┆
0x025860…025880             75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 66 61   ┆ut,       '                 Defa┆
0x025880…0258a0             75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 20 22 27 2c 20 64 65 66 5f 65 78 74 65 6e 73   ┆ult extension is  "', def_extens┆
0x0258a0…0258c0             69 6f 6e 2c 20 27 22 20 20 27 29 3b 0a 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆ion, '"  ');      writeln ( outp┆
0x0258c0…0258e0             75 74 2c 0a 20 20 20 20 20 20 27 20 20 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆ut,       '  ');     writeln ( o┆
0x0258e0…025900             75 74 70 75 74 29 3b 0a 0a 20 20 20 20 65 72 72 6f 72 20 28 20 31 2c 20 27 21 20 53 70 65 63 69   ┆utput);      error ( 1, '! Speci┆
0x025900…025920             66 79 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 0a 20 20 66 6f   ┆fy parameters');     end;     fo┆
0x025920…025940             72 20 70 6e 6f 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a   ┆r pno:= 1 to paramlist.items do ┆
0x025940…025960             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 70 61 72 61 6d 3a 3d 20 67 65 74 70 61 72 61 6d 20 28   ┆    begin     param:= getparam (┆
0x025960…025980             20 70 6e 6f 29 3b 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 6c 69 62 2d 27 2c 20 70 61 72 61   ┆ pno);     if pos ( 'lib-', para┆
0x025980…0259a0             6d 29 20 3d 20 31 20 74 68 65 6e 09 09 28 2a 20 20 20 20 4c 49 42 2d 3c 66 69 6c 65 3e 20 20 20   ┆m) = 1 then  (*    LIB-<file>   ┆
0x0259a0…0259c0             2a 29 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 65 72 72 6f 72 20 28 20 31 2c 20   ┆*)       begin       error ( 1, ┆
0x0259c0…0259e0             27 21 20 22 4c 49 42 2d 22 20 20 20 77 72 69 74 65 20 73 6f 75 72 63 65 20 66 69 6c 65 6e 61 6d   ┆'! "LIB-"   write source filenam┆
0x0259e0…025a00             65 73 20 77 69 74 68 6f 75 74 20 22 6c 69 62 2d 22 27 29 3b 0a 20 20 20 20 20 20 65 6e 64 0a 20   ┆es without "lib-"');       end  ┆
0x025a00…025a20 (10, 0, 2)  20 20 20 65 6e 64 3b 20 20 28 2a 20 20 66 6f 72 20 61 6c 6c 20 69 74 65 6d 73 20 20 2a 29 0a 0a   ┆   end;  (*  for all items  *)  ┆
0x025a20…025a40             0a 20 20 69 66 20 6c 65 66 74 73 69 64 65 20 3c 3e 20 27 27 20 74 68 65 6e 20 20 6e 65 77 6c 69   ┆   if leftside <> '' then  newli┆
0x025a40…025a60             62 6e 61 6d 65 3a 3d 20 6c 65 66 74 73 69 64 65 0a 20 20 65 6c 73 65 20 20 6e 65 77 6c 69 62 6e   ┆bname:= leftside   else  newlibn┆
0x025a60…025a80             61 6d 65 3a 3d 20 27 4e 45 57 4c 49 42 27 3b 0a 0a 20 20 66 73 70 6c 69 74 20 28 20 6e 65 77 6c   ┆ame:= 'NEWLIB';    fsplit ( newl┆
0x025a80…025aa0             69 62 6e 61 6d 65 2c 20 64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 69 66 20 65 78   ┆ibname, dir, name, ext);   if ex┆
0x025aa0…025ac0             74 20 3d 20 27 27 20 74 68 65 6e 20 20 6e 65 77 6c 69 62 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20   ┆t = '' then  newlibname:= dir + ┆
0x025ac0…025ae0             6e 61 6d 65 20 2b 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 0a 20 20 69 66 20 70 72 6f 67   ┆name + def_extension;    if prog┆
0x025ae0…025b00             72 61 6d 6e 61 6d 65 20 3c 3e 20 64 61 74 65 5f 6d 6f 64 65 20 74 68 65 6e 20 70 72 6f 67 72 61   ┆ramname <> date_mode then progra┆
0x025b00…025b20             6d 6e 61 6d 65 3a 3d 20 27 27 3b 0a 0a 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 20 20 62 65   ┆mname:= '';    if false then  be┆
0x025b20…025b40             67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 77 72 69 74 65   ┆gin   writeln ( output);   write┆
0x025b40…025b60             6c 6e 20 20 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 50 4c 49 42 4a 4f 49 4e 20 20 70   ┆ln   ( output, '--   PLIBJOIN  p┆
0x025b60…025b80             72 6f 67 72 61 6d 20 27 2c 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 27 3a 20 27 29 3b 0a 20 20   ┆rogram ', programname, ': ');   ┆
0x025b80…025ba0             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 6e 65 77 6c 69 62 20 66 69 6c 65 3a   ┆writeln ( output, ' newlib file:┆
0x025ba0…025bc0             20 27 2c 20 20 6e 65 77 6c 69 62 6e 61 6d 65 20 29 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 6d 61 6b   ┆ ',  newlibname );   end;    mak┆
0x025bc0…025be0             65 66 69 6c 65 20 20 28 20 64 61 74 66 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 64   ┆efile  ( datf, plibwork_name + d┆
0x025be0…025c00             61 74 5f 6e 61 6d 65 2c 20 64 61 74 61 5f 72 65 63 5f 73 69 7a 65 20 20 28 2a 20 73 69 7a 65 6f   ┆at_name, data_rec_size  (* sizeo┆
0x025c00…025c20 (10, 0, 3)  66 20 28 20 6d 6f 64 75 6c 65 5f 72 65 63 29 20 2a 29 20 29 3b 0a 20 20 6d 61 6b 65 69 6e 64 65   ┆f ( module_rec) *) );   makeinde┆
0x025c20…025c40             78 20 28 20 69 6e 78 66 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 69 6e 78 5f 6e 61   ┆x ( inxf, plibwork_name + inx_na┆
0x025c40…025c60             6d 65 2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 64 75 70 6c 69 63 61 74 65 5f 6b 65 79 73 29 3b   ┆me, alfalength, duplicate_keys);┆
0x025c60…025c80             0a 20 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 20 20 66 6f   ┆   database_open:= true;      fo┆
0x025c80…025ca0             72 20 70 6e 6f 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a   ┆r pno:= 1 to paramlist.items do ┆
0x025ca0…025cc0             20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 73 6f 75 72 63 65 5f 6e 61 6d 65 3a 3d 20   ┆      begin       source_name:= ┆
0x025cc0…025ce0             67 65 74 70 61 72 61 6d 20 28 20 70 6e 6f 29 3b 0a 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67   ┆getparam ( pno);        if debug┆
0x025ce0…025d00             20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 70 61 72 61 6d   ┆ then  writeln ( output, ' param┆
0x025d00…025d20             65 74 65 72 20 20 27 2c 20 70 6e 6f 2c 20 27 20 3a 20 27 2c 20 73 6f 75 72 63 65 5f 6e 61 6d 65   ┆eter  ', pno, ' : ', source_name┆
0x025d20…025d40             29 3b 0a 0a 20 20 20 20 20 20 66 73 70 6c 69 74 20 28 20 73 6f 75 72 63 65 5f 6e 61 6d 65 2c 20   ┆);        fsplit ( source_name, ┆
0x025d40…025d60             64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 20 20 20 20 69 66 20 65 78 74 20 3d 20   ┆dir, name, ext);       if ext = ┆
0x025d60…025d80             27 27 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 73 6f   ┆'' then         begin         so┆
0x025d80…025da0             75 72 63 65 5f 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 64 65 66 5f 65 78 74   ┆urce_name:= dir + name + def_ext┆
0x025da0…025dc0             65 6e 73 69 6f 6e 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 73 6f 75 72   ┆ension;         if lookup ( sour┆
0x025dc0…025de0             63 65 5f 6e 61 6d 65 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20   ┆ce_name) then  (*  ok  *)       ┆
0x025de0…025e00             20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20   ┆  else           begin          ┆
0x025e00…025e20 (10, 0, 4)  20 73 6f 75 72 63 65 5f 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 63 6f 6d 70   ┆ source_name:= dir + name + comp┆
0x025e20…025e40             5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20   ┆_extension;           if lookup ┆
0x025e40…025e60             28 20 73 6f 75 72 63 65 5f 6e 61 6d 65 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a   ┆( source_name) then  (*  ok  *) ┆
0x025e60…025e80             20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 73 6f 75 72 63 65 5f 6e 61 6d 65 3a 3d 20 64 69 72   ┆          else source_name:= dir┆
0x025e80…025ea0             20 2b 20 6e 61 6d 65 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65   ┆ + name;           end         e┆
0x025ea0…025ec0             6e 64 3b 0a 0a 20 20 20 20 20 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 73 6f 75 72 63 65 2c 20 73   ┆nd;        open_file ( source, s┆
0x025ec0…025ee0             6f 75 72 63 65 5f 6e 61 6d 65 2c 20 66 6d 5f 72 65 61 64 29 3b 0a 20 20 20 20 20 20 69 66 20 69   ┆ource_name, fm_read);       if i┆
0x025ee0…025f00             6f 73 74 61 74 20 3c 3e 20 30 20 74 68 65 6e 20 20 65 72 72 6f 72 20 28 20 32 2c 20 27 2a 2a 2a   ┆ostat <> 0 then  error ( 2, '***┆
0x025f00…025f20             20 46 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20 27 20 2b 20 73 6f 75 72 63 65   ┆ File does not exist: ' + source┆
0x025f20…025f40             5f 6e 61 6d 65 29 0a 20 20 20 20 20 20 65 6c 73 65 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20   ┆_name)       else  begin        ┆
0x025f40…025f60             20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64 3a 3d 20 74 72 75 65 3b 0a 09 72 65 70 65 61 74 0a 09   ┆ source_opened:= true;  repeat  ┆
0x025f60…025f80             20 20 77 69 74 68 20 6d 6f 64 75 6c 65 20 64 6f 20 20 62 65 67 69 6e 0a 09 20 20 20 20 72 65 63   ┆  with module do  begin      rec┆
0x025f80…025fa0             73 74 61 74 3a 3d 20 30 3b 0a 09 20 20 20 20 70 61 74 68 3a 3d 20 73 6f 75 72 63 65 5f 6e 61 6d   ┆stat:= 0;      path:= source_nam┆
0x025fa0…025fc0             65 3b 0a 09 20 20 20 20 64 65 73 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 73 6f 75 72 63   ┆e;      despos:= filepos ( sourc┆
0x025fc0…025fe0             65 29 3b 0a 09 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 0a 09 20 20 20 20   ┆e);      iocheck ( source)      ┆
0x025fe0…026000             65 6e 64 3b 0a 0a 09 20 20 72 65 61 64 68 65 61 64 20 28 20 73 6f 75 72 63 65 2c 20 6e 65 77 68   ┆end;     readhead ( source, newh┆
0x026000…026020 (10, 0, 5)  65 61 64 29 3b 0a 09 20 20 77 69 74 68 20 6e 65 77 68 65 61 64 20 64 6f 0a 09 20 20 20 69 66 20   ┆ead);    with newhead do     if ┆
0x026020…026040             64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72 6b 20 74   ┆descriptor_length <> stop_mark t┆
0x026040…026060             68 65 6e 0a 09 20 20 20 20 62 65 67 69 6e 0a 09 20 20 20 20 69 66 20 20 6b 69 6e 64 20 69 6e 20   ┆hen      begin      if  kind in ┆
0x026060…026080             28 2e 20 31 2e 2e 36 20 2e 29 20 20 74 68 65 6e 0a 09 20 20 20 20 20 20 62 65 67 69 6e 0a 09 20   ┆(. 1..6 .)  then        begin   ┆
0x026080…0260a0             20 20 20 20 20 6b 65 79 3a 3d 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 20 2b 20 27 20 20   ┆     key:= stralfa ( name) + '  ┆
0x0260a0…0260c0             20 20 20 20 20 20 20 20 20 20 27 3b 0a 09 20 20 20 20 20 20 69 6e 5f 70 61 72 61 6d 73 20 28 20   ┆          ';        in_params ( ┆
0x0260c0…0260e0             73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 2c 20 6e 65 77 70 61 72 61 6d 6c 69   ┆source, no_of_params, newparamli┆
0x0260e0…026100             73 74 2c 20 6e 61 6d 65 29 3b 0a 09 20 20 20 20 20 20 6d 6f 64 75 6c 65 2e 70 61 72 61 6d 6c 69   ┆st, name);        module.paramli┆
0x026100…026120             73 74 3a 3d 20 6e 65 77 70 61 72 61 6d 6c 69 73 74 3b 0a 01 44 20 34 0a 09 20 20 20 20 20 20 67   ┆st:= newparamlist;  D 4        g┆
0x026120…026140             65 74 5f 64 61 74 65 20 28 20 73 6f 75 72 63 65 2c 20 6d 6f 64 75 6c 65 2e 63 6f 6d 70 69 6c 65   ┆et_date ( source, module.compile┆
0x026140…026160             5f 64 61 74 65 2c 20 6d 6f 64 75 6c 65 2e 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 2c 20 6e 61 6d 65   ┆_date, module.compile_time, name┆
0x026160…026180             29 3b 0a 01 45 20 34 0a 01 49 20 34 0a 09 20 20 20 20 20 20 67 65 74 5f 64 61 74 65 20 28 0a 20   ┆);  E 4  I 4        get_date (  ┆
0x026180…0261a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2c 20 6d 6f 64 75 6c 65 2e 63   ┆                source, module.c┆
0x0261a0…0261c0             6f 6d 70 69 6c 65 5f 64 61 74 65 2c 20 6d 6f 64 75 6c 65 2e 63 6f 6d 70 69 6c 65 5f 74 69 6d 65   ┆ompile_date, module.compile_time┆
0x0261c0…0261e0             2c 20 6e 61 6d 65 2c 20 6b 69 6e 64 29 3b 0a 01 45 20 34 0a 09 20 20 20 20 20 20 73 65 61 72 63   ┆, name, kind);  E 4        searc┆
0x0261e0…026200             68 20 28 20 73 65 65 6e 2c 20 73 65 65 6e 6e 6f 2c 20 6b 65 79 2c 20 6e 65 77 70 61 72 61 6d 6c   ┆h ( seen, seenno, key, newparaml┆
0x026200…026220 (10, 0, 6)  69 73 74 29 3b 0a 09 20 20 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 09 20 20   ┆ist);        if success then    ┆
0x026220…026240             20 20 20 20 20 62 65 67 69 6e 0a 09 20 20 20 20 20 20 20 69 66 20 70 72 6f 67 72 61 6d 6e 61 6d   ┆     begin         if programnam┆
0x026240…026260             65 20 3d 20 64 61 74 65 5f 6d 6f 64 65 20 74 68 65 6e 0a 09 20 20 20 20 20 20 20 20 62 65 67 69   ┆e = date_mode then          begi┆
0x026260…026280             6e 20 20 20 28 2a 20 20 63 6f 6d 70 61 72 65 20 64 61 74 65 73 20 20 20 20 20 20 20 2a 29 0a 09   ┆n   (*  compare dates       *)  ┆
0x026280…0262a0             20 20 20 20 20 20 20 20 69 66 20 6d 6f 64 75 6c 65 2e 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 3c   ┆        if module.compile_date <┆
0x0262a0…0262c0             20 73 65 65 6e 2e 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 74 68 65 6e 20 73 75 63 63 65 73 73 3a   ┆ seen.compile_date then success:┆
0x0262c0…0262e0             3d 20 66 61 6c 73 65 0a 09 20 20 20 20 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20 20 20 69   ┆= false          else          i┆
0x0262e0…026300             66 20 20 28 20 6d 6f 64 75 6c 65 2e 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 3d 20 73 65 65 6e 2e   ┆f  ( module.compile_date = seen.┆
0x026300…026320             63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 29 0a 09 20 20 20 20 20 20 20 20 61 6e 64 20 28 20 6d 6f   ┆compile_date )          and ( mo┆
0x026320…026340             64 75 6c 65 2e 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 3c 20 73 65 65 6e 2e 63 6f 6d 70 69 6c 65   ┆dule.compile_time < seen.compile┆
0x026340…026360             5f 74 69 6d 65 20 29 20 74 68 65 6e 0a 09 20 20 20 20 20 20 20 20 20 20 73 75 63 63 65 73 73 3a   ┆_time ) then            success:┆
0x026360…026380             3d 20 66 61 6c 73 65 0a 0a 09 20 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 64 61 74 65   ┆= false           end;  (*  date┆
0x026380…0263a0             20 20 2a 29 0a 0a 20 09 20 20 20 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 20 70   ┆  *)           if success then p┆
0x0263a0…0263c0             75 74 72 65 63 20 28 20 64 61 74 66 2c 20 73 65 65 6e 6e 6f 2c 20 6d 6f 64 75 6c 65 29 0a 09 20   ┆utrec ( datf, seenno, module)   ┆
0x0263c0…0263e0             20 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 73 65 61 72 63 68 20 20 6f 6b 20 20 2a 29 0a 09 20   ┆      end  (*  search  ok  *)   ┆
0x0263e0…026400             20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20 62 65 67 69 6e 0a 09 20 20 20 20 20 20 61 64 64   ┆    else        begin        add┆
0x026400…026420 (10, 0, 7)  72 65 63 20 28 20 64 61 74 66 2c 20 64 72 6e 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 20 20 20 20 20   ┆rec ( datf, drn, module);       ┆
0x026420…026440             20 61 64 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20 20 20   ┆ addkey ( inxf, drn, key);      ┆
0x026440…026460             20 20 20 20 20 20 20 20 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20   ┆         if debug1 then writeln ┆
0x026460…026480             28 20 6f 75 74 70 75 74 2c 20 27 2d 20 20 20 61 64 64 6b 65 79 20 20 20 22 27 2c 20 6b 65 79 2c   ┆( output, '-   addkey   "', key,┆
0x026480…0264a0             20 27 22 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 09 20 20 20 20 20   ┆ '"');               end;       ┆
0x0264a0…0264c0             20 69 66 20 6e 6f 74 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 09 09 77 72 69 74 65 6c 6e 20 28   ┆ if not success then   writeln (┆
0x0264c0…0264e0             20 6f 75 74 70 75 74 2c 20 27 21 20 20 20 50 75 74 72 65 63 20 70 72 6f 62 6c 65 6d 2c 20 65 6e   ┆ output, '!   Putrec problem, en┆
0x0264e0…026500             74 72 79 20 6e 61 6d 65 3a 20 27 2c 20 6b 65 79 29 3b 0a 0a 09 20 20 20 20 20 20 69 66 20 64 65   ┆try name: ', key);         if de┆
0x026500…026520             62 75 67 34 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a   ┆bug4 then                 begin ┆
0x026520…026540             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆                writeln ( output┆
0x026540…026560             2c 20 27 20 20 6d 6f 64 75 6c 65 20 72 65 63 20 66 6f 72 20 3a 20 27 2c 20 73 6f 75 72 63 65 5f   ┆, '  module rec for : ', source_┆
0x026560…026580             6e 61 6d 65 2c 20 27 20 20 27 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 29 3b 0a 20 20   ┆name, '  ', stralfa ( name));   ┆
0x026580…0265a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 63 3a 3d 20 72 65 61 64 6b 65 79 0a 20 20 20 20 20   ┆              tc:= readkey      ┆
0x0265a0…0265c0             20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 09 20 20 20 20 20 20 65 6e 64 3b 0a 0a 0a 09 20   ┆           end;        end;     ┆
0x0265c0…0265e0             20 20 20 69 66 20 6b 69 6e 64 20 3d 20 73 75 6d 6b 69 6e 64 20 74 68 65 6e 0a 09 20 20 20 20 65   ┆   if kind = sumkind then      e┆
0x0265e0…026600             6c 73 65 20 20 62 65 67 69 6e 09 09 28 2a 20 73 6b 69 70 20 72 65 73 74 20 6f 66 20 64 65 73 63   ┆lse  begin  (* skip rest of desc┆
0x026600…026620 (10, 0, 8)  72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 2a 29 0a 09 20 20 20 20 20 20 73 65 65 6b 20 28 20   ┆riptor segment *)        seek ( ┆
0x026620…026640             73 6f 75 72 63 65 2c 20 6d 6f 64 75 6c 65 2e 64 65 73 70 6f 73 20 2b 20 64 65 73 63 72 69 70 74   ┆source, module.despos + descript┆
0x026640…026660             6f 72 5f 6c 65 6e 67 74 68 20 29 3b 0a 09 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f   ┆or_length );        iocheck ( so┆
0x026660…026680             75 72 63 65 29 0a 09 20 20 20 20 20 20 65 6e 64 3b 0a 0a 09 20 20 20 20 28 2a 2d 2d 20 63 6f 6d   ┆urce)        end;       (*-- com┆
0x026680…0266a0             70 75 74 65 20 6e 6f 20 6f 66 20 63 6f 64 65 62 79 74 65 73 20 20 2a 29 0a 20 20 20 20 20 20 20   ┆pute no of codebytes  *)        ┆
0x0266a0…0266c0             20 20 20 20 20 70 61 67 65 73 3a 3d 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 3b 0a 09 20 20 20 20 77   ┆     pages:= no_of_pages;      w┆
0x0266c0…0266e0             6f 72 6b 3a 3d 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3b 0a 09 20 20 20 20 77 6f 72   ┆ork:= last_page_length;      wor┆
0x0266e0…026700             6b 20 3a 3d 20 77 6f 72 6b 20 2b 20 28 20 70 61 67 65 73 20 2d 20 31 20 29 20 2a 20 70 61 67 65   ┆k := work + ( pages - 1 ) * page┆
0x026700…026720             73 69 7a 65 3b 0a 0a 09 20 20 20 20 73 6b 69 70 20 28 20 77 6f 72 6b 29 3b 0a 0a 09 20 20 72 65   ┆size;       skip ( work);     re┆
0x026720…026740             61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e   ┆adinteger ( source, no_of_extern┆
0x026740…026760             61 6c 73 29 3b 20 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 6c 69 6e   ┆als);  (* number of external lin┆
0x026760…026780             6b 73 20 2a 29 0a 0a 20 20 20 20 20 20 20 69 66 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73   ┆ks *)         if no_of_externals┆
0x026780…0267a0             20 3e 20 31 32 30 30 30 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆ > 12000 then  writeln ( output,┆
0x0267a0…0267c0             20 27 2a 2a 2a 20 74 6f 6f 20 6d 61 6e 79 20 65 78 74 65 72 6e 61 6c 73 20 20 3a 20 27 2c 20 6e   ┆ '*** too many externals  : ', n┆
0x0267c0…0267e0             6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 0a 20 20 20 20 20 20 20 66 6f 72 20 70 20 3a   ┆o_of_externals);         for p :┆
0x0267e0…026800             3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 64 6f 0a 09 20 62 65 67 69   ┆= 1 to no_of_externals do   begi┆
0x026800…026820 (10, 0, 9)  6e 0a 09 20 73 6b 69 70 20 28 20 61 6c 66 61 6c 65 6e 67 74 68 29 3b 0a 0a 09 20 72 65 61 64 69   ┆n   skip ( alfalength);    readi┆
0x026820…026840             6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 29 3b 0a   ┆nteger ( source, no_of_params); ┆
0x026840…026860             09 20 73 6b 69 70 20 28 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 20 2a 20 34 29 3b 0a 09 20 72 65   ┆  skip ( no_of_params * 4);   re┆
0x026860…026880             61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f 75 73 65 73 29 3b   ┆adinteger ( source, no_of_uses);┆
0x026880…0268a0             0a 09 20 73 6b 69 70 20 28 20 6e 6f 5f 6f 66 5f 75 73 65 73 20 2a 20 34 20 29 3b 0a 09 20 65 6e   ┆   skip ( no_of_uses * 4 );   en┆
0x0268a0…0268c0             64 3b 20 20 28 2a 20 20 66 6f 72 20 70 20 65 78 74 65 72 6e 61 6c 73 20 20 2a 29 0a 0a 20 20 20   ┆d;  (*  for p externals  *)     ┆
0x0268c0…0268e0             20 20 20 28 2a 20 73 6b 69 70 20 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 20 20 20   ┆   (* skip internal links *)    ┆
0x0268e0…026900             20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f 65   ┆   readinteger ( source, no_of_e┆
0x026900…026920             78 74 65 72 6e 61 6c 73 29 3b 0a 20 20 20 20 20 20 69 66 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e   ┆xternals);       if no_of_extern┆
0x026920…026940             61 6c 73 20 3e 20 31 32 30 30 30 20 74 68 65 6e 0a 09 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆als > 12000 then   writeln ( out┆
0x026940…026960             70 75 74 2c 20 27 2a 2a 2a 20 74 6f 6f 20 6d 61 6e 79 20 6c 69 6e 6b 73 20 3a 20 27 2c 20 6e 6f   ┆put, '*** too many links : ', no┆
0x026960…026980             5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 20 20 20 20 20 20 73 6b 69 70 20 28 20 6e 6f 5f   ┆_of_externals);       skip ( no_┆
0x026980…0269a0             6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 2a 20 20 38 20 29 3b 0a 0a 09 20 20 20 20 65 6e 64 20 20   ┆of_externals *  8 );       end  ┆
0x0269a0…0269c0             28 2a 20 20 6e 6f 74 20 73 74 6f 70 20 6d 61 72 6b 20 20 2a 29 0a 0a 09 75 6e 74 69 6c 20 6e 65   ┆(*  not stop mark  *)   until ne┆
0x0269c0…0269e0             77 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3d 20 73 74 6f 70 5f 6d   ┆whead.descriptor_length = stop_m┆
0x0269e0…026a00             61 72 6b 3b 0a 0a 09 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 20 20   ┆ark;   close_file ( source);    ┆
0x026a00…026a20 (10, 0, 10) 20 20 20 20 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 09 65 6e 64   ┆     source_opened:= false;  end┆
0x026a20…026a40             3b 20 20 28 2a 20 20 73 6f 75 72 63 65 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20 65 6e 64 20 20   ┆;  (*  source ok  *)       end  ┆
0x026a40…026a60             28 2a 20 20 66 6f 72 20 61 6c 6c 20 69 74 65 6d 73 20 20 2a 29 0a 0a 20 20 65 6e 64 3b 20 20 28   ┆(*  for all items  *)    end;  (┆
0x026a60…026a80             2a 20 20 72 65 61 64 20 70 61 72 61 6d 73 20 20 2a 29 0a 0a 0c 0a 0a 50 72 6f 63 65 64 75 72 65   ┆*  read params  *)     Procedure┆
0x026a80…026aa0             20 6d 61 6b 65 5f 6c 69 62 20 28 20 76 61 72 20 73 6f 75 72 63 65 6e 61 6d 65 2c 20 6e 65 77 6c   ┆ make_lib ( var sourcename, newl┆
0x026aa0…026ac0             69 62 6e 61 6d 65 20 3a 20 70 61 74 68 73 74 72 3b 0a 09 20 20 76 61 72 20 64 61 74 66 3a 20 64   ┆ibname : pathstr;    var datf: d┆
0x026ac0…026ae0             61 74 61 66 69 6c 65 3b 20 76 61 72 20 69 6e 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 29 3b 0a 28   ┆atafile; var inxf: indexfile); (┆
0x026ae0…026b00             2a 09 73 63 61 6e 20 6f 6c 64 6c 69 62 2c 20 66 6f 72 20 65 61 63 68 20 6d 6f 64 75 6c 65 20 3a   ┆* scan oldlib, for each module :┆
0x026b00…026b20             6c 6f 6f 6b 20 74 68 65 20 6e 61 6d 65 20 75 70 20 69 6e 20 69 6e 64 65 78 0a 2d 2d 09 61 6e 64   ┆look the name up in index -- and┆
0x026b20…026b40             20 63 6f 70 79 20 6f 72 20 73 6b 69 70 20 61 73 20 61 70 70 72 6f 70 72 69 61 74 65 0a 2a 29 0a   ┆ copy or skip as appropriate *) ┆
0x026b40…026b60             0a 20 20 74 79 70 65 0a 20 20 20 20 20 62 6c 6f 63 6b 5f 74 79 70 65 09 3d 20 20 61 72 72 61 79   ┆   type      block_type =  array┆
0x026b60…026b80             20 5b 20 31 2e 2e 6d 61 78 69 6e 74 20 20 7b 62 6c 6f 63 6b 73 69 7a 65 7d 20 5d 20 6f 66 20 62   ┆ [ 1..maxint  {blocksize} ] of b┆
0x026b80…026ba0             79 74 65 3b 0a 0a 20 20 63 6f 6e 73 74 0a 20 20 20 20 20 62 6c 6f 63 6b 73 69 7a 65 09 3a 20 20   ┆yte;    const      blocksize :  ┆
0x026ba0…026bc0             77 6f 72 64 09 3d 20 20 31 36 20 2a 20 31 30 32 34 3b 0a 20 20 20 20 20 6c 69 6e 65 6e 6f 09 3a   ┆word =  16 * 1024;      lineno :┆
0x026bc0…026be0             20 20 77 6f 72 64 20 3d 20 20 30 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 68 69 74 09 3a 20 20 62   ┆  word =  0;   var      hit :  b┆
0x026be0…026c00             6f 6f 6c 65 61 6e 3b 0a 20 20 20 20 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 2c 0a 20 20   ┆oolean;      no_of_externals,   ┆
0x026c00…026c20 (10, 0, 11) 20 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 20 2c 0a 20 20 20 20 20 6e 6f 5f 6f 66 5f 75 73 65   ┆   no_of_params ,      no_of_use┆
0x026c20…026c40             73 20 20 20 2c 0a 20 20 20 20 20 73 74 65 70 20 20 20 20 20 20 20 20 20 2c 0a 20 20 20 20 20 69   ┆s   ,      step         ,      i┆
0x026c40…026c60             74 65 6d 5f 6e 75 6d 62 65 72 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 64 65 73 63 72 5f 70 6f   ┆tem_number : word;      descr_po┆
0x026c60…026c80             73 20 20 20 20 2c 0a 20 20 20 20 20 77 6f 72 6b 20 20 20 20 20 20 20 20 20 3a 20 20 6c 6f 6e 67   ┆s    ,      work         :  long┆
0x026c80…026ca0             69 6e 74 3b 0a 0a 20 20 20 20 20 68 65 61 64 2c 20 6e 65 77 68 65 61 64 09 3a 20 20 64 65 73 63   ┆int;       head, newhead :  desc┆
0x026ca0…026cc0             72 69 70 74 6f 72 5f 70 61 72 74 31 3b 0a 20 20 20 20 20 6e 65 77 70 61 72 61 6d 6c 69 73 74 20   ┆riptor_part1;      newparamlist ┆
0x026cc0…026ce0             20 20 20 20 20 20 3a 20 20 70 61 72 61 6d 5f 64 65 73 63 72 3b 0a 20 20 20 20 20 6e 65 77 5f 64   ┆      :  param_descr;      new_d┆
0x026ce0…026d00             61 74 65 20 20 20 20 3a 20 20 63 6f 64 65 64 5f 64 61 74 65 3b 0a 20 20 20 20 20 6e 65 77 5f 74   ┆ate    :  coded_date;      new_t┆
0x026d00…026d20             69 6d 65 20 20 20 20 3a 20 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 20 20 20 20 20 62 6c 6f 63 6b   ┆ime    :  coded_time;      block┆
0x026d20…026d40             09 09 3a 20 20 5e 62 6c 6f 63 6b 5f 74 79 70 65 3b 0a 0a 20 20 20 20 20 70 2c 20 62 79 74 65 73   ┆  :  ^block_type;       p, bytes┆
0x026d40…026d60             2c 0a 20 20 20 20 20 64 72 6e 2c 20 6d 61 78 09 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 20 6b 65   ┆,      drn, max :  word;      ke┆
0x026d60…026d80             79 09 3a 20 20 61 6c 66 61 73 74 72 3b 0a 20 20 20 20 20 74 78 74 34 20 20 20 20 3a 20 20 73 74   ┆y :  alfastr;      txt4    :  st┆
0x026d80…026da0             72 69 6e 67 5b 34 5d 3b 0a 20 20 20 20 20 73 74 61 6d 70 20 20 20 3a 20 20 64 61 74 65 74 69 6d   ┆ring[4];      stamp   :  datetim┆
0x026da0…026dc0             65 3b 0a 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 5f 72 65 6d 61 72 6b 20   ┆e;       procedure write_remark ┆
0x026dc0…026de0             28 20 76 61 72 20 68 65 61 64 3a 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 3b 20 76 61   ┆( var head: descriptor_part1; va┆
0x026de0…026e00             72 20 72 65 63 3a 20 6d 6f 64 75 6c 65 5f 72 65 63 29 3b 0a 20 20 28 2a 20 20 77 72 69 74 65 20   ┆r rec: module_rec);   (*  write ┆
0x026e00…026e20 (10, 0, 12) 6e 61 6d 65 20 64 61 74 65 20 76 65 72 73 69 6f 6e 20 61 6e 64 20 72 65 6d 61 72 6b 20 20 2a 29   ┆name date version and remark  *)┆
0x026e20…026e40             0a 20 20 28 2a 20 20 70 61 72 61 6d 65 74 65 72 73 20 73 68 6f 75 6c 64 20 62 65 20 66 72 6f 7a   ┆   (*  parameters should be froz┆
0x026e40…026e60             65 6e 20 76 61 72 20 20 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 63 20 28 20 6c   ┆en var  *)     begin     inc ( l┆
0x026e60…026e80             69 6e 65 6e 6f 29 3b 0a 20 20 20 20 69 66 20 6c 69 6e 65 6e 6f 20 6d 6f 64 20 36 30 20 3d 20 30   ┆ineno);     if lineno mod 60 = 0┆
0x026e80…026ea0             20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆ then       begin  writeln ( out┆
0x026ea0…026ec0             70 75 74 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 27 20 20 20 20 20   ┆put);  writeln ( output,  '     ┆
0x026ec0…026ee0             20 6e 72 20 20 6b 69 6e 64 20 20 20 20 20 20 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 6f 62 6a   ┆ nr  kind      name          obj┆
0x026ee0…026f00             65 63 74 20 64 61 74 65 20 20 20 20 20 20 20 76 65 72 73 69 6f 6e 20 20 20 27 0a 20 29 3b 0a 20   ┆ect date       version   '  );  ┆
0x026f00…026f20             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20   ┆writeln ( output);       end;   ┆
0x026f20…026f40             20 20 20 77 69 74 68 20 68 65 61 64 20 64 6f 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65   ┆   with head do  begin     write┆
0x026f40…026f60             20 28 20 6f 75 74 70 75 74 2c 20 69 74 65 6d 5f 6e 75 6d 62 65 72 3a 38 2c 20 27 20 20 27 29 3b   ┆ ( output, item_number:8, '  ');┆
0x026f60…026f80             0a 0a 20 20 20 20 63 61 73 65 20 6b 69 6e 64 20 6f 66 0a 20 20 20 20 20 30 20 20 20 3a 20 20 77   ┆      case kind of      0   :  w┆
0x026f80…026fa0             72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 53 55 4d 20 20 20 20 20 20 20 27 29 3b 0a 20 20   ┆rite ( output, 'SUM       ');   ┆
0x026fa0…026fc0             20 20 20 31 20 20 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 50 52 4f 47 52   ┆   1   :  write ( output, 'PROGR┆
0x026fc0…026fe0             41 4d 20 20 20 27 29 3b 0a 20 20 20 20 20 32 2c 20 34 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74   ┆AM   ');      2, 4:  write ( out┆
0x026fe0…027000             70 75 74 2c 20 27 50 52 4f 43 45 44 55 52 45 20 27 29 3b 0a 20 20 20 20 20 33 2c 20 35 3a 20 20   ┆put, 'PROCEDURE ');      3, 5:  ┆
0x027000…027020 (10, 0, 13) 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 46 55 4e 43 54 49 4f 4e 20 20 27 29 3b 0a 20   ┆write ( output, 'FUNCTION  ');  ┆
0x027020…027040             20 20 20 20 36 20 20 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 44 41 54 41   ┆    6   :  write ( output, 'DATA┆
0x027040…027060             20 20 20 20 20 20 27 29 3b 0a 20 20 20 20 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 6b 69 6e 64 20   ┆      ');     end; (* case kind ┆
0x027060…027080             2a 29 0a 0a 20 20 20 20 74 78 74 34 3a 3d 20 27 2e 27 20 2b 20 73 74 72 69 6e 74 20 28 20 6c 6f   ┆*)      txt4:= '.' + strint ( lo┆
0x027080…0270a0             20 28 20 76 65 72 73 69 6f 6e 29 29 20 2b 20 27 20 20 20 27 3b 0a 20 20 20 20 77 72 69 74 65 6c   ┆ ( version)) + '   ';     writel┆
0x0270a0…0270c0             6e 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 2c 20 27 27 3a   ┆n ( output, stralfa ( name), '':┆
0x0270c0…0270e0             32 2c 20 0a 20 20 20 20 73 74 72 64 61 74 65 20 28 72 65 63 2e 63 6f 6d 70 69 6c 65 5f 64 61 74   ┆2,      strdate (rec.compile_dat┆
0x0270e0…027100             65 29 2c 20 27 3a 27 2c 20 73 74 72 74 69 6d 65 20 28 72 65 63 2e 63 6f 6d 70 69 6c 65 5f 74 69   ┆e), ':', strtime (rec.compile_ti┆
0x027100…027120             6d 65 29 2c 0a 20 20 20 20 20 68 69 28 76 65 72 73 69 6f 6e 29 3a 34 2c 20 74 78 74 34 20 29 3b   ┆me),      hi(version):4, txt4 );┆
0x027120…027140             0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 72 69 74 65 20 72 65 6d   ┆     end     end;  (*  write rem┆
0x027140…027160             61 72 6b 20 20 2a 29 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 63 6f 70 79 20 28 20 76 61   ┆ark  *)      procedure copy ( va┆
0x027160…027180             72 20 73 75 72 63 2c 20 64 65 73 74 3a 20 66 69 6c 65 3b 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 3a   ┆r surc, dest: file; no_of_bytes:┆
0x027180…0271a0             20 6c 6f 6e 67 69 6e 74 3b 20 6d 6f 64 65 3a 20 62 79 74 65 29 3b 0a 20 20 20 20 76 61 72 0a 20   ┆ longint; mode: byte);     var  ┆
0x0271a0…0271c0             20 20 20 20 20 6e 6f 5f 6f 66 5f 62 6c 6f 63 6b 73 2c 20 72 65 73 74 3a 20 6c 6f 6e 67 69 6e 74   ┆     no_of_blocks, rest: longint┆
0x0271c0…0271e0             3b 0a 20 20 20 20 20 20 62 79 74 65 73 20 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 62 65 67 69 6e   ┆;       bytes :  word;     begin┆
0x0271e0…027200             0a 0a 20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 20 20 69 66 20 28 20   ┆      if debug3 then       if ( ┆
0x027200…027220 (10, 0, 14) 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 29 20 74 68 65 6e 0a 20 20 20 20 20 20 77 72 69 74   ┆mode = copymode) then       writ┆
0x027220…027240             65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 63 6f 70 79 20 63 61 6c 6c 65 64 2c 20   ┆eln ( output, '--  copy called, ┆
0x027240…027260             62 79 74 65 73 20 3a 20 27 2c 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 29 3b 0a 20 20 20 20 69 66 20   ┆bytes : ', no_of_bytes);     if ┆
0x027260…027280             64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 20 20 69 66 20 28 20 6d 6f 64 65 20 3d 20 63 6f   ┆debug3 then       if ( mode = co┆
0x027280…0272a0             70 79 6d 6f 64 65 29 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77   ┆pymode) then       begin       w┆
0x0272a0…0272c0             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 20 28 20   ┆riteln ( output);       write ( ┆
0x0272c0…0272e0             6f 75 74 70 75 74 2c 20 27 63 6f 70 79 3a 20 62 65 66 6f 72 65 20 6f 66 66 73 65 74 2c 20 61 66   ┆output, 'copy: before offset, af┆
0x0272e0…027300             74 65 72 3a 20 27 2c 20 66 69 6c 65 70 6f 73 20 28 20 73 75 72 63 29 2c 20 27 2c 20 27 2c 0a 20   ┆ter: ', filepos ( surc), ', ',  ┆
0x027300…027320             20 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 2c 20 27 2c 20 27 29 3b 0a 20 20 20 20 20   ┆       no_of_bytes, ', ');      ┆
0x027320…027340             20 65 6e 64 3b 0a 0a 20 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 73 6b 69 70 6d 6f 64 65 20 74 68   ┆ end;      if mode = skipmode th┆
0x027340…027360             65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 73 65 65 6b 20 28 20 73 75 72 63   ┆en       begin       seek ( surc┆
0x027360…027380             2c 20 66 69 6c 65 70 6f 73 20 28 20 73 75 72 63 29 20 2b 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 29   ┆, filepos ( surc) + no_of_bytes)┆
0x027380…0273a0             3b 0a 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 73 75 72 63 29 0a 20 20 20 20 20 20 65 6e   ┆;       iocheck ( surc)       en┆
0x0273a0…0273c0             64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6e 6f 5f   ┆d     else       begin       no_┆
0x0273c0…0273e0             6f 66 5f 62 6c 6f 63 6b 73 20 3a 3d 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 20 64 69 76 20 62 6c 6f   ┆of_blocks := no_of_bytes div blo┆
0x0273e0…027400             63 6b 73 69 7a 65 3b 0a 20 20 20 20 20 20 72 65 73 74 3a 3d 20 6e 6f 5f 6f 66 5f 62 79 74 65 73   ┆cksize;       rest:= no_of_bytes┆
0x027400…027420 (10, 0, 15) 20 6d 6f 64 20 62 6c 6f 63 6b 73 69 7a 65 3b 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 33 20   ┆ mod blocksize;       if debug3 ┆
0x027420…027440             74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆then         begin  writeln ( ou┆
0x027440…027460             74 70 75 74 2c 20 27 20 63 6f 70 79 20 27 2c 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 2c 20 27 20 3d   ┆tput, ' copy ', no_of_bytes, ' =┆
0x027460…027480             20 27 2c 20 6e 6f 5f 6f 66 5f 62 6c 6f 63 6b 73 2c 20 27 20 2a 20 27 2c 20 62 6c 6f 63 6b 73 69   ┆ ', no_of_blocks, ' * ', blocksi┆
0x027480…0274a0             7a 65 2c 0a 20 20 20 20 20 20 20 20 27 20 2b 20 27 2c 20 72 65 73 74 20 29 3b 0a 20 20 20 20 20   ┆ze,         ' + ', rest );      ┆
0x0274a0…0274c0             20 20 20 74 63 3a 3d 20 72 65 61 64 6b 65 79 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20   ┆   tc:= readkey         end;    ┆
0x0274c0…0274e0             20 20 20 20 77 68 69 6c 65 20 6e 6f 5f 6f 66 5f 62 6c 6f 63 6b 73 20 3e 20 30 20 64 6f 0a 20 20   ┆    while no_of_blocks > 0 do   ┆
0x0274e0…027500             20 20 20 20 20 20 62 65 67 69 6e 0a 09 62 6c 6f 63 6b 72 65 61 64 20 20 28 20 73 75 72 63 2c 20   ┆      begin  blockread  ( surc, ┆
0x027500…027520             62 6c 6f 63 6b 5e 2c 20 62 6c 6f 63 6b 73 69 7a 65 2c 20 62 79 74 65 73 29 3b 0a 09 69 6f 63 68   ┆block^, blocksize, bytes);  ioch┆
0x027520…027540             65 63 6b 20 28 20 73 75 72 63 29 3b 0a 09 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 64 65 73 74 2c   ┆eck ( surc);  blockwrite ( dest,┆
0x027540…027560             20 62 6c 6f 63 6b 5e 2c 20 62 6c 6f 63 6b 73 69 7a 65 2c 20 62 79 74 65 73 29 3b 0a 09 69 6f 63   ┆ block^, blocksize, bytes);  ioc┆
0x027560…027580             68 65 63 6b 20 28 20 64 65 73 74 29 3b 0a 20 20 20 20 20 20 20 20 64 65 63 20 28 20 6e 6f 5f 6f   ┆heck ( dest);         dec ( no_o┆
0x027580…0275a0             66 5f 62 6c 6f 63 6b 73 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 69 66   ┆f_blocks);         end;       if┆
0x0275a0…0275c0             20 72 65 73 74 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 62   ┆ rest <> 0 then         begin  b┆
0x0275c0…0275e0             6c 6f 63 6b 72 65 61 64 20 20 28 20 73 75 72 63 2c 20 62 6c 6f 63 6b 5e 2c 20 72 65 73 74 2c 20   ┆lockread  ( surc, block^, rest, ┆
0x0275e0…027600             62 79 74 65 73 29 3b 0a 09 69 6f 63 68 65 63 6b 20 28 20 73 75 72 63 29 3b 0a 09 62 6c 6f 63 6b   ┆bytes);  iocheck ( surc);  block┆
0x027600…027620 (10, 1, 1)  77 72 69 74 65 20 28 20 64 65 73 74 2c 20 62 6c 6f 63 6b 5e 2c 20 72 65 73 74 2c 20 62 79 74 65   ┆write ( dest, block^, rest, byte┆
0x027620…027640             73 29 3b 0a 09 69 6f 63 68 65 63 6b 20 28 20 73 75 72 63 29 0a 20 20 20 20 20 20 20 20 65 6e 64   ┆s);  iocheck ( surc)         end┆
0x027640…027660             3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20   ┆;       end;     if debug3 then ┆
0x027660…027680             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 66 69 6c 65 70 6f 73 20 28 20 73 75 72   ┆ writeln ( output, filepos ( sur┆
0x027680…0276a0             63 29 29 3b 0a 20 20 20 20 65 6e 64 3b 20 28 2a 20 63 6f 70 79 20 2a 29 0a 0a 20 0c 0a 0a 20 20   ┆c));     end; (* copy *)        ┆
0x0276a0…0276c0             70 72 6f 63 65 64 75 72 65 20 73 63 61 6e 20 28 20 76 61 72 20 73 75 72 63 2c 20 64 65 73 74 3a   ┆procedure scan ( var surc, dest:┆
0x0276c0…0276e0             20 66 69 6c 65 3b 20 76 61 72 20 68 65 61 64 3a 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74   ┆ file; var head: descriptor_part┆
0x0276e0…027700             31 3b 20 6d 6f 64 65 3a 20 62 79 74 65 29 3b 0a 20 20 20 20 76 61 72 0a 20 20 20 20 20 20 6e 6f   ┆1; mode: byte);     var       no┆
0x027700…027720             5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 2c 0a 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d   ┆_of_externals,       no_of_param┆
0x027720…027740             73 20 2c 0a 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 75 73 65 73 20 20 20 2c 0a 20 20 20 20 20 20 73   ┆s ,       no_of_uses   ,       s┆
0x027740…027760             74 65 70 09 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 20 20 70 61 67 65 73 2c 20 77 6f 72 6b 20 20   ┆tep :  word;       pages, work  ┆
0x027760…027780             3a 20 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 69 74 68 20 68   ┆:  longint;     begin     with h┆
0x027780…0277a0             65 61 64 20 64 6f 0a 20 20 20 20 69 66 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20   ┆ead do     if descriptor_length ┆
0x0277a0…0277c0             3c 3e 20 73 74 6f 70 5f 6d 61 72 6b 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20   ┆<> stop_mark then       begin   ┆
0x0277c0…0277e0             20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 0a 09 69 66 20 28 6d 6f 64 65 20 3d 20 63   ┆    if debug3 then  if (mode = c┆
0x0277e0…027800             6f 70 79 6d 6f 64 65 20 29 20 74 68 65 6e 0a 09 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆opymode ) then   writeln ( outpu┆
0x027800…027820 (10, 1, 2)  74 2c 20 27 2d 2d 20 20 73 63 61 6e 20 20 63 61 6c 6c 65 64 2c 20 62 79 74 65 73 20 3a 20 27 2c   ┆t, '--  scan  called, bytes : ',┆
0x027820…027840             20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 29 3b 0a 20 20 20 20 20 20 69 66 20 6d 6f   ┆ descriptor_length);       if mo┆
0x027840…027860             64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20   ┆de = copymode then       begin  ┆
0x027860…027880             20 20 20 20 20 20 20 77 72 69 74 65 68 65 61 64 20 28 20 64 65 73 74 2c 20 68 65 61 64 29 3b 0a   ┆       writehead ( dest, head); ┆
0x027880…0278a0             09 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆ if debug3 then  writeln ( outpu┆
0x0278a0…0278c0             74 2c 20 27 2d 2d 20 77 72 69 74 65 68 65 61 64 20 27 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61   ┆t, '-- writehead ', stralfa ( na┆
0x0278c0…0278e0             6d 65 29 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 28 2a 20 63 6f 70   ┆me));         end;        (* cop┆
0x0278e0…027900             79 20 6f 72 20 73 6b 69 70 20 72 65 73 74 20 6f 66 20 68 65 61 64 20 61 6e 64 20 74 68 65 20 63   ┆y or skip rest of head and the c┆
0x027900…027920             6f 64 65 20 70 61 72 74 20 2a 29 0a 20 20 20 20 20 20 63 6f 70 79 20 28 20 73 75 72 63 2c 20 64   ┆ode part *)       copy ( surc, d┆
0x027920…027940             65 73 74 2c 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2d 20 6c 65 6e 67 74 68 5f   ┆est, descriptor_length - length_┆
0x027940…027960             6f 66 5f 66 69 78 65 64 5f 70 61 72 74 31 2c 20 6d 6f 64 65 29 3b 0a 0a 20 20 20 20 20 20 28 2a   ┆of_fixed_part1, mode);        (*┆
0x027960…027980             20 63 6f 70 79 20 6f 72 20 73 6b 69 70 20 74 68 65 20 63 6f 64 65 20 70 61 72 74 20 2a 29 0a 20   ┆ copy or skip the code part *)  ┆
0x027980…0279a0             20 20 20 20 20 70 61 67 65 73 3a 3d 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 3b 0a 20 20 20 20 20 20   ┆     pages:= no_of_pages;       ┆
0x0279a0…0279c0             77 6f 72 6b 3a 3d 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 20 20 20 20 77   ┆work:= last_page_length;       w┆
0x0279c0…0279e0             6f 72 6b 3a 3d 20 77 6f 72 6b 20 2b 20 28 20 70 61 67 65 73 20 2d 20 31 20 29 20 2a 20 70 61 67   ┆ork:= work + ( pages - 1 ) * pag┆
0x0279e0…027a00             65 73 69 7a 65 3b 0a 20 20 20 20 20 20 63 6f 70 79 20 28 20 73 75 72 63 2c 20 64 65 73 74 2c 20   ┆esize;       copy ( surc, dest, ┆
0x027a00…027a20 (10, 1, 3)  77 6f 72 6b 2c 20 6d 6f 64 65 29 3b 0a 0a 20 20 20 20 20 20 28 2a 20 63 6f 70 79 20 6f 72 20 73   ┆work, mode);        (* copy or s┆
0x027a20…027a40             6b 69 70 20 27 6e 75 6d 62 65 72 20 6f 66 20 65 78 74 65 72 6e 61 6c 73 27 20 2a 29 0a 20 20 20   ┆kip 'number of externals' *)    ┆
0x027a40…027a60             20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 73 75 72 63 2c 20 6e 6f 5f 6f 66 5f 65 78 74   ┆   readinteger ( surc, no_of_ext┆
0x027a60…027a80             65 72 6e 61 6c 73 29 3b 0a 20 20 20 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64   ┆ernals);       if mode = copymod┆
0x027a80…027aa0             65 20 74 68 65 6e 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 2c 20 6e 6f 5f   ┆e then  writeinteger ( dest, no_┆
0x027aa0…027ac0             6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 0a 20 20 20 20 20 20 28 2a 20 63 6f 70 79 20 6f 72   ┆of_externals);        (* copy or┆
0x027ac0…027ae0             20 73 6b 69 70 20 74 68 65 20 65 78 74 65 72 6e 61 6c 73 20 2a 29 0a 20 20 20 20 20 20 66 6f 72   ┆ skip the externals *)       for┆
0x027ae0…027b00             20 73 74 65 70 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 64 6f   ┆ step := 1 to no_of_externals do┆
0x027b00…027b20             0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 63 6f 70 79 20 28 20 73 75 72 63 2c 20 64 65 73   ┆         begin  copy ( surc, des┆
0x027b20…027b40             74 2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 6d 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65   ┆t, alfalength, mode);         re┆
0x027b40…027b60             61 64 69 6e 74 65 67 65 72 20 28 20 73 75 72 63 2c 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 29 3b   ┆adinteger ( surc, no_of_params);┆
0x027b60…027b80             0a 0a 20 20 20 20 20 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 20 74 68 65   ┆          if mode = copymode the┆
0x027b80…027ba0             6e 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 2c 20 6e 6f 5f 6f 66 5f 70 61   ┆n  writeinteger ( dest, no_of_pa┆
0x027ba0…027bc0             72 61 6d 73 29 3b 0a 0a 20 20 20 20 20 20 20 20 63 6f 70 79 20 20 28 20 73 75 72 63 2c 20 64 65   ┆rams);          copy  ( surc, de┆
0x027bc0…027be0             73 74 2c 20 34 20 2a 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 2c 20 6d 6f 64 65 29 3b 0a 0a 20 20   ┆st, 4 * no_of_params, mode);    ┆
0x027be0…027c00             20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 73 75 72 63 2c 20 6e 6f 5f 6f 66 5f   ┆      readinteger ( surc, no_of_┆
0x027c00…027c20 (10, 1, 4)  75 73 65 73 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64   ┆uses);         if mode = copymod┆
0x027c20…027c40             65 20 74 68 65 6e 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 2c 20 6e 6f 5f   ┆e then  writeinteger ( dest, no_┆
0x027c40…027c60             6f 66 5f 75 73 65 73 29 3b 0a 20 20 20 20 20 20 20 20 63 6f 70 79 20 20 28 20 73 75 72 63 2c 20   ┆of_uses);         copy  ( surc, ┆
0x027c60…027c80             64 65 73 74 2c 20 34 20 2a 20 6e 6f 5f 6f 66 5f 75 73 65 73 2c 20 6d 6f 64 65 29 3b 0a 20 20 20   ┆dest, 4 * no_of_uses, mode);    ┆
0x027c80…027ca0             20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 28 2a 20 63 6f 70 79 20 6f 72 20 73 6b 69 70   ┆     end;        (* copy or skip┆
0x027ca0…027cc0             20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 20 20 20 20 20 20 72 65 61   ┆ the internal links *)       rea┆
0x027cc0…027ce0             64 69 6e 74 65 67 65 72 20 28 20 73 75 72 63 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73   ┆dinteger ( surc, no_of_externals┆
0x027ce0…027d00             29 3b 0a 20 20 20 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 63 6f 70 79 6d 6f 64 65 20 74 68 65 6e   ┆);       if mode = copymode then┆
0x027d00…027d20             20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 64 65 73 74 2c 20 6e 6f 5f 6f 66 5f 65 78 74   ┆  writeinteger ( dest, no_of_ext┆
0x027d20…027d40             65 72 6e 61 6c 73 29 3b 0a 20 20 20 20 20 20 63 6f 70 79 20 28 20 73 75 72 63 2c 20 64 65 73 74   ┆ernals);       copy ( surc, dest┆
0x027d40…027d60             2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 2a 20 38 2c 20 6d 6f 64 65 29 3b 0a 0a 20   ┆, no_of_externals * 8, mode);   ┆
0x027d60…027d80             20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 77 69 74 68 20 68 65 61 64 20 2a 29 0a 20 20 20 20 65   ┆     end  (*  with head *)     e┆
0x027d80…027da0             6e 64 3b 20 28 2a 20 73 63 61 6e 20 2a 29 0a 0a 0c 0a 0a 20 62 65 67 69 6e 09 28 2a 20 20 20 20   ┆nd; (* scan *)      begin (*    ┆
0x027da0…027dc0             6d 61 6b 65 20 6c 69 62 20 2a 29 0a 0a 20 63 6c 65 61 72 6b 65 79 20 28 20 69 6e 78 66 29 3b 0a   ┆make lib *)   clearkey ( inxf); ┆
0x027dc0…027de0             0a 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 0a 20 20 20 72 65 70 65 61 74 0a 20 20 20 20 20   ┆  if debug1 then    repeat      ┆
0x027de0…027e00             6e 65 78 74 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20 20 20   ┆nextkey ( inxf, drn, key);      ┆
0x027e00…027e20 (10, 1, 5)  69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆if success then        begin    ┆
0x027e20…027e40             20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 6b 65 79 77 6f 72 64 20 27   ┆    writeln ( output, 'keyword '┆
0x027e40…027e60             2c 20 64 72 6e 2c 20 27 3a 20 22 27 2c 20 20 6b 65 79 2c 20 27 22 27 29 3b 0a 20 20 20 20 20 20   ┆, drn, ': "',  key, '"');       ┆
0x027e60…027e80             20 65 6e 64 0a 20 20 20 75 6e 74 69 6c 20 6e 6f 74 20 73 75 63 63 65 73 73 3b 0a 0a 0a 20 77 68   ┆ end    until not success;    wh┆
0x027e80…027ea0             69 6c 65 20 28 20 62 6c 6f 63 6b 73 69 7a 65 20 3e 20 6d 61 78 61 76 61 69 6c 20 29 20 61 6e 64   ┆ile ( blocksize > maxavail ) and┆
0x027ea0…027ec0             20 28 20 62 6c 6f 63 6b 73 69 7a 65 20 3e 20 32 30 34 38 20 29 20 64 6f 0a 20 20 20 62 6c 6f 63   ┆ ( blocksize > 2048 ) do    bloc┆
0x027ec0…027ee0             6b 73 69 7a 65 3a 3d 20 62 6c 6f 63 6b 73 69 7a 65 20 2d 20 31 30 32 34 3b 0a 0a 20 67 65 74 6d   ┆ksize:= blocksize - 1024;   getm┆
0x027ee0…027f00             65 6d 20 28 20 62 6c 6f 63 6b 2c 20 62 6c 6f 63 6b 73 69 7a 65 29 3b 0a 0a 20 77 72 69 74 65 6c   ┆em ( block, blocksize);   writel┆
0x027f00…027f20             6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69 74 65 20 20 20 28 20 6f 75 74 70 75 74 2c 20   ┆n ( output);  write   ( output, ┆
0x027f20…027f40             27 2d 2d 20 20 20 50 4c 49 42 4a 4f 49 4e 20 27 29 3b 0a 20 69 66 20 70 72 6f 67 72 61 6d 6e 61   ┆'--   PLIBJOIN ');  if programna┆
0x027f40…027f60             6d 65 20 3d 20 64 61 74 65 5f 6d 6f 64 65 20 74 68 65 6e 20 77 72 69 74 65 20 28 20 6f 75 74 70   ┆me = date_mode then write ( outp┆
0x027f60…027f80             75 74 2c 20 27 20 2f 44 41 54 45 20 20 27 29 3b 0a 0a 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 64   ┆ut, ' /DATE  ');   open_file ( d┆
0x027f80…027fa0             65 73 74 69 6e 61 74 69 6f 6e 2c 20 6e 65 77 6c 69 62 6e 61 6d 65 2c 20 66 6d 5f 77 72 69 74 65   ┆estination, newlibname, fm_write┆
0x027fa0…027fc0             29 3b 0a 20 69 66 20 69 6f 73 74 61 74 20 3c 3e 20 30 20 74 68 65 6e 20 65 72 72 6f 72 20 28 20   ┆);  if iostat <> 0 then error ( ┆
0x027fc0…027fe0             31 30 31 2c 20 27 2a 2a 2a 20 4e 6f 20 72 6f 6f 6d 20 66 6f 72 20 6e 65 77 20 6c 69 62 20 27 20   ┆101, '*** No room for new lib ' ┆
0x027fe0…028000             2b 20 6e 65 77 6c 69 62 6e 61 6d 65 29 3b 0a 20 64 65 73 74 5f 6f 70 65 6e 65 64 3a 3d 20 74 72   ┆+ newlibname);  dest_opened:= tr┆
0x028000…028020 (10, 1, 6)  75 65 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 31 39 2c 20 27 6e   ┆ue;  writeln ( output, '':19, 'n┆
0x028020…028040             65 77 6c 69 62 20 66 69 6c 65 3a 20 27 2c 20 66 65 78 70 61 6e 64 20 28 20 6e 65 77 6c 69 62 6e   ┆ewlib file: ', fexpand ( newlibn┆
0x028040…028060             61 6d 65 29 29 3b 0a 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69   ┆ame));   writeln ( output);  wri┆
0x028060…028080             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 27 20 20 20 20 20 20 6e 72 20 20 6b 69 6e 64 20   ┆teln ( output,  '      nr  kind ┆
0x028080…0280a0             20 20 20 20 20 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 20 64 61 74 65 20 20   ┆     name          object date  ┆
0x0280a0…0280c0             20 20 20 20 20 76 65 72 73 69 6f 6e 20 20 20 27 0a 20 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20   ┆     version   '  );  writeln ( ┆
0x0280c0…0280e0             6f 75 74 70 75 74 29 3b 0a 0a 20 69 74 65 6d 5f 6e 75 6d 62 65 72 20 3a 3d 20 30 3b 0a 0a 20 69   ┆output);   item_number := 0;   i┆
0x0280e0…028100             66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆f debug3 then writeln ( output, ┆
0x028100…028120             27 20 20 75 73 65 64 20 72 65 63 73 20 3d 20 27 2c 20 75 73 65 64 72 65 63 73 20 28 20 64 61 74   ┆'  used recs = ', usedrecs ( dat┆
0x028120…028140             66 29 29 3b 0a 20 73 6f 75 72 63 65 6e 61 6d 65 3a 3d 20 27 23 27 3b 0a 20 0a 20 69 66 20 75 73   ┆f));  sourcename:= '#';    if us┆
0x028140…028160             65 64 72 65 63 73 20 28 20 64 61 74 66 20 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 62 65 67 69   ┆edrecs ( datf ) > 0 then    begi┆
0x028160…028180             6e 0a 20 20 20 6d 61 78 3a 3d 20 66 69 6c 65 6c 65 6e 20 28 20 64 61 74 66 29 20 2d 20 31 3b 0a   ┆n    max:= filelen ( datf) - 1; ┆
0x028180…0281a0             0a 20 20 20 66 6f 72 20 64 72 6e 3a 3d 20 31 20 74 6f 20 6d 61 78 20 64 6f 0a 20 20 20 20 20 62   ┆    for drn:= 1 to max do      b┆
0x0281a0…0281c0             65 67 69 6e 0a 20 20 20 20 20 67 65 74 72 65 63 20 28 20 64 61 74 66 2c 20 64 72 6e 2c 20 6d 6f   ┆egin      getrec ( datf, drn, mo┆
0x0281c0…0281e0             64 75 6c 65 29 3b 0a 20 20 20 20 20 69 66 20 6d 6f 64 75 6c 65 2e 72 65 63 73 74 61 74 20 3d 20   ┆dule);      if module.recstat = ┆
0x0281e0…028200             30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 77 69 74 68 20 6d 6f 64 75 6c 65   ┆0 then        begin  with module┆
0x028200…028220 (10, 1, 7)  20 64 6f 20 20 62 65 67 69 6e 0a 09 20 20 69 66 20 70 61 74 68 20 3c 3e 20 73 6f 75 72 63 65 6e   ┆ do  begin    if path <> sourcen┆
0x028220…028240             61 6d 65 20 74 68 65 6e 0a 09 20 20 20 20 62 65 67 69 6e 0a 09 20 20 20 20 69 66 20 73 6f 75 72   ┆ame then      begin      if sour┆
0x028240…028260             63 65 5f 6f 70 65 6e 65 64 20 74 68 65 6e 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 73 6f 75 72   ┆ce_opened then close_file ( sour┆
0x028260…028280             63 65 29 3b 0a 09 20 20 20 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 73 6f 75 72 63 65 2c 20 70 61   ┆ce);      open_file ( source, pa┆
0x028280…0282a0             74 68 2c 20 66 6d 5f 72 65 61 64 29 3b 0a 09 20 20 20 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64   ┆th, fm_read);      source_opened┆
0x0282a0…0282c0             3a 3d 20 74 72 75 65 3b 0a 09 20 20 20 20 73 6f 75 72 63 65 6e 61 6d 65 3a 3d 20 70 61 74 68 3b   ┆:= true;      sourcename:= path;┆
0x0282c0…0282e0             0a 09 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 66 72 6f   ┆      writeln ( output, '--  fro┆
0x0282e0…028300             6d 20 66 69 6c 65 3a 20 20 27 2c 20 73 6f 75 72 63 65 6e 61 6d 65 29 3b 0a 09 20 20 20 20 65 6e   ┆m file:  ', sourcename);      en┆
0x028300…028320             64 3b 20 20 28 2a 20 20 73 6f 75 72 63 65 20 63 68 61 6e 67 65 64 20 20 2a 29 0a 09 20 20 73 65   ┆d;  (*  source changed  *)    se┆
0x028320…028340             65 6b 20 28 20 73 6f 75 72 63 65 2c 20 64 65 73 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20   ┆ek ( source, despos);           ┆
0x028340…028360             69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 3b 0a 09 20 20 72 65 61 64 68 65 61 64 20 28   ┆iocheck ( source);    readhead (┆
0x028360…028380             20 73 6f 75 72 63 65 2c 20 6e 65 77 68 65 61 64 29 3b 0a 09 20 20 65 6e 64 3b 20 20 28 2a 20 20   ┆ source, newhead);    end;  (*  ┆
0x028380…0283a0             77 69 74 68 20 6d 6f 64 75 6c 65 20 20 2a 29 0a 0a 20 20 20 20 20 20 20 69 66 20 6e 65 77 68 65   ┆with module  *)         if newhe┆
0x0283a0…0283c0             61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72   ┆ad.descriptor_length <> stop_mar┆
0x0283c0…0283e0             6b 20 74 68 65 6e 0a 09 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 69 74 65 6d 5f 6e 75 6d   ┆k then   begin          item_num┆
0x0283e0…028400             62 65 72 20 3a 3d 20 69 74 65 6d 5f 6e 75 6d 62 65 72 20 2b 20 31 3b 0a 09 20 73 63 61 6e 20 28   ┆ber := item_number + 1;   scan (┆
0x028400…028420 (10, 1, 8)  20 73 6f 75 72 63 65 2c 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 6e 65 77 68 65 61 64 2c 20 63   ┆ source, destination, newhead, c┆
0x028420…028440             6f 70 79 6d 6f 64 65 29 3b 0a 09 20 77 72 69 74 65 5f 72 65 6d 61 72 6b 20 28 20 6e 65 77 68 65   ┆opymode);   write_remark ( newhe┆
0x028440…028460             61 64 2c 20 6d 6f 64 75 6c 65 29 0a 09 20 65 6e 64 20 20 28 2a 20 20 6e 6f 74 20 73 74 6f 70 6d   ┆ad, module)   end  (*  not stopm┆
0x028460…028480             61 72 6b 20 20 2a 29 0a 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 77 72 69   ┆ark  *)        else          wri┆
0x028480…0284a0             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 20 73 74 6f 70 6d 61 72 6b 20 6d 65 74 3a   ┆teln ( output, '!  stopmark met:┆
0x0284a0…0284c0             20 20 28 64 72 6e 2c 66 69 6c 65 2c 70 6f 73 2c 6d 6f 64 75 6c 65 29 3a 20 27 2c 0a 20 20 20 20   ┆  (drn,file,pos,module): ',     ┆
0x0284c0…0284e0             20 20 20 20 20 20 20 64 72 6e 3a 34 2c 20 73 6f 75 72 63 65 6e 61 6d 65 2c 20 6d 6f 64 75 6c 65   ┆       drn:4, sourcename, module┆
0x0284e0…028500             2e 64 65 73 70 6f 73 3a 38 2c 20 27 27 3a 33 2c 20 6e 65 77 68 65 61 64 2e 6e 61 6d 65 29 0a 20   ┆.despos:8, '':3, newhead.name)  ┆
0x028500…028520             20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 72 65 63 73 74 61 74 20 6f 6b 20 20 2a 29 0a 20 20 20   ┆     end  (*  recstat ok  *)    ┆
0x028520…028540             20 20 65 6e 64 20 20 28 2a 20 20 66 6f 72 20 64 72 6e 20 20 2a 29 0a 20 20 20 65 6e 64 3b 20 20   ┆  end  (*  for drn  *)    end;  ┆
0x028540…028560             28 2a 20 20 75 73 65 64 72 65 63 73 20 3e 20 30 20 20 2a 29 0a 0a 20 77 72 69 74 65 69 6e 74 65   ┆(*  usedrecs > 0  *)   writeinte┆
0x028560…028580             67 65 72 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 73 74 6f 70 5f 6d 61 72 6b 29 3b 0a 20   ┆ger ( destination, stop_mark);  ┆
0x028580…0285a0             63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 3b 0a 20 64 65 73 74   ┆close_file ( destination);  dest┆
0x0285a0…0285c0             5f 6f 70 65 6e 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 20 69 66 20 73 6f 75 72 63 65 5f 6f 70 65 6e   ┆_opened:= false;  if source_open┆
0x0285c0…0285e0             65 64 20 74 68 65 6e 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 73   ┆ed then close_file ( source);  s┆
0x0285e0…028600             6f 75 72 63 65 5f 6f 70 65 6e 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 63 6c 6f 73 65 66 69 6c   ┆ource_opened:= false;   closefil┆
0x028600…028620 (10, 1, 9)  65 20 28 20 64 61 74 66 29 3b 0a 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 3b 0a   ┆e ( datf);  closeindex ( inxf); ┆
0x028620…028640             20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 3d 20 66 61 6c 73 65 3b 0a 20 65 72 61 73 65 20 28   ┆ database_open:= false;  erase (┆
0x028640…028660             20 64 61 74 66 2e 66 29 3b 0a 20 65 72 61 73 65 20 28 20 69 6e 78 66 2e 64 2e 66 29 3b 0a 0a 20   ┆ datf.f);  erase ( inxf.d.f);   ┆
0x028660…028680             65 6e 64 3b 20 28 2a 20 6d 61 6b 65 5f 6c 69 62 20 2a 29 0a 0a 0a 0a 28 2a 24 46 2b 20 20 2a 29   ┆end; (* make_lib *)    (*$F+  *)┆
0x028680…0286a0             20 20 70 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 20 28 2a 24 46 2d 20 20 2a 29 0a 20   ┆  procedure myexit;  (*$F-  *)  ┆
0x0286a0…0286c0             20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64 20 74 68 65 6e   ┆ begin     if source_opened then┆
0x0286c0…0286e0             20 63 6c 6f 73 65 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 20 20 20 69 66 20 64 65 73 74 5f 6f 70   ┆ close ( source);     if dest_op┆
0x0286e0…028700             65 6e 65 64 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 3b 0a   ┆ened then close ( destination); ┆
0x028700…028720             20 20 20 20 69 66 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 20 74 68 65 6e 0a 20 20 20 20 20 20   ┆    if database_open then       ┆
0x028720…028740             62 65 67 69 6e 0a 20 20 20 20 20 20 63 6c 6f 73 65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a 20   ┆begin       closefile ( datf);  ┆
0x028740…028760             20 20 20 20 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 0a 20 20 20 20 20 20 65 6e   ┆     closeindex ( inxf)       en┆
0x028760…028780             64 3b 0a 20 20 69 66 20 65 72 72 6f 72 61 64 64 72 20 3c 3e 20 6e 69 6c 20 74 68 65 6e 0a 20 20   ┆d;   if erroraddr <> nil then   ┆
0x028780…0287a0             20 20 62 65 67 69 6e 0a 20 20 20 20 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 20 28 20 27 2a 2a 20   ┆  begin     runtime_error ( '** ┆
0x0287a0…0287c0             20 43 61 6c 6c 65 64 20 66 72 6f 6d 20 50 4c 49 42 4a 4f 49 4e 3a 20 20 20 27 29 3b 0a 20 20 20   ┆ Called from PLIBJOIN:   ');    ┆
0x0287c0…0287e0             20 65 72 72 6f 72 61 64 64 72 3a 3d 20 4e 49 4c 3b 0a 20 20 20 20 28 2a 2d 2d 2d 2d 2d 0a 20 20   ┆ erroraddr:= NIL;     (*-----   ┆
0x0287e0…028800             20 20 74 63 3a 3d 20 72 65 61 64 6b 65 79 3b 0a 20 20 20 20 69 66 20 65 78 69 74 63 6f 64 65 20   ┆  tc:= readkey;     if exitcode ┆
0x028800…028820 (10, 1, 10) 3c 3e 20 32 30 31 20 74 68 65 6e 20 65 78 69 74 63 6f 64 65 3a 3d 20 32 35 34 20 20 2d 2d 2a 29   ┆<> 201 then exitcode:= 254  --*)┆
0x028820…028840             0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 65 78 69 74 70 72 6f 63 3a 3d 20 65 78 69 74 73 61 76 65   ┆     end;    exitproc:= exitsave┆
0x028840…028860             0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 6d 79 65 78 69 74 20 20 2a 29 0a 0a 0a 0a 20 62 65 67 69   ┆   end;  (*  myexit  *)     begi┆
0x028860…028880             6e 09 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6d 61 69 6e 20 70 72   ┆n (*-------------------- main pr┆
0x028880…0288a0             6f 67 72 61 6d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 65 78   ┆ogram --------------------*)  ex┆
0x0288a0…0288c0             69 74 73 61 76 65 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a 20 65 78 69 74 70 72 6f 63 3a 3d 20 61   ┆itsave:= exitproc;  exitproc:= a┆
0x0288c0…0288e0             64 64 72 20 28 20 6d 79 65 78 69 74 29 3b 0a 0a 01 44 20 33 0a 20 77 72 69 74 65 6c 6e 20 28 20   ┆ddr ( myexit);   D 3  writeln ( ┆
0x0288e0…028900             6f 75 74 70 75 74 2c 20 27 27 3a 37 2c 20 27 50 4c 49 42 4a 4f 49 4e 27 2c 20 76 65 72 73 69 6f   ┆output, '':7, 'PLIBJOIN', versio┆
0x028900…028920             6e 29 3b 0a 01 45 20 33 0a 01 49 20 33 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆n);  E 3  I 3  writeln ( output,┆
0x028920…028940             20 27 27 3a 37 2c 20 27 50 4c 49 42 4a 4f 49 4e 20 20 72 65 6c 2e 20 25 52 25 2e 25 4c 25 2c 20   ┆ '':7, 'PLIBJOIN  rel. %R%.%L%, ┆
0x028940…028960             20 20 31 39 27 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 31 2c 20   ┆  19',     copy ( sccs_date, 1, ┆
0x028960…028980             32 29 2c 20 27 2e 27 2c 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 34 2c 20 32 29   ┆2), '.', copy ( sccs_date, 4, 2)┆
0x028980…0289a0             2c 20 27 2e 27 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 37 2c 20   ┆, '.',     copy ( sccs_date, 7, ┆
0x0289a0…0289c0             32 29 29 3b 0a 01 45 20 33 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 20   ┆2));  E 3  writeln ( output);   ┆
0x0289c0…0289e0             73 6f 75 72 63 65 5f 6e 61 6d 65 3a 3d 20 27 27 3b 0a 0a 20 69 66 20 64 65 62 75 67 33 20 74 68   ┆source_name:= '';   if debug3 th┆
0x0289e0…028a00             65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 6d 61 78 61 76 61 69 6c 20   ┆en writeln ( output, ' maxavail ┆
0x028a00…028a20 (10, 1, 11) 3d 20 27 2c 20 6d 61 78 61 76 61 69 6c 29 3b 0a 0a 20 70 6f 6c 79 66 69 6c 65 5f 63 6f 6e 66 69   ┆= ', maxavail);   polyfile_confi┆
0x028a20…028a40             67 20 28 20 73 69 7a 65 6f 66 20 28 20 6d 6f 64 75 6c 65 5f 72 65 63 29 2c 20 61 6c 66 61 6c 65   ┆g ( sizeof ( module_rec), alfale┆
0x028a40…028a60             6e 67 74 68 2c 20 32 36 2c 20 32 38 2c 20 36 29 3b 0a 20 69 66 20 6e 6f 74 20 73 75 63 63 65 73   ┆ngth, 26, 28, 6);  if not succes┆
0x028a60…028a80             73 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆s then    begin    writeln ( out┆
0x028a80…028aa0             70 75 74 2c 20 27 21 20 20 50 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 68 65 61 70 73 69 7a 65 20   ┆put, '!  Problems with heapsize ┆
0x028aa0…028ac0             69 6e 20 70 6f 6c 79 66 69 6c 65 20 63 6f 6e 66 69 67 27 29 3b 0a 20 20 20 68 61 6c 74 20 28 20   ┆in polyfile config');    halt ( ┆
0x028ac0…028ae0             32 30 33 29 0a 20 20 20 65 6e 64 3b 0a 0a 20 72 65 61 64 5f 70 61 72 61 6d 73 20 28 20 73 6f 75   ┆203)    end;   read_params ( sou┆
0x028ae0…028b00             72 63 65 5f 6e 61 6d 65 2c 20 6e 65 77 6c 69 62 5f 6e 61 6d 65 2c 0a 20 20 20 20 64 65 66 5f 65   ┆rce_name, newlib_name,     def_e┆
0x028b00…028b20             78 74 65 6e 73 69 6f 6e 2c 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 73 69 7a 65 6f 66   ┆xtension, comp_extension, sizeof┆
0x028b20…028b40             20 28 20 6d 6f 64 75 6c 65 5f 72 65 63 29 2c 0a 20 20 20 20 64 61 74 61 62 61 73 65 5f 6f 70 65   ┆ ( module_rec),     database_ope┆
0x028b40…028b60             6e 2c 20 64 61 74 5f 6e 61 6d 65 2c 20 69 6e 78 5f 6e 61 6d 65 2c 20 64 61 74 66 2c 20 69 6e 78   ┆n, dat_name, inx_name, datf, inx┆
0x028b60…028b80             66 29 3b 0a 0a 0a 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20   ┆f);    if debug3 then writeln ( ┆
0x028b80…028ba0             6f 75 74 70 75 74 2c 20 27 20 6d 61 78 61 76 61 69 6c 20 3d 20 27 2c 20 6d 61 78 61 76 61 69 6c   ┆output, ' maxavail = ', maxavail┆
0x028ba0…028bc0             29 3b 0a 0a 20 6d 61 6b 65 5f 6c 69 62 20 28 20 73 6f 75 72 63 65 5f 6e 61 6d 65 2c 20 6e 65 77   ┆);   make_lib ( source_name, new┆
0x028bc0…028be0             6c 69 62 5f 6e 61 6d 65 2c 20 64 61 74 66 2c 20 69 6e 78 66 29 3b 0a 0a 20 69 66 20 64 65 62 75   ┆lib_name, datf, inxf);   if debu┆
0x028be0…028c00             67 20 6f 72 20 64 65 62 75 67 31 20 6f 72 20 64 65 62 75 67 32 20 6f 72 20 64 65 62 75 67 33 20   ┆g or debug1 or debug2 or debug3 ┆
0x028c00…028c20 (10, 1, 12) 6f 72 20 64 65 62 75 67 34 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 77 72 69 74 65   ┆or debug4 then    begin    write┆
0x028c20…028c40             20 28 20 27 70 72 65 73 73 20 61 6e 79 20 6b 65 79 20 27 29 3b 0a 20 20 20 74 63 3a 3d 20 72 65   ┆ ( 'press any key ');    tc:= re┆
0x028c40…028c60             61 64 6b 65 79 3b 20 20 77 72 69 74 65 6c 6e 0a 20 20 20 65 6e 64 3b 0a 0a 20 77 72 69 74 65 6c   ┆adkey;  writeln    end;   writel┆
0x028c60…028c80             6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆n ( output);  writeln ( output, ┆
0x028c80…028ca0             27 2d 2d 20 20 20 65 6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20   ┆'--   end of job.');  writeln ( ┆
0x028ca0…028cc0             6f 75 74 70 75 74 29 3b 0a 0a 20 65 6e 64 20 2e 09 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆output);   end . (*-------------┆
0x028cc0…028ce0             2d 2d 2d 20 6f 66 20 50 4c 49 42 4a 4f 49 4e 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--- of PLIBJOIN ----------------┆
0x028ce0…028d00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 01 45 20 31 0a 66 5f 65   ┆-------------------*)    E 1 f_e┆
0x028d00…028d20             78 74 65 6e 73 69 6f 6e 2c 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 73 69 7a 65 6f 66   ┆xtension, comp_extension, sizeof┆
0x028d20…028d40             20 28 20 6d 6f 64 75 6c 65 5f 72 65 63 29 2c 0a 20 20 20 20 64 61 74 61 62 61 73 65 5f 6f 70 65   ┆ ( module_rec),     database_ope┆
0x028d40…028d60             6e 2c 20 64 61 74 5f 6e 61 6d 65 2c 20 69 6e 78 5f 6e 61 6d 65 2c 20 64 61 74 66 2c 20 69 6e 78   ┆n, dat_name, inx_name, datf, inx┆
0x028d60…028d80             66 29 3b 0a 0a 0a 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20   ┆f);    if debug3 then writeln ( ┆
0x028d80…028da0             6f 75 74 70 75 74 2c 20 27 20 6d 61 78 61 76 61 69 6c 20 3d 20 27 2c 20 6d 61 78 61 76 61 69 6c   ┆output, ' maxavail = ', maxavail┆
0x028da0…028dc0             29 3b 0a 0a 20 6d 61 6b 65 5f 6c 69 62 20 28 20 73 6f 75 72 63 65 5f 6e 61 6d 65 2c 20 6e 65 77   ┆);   make_lib ( source_name, new┆
0x028dc0…028de0             6c 69 62 5f 6e 61 6d 65 2c 20 64 61 74 66 2c 20 69 6e 78 66 29 3b 0a 0a 20 69 66 20 64 65 62 75   ┆lib_name, datf, inxf);   if debu┆
0x028de0…028e00             67 20 6f 72 20 64 65 62 75 67 31 20 6f 72 20 64 65 62 75 67 32 20 6f 72 20 64 65 62 75 67 33 20   ┆g or debug1 or debug2 or debug3 ┆
0x028e00…028e20 (10, 1, 13) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 70 6c 69 62 6c 6f 6f 6b 2e 70 61   ┆../sw2103/src/util/s.pliblook.pa┆
0x028e20…028e40             73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆s                               ┆
0x028e40…028e60             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x028e60…028e80             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x028e80…028ea0             20 20 34 36 37 36 34 20 20 35 32 36 37 35 31 34 35 34 35 20 20 31 31 37 30 37 00 20 00 00 00 00   ┆  46764  5267514545  11707      ┆
0x028ea0…028ec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x029000…029020 (10, 1, 14) 01 68 33 32 36 37 32 0a 01 73 20 30 30 30 31 38 2f 30 30 30 30 34 2f 30 30 36 35 39 0a 01 64 20   ┆ h32672  s 00018/00004/00659  d ┆
0x029020…029040             44 20 31 2e 32 33 20 39 32 2f 31 30 2f 31 36 20 31 31 3a 32 38 3a 35 31 20 73 77 32 31 30 33 20   ┆D 1.23 92/10/16 11:28:51 sw2103 ┆
0x029040…029060             36 20 35 0a 01 63 20 4f 70 74 69 6f 6e 20 2f 51 55 49 45 54 20 69 6e 74 72 6f 64 75 63 65 64 2e   ┆6 5  c Option /QUIET introduced.┆
0x029060…029080             0a 01 65 0a 01 73 20 30 30 30 31 33 2f 30 30 30 30 38 2f 30 30 36 35 30 0a 01 64 20 44 20 31 2e   ┆  e  s 00013/00008/00650  d D 1.┆
0x029080…0290a0             32 32 20 39 32 2f 31 30 2f 30 39 20 31 34 3a 34 38 3a 30 30 20 73 77 32 31 30 33 20 35 20 31 0a   ┆22 92/10/09 14:48:00 sw2103 5 1 ┆
0x0290a0…0290c0             01 63 20 53 43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2c 20 65 78 74 65   ┆ c SCCS info and UNIX used, exte┆
0x0290c0…0290e0             6e 73 69 6f 6e 20 2e 42 32 32 20 75 73 65 64 20 69 66 20 2f 69 6d 61 67 65 2e 22 0a 01 65 0a 01   ┆nsion .B22 used if /image."  e  ┆
0x0290e0…029100             73 20 30 30 30 30 37 2f 30 30 30 30 36 2f 30 30 36 35 32 0a 01 64 20 52 20 31 2e 32 32 20 39 32   ┆s 00007/00006/00652  d R 1.22 92┆
0x029100…029120             2f 31 30 2f 30 39 20 31 34 3a 30 35 3a 31 32 20 73 77 32 31 30 33 20 34 20 31 0a 01 63 20 53 43   ┆/10/09 14:05:12 sw2103 4 1  c SC┆
0x029120…029140             43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01 65 0a 01 73 20 30 30 30   ┆CS info and UNIX used.  e  s 000┆
0x029140…029160             30 37 2f 30 30 30 30 36 2f 30 30 36 35 32 0a 01 64 20 52 20 31 2e 32 32 20 39 32 2f 31 30 2f 30   ┆07/00006/00652  d R 1.22 92/10/0┆
0x029160…029180             39 20 31 34 3a 30 31 3a 35 38 20 73 77 32 31 30 33 20 33 20 31 0a 01 63 20 53 43 43 53 20 69 6e   ┆9 14:01:58 sw2103 3 1  c SCCS in┆
0x029180…0291a0             66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01 65 0a 01 73 20 30 30 30 30 37 2f 30 30   ┆fo and UNIX used.  e  s 00007/00┆
0x0291a0…0291c0             30 30 36 2f 30 30 36 35 32 0a 01 64 20 52 20 31 2e 32 32 20 39 32 2f 31 30 2f 30 39 20 31 33 3a   ┆006/00652  d R 1.22 92/10/09 13:┆
0x0291c0…0291e0             35 33 3a 34 34 20 73 77 32 31 30 33 20 32 20 31 0a 01 63 20 53 43 43 53 20 69 6e 66 6f 20 61 6e   ┆53:44 sw2103 2 1  c SCCS info an┆
0x0291e0…029200             64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01 65 0a 01 73 20 30 30 36 35 38 2f 30 30 30 30 30 2f 30   ┆d UNIX used.  e  s 00658/00000/0┆
0x029200…029220 (10, 1, 15) 30 30 30 30 0a 01 64 20 44 20 31 2e 32 31 20 39 32 2f 31 30 2f 30 39 20 31 33 3a 34 38 3a 31 35   ┆0000  d D 1.21 92/10/09 13:48:15┆
0x029220…029240             20 73 77 32 31 30 33 20 31 20 30 0a 01 63 20 4f 70 74 69 6f 6e 20 2f 44 45 54 41 49 4c 20 69 6e   ┆ sw2103 1 0  c Option /DETAIL in┆
0x029240…029260             74 72 6f 64 75 63 65 64 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 50 72   ┆troduced.  e  u  U  t  T  I 1 Pr┆
0x029260…029280             6f 67 72 61 6d 20 50 4c 49 42 6c 6f 6f 6b 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ogram PLIBlook;  (*-------------┆
0x029280…0292a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0292a0…0292c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 4d 6f 64 75 6c 65 3a 0a 2d 2d 20 46   ┆---------------- -- Module: -- F┆
0x0292c0…0292e0             69 6c 65 3a 20 20 20 20 20 20 50 4c 49 42 4c 4f 4f 4b 2e 50 41 53 0a 2d 2d 20 50 61 63 6b 61 67   ┆ile:      PLIBLOOK.PAS -- Packag┆
0x0292e0…029300             65 3a 20 20 20 53 57 32 31 30 33 20 20 20 20 53 75 62 73 79 73 74 65 6d 3a 20 55 54 49 4c 49 54   ┆e:   SW2103    Subsystem: UTILIT┆
0x029300…029320             59 20 20 20 50 72 6f 67 72 61 6d 3a 20 50 4c 49 42 4c 4f 4f 4b 0a 2d 2d 0a 2d 2d 20 43 6f 6e 74   ┆Y   Program: PLIBLOOK -- -- Cont┆
0x029320…029340             65 6e 74 73 3a 20 20 41 20 72 74 70 33 35 30 32 20 6c 69 62 72 61 72 79 20 6d 61 69 6e 74 65 6e   ┆ents:  A rtp3502 library mainten┆
0x029340…029360             61 6e 63 65 20 70 72 6f 67 72 61 6d 2c 0a 2d 2d 09 09 70 72 6f 64 75 63 65 73 20 61 20 63 61 74   ┆ance program, --  produces a cat┆
0x029360…029380             61 6c 6f 67 20 6c 69 73 74 69 6e 67 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 73 20 69 6e 20   ┆alog listing of the programs in ┆
0x029380…0293a0             61 20 6c 69 62 72 61 72 79 2e 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 20 63 61 6c 6c 3a 20 20   ┆a library. -- -- Program call:  ┆
0x0293a0…0293c0             50 4c 49 42 4c 4f 4f 4b 20 3c 6c 69 62 72 61 72 79 3e 20 7b 6f 70 74 69 6f 6e 7d 0a 2d 2d 09 09   ┆PLIBLOOK <library> {option} --  ┆
0x0293c0…0293e0             3c 6c 69 62 72 61 72 79 3e 20 20 20 20 66 69 6c 65 70 61 74 68 20 6f 66 20 52 43 35 30 30 30 20   ┆<library>    filepath of RC5000 ┆
0x0293e0…029400             6f 62 6a 65 63 74 20 6c 69 62 72 61 72 79 2e 0a 2d 2d 09 09 6c 69 62 2d 3c 6c 69 62 72 61 72 79   ┆object library. --  lib-<library┆
0x029400…029420 (11, 0, 1)  3e 20 20 20 20 69 73 20 6c 65 67 61 6c 20 74 6f 6f 2e 0a 2d 2d 09 09 09 44 65 66 61 75 6c 74 20   ┆>    is legal too. --   Default ┆
0x029420…029440             65 78 74 65 6e 73 69 6f 6e 3a 20 27 2e 50 32 32 27 20 4f 52 20 27 2e 54 32 32 27 0a 2d 2d 09 09   ┆extension: '.P22' OR '.T22' --  ┆
0x029440…029460             6f 70 74 69 6f 6e 3a 0a 2d 2d 09 09 2f 41 4c 4c 09 20 20 54 68 65 20 6c 69 73 74 20 63 6f 6e 74   ┆option: --  /ALL   The list cont┆
0x029460…029480             61 69 6e 73 20 61 6c 6c 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 72 6f 75 74 69 6e 65 73 20 63   ┆ains all the external routines c┆
0x029480…0294a0             61 6c 6c 65 64 0a 2d 2d 09 09 09 20 20 62 79 20 74 68 65 20 70 72 6f 67 72 61 6d 73 20 66 6f 72   ┆alled --     by the programs for┆
0x0294a0…0294c0             20 65 61 63 68 20 70 72 6f 67 72 61 6d 20 69 6e 20 6c 69 62 72 61 72 79 2e 0a 2d 2d 09 09 2f 49   ┆ each program in library. --  /I┆
0x0294c0…0294e0             4d 41 47 45 09 20 20 4c 69 73 74 20 6f 66 20 61 20 63 72 6f 73 73 6c 69 6e 6b 65 64 20 66 69 6c   ┆MAGE   List of a crosslinked fil┆
0x0294e0…029500             65 2e 0a 2d 2d 09 09 2f 50 41 52 41 4d 53 20 20 20 4c 69 73 74 20 74 68 65 20 70 61 72 61 6d 65   ┆e. --  /PARAMS   List the parame┆
0x029500…029520             74 65 72 6c 69 73 74 73 20 6f 66 20 74 68 65 20 72 6f 75 74 69 6e 65 73 2e 0a 2d 2d 09 09 2f 43   ┆terlists of the routines. --  /C┆
0x029520…029540             4f 4d 50 49 4c 45 52 20 4c 69 73 74 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 61 6e 64 20 72 65   ┆OMPILER List the compiler and re┆
0x029540…029560             6c 65 61 73 65 20 66 6f 72 20 74 68 65 20 6d 6f 64 75 6c 65 73 2e 0a 2d 2d 09 09 2f 44 45 54 41   ┆lease for the modules. --  /DETA┆
0x029560…029580             49 4c 20 20 20 4c 69 73 74 20 44 65 74 61 69 6c 65 64 20 68 65 78 20 64 75 6d 70 20 6f 66 20 74   ┆IL   List Detailed hex dump of t┆
0x029580…0295a0             68 65 20 63 6f 64 65 2e 0a 2d 2d 0a 2d 2d 0a 2d 2d 20 50 72 65 72 65 71 75 69 73 69 74 65 73 3a   ┆he code. -- -- -- Prerequisites:┆
0x0295a0…0295c0             20 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49 42 55 4e 49 54 0a 2d 2d 0a 2d 2d 20 44 6f   ┆  DOS, Cbreak, PLIBUNIT -- -- Do┆
0x0295c0…0295e0             63 75 6d 65 6e 74 61 74 69 6f 6e 3a 20 20 53 57 32 31 30 33 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72   ┆cumentation:  SW2103 -- -- Progr┆
0x0295e0…029600             61 6d 6d 65 64 20 62 79 20 42 42 2c 20 48 45 4a 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20 28 43   ┆ammed by BB, HEJ -- Copyright (C┆
0x029600…029620 (11, 0, 2)  29 20 31 39 38 39 20 62 79 20 52 43 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 0a 2d 2d 20 43 6f   ┆) 1989 by RC International -- Co┆
0x029620…029640             70 79 72 69 67 68 74 20 28 43 29 20 31 39 39 32 20 62 79 20 44 41 4e 4f 53 49 0a 2d 2d 2d 2d 2d   ┆pyright (C) 1992 by DANOSI -----┆
0x029640…029660             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x029660…029680             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 56 65   ┆-------------------------- -- Ve┆
0x029680…0296a0             72 73 69 6f 6e 20 68 69 73 74 6f 72 79 3a 0a 2d 2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44 61 74 65   ┆rsion history: -- -- Vers.  Date┆
0x0296a0…0296c0             20 20 20 20 20 20 49 6e 69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d   ┆      Init. Text -- ----   -----┆
0x0296c0…0296e0             2d 2d 2d 20 20 2d 2d 2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆---  ----  ---------------------┆
0x0296e0…029700             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 38 36 31 30 32 39 20 42 42 20 31   ┆----------------- -- 861029 BB 1┆
0x029700…029720             2e 32 20 47 65 6e 65 72 61 6c 20 63 6c 65 61 6e 20 75 70 20 61 6e 64 20 68 61 6e 64 6c 69 6e 67   ┆.2 General clean up and handling┆
0x029720…029740             20 6f 66 20 73 6f 75 72 63 65 20 64 61 74 65 0a 2d 2d 20 38 37 30 31 32 33 20 62 62 20 31 2e 33   ┆ of source date -- 870123 bb 1.3┆
0x029740…029760             20 50 6c 69 62 2e 61 6c 6c 20 61 6e 64 20 70 6c 69 62 2e 69 6d 61 67 65 20 69 6e 74 72 6f 64 75   ┆ Plib.all and plib.image introdu┆
0x029760…029780             63 65 64 0a 2d 2d 20 38 37 30 33 31 32 20 62 62 20 31 2e 34 20 41 6d 38 30 30 30 20 72 65 70 6c   ┆ced -- 870312 bb 1.4 Am8000 repl┆
0x029780…0297a0             61 63 65 64 20 62 79 20 6c 66 33 35 30 32 20 61 63 63 65 73 73 20 6d 65 74 68 6f 64 65 0a 2d 2d   ┆aced by lf3502 access methode --┆
0x0297a0…0297c0             20 38 37 30 36 30 39 20 62 62 20 31 2e 35 20 53 79 73 74 65 6d 20 63 6f 6e 76 65 72 74 65 64 20   ┆ 870609 bb 1.5 System converted ┆
0x0297c0…0297e0             74 6f 20 66 70 5f 73 79 73 74 65 6d 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e   ┆to fp_system --               an┆
0x0297e0…029800             64 20 68 61 6c 74 20 74 6f 20 66 70 5f 68 61 6c 74 2e 0a 2d 2d 20 38 37 31 31 31 30 20 62 62 20   ┆d halt to fp_halt. -- 871110 bb ┆
0x029800…029820 (11, 0, 3)  31 2e 36 20 4c 66 5f 69 6e 69 74 20 63 61 6c 6c 20 69 6e 73 65 72 74 65 64 0a 2d 2d 20 38 37 31   ┆1.6 Lf_init call inserted -- 871┆
0x029820…029840             31 32 30 20 62 62 20 31 2e 37 20 55 73 65 20 6f 66 20 6c 66 5f 6f 66 66 73 65 74 20 69 6e 74 72   ┆120 bb 1.7 Use of lf_offset intr┆
0x029840…029860             6f 64 75 63 65 64 20 74 6f 20 73 70 65 65 64 20 75 70 20 73 63 61 6e 6e 69 6e 67 0a 2d 2d 20 38   ┆oduced to speed up scanning -- 8┆
0x029860…029880             37 31 31 32 34 20 62 62 20 31 2e 38 20 43 6c 65 61 6e 20 75 70 20 61 6e 64 20 61 72 69 74 68 6d   ┆71124 bb 1.8 Clean up and arithm┆
0x029880…0298a0             65 74 69 63 20 6f 76 65 72 66 6c 6f 77 20 63 6f 72 72 65 63 74 65 64 20 69 6e 20 6c 6f 6f 6b 75   ┆etic overflow corrected in looku┆
0x0298a0…0298c0             70 0a 2d 2d 20 38 38 31 31 30 37 20 62 62 20 31 2e 39 20 50 72 6f 63 65 73 73 20 6b 69 6e 64 20   ┆p -- 881107 bb 1.9 Process kind ┆
0x0298c0…0298e0             6e 61 6d 65 20 63 68 61 6e 67 65 64 20 74 6f 20 70 72 6f 67 72 61 6d 2e 0a 2d 2d 20 38 39 30 31   ┆name changed to program. -- 8901┆
0x0298e0…029900             32 30 20 62 62 20 31 2e 31 30 20 45 6f 66 20 6c 6f 67 69 63 20 63 68 61 6e 67 65 64 20 74 6f 20   ┆20 bb 1.10 Eof logic changed to ┆
0x029900…029920             72 65 61 64 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 70 61 72 74 31   ┆reading descriptor segment part1┆
0x029920…029940             2e 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 20 6c 6f 67 69 63 20 69   ┆. --                Byte logic i┆
0x029940…029960             6e 20 73 74 65 61 64 20 6f 66 20 77 6f 72 64 20 6c 6f 67 69 63 2c 20 70 65 72 6d 69 74 74 69 6e   ┆n stead of word logic, permittin┆
0x029960…029980             67 20 6f 64 64 20 6c 65 6e 67 74 68 73 2e 0a 2d 2d 20 38 39 30 31 32 31 20 62 62 20 31 2e 31 31   ┆g odd lengths. -- 890121 bb 1.11┆
0x029980…0299a0             20 53 6b 69 70 20 6f 66 20 69 6e 74 65 72 6e 61 6c 73 20 73 68 6f 75 6c 64 20 61 6c 73 6f 20 62   ┆ Skip of internals should also b┆
0x0299a0…0299c0             65 20 64 6f 75 62 6c 65 20 61 72 69 74 68 6d 65 74 69 63 73 2e 0a 2d 2d 20 38 39 30 31 32 34 20   ┆e double arithmetics. -- 890124 ┆
0x0299c0…0299e0             62 62 20 31 2e 31 32 20 45 78 74 72 61 63 74 20 61 6e 64 20 64 65 6c 65 74 65 20 63 6f 75 6c 64   ┆bb 1.12 Extract and delete could┆
0x0299e0…029a00             20 6e 6f 74 20 68 61 6e 64 6c 65 20 65 6d 70 74 79 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20   ┆ not handle empty --            ┆
0x029a00…029a20 (11, 0, 4)  20 20 20 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 70 61 72 74 20 32 2e 0a 2d   ┆    descriptor segment part 2. -┆
0x029a20…029a40             2d 20 38 39 30 31 33 31 20 62 62 20 31 2e 31 33 20 4d 6f 72 65 20 74 65 73 74 6f 75 74 70 75 74   ┆- 890131 bb 1.13 More testoutput┆
0x029a40…029a60             20 69 6e 73 65 72 74 65 64 2e 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 65 72   ┆ inserted. --                Ter┆
0x029a60…029a80             6d 69 6e 61 74 69 6f 6e 20 69 66 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3d   ┆mination if descriptor_length <=┆
0x029a80…029aa0             20 30 2e 0a 2d 2d 0a 2d 2d 20 31 2e 31 33 20 20 20 38 39 2e 31 30 2e 32 34 20 20 48 45 4a 20 20   ┆ 0. -- -- 1.13   89.10.24  HEJ  ┆
0x029aa0…029ac0             20 54 55 52 42 4f 20 50 41 53 43 41 4c 20 76 65 72 73 69 6f 6e 2e 0a 2d 2d 20 31 2e 31 34 20 20   ┆ TURBO PASCAL version. -- 1.14  ┆
0x029ac0…029ae0             20 39 30 2e 30 31 2e 30 38 20 20 48 45 4a 20 20 20 45 72 72 6f 72 20 69 6e 20 63 6f 6d 70 75 74   ┆ 90.01.08  HEJ   Error in comput┆
0x029ae0…029b00             69 6e 67 20 6e 6f 20 6f 66 20 63 6f 64 65 62 79 74 65 73 20 77 68 65 6e 20 3e 20 36 34 20 4b 20   ┆ing no of codebytes when > 64 K ┆
0x029b00…029b20             63 6f 72 72 65 63 74 65 64 2e 0a 2d 2d 20 31 2e 31 35 20 20 20 39 30 2e 30 32 2e 31 35 20 20 48   ┆corrected. -- 1.15   90.02.15  H┆
0x029b20…029b40             45 4a 20 20 20 4c 69 62 72 61 72 79 20 66 69 6c 65 73 20 77 69 74 68 6f 75 74 20 65 78 74 65 6e   ┆EJ   Library files without exten┆
0x029b40…029b60             73 69 6f 6e 20 61 72 65 20 61 63 63 65 70 74 65 64 2e 0a 2d 2d 20 31 2e 31 36 20 20 20 39 30 2e   ┆sion are accepted. -- 1.16   90.┆
0x029b60…029b80             30 35 2e 33 30 20 20 48 45 4a 20 20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 27   ┆05.30  HEJ   Default extension '┆
0x029b80…029ba0             50 32 32 27 2c 20 20 73 74 6f 70 5f 6d 61 72 6b 20 20 24 46 46 46 46 20 20 2d 3e 20 20 30 30 30   ┆P22',  stop_mark  $FFFF  ->  000┆
0x029ba0…029bc0             30 2e 0a 2d 2d 20 31 2e 31 37 20 20 20 39 32 2e 30 32 2e 31 37 20 20 48 45 4a 20 20 20 4f 70 74   ┆0. -- 1.17   92.02.17  HEJ   Opt┆
0x029bc0…029be0             69 6f 6e 20 2f 50 41 52 41 4d 53 20 69 6e 74 72 6f 64 75 63 65 64 20 74 6f 20 6c 69 73 74 20 70   ┆ion /PARAMS introduced to list p┆
0x029be0…029c00             61 72 61 6d 65 74 65 72 6c 69 73 74 73 2e 0a 2d 2d 20 31 2e 31 38 20 20 20 39 32 2e 30 35 2e 32   ┆arameterlists. -- 1.18   92.05.2┆
0x029c00…029c20 (11, 0, 5)  35 20 20 48 45 4a 20 20 20 45 78 74 65 6e 73 69 6f 6e 20 2e 54 32 32 20 69 73 20 61 63 63 65 70   ┆5  HEJ   Extension .T22 is accep┆
0x029c20…029c40             74 65 64 20 74 6f 6f 2e 0a 2d 2d 20 31 2e 31 39 20 20 20 39 32 2e 30 36 2e 30 33 20 20 48 45 4a   ┆ted too. -- 1.19   92.06.03  HEJ┆
0x029c40…029c60             20 20 20 4d 6f 72 65 20 74 68 61 6e 20 38 20 70 61 72 61 6d 65 74 65 72 20 63 6c 61 73 73 65 73   ┆   More than 8 parameter classes┆
0x029c60…029c80             20 61 6c 6c 6f 77 65 64 2e 0a 2d 2d 20 31 2e 32 30 20 20 20 39 32 2e 30 36 2e 32 35 20 20 48 45   ┆ allowed. -- 1.20   92.06.25  HE┆
0x029c80…029ca0             4a 20 20 20 4f 70 74 69 6f 6e 20 2f 43 4f 4d 50 49 4c 45 52 20 69 6e 74 72 6f 64 75 63 65 64 2e   ┆J   Option /COMPILER introduced.┆
0x029ca0…029cc0             0a 2d 2d 20 31 2e 32 31 20 20 20 39 32 2e 30 37 2e 31 37 20 20 48 45 4a 20 20 20 4f 70 74 69 6f   ┆ -- 1.21   92.07.17  HEJ   Optio┆
0x029cc0…029ce0             6e 20 2f 44 45 54 41 49 4c 20 69 6e 74 72 6f 64 75 63 65 64 2e 0a 01 49 20 35 0a 2d 2d 20 31 2e   ┆n /DETAIL introduced.  I 5 -- 1.┆
0x029ce0…029d00             32 32 20 20 20 39 32 2e 31 30 2e 30 39 20 20 48 45 4a 20 20 20 53 43 43 53 20 69 6e 66 6f 20 61   ┆22   92.10.09  HEJ   SCCS info a┆
0x029d00…029d20             6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01 49 20 36 0a 2d 2d 20 31 2e 32 33 20 20 20 39 32 2e   ┆nd UNIX used.  I 6 -- 1.23   92.┆
0x029d20…029d40             31 30 2e 31 36 20 20 48 45 4a 20 20 20 4f 70 74 69 6f 6e 20 2f 51 55 49 45 54 20 69 6e 74 72 6f   ┆10.16  HEJ   Option /QUIET intro┆
0x029d40…029d60             64 75 63 65 64 20 66 6f 72 20 6d 61 6b 69 6e 67 20 70 6c 69 62 6c 6f 6f 6b 2e 6c 73 74 2e 0a 01   ┆duced for making pliblook.lst.  ┆
0x029d60…029d80             45 20 36 0a 01 45 20 35 0a 2d 2d 0a 01 44 20 35 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆E 6  E 5 --  D 5 ---------------┆
0x029d80…029da0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x029da0…029dc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 7b 0a 01 45 20 35 0a 2d 2d 2d 2d 2d 2d 2d   ┆-------------- *) {  E 5 -------┆
0x029dc0…029de0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x029de0…029e00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09   ┆---------------------------- -- ┆
0x029e00…029e20 (11, 0, 6)  53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50   ┆SCCS information -- File   :  %P┆
0x029e20…029e40             25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20   ┆% -- Module :  %M% -- Version:  ┆
0x029e40…029e60             25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d   ┆%I% -- Date   :  %E%  %U% ------┆
0x029e60…029e80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x029e80…029ea0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 01 44   ┆-----------------------------  D┆
0x029ea0…029ec0             20 35 0a 7d 0a 01 45 20 35 0a 01 49 20 35 0a 2a 29 0a 01 45 20 35 0a 0a 0c 0a 0a 55 73 65 73 20   ┆ 5 }  E 5  I 5 *)  E 5     Uses ┆
0x029ec0…029ee0             44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49 42 55 4e 49 54 3b 0a 0a 28 2a 24 4d 20 38 31 39   ┆DOS, Cbreak, PLIBUNIT;  (*$M 819┆
0x029ee0…029f00             32 2c 31 30 32 34 2c 34 30 39 36 20 20 73 74 61 63 6b 20 61 6e 64 20 68 65 61 70 20 20 2a 29 0a   ┆2,1024,4096  stack and heap  *) ┆
0x029f00…029f20             28 2a 24 52 2b 09 09 72 61 6e 67 65 20 63 68 65 63 6b 20 20 2a 29 0a 28 2a 24 49 2d 09 09 2a 29   ┆(*$R+  range check  *) (*$I-  *)┆
0x029f20…029f40             0a 0a 43 6f 6e 73 74 0a 01 44 20 35 0a 20 20 20 76 65 72 73 69 6f 6e 09 3d 20 20 27 20 76 65 72   ┆  Const  D 5    version =  ' ver┆
0x029f40…029f60             73 69 6f 6e 20 20 31 2e 32 31 2c 20 20 20 31 39 39 32 2e 30 37 2e 31 37 20 20 20 20 27 20 3b 0a   ┆sion  1.21,   1992.07.17    ' ; ┆
0x029f60…029f80             01 45 20 35 0a 01 49 20 35 0a 20 20 20 73 63 63 73 5f 64 61 74 65 20 20 20 20 3d 20 27 25 45 25   ┆ E 5  I 5    sccs_date    = '%E%┆
0x029f80…029fa0             27 20 3b 0a 01 45 20 35 0a 20 20 20 63 75 72 72 65 6e 74 5f 63 6f 6d 70 69 6c 65 72 20 3d 20 20   ┆' ;  E 5    current_compiler =  ┆
0x029fa0…029fc0             31 30 3b 0a 20 20 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 50 32 32 27 20 3b 0a   ┆10;    def_extension=  '.P22' ; ┆
0x029fc0…029fe0             20 20 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 54 32 32 27 20 3b 0a 01 49 20   ┆   comp_extension=  '.T22' ;  I ┆
0x029fe0…02a000             35 0a 20 20 20 62 6f 6f 74 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 42 32 32 27 20 3b 0a 01   ┆5    boot_extension=  '.B22' ;  ┆
0x02a000…02a020 (11, 0, 7)  45 20 35 0a 20 20 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 3d 20 33 30 3b 20 20 20 20 20 20   ┆E 5    max_obj_params= 30;      ┆
0x02a020…02a040             20 20 20 20 20 28 2a 20 20 73 61 6d 65 20 6c 69 6d 69 74 20 61 73 20 70 61 73 73 20 35 20 20 2a   ┆     (*  same limit as pass 5  *┆
0x02a040…02a060             29 0a 20 20 20 64 65 62 75 67 33 09 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65   ┆)    debug3 =  false; (*  for de┆
0x02a060…02a080             62 75 67 20 6f 75 74 70 75 74 20 69 6e 20 73 6b 69 70 20 20 2a 29 0a 20 20 20 64 65 62 75 67 34   ┆bug output in skip  *)    debug4┆
0x02a080…02a0a0             20 20 20 20 20 20 20 3d 20 20 66 61 6c 73 65 3b 20 20 20 20 20 20 20 28 2a 20 20 66 6f 72 20 64   ┆       =  false;       (*  for d┆
0x02a0a0…02a0c0             65 62 75 67 20 6f 75 74 70 75 74 20 70 72 6f 67 20 73 69 7a 65 20 20 2a 29 0a 0a 54 79 70 65 0a   ┆ebug output prog size  *)  Type ┆
0x02a0c0…02a0e0             20 20 20 6f 70 74 69 6f 6e 5f 74 79 70 65 09 3d 0a 20 20 20 20 28 20 6f 70 74 69 6f 6e 5f 6c 6f   ┆   option_type =     ( option_lo┆
0x02a0e0…02a100             6f 6b 75 70 2c 20 6f 70 74 69 6f 6e 5f 61 6c 6c 2c 20 6f 70 74 69 6f 6e 5f 69 6d 61 67 65 2c 20   ┆okup, option_all, option_image, ┆
0x02a100…02a120             6f 70 74 69 6f 6e 5f 70 61 72 61 6d 73 2c 0a 20 20 20 20 20 20 6f 70 74 69 6f 6e 5f 63 6f 6d 70   ┆option_params,       option_comp┆
0x02a120…02a140             69 6c 65 72 2c 20 6f 70 74 69 6f 6e 5f 64 65 74 61 69 6c 20 29 3b 0a 0a 70 61 72 61 6d 5f 64 65   ┆iler, option_detail );  param_de┆
0x02a140…02a160             73 63 72 20 3d 0a 20 20 72 65 63 6f 72 64 0a 20 20 70 61 72 61 6d 63 6f 75 6e 74 20 3a 20 77 6f   ┆scr =   record   paramcount : wo┆
0x02a160…02a180             72 64 3b 0a 20 20 70 61 72 61 6d 20 20 20 20 20 20 20 20 3a 20 61 72 72 61 79 20 5b 20 31 20 2e   ┆rd;   param        : array [ 1 .┆
0x02a180…02a1a0             2e 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 5d 20 6f 66 0a 20 20 20 20 72 65 63 6f 72 64   ┆. max_obj_params ] of     record┆
0x02a1a0…02a1c0             0a 20 20 20 20 70 61 72 61 6d 5f 6b 69 6e 64 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 70 61 72 61   ┆     param_kind : word;     para┆
0x02a1c0…02a1e0             6d 5f 73 69 7a 65 20 3a 20 77 6f 72 64 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 20 20   ┆m_size : word     end   end;    ┆
0x02a1e0…02a200             70 61 72 61 6d 5f 6d 6f 64 65 5f 74 61 62 6c 65 20 3d 20 20 61 72 72 61 79 20 5b 20 30 2e 2e 37   ┆param_mode_table =  array [ 0..7┆
0x02a200…02a220 (11, 0, 8)  20 5d 20 6f 66 20 73 74 72 69 6e 67 5b 37 5d 3b 0a 20 20 70 61 72 61 6d 5f 63 6c 61 73 73 5f 74   ┆ ] of string[7];   param_class_t┆
0x02a220…02a240             61 62 6c 65 20 3d 20 20 61 72 72 61 79 20 5b 20 31 2e 2e 31 31 20 5d 20 6f 66 20 73 74 72 69 6e   ┆able =  array [ 1..11 ] of strin┆
0x02a240…02a260             67 5b 39 5d 3b 0a 20 20 70 61 63 6b 61 67 65 5f 6e 61 6d 65 5f 74 61 62 6c 65 20 3d 20 20 61 72   ┆g[9];   package_name_table =  ar┆
0x02a260…02a280             72 61 79 20 5b 20 30 2e 2e 37 20 5d 20 6f 66 20 73 74 72 69 6e 67 5b 36 5d 3b 0a 0a 0a 43 6f 6e   ┆ray [ 0..7 ] of string[6];   Con┆
0x02a280…02a2a0             73 74 0a 20 20 70 61 72 61 6d 5f 6d 6f 64 65 5f 74 78 74 20 3a 20 70 61 72 61 6d 5f 6d 6f 64 65   ┆st   param_mode_txt : param_mode┆
0x02a2a0…02a2c0             5f 74 61 62 6c 65 20 3d 20 28 0a 20 20 20 20 27 2a 20 20 20 20 20 20 27 2c 20 27 76 61 72 20 20   ┆_table = (     '*      ', 'var  ┆
0x02a2c0…02a2e0             20 20 27 2c 20 27 76 61 6c 75 65 20 20 27 2c 20 27 72 65 73 75 6c 74 20 27 2c 0a 20 20 20 20 27   ┆  ', 'value  ', 'result ',     '┆
0x02a2e0…02a300             2a 2a 20 20 20 20 20 27 2c 20 27 73 68 61 72 65 64 20 27 2c 20 27 69 6e 73 70 65 63 74 27 2c 20   ┆**     ', 'shared ', 'inspect', ┆
0x02a300…02a320             27 2a 2a 2a 20 20 20 20 27 20 29 3b 0a 0a 20 20 70 61 72 61 6d 5f 63 6c 61 73 73 5f 74 78 74 20   ┆'***    ' );    param_class_txt ┆
0x02a320…02a340             3a 20 70 61 72 61 6d 5f 63 6c 61 73 73 5f 74 61 62 6c 65 20 3d 20 28 0a 20 20 20 20 27 70 6f 69   ┆: param_class_table = (     'poi┆
0x02a340…02a360             6e 74 65 72 20 20 27 2c 20 27 6d 61 69 6c 62 6f 78 20 20 27 2c 20 27 72 65 66 65 72 65 6e 63 65   ┆nter  ', 'mailbox  ', 'reference┆
0x02a360…02a380             27 2c 20 27 70 72 6f 63 65 73 73 20 20 27 2c 0a 20 20 20 20 27 70 6f 6f 6c 20 20 20 20 20 27 2c   ┆', 'process  ',     'pool     ',┆
0x02a380…02a3a0             20 27 73 79 73 20 72 65 63 2e 20 27 2c 20 27 73 79 73 20 61 72 72 61 79 27 2c 20 27 73 69 6d 70   ┆ 'sys rec. ', 'sys array', 'simp┆
0x02a3a0…02a3c0             6c 65 20 20 20 27 2c 0a 20 20 20 20 27 63 6c 61 73 73 5f 39 20 20 27 2c 20 27 63 68 61 69 6e 20   ┆le   ',     'class_9  ', 'chain ┆
0x02a3c0…02a3e0             20 20 20 27 2c 20 27 63 6c 61 73 73 5f 31 31 20 27 20 29 3b 0a 0a 20 20 70 61 63 6b 61 67 65 5f   ┆   ', 'class_11 ' );    package_┆
0x02a3e0…02a400             6e 61 6d 65 20 3a 20 70 61 63 6b 61 67 65 5f 6e 61 6d 65 5f 74 61 62 6c 65 20 3d 20 28 20 20 20   ┆name : package_name_table = (   ┆
0x02a400…02a420 (11, 0, 9)  20 20 20 20 20 20 27 6e 6f 20 69 64 2e 27 2c 0a 20 20 20 20 27 53 57 32 31 30 31 27 2c 20 27 53   ┆      'no id.',     'SW2101', 'S┆
0x02a420…02a440             57 32 31 30 34 27 2c 20 27 53 57 32 31 30 33 27 2c 20 27 53 57 32 31 31 31 27 2c 20 27 53 57 32   ┆W2104', 'SW2103', 'SW2111', 'SW2┆
0x02a440…02a460             31 31 34 27 2c 0a 20 20 20 20 27 70 61 63 6b 20 36 27 2c 20 27 70 61 63 6b 20 37 27 20 29 3b 0a   ┆114',     'pack 6', 'pack 7' ); ┆
0x02a460…02a480             0a 43 6f 6e 73 74 0a 20 20 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64 3a 20 20 62 6f 6f 6c 65 61   ┆ Const    source_opened:  boolea┆
0x02a480…02a4a0             6e 09 3d 20 20 66 61 6c 73 65 3b 0a 01 49 20 36 0a 20 20 20 73 68 6f 77 5f 6d 79 5f 69 64 09 3a   ┆n =  false;  I 6    show_my_id :┆
0x02a4a0…02a4c0             20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 20 74 72 75 65 3b 09 28 2a 20 20 66 6f 72 20 6a 6f 62 20   ┆  boolean =   true; (*  for job ┆
0x02a4c0…02a4e0             20 20 6f 75 74 70 75 74 20 20 2a 29 0a 01 45 20 36 0a 20 20 20 64 65 62 75 67 09 3a 20 20 62 6f   ┆  output  *)  E 6    debug :  bo┆
0x02a4e0…02a500             6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75   ┆olean =  false; (*  for debug ou┆
0x02a500…02a520             74 70 75 74 20 20 2a 29 0a 0a 0a 0a 0a 56 61 72 0a 20 20 20 6f 70 74 69 6f 6e 09 3a 20 20 6f 70   ┆tput  *)     Var    option :  op┆
0x02a520…02a540             74 69 6f 6e 5f 74 79 70 65 3b 0a 20 20 20 6c 69 62 5f 6e 61 6d 65 09 3a 20 20 70 61 74 68 73 74   ┆tion_type;    lib_name :  pathst┆
0x02a540…02a560             72 3b 09 09 28 2a 20 20 70 61 74 68 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65   ┆r;  (*  path of destination file┆
0x02a560…02a580             09 2a 29 0a 20 20 20 73 6f 75 72 63 65 09 3a 20 20 66 69 6c 65 3b 09 09 28 2a 20 20 6c 69 62 72   ┆ *)    source :  file;  (*  libr┆
0x02a580…02a5a0             61 72 79 20 66 69 6c 65 09 09 2a 29 0a 20 20 20 74 63 09 09 3a 20 20 63 68 61 72 3b 0a 20 20 20   ┆ary file  *)    tc  :  char;    ┆
0x02a5a0…02a5c0             65 78 69 74 73 61 76 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d   ┆exitsave :  pointer;   (*-------┆
0x02a5c0…02a5e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x02a600…02a620 (11, 0, 10) 2d 2d 2a 29 0a 0a 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 65 72 72 6f 72 20 28 20 65 72 72 6f   ┆--*)      Procedure error ( erro┆
0x02a620…02a640             72 6c 65 76 65 6c 3a 20 77 6f 72 64 3b 20 73 74 72 3a 20 73 74 72 69 6e 67 29 3b 0a 20 20 62 65   ┆rlevel: word; str: string);   be┆
0x02a640…02a660             67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 20 29 3b 0a 20   ┆gin   writeln ( output, str );  ┆
0x02a660…02a680             20 68 61 6c 74 20 28 20 65 72 72 6f 72 6c 65 76 65 6c 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 20   ┆ halt ( errorlevel);   end;     ┆
0x02a680…02a6a0             50 72 6f 63 65 64 75 72 65 20 72 65 61 64 5f 70 61 72 61 6d 73 20 28 20 76 61 72 20 66 69 6c 65   ┆Procedure read_params ( var file┆
0x02a6a0…02a6c0             6e 61 6d 65 3a 20 70 61 74 68 73 74 72 3b 20 76 61 72 20 6f 70 74 69 6f 6e 3a 20 6f 70 74 69 6f   ┆name: pathstr; var option: optio┆
0x02a6c0…02a6e0             6e 5f 74 79 70 65 29 3b 0a 20 28 2a 20 20 72 65 61 64 20 6c 69 73 74 20 6f 66 20 70 61 72 61 6d   ┆n_type);  (*  read list of param┆
0x02a6e0…02a700             65 74 65 72 73 0a 20 2d 2d 20 20 61 6e 64 20 63 68 65 63 6b 20 74 68 61 74 20 73 6f 75 72 63 65   ┆eters  --  and check that source┆
0x02a700…02a720             20 66 69 6c 65 73 20 65 78 69 73 74 0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20 6f 72 20 68 61 6c   ┆ files exist  --  returns or hal┆
0x02a720…02a740             74 73 20 74 68 65 20 70 72 6f 67 72 61 6d 0a 20 2d 2d 20 20 47 6c 6f 62 61 6c 73 3a 20 20 73 6f   ┆ts the program  --  Globals:  so┆
0x02a740…02a760             75 72 63 65 2c 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 63 6f 6d 70 5f 65 78 74 65 6e 73   ┆urce, def_extension, comp_extens┆
0x02a760…02a780             69 6f 6e 2c 20 6f 6c 64 6c 69 62 5f 70 61 74 68 0a 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20   ┆ion, oldlib_path  *)   var      ┆
0x02a780…02a7a0             70 2c 20 70 6e 6f 09 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 20 70 61 72 61 6d 09 3a 20 20 70 61   ┆p, pno :  word;      param :  pa┆
0x02a7a0…02a7c0             74 68 73 74 72 3b 0a 20 20 20 20 20 64 69 72 09 3a 20 20 64 69 72 73 74 72 3b 0a 20 20 20 20 20   ┆thstr;      dir :  dirstr;      ┆
0x02a7c0…02a7e0             6e 61 6d 65 09 3a 20 20 6e 61 6d 65 73 74 72 3b 0a 20 20 20 20 20 65 78 74 09 3a 20 20 65 78 74   ┆name :  namestr;      ext :  ext┆
0x02a7e0…02a800             73 74 72 3b 0a 0a 20 20 20 70 72 6f 63 65 64 75 72 65 20 72 65 61 64 5f 6f 70 74 69 6f 6e 73 20   ┆str;     procedure read_options ┆
0x02a800…02a820 (11, 0, 11) 28 20 76 61 72 20 74 78 74 3a 20 70 61 74 68 73 74 72 3b 20 20 76 61 72 20 20 6f 70 74 3a 20 6f   ┆( var txt: pathstr;  var  opt: o┆
0x02a820…02a840             70 74 69 6f 6e 5f 74 79 70 65 29 3b 0a 20 20 20 20 20 76 61 72 0a 20 20 20 20 20 20 20 70 20 20   ┆ption_type);      var        p  ┆
0x02a840…02a860             20 20 3a 20 20 69 6e 74 65 67 65 72 3b 0a 20 20 20 20 20 20 20 74 61 69 6c 20 3a 20 20 70 61 74   ┆  :  integer;        tail :  pat┆
0x02a860…02a880             68 73 74 72 3b 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 69 66 20 66 61 6c 73 65 20 74   ┆hstr;      begin      if false t┆
0x02a880…02a8a0             68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 70 61 72 61 6d   ┆hen  writeln ( output, '-- param┆
0x02a8a0…02a8c0             3a 27 2c 20 74 78 74 29 3b 0a 20 20 20 20 20 70 3a 3d 20 70 6f 73 20 28 20 27 2f 27 2c 20 74 78   ┆:', txt);      p:= pos ( '/', tx┆
0x02a8c0…02a8e0             74 29 3b 0a 20 20 20 20 20 69 66 20 70 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 62 65   ┆t);      if p > 0 then        be┆
0x02a8e0…02a900             67 69 6e 0a 20 20 20 20 20 20 20 74 61 69 6c 3a 3d 20 63 6f 70 79 20 28 20 74 78 74 2c 20 70 2c   ┆gin        tail:= copy ( txt, p,┆
0x02a900…02a920             20 6c 65 6e 67 74 68 20 28 20 74 78 74 29 20 2d 20 70 20 2b 20 31 29 3b 0a 20 20 20 20 20 20 20   ┆ length ( txt) - p + 1);        ┆
0x02a920…02a940             64 65 6c 65 74 65 20 28 20 74 78 74 2c 20 70 2c 20 37 39 29 3b 0a 20 20 20 20 20 69 66 20 66 61   ┆delete ( txt, p, 79);      if fa┆
0x02a940…02a960             6c 73 65 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20   ┆lse then  writeln ( output, '-- ┆
0x02a960…02a980             74 61 69 6c 20 3a 27 2c 20 74 61 69 6c 2c 20 27 20 20 69 6e 20 72 65 61 64 20 6f 70 74 69 6f 6e   ┆tail :', tail, '  in read option┆
0x02a980…02a9a0             73 27 29 3b 0a 20 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 2f 6c 27 2c 20 74 61 69 6c 29   ┆s');        if pos ( '/l', tail)┆
0x02a9a0…02a9c0             20 3e 20 30 20 74 68 65 6e 20 6f 70 74 3a 3d 20 6f 70 74 69 6f 6e 5f 6c 6f 6f 6b 75 70 3b 0a 20   ┆ > 0 then opt:= option_lookup;  ┆
0x02a9c0…02a9e0             20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 2f 61 27 2c 20 74 61 69 6c 29 20 3e 20 30 20 74   ┆      if pos ( '/a', tail) > 0 t┆
0x02a9e0…02aa00             68 65 6e 20 6f 70 74 3a 3d 20 6f 70 74 69 6f 6e 5f 61 6c 6c 3b 0a 20 20 20 20 20 20 20 69 66 20   ┆hen opt:= option_all;        if ┆
0x02aa00…02aa20 (11, 0, 12) 70 6f 73 20 28 20 27 2f 69 27 2c 20 74 61 69 6c 29 20 3e 20 30 20 74 68 65 6e 20 6f 70 74 3a 3d   ┆pos ( '/i', tail) > 0 then opt:=┆
0x02aa20…02aa40             20 6f 70 74 69 6f 6e 5f 69 6d 61 67 65 3b 0a 20 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27   ┆ option_image;        if pos ( '┆
0x02aa40…02aa60             2f 70 27 2c 20 74 61 69 6c 29 20 3e 20 30 20 74 68 65 6e 20 6f 70 74 3a 3d 20 6f 70 74 69 6f 6e   ┆/p', tail) > 0 then opt:= option┆
0x02aa60…02aa80             5f 70 61 72 61 6d 73 3b 0a 20 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 2f 63 27 2c 20 74   ┆_params;        if pos ( '/c', t┆
0x02aa80…02aaa0             61 69 6c 29 20 3e 20 30 20 74 68 65 6e 20 6f 70 74 3a 3d 20 6f 70 74 69 6f 6e 5f 63 6f 6d 70 69   ┆ail) > 0 then opt:= option_compi┆
0x02aaa0…02aac0             6c 65 72 3b 0a 20 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 2f 64 27 2c 20 74 61 69 6c 29   ┆ler;        if pos ( '/d', tail)┆
0x02aac0…02aae0             20 3e 20 30 20 74 68 65 6e 20 6f 70 74 3a 3d 20 6f 70 74 69 6f 6e 5f 64 65 74 61 69 6c 3b 0a 01   ┆ > 0 then opt:= option_detail;  ┆
0x02aae0…02ab00             49 20 36 0a 20 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 2f 71 27 2c 20 74 61 69 6c 29 20   ┆I 6        if pos ( '/q', tail) ┆
0x02ab00…02ab20             3e 20 30 20 74 68 65 6e 20 73 68 6f 77 5f 6d 79 5f 69 64 3a 3d 20 66 61 6c 73 65 3b 0a 01 45 20   ┆> 0 then show_my_id:= false;  E ┆
0x02ab20…02ab40             36 0a 20 20 20 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 2f 74 27 2c 20 74 61 69 6c 29 20 3e 20   ┆6        if pos ( '/t', tail) > ┆
0x02ab40…02ab60             30 20 74 68 65 6e 20 64 65 62 75 67 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b   ┆0 then debug:= true;        end;┆
0x02ab60…02ab80             0a 20 20 20 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆      if false then  writeln ( o┆
0x02ab80…02aba0             75 74 70 75 74 2c 20 27 2d 2d 20 70 61 72 61 6d 3a 27 2c 20 74 78 74 2c 20 27 20 20 61 66 74 65   ┆utput, '-- param:', txt, '  afte┆
0x02aba0…02abc0             72 20 72 65 61 64 20 6f 70 74 69 6f 6e 73 27 29 3b 0a 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20   ┆r read options');      end;  (* ┆
0x02abc0…02abe0             20 72 65 61 64 20 6f 70 74 69 6f 6e 73 20 20 2a 29 0a 0a 0a 0a 0a 20 20 62 65 67 69 6e 0a 0a 20   ┆ read options  *)       begin   ┆
0x02abe0…02ac00             20 69 66 20 28 20 70 61 72 61 6d 63 6f 75 6e 74 20 3d 20 30 20 29 20 6f 72 20 28 20 70 61 72 61   ┆ if ( paramcount = 0 ) or ( para┆
0x02ac00…02ac20 (11, 0, 13) 6d 73 74 72 20 28 20 31 29 20 3d 20 27 48 45 4c 50 27 20 29 0a 20 20 74 68 65 6e 20 62 65 67 69   ┆mstr ( 1) = 'HELP' )   then begi┆
0x02ac20…02ac40             6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 48 65 6c 70 20 69 6e   ┆n     writeln ( output, 'Help in┆
0x02ac40…02ac60             66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 50 4c 49 42 6c 6f 6f 6b 75 70 3a 27 29 3b 0a 20 20 20   ┆formation for PLIBlookup:');    ┆
0x02ac60…02ac80             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 27 54 68 65 20 70 72 6f 67   ┆ writeln ( output,     'The prog┆
0x02ac80…02aca0             72 61 6d 20 70 72 6f 64 75 63 65 73 20 61 20 63 61 74 61 6c 6f 67 20 6c 69 73 74 69 6e 67 20 6f   ┆ram produces a catalog listing o┆
0x02aca0…02acc0             66 20 74 68 65 20 70 72 6f 67 72 61 6d 73 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆f the programs');     writeln ( ┆
0x02acc0…02ace0             6f 75 74 70 75 74 2c 20 27 20 69 6e 20 61 20 52 43 35 30 30 30 20 6f 62 6a 65 63 74 20 6c 69 62   ┆output, ' in a RC5000 object lib┆
0x02ace0…02ad00             72 61 72 79 2e 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a   ┆rary.');     writeln ( output); ┆
0x02ad00…02ad20             20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 43 61 6c 6c 20 73 79 6e 74   ┆    writeln ( output, 'Call synt┆
0x02ad20…02ad40             61 78 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20   ┆ax:');     writeln ( output,    ┆
0x02ad40…02ad60             20 20 20 27 50 4c 49 42 4c 4f 4f 4b 20 3c 6c 69 62 72 61 72 79 3e 20 7b 20 6f 70 74 69 6f 6e 20   ┆   'PLIBLOOK <library> { option ┆
0x02ad60…02ad80             7d 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20   ┆}');     writeln ( output,      ┆
0x02ad80…02ada0             20 27 20 20 20 20 20 20 20 20 20 3c 6c 69 62 72 61 72 79 3e 3a 27 29 3b 0a 20 20 20 20 77 72 69   ┆ '         <library>:');     wri┆
0x02ada0…02adc0             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20   ┆teln ( output,       '          ┆
0x02adc0…02ade0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 49 42 2d 3c 66 69 6c 65 70 61 74 68 3e 20 20 20   ┆               LIB-<filepath>   ┆
0x02ade0…02ae00             20 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 6c 69 62 72 61 72 79 20 66 69 6c 65 27 29 3b 0a 20   ┆       name of library file');  ┆
0x02ae00…02ae20 (11, 0, 14) 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20   ┆   writeln ( output,       '    ┆
0x02ae20…02ae40             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 66 69 6c 65 70 61 74 68 3e 20   ┆                     <filepath> ┆
0x02ae40…02ae60             20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 6c 69 62 72 61 72 79 20 66 69 6c   ┆             name of library fil┆
0x02ae60…02ae80             65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20   ┆e');     writeln ( output,      ┆
0x02ae80…02aea0             20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e   ┆ '                 Default exten┆
0x02aea0…02aec0             73 69 6f 6e 20 69 73 20 20 22 27 2c 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 27 22 20 20   ┆sion is  "', def_extension, '"  ┆
0x02aec0…02aee0             27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20   ┆');     writeln ( output,       ┆
0x02aee0…02af00             27 20 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e   ┆'         option:');     writeln┆
0x02af00…02af20             20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ ( output,       '              ┆
0x02af20…02af40             20 20 20 20 20 20 20 20 20 20 20 2f 4c 4f 4f 4b 55 50 20 20 20 20 61 6c 6c 20 70 72 6f 67 72 61   ┆           /LOOKUP    all progra┆
0x02af40…02af60             6d 73 20 61 72 65 20 6c 69 73 74 65 64 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆ms are listed');     writeln ( o┆
0x02af60…02af80             75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆utput,       '                  ┆
0x02af80…02afa0             20 20 20 20 20 20 20 2f 41 4c 4c 20 20 20 20 20 20 20 61 6c 6c 20 65 78 74 65 72 6e 61 6c 20 72   ┆       /ALL       all external r┆
0x02afa0…02afc0             6f 75 74 69 6e 65 73 20 61 72 65 20 6c 69 73 74 65 64 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c   ┆outines are listed');     writel┆
0x02afc0…02afe0             6e 20 28 20 6f 75 74 70 75 74 2c 0a 01 44 20 35 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20   ┆n ( output,  D 5       '        ┆
0x02afe0…02b000             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 49 4d 41 47 45 20 20 20 20 20 77 6f 72 6b   ┆                 /IMAGE     work┆
0x02b000…02b020 (11, 0, 15) 73 20 61 73 20 70 6c 69 62 2e 69 6d 61 67 65 27 29 3b 0a 01 45 20 35 0a 01 49 20 35 0a 20 20 20   ┆s as plib.image');  E 5  I 5    ┆
0x02b020…02b040             20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 49 4d   ┆   '                         /IM┆
0x02b040…02b060             41 47 45 20 20 20 20 20 6d 6f 64 75 6c 65 73 20 69 6e 20 63 72 6f 73 73 6c 69 6e 6b 65 64 20 66   ┆AGE     modules in crosslinked f┆
0x02b060…02b080             69 6c 65 20 61 72 65 20 6c 69 73 74 65 64 27 29 3b 0a 01 45 20 35 0a 20 20 20 20 77 72 69 74 65   ┆ile are listed');  E 5     write┆
0x02b080…02b0a0             6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20   ┆ln ( output,       '            ┆
0x02b0a0…02b0c0             20 20 20 20 20 20 20 20 20 20 20 20 20 2f 50 41 52 41 4d 53 20 20 20 20 61 6c 6c 20 70 61 72 61   ┆             /PARAMS    all para┆
0x02b0c0…02b0e0             6d 65 74 65 72 6c 69 73 74 73 20 61 72 65 20 6c 69 73 74 65 64 2e 27 29 3b 0a 20 20 20 20 77 72   ┆meterlists are listed.');     wr┆
0x02b0e0…02b100             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20   ┆iteln ( output,       '         ┆
0x02b100…02b120             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 43 4f 4d 50 49 4c 45 52 20 20 70 61 63 6b 61   ┆                /COMPILER  packa┆
0x02b120…02b140             67 65 20 61 6e 64 20 72 65 6c 65 61 73 65 20 61 72 65 20 6c 69 73 74 65 64 2e 27 29 3b 0a 0a 20   ┆ge and release are listed.');   ┆
0x02b140…02b160             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20   ┆   writeln ( output,       '    ┆
0x02b160…02b180             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 44 45 54 41 49 4c 20 20 20 20   ┆                     /DETAIL    ┆
0x02b180…02b1a0             64 65 74 61 69 6c 65 64 20 68 65 78 20 64 75 6d 70 20 6f 66 20 63 6f 64 65 2e 27 29 3b 0a 0a 20   ┆detailed hex dump of code.');   ┆
0x02b1a0…02b1c0             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20   ┆   writeln ( output,       '    ┆
0x02b1c0…02b1e0             20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 66 61 75 6c 74 20 6f 70 74 69 6f 6e 20 69 73 20 20   ┆             Default option is  ┆
0x02b1e0…02b200             2f 4c 4f 4f 4b 55 50 20 20 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆/LOOKUP  ');     writeln ( outpu┆
0x02b200…02b220 (11, 1, 1)  74 29 3b 0a 0a 20 20 20 20 65 72 72 6f 72 20 28 20 31 2c 20 27 21 20 53 70 65 63 69 66 79 20 70   ┆t);      error ( 1, '! Specify p┆
0x02b220…02b240             61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 66 69 6c 65 6e 61 6d   ┆arameters');     end;    filenam┆
0x02b240…02b260             65 3a 3d 20 67 65 74 70 61 72 61 6d 20 28 20 31 29 3b 0a 20 20 70 20 3a 3d 20 70 6f 73 20 28 20   ┆e:= getparam ( 1);   p := pos ( ┆
0x02b260…02b280             27 6c 69 62 2d 27 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 69 66 20 70 20 3e 20 30 20 74 68   ┆'lib-', filename);   if p > 0 th┆
0x02b280…02b2a0             65 6e 20 66 69 6c 65 6e 61 6d 65 3a 3d 20 63 6f 70 79 20 28 20 66 69 6c 65 6e 61 6d 65 2c 20 70   ┆en filename:= copy ( filename, p┆
0x02b2a0…02b2c0             2b 34 2c 20 70 61 74 68 6c 65 6e 67 74 68 29 3b 0a 0a 20 20 6f 70 74 69 6f 6e 3a 3d 20 6f 70 74   ┆+4, pathlength);    option:= opt┆
0x02b2c0…02b2e0             69 6f 6e 5f 6c 6f 6f 6b 75 70 3b 0a 20 20 69 66 20 6c 65 6e 67 74 68 20 28 20 70 72 6f 67 72 61   ┆ion_lookup;   if length ( progra┆
0x02b2e0…02b300             6d 6e 61 6d 65 29 20 3e 20 30 20 74 68 65 6e 0a 01 49 20 36 0a 20 20 62 65 67 69 6e 0a 01 45 20   ┆mname) > 0 then  I 6   begin  E ┆
0x02b300…02b320             36 0a 20 20 63 61 73 65 20 70 72 6f 67 72 61 6d 6e 61 6d 65 5b 31 5d 20 6f 66 0a 20 20 20 20 27   ┆6   case programname[1] of     '┆
0x02b320…02b340             6c 27 3a 20 20 6f 70 74 69 6f 6e 3a 3d 20 6f 70 74 69 6f 6e 5f 6c 6f 6f 6b 75 70 3b 0a 20 20 20   ┆l':  option:= option_lookup;    ┆
0x02b340…02b360             20 27 61 27 3a 20 20 6f 70 74 69 6f 6e 3a 3d 20 6f 70 74 69 6f 6e 5f 61 6c 6c 3b 0a 20 20 20 20   ┆ 'a':  option:= option_all;     ┆
0x02b360…02b380             27 69 27 3a 20 20 6f 70 74 69 6f 6e 3a 3d 20 6f 70 74 69 6f 6e 5f 69 6d 61 67 65 3b 0a 20 20 20   ┆'i':  option:= option_image;    ┆
0x02b380…02b3a0             20 27 70 27 3a 20 20 6f 70 74 69 6f 6e 3a 3d 20 6f 70 74 69 6f 6e 5f 70 61 72 61 6d 73 3b 0a 20   ┆ 'p':  option:= option_params;  ┆
0x02b3a0…02b3c0             20 20 20 27 63 27 3a 20 20 6f 70 74 69 6f 6e 3a 3d 20 6f 70 74 69 6f 6e 5f 63 6f 6d 70 69 6c 65   ┆   'c':  option:= option_compile┆
0x02b3c0…02b3e0             72 3b 0a 20 20 20 20 27 64 27 3a 20 20 6f 70 74 69 6f 6e 3a 3d 20 6f 70 74 69 6f 6e 5f 64 65 74   ┆r;     'd':  option:= option_det┆
0x02b3e0…02b400             61 69 6c 0a 20 20 20 20 65 6c 73 65 20 20 6f 70 74 69 6f 6e 3a 3d 20 6f 70 74 69 6f 6e 5f 6c 6f   ┆ail     else  option:= option_lo┆
0x02b400…02b420 (11, 1, 2)  6f 6b 75 70 3b 0a 20 20 20 20 65 6e 64 3b 0a 01 49 20 36 0a 20 20 20 69 66 20 70 72 6f 67 72 61   ┆okup;     end;  I 6    if progra┆
0x02b420…02b440             6d 6e 61 6d 65 5b 31 5d 20 3d 20 27 71 27 20 74 68 65 6e 20 73 68 6f 77 5f 6d 79 5f 69 64 3a 3d   ┆mname[1] = 'q' then show_my_id:=┆
0x02b440…02b460             20 66 61 6c 73 65 3b 0a 20 20 20 69 66 20 70 72 6f 67 72 61 6d 6e 61 6d 65 5b 31 5d 20 3d 20 27   ┆ false;    if programname[1] = '┆
0x02b460…02b480             74 27 20 74 68 65 6e 20 64 65 62 75 67 3a 3d 20 74 72 75 65 3b 0a 20 20 20 72 65 61 64 5f 6f 70   ┆t' then debug:= true;    read_op┆
0x02b480…02b4a0             74 69 6f 6e 73 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 6f 70 74 69 6f 6e 29 3b 0a 20 20   ┆tions ( programname, option);   ┆
0x02b4a0…02b4c0             65 6e 64 3b 0a 01 45 20 36 0a 0a 20 20 72 65 61 64 5f 6f 70 74 69 6f 6e 73 20 28 20 66 69 6c 65   ┆end;  E 6    read_options ( file┆
0x02b4c0…02b4e0             6e 61 6d 65 2c 20 6f 70 74 69 6f 6e 29 3b 0a 0a 20 20 66 73 70 6c 69 74 20 28 20 66 69 6c 65 6e   ┆name, option);    fsplit ( filen┆
0x02b4e0…02b500             61 6d 65 2c 20 64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 69 66 20 65 78 74 20 3d   ┆ame, dir, name, ext);   if ext =┆
0x02b500…02b520             20 27 27 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 01 44 20 35 0a 20 20 20 20 66 69 6c 65   ┆ '' then     begin  D 5     file┆
0x02b520…02b540             6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 64 65 66 5f 65 78 74 65 6e 73 69 6f   ┆name:= dir + name + def_extensio┆
0x02b540…02b560             6e 3b 0a 01 45 20 35 0a 01 49 20 35 0a 20 20 20 20 69 66 20 6f 70 74 69 6f 6e 20 3d 20 6f 70 74   ┆n;  E 5  I 5     if option = opt┆
0x02b560…02b580             69 6f 6e 5f 69 6d 61 67 65 20 74 68 65 6e 0a 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 3a 3d 20   ┆ion_image then       filename:= ┆
0x02b580…02b5a0             64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 62 6f 6f 74 5f 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20   ┆dir + name + boot_extension     ┆
0x02b5a0…02b5c0             65 6c 73 65 0a 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65   ┆else       filename:= dir + name┆
0x02b5c0…02b5e0             20 2b 20 64 65 66 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 01 45 20 35 0a 20 20 20 20 69 66 20 6c 6f   ┆ + def_extension;  E 5     if lo┆
0x02b5e0…02b600             6f 6b 75 70 20 28 20 66 69 6c 65 6e 61 6d 65 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a   ┆okup ( filename) then  (*  ok  *┆
0x02b600…02b620 (11, 1, 3)  29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 66 69 6c   ┆)     else       begin       fil┆
0x02b620…02b640             65 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 63 6f 6d 70 5f 65 78 74 65 6e 73   ┆ename:= dir + name + comp_extens┆
0x02b640…02b660             69 6f 6e 3b 0a 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 66 69 6c 65 6e 61 6d 65 29   ┆ion;       if lookup ( filename)┆
0x02b660…02b680             20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20 65 6c 73 65 20 66 69 6c   ┆ then  (*  ok  *)       else fil┆
0x02b680…02b6a0             65 6e 61 6d 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20   ┆ename:= dir + name       end    ┆
0x02b6a0…02b6c0             20 65 6e 64 3b 0a 0a 20 20 66 6f 72 20 70 6e 6f 3a 3d 20 32 20 74 6f 20 70 61 72 61 6d 6c 69 73   ┆ end;    for pno:= 2 to paramlis┆
0x02b6c0…02b6e0             74 2e 69 74 65 6d 73 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 70 61 72 61 6d 3a 3d   ┆t.items do     begin     param:=┆
0x02b6e0…02b700             20 67 65 74 70 61 72 61 6d 20 28 20 70 6e 6f 29 3b 0a 20 20 20 20 72 65 61 64 5f 6f 70 74 69 6f   ┆ getparam ( pno);     read_optio┆
0x02b700…02b720             6e 73 20 28 20 70 61 72 61 6d 2c 20 6f 70 74 69 6f 6e 20 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a   ┆ns ( param, option );     end;  ┆
0x02b720…02b740             20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 66 69 6c 65 6e 61 6d 65 20 29 0a 20 20 74 68 65 6e 20   ┆  if lookup ( filename )   then ┆
0x02b740…02b760             20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 65 6c 73 65 20 65 72 72 6f 72 20 28 20 32 2c 20 63 6f   ┆ (*  ok  *)   else error ( 2, co┆
0x02b760…02b780             6e 63 61 74 20 28 27 2a 2a 2a 20 46 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20   ┆ncat ('*** File does not exist: ┆
0x02b780…02b7a0             27 2c 20 66 69 6c 65 6e 61 6d 65 29 29 0a 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 72 65 61 64 20   ┆', filename))    end;  (*  read ┆
0x02b7a0…02b7c0             70 61 72 61 6d 73 20 20 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 5f 70 61 72 61 6d   ┆params  *)    Procedure in_param┆
0x02b7c0…02b7e0             73 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20 63 6f 75 6e 74 3a 20 77 6f 72 64 3b 20 76 61   ┆s ( var f: file; count: word; va┆
0x02b7e0…02b800             72 20 70 6c 69 73 74 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 3b 20 76 61 72 20 6e 61 6d 65 3a 20   ┆r plist: param_descr; var name: ┆
0x02b800…02b820 (11, 1, 4)  61 6c 66 61 29 3b 0a 28 2a 20 72 65 61 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 20 6e 6f 5f 6f   ┆alfa); (* read parameters,  no_o┆
0x02b820…02b840             66 5f 70 61 72 61 6d 73 20 69 73 20 73 65 74 20 74 6f 20 63 6f 75 6e 74 20 20 2a 29 0a 20 20 76   ┆f_params is set to count  *)   v┆
0x02b840…02b860             61 72 20 20 70 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 69 6c 6c 63 68 61 72 20   ┆ar  p: word;   begin   fillchar ┆
0x02b860…02b880             28 20 70 6c 69 73 74 2c 20 73 69 7a 65 6f 66 20 28 20 70 6c 69 73 74 29 2c 20 30 29 3b 0a 20 20   ┆( plist, sizeof ( plist), 0);   ┆
0x02b880…02b8a0             77 69 74 68 20 70 6c 69 73 74 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 63   ┆with plist do     begin     if c┆
0x02b8a0…02b8c0             6f 75 6e 74 20 3e 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 74 68 65 6e 0a 20 20 20 20 20   ┆ount > max_obj_params then      ┆
0x02b8c0…02b8e0             20 65 72 72 6f 72 20 28 20 32 2c 20 27 74 6f 6f 20 6d 61 6e 79 20 70 61 72 61 6d 65 74 65 72 73   ┆ error ( 2, 'too many parameters┆
0x02b8e0…02b900             20 28 27 20 2b 20 73 74 72 69 6e 74 28 63 6f 75 6e 74 29 20 2b 0a 20 20 20 20 20 20 20 20 27 20   ┆ (' + strint(count) +         ' ┆
0x02b900…02b920             69 6e 20 27 2b 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 20 29 3b 0a 20 20 20 20 70 61 72   ┆in '+ stralfa ( name) );     par┆
0x02b920…02b940             61 6d 63 6f 75 6e 74 3a 3d 20 63 6f 75 6e 74 3b 0a 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20   ┆amcount:= count;     for p := 1 ┆
0x02b940…02b960             74 6f 20 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 77 69 74 68 20 70 61 72 61 6d 5b 70 5d 20 64   ┆to count do      with param[p] d┆
0x02b960…02b980             6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20   ┆o       begin       readinteger ┆
0x02b980…02b9a0             28 20 66 2c 20 70 61 72 61 6d 5f 6b 69 6e 64 29 3b 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65   ┆( f, param_kind);       readinte┆
0x02b9a0…02b9c0             67 65 72 20 28 20 66 2c 20 70 61 72 61 6d 5f 73 69 7a 65 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b   ┆ger ( f, param_size);       end;┆
0x02b9c0…02b9e0             0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0c 0a 0a 0a 50 72 6f 63 65 64 75 72 65   ┆     end;   end;       Procedure┆
0x02b9e0…02ba00             20 6c 6f 6f 6b 75 70 5f 6c 69 62 20 28 20 6c 69 62 5f 6e 61 6d 65 20 3a 20 70 61 74 68 73 74 72   ┆ lookup_lib ( lib_name : pathstr┆
0x02ba00…02ba20 (11, 1, 5)  3b 20 6f 70 74 69 6f 6e 3a 20 6f 70 74 69 6f 6e 5f 74 79 70 65 29 3b 0a 76 61 72 0a 64 61 74 65   ┆; option: option_type); var date┆
0x02ba20…02ba40             20 20 20 20 20 20 20 20 20 3a 20 77 6f 72 64 3b 0a 74 69 6d 65 20 20 20 20 20 20 20 20 20 3a 20   ┆         : word; time         : ┆
0x02ba40…02ba60             77 6f 72 64 3b 0a 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 2c 0a 6e 6f 5f 6f 66 5f 70 61 72   ┆word; no_of_externals, no_of_par┆
0x02ba60…02ba80             61 6d 73 20 2c 0a 6e 6f 5f 6f 66 5f 75 73 65 73 20 20 20 2c 0a 73 74 65 70 20 20 20 20 20 20 20   ┆ams , no_of_uses   , step       ┆
0x02ba80…02baa0             20 20 2c 0a 73 74 65 70 31 20 20 20 20 20 20 20 20 2c 0a 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73   ┆  , step1        , compiler_vers┆
0x02baa0…02bac0             69 6f 6e 2c 0a 70 61 72 61 6d 63 6f 75 6e 74 20 20 20 2c 0a 69 74 65 6d 5f 6e 75 6d 62 65 72 20   ┆ion, paramcount   , item_number ┆
0x02bac0…02bae0             20 3a 20 77 6f 72 64 3b 0a 7a 65 72 6f 65 73 20 20 20 20 20 20 20 3a 20 62 6f 6f 6c 65 61 6e 3b   ┆ : word; zeroes       : boolean;┆
0x02bae0…02bb00             0a 64 65 73 63 72 5f 70 6f 73 20 20 20 20 2c 0a 70 61 67 65 73 20 20 20 20 20 20 20 20 2c 0a 72   ┆ descr_pos    , pages        , r┆
0x02bb00…02bb20             65 6c 61 64 64 72 20 20 20 20 20 20 2c 0a 77 6f 72 6b 20 20 20 20 20 20 20 20 20 3a 20 20 6c 6f   ┆eladdr      , work         :  lo┆
0x02bb20…02bb40             6e 67 69 6e 74 3b 0a 0a 6e 65 77 68 65 61 64 09 09 3a 20 20 64 65 73 63 72 69 70 74 6f 72 5f 70   ┆ngint;  newhead  :  descriptor_p┆
0x02bb40…02bb60             61 72 74 31 3b 0a 65 78 74 6e 61 6d 65 09 09 3a 20 20 61 6c 66 61 3b 0a 70 61 72 61 6d 6c 69 73   ┆art1; extname  :  alfa; paramlis┆
0x02bb60…02bb80             74 20 20 20 20 20 20 20 3a 20 20 70 61 72 61 6d 5f 64 65 73 63 72 3b 0a 0a 63 77 20 3a 20 62 79   ┆t       :  param_descr;  cw : by┆
0x02bb80…02bba0             74 65 3b 0a 6d 78 2c 20 63 78 2c 0a 70 20 20 20 20 20 20 20 3a 20 20 77 6f 72 64 3b 0a 74 78 74   ┆te; mx, cx, p       :  word; txt┆
0x02bba0…02bbc0             34 20 20 20 20 3a 20 20 73 74 72 69 6e 67 5b 34 5d 3b 0a 73 74 61 6d 70 20 20 20 3a 20 20 64 61   ┆4    :  string[4]; stamp   :  da┆
0x02bbc0…02bbe0             74 65 74 69 6d 65 3b 0a 0a 63 6f 6e 73 74 0a 20 20 20 6c 69 6e 65 6e 6f 20 3a 20 20 77 6f 72 64   ┆tetime;  const    lineno :  word┆
0x02bbe0…02bc00             20 3d 20 20 30 3b 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 20 28 20 6e 6f 5f 6f   ┆ =  0;     procedure skip ( no_o┆
0x02bc00…02bc20 (11, 1, 6)  66 5f 62 79 74 65 73 20 3a 20 6c 6f 6e 67 69 6e 74 29 3b 0a 0a 20 20 76 61 72 20 20 63 75 72 5f   ┆f_bytes : longint);    var  cur_┆
0x02bc20…02bc40             70 6f 73 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 62 65 67 69 6e 0a 20 20 63 75 72 5f 70 6f 73 3a   ┆pos: longint;   begin   cur_pos:┆
0x02bc40…02bc60             3d 20 66 69 6c 65 70 6f 73 20 28 20 73 6f 75 72 63 65 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28   ┆= filepos ( source);   iocheck (┆
0x02bc60…02bc80             20 73 6f 75 72 63 65 29 3b 0a 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 62   ┆ source);   if debug3 then     b┆
0x02bc80…02bca0             65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20   ┆egin     writeln ( output);     ┆
0x02bca0…02bcc0             77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 73 6b 69 70 3a 20 62 65 66 6f 72 65 2c 20 6f   ┆write ( output, 'skip: before, o┆
0x02bcc0…02bce0             66 66 73 65 74 2c 20 61 66 74 65 72 3a 20 27 2c 20 63 75 72 5f 70 6f 73 2c 20 27 2c 20 27 2c 20   ┆ffset, after: ', cur_pos, ', ', ┆
0x02bce0…02bd00             6e 6f 5f 6f 66 5f 62 79 74 65 73 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 28 20 6e   ┆no_of_bytes);     end;    if ( n┆
0x02bd00…02bd20             6f 5f 6f 66 5f 62 79 74 65 73 20 3e 20 66 69 6c 65 73 69 7a 65 20 28 20 73 6f 75 72 63 65 29 20   ┆o_of_bytes > filesize ( source) ┆
0x02bd20…02bd40             2d 20 63 75 72 5f 70 6f 73 20 29 0a 20 20 6f 72 20 28 20 6e 6f 5f 6f 66 5f 62 79 74 65 73 20 3c   ┆- cur_pos )   or ( no_of_bytes <┆
0x02bd40…02bd60             20 2d 20 63 75 72 5f 70 6f 73 20 29 0a 20 20 20 20 74 68 65 6e 20 68 61 6c 74 20 28 20 31 30 30   ┆ - cur_pos )     then halt ( 100┆
0x02bd60…02bd80             29 3b 0a 0a 20 20 73 65 65 6b 20 28 20 73 6f 75 72 63 65 2c 20 63 75 72 5f 70 6f 73 20 2b 20 6e   ┆);    seek ( source, cur_pos + n┆
0x02bd80…02bda0             6f 5f 6f 66 5f 62 79 74 65 73 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29   ┆o_of_bytes);   iocheck ( source)┆
0x02bda0…02bdc0             3b 0a 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆;   if debug3 then     begin    ┆
0x02bdc0…02bde0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2c 20 27 2c 20 66 69 6c 65 70 6f 73   ┆ writeln ( output, ', ', filepos┆
0x02bde0…02be00             20 28 73 6f 75 72 63 65 29 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 20 28 2a 20 73   ┆ (source));     end;   end; (* s┆
0x02be00…02be20 (11, 1, 7)  6b 69 70 20 2a 29 0a 0a 0a 20 70 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 5f 68 65 61 64 6c 69   ┆kip *)    procedure write_headli┆
0x02be20…02be40             6e 65 3b 0a 20 62 65 67 69 6e 0a 20 20 69 66 20 6c 69 6e 65 6e 6f 20 3e 20 36 30 20 74 68 65 6e   ┆ne;  begin   if lineno > 60 then┆
0x02be40…02be60             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 23 31 32 29 3b 0a 20 20 69 66 20 6f 70   ┆ writeln ( output, #12);   if op┆
0x02be60…02be80             74 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 5f 63 6f 6d 70 69 6c 65 72 20 74 68 65 6e 0a 20 20 20 20   ┆tion = option_compiler then     ┆
0x02be80…02bea0             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 27 20 6e 72 20 20 6b 69 6e 64 20 20 20 20   ┆writeln ( output, ' nr  kind    ┆
0x02bea0…02bec0             20 20 6e 61 6d 65 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 72 20 72 65 6c 65 61 73 65 20   ┆  name         compiler release ┆
0x02bec0…02bee0             20 20 6f 62 6a 65 63 74 20 64 61 74 65 20 20 20 20 20 20 76 65 72 73 69 6f 6e 20 20 62 79 74 65   ┆  object date      version  byte┆
0x02bee0…02bf00             73 27 0a 29 20 65 6c 73 65 0a 20 69 66 20 6f 70 74 69 6f 6e 20 3c 3e 20 6f 70 74 69 6f 6e 5f 64   ┆s' ) else  if option <> option_d┆
0x02bf00…02bf20             65 74 61 69 6c 20 74 68 65 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 27   ┆etail then   writeln ( output, '┆
0x02bf20…02bf40             20 6e 72 20 20 6b 69 6e 64 20 20 20 20 20 20 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 73 6f 75   ┆ nr  kind      name          sou┆
0x02bf40…02bf60             72 63 65 20 64 61 74 65 20 20 20 20 20 20 20 6f 62 6a 65 63 74 20 64 61 74 65 20 20 20 20 20 20   ┆rce date       object date      ┆
0x02bf60…02bf80             76 65 72 73 69 6f 6e 20 20 62 79 74 65 73 27 0a 29 3b 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆version  bytes' ); writeln ( out┆
0x02bf80…02bfa0             70 75 74 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 62 65 67 69 6e 20 28 2a 20 6c 6f 6f 6b 75 70 20 6c   ┆put);   end;   begin (* lookup l┆
0x02bfa0…02bfc0             69 62 20 2a 29 0a 0a 6f 70 65 6e 5f 66 69 6c 65 20 28 20 73 6f 75 72 63 65 2c 20 6c 69 62 5f 6e   ┆ib *)  open_file ( source, lib_n┆
0x02bfc0…02bfe0             61 6d 65 2c 20 66 6d 5f 72 65 61 64 29 3b 0a 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64 20 20 3a 3d   ┆ame, fm_read); source_opened  :=┆
0x02bfe0…02c000             20 74 72 75 65 3b 0a 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 77 72 69 74 65   ┆ true;  writeln ( output); write┆
0x02c000…02c020 (11, 1, 8)  20 20 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 50 4c 49 42 4c 4f 4f 4b 20 27 29 3b 0a   ┆   ( output, '--   PLIBLOOK '); ┆
0x02c020…02c040             63 61 73 65 20 6f 70 74 69 6f 6e 20 6f 66 0a 20 20 6f 70 74 69 6f 6e 5f 61 6c 6c 20 20 20 20 3a   ┆case option of   option_all    :┆
0x02c040…02c060             20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 41 4c 4c 20 27 29 3b 0a 20 20 6f 70 74   ┆  write ( output, 'ALL ');   opt┆
0x02c060…02c080             69 6f 6e 5f 69 6d 61 67 65 20 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 49   ┆ion_image  :  write ( output, 'I┆
0x02c080…02c0a0             4d 41 47 45 20 27 29 3b 0a 20 20 6f 70 74 69 6f 6e 5f 70 61 72 61 6d 73 20 3a 20 20 77 72 69 74   ┆MAGE ');   option_params :  writ┆
0x02c0a0…02c0c0             65 20 28 20 6f 75 74 70 75 74 2c 20 27 50 41 52 41 4d 53 20 27 29 3b 0a 20 20 6f 70 74 69 6f 6e   ┆e ( output, 'PARAMS ');   option┆
0x02c0c0…02c0e0             5f 63 6f 6d 70 69 6c 65 72 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 43 4f   ┆_compiler :  write ( output, 'CO┆
0x02c0e0…02c100             4d 50 49 4c 45 52 20 27 29 3b 0a 20 20 6f 70 74 69 6f 6e 5f 64 65 74 61 69 6c 20 3a 20 20 77 72   ┆MPILER ');   option_detail :  wr┆
0x02c100…02c120             69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 44 45 54 41 49 4c 53 20 27 29 3b 0a 20 20 65 6e 64   ┆ite ( output, 'DETAILS ');   end┆
0x02c120…02c140             3b 0a 67 65 74 66 74 69 6d 65 20 28 20 73 6f 75 72 63 65 2c 20 77 6f 72 6b 29 3b 0a 75 6e 70 61   ┆; getftime ( source, work); unpa┆
0x02c140…02c160             63 6b 74 69 6d 65 20 28 20 77 6f 72 6b 2c 20 73 74 61 6d 70 29 3b 0a 77 69 74 68 20 73 74 61 6d   ┆cktime ( work, stamp); with stam┆
0x02c160…02c180             70 20 64 6f 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 6f 66 20 66 69   ┆p do   writeln ( output, ' of fi┆
0x02c180…02c1a0             6c 65 3a 20 27 2c 20 66 65 78 70 61 6e 64 20 28 20 6c 69 62 5f 6e 61 6d 65 29 2c 0a 20 20 20 20   ┆le: ', fexpand ( lib_name),     ┆
0x02c1a0…02c1c0             79 65 61 72 3a 37 2c 20 27 2d 27 2c 20 6d 6f 6e 74 68 2c 20 27 2d 27 2c 20 64 61 79 2c 20 68 6f   ┆year:7, '-', month, '-', day, ho┆
0x02c1c0…02c1e0             75 72 3a 33 2c 20 27 3a 27 2c 20 6d 69 6e 29 3b 0a 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆ur:3, ':', min);  writeln ( outp┆
0x02c1e0…02c200             75 74 29 3b 0a 0a 69 74 65 6d 5f 6e 75 6d 62 65 72 20 3a 3d 20 30 3b 0a 0a 72 65 70 65 61 74 0a   ┆ut);  item_number := 0;  repeat ┆
0x02c200…02c220 (11, 1, 9)  64 65 73 63 72 5f 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 73 6f 75 72 63 65 29 3b 0a 69   ┆descr_pos:= filepos ( source); i┆
0x02c220…02c240             6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 3b 0a 72 65 61 64 68 65 61 64 20 28 20 73 6f 75   ┆ocheck ( source); readhead ( sou┆
0x02c240…02c260             72 63 65 2c 20 6e 65 77 68 65 61 64 29 3b 0a 77 69 74 68 20 6e 65 77 68 65 61 64 20 64 6f 0a 69   ┆rce, newhead); with newhead do i┆
0x02c260…02c280             66 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72 6b   ┆f descriptor_length <> stop_mark┆
0x02c280…02c2a0             20 74 68 65 6e 0a 62 65 67 69 6e 0a 69 74 65 6d 5f 6e 75 6d 62 65 72 20 3a 3d 20 69 74 65 6d 5f   ┆ then begin item_number := item_┆
0x02c2a0…02c2c0             6e 75 6d 62 65 72 20 2b 20 31 3b 0a 6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f 20 2b 20 31 3b   ┆number + 1; lineno:= lineno + 1;┆
0x02c2c0…02c2e0             0a 69 66 20 6c 69 6e 65 6e 6f 20 6d 6f 64 20 36 30 20 3d 20 31 20 74 68 65 6e 20 77 72 69 74 65   ┆ if lineno mod 60 = 1 then write┆
0x02c2e0…02c300             5f 68 65 61 64 6c 69 6e 65 3b 0a 0a 69 66 20 6f 70 74 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 5f 64   ┆_headline;  if option = option_d┆
0x02c300…02c320             65 74 61 69 6c 20 74 68 65 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 27   ┆etail then   writeln ( output, '┆
0x02c320…02c340             20 6e 72 20 20 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 70 61 67 65 73 20 20 70 73 69 7a 65 20   ┆ nr  name          pages  psize ┆
0x02c340…02c360             20 6c 61 73 74 70 20 20 20 20 20 65 6e 74 72 79 20 20 20 20 65 78 63 65 70 74 20 20 20 61 70 70   ┆ lastp     entry    except   app┆
0x02c360…02c380             65 74 69 74 20 6f 66 66 73 65 74 20 27 29 3b 0a 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20   ┆etit offset '); write ( output, ┆
0x02c380…02c3a0             69 74 65 6d 5f 6e 75 6d 62 65 72 3a 33 2c 20 27 20 20 27 29 3b 0a 0a 69 66 20 6f 70 74 69 6f 6e   ┆item_number:3, '  ');  if option┆
0x02c3a0…02c3c0             20 3d 20 6f 70 74 69 6f 6e 5f 64 65 74 61 69 6c 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20   ┆ = option_detail then   begin   ┆
0x02c3c0…02c3e0             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65   ┆writeln ( output, stralfa ( name┆
0x02c3e0…02c400             29 2c 20 27 20 27 2c 0a 20 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 3a 36 2c 20 70 61 67 65 73 69 7a   ┆), ' ',   no_of_pages:6, pagesiz┆
0x02c400…02c420 (11, 1, 10) 65 3a 37 2c 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3a 37 2c 0a 20 20 65 6e 74 72 79   ┆e:7, last_page_length:7,   entry┆
0x02c420…02c440             5f 62 61 73 65 3a 35 2c 20 73 74 72 68 65 78 20 28 20 65 6e 74 72 79 5f 64 69 73 70 29 3a 35 2c   ┆_base:5, strhex ( entry_disp):5,┆
0x02c440…02c460             0a 20 20 65 78 63 65 70 74 69 6f 6e 5f 62 61 73 65 3a 35 2c 20 73 74 72 68 65 78 20 28 20 65 78   ┆   exception_base:5, strhex ( ex┆
0x02c460…02c480             63 65 70 74 69 6f 6e 5f 64 69 73 70 29 3a 35 2c 0a 20 20 64 65 66 61 75 6c 74 5f 61 70 70 65 74   ┆ception_disp):5,   default_appet┆
0x02c480…02c4a0             69 74 65 3a 31 30 2c 20 6c 61 73 74 5f 70 61 72 61 6d 5f 6f 66 66 73 65 74 3a 37 29 3b 0a 20 20   ┆ite:10, last_param_offset:7);   ┆
0x02c4a0…02c4c0             6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f 20 2b 20 31 3b 0a 28 2a 20 73 6b 69 70 20 72 65 73   ┆lineno:= lineno + 1; (* skip res┆
0x02c4c0…02c4e0             74 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 2a 29 0a 20 20 20 20 20   ┆t of descriptor segment *)      ┆
0x02c4e0…02c500             20 20 28 2a 2d 2d 20 73 6b 69 70 20 28 20 64 6f 75 62 6c 65 5f 69 6e 74 20 28 20 64 65 73 63 72   ┆  (*-- skip ( double_int ( descr┆
0x02c500…02c520             69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2d 20 6c 65 6e 67 74 68 5f 6f 66 5f 68 65 61 64 29 20 20   ┆iptor_length - length_of_head)  ┆
0x02c520…02c540             2d 2d 2a 29 0a 73 65 65 6b 20 28 20 73 6f 75 72 63 65 2c 20 64 65 73 63 72 5f 70 6f 73 20 2b 20   ┆--*) seek ( source, descr_pos + ┆
0x02c540…02c560             64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 29 3b 0a 69 6f 63 68 65 63 6b 20 28 20 73   ┆descriptor_length ); iocheck ( s┆
0x02c560…02c580             6f 75 72 63 65 29 0a 20 20 65 6e 64 0a 65 6c 73 65 0a 20 62 65 67 69 6e 20 20 28 2a 20 20 6f 70   ┆ource)   end else  begin  (*  op┆
0x02c580…02c5a0             74 69 6f 6e 20 6e 6f 74 20 64 65 74 61 69 6c 20 20 2a 29 0a 63 61 73 65 20 6b 69 6e 64 20 6f 66   ┆tion not detail  *) case kind of┆
0x02c5a0…02c5c0             0a 30 20 20 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 53 55 4d 20 20 20 20   ┆ 0   :  write ( output, 'SUM    ┆
0x02c5c0…02c5e0             20 20 20 27 29 3b 0a 31 20 20 20 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 50   ┆   '); 1   :  write ( output, 'P┆
0x02c5e0…02c600             52 4f 47 52 41 4d 20 20 20 27 29 3b 0a 32 2c 20 34 3a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70   ┆ROGRAM   '); 2, 4:  write ( outp┆
0x02c600…02c620 (11, 1, 11) 75 74 2c 20 27 50 52 4f 43 45 44 55 52 45 20 27 29 3b 0a 33 2c 20 35 3a 20 20 77 72 69 74 65 20   ┆ut, 'PROCEDURE '); 3, 5:  write ┆
0x02c620…02c640             28 20 6f 75 74 70 75 74 2c 20 27 46 55 4e 43 54 49 4f 4e 20 20 27 29 3b 0a 36 20 20 20 3a 20 20   ┆( output, 'FUNCTION  '); 6   :  ┆
0x02c640…02c660             77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 44 41 54 41 20 20 20 20 20 20 27 29 3b 0a 65   ┆write ( output, 'DATA      '); e┆
0x02c660…02c680             6e 64 3b 20 28 2a 20 63 61 73 65 20 6b 69 6e 64 20 2a 29 0a 0a 69 66 20 6b 69 6e 64 20 3d 20 73   ┆nd; (* case kind *)  if kind = s┆
0x02c680…02c6a0             75 6d 6b 69 6e 64 0a 74 68 65 6e 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 61   ┆umkind then write ( output, '':a┆
0x02c6a0…02c6c0             6c 66 61 6c 65 6e 67 74 68 20 2b 20 31 38 29 0a 65 6c 73 65 0a 0a 62 65 67 69 6e 0a 77 72 69 74   ┆lfalength + 18) else  begin writ┆
0x02c6c0…02c6e0             65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 2c 20 27 27 3a   ┆e ( output, stralfa ( name), '':┆
0x02c6e0…02c700             32 29 3b 0a 69 66 20 6f 70 74 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 5f 63 6f 6d 70 69 6c 65 72 20   ┆2); if option = option_compiler ┆
0x02c700…02c720             74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 74 78 74 34 3a 3d 20 27 2e 27 20 2b 20 73 74 72 69   ┆then   begin   txt4:= '.' + stri┆
0x02c720…02c740             6e 74 20 28 20 6c 6f 28 65 78 74 72 61 29 29 20 2b 20 27 20 20 20 27 3b 0a 20 20 77 72 69 74 65   ┆nt ( lo(extra)) + '   ';   write┆
0x02c740…02c760             20 28 20 6f 75 74 70 75 74 2c 20 70 61 63 6b 61 67 65 5f 6e 61 6d 65 5b 68 69 28 65 78 74 72 61   ┆ ( output, package_name[hi(extra┆
0x02c760…02c780             29 20 64 69 76 20 33 32 5d 2c 0a 20 20 20 20 28 20 68 69 28 65 78 74 72 61 29 20 61 6e 64 20 33   ┆) div 32],     ( hi(extra) and 3┆
0x02c780…02c7a0             31 20 29 3a 35 2c 20 74 78 74 34 2c 20 27 27 3a 33 29 0a 20 20 65 6e 64 0a 65 6c 73 65 0a 77 72   ┆1 ):5, txt4, '':3)   end else wr┆
0x02c7a0…02c7c0             69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 64 61 74 65 20 28 73 6f 75 72 63 65 5f 64 61   ┆ite ( output, strdate (source_da┆
0x02c7c0…02c7e0             74 65 29 2c 0a 20 20 20 27 3a 27 2c 20 73 74 72 74 69 6d 65 20 28 73 6f 75 72 63 65 5f 74 69 6d   ┆te),    ':', strtime (source_tim┆
0x02c7e0…02c800             65 29 2c 20 27 27 3a 32 29 3b 0a 0a 69 66 20 6f 70 74 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 5f 70   ┆e), '':2);  if option = option_p┆
0x02c800…02c820 (11, 1, 12) 61 72 61 6d 73 20 74 68 65 6e 0a 20 20 69 6e 5f 70 61 72 61 6d 73 20 28 20 73 6f 75 72 63 65 2c   ┆arams then   in_params ( source,┆
0x02c820…02c840             20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 2c 20 70 61 72 61 6d 6c 69 73 74 2c 20 6e 61 6d 65 29 3b   ┆ no_of_params, paramlist, name);┆
0x02c840…02c860             0a 0a 28 2a 20 73 6b 69 70 20 72 65 73 74 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67   ┆  (* skip rest of descriptor seg┆
0x02c860…02c880             6d 65 6e 74 20 2a 29 0a 20 20 20 20 20 20 20 28 2a 2d 2d 20 73 6b 69 70 20 28 20 64 6f 75 62 6c   ┆ment *)        (*-- skip ( doubl┆
0x02c880…02c8a0             65 5f 69 6e 74 20 28 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2d 20 6c 65 6e 67   ┆e_int ( descriptor_length - leng┆
0x02c8a0…02c8c0             74 68 5f 6f 66 5f 68 65 61 64 29 20 20 2d 2d 2a 29 0a 73 65 65 6b 20 28 20 73 6f 75 72 63 65 2c   ┆th_of_head)  --*) seek ( source,┆
0x02c8c0…02c8e0             20 64 65 73 63 72 5f 70 6f 73 20 2b 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 29   ┆ descr_pos + descriptor_length )┆
0x02c8e0…02c900             3b 0a 69 6f 63 68 65 63 6b 20 28 20 73 6f 75 72 63 65 29 0a 65 6e 64 3b 0a 0a 0a 28 2a 2d 2d 20   ┆; iocheck ( source) end;   (*-- ┆
0x02c900…02c920             77 69 74 68 20 64 61 74 65 20 61 73 20 64 61 74 65 20 3a 20 69 6e 74 65 67 65 72 20 64 6f 20 20   ┆with date as date : integer do  ┆
0x02c920…02c940             2a 29 0a 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 64 61 74 65 29 3b 0a   ┆*) readinteger ( source, date); ┆
0x02c940…02c960             72 65 61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 74 69 6d 65 29 3b 0a 69 66 20   ┆readinteger ( source, time); if ┆
0x02c960…02c980             6b 69 6e 64 20 3d 20 64 61 74 61 6b 69 6e 64 20 74 68 65 6e 0a 20 20 77 72 69 74 65 20 28 20 6f   ┆kind = datakind then   write ( o┆
0x02c980…02c9a0             75 74 70 75 74 2c 20 73 74 72 64 61 74 65 20 28 20 64 61 74 61 5f 6f 62 6a 65 63 74 5f 64 61 74   ┆utput, strdate ( data_object_dat┆
0x02c9a0…02c9c0             65 29 2c 20 27 3a 27 2c 20 73 74 72 74 69 6d 65 20 28 20 64 61 74 61 5f 6f 62 6a 65 63 74 5f 74   ┆e), ':', strtime ( data_object_t┆
0x02c9c0…02c9e0             69 6d 65 29 29 0a 65 6c 73 65 0a 20 20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 20 28 20 6f 75 74   ┆ime)) else   begin   write ( out┆
0x02c9e0…02ca00             70 75 74 2c 20 73 74 72 64 61 74 65 20 28 20 64 61 74 65 29 2c 20 27 3a 27 2c 20 73 74 72 74 69   ┆put, strdate ( date), ':', strti┆
0x02ca00…02ca20 (11, 1, 13) 6d 65 20 28 20 74 69 6d 65 29 29 3b 0a 0a 28 2a 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20   ┆me ( time));  (* version number ┆
0x02ca20…02ca40             2a 29 0a 20 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 3a 3d 20 74 69 6d 65 20 73 68 72   ┆*)   compiler_version:= time shr┆
0x02ca40…02ca60             20 31 31 3b 0a 20 20 69 66 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 3c 3e 20 63 75   ┆ 11;   if compiler_version <> cu┆
0x02ca60…02ca80             72 72 65 6e 74 5f 63 6f 6d 70 69 6c 65 72 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20   ┆rrent_compiler then     write ( ┆
0x02ca80…02caa0             6f 75 74 70 75 74 2c 20 27 3f 27 2c 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 2c 20 27   ┆output, '?', compiler_version, '┆
0x02caa0…02cac0             3f 20 3c 3e 20 27 2c 20 63 75 72 72 65 6e 74 5f 63 6f 6d 70 69 6c 65 72 20 29 3b 0a 20 20 65 6e   ┆? <> ', current_compiler );   en┆
0x02cac0…02cae0             64 3b 0a 0a 69 66 20 6b 69 6e 64 20 3d 20 73 75 6d 6b 69 6e 64 0a 74 68 65 6e 20 77 72 69 74 65   ┆d;  if kind = sumkind then write┆
0x02cae0…02cb00             20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 38 29 0a 65 6c 73 65 0a 0a 62 65 67 69 6e 0a 74 78 74   ┆ ( output, '':8) else  begin txt┆
0x02cb00…02cb20             34 3a 3d 20 27 2e 27 20 2b 20 73 74 72 69 6e 74 20 28 20 6c 6f 28 76 65 72 73 69 6f 6e 29 29 20   ┆4:= '.' + strint ( lo(version)) ┆
0x02cb20…02cb40             2b 20 27 20 20 20 27 3b 0a 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 68 69 28 76 65 72 73   ┆+ '   '; write ( output, hi(vers┆
0x02cb40…02cb60             69 6f 6e 29 3a 34 2c 20 74 78 74 34 20 29 3b 0a 65 6e 64 3b 0a 0a 28 2a 2d 2d 20 63 6f 6d 70 75   ┆ion):4, txt4 ); end;  (*-- compu┆
0x02cb60…02cb80             74 65 20 6e 6f 20 6f 66 20 63 6f 64 65 62 79 74 65 73 20 20 2a 29 0a 70 61 67 65 73 3a 3d 20 6e   ┆te no of codebytes  *) pages:= n┆
0x02cb80…02cba0             6f 5f 6f 66 5f 70 61 67 65 73 3b 0a 77 6f 72 6b 3a 3d 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e   ┆o_of_pages; work:= last_page_len┆
0x02cba0…02cbc0             67 74 68 3b 0a 77 6f 72 6b 20 3a 3d 20 77 6f 72 6b 20 2b 20 28 20 70 61 67 65 73 20 2d 20 31 20   ┆gth; work := work + ( pages - 1 ┆
0x02cbc0…02cbe0             29 20 2a 20 70 61 67 65 73 69 7a 65 20 3b 0a 0a 28 2a 2d 2d 20 70 72 69 6e 74 20 6c 65 6e 67 74   ┆) * pagesize ;  (*-- print lengt┆
0x02cbe0…02cc00             68 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 2b 20 63 6f 64 65 20 20   ┆h of descriptor segment + code  ┆
0x02cc00…02cc20 (11, 1, 14) 2a 29 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 64 65 73 63 72 69 70 74 6f 72 5f   ┆*) writeln ( output, descriptor_┆
0x02cc20…02cc40             6c 65 6e 67 74 68 20 2b 20 77 6f 72 6b 3a 37 29 3b 0a 65 6e 64 3b 20 20 28 2a 20 20 6e 6f 74 20   ┆length + work:7); end;  (*  not ┆
0x02cc40…02cc60             64 65 74 61 69 6c 20 20 2a 29 0a 0a 69 66 20 6f 70 74 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 5f 70   ┆detail  *)  if option = option_p┆
0x02cc60…02cc80             61 72 61 6d 73 20 74 68 65 6e 0a 20 20 77 69 74 68 20 70 61 72 61 6d 6c 69 73 74 20 64 6f 0a 20   ┆arams then   with paramlist do  ┆
0x02cc80…02cca0             20 66 6f 72 20 73 74 65 70 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20   ┆ for step:= 1 to paramcount do  ┆
0x02cca0…02ccc0             20 20 77 69 74 68 20 70 61 72 61 6d 5b 73 74 65 70 5d 20 64 6f 0a 20 20 20 62 65 67 69 6e 0a 20   ┆  with param[step] do    begin  ┆
0x02ccc0…02cce0             20 20 69 6e 63 20 28 20 6c 69 6e 65 6e 6f 29 3b 0a 20 20 20 69 66 20 6c 69 6e 65 6e 6f 20 6d 6f   ┆  inc ( lineno);    if lineno mo┆
0x02cce0…02cd00             64 20 36 30 20 3d 20 31 20 74 68 65 6e 20 77 72 69 74 65 5f 68 65 61 64 6c 69 6e 65 3b 0a 0a 20   ┆d 60 = 1 then write_headline;   ┆
0x02cd00…02cd20             20 20 69 66 20 70 61 72 61 6d 5f 6b 69 6e 64 20 3e 20 31 30 30 20 74 68 65 6e 0a 20 20 20 20 20   ┆  if param_kind > 100 then      ┆
0x02cd20…02cd40             62 65 67 69 6e 0a 20 20 20 20 20 6d 78 3a 3d 20 34 20 2b 20 70 61 72 61 6d 5f 6b 69 6e 64 20 61   ┆begin      mx:= 4 + param_kind a┆
0x02cd40…02cd60             6e 64 20 33 3b 0a 20 20 20 20 20 63 78 3a 3d 20 28 70 61 72 61 6d 5f 6b 69 6e 64 20 2d 20 31 30   ┆nd 3;      cx:= (param_kind - 10┆
0x02cd60…02cd80             30 29 20 73 68 72 20 32 3b 0a 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 3e 20 31 30 30 20 20 2a   ┆0) shr 2;      end  (*  > 100  *┆
0x02cd80…02cda0             29 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 6d 78 3a 3d 20 70   ┆)    else      begin      mx:= p┆
0x02cda0…02cdc0             61 72 61 6d 5f 6b 69 6e 64 20 61 6e 64 20 33 3b 0a 20 20 20 20 20 63 78 3a 3d 20 70 61 72 61 6d   ┆aram_kind and 3;      cx:= param┆
0x02cdc0…02cde0             5f 6b 69 6e 64 20 73 68 72 20 32 3b 0a 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 3c 20 31 30   ┆_kind shr 2;      end;  (*  < 10┆
0x02cde0…02ce00             30 20 20 2a 29 0a 0a 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 31   ┆0  *)     writeln ( output, '':1┆
0x02ce00…02ce20 (11, 1, 15) 33 2c 20 73 74 65 70 3a 32 2c 20 27 3a 20 27 2c 0a 20 20 20 20 20 70 61 72 61 6d 5f 6d 6f 64 65   ┆3, step:2, ': ',      param_mode┆
0x02ce20…02ce40             5f 74 78 74 5b 6d 78 5d 2c 20 27 20 27 2c 20 70 61 72 61 6d 5f 63 6c 61 73 73 5f 74 78 74 5b 63   ┆_txt[mx], ' ', param_class_txt[c┆
0x02ce40…02ce60             78 5d 2c 20 70 61 72 61 6d 5f 73 69 7a 65 3a 36 2c 20 27 20 62 79 74 65 73 27 29 0a 20 20 20 65   ┆x], param_size:6, ' bytes')    e┆
0x02ce60…02ce80             6e 64 3b 20 20 28 2a 20 20 66 6f 72 20 73 74 65 70 20 20 2a 29 0a 0a 0a 69 66 20 64 65 62 75 67   ┆nd;  (*  for step  *)   if debug┆
0x02ce80…02cea0             34 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 27 64 65 62 75   ┆4 then   begin   writeln ( 'debu┆
0x02cea0…02cec0             67 34 3a 20 20 64 65 73 5f 6c 65 6e 67 74 68 2c 20 70 61 67 65 73 2c 20 70 61 67 65 73 69 7a 65   ┆g4:  des_length, pages, pagesize┆
0x02cec0…02cee0             2c 20 6c 61 73 74 2c 20 20 20 77 6f 72 6b 2c 20 27 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆, last,   work, ');   writeln ( ┆
0x02cee0…02cf00             27 20 20 20 20 20 20 27 2c 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 3a 31 33 2c 20   ┆'      ', descriptor_length:13, ┆
0x02cf00…02cf20             6e 6f 5f 6f 66 5f 70 61 67 65 73 3a 36 2c 20 70 61 67 65 73 69 7a 65 3a 31 30 2c 0a 20 20 20 20   ┆no_of_pages:6, pagesize:10,     ┆
0x02cf20…02cf40             6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3a 36 2c 20 77 6f 72 6b 3a 39 29 0a 20 20 65 6e   ┆last_page_length:6, work:9)   en┆
0x02cf40…02cf60             64 3b 0a 0a 69 66 20 6f 70 74 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 5f 64 65 74 61 69 6c 20 74 68   ┆d;  if option = option_detail th┆
0x02cf60…02cf80             65 6e 20 20 28 2a 20 20 77 72 69 74 65 20 68 65 78 20 64 75 6d 70 20 6f 66 20 63 6f 64 65 20 20   ┆en  (*  write hex dump of code  ┆
0x02cf80…02cfa0             2a 29 0a 20 62 65 67 69 6e 0a 28 2a 2d 2d 20 63 6f 6d 70 75 74 65 20 6e 6f 20 6f 66 20 63 6f 64   ┆*)  begin (*-- compute no of cod┆
0x02cfa0…02cfc0             65 62 79 74 65 73 20 20 2a 29 0a 70 61 67 65 73 3a 3d 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 3b 0a   ┆ebytes  *) pages:= no_of_pages; ┆
0x02cfc0…02cfe0             77 6f 72 6b 3a 3d 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3b 0a 77 6f 72 6b 20 3a 3d   ┆work:= last_page_length; work :=┆
0x02cfe0…02d000             20 77 6f 72 6b 20 2b 20 28 20 70 61 67 65 73 20 2d 20 31 20 29 20 2a 20 70 61 67 65 73 69 7a 65   ┆ work + ( pages - 1 ) * pagesize┆
0x02d000…02d020 (12, 0, 1)  20 3b 0a 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 64 61 74 65 29 3b 0a   ┆ ; readinteger ( source, date); ┆
0x02d020…02d040             72 65 61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 74 69 6d 65 29 3b 0a 0a 28 2a   ┆readinteger ( source, time);  (*┆
0x02d040…02d060             2d 2d 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 77 6f 72 6b 20 3d 20   ┆--   writeln ( output, ' work = ┆
0x02d060…02d080             27 2c 20 77 6f 72 6b 29 3b 20 20 20 2a 29 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆', work);   *)  writeln ( output┆
0x02d080…02d0a0             2c 20 27 20 20 20 20 61 64 64 72 20 20 20 20 63 6f 64 65 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆, '    addr    code             ┆
0x02d0a0…02d0c0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 27 29 3b 0a 20 6c 69 6e 65 6e 6f   ┆                 code');  lineno┆
0x02d0c0…02d0e0             3a 3d 20 6c 69 6e 65 6e 6f 20 2b 20 31 3b 0a 20 77 72 69 74 65 20 20 20 28 20 6f 75 74 70 75 74   ┆:= lineno + 1;  write   ( output┆
0x02d0e0…02d100             2c 20 27 20 20 20 20 20 20 30 30 20 20 20 20 64 61 74 65 20 20 20 20 74 69 6d 65 20 20 27 29 3b   ┆, '      00    date    time  ');┆
0x02d100…02d120             0a 20 63 77 3a 3d 20 30 3b 0a 20 66 6f 72 20 72 65 6c 61 64 64 72 3a 3d 20 34 20 74 6f 20 77 6f   ┆  cw:= 0;  for reladdr:= 4 to wo┆
0x02d120…02d140             72 6b 2d 31 20 64 6f 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 62 6c 6f 63 6b 72 65 61 64 20 28 20   ┆rk-1 do    begin    blockread ( ┆
0x02d140…02d160             73 6f 75 72 63 65 2c 20 63 77 2c 20 31 2c 20 70 29 3b 0a 20 20 20 69 6f 63 68 65 63 6b 20 28 20   ┆source, cw, 1, p);    iocheck ( ┆
0x02d160…02d180             73 6f 75 72 63 65 29 3b 0a 20 20 20 69 66 20 70 20 3c 20 31 20 74 68 65 6e 20 72 75 6e 65 72 72   ┆source);    if p < 1 then runerr┆
0x02d180…02d1a0             6f 72 20 28 20 31 30 30 29 3b 0a 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74   ┆or ( 100);    write ( output, st┆
0x02d1a0…02d1c0             72 68 65 78 20 28 20 63 77 29 3a 34 29 3b 0a 20 20 20 69 66 20 72 65 6c 61 64 64 72 20 6d 6f 64   ┆rhex ( cw):4);    if reladdr mod┆
0x02d1c0…02d1e0             20 31 36 20 3d 20 20 37 20 74 68 65 6e 20 77 72 69 74 65 20 28 20 27 20 20 27 29 3b 0a 20 20 20   ┆ 16 =  7 then write ( '  ');    ┆
0x02d1e0…02d200             69 66 20 72 65 6c 61 64 64 72 20 6d 6f 64 20 31 36 20 3d 20 31 35 20 74 68 65 6e 0a 20 20 20 20   ┆if reladdr mod 16 = 15 then     ┆
0x02d200…02d220 (12, 0, 2)  20 62 65 67 69 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20   ┆ begin      writeln ( output);  ┆
0x02d220…02d240             20 20 20 20 6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f 20 2b 20 31 3b 0a 20 20 20 20 20 69 66   ┆    lineno:= lineno + 1;      if┆
0x02d240…02d260             20 6c 69 6e 65 6e 6f 20 6d 6f 64 20 36 30 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 20 20 20 77   ┆ lineno mod 60 = 1 then        w┆
0x02d260…02d280             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 23 31 32 2c 20 27 20 20 20 20 20 61 64   ┆riteln ( output,   #12, '     ad┆
0x02d280…02d2a0             64 72 20 20 20 20 63 6f 64 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆dr    code                      ┆
0x02d2a0…02d2c0             20 20 20 20 20 20 20 20 20 20 63 6f 64 65 27 29 3b 0a 20 20 20 20 20 77 72 69 74 65 20 28 20 6f   ┆          code');      write ( o┆
0x02d2c0…02d2e0             75 74 70 75 74 2c 20 73 74 72 68 65 78 28 72 65 6c 61 64 64 72 2b 31 29 3a 38 2c 20 27 20 20 27   ┆utput, strhex(reladdr+1):8, '  '┆
0x02d2e0…02d300             29 3b 0a 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 6e 65 77 20 6c 69 6e 65 20 20 2a 29 0a 20   ┆);      end;  (*  new line  *)  ┆
0x02d300…02d320             20 20 65 6e 64 3b 20 20 28 2a 20 20 66 6f 72 20 72 65 6c 61 64 64 72 20 20 2a 29 0a 20 77 72 69   ┆  end;  (*  for reladdr  *)  wri┆
0x02d320…02d340             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f   ┆teln ( output);  lineno:= lineno┆
0x02d340…02d360             20 2b 20 31 3b 0a 20 65 6e 64 20 20 28 2a 20 20 64 65 74 61 69 6c 20 20 2a 29 0a 65 6c 73 65 0a   ┆ + 1;  end  (*  detail  *) else ┆
0x02d360…02d380             0a 20 20 73 6b 69 70 20 28 20 77 6f 72 6b 20 2d 20 34 20 29 3b 0a 28 2a 20 2d 34 20 69 73 20 62   ┆   skip ( work - 4 ); (* -4 is b┆
0x02d380…02d3a0             65 63 61 75 73 65 20 64 61 74 65 20 61 6e 64 20 74 69 6d 65 20 61 72 65 20 61 6c 72 65 61 64 79   ┆ecause date and time are already┆
0x02d3a0…02d3c0             20 72 65 61 64 20 2a 29 0a 0a 0a 69 66 20 6f 70 74 69 6f 6e 20 3c 3e 20 6f 70 74 69 6f 6e 5f 69   ┆ read *)   if option <> option_i┆
0x02d3c0…02d3e0             6d 61 67 65 20 74 68 65 6e 20 20 20 20 28 2a 2d 2d 2d 20 20 69 66 20 70 72 6f 67 20 3c 3e 20 6c   ┆mage then    (*---  if prog <> l┆
0x02d3e0…02d400             69 62 5f 69 6d 61 67 65 20 74 68 65 6e 20 20 2d 2d 2d 2a 29 0a 20 20 62 65 67 69 6e 0a 20 20 72   ┆ib_image then  ---*)   begin   r┆
0x02d400…02d420 (12, 0, 3)  65 61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72   ┆eadinteger ( source, no_of_exter┆
0x02d420…02d440             6e 61 6c 73 29 3b 20 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 6c 69   ┆nals);  (* number of external li┆
0x02d440…02d460             6e 6b 73 20 2a 29 0a 0a 20 20 69 66 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 3e 20 31   ┆nks *)    if no_of_externals > 1┆
0x02d460…02d480             32 30 30 30 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆2000 then     writeln ( output, ┆
0x02d480…02d4a0             27 2a 2a 2a 20 65 78 74 65 72 6e 61 6c 73 20 3a 20 27 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e   ┆'*** externals : ', no_of_extern┆
0x02d4a0…02d4c0             61 6c 73 29 3b 0a 0a 20 20 66 6f 72 20 73 74 65 70 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f   ┆als);    for step := 1 to no_of_┆
0x02d4c0…02d4e0             65 78 74 65 72 6e 61 6c 73 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 72 65 61 64 61   ┆externals do     begin     reada┆
0x02d4e0…02d500             6c 66 61 20 28 20 73 6f 75 72 63 65 2c 20 65 78 74 6e 61 6d 65 29 3b 0a 0a 20 20 20 20 72 65 61   ┆lfa ( source, extname);      rea┆
0x02d500…02d520             64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 29   ┆dinteger ( source, no_of_params)┆
0x02d520…02d540             3b 0a 20 20 20 20 73 6b 69 70 20 28 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 20 2a 20 34 29 3b 0a   ┆;     skip ( no_of_params * 4); ┆
0x02d540…02d560             20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f   ┆    readinteger ( source, no_of_┆
0x02d560…02d580             75 73 65 73 29 3b 0a 0a 20 20 20 20 69 66 20 6f 70 74 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 5f 61   ┆uses);      if option = option_a┆
0x02d580…02d5a0             6c 6c 20 74 68 65 6e 20 20 20 20 20 28 2a 20 20 70 72 6f 67 20 3d 20 6c 69 62 5f 61 6c 6c 20 20   ┆ll then     (*  prog = lib_all  ┆
0x02d5a0…02d5c0             20 2a 29 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 6e 63 20 28 20 6c 69 6e 65   ┆ *)       begin       inc ( line┆
0x02d5c0…02d5e0             6e 6f 29 3b 0a 20 20 20 20 20 20 69 66 20 6c 69 6e 65 6e 6f 20 6d 6f 64 20 36 30 20 3d 20 31 20   ┆no);       if lineno mod 60 = 1 ┆
0x02d5e0…02d600             74 68 65 6e 20 77 72 69 74 65 5f 68 65 61 64 6c 69 6e 65 3b 0a 0a 20 20 20 20 20 20 77 72 69 74   ┆then write_headline;        writ┆
0x02d600…02d620 (12, 0, 4)  65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 33 2b 31 32 2c 20 73 74 72 61 6c 66 61 20 28   ┆eln ( output, '':3+12, stralfa (┆
0x02d620…02d640             20 65 78 74 6e 61 6d 65 29 2c 20 27 20 20 65 78 74 65 72 6e 61 6c 20 63 61 6c 6c 65 64 20 27 2c   ┆ extname), '  external called ',┆
0x02d640…02d660             0a 20 20 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 75 73 65 73 3a 33 2c 20 27 20 74 69 6d 65 28 73 29   ┆         no_of_uses:3, ' time(s)┆
0x02d660…02d680             27 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 73 6b 69 70 20 28 20 6e 6f 5f 6f 66   ┆');       end;      skip ( no_of┆
0x02d680…02d6a0             5f 75 73 65 73 20 2a 20 34 20 29 3b 0a 20 20 20 20 69 66 20 6e 6f 5f 6f 66 5f 75 73 65 73 20 3e   ┆_uses * 4 );     if no_of_uses >┆
0x02d6a0…02d6c0             20 34 30 30 30 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69   ┆ 4000 then       begin       wri┆
0x02d6c0…02d6e0             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 6e 6f 20 6f 66 20 70 61 72 61 6d 73 20 2c 20   ┆teln ( output, ' no of params , ┆
0x02d6e0…02d700             6e 6f 20 75 66 20 75 73 65 73 20 27 2c 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 2c 20 27 20 20 27   ┆no uf uses ', no_of_params, '  '┆
0x02d700…02d720             2c 20 6e 6f 5f 6f 66 5f 75 73 65 73 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 20 28 20 27 70 72   ┆, no_of_uses);       write ( 'pr┆
0x02d720…02d740             65 73 73 20 61 6e 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 27 29 3b 0a 20 20 20 20 20 20 74 63   ┆ess any to continue ');       tc┆
0x02d740…02d760             3a 3d 20 72 65 61 64 6b 65 79 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 20 20   ┆:= readkey       end;     end;  ┆
0x02d760…02d780             28 2a 20 20 66 6f 72 20 73 74 65 70 20 65 78 74 65 72 6e 61 6c 73 20 20 2a 29 0a 0a 20 20 28 2a   ┆(*  for step externals  *)    (*┆
0x02d780…02d7a0             20 73 6b 69 70 20 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 20 20 72 65 61 64 69 6e   ┆ skip internal links *)   readin┆
0x02d7a0…02d7c0             74 65 67 65 72 20 28 20 73 6f 75 72 63 65 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29   ┆teger ( source, no_of_externals)┆
0x02d7c0…02d7e0             3b 0a 20 20 69 66 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 3e 20 31 32 30 30 30 20 74   ┆;   if no_of_externals > 12000 t┆
0x02d7e0…02d800             68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 65 78 74 65   ┆hen  writeln ( output, '*** exte┆
0x02d800…02d820 (12, 0, 5)  72 6e 61 6c 73 20 3a 20 27 2c 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 20 20 69   ┆rnals : ', no_of_externals);   i┆
0x02d820…02d840             66 20 64 65 62 75 67 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65   ┆f debug then     begin     write┆
0x02d840…02d860             6c 6e 20 28 20 27 20 6e 6f 20 6f 66 20 65 78 74 65 72 6e 61 6c 73 20 20 27 2c 20 6e 6f 5f 6f 66   ┆ln ( ' no of externals  ', no_of┆
0x02d860…02d880             5f 65 78 74 65 72 6e 61 6c 73 29 3b 0a 20 20 20 20 77 72 69 74 65 20 28 20 27 70 72 65 73 73 20   ┆_externals);     write ( 'press ┆
0x02d880…02d8a0             61 6e 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 27 29 3b 0a 20 20 20 20 74 63 3a 3d 20 72 65 61   ┆any to continue ');     tc:= rea┆
0x02d8a0…02d8c0             64 6b 65 79 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 0a 20 20 20 20 65 6e 64 3b 0a 20 20 73 6b 69   ┆dkey;     writeln     end;   ski┆
0x02d8c0…02d8e0             70 20 28 20 6e 6f 5f 6f 66 5f 65 78 74 65 72 6e 61 6c 73 20 2a 20 20 38 20 29 3b 0a 20 20 65 6e   ┆p ( no_of_externals *  8 );   en┆
0x02d8e0…02d900             64 3b 20 20 28 2a 20 20 6e 6f 74 20 73 75 6d 6b 69 6e 64 20 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a   ┆d;  (*  not sumkind  *)  end; (*┆
0x02d900…02d920             20 77 69 74 68 20 6e 65 77 68 65 61 64 20 64 6f 20 2a 29 0a 0a 75 6e 74 69 6c 20 6e 65 77 68 65   ┆ with newhead do *)  until newhe┆
0x02d920…02d940             61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3d 20 73 74 6f 70 5f 6d 61 72 6b   ┆ad.descriptor_length = stop_mark┆
0x02d940…02d960             3b 0a 0a 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 73 6f 75 72 63 65 29 3b 0a 73 6f 75 72 63 65 5f   ┆;  close_file ( source); source_┆
0x02d960…02d980             6f 70 65 6e 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 65 6e 64 3b 20 28 2a 20 6c 6f 6f 6b 75 70   ┆opened := false;  end; (* lookup┆
0x02d980…02d9a0             5f 6c 69 62 20 2a 29 0a 0a 28 2a 24 46 2b 20 20 2a 29 20 20 70 72 6f 63 65 64 75 72 65 20 6d 79   ┆_lib *)  (*$F+  *)  procedure my┆
0x02d9a0…02d9c0             65 78 69 74 3b 20 20 28 2a 24 46 2d 20 20 2a 29 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 73 6f   ┆exit;  (*$F-  *)   begin   if so┆
0x02d9c0…02d9e0             75 72 63 65 5f 6f 70 65 6e 65 64 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 73 6f 75 72 63 65 29   ┆urce_opened then close ( source)┆
0x02d9e0…02da00             3b 0a 20 20 69 66 20 65 72 72 6f 72 61 64 64 72 20 3c 3e 20 6e 69 6c 20 74 68 65 6e 0a 20 20 20   ┆;   if erroraddr <> nil then    ┆
0x02da00…02da20 (12, 0, 6)  20 62 65 67 69 6e 0a 20 20 20 20 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 20 28 20 27 2a 2a 20 20   ┆ begin     runtime_error ( '**  ┆
0x02da20…02da40             43 61 6c 6c 65 64 20 66 72 6f 6d 20 50 4c 49 42 4c 4f 4f 4b 20 20 27 29 3b 0a 20 20 20 20 65 72   ┆Called from PLIBLOOK  ');     er┆
0x02da40…02da60             72 6f 72 61 64 64 72 3a 3d 20 6e 69 6c 3b 0a 20 20 20 20 28 2a 2d 2d 20 20 65 78 69 74 63 6f 64   ┆roraddr:= nil;     (*--  exitcod┆
0x02da60…02da80             65 3a 3d 20 32 35 34 20 20 2d 2d 2a 29 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 65 78 69 74 70 72   ┆e:= 254  --*)     end;    exitpr┆
0x02da80…02daa0             6f 63 3a 3d 20 65 78 69 74 73 61 76 65 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 6d 79 65 78 69 74   ┆oc:= exitsave   end;  (*  myexit┆
0x02daa0…02dac0             20 20 2a 29 0a 0a 0a 0a 20 62 65 67 69 6e 09 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆  *)     begin (*---------------┆
0x02dac0…02dae0             2d 2d 20 6d 61 69 6e 20 70 72 6f 67 72 61 6d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆-- main program ----------------┆
0x02dae0…02db00             2d 2d 2d 2d 2a 29 0a 20 65 78 69 74 73 61 76 65 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a 20 65 78   ┆----*)  exitsave:= exitproc;  ex┆
0x02db00…02db20             69 74 70 72 6f 63 3a 3d 20 61 64 64 72 20 28 20 6d 79 65 78 69 74 29 3b 0a 01 49 20 36 0a 20 66   ┆itproc:= addr ( myexit);  I 6  f┆
0x02db20…02db40             69 6c 65 6d 6f 64 65 3a 3d 20 30 3b 09 09 09 28 2a 20 20 65 6e 61 62 6c 65 20 72 65 61 64 2d 6f   ┆ilemode:= 0;   (*  enable read-o┆
0x02db40…02db60             6e 6c 79 20 6d 6f 64 65 20 20 2a 29 0a 01 45 20 36 0a 0a 01 49 20 36 0a 20 72 65 61 64 5f 70 61   ┆nly mode  *)  E 6   I 6  read_pa┆
0x02db60…02db80             72 61 6d 73 20 28 20 6c 69 62 5f 6e 61 6d 65 2c 20 6f 70 74 69 6f 6e 29 3b 0a 0a 20 69 66 20 73   ┆rams ( lib_name, option);   if s┆
0x02db80…02dba0             68 6f 77 5f 6d 79 5f 69 64 20 74 68 65 6e 0a 01 45 20 36 0a 01 44 20 35 0a 20 77 72 69 74 65 6c   ┆how_my_id then  E 6  D 5  writel┆
0x02dba0…02dbc0             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 37 2c 20 27 50 4c 49 42 6c 6f 6f 6b 75 70 2c 27 2c   ┆n ( output, '':7, 'PLIBlookup,',┆
0x02dbc0…02dbe0             20 76 65 72 73 69 6f 6e 29 3b 0a 01 45 20 35 0a 01 49 20 35 0a 20 77 72 69 74 65 6c 6e 20 28 20   ┆ version);  E 5  I 5  writeln ( ┆
0x02dbe0…02dc00             6f 75 74 70 75 74 2c 20 27 27 3a 37 2c 20 27 50 4c 49 42 6c 6f 6f 6b 75 70 2c 20 20 72 65 6c 2e   ┆output, '':7, 'PLIBlookup,  rel.┆
0x02dc00…02dc20 (12, 0, 7)  20 25 52 25 2e 25 4c 25 2c 20 20 20 31 39 27 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63 73   ┆ %R%.%L%,   19',     copy ( sccs┆
0x02dc20…02dc40             5f 64 61 74 65 2c 20 31 2c 20 32 29 2c 20 27 2e 27 2c 20 63 6f 70 79 20 28 20 73 63 63 73 5f 64   ┆_date, 1, 2), '.', copy ( sccs_d┆
0x02dc40…02dc60             61 74 65 2c 20 34 2c 20 32 29 2c 20 27 2e 27 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63 73   ┆ate, 4, 2), '.',     copy ( sccs┆
0x02dc60…02dc80             5f 64 61 74 65 2c 20 37 2c 20 32 29 29 3b 0a 0a 01 45 20 35 0a 20 77 72 69 74 65 6c 6e 20 28 20   ┆_date, 7, 2));   E 5  writeln ( ┆
0x02dc80…02dca0             6f 75 74 70 75 74 29 3b 0a 0a 01 44 20 36 0a 20 72 65 61 64 5f 70 61 72 61 6d 73 20 28 20 6c 69   ┆output);   D 6  read_params ( li┆
0x02dca0…02dcc0             62 5f 6e 61 6d 65 2c 20 6f 70 74 69 6f 6e 29 3b 0a 0a 01 45 20 36 0a 20 6c 6f 6f 6b 75 70 5f 6c   ┆b_name, option);   E 6  lookup_l┆
0x02dcc0…02dce0             69 62 20 28 20 6c 69 62 5f 6e 61 6d 65 2c 20 6f 70 74 69 6f 6e 20 29 3b 0a 0a 01 44 20 36 0a 20   ┆ib ( lib_name, option );   D 6  ┆
0x02dce0…02dd00             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆writeln ( output);  writeln ( ou┆
0x02dd00…02dd20             74 70 75 74 2c 20 27 2d 2d 20 20 20 65 6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 01 45 20 36 0a   ┆tput, '--   end of job.');  E 6 ┆
0x02dd20…02dd40             01 49 20 36 0a 20 69 66 20 73 68 6f 77 5f 6d 79 5f 69 64 20 74 68 65 6e 0a 20 20 62 65 67 69 6e   ┆ I 6  if show_my_id then   begin┆
0x02dd40…02dd60             0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20   ┆   writeln ( output);   writeln ┆
0x02dd60…02dd80             28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 65 6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 20   ┆( output, '--   end of job.');  ┆
0x02dd80…02dda0             20 65 6e 64 3b 0a 0a 01 45 20 36 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 0a 0a   ┆ end;   E 6  writeln ( output)  ┆
0x02dda0…02ddc0             20 65 6e 64 20 2e 09 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6f 66 20 50 4c 49   ┆ end . (*---------------- of PLI┆
0x02ddc0…02dde0             42 4c 4f 4f 4b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆BLOOK --------------------------┆
0x02dde0…02de00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 0a 01 45 20 31 0a 6f 6f 6b 75 70 2c 20 20 72 65 6c 2e   ┆---------*)     E 1 ookup,  rel.┆
0x02de00…02de20 (12, 0, 8)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 70 6c 69 62 75 6e 69 74 2e 70 61   ┆../sw2103/src/util/s.plibunit.pa┆
0x02de20…02de40             73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆s                               ┆
0x02de40…02de60             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x02de60…02de80             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x02de80…02dea0             20 20 37 34 34 37 31 20 20 35 32 36 35 33 33 31 34 31 33 20 20 31 31 37 30 33 00 20 00 00 00 00   ┆  74471  5265331413  11703      ┆
0x02dea0…02dec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x02e000…02e020 (12, 0, 9)  01 68 35 34 31 33 39 0a 01 73 20 30 30 30 30 32 2f 30 30 30 30 35 2f 30 31 32 39 39 0a 01 64 20   ┆ h54139  s 00002/00005/01299  d ┆
0x02e020…02e040             44 20 31 2e 37 20 39 32 2f 31 30 2f 30 39 20 31 37 3a 32 37 3a 35 32 20 73 77 32 31 30 33 20 32   ┆D 1.7 92/10/09 17:27:52 sw2103 2┆
0x02e040…02e060             20 31 0a 01 63 20 54 79 70 65 20 6f 66 20 73 72 63 5f 64 69 72 20 63 68 61 6e 67 65 64 2c 20 64   ┆ 1  c Type of src_dir changed, d┆
0x02e060…02e080             69 72 73 74 72 20 2d 3e 20 70 61 74 68 73 74 72 2e 0a 01 65 0a 01 73 20 30 31 33 30 34 2f 30 30   ┆irstr -> pathstr.  e  s 01304/00┆
0x02e080…02e0a0             30 30 30 2f 30 30 30 30 30 0a 01 64 20 44 20 31 2e 36 20 39 32 2f 31 30 2f 30 39 20 31 31 3a 32   ┆000/00000  d D 1.6 92/10/09 11:2┆
0x02e0a0…02e0c0             35 3a 34 38 20 73 77 32 31 30 33 20 31 20 30 0a 01 63 20 53 43 43 53 20 75 73 65 64 2c 20 66 69   ┆5:48 sw2103 1 0  c SCCS used, fi┆
0x02e0c0…02e0e0             6c 65 6d 6f 64 65 20 73 65 74 20 74 6f 20 30 20 66 6f 72 20 72 65 61 64 2d 6f 6e 6c 79 20 6f 66   ┆lemode set to 0 for read-only of┆
0x02e0e0…02e100             20 66 69 6c 65 73 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 0a 55 6e 69   ┆ files.  e  u  U  t  T  I 1  Uni┆
0x02e100…02e120             74 20 70 6c 69 62 75 6e 69 74 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆t plibunit;  (*-----------------┆
0x02e120…02e140             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x02e140…02e160             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 4d 6f 64 75 6c 65 3a 0a 2d 2d 20 46 69 6c 65 3a   ┆------------ -- Module: -- File:┆
0x02e160…02e180             20 20 20 20 20 20 50 4c 49 42 55 4e 49 54 2e 50 41 53 0a 2d 2d 20 50 61 63 6b 61 67 65 3a 20 20   ┆      PLIBUNIT.PAS -- Package:  ┆
0x02e180…02e1a0             20 53 57 32 31 30 33 20 20 20 20 53 75 62 73 79 73 74 65 6d 3a 20 52 54 50 20 55 54 49 4c 49 54   ┆ SW2103    Subsystem: RTP UTILIT┆
0x02e1a0…02e1c0             59 20 20 20 50 72 6f 67 72 61 6d 3a 20 50 4c 49 42 78 78 78 78 0a 2d 2d 0a 2d 2d 20 43 6f 6e 74   ┆Y   Program: PLIBxxxx -- -- Cont┆
0x02e1c0…02e1e0             65 6e 74 73 3a 20 20 41 20 75 6e 69 74 20 77 69 74 68 20 74 79 70 65 73 20 61 6e 64 20 72 6f 75   ┆ents:  A unit with types and rou┆
0x02e1e0…02e200             74 69 6e 65 73 20 66 6f 72 20 74 68 65 20 50 4c 49 42 20 75 74 69 6c 69 74 69 65 73 2e 0a 2d 2d   ┆tines for the PLIB utilities. --┆
0x02e200…02e220 (12, 0, 10) 0a 2d 2d 0a 2d 2d 20 50 72 65 72 65 71 75 69 73 69 74 65 73 3a 20 20 44 4f 53 2c 20 43 62 72 65   ┆ -- -- Prerequisites:  DOS, Cbre┆
0x02e220…02e240             61 6b 0a 2d 2d 0a 2d 2d 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3a 20 20 53 57 32 31 30 33 0a   ┆ak -- -- Documentation:  SW2103 ┆
0x02e240…02e260             2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 6d 65 64 20 62 79 20 45 42 4b 2c 20 48 48 41 2c 20 48 45   ┆-- -- Programmed by EBK, HHA, HE┆
0x02e260…02e280             4a 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 39 20 62 79 20 52 43 20 49 6e   ┆J -- Copyright (C) 1989 by RC In┆
0x02e280…02e2a0             74 65 72 6e 61 74 69 6f 6e 61 6c 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 39   ┆ternational -- Copyright (C) 199┆
0x02e2a0…02e2c0             32 20 62 79 20 44 41 4e 4f 53 49 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆2 by DANOSI --------------------┆
0x02e2c0…02e2e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x02e2e0…02e300             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 56 65 72 73 69 6f 6e 20 68 69 73 74 6f 72 79 3a 0a   ┆----------- -- Version history: ┆
0x02e300…02e320             2d 2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44 61 74 65 20 20 20 20 20 20 49 6e 69 74 2e 20 54 65 78   ┆-- -- Vers.  Date      Init. Tex┆
0x02e320…02e340             74 0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 20 2d 2d 2d 2d 20 20 2d 2d 2d 2d   ┆t -- ----   --------  ----  ----┆
0x02e340…02e360             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x02e360…02e380             2d 2d 0a 2d 2d 20 31 2e 30 20 20 20 20 38 39 2e 30 35 2e 32 33 20 20 45 42 4b 20 20 20 46 69 72   ┆-- -- 1.0    89.05.23  EBK   Fir┆
0x02e380…02e3a0             73 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 52 54 50 75 6e 69 74 2e 0a 2d 2d 20 31 2e 30 20 20 20   ┆st version of RTPunit. -- 1.0   ┆
0x02e3a0…02e3c0             20 38 39 2e 30 38 2e 30 33 20 20 48 45 4a 20 20 20 46 69 72 73 74 20 76 65 72 73 69 6f 6e 20 6f   ┆ 89.08.03  HEJ   First version o┆
0x02e3c0…02e3e0             66 20 50 4c 49 42 75 6e 69 74 2e 0a 2d 2d 20 31 2e 31 20 20 20 20 38 39 2e 31 30 2e 32 34 20 20   ┆f PLIBunit. -- 1.1    89.10.24  ┆
0x02e3e0…02e400             48 45 4a 20 20 20 43 6f 73 6d 65 74 69 63 20 63 6f 72 72 65 63 74 69 6f 6e 73 2e 0a 2d 2d 20 20   ┆HEJ   Cosmetic corrections. --  ┆
0x02e400…02e420 (12, 0, 11) 20 20 20 20 20 20 38 39 2e 31 31 2e 30 32 20 20 48 45 4a 20 20 20 43 75 72 72 65 6e 74 20 64 69   ┆      89.11.02  HEJ   Current di┆
0x02e420…02e440             72 65 63 74 6f 72 79 20 75 73 65 64 20 61 73 20 77 6f 72 6b 20 64 69 72 65 63 74 6f 72 79 2e 0a   ┆rectory used as work directory. ┆
0x02e440…02e460             2d 2d 20 31 2e 32 20 20 20 20 39 30 2e 30 31 2e 30 35 20 20 48 45 4a 20 20 20 48 61 6c 74 20 28   ┆-- 1.2    90.01.05  HEJ   Halt (┆
0x02e460…02e480             32 29 20 69 6e 73 65 72 74 65 64 20 69 6e 20 72 65 61 64 70 61 72 61 6d 66 69 6c 65 2c 20 74 6f   ┆2) inserted in readparamfile, to┆
0x02e480…02e4a0             20 73 65 74 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65   ┆ set --                        e┆
0x02e4a0…02e4c0             72 72 6f 72 6c 65 76 65 6c 20 66 6f 72 20 44 4f 53 2e 0a 2d 2d 20 31 2e 33 20 20 20 20 39 30 2e   ┆rrorlevel for DOS. -- 1.3    90.┆
0x02e4c0…02e4e0             30 35 2e 33 30 20 20 48 45 4a 20 20 20 53 74 6f 70 5f 6d 61 72 6b 20 20 20 24 46 46 46 46 20 20   ┆05.30  HEJ   Stop_mark   $FFFF  ┆
0x02e4e0…02e500             2d 3e 20 20 24 30 30 30 30 2e 0a 2d 2d 20 31 2e 34 20 20 20 20 39 32 2e 30 32 2e 32 34 20 20 48   ┆->  $0000. -- 1.4    92.02.24  H┆
0x02e500…02e520             45 4a 20 20 20 53 72 63 5f 64 69 72 20 6e 6f 74 20 69 6e 73 65 72 74 65 64 20 61 66 74 65 72 20   ┆EJ   Src_dir not inserted after ┆
0x02e520…02e540             50 52 49 4e 54 2c 20 4d 41 50 20 53 54 41 52 54 2c 20 56 45 52 53 49 4f 4e 2e 0a 2d 2d 20 31 2e   ┆PRINT, MAP START, VERSION. -- 1.┆
0x02e540…02e560             35 20 20 20 20 39 32 2e 30 36 2e 30 32 20 20 48 45 4a 20 20 20 45 72 72 6f 72 20 63 6f 64 65 20   ┆5    92.06.02  HEJ   Error code ┆
0x02e560…02e580             31 32 31 20 61 6e 64 20 31 32 32 20 2d 3e 20 31 30 30 2c 20 31 32 33 20 61 6e 64 20 31 32 34 20   ┆121 and 122 -> 100, 123 and 124 ┆
0x02e580…02e5a0             2d 3e 20 31 30 31 2e 0a 2d 2d 20 31 2e 36 20 20 20 20 39 32 2e 30 37 2e 30 33 20 20 48 45 4a 20   ┆-> 101. -- 1.6    92.07.03  HEJ ┆
0x02e5a0…02e5c0             20 20 46 69 6c 65 6d 6f 64 65 20 73 65 74 20 74 6f 20 30 2c 20 74 6f 20 61 6c 6c 6f 77 20 6e 6f   ┆  Filemode set to 0, to allow no┆
0x02e5c0…02e5e0             6e 20 74 65 78 74 20 66 69 6c 65 73 20 61 73 20 72 65 61 64 20 6f 6e 6c 79 2e 0a 2d 2d 0a 01 44   ┆n text files as read only. --  D┆
0x02e5e0…02e600             20 32 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ 2 -----------------------------┆
0x02e600…02e620 (12, 0, 12) 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x02e620…02e640             0a 2a 29 0a 7b 0a 01 45 20 32 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ *) {  E 2 ---------------------┆
0x02e640…02e660             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x02e660…02e680             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69   ┆-------------- -- SCCS informati┆
0x02e680…02e6a0             6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20   ┆on -- File   :  %P% -- Module : ┆
0x02e6a0…02e6c0             20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20   ┆ %M% -- Version:  %I% -- Date   ┆
0x02e6c0…02e6e0             3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆:  %E%  %U% --------------------┆
0x02e6e0…02e700             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x02e700…02e720             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 01 44 20 32 0a 7d 0a 01 45 20 32 0a 01 49 20 32   ┆---------------  D 2 }  E 2  I 2┆
0x02e720…02e740             0a 2a 29 0a 01 45 20 32 0a 0a 0c 0a 0a 69 6e 74 65 72 66 61 63 65 09 28 2a 09 09 66 6f 72 20 50   ┆ *)  E 2     interface (*  for P┆
0x02e740…02e760             4c 49 42 2c 20 50 4c 49 42 4c 4f 4f 4b 2c 20 43 52 4f 53 4c 49 4e 4b 20 20 75 74 69 6c 69 74 69   ┆LIB, PLIBLOOK, CROSLINK  utiliti┆
0x02e760…02e780             65 73 20 20 2a 29 0a 0a 75 73 65 73 20 44 4f 53 2c 20 43 62 72 65 61 6b 3b 0a 0a 43 6f 6e 73 74   ┆es  *)  uses DOS, Cbreak;  Const┆
0x02e780…02e7a0             0a 0a 20 20 73 65 74 5f 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 3d 20 27 50 4c 49 42 57 4f 52   ┆    set_plibwork_name = 'PLIBWOR┆
0x02e7a0…02e7c0             4b 27 3b 20 28 2a 20 20 66 6f 72 20 73 65 61 72 63 68 20 69 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e   ┆K'; (*  for search in environmen┆
0x02e7c0…02e7e0             74 09 09 2a 29 0a 20 20 77 6f 72 64 73 69 7a 65 09 3d 20 20 20 20 73 69 7a 65 6f 66 20 28 20 77   ┆t  *)   wordsize =    sizeof ( w┆
0x02e7e0…02e800             6f 72 64 29 3b 09 28 2a 20 20 66 6f 72 20 69 6e 74 65 67 65 72 20 61 6e 64 20 77 6f 72 64 09 2a   ┆ord); (*  for integer and word *┆
0x02e800…02e820 (12, 0, 13) 29 0a 20 20 61 6c 66 61 6c 65 6e 67 74 68 09 3d 20 20 20 31 32 3b 09 09 28 2a 20 20 6c 65 6e 67   ┆)   alfalength =   12;  (*  leng┆
0x02e820…02e840             74 68 20 6f 66 20 61 6c 66 61 20 76 61 72 69 61 62 6c 65 09 2a 29 0a 20 20 70 61 74 68 6c 65 6e   ┆th of alfa variable *)   pathlen┆
0x02e840…02e860             67 74 68 09 3d 20 20 20 37 39 3b 09 09 28 2a 20 20 6c 65 6e 67 74 68 20 6f 66 20 70 61 74 68 73   ┆gth =   79;  (*  length of paths┆
0x02e860…02e880             74 72 20 76 61 72 69 61 62 6c 65 09 2a 29 0a 20 20 64 61 74 61 70 61 67 65 73 69 7a 65 09 3d 20   ┆tr variable *)   datapagesize = ┆
0x02e880…02e8a0             20 35 31 32 3b 09 09 28 2a 20 20 66 6f 72 20 52 43 33 35 30 32 20 64 69 73 6b 09 09 2a 29 0a 20   ┆ 512;  (*  for RC3502 disk  *)  ┆
0x02e8a0…02e8c0             20 73 75 6d 6b 69 6e 64 09 3d 20 20 20 20 30 3b 09 09 28 2a 20 20 66 6f 72 20 20 64 65 73 63 72   ┆ sumkind =    0;  (*  for  descr┆
0x02e8c0…02e8e0             69 70 74 6f 72 09 09 2a 29 0a 20 20 70 72 6f 67 72 61 6d 6b 69 6e 64 09 3d 20 20 20 20 31 3b 0a   ┆iptor  *)   programkind =    1; ┆
0x02e8e0…02e900             20 20 64 61 74 61 6b 69 6e 64 09 3d 20 20 20 20 36 3b 09 09 28 2a 20 20 66 6f 72 20 44 41 54 41   ┆  datakind =    6;  (*  for DATA┆
0x02e900…02e920             20 64 65 73 63 72 69 70 74 6f 72 09 09 2a 29 0a 20 20 66 69 72 73 74 5f 6f 66 5f 74 61 69 6c 09   ┆ descriptor  *)   first_of_tail ┆
0x02e920…02e940             3d 20 20 20 20 20 20 31 33 3b 0a 20 20 6c 61 73 74 5f 6f 66 5f 64 65 73 63 72 69 70 74 6f 72 20   ┆=      13;   last_of_descriptor ┆
0x02e940…02e960             3d 20 32 31 3b 0a 20 20 73 74 6f 70 5f 6d 61 72 6b 09 3a 20 20 77 6f 72 64 20 3d 20 20 24 30 30   ┆= 21;   stop_mark :  word =  $00┆
0x02e960…02e980             30 30 3b 20 20 20 28 2a 20 20 6c 65 6e 67 74 68 20 69 6e 20 6c 61 73 74 20 28 65 6d 70 74 79 29   ┆00;   (*  length in last (empty)┆
0x02e980…02e9a0             20 64 65 73 63 72 69 70 74 6f 72 09 2a 29 0a 0a 54 79 70 65 0a 0a 20 20 61 6c 66 61 09 20 20 3d   ┆ descriptor *)  Type    alfa   =┆
0x02e9a0…02e9c0             20 20 61 72 72 61 79 20 5b 31 2e 2e 31 32 5d 20 6f 66 20 63 68 61 72 3b 0a 20 20 61 6c 66 61 73   ┆  array [1..12] of char;   alfas┆
0x02e9c0…02e9e0             74 72 20 3d 20 20 73 74 72 69 6e 67 5b 20 61 6c 66 61 6c 65 6e 67 74 68 20 5d 3b 0a 20 20 63 6f   ┆tr =  string[ alfalength ];   co┆
0x02e9e0…02ea00             64 65 64 5f 64 61 74 65 09 3d 20 20 77 6f 72 64 3b 09 28 2a 20 20 79 65 61 72 5f 61 66 74 5f 31   ┆ded_date =  word; (*  year_aft_1┆
0x02ea00…02ea20 (12, 0, 14) 39 30 30 3a 37 2c 20 6d 6d 3a 34 2c 20 64 64 3a 35 20 20 2a 29 0a 20 20 63 6f 64 65 64 5f 74 69   ┆900:7, mm:4, dd:5  *)   coded_ti┆
0x02ea20…02ea40             6d 65 09 3d 20 20 77 6f 72 64 3b 09 28 2a 20 20 63 6f 6d 70 69 6c 65 5f 76 65 72 73 3a 35 2c 20   ┆me =  word; (*  compile_vers:5, ┆
0x02ea40…02ea60             20 68 68 3a 35 2c 20 6d 69 6e 3a 36 20 2a 29 0a 0a 20 20 61 64 64 72 65 73 73 09 3d 20 20 72 65   ┆ hh:5, min:6 *)    address =  re┆
0x02ea60…02ea80             63 6f 72 64 0a 20 20 20 20 20 62 61 73 65 2c 20 64 69 73 70 20 3a 20 20 77 6f 72 64 0a 20 20 20   ┆cord      base, disp :  word    ┆
0x02ea80…02eaa0             20 20 65 6e 64 3b 0a 0a 20 20 70 72 6f 67 72 61 6d 5f 70 6f 69 6e 74 09 3d 20 20 72 65 63 6f 72   ┆  end;    program_point =  recor┆
0x02eaa0…02eac0             64 0a 20 20 20 20 20 70 61 67 65 5f 6e 6f 2c 20 72 65 6c 5f 62 79 74 65 20 3a 20 20 77 6f 72 64   ┆d      page_no, rel_byte :  word┆
0x02eac0…02eae0             0a 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 20 3d   ┆      end;    descriptor_part1 =┆
0x02eae0…02eb00             0a 20 20 20 20 72 65 63 6f 72 64 0a 20 20 20 20 63 61 73 65 20 62 79 74 65 20 6f 66 0a 20 20 30   ┆     record     case byte of   0┆
0x02eb00…02eb20             3a 20 28 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2c 0a 20 20 20 20 20 20 6e 6f 5f   ┆: (descriptor_length ,       no_┆
0x02eb20…02eb40             6f 66 5f 70 61 67 65 73 20 20 20 20 20 20 20 2c 0a 20 20 20 20 20 20 70 61 67 65 73 69 7a 65 20   ┆of_pages       ,       pagesize ┆
0x02eb40…02eb60             20 20 20 20 20 20 20 20 20 2c 0a 20 20 20 20 20 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74   ┆         ,       last_page_lengt┆
0x02eb60…02eb80             68 09 2c 0a 20 20 20 20 20 20 6b 69 6e 64 09 09 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 20 6e 61   ┆h ,       kind  : word;       na┆
0x02eb80…02eba0             6d 65 09 09 3a 20 61 6c 66 61 3b 0a 20 20 20 20 20 20 65 6e 74 72 79 5f 62 61 73 65 09 2c 0a 20   ┆me  : alfa;       entry_base ,  ┆
0x02eba0…02ebc0             20 20 20 20 20 65 6e 74 72 79 5f 64 69 73 70 09 2c 0a 20 20 20 20 20 20 65 78 63 65 70 74 69 6f   ┆     entry_disp ,       exceptio┆
0x02ebc0…02ebe0             6e 5f 62 61 73 65 09 2c 0a 20 20 20 20 20 20 65 78 63 65 70 74 69 6f 6e 5f 64 69 73 70 09 2c 0a   ┆n_base ,       exception_disp , ┆
0x02ebe0…02ec00             20 20 20 20 20 20 64 65 66 61 75 6c 74 5f 61 70 70 65 74 69 74 65 09 2c 0a 20 20 20 20 20 20 6c   ┆      default_appetite ,       l┆
0x02ec00…02ec20 (12, 0, 15) 61 73 74 5f 70 61 72 61 6d 5f 6f 66 66 73 65 74 09 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 20 73   ┆ast_param_offset : word;       s┆
0x02ec20…02ec40             6f 75 72 63 65 5f 64 61 74 65 09 3a 20 63 6f 64 65 64 5f 64 61 74 65 3b 0a 20 20 20 20 20 20 73   ┆ource_date : coded_date;       s┆
0x02ec40…02ec60             6f 75 72 63 65 5f 74 69 6d 65 09 3a 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 20 20 20 20 20 20 76   ┆ource_time : coded_time;       v┆
0x02ec60…02ec80             65 72 73 69 6f 6e 09 09 2c 0a 20 20 20 20 20 20 65 78 74 72 61 20 20 20 20 20 20 20 20 20 20 20   ┆ersion  ,       extra           ┆
0x02ec80…02eca0             20 20 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 63 6f 6d 70 69 6c 65 72 69 64 20 3a   ┆  ,             (*  compilerid :┆
0x02eca0…02ecc0             20 70 61 63 6b 2c 20 72 65 6c 2c 20 73 75 62 72 65 6c 20 20 2a 29 0a 20 20 20 20 20 20 6e 6f 5f   ┆ pack, rel, subrel  *)       no_┆
0x02ecc0…02ece0             6f 66 5f 70 61 72 61 6d 73 09 3a 20 77 6f 72 64 20 29 3b 0a 0a 20 20 70 72 6f 67 72 61 6d 6b 69   ┆of_params : word );    programki┆
0x02ece0…02ed00             6e 64 3a 0a 20 20 20 20 20 28 64 65 73 5f 6c 65 6e 67 74 68 5f 31 09 2c 0a 20 20 20 20 20 20 6e   ┆nd:      (des_length_1 ,       n┆
0x02ed00…02ed20             6f 5f 6f 66 5f 70 61 67 65 73 5f 31 09 2c 0a 20 20 20 20 20 20 70 61 67 65 73 69 7a 65 5f 31 09   ┆o_of_pages_1 ,       pagesize_1 ┆
0x02ed20…02ed40             2c 0a 20 20 20 20 20 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 5f 31 2c 0a 20 20 20 20   ┆,       last_page_length_1,     ┆
0x02ed40…02ed60             20 20 6b 69 6e 64 5f 31 09 09 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 20 6e 61 6d 65 5f 31 09 09   ┆  kind_1  : word;       name_1  ┆
0x02ed60…02ed80             3a 20 61 6c 66 61 3b 0a 20 20 20 20 20 20 65 6e 74 72 79 5f 70 6f 69 6e 74 09 2c 0a 20 20 20 20   ┆: alfa;       entry_point ,     ┆
0x02ed80…02eda0             20 20 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 20 20 20 3a 20 70 72 6f 67 72 61 6d 5f 70 6f   ┆  exception_point   : program_po┆
0x02eda0…02edc0             69 6e 74 20 29 3b 0a 0a 20 20 64 61 74 61 6b 69 6e 64 3a 0a 20 20 20 20 20 28 64 65 73 5f 6c 65   ┆int );    datakind:      (des_le┆
0x02edc0…02ede0             6e 67 74 68 5f 36 09 2c 0a 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 5f 36 09 2c 0a 20   ┆ngth_6 ,       no_of_pages_6 ,  ┆
0x02ede0…02ee00             20 20 20 20 20 70 61 67 65 73 69 7a 65 5f 36 09 2c 0a 20 20 20 20 20 20 6c 61 73 74 5f 70 61 67   ┆     pagesize_6 ,       last_pag┆
0x02ee00…02ee20 (12, 1, 1)  65 5f 6c 65 6e 67 74 68 5f 36 2c 0a 20 20 20 20 20 20 6b 69 6e 64 5f 36 09 09 3a 20 77 6f 72 64   ┆e_length_6,       kind_6  : word┆
0x02ee20…02ee40             3b 0a 20 20 20 20 20 20 6e 61 6d 65 5f 36 09 09 3a 20 61 6c 66 61 3b 0a 20 20 20 20 20 20 64 61   ┆;       name_6  : alfa;       da┆
0x02ee40…02ee60             74 61 5f 6f 62 6a 65 63 74 5f 64 61 74 65 09 3a 20 63 6f 64 65 64 5f 64 61 74 65 3b 09 09 28 2a   ┆ta_object_date : coded_date;  (*┆
0x02ee60…02ee80             20 20 70 6c 61 63 65 64 20 6f 6e 20 65 6e 74 72 79 20 62 61 73 65 2d 64 69 73 70 20 20 2a 29 0a   ┆  placed on entry base-disp  *) ┆
0x02ee80…02eea0             20 20 20 20 20 20 64 61 74 61 5f 6f 62 6a 65 63 74 5f 74 69 6d 65 09 3a 20 63 6f 64 65 64 5f 74   ┆      data_object_time : coded_t┆
0x02eea0…02eec0             69 6d 65 3b 0a 20 20 20 20 20 20 64 61 74 61 5f 74 61 69 6c 20 20 20 20 20 20 20 20 20 3a 20 61   ┆ime;       data_tail         : a┆
0x02eec0…02eee0             72 72 61 79 20 5b 20 66 69 72 73 74 5f 6f 66 5f 74 61 69 6c 2e 2e 6c 61 73 74 5f 6f 66 5f 64 65   ┆rray [ first_of_tail..last_of_de┆
0x02eee0…02ef00             73 63 72 69 70 74 6f 72 20 5d 20 6f 66 20 77 6f 72 64 20 29 3b 0a 0a 20 20 37 3a 20 28 20 69 61   ┆scriptor ] of word );    7: ( ia┆
0x02ef00…02ef20             72 72 09 09 3a 20 61 72 72 61 79 20 5b 20 30 2e 2e 6c 61 73 74 5f 6f 66 5f 64 65 73 63 72 69 70   ┆rr  : array [ 0..last_of_descrip┆
0x02ef20…02ef40             74 6f 72 20 5d 20 6f 66 20 77 6f 72 64 20 29 3b 0a 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 70 61   ┆tor ] of word );      end;    pa┆
0x02ef40…02ef60             67 65 5f 74 79 70 65 20 3d 20 61 72 72 61 79 20 5b 20 31 2e 2e 64 61 74 61 70 61 67 65 73 69 7a   ┆ge_type = array [ 1..datapagesiz┆
0x02ef60…02ef80             65 20 5d 20 6f 66 20 62 79 74 65 3b 0a 0a 20 20 61 63 63 65 73 73 6d 6f 64 65 09 3d 20 20 28 20   ┆e ] of byte;    accessmode =  ( ┆
0x02ef80…02efa0             66 6d 5f 72 65 61 64 2c 20 66 6d 5f 77 72 69 74 65 29 3b 0a 0a 20 20 6c 69 6e 6b 5f 74 79 70 65   ┆fm_read, fm_write);    link_type┆
0x02efa0…02efc0             09 3d 20 20 5e 70 6f 69 6e 74 65 72 3b 0a 0a 20 20 6c 69 73 74 5f 68 65 61 64 65 72 09 3d 20 20   ┆ =  ^pointer;    list_header =  ┆
0x02efc0…02efe0             72 65 63 6f 72 64 0a 20 20 20 20 66 69 72 73 74 20 2c 0a 20 20 20 20 6c 61 73 74 20 20 3a 20 20   ┆record     first ,     last  :  ┆
0x02efe0…02f000             6c 69 6e 6b 5f 74 79 70 65 3b 0a 20 20 20 20 69 74 65 6d 73 20 3a 20 20 77 6f 72 64 0a 20 20 20   ┆link_type;     items :  word    ┆
0x02f000…02f020 (12, 1, 2)  20 65 6e 64 3b 0a 0a 0a 0a 43 6f 6e 73 74 0a 20 20 20 6c 65 6e 67 74 68 5f 6f 66 5f 66 69 78 65   ┆ end;    Const    length_of_fixe┆
0x02f020…02f040             64 5f 70 61 72 74 31 20 3d 20 20 73 69 7a 65 6f 66 20 28 20 64 65 73 63 72 69 70 74 6f 72 5f 70   ┆d_part1 =  sizeof ( descriptor_p┆
0x02f040…02f060             61 72 74 31 29 3b 0a 0a 56 61 72 0a 20 20 20 20 69 6f 73 74 61 74 09 3a 20 77 6f 72 64 3b 09 09   ┆art1);  Var     iostat : word;  ┆
0x02f060…02f080             28 2a 20 20 73 61 76 65 64 20 69 6f 72 65 73 75 6c 74 09 2a 29 0a 0a 20 20 20 20 70 61 72 61 6d   ┆(*  saved ioresult *)      param┆
0x02f080…02f0a0             6c 69 73 74 09 3a 20 20 6c 69 73 74 5f 68 65 61 64 65 72 3b 09 28 2a 20 20 66 6f 72 20 6c 69 73   ┆list :  list_header; (*  for lis┆
0x02f0a0…02f0c0             74 20 6f 66 20 70 61 72 61 6d 65 74 65 72 73 20 20 20 20 20 20 2a 29 0a 0a 20 20 20 20 70 72 6f   ┆t of parameters      *)      pro┆
0x02f0c0…02f0e0             67 72 61 6d 6e 61 6d 65 09 2c 09 09 28 2a 20 20 66 6f 72 20 20 2f 3c 70 72 6f 67 72 61 6d 6e 61   ┆gramname ,  (*  for  /<programna┆
0x02f0e0…02f100             6d 65 3e 09 2a 29 0a 20 20 20 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 2c 09 09 28 2a 20 20 66   ┆me> *)     plibwork_name,  (*  f┆
0x02f100…02f120             6f 72 20 77 6f 72 6b 20 64 69 72 65 63 74 6f 72 79 20 20 2a 29 0a 20 20 20 20 6c 65 66 74 73 69   ┆or work directory  *)     leftsi┆
0x02f120…02f140             64 65 09 3a 20 20 70 61 74 68 73 74 72 3b 09 28 2a 20 20 66 6f 72 20 20 3d 3c 6c 65 66 74 73 69   ┆de :  pathstr; (*  for  =<leftsi┆
0x02f140…02f160             64 65 3e 09 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 67 65 74 63 6c 6f 63 6b 20 28 20 76   ┆de> *)    Procedure getclock ( v┆
0x02f160…02f180             61 72 20 6e 6f 77 3a 20 64 61 74 65 74 69 6d 65 29 3b 0a 20 20 28 2a 20 20 72 65 61 64 20 61 63   ┆ar now: datetime);   (*  read ac┆
0x02f180…02f1a0             74 75 61 6c 20 64 61 74 65 20 61 6e 64 20 74 69 6d 65 20 20 2a 29 0a 0a 46 75 6e 63 74 69 6f 6e   ┆tual date and time  *)  Function┆
0x02f1a0…02f1c0             20 20 67 65 74 70 61 72 61 6d 20 28 20 77 61 6e 74 5f 70 6e 6f 3a 20 77 6f 72 64 29 3a 20 70 61   ┆  getparam ( want_pno: word): pa┆
0x02f1c0…02f1e0             74 68 73 74 72 3b 0a 20 20 28 2a 20 20 72 65 61 64 20 74 68 65 20 77 61 6e 74 65 64 20 70 61 72   ┆thstr;   (*  read the wanted par┆
0x02f1e0…02f200             61 6d 65 74 65 72 2c 20 6f 72 20 65 6d 70 74 79 20 73 74 72 69 6e 67 0a 20 20 2d 2d 20 20 77 61   ┆ameter, or empty string   --  wa┆
0x02f200…02f220 (12, 1, 3)  6e 74 5f 70 6e 6f 3a 20 20 70 61 72 61 6d 65 74 65 72 20 6e 6f 2c 20 63 6f 75 6e 74 69 6e 67 20   ┆nt_pno:  parameter no, counting ┆
0x02f220…02f240             66 72 6f 6d 20 6f 6e 65 0a 20 20 2a 29 0a 0a 50 72 6f 63 65 64 75 72 65 20 64 61 74 65 5f 61 6e   ┆from one   *)  Procedure date_an┆
0x02f240…02f260             64 5f 74 69 6d 65 5f 74 6f 5f 72 63 33 35 30 32 20 28 20 73 74 61 6d 70 3a 20 64 61 74 65 74 69   ┆d_time_to_rc3502 ( stamp: dateti┆
0x02f260…02f280             6d 65 3b 0a 09 76 61 72 20 64 61 74 65 3a 20 63 6f 64 65 64 5f 64 61 74 65 3b 20 76 61 72 20 74   ┆me;  var date: coded_date; var t┆
0x02f280…02f2a0             69 6d 65 3a 20 63 6f 64 65 64 5f 74 69 6d 65 20 29 3b 0a 20 20 28 2a 20 20 63 6f 6e 76 65 72 74   ┆ime: coded_time );   (*  convert┆
0x02f2a0…02f2c0             20 61 20 44 4f 53 20 64 61 74 65 74 69 6d 65 20 74 6f 20 52 43 33 35 30 32 20 64 65 73 63 72 69   ┆ a DOS datetime to RC3502 descri┆
0x02f2c0…02f2e0             70 74 6f 72 20 66 6f 72 6d 61 74 20 20 2a 29 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 69 74 5f   ┆ptor format  *)  Procedure init_┆
0x02f2e0…02f300             64 61 74 61 5f 64 65 73 63 72 69 70 74 6f 72 20 28 20 76 61 72 20 64 65 73 3a 20 64 65 73 63 72   ┆data_descriptor ( var des: descr┆
0x02f300…02f320             69 70 74 6f 72 5f 70 61 72 74 31 29 3b 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 74 20 28   ┆iptor_part1);  Function strint (┆
0x02f320…02f340             20 6e 3a 20 69 6e 74 65 67 65 72 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a 20 20 63 6f 6e 76   ┆ n: integer): string;   (*  conv┆
0x02f340…02f360             65 72 74 20 6e 20 74 6f 20 61 20 73 74 72 69 6e 67 20 20 2a 29 0a 0a 46 75 6e 63 74 69 6f 6e 20   ┆ert n to a string  *)  Function ┆
0x02f360…02f380             73 74 72 68 65 78 20 28 20 6e 3a 20 77 6f 72 64 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a 20   ┆strhex ( n: word): string;   (* ┆
0x02f380…02f3a0             20 63 6f 6e 76 65 72 74 20 6e 20 74 6f 20 61 20 73 74 72 69 6e 67 20 77 69 74 68 20 32 20 6f 72   ┆ convert n to a string with 2 or┆
0x02f3a0…02f3c0             20 34 20 68 65 78 64 69 67 69 74 73 20 20 2a 29 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 77 6f   ┆ 4 hexdigits  *)  Function strwo┆
0x02f3c0…02f3e0             72 64 20 28 20 6e 3a 20 77 6f 72 64 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a 20 20 63 6f 6e   ┆rd ( n: word): string;   (*  con┆
0x02f3e0…02f400             76 65 72 74 20 6e 20 74 6f 20 61 20 73 74 72 69 6e 67 20 20 2a 29 0a 0a 46 75 6e 63 74 69 6f 6e   ┆vert n to a string  *)  Function┆
0x02f400…02f420 (12, 1, 4)  20 73 74 72 64 61 74 65 20 28 20 64 61 74 65 3a 20 63 6f 64 65 64 5f 64 61 74 65 29 3a 20 73 74   ┆ strdate ( date: coded_date): st┆
0x02f420…02f440             72 69 6e 67 3b 0a 20 20 28 2a 20 20 63 6f 6e 76 65 72 74 20 64 61 74 65 20 74 6f 20 61 20 73 74   ┆ring;   (*  convert date to a st┆
0x02f440…02f460             72 69 6e 67 20 6c 69 6b 65 20 27 31 39 38 39 2e 30 37 2e 32 30 27 20 20 2a 29 0a 0a 46 75 6e 63   ┆ring like '1989.07.20'  *)  Func┆
0x02f460…02f480             74 69 6f 6e 20 73 74 72 74 69 6d 65 20 28 20 74 69 6d 65 3a 20 63 6f 64 65 64 5f 74 69 6d 65 29   ┆tion strtime ( time: coded_time)┆
0x02f480…02f4a0             3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a 20 20 63 6f 6e 76 65 72 74 20 74 69 6d 65 20 74 6f 20   ┆: string;   (*  convert time to ┆
0x02f4a0…02f4c0             61 20 73 74 72 69 6e 67 20 6c 69 6b 65 20 27 31 32 2e 30 34 27 20 20 2a 29 0a 0a 46 75 6e 63 74   ┆a string like '12.04'  *)  Funct┆
0x02f4c0…02f4e0             69 6f 6e 20 73 74 72 61 6c 66 61 20 28 20 74 78 74 3a 20 61 6c 66 61 29 3a 20 73 74 72 69 6e 67   ┆ion stralfa ( txt: alfa): string┆
0x02f4e0…02f500             3b 0a 20 20 28 2a 20 20 70 75 74 20 74 78 74 20 69 6e 74 6f 20 61 20 73 74 72 69 6e 67 20 20 2a   ┆;   (*  put txt into a string  *┆
0x02f500…02f520             29 0a 0a 50 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 5f 68 65 78 20 28 20 64 65 63 5f 6e 75 6d   ┆)  Procedure write_hex ( dec_num┆
0x02f520…02f540             62 65 72 3a 20 77 6f 72 64 3b 20 70 6f 73 69 74 69 6f 6e 73 20 3a 20 77 6f 72 64 29 3b 0a 0a 50   ┆ber: word; positions : word);  P┆
0x02f540…02f560             72 6f 63 65 64 75 72 65 20 69 6f 63 68 65 63 6b 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 29 3b   ┆rocedure iocheck ( var f: file);┆
0x02f560…02f580             0a 20 20 28 2a 20 20 72 65 61 64 73 20 69 6f 72 65 73 75 6c 74 20 61 6e 64 20 73 74 6f 70 20 70   ┆   (*  reads ioresult and stop p┆
0x02f580…02f5a0             72 6f 67 72 61 6d 20 69 66 20 65 72 72 6f 72 20 20 2a 29 0a 0a 50 72 6f 63 65 64 75 72 65 20 6f   ┆rogram if error  *)  Procedure o┆
0x02f5a0…02f5c0             70 65 6e 5f 66 69 6c 65 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20 70 61 74 68 3a 20 70 61   ┆pen_file ( var f: file; path: pa┆
0x02f5c0…02f5e0             74 68 73 74 72 3b 20 6d 6f 64 65 3a 20 61 63 63 65 73 73 6d 6f 64 65 29 3b 0a 20 20 28 2a 20 20   ┆thstr; mode: accessmode);   (*  ┆
0x02f5e0…02f600             6f 70 65 6e 20 66 69 6c 65 20 66 20 20 2a 29 0a 0a 50 72 6f 63 65 64 75 72 65 20 63 6c 6f 73 65   ┆open file f  *)  Procedure close┆
0x02f600…02f620 (12, 1, 5)  5f 66 69 6c 65 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 20 29 3b 0a 20 20 28 2a 20 20 63 6c 6f   ┆_file ( var f: file );   (*  clo┆
0x02f620…02f640             73 65 20 66 69 6c 65 20 66 20 20 2a 29 0a 0a 46 75 6e 63 74 69 6f 6e 20 6c 6f 6f 6b 75 70 20 28   ┆se file f  *)  Function lookup (┆
0x02f640…02f660             20 70 61 74 68 3a 20 70 61 74 68 73 74 72 29 3a 20 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 28 2a 20   ┆ path: pathstr):  boolean;   (* ┆
0x02f660…02f680             20 72 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 20 66 69 6c 65 20 66 6f 75 6e 64 20 20 2a 29 0a   ┆ returns true if file found  *) ┆
0x02f680…02f6a0             0a 50 72 6f 63 65 64 75 72 65 20 66 69 6c 65 5f 73 74 61 6d 70 20 28 20 76 61 72 20 66 3a 20 66   ┆ Procedure file_stamp ( var f: f┆
0x02f6a0…02f6c0             69 6c 65 3b 20 76 61 72 20 73 74 61 6d 70 3a 20 64 61 74 65 74 69 6d 65 29 3b 0a 20 20 28 2a 20   ┆ile; var stamp: datetime);   (* ┆
0x02f6c0…02f6e0             20 72 65 61 64 20 74 68 65 20 64 61 74 65 2d 74 69 6d 65 20 73 74 61 6d 70 20 6f 66 20 61 6e 20   ┆ read the date-time stamp of an ┆
0x02f6e0…02f700             6f 70 65 6e 20 75 6e 74 79 70 65 64 20 66 69 6c 65 20 20 2a 29 0a 0a 50 72 6f 63 65 64 75 72 65   ┆open untyped file  *)  Procedure┆
0x02f700…02f720             20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20 76 61 72 20   ┆ readinteger ( var f: file; var ┆
0x02f720…02f740             64 20 29 3b 0a 20 20 28 2a 20 20 72 65 61 64 20 74 6f 20 61 20 31 36 62 69 74 20 76 61 72 61 62   ┆d );   (*  read to a 16bit varab┆
0x02f740…02f760             6c 65 20 66 72 6f 6d 20 66 20 20 2a 29 0a 0a 50 72 6f 63 65 64 75 72 65 20 72 65 61 64 61 6c 66   ┆le from f  *)  Procedure readalf┆
0x02f760…02f780             61 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20 76 61 72 20 6e 61 6d 65 3a 20 61 6c 66 61 29   ┆a ( var f: file; var name: alfa)┆
0x02f780…02f7a0             3b 0a 20 28 2a 20 20 72 65 61 64 20 20 61 6c 66 61 6c 65 6e 67 74 68 20 62 79 74 65 73 20 69 6e   ┆;  (*  read  alfalength bytes in┆
0x02f7a0…02f7c0             74 6f 20 61 6e 20 61 72 72 61 79 20 6f 66 20 63 68 61 72 73 20 20 2a 29 0a 0a 50 72 6f 63 65 64   ┆to an array of chars  *)  Proced┆
0x02f7c0…02f7e0             75 72 65 20 72 65 61 64 68 65 61 64 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20 76 61 72 20   ┆ure readhead ( var f: file; var ┆
0x02f7e0…02f800             68 65 61 64 3a 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 29 3b 0a 0a 50 72 6f 63 65 64   ┆head: descriptor_part1);  Proced┆
0x02f800…02f820 (12, 1, 6)  75 72 65 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20   ┆ure writeinteger ( var f: file; ┆
0x02f820…02f840             76 61 72 20 77 20 29 3b 0a 20 20 28 2a 20 20 77 72 69 74 65 20 61 20 31 36 62 69 74 20 76 61 72   ┆var w );   (*  write a 16bit var┆
0x02f840…02f860             69 61 62 6c 65 20 20 74 6f 20 66 20 20 2a 29 0a 0a 50 72 6f 63 65 64 75 72 65 20 77 72 69 74 65   ┆iable  to f  *)  Procedure write┆
0x02f860…02f880             61 6c 66 61 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20 76 61 72 20 6e 61 6d 65 3a 20 61 6c   ┆alfa ( var f: file; var name: al┆
0x02f880…02f8a0             66 61 29 3b 0a 20 28 2a 20 20 77 72 69 74 65 20 20 61 6c 66 61 6c 65 6e 67 74 68 20 62 79 74 65   ┆fa);  (*  write  alfalength byte┆
0x02f8a0…02f8c0             73 20 66 72 6f 6d 20 61 6e 20 61 72 72 61 79 20 6f 66 20 63 68 61 72 73 20 20 2a 29 0a 0a 50 72   ┆s from an array of chars  *)  Pr┆
0x02f8c0…02f8e0             6f 63 65 64 75 72 65 20 77 72 69 74 65 68 65 61 64 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b   ┆ocedure writehead ( var f: file;┆
0x02f8e0…02f900             20 76 61 72 20 68 65 61 64 3a 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 29 3b 0a 0a 50   ┆ var head: descriptor_part1);  P┆
0x02f900…02f920             72 6f 63 65 64 75 72 65 20 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 20 28 20 73 3a 20 73 74 72 69   ┆rocedure runtime_error ( s: stri┆
0x02f920…02f940             6e 67 29 3b 0a 20 20 28 2a 20 20 50 72 6f 67 72 61 6d 20 65 78 69 74 20 20 2a 29 0a 0a 46 75 6e   ┆ng);   (*  Program exit  *)  Fun┆
0x02f940…02f960             63 74 69 6f 6e 20 63 74 72 6c 5f 62 72 65 61 6b 20 3a 20 63 68 61 72 3b 0a 20 20 28 2a 20 20 20   ┆ction ctrl_break : char;   (*   ┆
0x02f960…02f980             68 61 6c 74 73 20 74 68 65 20 70 6f 67 72 61 6d 20 69 66 20 20 63 74 72 6c 2d 43 20 69 73 20 70   ┆halts the pogram if  ctrl-C is p┆
0x02f980…02f9a0             72 65 73 73 65 64 2c 20 6f 74 68 65 72 20 6b 65 79 73 20 61 72 65 20 72 65 74 75 72 6e 65 64 20   ┆ressed, other keys are returned ┆
0x02f9a0…02f9c0             20 2a 29 0a 0a 0a 7b 2d 2d 2d 2d 2d 20 75 73 65 64 20 6c 61 74 65 72 2c 20 6d 61 79 62 65 20 2d   ┆ *)   {----- used later, maybe -┆
0x02f9c0…02f9e0             2d 2d 2d 2d 2d 2d 2d 0a 0a 50 72 6f 63 65 64 75 72 65 20 61 73 73 69 67 6e 5f 61 6c 66 61 20 28   ┆-------  Procedure assign_alfa (┆
0x02f9e0…02fa00             20 76 61 72 20 64 3a 20 61 6c 66 61 73 74 72 3b 20 73 3a 20 73 74 72 69 6e 67 29 3b 0a 0a 50 72   ┆ var d: alfastr; s: string);  Pr┆
0x02fa00…02fa20 (12, 1, 7)  6f 63 65 64 75 72 65 20 72 74 70 68 61 6c 74 20 28 20 74 72 61 63 65 20 3a 20 62 6f 6f 6c 65 61   ┆ocedure rtphalt ( trace : boolea┆
0x02fa20…02fa40             6e 29 3b 0a 0a 50 72 6f 63 65 64 75 72 65 20 66 69 6c 65 74 69 6d 65 20 28 20 76 61 72 20 66 3a   ┆n);  Procedure filetime ( var f:┆
0x02fa40…02fa60             20 74 65 78 74 3b 20 76 61 72 20 64 3a 20 64 61 74 65 74 69 6d 65 29 3b 0a 0a 50 72 6f 63 65 64   ┆ text; var d: datetime);  Proced┆
0x02fa60…02fa80             75 72 65 20 64 61 74 65 20 28 20 76 61 72 20 64 61 74 3a 61 6c 66 61 29 3b 0a 0a 50 72 6f 63 65   ┆ure date ( var dat:alfa);  Proce┆
0x02fa80…02faa0             64 75 72 65 20 74 69 6d 65 20 28 20 76 61 72 20 74 69 6d 3a 20 61 6c 66 61 29 3b 0a 0a 50 72 6f   ┆dure time ( var tim: alfa);  Pro┆
0x02faa0…02fac0             63 65 64 75 72 65 20 6e 6f 66 69 6c 65 20 28 20 73 3a 73 74 72 69 6e 67 29 3b 0a 2d 2d 2d 2d 2d   ┆cedure nofile ( s:string); -----┆
0x02fac0…02fae0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x02fae0…02fb00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆----------}  (*-----------------┆
0x02fb00…02fb20             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x02fb20…02fb40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 69 6d 70 6c   ┆------------------------*)  impl┆
0x02fb40…02fb60             65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 28 2a 24 49 2d 20 20 2a 29 0a 0a 63 6f 6e 73 74 0a 0a 20 20   ┆ementation  (*$I-  *)  const    ┆
0x02fb60…02fb80             64 65 62 75 67 5f 75 6e 69 74 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 64 65 62 75 67 32 09 3d 20   ┆debug_unit =  false;   debug2 = ┆
0x02fb80…02fba0             20 66 61 6c 73 65 3b 0a 20 20 64 65 62 75 67 33 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 62 61 63   ┆ false;   debug3 =  false;   bac┆
0x02fba0…02fbc0             6b 73 6c 61 73 68 09 3d 20 20 23 39 32 3b 09 28 2a 20 20 5c 20 20 2a 29 0a 20 20 6d 61 78 66 69   ┆kslash =  #92; (*  \  *)   maxfi┆
0x02fbc0…02fbe0             6c 65 73 09 3d 20 20 20 20 20 20 38 3b 0a 0a 74 79 70 65 0a 0a 20 20 70 61 72 61 6d 70 74 72 20   ┆les =      8;  type    paramptr ┆
0x02fbe0…02fc00             3d 20 5e 70 61 72 61 6d 5f 65 6c 65 6d 65 6e 74 3b 0a 0a 20 20 70 61 72 61 6d 5f 65 6c 65 6d 65   ┆= ^param_element;    param_eleme┆
0x02fc00…02fc20 (12, 1, 8)  6e 74 20 3d 20 72 65 63 6f 72 64 0a 20 20 20 20 6e 65 78 74 20 20 20 20 20 20 3a 20 20 70 61 72   ┆nt = record     next      :  par┆
0x02fc20…02fc40             61 6d 70 74 72 3b 0a 20 20 20 20 70 61 72 61 6d 65 74 65 72 20 3a 20 20 70 61 74 68 73 74 72 3b   ┆amptr;     parameter :  pathstr;┆
0x02fc40…02fc60             0a 20 20 65 6e 64 3b 0a 0a 20 20 62 79 74 65 66 69 6c 65 09 3d 20 72 65 63 6f 72 64 0a 20 20 20   ┆   end;    bytefile = record    ┆
0x02fc60…02fc80             20 20 63 61 73 65 20 62 79 74 65 20 6f 66 0a 20 20 20 20 20 30 3a 20 20 28 20 66 20 3a 20 66 69   ┆  case byte of      0:  ( f : fi┆
0x02fc80…02fca0             6c 65 29 3b 0a 20 20 20 20 20 31 3a 20 20 28 20 66 69 6c 65 64 65 73 20 3a 20 66 69 6c 65 72 65   ┆le);      1:  ( filedes : filere┆
0x02fca0…02fcc0             63 20 29 3b 0a 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 66 69 6c 65 72 65 63 5f 70 74 72 09 3d 20   ┆c );      end;    filerec_ptr = ┆
0x02fcc0…02fce0             20 5e 62 79 74 65 66 69 6c 65 3b 0a 0a 76 61 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a   ┆ ^bytefile;  var              (*┆
0x02fce0…02fd00             20 20 6e 6f 6e 20 70 75 62 6c 69 63 20 76 61 72 69 61 62 6c 65 73 20 20 2a 29 0a 20 20 20 20 65   ┆  non public variables  *)     e┆
0x02fd00…02fd20             78 69 74 73 61 76 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 09 28 2a 20 20 66 6f 72 20 65 72 72 6f   ┆xitsave :  pointer; (*  for erro┆
0x02fd20…02fd40             72 20 68 61 6e 64 6c 65 72 20 20 2a 29 0a 20 20 20 20 70 61 72 61 6d 66 69 6c 65 09 3a 20 20 74   ┆r handler  *)     paramfile :  t┆
0x02fd40…02fd60             65 78 74 20 7b 20 66 69 6c 65 20 7d 20 3b 0a 0a 63 6f 6e 73 74 20 20 20 28 2a 20 20 6c 69 6b 65   ┆ext { file } ;  const   (*  like┆
0x02fd60…02fd80             20 52 43 38 30 30 30 20 6f 77 6e 20 76 61 72 69 61 62 6c 65 20 20 2a 29 0a 20 20 20 20 70 09 09   ┆ RC8000 own variable  *)     p  ┆
0x02fd80…02fda0             3a 20 20 77 6f 72 64 20 3d 20 20 30 3b 0a 20 20 20 20 6b 65 79 09 09 3a 20 20 63 68 61 72 20 3d   ┆:  word =  0;     key  :  char =┆
0x02fda0…02fdc0             20 20 27 20 27 3b 0a 01 44 20 32 0a 20 20 20 73 72 63 5f 64 69 72 09 3a 20 20 64 69 72 73 74 72   ┆  ' ';  D 2    src_dir :  dirstr┆
0x02fdc0…02fde0             20 20 3d 20 27 27 3b 0a 01 45 20 32 0a 01 49 20 32 0a 20 20 20 73 72 63 5f 64 69 72 09 3a 20 20   ┆  = '';  E 2  I 2    src_dir :  ┆
0x02fde0…02fe00             70 61 74 68 73 74 72 20 20 3d 20 27 27 3b 0a 01 45 20 32 0a 20 20 20 70 61 72 61 6d 66 69 6c 65   ┆pathstr  = '';  E 2    paramfile┆
0x02fe00…02fe20 (12, 1, 9)  5f 6f 70 65 6e 65 64 09 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 68   ┆_opened :  boolean = false;    h┆
0x02fe20…02fe40             65 78 6e 75 6d 62 65 72 09 3a 20 61 72 72 61 79 5b 20 30 2e 2e 31 35 20 5d 20 6f 66 20 63 68 61   ┆exnumber : array[ 0..15 ] of cha┆
0x02fe40…02fe60             72 20 3d 0a 20 20 20 20 20 20 28 27 30 27 2c 20 27 31 27 2c 20 27 32 27 2c 20 27 33 27 2c 20 27   ┆r =       ('0', '1', '2', '3', '┆
0x02fe60…02fe80             34 27 2c 20 27 35 27 2c 20 27 36 27 2c 20 27 37 27 2c 0a 20 20 20 20 20 20 20 27 38 27 2c 20 27   ┆4', '5', '6', '7',        '8', '┆
0x02fe80…02fea0             39 27 2c 20 27 41 27 2c 20 27 42 27 2c 20 27 43 27 2c 20 27 44 27 2c 20 27 45 27 2c 20 27 46 27   ┆9', 'A', 'B', 'C', 'D', 'E', 'F'┆
0x02fea0…02fec0             20 29 3b 0a 0a 20 20 20 66 69 6c 65 5f 74 61 62 6c 65 20 20 3a 20 20 61 72 72 61 79 20 5b 20 31   ┆ );     file_table  :  array [ 1┆
0x02fec0…02fee0             2e 2e 6d 61 78 66 69 6c 65 73 20 5d 20 6f 66 20 66 69 6c 65 72 65 63 5f 70 74 72 09 28 2a 20 20   ┆..maxfiles ] of filerec_ptr (*  ┆
0x02fee0…02ff00             75 73 65 64 20 66 69 6c 65 73 20 20 2a 29 0a 20 20 20 20 20 3d 20 28 20 6e 69 6c 2c 20 6e 69 6c   ┆used files  *)      = ( nil, nil┆
0x02ff00…02ff20             2c 20 6e 69 6c 2c 20 6e 69 6c 2c 20 20 20 6e 69 6c 2c 20 6e 69 6c 2c 20 6e 69 6c 2c 20 6e 69 6c   ┆, nil, nil,   nil, nil, nil, nil┆
0x02ff20…02ff40             20 29 3b 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 66 69 6e 64 5f 66 69 6c 65 20 28 20 77 61 6e 74 3a   ┆ );   Function find_file ( want:┆
0x02ff40…02ff60             20 66 69 6c 65 72 65 63 5f 70 74 72 29 3a 20 77 6f 72 64 3b 0a 20 20 76 61 72 0a 20 20 20 20 20   ┆ filerec_ptr): word;   var      ┆
0x02ff60…02ff80             70 20 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 70 3a 3d 20 31 3b 0a 20 20 77 68 69   ┆p : word;   begin   p:= 1;   whi┆
0x02ff80…02ffa0             6c 65 20 28 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 20 3c 3e 20 77 61 6e 74 20 29 20 61 6e 64   ┆le ( file_table[p] <> want ) and┆
0x02ffa0…02ffc0             20 28 20 70 20 3c 20 6d 61 78 66 69 6c 65 73 20 29 20 64 6f 20 20 20 20 69 6e 63 20 28 20 70 29   ┆ ( p < maxfiles ) do    inc ( p)┆
0x02ffc0…02ffe0             3b 0a 20 20 66 69 6e 64 5f 66 69 6c 65 3a 3d 20 70 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 52 4f 43   ┆;   find_file:= p   end;    PROC┆
0x02ffe0…030000             45 44 55 52 45 20 69 6f 63 68 65 63 6b 20 28 20 56 41 52 20 66 3a 20 66 69 6c 65 29 3b 0a 56 41   ┆EDURE iocheck ( VAR f: file); VA┆
0x030000…030020 (12, 1, 10) 52 0a 20 20 70 3a 20 77 6f 72 64 3b 0a 20 20 64 61 74 66 20 3a 20 62 79 74 65 66 69 6c 65 20 61   ┆R   p: word;   datf : bytefile a┆
0x030020…030040             62 73 6f 6c 75 74 65 20 66 3b 0a 42 45 47 49 4e 0a 20 20 69 6f 73 74 61 74 3a 3d 20 69 6f 72 65   ┆bsolute f; BEGIN   iostat:= iore┆
0x030040…030060             73 75 6c 74 3b 0a 20 20 49 46 20 69 6f 73 74 61 74 20 3c 3e 20 30 20 54 48 45 4e 0a 20 20 57 49   ┆sult;   IF iostat <> 0 THEN   WI┆
0x030060…030080             54 48 20 64 61 74 66 20 44 4f 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28   ┆TH datf DO   BEGIN     writeln (┆
0x030080…0300a0             20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 2a   ┆ output);     write ( output, '*┆
0x0300a0…0300c0             2a 20 20 46 69 6c 65 20 49 2f 4f 20 45 72 72 6f 72 20 27 2c 20 69 6f 73 74 61 74 2c 20 27 27 3a   ┆*  File I/O Error ', iostat, '':┆
0x0300c0…0300e0             33 20 29 3b 0a 0a 20 20 63 61 73 65 20 69 6f 73 74 61 74 20 6f 66 0a 20 20 20 20 32 3a 20 77 72   ┆3 );    case iostat of     2: wr┆
0x0300e0…030100             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 27   ┆iteln ( output, 'File not found'┆
0x030100…030120             29 3b 0a 20 20 20 20 33 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 50 61 74   ┆);     3: writeln ( output, 'Pat┆
0x030120…030140             68 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 20 20 20 20 34 3a 20 77 72 69 74 65 6c 6e 20 28 20   ┆h not found');     4: writeln ( ┆
0x030140…030160             6f 75 74 70 75 74 2c 20 27 54 6f 6f 20 6d 61 6e 79 20 6f 70 65 6e 20 66 69 6c 65 73 27 29 3b 0a   ┆output, 'Too many open files'); ┆
0x030160…030180             20 20 20 20 35 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 46 69 6c 65 20 61   ┆    5: writeln ( output, 'File a┆
0x030180…0301a0             63 63 65 73 73 20 64 65 6e 69 65 64 27 29 3b 0a 20 20 20 20 36 3a 20 77 72 69 74 65 6c 6e 20 28   ┆ccess denied');     6: writeln (┆
0x0301a0…0301c0             20 6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c 69 64 20 66 69 6c 65 20 68 61 6e 64 6c 65 27 29 3b   ┆ output, 'Invalid file handle');┆
0x0301c0…0301e0             0a 20 20 20 20 31 32 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c   ┆     12:writeln ( output, 'Inval┆
0x0301e0…030200             69 64 20 66 69 6c 65 20 61 63 63 65 73 73 20 63 6f 64 65 27 29 3b 0a 20 20 20 20 31 30 30 3a 77   ┆id file access code');     100:w┆
0x030200…030220 (12, 1, 11) 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 52 65 61 64 20 70 61 73 74 20 65 6e 64 20 6f   ┆riteln ( output,'Read past end o┆
0x030220…030240             66 20 66 69 6c 65 27 29 3b 0a 20 20 20 20 31 30 31 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆f file');     101:writeln ( outp┆
0x030240…030260             75 74 2c 27 44 69 73 6b 20 66 75 6c 6c 27 29 3b 0a 20 20 20 20 31 30 32 3a 77 72 69 74 65 6c 6e   ┆ut,'Disk full');     102:writeln┆
0x030260…030280             20 28 20 6f 75 74 70 75 74 2c 27 46 69 6c 65 20 6e 6f 74 20 61 73 73 69 67 6e 65 64 27 29 3b 0a   ┆ ( output,'File not assigned'); ┆
0x030280…0302a0             20 20 20 20 31 30 33 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 46 69 6c 65 20 6e   ┆    103:writeln ( output,'File n┆
0x0302a0…0302c0             6f 74 20 6f 70 65 6e 27 29 3b 0a 20 20 20 20 31 30 34 2c 0a 20 20 20 20 31 30 35 3a 77 72 69 74   ┆ot open');     104,     105:writ┆
0x0302c0…0302e0             65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 46 69 6c 65 20 6f 70 65 6e 65 64 20 69 6e 20 62 61 64   ┆eln ( output,'File opened in bad┆
0x0302e0…030300             20 6d 6f 64 65 27 29 3b 0a 20 20 20 20 31 30 36 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆ mode');     106:writeln ( outpu┆
0x030300…030320             74 2c 27 49 6e 76 61 6c 69 64 20 6e 75 6d 65 72 69 63 20 66 6f 72 6d 61 74 27 29 3b 0a 20 20 20   ┆t,'Invalid numeric format');    ┆
0x030320…030340             20 32 30 30 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 44 69 76 69 73 69 6f 6e 20   ┆ 200:writeln ( output,'Division ┆
0x030340…030360             62 79 20 7a 65 72 6f 27 29 3b 0a 20 20 20 20 32 30 31 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆by zero');     201:writeln ( out┆
0x030360…030380             70 75 74 2c 27 4f 75 74 20 6f 66 20 72 61 6e 67 65 27 29 3b 0a 20 20 20 20 32 30 32 3a 77 72 69   ┆put,'Out of range');     202:wri┆
0x030380…0303a0             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 53 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 27 29 3b   ┆teln ( output,'Stack overflow');┆
0x0303a0…0303c0             0a 20 20 20 20 32 30 33 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 48 65 61 70 20   ┆     203:writeln ( output,'Heap ┆
0x0303c0…0303e0             6f 76 65 72 66 6c 6f 77 27 29 3b 0a 20 20 20 20 32 30 34 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆overflow');     204:writeln ( ou┆
0x0303e0…030400             74 70 75 74 2c 27 49 6e 76 61 6c 69 64 20 70 6f 69 6e 74 65 72 20 6f 70 65 72 61 74 69 6f 6e 27   ┆tput,'Invalid pointer operation'┆
0x030400…030420 (12, 1, 12) 29 3b 0a 20 20 20 20 32 30 35 2c 0a 20 20 20 20 32 30 36 2c 0a 20 20 20 20 32 30 37 3a 77 72 69   ┆);     205,     206,     207:wri┆
0x030420…030440             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 65 72   ┆teln ( output,'Floating point er┆
0x030440…030460             72 6f 72 27 29 3b 0a 20 20 20 20 32 35 30 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆ror');     250:writeln ( output,┆
0x030460…030480             20 27 42 72 65 61 6b 20 62 79 20 6f 70 65 72 61 74 6f 72 2e 27 29 3b 0a 20 20 20 20 65 6c 73 65   ┆ 'Break by operator.');     else┆
0x030480…0304a0             20 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆ ;   end;      write ( output, '┆
0x0304a0…0304c0             20 46 69 6c 65 20 27 29 3b 0a 20 20 20 20 70 3a 3d 30 3b 0a 20 20 20 20 57 48 49 4c 45 20 66 69   ┆ File ');     p:=0;     WHILE fi┆
0x0304c0…0304e0             6c 65 64 65 73 2e 6e 61 6d 65 5b 70 5d 3c 3e 20 23 30 30 20 44 4f 0a 20 20 20 20 42 45 47 49 4e   ┆ledes.name[p]<> #00 DO     BEGIN┆
0x0304e0…030500             0a 20 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 66 69 6c 65 64 65 73 2e 6e   ┆       write ( output, filedes.n┆
0x030500…030520             61 6d 65 5b 70 5d 29 3b 20 69 6e 63 20 28 20 70 29 3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20 20 20   ┆ame[p]); inc ( p);     END;     ┆
0x030520…030540             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 20 20 20 20 66 6f 72 20 70 3a 3d 20   ┆writeln ( output);      for p:= ┆
0x030540…030560             31 20 74 6f 20 6d 61 78 66 69 6c 65 73 20 64 6f 09 09 28 2a 20 20 63 6c 6f 73 65 20 66 69 6c 65   ┆1 to maxfiles do  (*  close file┆
0x030560…030580             73 20 20 2a 29 0a 20 20 20 20 20 20 69 66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 20 3c 3e 20   ┆s  *)       if file_table[p] <> ┆
0x030580…0305a0             6e 69 6c 20 74 68 65 6e 0a 20 20 20 20 20 20 69 66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 5e   ┆nil then       if file_table[p]^┆
0x0305a0…0305c0             2e 66 69 6c 65 64 65 73 2e 6d 6f 64 65 20 3c 3e 20 66 6d 63 6c 6f 73 65 64 20 74 68 65 6e 0a 09   ┆.filedes.mode <> fmclosed then  ┆
0x0305c0…0305e0             63 6c 6f 73 65 20 28 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 5e 2e 66 29 3b 0a 0a 20 20 20 20   ┆close ( file_table[p]^.f);      ┆
0x0305e0…030600             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 50 72 6f 67 72 61 6d 20 74 65 72 6d   ┆writeln ( output, ' Program term┆
0x030600…030620 (12, 1, 13) 69 6e 61 74 65 64 2e 27 29 3b 0a 20 20 20 20 68 61 6c 74 20 28 20 69 6f 73 74 61 74 29 3b 0a 20   ┆inated.');     halt ( iostat);  ┆
0x030620…030640             20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 67 65 74 63 6c 6f   ┆ END; END;      Procedure getclo┆
0x030640…030660             63 6b 20 28 20 76 61 72 20 6e 6f 77 3a 20 64 61 74 65 74 69 6d 65 29 3b 0a 20 20 28 2a 20 20 72   ┆ck ( var now: datetime);   (*  r┆
0x030660…030680             65 61 64 20 61 63 74 75 61 6c 20 73 79 73 74 65 6d 20 64 61 74 65 20 61 6e 64 20 74 69 6d 65 20   ┆ead actual system date and time ┆
0x030680…0306a0             20 2a 29 0a 0a 20 20 76 61 72 0a 20 20 20 20 20 64 75 6d 6d 79 3a 20 77 6f 72 64 3b 0a 20 20 62   ┆ *)    var      dummy: word;   b┆
0x0306a0…0306c0             65 67 69 6e 0a 20 20 77 69 74 68 20 6e 6f 77 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆egin   with now do     begin    ┆
0x0306c0…0306e0             20 67 65 74 64 61 74 65 20 28 20 79 65 61 72 2c 20 6d 6f 6e 74 68 2c 20 64 61 79 2c 20 64 75 6d   ┆ getdate ( year, month, day, dum┆
0x0306e0…030700             6d 79 29 3b 0a 20 20 20 20 67 65 74 74 69 6d 65 20 28 20 68 6f 75 72 2c 20 6d 69 6e 2c 20 73 65   ┆my);     gettime ( hour, min, se┆
0x030700…030720             63 2c 20 64 75 6d 6d 79 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72   ┆c, dummy);     end;   end;    Pr┆
0x030720…030740             6f 63 65 64 75 72 65 20 73 65 74 5f 70 61 74 68 5f 65 6e 64 20 28 20 76 61 72 20 73 3a 20 70 61   ┆ocedure set_path_end ( var s: pa┆
0x030740…030760             74 68 73 74 72 29 3b 0a 62 65 67 69 6e 0a 20 20 77 68 69 6c 65 20 73 5b 6c 65 6e 67 74 68 20 28   ┆thstr); begin   while s[length (┆
0x030760…030780             20 73 29 5d 20 3d 20 62 61 63 6b 73 6c 61 73 68 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆ s)] = backslash do   begin     ┆
0x030780…0307a0             64 65 6c 65 74 65 20 28 20 73 2c 20 6c 65 6e 67 74 68 20 28 20 73 29 2c 20 31 29 3b 0a 20 20 65   ┆delete ( s, length ( s), 1);   e┆
0x0307a0…0307c0             6e 64 3b 0a 20 20 69 66 20 73 20 3c 3e 20 27 27 20 74 68 65 6e 20 73 20 3a 3d 20 73 20 2b 20 62   ┆nd;   if s <> '' then s := s + b┆
0x0307c0…0307e0             61 63 6b 73 6c 61 73 68 3b 0a 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 61 64 64 6c   ┆ackslash; end;    Procedure addl┆
0x0307e0…030800             69 73 74 20 28 20 76 61 72 20 6c 69 73 74 3a 20 6c 69 73 74 5f 68 65 61 64 65 72 3b 20 76 61 72   ┆ist ( var list: list_header; var┆
0x030800…030820 (12, 1, 14) 20 69 74 65 6d 20 7b 3a 20 61 6e 79 74 79 70 65 7d 20 29 3b 0a 20 20 28 2a 20 20 69 6e 73 65 72   ┆ item {: anytype} );   (*  inser┆
0x030820…030840             74 20 69 74 65 6d 20 61 73 20 61 20 6e 65 77 20 6c 61 73 74 20 69 74 65 6d 20 69 6e 20 74 68 65   ┆t item as a new last item in the┆
0x030840…030860             20 6c 69 73 74 0a 20 20 2d 2d 20 20 74 68 65 20 66 69 72 73 74 20 66 69 65 6c 64 20 6f 66 20 69   ┆ list   --  the first field of i┆
0x030860…030880             74 65 6d 20 69 73 20 75 73 65 64 20 61 73 20 70 6f 69 6e 74 65 72 20 74 6f 20 6e 65 78 74 20 69   ┆tem is used as pointer to next i┆
0x030880…0308a0             74 65 6d 0a 20 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 6e 65 77 5f 69 74 65 6d 20 3a 20 70   ┆tem   *)   var      new_item : p┆
0x0308a0…0308c0             6f 69 6e 74 65 72 3b 0a 0a 20 20 62 65 67 69 6e 0a 20 20 6e 65 77 5f 69 74 65 6d 3a 3d 20 61 64   ┆ointer;    begin   new_item:= ad┆
0x0308c0…0308e0             64 72 20 28 20 69 74 65 6d 29 3b 0a 20 20 77 69 74 68 20 6c 69 73 74 20 64 6f 0a 20 20 20 20 62   ┆dr ( item);   with list do     b┆
0x0308e0…030900             65 67 69 6e 0a 20 20 20 20 6c 61 73 74 5e 3a 3d 20 6e 65 77 5f 69 74 65 6d 3b 0a 20 20 20 20 6c   ┆egin     last^:= new_item;     l┆
0x030900…030920             61 73 74 3a 3d 20 6c 69 6e 6b 5f 74 79 70 65 20 28 20 6e 65 77 5f 69 74 65 6d 29 3b 0a 20 20 20   ┆ast:= link_type ( new_item);    ┆
0x030920…030940             20 6c 61 73 74 5e 3a 3d 20 6e 69 6c 3b 0a 20 20 20 20 69 6e 63 20 28 20 69 74 65 6d 73 29 0a 20   ┆ last^:= nil;     inc ( items)  ┆
0x030940…030960             20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 61 64 64 6c 69 73 74 20 20 2a 29 0a 0a   ┆   end   end;  (*  addlist  *)  ┆
0x030960…030980             0a 0a 50 72 6f 63 65 64 75 72 65 20 70 61 72 61 6d 20 28 20 76 61 72 20 74 78 74 3a 20 70 61 74   ┆  Procedure param ( var txt: pat┆
0x030980…0309a0             68 73 74 72 29 3b 0a 20 20 28 2a 20 20 72 65 61 64 20 6e 65 78 74 20 70 61 72 61 6d 65 74 65 72   ┆hstr);   (*  read next parameter┆
0x0309a0…0309c0             20 66 72 6f 6d 20 70 61 72 61 6d 66 69 6c 65 20 20 2a 29 0a 76 61 72 20 63 68 3a 20 63 68 61 72   ┆ from paramfile  *) var ch: char┆
0x0309c0…0309e0             3b 0a 62 65 67 69 6e 0a 20 20 74 78 74 20 3a 3d 20 27 27 3b 0a 20 20 72 65 70 65 61 74 0a 20 20   ┆; begin   txt := '';   repeat   ┆
0x0309e0…030a00             20 20 69 66 20 65 6f 66 20 28 20 70 61 72 61 6d 66 69 6c 65 29 20 74 68 65 6e 20 63 68 20 3a 3d   ┆  if eof ( paramfile) then ch :=┆
0x030a00…030a20 (12, 1, 15) 20 63 68 72 20 28 20 32 36 29 0a 20 20 20 20 65 6c 73 65 20 20 62 65 67 69 6e 0a 20 20 20 20 20   ┆ chr ( 26)     else  begin      ┆
0x030a20…030a40             20 72 65 61 64 20 28 20 70 61 72 61 6d 66 69 6c 65 2c 20 63 68 29 3b 0a 20 20 20 20 20 20 69 6f   ┆ read ( paramfile, ch);       io┆
0x030a40…030a60             73 74 61 74 3a 3d 20 69 6f 72 65 73 75 6c 74 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 75 6e 74   ┆stat:= ioresult       end;   unt┆
0x030a60…030a80             69 6c 20 20 28 20 63 68 20 3e 20 27 20 27 29 20 6f 72 20 20 28 20 63 68 20 3d 20 63 68 72 20 28   ┆il  ( ch > ' ') or  ( ch = chr (┆
0x030a80…030aa0             20 32 36 29 29 3b 0a 20 20 77 68 69 6c 65 20 20 28 20 63 68 20 3c 3e 20 27 20 27 29 20 61 6e 64   ┆ 26));   while  ( ch <> ' ') and┆
0x030aa0…030ac0             20 20 28 20 63 68 20 3c 3e 20 63 68 72 20 28 20 32 36 29 29 20 64 6f 0a 20 20 62 65 67 69 6e 0a   ┆  ( ch <> chr ( 26)) do   begin ┆
0x030ac0…030ae0             20 20 20 20 69 66 20 63 68 20 3e 20 27 20 27 20 74 68 65 6e 20 74 78 74 20 3a 3d 20 63 6f 6e 63   ┆    if ch > ' ' then txt := conc┆
0x030ae0…030b00             61 74 20 28 20 74 78 74 2c 20 63 68 29 3b 0a 20 20 20 20 69 66 20 65 6f 66 20 28 20 70 61 72 61   ┆at ( txt, ch);     if eof ( para┆
0x030b00…030b20             6d 66 69 6c 65 29 20 74 68 65 6e 20 63 68 20 3a 3d 20 63 68 72 20 28 20 32 36 29 20 65 6c 73 65   ┆mfile) then ch := chr ( 26) else┆
0x030b20…030b40             0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 72 65 61 64 20 28 20 70 61 72 61 6d 66 69 6c   ┆     begin       read ( paramfil┆
0x030b40…030b60             65 2c 20 63 68 29 3b 0a 20 20 20 20 20 20 69 6f 73 74 61 74 3a 3d 20 69 6f 72 65 73 75 6c 74 3b   ┆e, ch);       iostat:= ioresult;┆
0x030b60…030b80             0a 20 20 20 20 20 20 69 66 20 63 68 20 3c 20 27 20 27 20 74 68 65 6e 20 63 68 20 3a 3d 20 27 20   ┆       if ch < ' ' then ch := ' ┆
0x030b80…030ba0             27 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 0a 50 72 6f 63 65 64   ┆';     end;   end; end;   Proced┆
0x030ba0…030bc0             75 72 65 20 70 61 72 61 6d 70 75 74 20 28 20 73 3a 20 70 61 74 68 73 74 72 29 3b 20 20 66 6f 72   ┆ure paramput ( s: pathstr);  for┆
0x030bc0…030be0             77 61 72 64 3b 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 72 65 61 64 70 61 72 61 6d 66 69 6c 65 20   ┆ward;   Procedure readparamfile ┆
0x030be0…030c00             28 20 6e 61 6d 65 3a 20 70 61 74 68 73 74 72 29 3b 0a 20 76 61 72 0a 20 20 20 74 78 74 20 3a 20   ┆( name: pathstr);  var    txt : ┆
0x030c00…030c20 (13, 0, 1)  70 61 74 68 73 74 72 3b 0a 20 62 65 67 69 6e 0a 20 20 69 66 20 70 6f 73 20 28 20 27 2d 27 2c 20   ┆pathstr;  begin   if pos ( '-', ┆
0x030c20…030c40             6e 61 6d 65 29 20 3d 20 30 20 74 68 65 6e 20 65 78 69 74 3b 0a 20 20 6e 61 6d 65 20 3a 3d 20 63   ┆name) = 0 then exit;   name := c┆
0x030c40…030c60             6f 70 79 20 28 20 6e 61 6d 65 2c 20 70 6f 73 20 28 20 27 2d 27 2c 20 6e 61 6d 65 29 2b 31 2c 20   ┆opy ( name, pos ( '-', name)+1, ┆
0x030c60…030c80             6c 65 6e 67 74 68 20 28 20 6e 61 6d 65 29 20 2d 20 70 6f 73 20 28 20 27 2d 27 2c 6e 61 6d 65 29   ┆length ( name) - pos ( '-',name)┆
0x030c80…030ca0             29 3b 0a 20 20 63 6c 6f 73 65 20 28 20 70 61 72 61 6d 66 69 6c 65 29 3b 0a 20 20 69 66 20 69 6f   ┆);   close ( paramfile);   if io┆
0x030ca0…030cc0             72 65 73 75 6c 74 20 3c 3e 20 30 20 74 68 65 6e 20 20 3b 20 28 2a 20 20 69 67 6e 6f 72 65 20 20   ┆result <> 0 then  ; (*  ignore  ┆
0x030cc0…030ce0             2a 29 0a 0a 20 20 61 73 73 69 67 6e 20 28 20 70 61 72 61 6d 66 69 6c 65 2c 20 6e 61 6d 65 29 3b   ┆*)    assign ( paramfile, name);┆
0x030ce0…030d00             0a 20 20 72 65 73 65 74 20 28 20 70 61 72 61 6d 66 69 6c 65 29 3b 0a 20 20 69 66 20 69 6f 72 65   ┆   reset ( paramfile);   if iore┆
0x030d00…030d20             73 75 6c 74 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 70 61 72 61   ┆sult = 0 then     begin     para┆
0x030d20…030d40             6d 66 69 6c 65 5f 6f 70 65 6e 65 64 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 70 61 72 61 6d 20 28   ┆mfile_opened:= true;     param (┆
0x030d40…030d60             20 74 78 74 29 3b 0a 20 20 20 20 77 68 69 6c 65 20 6c 65 6e 67 74 68 20 28 20 74 78 74 29 20 3e   ┆ txt);     while length ( txt) >┆
0x030d60…030d80             20 30 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 61 72 61 6d 70 75 74   ┆ 0 do       begin       paramput┆
0x030d80…030da0             20 28 20 74 78 74 29 3b 0a 20 20 20 20 20 20 70 61 72 61 6d 20 28 20 74 78 74 29 3b 0a 20 20 20   ┆ ( txt);       param ( txt);    ┆
0x030da0…030dc0             20 20 20 65 6e 64 3b 0a 20 20 20 20 63 6c 6f 73 65 20 28 20 70 61 72 61 6d 66 69 6c 65 29 3b 0a   ┆   end;     close ( paramfile); ┆
0x030dc0…030de0             20 20 20 20 69 6f 73 74 61 74 3a 3d 20 69 6f 72 65 73 75 6c 74 3b 0a 20 20 20 20 70 61 72 61 6d   ┆    iostat:= ioresult;     param┆
0x030de0…030e00             66 69 6c 65 5f 6f 70 65 6e 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 65 6e 64 20 20 28 2a   ┆file_opened:= false;     end  (*┆
0x030e00…030e20 (13, 0, 2)  20 20 6f 6b 20 20 2a 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72   ┆  ok  *)   else     begin     wr┆
0x030e20…030e40             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 21 21 20 20 50 61 72 61 6d 69 6e 20 66 69 6c   ┆iteln ( output, '!!  Paramin fil┆
0x030e40…030e60             65 20 27 2c 20 6e 61 6d 65 2c 20 27 20 20 6e 6f 74 20 66 6f 75 6e 64 2e 27 29 3b 0a 20 20 20 20   ┆e ', name, '  not found.');     ┆
0x030e60…030e80             68 61 6c 74 20 28 20 32 29 0a 20 20 20 20 65 6e 64 0a 20 65 6e 64 3b 20 20 28 2a 20 20 72 65 61   ┆halt ( 2)     end  end;  (*  rea┆
0x030e80…030ea0             64 70 61 72 61 6d 66 69 6c 65 20 20 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 73 61 76 65   ┆dparamfile  *)    Procedure save┆
0x030ea0…030ec0             70 61 74 68 20 28 20 73 3a 20 73 74 72 69 6e 67 3b 20 76 61 72 20 66 69 72 73 74 6e 61 6d 65 2c   ┆path ( s: string; var firstname,┆
0x030ec0…030ee0             20 6c 61 73 74 6e 61 6d 65 3a 20 70 61 74 68 73 74 72 29 3b 0a 28 2a 20 20 20 72 65 61 64 20 20   ┆ lastname: pathstr); (*   read  ┆
0x030ee0…030f00             20 27 3f 3f 3f 3f 3f 2d 3c 66 69 72 73 74 6e 61 6d 65 3e 2d 3c 6c 61 73 74 6e 61 6d 65 3e 2d 3f   ┆ '?????-<firstname>-<lastname>-?┆
0x030f00…030f20             3f 3f 3f 3f 27 20 20 20 2a 29 0a 76 61 72 20 62 31 2c 20 62 32 2c 20 65 3a 20 62 79 74 65 3b 0a   ┆????'   *) var b1, b2, e: byte; ┆
0x030f20…030f40             62 65 67 69 6e 0a 20 20 62 31 20 3a 3d 20 70 6f 73 20 28 20 27 2d 27 2c 20 73 29 3b 0a 20 20 65   ┆begin   b1 := pos ( '-', s);   e┆
0x030f40…030f60             20 20 3a 3d 20 62 31 3b 0a 20 20 69 66 20 62 31 20 3e 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69   ┆  := b1;   if b1 > 0 then   begi┆
0x030f60…030f80             6e 0a 20 20 20 20 73 5b 62 31 5d 20 3a 3d 20 63 68 72 20 28 20 32 36 29 3b 0a 20 20 20 20 65 20   ┆n     s[b1] := chr ( 26);     e ┆
0x030f80…030fa0             20 20 20 20 3a 3d 20 65 20 2d 20 31 3b 0a 20 20 65 6e 64 20 65 6c 73 65 20 65 20 3a 3d 20 6c 65   ┆    := e - 1;   end else e := le┆
0x030fa0…030fc0             6e 67 74 68 20 28 20 73 29 3b 0a 20 20 66 69 72 73 74 6e 61 6d 65 3a 3d 20 20 63 6f 70 79 20 28   ┆ngth ( s);   firstname:=  copy (┆
0x030fc0…030fe0             20 73 2c 20 31 2b 31 2c 20 65 2d 31 29 3b 0a 20 20 62 32 20 3a 3d 20 70 6f 73 20 28 20 27 2d 27   ┆ s, 1+1, e-1);   b2 := pos ( '-'┆
0x030fe0…031000             2c 20 73 29 3b 0a 20 20 65 20 20 3a 3d 20 62 32 3b 0a 20 20 69 66 20 62 32 20 3d 20 30 20 74 68   ┆, s);   e  := b2;   if b2 = 0 th┆
0x031000…031020 (13, 0, 3)  65 6e 20 65 20 3a 3d 20 6c 65 6e 67 74 68 20 28 20 73 29 20 65 6c 73 65 20 65 20 3a 3d 20 65 20   ┆en e := length ( s) else e := e ┆
0x031020…031040             2d 20 31 3b 0a 20 20 69 66 20 62 31 20 3e 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20   ┆- 1;   if b1 > 0 then   begin   ┆
0x031040…031060             20 20 6c 61 73 74 6e 61 6d 65 3a 3d 20 20 63 6f 70 79 20 28 20 73 2c 20 62 31 2b 31 2c 20 65 2d   ┆  lastname:=  copy ( s, b1+1, e-┆
0x031060…031080             62 31 29 3b 0a 20 20 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 33 72 64 20 6e 61 6d 65   ┆b1);     (*-----------  3rd name┆
0x031080…0310a0             20 6e 6f 74 20 75 73 65 64 0a 20 20 20 20 69 66 20 62 32 20 3e 20 30 20 74 68 65 6e 0a 20 20 20   ┆ not used     if b2 > 0 then    ┆
0x0310a0…0310c0             20 62 65 67 69 6e 0a 20 20 20 20 20 20 73 5b 62 32 5d 20 3a 3d 20 63 68 72 20 28 20 32 36 29 3b   ┆ begin       s[b2] := chr ( 26);┆
0x0310c0…0310e0             0a 20 20 20 20 20 20 65 20 3a 3d 20 70 6f 73 20 28 20 27 2d 27 2c 20 73 29 3b 0a 20 20 20 20 20   ┆       e := pos ( '-', s);      ┆
0x0310e0…031100             20 69 66 20 65 20 3d 20 30 20 74 68 65 6e 20 65 20 3a 3d 20 6c 65 6e 67 74 68 20 28 20 73 29 20   ┆ if e = 0 then e := length ( s) ┆
0x031100…031120             65 6c 73 65 20 65 20 3a 3d 20 65 20 2d 20 31 3b 0a 20 20 20 20 20 20 70 32 3a 3d 20 63 6f 70 79   ┆else e := e - 1;       p2:= copy┆
0x031120…031140             20 28 20 73 2c 20 62 32 2b 31 2c 20 65 2d 62 32 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20   ┆ ( s, b2+1, e-b2);     end;     ┆
0x031140…031160             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x031160…031180             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 0a 50 72 6f 63 65   ┆----------*)   end; end;   Proce┆
0x031180…0311a0             64 75 72 65 20 70 61 72 61 6d 70 75 74 20 28 20 73 3a 20 70 61 74 68 73 74 72 29 3b 0a 20 20 28   ┆dure paramput ( s: pathstr);   (┆
0x0311a0…0311c0             2a 20 20 72 65 61 64 20 6e 65 78 74 20 70 72 6f 67 72 61 6d 20 70 61 72 61 6d 65 74 65 72 20 61   ┆*  read next program parameter a┆
0x0311c0…0311e0             6e 64 20 70 75 74 20 69 74 20 69 6e 74 6f 20 70 61 72 61 6d 6c 69 73 74 0a 20 20 2d 2d 20 20 67   ┆nd put it into paramlist   --  g┆
0x0311e0…031200             6c 6f 62 61 6c 73 3a 20 20 70 61 72 61 6d 6c 69 73 74 0a 20 20 2a 29 0a 0a 0a 76 61 72 0a 20 20   ┆lobals:  paramlist   *)   var   ┆
0x031200…031220 (13, 0, 4)  70 20 20 20 20 3a 20 77 6f 72 64 3b 0a 20 20 70 72 65 63 20 3a 20 20 70 61 72 61 6d 70 74 72 3b   ┆p    : word;   prec :  paramptr;┆
0x031220…031240             0a 20 20 70 61 74 68 31 5f 6e 61 6d 65 3a 20 70 61 74 68 73 74 72 3b 20 20 20 28 2a 20 20 6e 6f   ┆   path1_name: pathstr;   (*  no┆
0x031240…031260             74 20 75 73 65 64 20 69 6e 20 70 6c 69 62 20 20 2a 29 0a 0a 62 65 67 69 6e 0a 20 20 66 6f 72 20   ┆t used in plib  *)  begin   for ┆
0x031260…031280             70 20 3a 3d 20 31 20 74 6f 20 6c 65 6e 67 74 68 20 28 20 73 29 20 64 6f 09 09 28 2a 20 20 63 6f   ┆p := 1 to length ( s) do  (*  co┆
0x031280…0312a0             6e 76 65 72 74 20 74 6f 20 73 6d 61 6c 6c 20 20 2a 29 0a 20 20 69 66 20 20 28 20 73 5b 70 5d 20   ┆nvert to small  *)   if  ( s[p] ┆
0x0312a0…0312c0             3e 3d 20 27 41 27 29 20 61 6e 64 20 20 28 20 73 5b 70 5d 20 3c 3d 20 27 5a 27 29 20 74 68 65 6e   ┆>= 'A') and  ( s[p] <= 'Z') then┆
0x0312c0…0312e0             0a 20 20 20 20 73 5b 70 5d 20 3a 3d 20 63 68 72 20 28 20 6f 72 64 20 28 20 73 5b 70 5d 29 20 2d   ┆     s[p] := chr ( ord ( s[p]) -┆
0x0312e0…031300             20 6f 72 64 20 28 20 27 41 27 29 20 2b 20 6f 72 64 20 28 20 27 61 27 29 29 3b 0a 0a 20 20 69 66   ┆ ord ( 'A') + ord ( 'a'));    if┆
0x031300…031320             20 70 6f 73 20 28 20 27 70 61 72 61 6d 69 6e 2d 27 2c 20 73 29 20 3d 20 31 20 74 68 65 6e 0a 20   ┆ pos ( 'paramin-', s) = 1 then  ┆
0x031320…031340             20 20 20 72 65 61 64 70 61 72 61 6d 66 69 6c 65 20 28 20 73 29 0a 20 20 65 6c 73 65 0a 0a 20 20   ┆   readparamfile ( s)   else    ┆
0x031340…031360             69 66 20 70 6f 73 20 28 20 27 73 6f 75 72 63 65 70 61 74 68 2d 27 2c 20 73 29 20 3d 20 31 20 74   ┆if pos ( 'sourcepath-', s) = 1 t┆
0x031360…031380             68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 73 72 63 5f 64 69 72 3a 3d 20 63 6f 70 79   ┆hen     begin     src_dir:= copy┆
0x031380…0313a0             20 28 20 73 2c 20 31 32 2c 20 70 61 74 68 6c 65 6e 67 74 68 29 3b 0a 20 20 20 20 69 66 20 73 72   ┆ ( s, 12, pathlength);     if sr┆
0x0313a0…0313c0             63 5f 64 69 72 20 3d 20 27 2e 27 20 74 68 65 6e 20 73 72 63 5f 64 69 72 3a 3d 20 27 27 3b 0a 20   ┆c_dir = '.' then src_dir:= '';  ┆
0x0313c0…0313e0             20 20 20 73 65 74 5f 70 61 74 68 5f 65 6e 64 20 28 20 73 72 63 5f 64 69 72 29 0a 20 20 20 20 65   ┆   set_path_end ( src_dir)     e┆
0x0313e0…031400             6e 64 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 3d 27 2c 20 73 29 20 3d 20   ┆nd   else    if pos ( '=', s) = ┆
0x031400…031420 (13, 0, 5)  31 20 74 68 65 6e 0a 20 20 20 20 73 61 76 65 70 61 74 68 20 28 20 73 2c 20 6c 65 66 74 73 69 64   ┆1 then     savepath ( s, leftsid┆
0x031420…031440             65 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 29 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70   ┆e, plibwork_name)   else    if p┆
0x031440…031460             6f 73 20 28 20 27 2f 27 2c 20 73 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 73 61 76 65 70 61   ┆os ( '/', s) = 1 then     savepa┆
0x031460…031480             74 68 20 28 20 73 2c 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 70 61 74 68 31 5f 6e 61 6d 65 29   ┆th ( s, programname, path1_name)┆
0x031480…0314a0             0a 20 20 65 6c 73 65 0a 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6e 65 77 20 28 20 70 72 65   ┆   else      begin     new ( pre┆
0x0314a0…0314c0             63 29 3b 0a 20 20 20 20 66 69 6c 6c 63 68 61 72 20 28 20 70 72 65 63 5e 2c 20 73 69 7a 65 6f 66   ┆c);     fillchar ( prec^, sizeof┆
0x0314c0…0314e0             20 28 20 70 72 65 63 5e 29 2c 20 30 29 3b 0a 20 20 20 20 70 3a 3d 20 70 6f 73 20 28 20 27 2d 27   ┆ ( prec^), 0);     p:= pos ( '-'┆
0x0314e0…031500             2c 20 73 29 20 2b 20 31 3b 0a 20 20 20 20 69 66 20 20 28 20 70 6f 73 20 28 20 27 70 72 69 6e 74   ┆, s) + 1;     if  ( pos ( 'print┆
0x031500…031520             2d 27 2c 20 73 29 20 3c 3e 20 31 20 29 0a 20 20 20 20 61 6e 64 20 28 20 70 6f 73 20 28 20 27 6d   ┆-', s) <> 1 )     and ( pos ( 'm┆
0x031520…031540             61 70 2d 27 2c 20 73 29 20 3c 3e 20 31 20 29 0a 20 20 20 20 61 6e 64 20 28 20 70 6f 73 20 28 20   ┆ap-', s) <> 1 )     and ( pos ( ┆
0x031540…031560             27 73 74 61 72 74 2d 27 2c 20 73 29 20 3c 3e 20 31 20 29 0a 20 20 20 20 61 6e 64 20 28 20 70 6f   ┆'start-', s) <> 1 )     and ( po┆
0x031560…031580             73 20 28 20 27 76 65 72 73 69 6f 6e 2d 27 2c 20 73 29 20 3c 3e 20 31 20 29 0a 20 20 20 20 74 68   ┆s ( 'version-', s) <> 1 )     th┆
0x031580…0315a0             65 6e 20 69 6e 73 65 72 74 20 28 20 73 72 63 5f 64 69 72 2c 20 73 2c 20 70 29 3b 0a 20 20 20 20   ┆en insert ( src_dir, s, p);     ┆
0x0315a0…0315c0             70 72 65 63 5e 2e 70 61 72 61 6d 65 74 65 72 3a 3d 20 73 3b 0a 20 20 20 20 61 64 64 6c 69 73 74   ┆prec^.parameter:= s;     addlist┆
0x0315c0…0315e0             20 28 20 70 61 72 61 6d 6c 69 73 74 2c 20 70 72 65 63 5e 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 65   ┆ ( paramlist, prec^);     end; e┆
0x0315e0…031600             6e 64 3b 20 20 28 2a 20 20 70 61 72 61 6d 70 75 74 20 20 2a 29 0a 0a 0a 50 72 6f 63 65 64 75 72   ┆nd;  (*  paramput  *)   Procedur┆
0x031600…031620 (13, 0, 6)  65 20 66 69 6e 64 73 65 74 20 28 20 6e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 20 76 61 72 20 72 65   ┆e findset ( name: string; var re┆
0x031620…031640             73 3a 20 70 61 74 68 73 74 72 29 3b 0a 56 61 72 0a 20 20 20 20 65 20 20 20 20 09 3a 20 20 77 6f   ┆s: pathstr); Var     e     :  wo┆
0x031640…031660             72 64 3b 0a 20 20 20 20 65 6e 76 69 72 73 65 67 09 3a 20 20 5e 77 6f 72 64 3b 0a 20 20 20 20 65   ┆rd;     envirseg :  ^word;     e┆
0x031660…031680             6e 76 69 72 09 3a 20 20 5e 63 68 61 72 3b 0a 20 20 20 20 73 65 74 6e 61 6d 65 20 20 20 20 20 3a   ┆nvir :  ^char;     setname     :┆
0x031680…0316a0             20 20 73 74 72 69 6e 67 3b 0a 62 65 67 69 6e 0a 0a 20 20 72 65 73 20 20 20 20 20 20 3a 3d 20 27   ┆  string; begin    res      := '┆
0x0316a0…0316c0             27 3b 0a 0a 20 20 65 6e 76 69 72 73 65 67 20 3a 3d 20 70 74 72 20 28 20 20 70 72 65 66 69 78 73   ┆';    envirseg := ptr (  prefixs┆
0x0316c0…0316e0             65 67 2c 20 24 32 63 29 3b 0a 20 20 65 20 20 20 20 20 20 20 20 3a 3d 20 30 3b 0a 20 20 65 6e 76   ┆eg, $2c);   e        := 0;   env┆
0x0316e0…031700             69 72 20 20 20 20 3a 3d 20 70 74 72 20 28 20 65 6e 76 69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20   ┆ir    := ptr ( envirseg^, e);   ┆
0x031700…031720             77 68 69 6c 65 20 65 6e 76 69 72 5e 20 3c 3e 20 63 68 72 20 28 20 30 29 20 64 6f 0a 20 20 20 20   ┆while envir^ <> chr ( 0) do     ┆
0x031720…031740             62 65 67 69 6e 0a 20 20 20 20 20 20 73 65 74 6e 61 6d 65 20 3a 3d 20 27 27 3b 0a 20 20 20 20 20   ┆begin       setname := '';      ┆
0x031740…031760             20 72 65 70 65 61 74 0a 20 20 20 20 20 20 20 20 69 66 20 20 28 20 65 6e 76 69 72 5e 3e 3d 27 41   ┆ repeat         if  ( envir^>='A┆
0x031760…031780             27 29 20 61 6e 64 20 20 28 20 65 6e 76 69 72 5e 3c 3d 27 5a 27 29 20 74 68 65 6e 0a 20 20 20 20   ┆') and  ( envir^<='Z') then     ┆
0x031780…0317a0             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 73 65 74 6e 61 6d 65 20 3a 3d 20 73   ┆    begin           setname := s┆
0x0317a0…0317c0             65 74 6e 61 6d 65 20 2b 20 65 6e 76 69 72 5e 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73   ┆etname + envir^;         end els┆
0x0317c0…0317e0             65 0a 20 20 20 20 20 20 20 20 69 66 20 20 28 20 65 6e 76 69 72 5e 3e 3d 27 30 27 29 20 61 6e 64   ┆e         if  ( envir^>='0') and┆
0x0317e0…031800             20 20 28 20 65 6e 76 69 72 5e 3c 3d 27 39 27 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65   ┆  ( envir^<='9') then         be┆
0x031800…031820 (13, 0, 7)  67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 73 65 74 6e 61 6d 65 20 3a 3d 20 73 65 74 6e 61 6d 65   ┆gin           setname := setname┆
0x031820…031840             20 2b 20 65 6e 76 69 72 5e 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20   ┆ + envir^;         end;         ┆
0x031840…031860             65 20 20 20 20 20 3a 3d 20 65 20 2b 20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 76 69 72 20 3a 3d   ┆e     := e + 1;         envir :=┆
0x031860…031880             20 70 74 72 20 28 20 65 6e 76 69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20 20 20 20 20 75 6e 74 69   ┆ ptr ( envirseg^, e);       unti┆
0x031880…0318a0             6c 20 65 6e 76 69 72 5e 20 3d 20 27 3d 27 3b 0a 20 20 20 20 20 20 65 20 20 20 20 20 20 3a 3d 20   ┆l envir^ = '=';       e      := ┆
0x0318a0…0318c0             65 20 2b 20 31 3b 0a 20 20 20 20 20 20 65 6e 76 69 72 20 20 3a 3d 20 70 74 72 20 28 20 65 6e 76   ┆e + 1;       envir  := ptr ( env┆
0x0318c0…0318e0             69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20 20 20 20 20 77 68 69 6c 65 20 65 6e 76 69 72 5e 20 3c   ┆irseg^, e);       while envir^ <┆
0x0318e0…031900             3e 20 63 68 72 20 28 20 30 29 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20   ┆> chr ( 0) do       begin       ┆
0x031900…031920             20 20 69 66 20 73 65 74 6e 61 6d 65 20 3d 20 6e 61 6d 65 20 74 68 65 6e 20 72 65 73 20 3a 3d 20   ┆  if setname = name then res := ┆
0x031920…031940             72 65 73 20 2b 20 65 6e 76 69 72 5e 3b 0a 20 20 20 20 20 20 20 20 65 20 20 20 20 20 3a 3d 20 65   ┆res + envir^;         e     := e┆
0x031940…031960             20 2b 20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 76 69 72 20 3a 3d 20 70 74 72 20 28 20 65 6e 76   ┆ + 1;         envir := ptr ( env┆
0x031960…031980             69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 65 20 20   ┆irseg^, e);       end;       e  ┆
0x031980…0319a0             20 20 20 3a 3d 20 65 20 2b 20 31 3b 0a 20 20 20 20 20 20 65 6e 76 69 72 20 3a 3d 20 70 74 72 20   ┆   := e + 1;       envir := ptr ┆
0x0319a0…0319c0             28 20 65 6e 76 69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77   ┆( envirseg^, e);     end;  (*  w┆
0x0319c0…0319e0             68 69 6c 65 20 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 67 65 74 70 61   ┆hile  *)  end;    Function getpa┆
0x0319e0…031a00             72 61 6d 20 28 20 77 61 6e 74 5f 70 6e 6f 3a 20 77 6f 72 64 29 3a 20 70 61 74 68 73 74 72 3b 0a   ┆ram ( want_pno: word): pathstr; ┆
0x031a00…031a20 (13, 0, 8)  20 20 28 2a 20 20 72 65 61 64 20 74 68 65 20 77 61 6e 74 65 64 20 70 61 72 61 6d 65 74 65 72 2c   ┆  (*  read the wanted parameter,┆
0x031a20…031a40             20 6f 72 20 65 6d 70 74 79 20 73 74 72 69 6e 67 0a 20 20 2d 2d 20 20 77 61 6e 74 5f 70 6e 6f 3a   ┆ or empty string   --  want_pno:┆
0x031a40…031a60             20 20 70 61 72 61 6d 65 74 65 72 20 6e 6f 2c 20 63 6f 75 6e 74 69 6e 67 20 66 72 6f 6d 20 6f 6e   ┆  parameter no, counting from on┆
0x031a60…031a80             65 0a 20 20 2d 2d 20 20 67 6c 6f 62 61 6c 73 3a 20 20 70 61 72 61 6d 6c 69 73 74 0a 20 20 2a 29   ┆e   --  globals:  paramlist   *)┆
0x031a80…031aa0             0a 20 20 43 6f 6e 73 74 09 09 28 2a 20 20 6f 77 6e 73 20 20 2a 29 0a 20 20 20 20 20 63 75 72 5f   ┆   Const  (*  owns  *)      cur_┆
0x031aa0…031ac0             70 6e 6f 20 3a 20 20 77 6f 72 64 20 3d 20 20 6d 61 78 69 6e 74 3b 09 28 2a 20 20 6c 61 73 74 20   ┆pno :  word =  maxint; (*  last ┆
0x031ac0…031ae0             61 63 63 65 73 73 65 64 20 70 61 72 61 6d 20 6e 6f 20 20 2a 29 0a 20 20 20 20 20 63 75 72 5f 70   ┆accessed param no  *)      cur_p┆
0x031ae0…031b00             61 72 20 3a 20 20 70 61 72 61 6d 70 74 72 20 3d 20 6e 69 6c 3b 09 28 2a 20 20 70 6f 69 6e 74 73   ┆ar :  paramptr = nil; (*  points┆
0x031b00…031b20             20 74 6f 20 6c 61 73 74 20 61 63 63 65 73 73 65 64 20 70 61 72 61 6d 20 20 2a 29 0a 20 20 62 65   ┆ to last accessed param  *)   be┆
0x031b20…031b40             67 69 6e 0a 20 20 69 66 20 77 61 6e 74 5f 70 6e 6f 20 3c 20 63 75 72 5f 70 6e 6f 20 74 68 65 6e   ┆gin   if want_pno < cur_pno then┆
0x031b40…031b60             09 28 2a 20 20 73 74 61 72 74 20 61 67 61 69 6e 20 20 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20   ┆ (*  start again  *)     begin  ┆
0x031b60…031b80             20 20 20 63 75 72 5f 70 6e 6f 3a 3d 20 31 3b 0a 20 20 20 20 63 75 72 5f 70 61 72 3a 3d 20 70 61   ┆   cur_pno:= 1;     cur_par:= pa┆
0x031b80…031ba0             72 61 6d 70 74 72 20 28 20 70 61 72 61 6d 6c 69 73 74 2e 66 69 72 73 74 29 3b 0a 20 20 20 20 65   ┆ramptr ( paramlist.first);     e┆
0x031ba0…031bc0             6e 64 3b 0a 0a 20 20 67 65 74 70 61 72 61 6d 3a 3d 20 27 27 3b 0a 0a 20 20 77 68 69 6c 65 20 63   ┆nd;    getparam:= '';    while c┆
0x031bc0…031be0             75 72 5f 70 6e 6f 20 3c 20 77 61 6e 74 5f 70 6e 6f 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20   ┆ur_pno < want_pno do     begin  ┆
0x031be0…031c00             20 20 20 69 6e 63 20 28 20 63 75 72 5f 70 6e 6f 29 3b 0a 20 20 20 20 63 75 72 5f 70 61 72 3a 3d   ┆   inc ( cur_pno);     cur_par:=┆
0x031c00…031c20 (13, 0, 9)  20 63 75 72 5f 70 61 72 5e 2e 6e 65 78 74 3b 0a 20 20 20 20 69 66 20 63 75 72 5f 70 61 72 20 3d   ┆ cur_par^.next;     if cur_par =┆
0x031c20…031c40             20 6e 69 6c 20 74 68 65 6e 20 65 78 69 74 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 67 65 74 70 61   ┆ nil then exit     end;    getpa┆
0x031c40…031c60             72 61 6d 3a 3d 20 63 75 72 5f 70 61 72 5e 2e 70 61 72 61 6d 65 74 65 72 0a 20 20 65 6e 64 3b 20   ┆ram:= cur_par^.parameter   end; ┆
0x031c60…031c80             20 28 2a 20 20 67 65 74 70 61 72 61 6d 20 20 2a 29 0a 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20   ┆ (*  getparam  *)     Procedure ┆
0x031c80…031ca0             64 61 74 65 5f 61 6e 64 5f 74 69 6d 65 5f 74 6f 5f 72 63 33 35 30 32 20 28 20 73 74 61 6d 70 3a   ┆date_and_time_to_rc3502 ( stamp:┆
0x031ca0…031cc0             20 64 61 74 65 74 69 6d 65 3b 0a 20 20 20 20 76 61 72 20 64 61 74 65 3a 20 63 6f 64 65 64 5f 64   ┆ datetime;     var date: coded_d┆
0x031cc0…031ce0             61 74 65 3b 20 76 61 72 20 74 69 6d 65 3a 20 63 6f 64 65 64 5f 74 69 6d 65 29 3b 0a 20 20 63 6f   ┆ate; var time: coded_time);   co┆
0x031ce0…031d00             6e 73 74 0a 20 20 20 20 20 63 6f 6d 70 69 6c 65 5f 76 65 72 73 20 3d 20 30 3b 0a 20 20 62 65 67   ┆nst      compile_vers = 0;   beg┆
0x031d00…031d20             69 6e 0a 20 20 77 69 74 68 20 73 74 61 6d 70 20 64 6f 20 20 62 65 67 69 6e 0a 0a 20 20 20 20 64   ┆in   with stamp do  begin      d┆
0x031d20…031d40             61 74 65 3a 3d 20 28 79 65 61 72 20 2d 20 31 39 30 30 20 29 20 53 48 4c 20 39 20 2b 20 6d 6f 6e   ┆ate:= (year - 1900 ) SHL 9 + mon┆
0x031d40…031d60             74 68 20 73 68 6c 20 35 20 2b 20 64 61 79 3b 0a 20 20 20 20 74 69 6d 65 3a 3d 20 63 6f 6d 70 69   ┆th shl 5 + day;     time:= compi┆
0x031d60…031d80             6c 65 5f 76 65 72 73 20 73 68 6c 20 31 31 20 2b 20 68 6f 75 72 20 73 68 6c 20 36 20 2b 20 6d 69   ┆le_vers shl 11 + hour shl 6 + mi┆
0x031d80…031da0             6e 20 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 20 20 20 77   ┆n ;     end;   if false then   w┆
0x031da0…031dc0             69 74 68 20 73 74 61 6d 70 20 64 6f 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆ith stamp do     writeln ( outpu┆
0x031dc0…031de0             74 2c 20 27 72 63 33 35 30 32 20 73 74 61 6d 70 20 27 2c 20 79 65 61 72 3a 36 2c 20 6d 6f 6e 74   ┆t, 'rc3502 stamp ', year:6, mont┆
0x031de0…031e00             68 3a 34 2c 20 64 61 79 3a 34 2c 20 68 6f 75 72 3a 36 2c 20 6d 69 6e 3a 34 2c 20 73 65 63 3a 34   ┆h:4, day:4, hour:6, min:4, sec:4┆
0x031e00…031e20 (13, 0, 10) 29 3b 0a 0a 20 20 65 6e 64 3b 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 69 74 5f 64 61 74 61   ┆);    end;   Procedure init_data┆
0x031e20…031e40             5f 64 65 73 63 72 69 70 74 6f 72 20 28 20 76 61 72 20 64 65 73 3a 20 64 65 73 63 72 69 70 74 6f   ┆_descriptor ( var des: descripto┆
0x031e40…031e60             72 5f 70 61 72 74 31 29 3b 0a 76 61 72 0a 20 20 73 74 61 6d 70 20 3a 20 20 64 61 74 65 74 69 6d   ┆r_part1); var   stamp :  datetim┆
0x031e60…031e80             65 3b 0a 20 20 64 61 74 65 20 20 3a 20 20 63 6f 64 65 64 5f 64 61 74 65 3b 0a 20 20 74 69 6d 65   ┆e;   date  :  coded_date;   time┆
0x031e80…031ea0             20 20 3a 20 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 62 65 67 69 6e 0a 20 20 66 69 6c 6c 63 68 61   ┆  :  coded_time; begin   fillcha┆
0x031ea0…031ec0             72 20 28 20 64 65 73 2c 20 73 69 7a 65 6f 66 20 28 20 64 65 73 29 2c 20 30 29 3b 20 20 20 28 2a   ┆r ( des, sizeof ( des), 0);   (*┆
0x031ec0…031ee0             20 20 61 6c 6c 20 66 69 65 6c 64 73 20 30 20 20 2a 29 0a 20 20 77 69 74 68 20 64 65 73 20 64 6f   ┆  all fields 0  *)   with des do┆
0x031ee0…031f00             0a 20 20 62 65 67 69 6e 0a 20 20 20 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3a   ┆   begin     descriptor_length :┆
0x031f00…031f20             3d 20 73 69 7a 65 6f 66 20 28 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 29 20 3b 0a 20   ┆= sizeof ( descriptor_part1) ;  ┆
0x031f20…031f40             20 20 20 28 2a 20 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 20 20 20 3a 3d 20 30 3b 20 20 2a 29 0a 20   ┆   (*  no_of_pages   := 0;  *)  ┆
0x031f40…031f60             20 20 20 70 61 67 65 73 69 7a 65 20 20 20 20 20 20 20 20 20 20 3a 3d 20 64 61 74 61 70 61 67 65   ┆   pagesize          := datapage┆
0x031f60…031f80             73 69 7a 65 3b 0a 20 20 20 20 28 2a 20 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3a 3d   ┆size;     (*  last_page_length:=┆
0x031f80…031fa0             20 30 3b 20 20 2a 29 0a 20 20 20 20 6b 69 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 3d   ┆ 0;  *)     kind              :=┆
0x031fa0…031fc0             20 64 61 74 61 6b 69 6e 64 3b 0a 20 20 20 20 28 2a 20 20 66 6f 72 20 69 3a 3d 20 31 20 74 6f 20   ┆ datakind;     (*  for i:= 1 to ┆
0x031fc0…031fe0             31 32 20 64 6f 20 6e 61 6d 65 5b 69 5d 3a 3d 20 63 68 72 28 30 29 3b 20 20 2a 29 0a 20 20 20 20   ┆12 do name[i]:= chr(0);  *)     ┆
0x031fe0…032000             67 65 74 63 6c 6f 63 6b 20 28 20 73 74 61 6d 70 29 3b 0a 20 20 20 20 64 61 74 65 5f 61 6e 64 5f   ┆getclock ( stamp);     date_and_┆
0x032000…032020 (13, 0, 11) 74 69 6d 65 5f 74 6f 5f 72 63 33 35 30 32 20 28 20 73 74 61 6d 70 2c 20 64 61 74 61 5f 6f 62 6a   ┆time_to_rc3502 ( stamp, data_obj┆
0x032020…032040             65 63 74 5f 64 61 74 65 2c 20 64 61 74 61 5f 6f 62 6a 65 63 74 5f 74 69 6d 65 29 3b 0a 20 20 65   ┆ect_date, data_object_time);   e┆
0x032040…032060             6e 64 3b 0a 65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 74 20 28 20 6e 3a   ┆nd; end;    Function strint ( n:┆
0x032060…032080             20 69 6e 74 65 67 65 72 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a 20 20 63 6f 6e 76 65 72 74   ┆ integer): string;   (*  convert┆
0x032080…0320a0             20 6e 20 74 6f 20 61 20 73 74 72 69 6e 67 20 20 2a 29 0a 20 20 76 61 72 20 20 73 3a 20 73 74 72   ┆ n to a string  *)   var  s: str┆
0x0320a0…0320c0             69 6e 67 3b 0a 20 20 62 65 67 69 6e 0a 20 20 73 74 72 20 28 20 6e 2c 20 73 29 3b 0a 20 20 73 74   ┆ing;   begin   str ( n, s);   st┆
0x0320c0…0320e0             72 69 6e 74 3a 3d 20 73 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 73 74 72 69 6e 74 20 20 2a 29 0a   ┆rint:= s   end;  (*  strint  *) ┆
0x0320e0…032100             0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 68 65 78 20 28 20 6e 3a 20 77 6f 72 64 29 3a 20 73   ┆   Function strhex ( n: word): s┆
0x032100…032120             74 72 69 6e 67 3b 0a 20 20 28 2a 20 20 63 6f 6e 76 65 72 74 20 6e 20 74 6f 20 61 20 73 74 72 69   ┆tring;   (*  convert n to a stri┆
0x032120…032140             6e 67 20 77 69 74 68 20 32 20 6f 72 20 34 20 68 65 78 64 69 67 69 74 73 20 20 2a 29 0a 20 20 76   ┆ng with 2 or 4 hexdigits  *)   v┆
0x032140…032160             61 72 20 20 73 3a 20 73 74 72 69 6e 67 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 6e 20 3e 20   ┆ar  s: string;   begin   if n > ┆
0x032160…032180             24 46 46 20 74 68 65 6e 20 20 73 3a 3d 20 68 65 78 6e 75 6d 62 65 72 5b 20 6e 20 73 68 72 20 31   ┆$FF then  s:= hexnumber[ n shr 1┆
0x032180…0321a0             32 20 5d 20 2b 20 68 65 78 6e 75 6d 62 65 72 5b 20 28 6e 20 73 68 72 20 38 29 20 20 61 6e 64 20   ┆2 ] + hexnumber[ (n shr 8)  and ┆
0x0321a0…0321c0             31 35 20 5d 0a 20 20 65 6c 73 65 20 73 3a 3d 20 27 27 3b 0a 20 20 73 74 72 68 65 78 3a 3d 20 73   ┆15 ]   else s:= '';   strhex:= s┆
0x0321c0…0321e0             20 2b 20 68 65 78 6e 75 6d 62 65 72 5b 20 28 20 6e 20 73 68 72 20 34 29 20 20 61 6e 64 20 31 35   ┆ + hexnumber[ ( n shr 4)  and 15┆
0x0321e0…032200             20 5d 20 2b 20 68 65 78 6e 75 6d 62 65 72 5b 20 6e 20 61 6e 64 20 31 35 20 5d 3b 0a 20 20 65 6e   ┆ ] + hexnumber[ n and 15 ];   en┆
0x032200…032220 (13, 0, 12) 64 3b 20 20 28 2a 20 20 73 74 72 68 65 78 20 20 2a 29 0a 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20   ┆d;  (*  strhex  *)     Function ┆
0x032220…032240             73 74 72 77 6f 72 64 20 28 20 6e 3a 20 77 6f 72 64 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a   ┆strword ( n: word): string;   (*┆
0x032240…032260             20 20 63 6f 6e 76 65 72 74 20 6e 20 74 6f 20 61 20 73 74 72 69 6e 67 20 20 2a 29 0a 20 20 76 61   ┆  convert n to a string  *)   va┆
0x032260…032280             72 20 20 73 3a 20 73 74 72 69 6e 67 3b 0a 20 20 62 65 67 69 6e 0a 20 20 73 74 72 20 28 20 6e 2c   ┆r  s: string;   begin   str ( n,┆
0x032280…0322a0             20 73 29 3b 0a 20 20 73 74 72 77 6f 72 64 3a 3d 20 73 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 73   ┆ s);   strword:= s   end;  (*  s┆
0x0322a0…0322c0             74 72 77 6f 72 64 20 20 2a 29 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 64 61 74 65 20 28   ┆trword  *)    Function strdate (┆
0x0322c0…0322e0             20 64 61 74 65 3a 20 63 6f 64 65 64 5f 64 61 74 65 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a   ┆ date: coded_date): string;   (*┆
0x0322e0…032300             20 20 63 6f 6e 76 65 72 74 20 64 61 74 65 20 74 6f 20 61 20 73 74 72 69 6e 67 20 6c 69 6b 65 20   ┆  convert date to a string like ┆
0x032300…032320             27 31 39 38 39 2e 30 37 2e 32 30 27 20 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 70 3a 20 69   ┆'1989.07.20'  *)   var      p: i┆
0x032320…032340             6e 74 65 67 65 72 3b 0a 20 20 20 20 20 73 3a 20 73 74 72 69 6e 67 3b 0a 20 20 62 65 67 69 6e 0a   ┆nteger;      s: string;   begin ┆
0x032340…032360             0a 20 20 73 3a 3d 20 73 74 72 69 6e 74 20 28 20 31 39 30 30 20 2b 20 28 28 20 64 61 74 65 20 73   ┆   s:= strint ( 1900 + (( date s┆
0x032360…032380             68 72 20 39 29 20 61 6e 64 20 31 32 37 29 29 20 2b 20 27 2e 27 20 3b 0a 20 20 70 3a 3d 20 28 64   ┆hr 9) and 127)) + '.' ;   p:= (d┆
0x032380…0323a0             61 74 65 20 73 68 72 20 35 20 29 20 61 6e 64 20 31 35 3b 0a 20 20 69 66 20 70 20 3c 20 31 30 20   ┆ate shr 5 ) and 15;   if p < 10 ┆
0x0323a0…0323c0             74 68 65 6e 20 73 3a 3d 20 73 20 2b 20 27 30 27 3b 0a 20 20 73 3a 3d 20 73 20 2b 20 73 74 72 69   ┆then s:= s + '0';   s:= s + stri┆
0x0323c0…0323e0             6e 74 20 28 20 70 29 20 2b 20 27 2e 27 3b 0a 20 20 70 3a 3d 20 64 61 74 65 20 61 6e 64 20 33 31   ┆nt ( p) + '.';   p:= date and 31┆
0x0323e0…032400             3b 0a 20 20 69 66 20 70 20 3c 20 31 30 20 74 68 65 6e 20 73 3a 3d 20 73 20 2b 20 27 30 27 3b 0a   ┆;   if p < 10 then s:= s + '0'; ┆
0x032400…032420 (13, 0, 13) 20 20 73 3a 3d 20 73 20 2b 20 73 74 72 69 6e 74 20 28 20 70 29 3b 0a 20 20 73 74 72 64 61 74 65   ┆  s:= s + strint ( p);   strdate┆
0x032420…032440             3a 3d 20 73 0a 20 20 65 6e 64 3b 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 74 69 6d 65 20 28   ┆:= s   end;   Function strtime (┆
0x032440…032460             20 74 69 6d 65 3a 20 63 6f 64 65 64 5f 74 69 6d 65 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a   ┆ time: coded_time): string;   (*┆
0x032460…032480             20 20 63 6f 6e 76 65 72 74 20 74 69 6d 65 20 74 6f 20 61 20 73 74 72 69 6e 67 20 6c 69 6b 65 20   ┆  convert time to a string like ┆
0x032480…0324a0             27 31 32 2e 30 34 27 20 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 70 3a 20 69 6e 74 65 67 65   ┆'12.04'  *)   var      p: intege┆
0x0324a0…0324c0             72 3b 0a 20 20 20 20 20 73 3a 20 73 74 72 69 6e 67 3b 0a 20 20 62 65 67 69 6e 0a 0a 20 20 73 3a   ┆r;      s: string;   begin    s:┆
0x0324c0…0324e0             3d 20 27 27 3b 0a 20 20 70 3a 3d 20 28 74 69 6d 65 20 73 68 72 20 36 20 29 20 61 6e 64 20 33 31   ┆= '';   p:= (time shr 6 ) and 31┆
0x0324e0…032500             3b 0a 20 20 69 66 20 70 20 3c 20 31 30 20 74 68 65 6e 20 73 3a 3d 20 73 20 2b 20 27 30 27 3b 0a   ┆;   if p < 10 then s:= s + '0'; ┆
0x032500…032520             20 20 73 3a 3d 20 73 20 2b 20 73 74 72 69 6e 74 20 28 20 70 29 20 2b 20 27 2e 27 3b 0a 20 20 70   ┆  s:= s + strint ( p) + '.';   p┆
0x032520…032540             3a 3d 20 74 69 6d 65 20 61 6e 64 20 36 33 3b 0a 20 20 69 66 20 70 20 3c 20 31 30 20 74 68 65 6e   ┆:= time and 63;   if p < 10 then┆
0x032540…032560             20 73 3a 3d 20 73 20 2b 20 27 30 27 3b 0a 20 20 73 3a 3d 20 73 20 2b 20 73 74 72 69 6e 74 20 28   ┆ s:= s + '0';   s:= s + strint (┆
0x032560…032580             20 70 29 3b 0a 20 20 73 74 72 74 69 6d 65 3a 3d 20 73 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 73   ┆ p);   strtime:= s   end;  (*  s┆
0x032580…0325a0             74 72 74 69 6d 65 20 20 2a 29 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 61 6c 66 61 20 28 20   ┆trtime  *)   Function stralfa ( ┆
0x0325a0…0325c0             74 78 74 3a 20 61 6c 66 61 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 28 2a 20 20 70 75 74 20 74 78   ┆txt: alfa): string;   (*  put tx┆
0x0325c0…0325e0             74 20 69 6e 74 6f 20 61 20 73 74 72 69 6e 67 20 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 70   ┆t into a string  *)   var      p┆
0x0325e0…032600             3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 20 20 20 73 3a 20 73 74 72 69 6e 67 3b 0a 20 20 62 65 67   ┆: integer;      s: string;   beg┆
0x032600…032620 (13, 0, 14) 69 6e 0a 20 20 73 3a 3d 20 27 27 3b 0a 20 20 70 3a 3d 20 31 3b 0a 20 20 77 68 69 6c 65 20 74 78   ┆in   s:= '';   p:= 1;   while tx┆
0x032620…032640             74 5b 70 5d 20 3c 3e 20 27 23 27 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 73 3a 3d   ┆t[p] <> '#' do     begin     s:=┆
0x032640…032660             20 73 20 2b 20 74 78 74 5b 70 5d 3b 0a 20 20 20 20 69 66 20 70 20 3d 20 61 6c 66 61 6c 65 6e 67   ┆ s + txt[p];     if p = alfaleng┆
0x032660…032680             74 68 20 74 68 65 6e 20 74 78 74 5b 70 5d 3a 3d 20 27 23 27 0a 20 20 20 20 65 6c 73 65 20 69 6e   ┆th then txt[p]:= '#'     else in┆
0x032680…0326a0             63 20 28 20 70 29 0a 20 20 20 20 65 6e 64 3b 0a 20 20 73 74 72 61 6c 66 61 3a 3d 20 73 0a 20 20   ┆c ( p)     end;   stralfa:= s   ┆
0x0326a0…0326c0             65 6e 64 3b 20 20 28 2a 20 20 73 74 72 61 6c 66 61 20 20 2a 29 0a 0a 0a 50 72 6f 63 65 64 75 72   ┆end;  (*  stralfa  *)   Procedur┆
0x0326c0…0326e0             65 20 77 72 69 74 65 5f 68 65 78 20 28 20 64 65 63 5f 6e 75 6d 62 65 72 3a 20 77 6f 72 64 3b 20   ┆e write_hex ( dec_number: word; ┆
0x0326e0…032700             70 6f 73 69 74 69 6f 6e 73 20 3a 20 77 6f 72 64 29 3b 0a 62 65 67 69 6e 0a 69 66 20 70 6f 73 69   ┆positions : word); begin if posi┆
0x032700…032720             74 69 6f 6e 73 20 3d 20 34 20 74 68 65 6e 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 68   ┆tions = 4 then write ( output, h┆
0x032720…032740             65 78 6e 75 6d 62 65 72 20 5b 20 64 65 63 5f 6e 75 6d 62 65 72 20 73 68 72 20 31 32 20 5d 29 3b   ┆exnumber [ dec_number shr 12 ]);┆
0x032740…032760             0a 69 66 20 70 6f 73 69 74 69 6f 6e 73 20 3e 3d 20 33 20 74 68 65 6e 20 77 72 69 74 65 20 28 20   ┆ if positions >= 3 then write ( ┆
0x032760…032780             6f 75 74 70 75 74 2c 20 68 65 78 6e 75 6d 62 65 72 20 5b 20 28 64 65 63 5f 6e 75 6d 62 65 72 20   ┆output, hexnumber [ (dec_number ┆
0x032780…0327a0             73 68 72 20 38 29 20 20 61 6e 64 20 31 35 20 5d 29 3b 0a 77 72 69 74 65 20 28 20 6f 75 74 70 75   ┆shr 8)  and 15 ]); write ( outpu┆
0x0327a0…0327c0             74 2c 20 68 65 78 6e 75 6d 62 65 72 20 5b 20 28 64 65 63 5f 6e 75 6d 62 65 72 20 73 68 72 20 34   ┆t, hexnumber [ (dec_number shr 4┆
0x0327c0…0327e0             29 20 20 61 6e 64 20 31 35 20 5d 2c 0a 20 20 20 20 20 20 68 65 78 6e 75 6d 62 65 72 20 5b 20 64   ┆)  and 15 ],       hexnumber [ d┆
0x0327e0…032800             65 63 5f 6e 75 6d 62 65 72 20 61 6e 64 20 31 35 20 5d 20 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 46 75   ┆ec_number and 15 ] ); end;    Fu┆
0x032800…032820 (13, 0, 15) 6e 63 74 69 6f 6e 20 6c 6f 6f 6b 75 70 20 28 20 70 61 74 68 3a 20 70 61 74 68 73 74 72 29 3a 20   ┆nction lookup ( path: pathstr): ┆
0x032820…032840             20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 28 2a 20 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 20   ┆ boolean;   (*  returns true if ┆
0x032840…032860             66 69 6c 65 20 66 6f 75 6e 64 20 20 2a 29 0a 20 20 76 61 72 20 20 20 66 3a 20 66 69 6c 65 3b 0a   ┆file found  *)   var   f: file; ┆
0x032860…032880             0a 20 20 62 65 67 69 6e 0a 20 20 61 73 73 69 67 6e 20 28 20 66 2c 20 70 61 74 68 29 3b 0a 20 20   ┆   begin   assign ( f, path);   ┆
0x032880…0328a0             72 65 73 65 74 20 28 20 66 29 3b 0a 20 20 69 6f 73 74 61 74 3a 3d 20 69 6f 72 65 73 75 6c 74 3b   ┆reset ( f);   iostat:= ioresult;┆
0x0328a0…0328c0             0a 20 20 6c 6f 6f 6b 75 70 3a 3d 20 69 6f 73 74 61 74 20 3d 20 30 3b 0a 20 20 69 66 20 69 6f 73   ┆   lookup:= iostat = 0;   if ios┆
0x0328c0…0328e0             74 61 74 20 3d 20 30 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 66 29 0a 20 20 65 6e 64 3b 0a 0a   ┆tat = 0 then close ( f)   end;  ┆
0x0328e0…032900             0a 0a 50 72 6f 63 65 64 75 72 65 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 76 61 72 20 66 3a 20 66   ┆  Procedure open_file ( var f: f┆
0x032900…032920             69 6c 65 3b 20 70 61 74 68 3a 20 70 61 74 68 73 74 72 3b 20 6d 6f 64 65 3a 20 61 63 63 65 73 73   ┆ile; path: pathstr; mode: access┆
0x032920…032940             6d 6f 64 65 29 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 61 73 73 69 67 6e 20 28 20 66 2c 20 70   ┆mode);    begin    assign ( f, p┆
0x032940…032960             61 74 68 29 3b 0a 20 20 20 69 66 20 6d 6f 64 65 20 3d 20 66 6d 5f 77 72 69 74 65 20 74 68 65 6e   ┆ath);    if mode = fm_write then┆
0x032960…032980             20 72 65 77 72 69 74 65 20 28 20 66 2c 20 31 29 20 65 6c 73 65 20 72 65 73 65 74 20 28 20 66 2c   ┆ rewrite ( f, 1) else reset ( f,┆
0x032980…0329a0             20 31 29 3b 0a 20 20 20 69 6f 63 68 65 63 6b 20 28 20 66 29 3b 0a 20 20 20 69 66 20 66 61 6c 73   ┆ 1);    iocheck ( f);    if fals┆
0x0329a0…0329c0             65 20 74 68 65 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 27 2d 2d 20 20 6f 70 65 6e 20   ┆e then      writeln ( '--  open ┆
0x0329c0…0329e0             66 69 6c 65 3a 20 27 2c 20 70 61 74 68 29 3b 0a 20 20 20 66 69 6c 65 5f 74 61 62 6c 65 20 5b 20   ┆file: ', path);    file_table [ ┆
0x0329e0…032a00             66 69 6e 64 5f 66 69 6c 65 20 28 20 6e 69 6c 29 20 5d 3a 3d 20 61 64 64 72 20 28 20 66 29 0a 20   ┆find_file ( nil) ]:= addr ( f)  ┆
0x032a00…032a20 (13, 1, 1)  20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28   ┆  end;    Procedure close_file (┆
0x032a20…032a40             20 76 61 72 20 66 3a 20 66 69 6c 65 29 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 63 6c 6f 73 65   ┆ var f: file);    begin    close┆
0x032a40…032a60             20 28 20 66 29 3b 0a 20 20 20 69 6f 63 68 65 63 6b 20 28 20 66 29 3b 0a 20 20 20 66 69 6c 65 5f   ┆ ( f);    iocheck ( f);    file_┆
0x032a60…032a80             74 61 62 6c 65 20 5b 20 66 69 6e 64 5f 66 69 6c 65 20 28 20 61 64 64 72 20 28 20 66 29 29 20 5d   ┆table [ find_file ( addr ( f)) ]┆
0x032a80…032aa0             3a 3d 20 6e 69 6c 0a 20 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 66 69 6c 65   ┆:= nil    end;    Procedure file┆
0x032aa0…032ac0             5f 73 74 61 6d 70 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20 76 61 72 20 73 74 61 6d 70 3a   ┆_stamp ( var f: file; var stamp:┆
0x032ac0…032ae0             20 64 61 74 65 74 69 6d 65 29 3b 0a 20 20 76 61 72 20 74 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20   ┆ datetime);   var t: longint;   ┆
0x032ae0…032b00             62 65 67 69 6e 0a 20 20 67 65 74 66 74 69 6d 65 20 28 20 66 2c 20 74 29 3b 0a 20 20 75 6e 70 61   ┆begin   getftime ( f, t);   unpa┆
0x032b00…032b20             63 6b 74 69 6d 65 20 28 20 74 2c 20 73 74 61 6d 70 29 3b 0a 20 20 69 66 20 66 61 6c 73 65 20 74   ┆cktime ( t, stamp);   if false t┆
0x032b20…032b40             68 65 6e 20 20 77 69 74 68 20 73 74 61 6d 70 20 64 6f 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28   ┆hen  with stamp do     writeln (┆
0x032b40…032b60             20 6f 75 74 70 75 74 2c 20 27 66 69 6c 65 20 20 20 73 74 61 6d 70 20 27 2c 20 79 65 61 72 3a 36   ┆ output, 'file   stamp ', year:6┆
0x032b60…032b80             2c 20 6d 6f 6e 74 68 3a 34 2c 20 64 61 79 3a 34 2c 20 68 6f 75 72 3a 36 2c 20 6d 69 6e 3a 34 2c   ┆, month:4, day:4, hour:6, min:4,┆
0x032b80…032ba0             20 73 65 63 3a 34 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 72 65 61   ┆ sec:4);   end;    Procedure rea┆
0x032ba0…032bc0             64 69 6e 74 65 67 65 72 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65 3b 20 76 61 72 20 64 20 29 3b   ┆dinteger ( var f: file; var d );┆
0x032bc0…032be0             0a 20 20 76 61 72 20 20 77 72 64 2c 20 62 79 74 65 73 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69   ┆   var  wrd, bytes: word;   begi┆
0x032be0…032c00             6e 0a 20 20 62 6c 6f 63 6b 72 65 61 64 20 28 20 66 2c 20 77 72 64 2c 20 77 6f 72 64 73 69 7a 65   ┆n   blockread ( f, wrd, wordsize┆
0x032c00…032c20 (13, 1, 2)  2c 20 62 79 74 65 73 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 66 29 3b 0a 20 20 69 66 20 62   ┆, bytes);   iocheck ( f);   if b┆
0x032c20…032c40             79 74 65 73 20 3c 20 77 6f 72 64 73 69 7a 65 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20   ┆ytes < wordsize then     begin  ┆
0x032c40…032c60             20 20 20 72 75 6e 65 72 72 6f 72 20 28 20 31 30 30 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 77   ┆   runerror ( 100);     end;   w┆
0x032c60…032c80             72 64 3a 3d 20 73 77 61 70 20 28 20 77 72 64 29 3b 0a 20 20 6d 6f 76 65 20 28 20 77 72 64 2c 20   ┆rd:= swap ( wrd);   move ( wrd, ┆
0x032c80…032ca0             64 2c 20 77 6f 72 64 73 69 7a 65 29 3b 09 28 2a 20 20 75 6e 74 79 70 65 64 20 64 20 20 2a 29 0a   ┆d, wordsize); (*  untyped d  *) ┆
0x032ca0…032cc0             0a 20 20 69 66 20 66 61 6c 73 65 7b 64 65 62 75 67 33 7d 20 74 68 65 6e 20 77 72 69 74 65 6c 6e   ┆   if false{debug3} then writeln┆
0x032cc0…032ce0             20 28 20 6f 75 74 70 75 74 2c 20 27 20 72 65 74 75 72 6e 20 66 72 6f 6d 20 72 65 61 64 69 6e 74   ┆ ( output, ' return from readint┆
0x032ce0…032d00             3a 20 27 2c 20 77 72 64 2c 20 62 79 74 65 73 3a 34 29 3b 0a 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 0a   ┆: ', wrd, bytes:4);    end;     ┆
0x032d00…032d20             20 50 72 6f 63 65 64 75 72 65 20 72 65 61 64 61 6c 66 61 20 28 20 76 61 72 20 66 20 3a 20 66 69   ┆ Procedure readalfa ( var f : fi┆
0x032d20…032d40             6c 65 3b 20 76 61 72 20 6e 61 6d 65 3a 20 61 6c 66 61 29 3b 0a 20 20 20 28 2a 20 20 72 65 61 64   ┆le; var name: alfa);    (*  read┆
0x032d40…032d60             20 20 61 6c 66 61 6c 65 6e 67 74 68 20 62 79 74 65 73 20 69 6e 74 6f 20 61 6e 20 61 72 72 61 79   ┆  alfalength bytes into an array┆
0x032d60…032d80             20 6f 66 20 63 68 61 72 73 20 20 2a 29 0a 20 20 20 76 61 72 0a 20 20 20 20 20 62 79 74 65 73 20   ┆ of chars  *)    var      bytes ┆
0x032d80…032da0             3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 62 6c 6f 63 6b 72 65 61 64 20 28 20 66 2c   ┆: word;   begin   blockread ( f,┆
0x032da0…032dc0             20 6e 61 6d 65 2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 62 79 74 65 73 29 3b 0a 20 20 69 6f 63   ┆ name, alfalength, bytes);   ioc┆
0x032dc0…032de0             68 65 63 6b 20 28 20 66 29 3b 0a 20 20 69 66 20 62 79 74 65 73 20 3c 20 61 6c 66 61 6c 65 6e 67   ┆heck ( f);   if bytes < alfaleng┆
0x032de0…032e00             74 68 20 74 68 65 6e 20 72 75 6e 65 72 72 6f 72 20 28 20 31 30 30 29 3b 0a 20 20 65 6e 64 3b 0a   ┆th then runerror ( 100);   end; ┆
0x032e00…032e20 (13, 1, 3)  0a 0c 0a 0a 50 72 6f 63 65 64 75 72 65 20 72 65 61 64 68 65 61 64 20 28 20 76 61 72 20 66 20 3a   ┆    Procedure readhead ( var f :┆
0x032e20…032e40             20 66 69 6c 65 3b 20 76 61 72 20 68 65 61 64 20 3a 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61 72   ┆ file; var head : descriptor_par┆
0x032e40…032e60             74 31 29 3b 0a 28 2a 20 20 72 65 61 64 20 64 65 73 63 72 69 70 74 6f 72 20 70 61 72 74 31 20 20   ┆t1); (*  read descriptor part1  ┆
0x032e60…032e80             2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 70 2c 20 62 79 74 65 73 20 3a 20 77 6f 72 64 3b 0a 20   ┆*)   var      p, bytes : word;  ┆
0x032e80…032ea0             20 62 65 67 69 6e 0a 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20   ┆ begin   if debug3 then writeln ┆
0x032ea0…032ec0             28 20 6f 75 74 70 75 74 2c 20 27 20 69 6e 68 65 61 64 20 63 61 6c 6c 65 64 20 61 74 20 66 69 6c   ┆( output, ' inhead called at fil┆
0x032ec0…032ee0             65 70 6f 73 20 27 2c 20 66 69 6c 65 70 6f 73 20 28 20 66 20 29 29 3b 0a 0a 20 20 77 69 74 68 20   ┆epos ', filepos ( f ));    with ┆
0x032ee0…032f00             68 65 61 64 20 64 6f 0a 20 20 20 20 69 66 20 65 6f 66 20 28 66 29 20 74 68 65 6e 0a 20 20 20 20   ┆head do     if eof (f) then     ┆
0x032f00…032f20             20 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3a 3d 20 73 74 6f 70 5f 6d 61 72 6b   ┆  descriptor_length := stop_mark┆
0x032f20…032f40             0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20 20 20 72 65 61   ┆     else       begin        rea┆
0x032f40…032f60             64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 29   ┆dinteger ( f, descriptor_length)┆
0x032f60…032f80             3b 0a 0a 20 20 20 20 20 20 28 2a 20 20 2d 2d 20 62 61 63 6b 73 70 61 63 65 20 74 77 6f 20 62 79   ┆;        (*  -- backspace two by┆
0x032f80…032fa0             74 65 73 20 69 66 20 73 74 6f 70 5f 6d 61 72 6b 20 20 2a 29 0a 20 20 20 20 20 20 69 66 20 28 20   ┆tes if stop_mark  *)       if ( ┆
0x032fa0…032fc0             64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3d 20 30 20 29 20 6f 72 20 28 20 64 65 73   ┆descriptor_length = 0 ) or ( des┆
0x032fc0…032fe0             63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3e 20 6d 61 78 69 6e 74 20 29 20 74 68 65 6e 0a 20   ┆criptor_length > maxint ) then  ┆
0x032fe0…033000             20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20   ┆       begin  descriptor_length ┆
0x033000…033020 (13, 1, 4)  3a 3d 20 73 74 6f 70 5f 6d 61 72 6b 3b 0a 09 28 2a 20 20 73 65 65 6b 20 20 2d 32 20 20 20 2a 29   ┆:= stop_mark;  (*  seek  -2   *)┆
0x033020…033040             0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 69 66 20 64 65 73 63 72 69 70 74   ┆         end;        if descript┆
0x033040…033060             6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72 6b 20 74 68 65 6e 0a 09 62 65 67   ┆or_length <> stop_mark then  beg┆
0x033060…033080             69 6e 0a 7b 2d 2d 09 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 6e 6f 5f 6f 66 5f 70 61   ┆in {-- readinteger ( f, no_of_pa┆
0x033080…0330a0             67 65 73 29 3b 0a 09 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 70 61 67 65 73 69 7a 65   ┆ges);  readinteger ( f, pagesize┆
0x0330a0…0330c0             29 3b 0a 09 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 6c 61 73 74 5f 70 61 67 65 5f 6c   ┆);  readinteger ( f, last_page_l┆
0x0330c0…0330e0             65 6e 67 74 68 29 3b 0a 09 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 6b 69 6e 64 29 3b   ┆ength);  readinteger ( f, kind);┆
0x0330e0…033100             0a 2d 2d 7d 0a 09 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 34 20 64 6f 20 20 72 65 61 64 69 6e 74   ┆ --}  for p:= 1 to 4 do  readint┆
0x033100…033120             65 67 65 72 20 28 20 66 2c 20 69 61 72 72 5b 70 5d 29 3b 0a 0a 09 69 66 20 6b 69 6e 64 20 3c 3e   ┆eger ( f, iarr[p]);   if kind <>┆
0x033120…033140             20 73 75 6d 6b 69 6e 64 20 74 68 65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 72 65 61 64 61 6c   ┆ sumkind then    begin    readal┆
0x033140…033160             66 61 20 28 20 66 2c 20 6e 61 6d 65 29 3b 0a 7b 2d 2d 09 20 20 72 65 61 64 69 6e 74 65 67 65 72   ┆fa ( f, name); {--   readinteger┆
0x033160…033180             20 28 20 66 2c 20 65 6e 74 72 79 5f 62 61 73 65 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65   ┆ ( f, entry_base);    readintege┆
0x033180…0331a0             72 20 28 20 66 2c 20 65 6e 74 72 79 5f 64 69 73 70 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67   ┆r ( f, entry_disp);    readinteg┆
0x0331a0…0331c0             65 72 20 28 20 66 2c 20 65 78 63 65 70 74 69 6f 6e 5f 62 61 73 65 29 3b 0a 09 20 20 72 65 61 64   ┆er ( f, exception_base);    read┆
0x0331c0…0331e0             69 6e 74 65 67 65 72 20 28 20 66 2c 20 65 78 63 65 70 74 69 6f 6e 5f 64 69 73 70 29 3b 0a 09 20   ┆integer ( f, exception_disp);   ┆
0x0331e0…033200             20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 64 65 66 61 75 6c 74 5f 61 70 70 65 74 69   ┆ readinteger ( f, default_appeti┆
0x033200…033220 (13, 1, 5)  74 65 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 6c 61 73 74 5f 70 61   ┆te);    readinteger ( f, last_pa┆
0x033220…033240             72 61 6d 5f 6f 66 66 73 65 74 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c   ┆ram_offset);    readinteger ( f,┆
0x033240…033260             20 73 6f 75 72 63 65 5f 64 61 74 65 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20   ┆ source_date);    readinteger ( ┆
0x033260…033280             66 2c 20 73 6f 75 72 63 65 5f 74 69 6d 65 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20   ┆f, source_time);    readinteger ┆
0x033280…0332a0             28 20 66 2c 20 76 65 72 73 69 6f 6e 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20   ┆( f, version);    readinteger ( ┆
0x0332a0…0332c0             66 2c 20 65 78 74 72 61 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 66 2c 20 6e   ┆f, extra);    readinteger ( f, n┆
0x0332c0…0332e0             6f 5f 6f 66 5f 70 61 72 61 6d 73 29 0a 20 2d 2d 7d 0a 09 20 20 66 6f 72 20 70 3a 3d 20 31 31 20   ┆o_of_params)  --}    for p:= 11 ┆
0x0332e0…033300             74 6f 20 6c 61 73 74 5f 6f 66 5f 64 65 73 63 72 69 70 74 6f 72 20 64 6f 20 20 72 65 61 64 69 6e   ┆to last_of_descriptor do  readin┆
0x033300…033320             74 65 67 65 72 20 28 20 66 2c 20 69 61 72 72 5b 70 5d 29 0a 09 20 20 65 6e 64 3b 0a 0a 09 69 66   ┆teger ( f, iarr[p])    end;   if┆
0x033320…033340             20 64 65 62 75 67 32 20 74 68 65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 77 72 69 74 65 20 28   ┆ debug2 then    begin    write (┆
0x033340…033360             20 6f 75 74 70 75 74 2c 20 27 20 6c 65 6e 20 70 61 67 65 73 20 65 74 63 3a 20 27 2c 20 64 65 73   ┆ output, ' len pages etc: ', des┆
0x033360…033380             63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 2c 20 27 2c 20 27 29 3b 0a 09 20 20 77 72 69 74 65 6c   ┆criptor_length, ', ');    writel┆
0x033380…0333a0             6e 20 28 20 20 6f 75 74 70 75 74 2c 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 2c 20 27 2c 20 27 2c 20   ┆n (  output, no_of_pages, ', ', ┆
0x0333a0…0333c0             70 61 67 65 73 69 7a 65 2c 20 27 2c 20 27 2c 0a 09 20 20 20 20 6c 61 73 74 5f 70 61 67 65 5f 6c   ┆pagesize, ', ',      last_page_l┆
0x0333c0…0333e0             65 6e 67 74 68 2c 20 27 2c 20 27 2c 20 6b 69 6e 64 2c 20 27 2c 20 27 2c 20 73 74 72 61 6c 66 61   ┆ength, ', ', kind, ', ', stralfa┆
0x0333e0…033400             20 28 20 6e 61 6d 65 29 29 3b 0a 09 20 20 65 6e 64 3b 0a 0a 09 69 66 20 28 20 64 65 73 63 72 69   ┆ ( name));    end;   if ( descri┆
0x033400…033420 (13, 1, 6)  70 74 6f 72 5f 6c 65 6e 67 74 68 20 3e 20 33 32 30 30 30 20 29 20 74 68 65 6e 0a 09 20 20 62 65   ┆ptor_length > 32000 ) then    be┆
0x033420…033440             67 69 6e 0a 09 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 20 64 65 73   ┆gin    writeln ( output, '!  des┆
0x033440…033460             63 72 69 70 74 6f 72 20 6c 65 6e 67 74 68 20 3a 20 27 2c 20 64 65 73 63 72 69 70 74 6f 72 5f 6c   ┆criptor length : ', descriptor_l┆
0x033460…033480             65 6e 67 74 68 2c 0a 09 20 20 20 27 20 20 20 27 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65   ┆ength,     '   ', stralfa ( name┆
0x033480…0334a0             29 29 3b 0a 09 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 70 72 65 73 73 20 61 6e   ┆));    write ( output, 'press an┆
0x0334a0…0334c0             79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 27 29 3b 0a 09 20 20 6b 65 79 3a 3d 20 72 65 61 64 6b   ┆y to continue ');    key:= readk┆
0x0334c0…0334e0             65 79 3b 0a 09 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 0a 09 20 20 65 6e 64 3b   ┆ey;    writeln ( output)    end;┆
0x0334e0…033500             0a 0a 20 20 20 20 20 20 20 65 6e 64 3b 20 20 20 28 2a 20 20 6e 6f 74 20 73 74 6f 70 20 6d 61 72   ┆         end;   (*  not stop mar┆
0x033500…033520             6b 20 20 2a 29 0a 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 6e 6f 74 20 20 65 6f 66 20 20 2a 29   ┆k  *)      end  (*  not  eof  *)┆
0x033520…033540             0a 20 20 20 65 6e 64 3b 20 28 2a 20 72 65 61 64 68 65 61 64 20 2a 29 0a 0a 0c 0a 0a 50 72 6f 63   ┆    end; (* readhead *)     Proc┆
0x033540…033560             65 64 75 72 65 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 76 61 72 20 66 3a 20 66 69 6c 65   ┆edure writeinteger ( var f: file┆
0x033560…033580             3b 20 76 61 72 20 77 20 29 3b 0a 20 20 76 61 72 20 20 77 72 64 2c 20 62 79 74 65 73 3a 20 77 6f   ┆; var w );   var  wrd, bytes: wo┆
0x033580…0335a0             72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6d 6f 76 65 20 28 20 77 2c 20 77 72 64 2c 20 77 6f 72   ┆rd;   begin   move ( w, wrd, wor┆
0x0335a0…0335c0             64 73 69 7a 65 29 3b 09 28 2a 20 20 75 6e 74 79 70 65 64 20 77 20 20 2a 29 0a 20 20 77 72 64 3a   ┆dsize); (*  untyped w  *)   wrd:┆
0x0335c0…0335e0             3d 20 73 77 61 70 20 28 20 77 72 64 29 3b 0a 20 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 66 2c   ┆= swap ( wrd);   blockwrite ( f,┆
0x0335e0…033600             20 77 72 64 2c 20 77 6f 72 64 73 69 7a 65 2c 20 62 79 74 65 73 29 3b 0a 20 20 69 6f 63 68 65 63   ┆ wrd, wordsize, bytes);   iochec┆
0x033600…033620 (13, 1, 7)  6b 20 28 20 66 29 3b 0a 20 20 69 66 20 62 79 74 65 73 20 3c 20 77 6f 72 64 73 69 7a 65 20 74 68   ┆k ( f);   if bytes < wordsize th┆
0x033620…033640             65 6e 20 72 75 6e 65 72 72 6f 72 20 28 20 31 30 31 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 20 50   ┆en runerror ( 101);   end;     P┆
0x033640…033660             72 6f 63 65 64 75 72 65 20 77 72 69 74 65 61 6c 66 61 20 28 20 76 61 72 20 66 20 3a 20 66 69 6c   ┆rocedure writealfa ( var f : fil┆
0x033660…033680             65 3b 20 76 61 72 20 6e 61 6d 65 3a 20 61 6c 66 61 29 3b 0a 20 20 20 28 2a 20 20 77 72 69 74 65   ┆e; var name: alfa);    (*  write┆
0x033680…0336a0             20 20 61 6c 66 61 6c 65 6e 67 74 68 20 62 79 74 65 73 20 69 6e 74 6f 20 61 6e 20 61 72 72 61 79   ┆  alfalength bytes into an array┆
0x0336a0…0336c0             20 6f 66 20 63 68 61 72 73 20 20 2a 29 0a 20 20 20 76 61 72 0a 20 20 20 20 20 62 79 74 65 73 20   ┆ of chars  *)    var      bytes ┆
0x0336c0…0336e0             3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 66   ┆: word;   begin   blockwrite ( f┆
0x0336e0…033700             2c 20 6e 61 6d 65 2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 62 79 74 65 73 29 3b 0a 20 20 69 6f   ┆, name, alfalength, bytes);   io┆
0x033700…033720             63 68 65 63 6b 20 28 20 66 29 3b 0a 20 20 69 66 20 62 79 74 65 73 20 3c 20 61 6c 66 61 6c 65 6e   ┆check ( f);   if bytes < alfalen┆
0x033720…033740             67 74 68 20 74 68 65 6e 20 72 75 6e 65 72 72 6f 72 20 28 20 31 30 31 29 3b 0a 20 20 65 6e 64 3b   ┆gth then runerror ( 101);   end;┆
0x033740…033760             0a 0a 20 20 0c 0a 0a 50 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 68 65 61 64 20 28 20 76 61 72   ┆       Procedure writehead ( var┆
0x033760…033780             20 66 20 3a 20 66 69 6c 65 3b 20 76 61 72 20 68 65 61 64 20 3a 20 64 65 73 63 72 69 70 74 6f 72   ┆ f : file; var head : descriptor┆
0x033780…0337a0             5f 70 61 72 74 31 29 3b 0a 28 2a 20 20 77 72 69 74 65 20 20 64 65 73 63 72 69 70 74 6f 72 20 70   ┆_part1); (*  write  descriptor p┆
0x0337a0…0337c0             61 72 74 31 20 20 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 70 20 3a 20 77 6f 72 64 3b 0a 20 20   ┆art1  *)   var      p : word;   ┆
0x0337c0…0337e0             62 65 67 69 6e 0a 0a 20 20 77 69 74 68 20 68 65 61 64 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69   ┆begin    with head do       begi┆
0x0337e0…033800             6e 0a 0a 09 66 6f 72 20 70 3a 3d 20 30 20 74 6f 20 34 20 64 6f 20 20 77 72 69 74 65 69 6e 74 65   ┆n   for p:= 0 to 4 do  writeinte┆
0x033800…033820 (13, 1, 8)  67 65 72 20 28 20 66 2c 20 69 61 72 72 5b 70 5d 29 3b 0a 0a 09 69 66 20 6b 69 6e 64 20 3c 3e 20   ┆ger ( f, iarr[p]);   if kind <> ┆
0x033820…033840             73 75 6d 6b 69 6e 64 20 74 68 65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 77 72 69 74 65 61 6c   ┆sumkind then    begin    writeal┆
0x033840…033860             66 61 20 28 20 66 2c 20 6e 61 6d 65 29 3b 0a 09 20 20 66 6f 72 20 70 3a 3d 20 31 31 20 74 6f 20   ┆fa ( f, name);    for p:= 11 to ┆
0x033860…033880             6c 61 73 74 5f 6f 66 5f 64 65 73 63 72 69 70 74 6f 72 20 64 6f 20 20 77 72 69 74 65 69 6e 74 65   ┆last_of_descriptor do  writeinte┆
0x033880…0338a0             67 65 72 20 28 20 66 2c 20 69 61 72 72 5b 70 5d 29 0a 09 20 20 65 6e 64 3b 0a 0a 09 69 66 20 64   ┆ger ( f, iarr[p])    end;   if d┆
0x0338a0…0338c0             65 62 75 67 32 20 74 68 65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 77 72 69 74 65 20 28 20 6f   ┆ebug2 then    begin    write ( o┆
0x0338c0…0338e0             75 74 70 75 74 2c 20 27 20 6c 65 6e 20 70 61 67 65 73 20 65 74 63 3a 20 27 2c 20 64 65 73 63 72   ┆utput, ' len pages etc: ', descr┆
0x0338e0…033900             69 70 74 6f 72 5f 6c 65 6e 67 74 68 2c 20 27 2c 20 27 29 3b 0a 09 20 20 77 72 69 74 65 6c 6e 20   ┆iptor_length, ', ');    writeln ┆
0x033900…033920             28 20 20 6f 75 74 70 75 74 2c 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 2c 20 27 2c 20 27 2c 20 70 61   ┆(  output, no_of_pages, ', ', pa┆
0x033920…033940             67 65 73 69 7a 65 2c 20 27 2c 20 27 2c 0a 09 20 20 20 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e   ┆gesize, ', ',      last_page_len┆
0x033940…033960             67 74 68 2c 20 27 2c 20 27 2c 20 6b 69 6e 64 2c 20 27 2c 20 27 2c 20 73 74 72 61 6c 66 61 20 28   ┆gth, ', ', kind, ', ', stralfa (┆
0x033960…033980             20 6e 61 6d 65 29 29 3b 0a 09 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20   ┆ name));    end;       end  (*  ┆
0x033980…0339a0             77 69 74 68 20 68 65 61 64 20 20 2a 29 0a 20 20 20 65 6e 64 3b 20 28 2a 20 77 72 69 74 65 68 65   ┆with head  *)    end; (* writehe┆
0x0339a0…0339c0             61 64 20 2a 29 0a 0a 0c 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 72 75 6e 74 69 6d 65 5f 65 72 72   ┆ad *)      Procedure runtime_err┆
0x0339c0…0339e0             6f 72 20 28 20 73 20 3a 20 73 74 72 69 6e 67 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 66 6e 6f 2c   ┆or ( s : string);   var     fno,┆
0x0339e0…033a00             20 70 2c 20 73 65 67 5f 65 72 72 6f 72 61 64 64 72 2c 20 6f 66 73 5f 65 72 72 6f 72 61 64 64 72   ┆ p, seg_erroraddr, ofs_erroraddr┆
0x033a00…033a20 (13, 1, 9)  3a 20 77 6f 72 64 3b 0a 20 20 20 20 70 74 20 3a 20 70 6f 69 6e 74 65 72 20 61 62 73 6f 6c 75 74   ┆: word;     pt : pointer absolut┆
0x033a20…033a40             65 20 6f 66 73 5f 65 72 72 6f 72 61 64 64 72 3b 0a 62 65 67 69 6e 0a 28 2a 24 49 2b 20 20 2a 29   ┆e ofs_erroraddr; begin (*$I+  *)┆
0x033a40…033a60             0a 0a 69 66 20 65 72 72 6f 72 61 64 64 72 20 3c 3e 20 6e 69 6c 20 74 68 65 6e 0a 20 20 62 65 67   ┆  if erroraddr <> nil then   beg┆
0x033a60…033a80             69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 73 29 3b 0a 20 20 77 72 69   ┆in   writeln ( output, s);   wri┆
0x033a80…033aa0             74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 52 75 6e 74 69 6d 65 20 65 72 72 6f 72 20   ┆te ( output, '*** Runtime error ┆
0x033aa0…033ac0             28 20 27 2c 20 65 78 69 74 63 6f 64 65 2c 20 27 29 3a 20 27 29 3b 0a 20 20 63 61 73 65 20 65 78   ┆( ', exitcode, '): ');   case ex┆
0x033ac0…033ae0             69 74 63 6f 64 65 20 6f 66 0a 20 20 20 20 20 20 32 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75   ┆itcode of       2: write ( outpu┆
0x033ae0…033b00             74 2c 20 27 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 20 20 20 20 20 20 33 3a 20 77   ┆t, 'File not found');       3: w┆
0x033b00…033b20             72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 50 61 74 68 20 6e 6f 74 20 66 6f 75 6e 64 27 29   ┆rite ( output, 'Path not found')┆
0x033b20…033b40             3b 0a 20 20 20 20 20 20 34 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 54 6f 6f 20   ┆;       4: write ( output, 'Too ┆
0x033b40…033b60             6d 61 6e 79 20 6f 70 65 6e 20 66 69 6c 65 73 27 29 3b 0a 20 20 20 20 20 20 35 3a 20 77 72 69 74   ┆many open files');       5: writ┆
0x033b60…033b80             65 20 28 20 6f 75 74 70 75 74 2c 20 27 46 69 6c 65 20 61 63 63 65 73 73 20 64 65 6e 69 65 64 27   ┆e ( output, 'File access denied'┆
0x033b80…033ba0             29 3b 0a 20 20 20 20 20 20 36 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 76   ┆);       6: write ( output, 'Inv┆
0x033ba0…033bc0             61 6c 69 64 20 66 69 6c 65 20 68 61 6e 64 6c 65 27 29 3b 0a 20 20 20 20 20 31 32 3a 20 77 72 69   ┆alid file handle');      12: wri┆
0x033bc0…033be0             74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c 69 64 20 66 69 6c 65 20 61 63 63 65 73   ┆te ( output, 'Invalid file acces┆
0x033be0…033c00             73 20 63 6f 64 65 27 29 3b 0a 20 20 20 20 31 30 30 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75   ┆s code');     100: write ( outpu┆
0x033c00…033c20 (13, 1, 10) 74 2c 20 27 52 65 61 64 20 70 61 73 74 20 65 6e 64 20 6f 66 20 66 69 6c 65 27 29 3b 0a 20 20 20   ┆t, 'Read past end of file');    ┆
0x033c20…033c40             20 31 30 31 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 44 69 73 6b 20 66 75 6c 6c   ┆ 101: write ( output, 'Disk full┆
0x033c40…033c60             27 29 3b 0a 20 20 20 20 31 30 32 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 46 69   ┆');     102: write ( output, 'Fi┆
0x033c60…033c80             6c 65 20 6e 6f 74 20 61 73 73 69 67 6e 65 64 27 29 3b 0a 20 20 20 20 31 30 33 3a 20 77 72 69 74   ┆le not assigned');     103: writ┆
0x033c80…033ca0             65 20 28 20 6f 75 74 70 75 74 2c 20 27 46 69 6c 65 20 6e 6f 74 20 6f 70 65 6e 27 29 3b 0a 20 20   ┆e ( output, 'File not open');   ┆
0x033ca0…033cc0             20 20 31 30 34 2c 0a 20 20 20 20 31 30 35 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20   ┆  104,     105: write ( output, ┆
0x033cc0…033ce0             27 46 69 6c 65 20 6f 70 65 6e 65 64 20 69 6e 20 62 61 64 20 6d 6f 64 65 27 29 3b 0a 20 20 20 20   ┆'File opened in bad mode');     ┆
0x033ce0…033d00             31 30 36 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c 69 64 20 6e 75   ┆106: write ( output, 'Invalid nu┆
0x033d00…033d20             6d 65 72 69 63 20 66 6f 72 6d 61 74 27 29 3b 0a 20 20 20 20 32 30 30 3a 20 77 72 69 74 65 20 28   ┆meric format');     200: write (┆
0x033d20…033d40             20 6f 75 74 70 75 74 2c 20 27 44 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 27 29 3b 0a 20 20   ┆ output, 'Division by zero');   ┆
0x033d40…033d60             20 20 32 30 31 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 4f 75 74 20 6f 66 20 72   ┆  201: write ( output, 'Out of r┆
0x033d60…033d80             61 6e 67 65 27 29 3b 0a 20 20 20 20 32 30 32 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c   ┆ange');     202: write ( output,┆
0x033d80…033da0             20 27 53 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 27 29 3b 0a 20 20 20 20 32 30 33 3a 20 77 72 69   ┆ 'Stack overflow');     203: wri┆
0x033da0…033dc0             74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 48 65 61 70 20 6f 76 65 72 66 6c 6f 77 27 29 3b 0a 20   ┆te ( output, 'Heap overflow');  ┆
0x033dc0…033de0             20 20 20 32 30 34 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c 69 64   ┆   204: write ( output, 'Invalid┆
0x033de0…033e00             20 70 6f 69 6e 74 65 72 20 6f 70 65 72 61 74 69 6f 6e 27 29 3b 0a 20 20 20 20 32 30 35 2c 0a 20   ┆ pointer operation');     205,  ┆
0x033e00…033e20 (13, 1, 11) 20 20 20 32 30 36 2c 0a 20 20 20 20 32 30 37 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c   ┆   206,     207: write ( output,┆
0x033e20…033e40             20 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 65 72 72 6f 72 27 29 3b 0a 20 20 20 20 32 35   ┆ 'Floating point error');     25┆
0x033e40…033e60             30 3a 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 42 72 65 61 6b 20 62 79 20 6f 70 65   ┆0: write ( output, 'Break by ope┆
0x033e60…033e80             72 61 74 6f 72 2e 27 29 3b 0a 20 20 20 20 65 6c 73 65 20 77 72 69 74 65 20 28 20 6f 75 74 70 75   ┆rator.');     else write ( outpu┆
0x033e80…033ea0             74 2c 20 27 45 72 72 6f 72 20 63 6f 64 65 20 27 2c 20 65 78 69 74 63 6f 64 65 29 3b 0a 20 20 65   ┆t, 'Error code ', exitcode);   e┆
0x033ea0…033ec0             6e 64 3b 0a 20 20 70 74 3a 3d 20 65 72 72 6f 72 61 64 64 72 3b 0a 20 20 77 72 69 74 65 20 28 20   ┆nd;   pt:= erroraddr;   write ( ┆
0x033ec0…033ee0             6f 75 74 70 75 74 2c 20 27 2c 20 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 27 29 3b 0a 20 20 77 72   ┆output, ',  called from ');   wr┆
0x033ee0…033f00             69 74 65 5f 68 65 78 20 28 20 73 65 67 5f 65 72 72 6f 72 61 64 64 72 2c 20 34 29 3b 0a 20 20 77   ┆ite_hex ( seg_erroraddr, 4);   w┆
0x033f00…033f20             72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 3a 27 29 3b 0a 20 20 77 72 69 74 65 5f 68 65 78   ┆rite ( output, ':');   write_hex┆
0x033f20…033f40             20 28 20 6f 66 73 5f 65 72 72 6f 72 61 64 64 72 2c 20 34 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20   ┆ ( ofs_erroraddr, 4);   writeln ┆
0x033f40…033f60             28 20 6f 75 74 70 75 74 29 3b 0a 0a 20 20 20 20 66 6f 72 20 66 6e 6f 3a 3d 20 31 20 74 6f 20 6d   ┆( output);      for fno:= 1 to m┆
0x033f60…033f80             61 78 66 69 6c 65 73 20 64 6f 09 09 28 2a 20 20 63 6c 6f 73 65 20 66 69 6c 65 73 20 20 2a 29 0a   ┆axfiles do  (*  close files  *) ┆
0x033f80…033fa0             20 20 20 20 20 20 69 66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 66 6e 6f 5d 20 3c 3e 20 6e 69 6c 20   ┆      if file_table[fno] <> nil ┆
0x033fa0…033fc0             74 68 65 6e 0a 20 20 20 20 20 20 69 66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 66 6e 6f 5d 5e 2e 66   ┆then       if file_table[fno]^.f┆
0x033fc0…033fe0             69 6c 65 64 65 73 2e 6d 6f 64 65 20 3c 3e 20 66 6d 63 6c 6f 73 65 64 20 74 68 65 6e 0a 20 20 20   ┆iledes.mode <> fmclosed then    ┆
0x033fe0…034000             20 20 20 20 77 69 74 68 20 66 69 6c 65 5f 74 61 62 6c 65 5b 66 6e 6f 5d 5e 20 64 6f 0a 20 20 20   ┆    with file_table[fno]^ do    ┆
0x034000…034020 (13, 1, 12) 20 20 20 20 20 62 65 67 69 6e 0a 28 2a 24 49 2b 20 20 2a 29 0a 09 63 6c 6f 73 65 20 28 20 66 29   ┆     begin (*$I+  *)  close ( f)┆
0x034020…034040             3b 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 46 69 6c   ┆;         write ( output, '  Fil┆
0x034040…034060             65 20 63 6c 6f 73 65 64 3a 20 27 20 29 3b 0a 20 20 20 20 70 3a 3d 30 3b 0a 20 20 20 20 57 48 49   ┆e closed: ' );     p:=0;     WHI┆
0x034060…034080             4c 45 20 66 69 6c 65 64 65 73 2e 6e 61 6d 65 5b 70 5d 3c 3e 20 23 30 30 20 44 4f 0a 20 20 20 20   ┆LE filedes.name[p]<> #00 DO     ┆
0x034080…0340a0             42 45 47 49 4e 0a 20 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 66 69 6c 65   ┆BEGIN       write ( output, file┆
0x0340a0…0340c0             64 65 73 2e 6e 61 6d 65 5b 70 5d 29 3b 20 69 6e 63 20 28 20 70 29 3b 0a 20 20 20 20 45 4e 44 3b   ┆des.name[p]); inc ( p);     END;┆
0x0340c0…0340e0             0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 20 20 20 20   ┆     writeln ( output);         ┆
0x0340e0…034100             65 6e 64 3b 0a 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 50 72   ┆end;      writeln ( output, ' Pr┆
0x034100…034120             6f 67 72 61 6d 20 74 65 72 6d 69 6e 61 74 65 64 2e 27 29 3b 0a 20 20 20 20 65 72 72 6f 72 61 64   ┆ogram terminated.');     errorad┆
0x034120…034140             64 72 3a 3d 20 6e 69 6c 0a 20 20 20 65 6e 64 3b 0a 0a 20 20 28 2a 2d 2d 2d 20 20 68 61 6c 74 20   ┆dr:= nil    end;    (*---  halt ┆
0x034140…034160             28 20 32 35 34 29 3b 20 20 2d 2d 2d 2a 29 0a 0a 65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e   ┆( 254);  ---*)  end;    Function┆
0x034160…034180             20 63 74 72 6c 5f 62 72 65 61 6b 20 3a 20 63 68 61 72 3b 0a 28 2a 20 20 20 68 61 6c 74 73 20 74   ┆ ctrl_break : char; (*   halts t┆
0x034180…0341a0             68 65 20 70 6f 67 72 61 6d 20 69 66 20 20 63 74 72 6c 2d 43 20 69 73 20 70 72 65 73 73 65 64 2c   ┆he pogram if  ctrl-C is pressed,┆
0x0341a0…0341c0             20 6f 74 68 65 72 20 6b 65 79 73 20 61 72 65 20 72 65 74 75 72 6e 65 64 20 20 2a 29 0a 20 20 76   ┆ other keys are returned  *)   v┆
0x0341c0…0341e0             61 72 20 20 6b 65 79 20 3a 20 20 63 68 61 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 6b 65   ┆ar  key :  char;   begin   if ke┆
0x0341e0…034200             79 70 72 65 73 73 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6b 65 79 3a   ┆ypressed then     begin     key:┆
0x034200…034220 (13, 1, 13) 3d 20 72 65 61 64 6b 65 79 3b 0a 20 20 20 20 69 66 20 6b 65 79 20 3d 20 23 30 30 20 74 68 65 6e   ┆= readkey;     if key = #00 then┆
0x034220…034240             20 6b 65 79 3a 3d 20 72 65 61 64 6b 65 79 3b 0a 20 20 20 20 69 66 20 6b 65 79 20 3d 20 23 30 33   ┆ key:= readkey;     if key = #03┆
0x034240…034260             20 74 68 65 6e 20 68 61 6c 74 20 28 20 32 35 30 29 0a 20 20 20 20 65 6e 64 0a 20 20 65 6c 73 65   ┆ then halt ( 250)     end   else┆
0x034260…034280             20 20 6b 65 79 3a 3d 20 23 30 30 3b 0a 20 20 63 74 72 6c 5f 62 72 65 61 6b 3a 3d 20 6b 65 79 0a   ┆  key:= #00;   ctrl_break:= key ┆
0x034280…0342a0             20 20 65 6e 64 3b 20 20 20 28 2a 20 20 63 74 72 6c 20 62 72 65 61 6b 20 20 2a 29 0a 0a 0a 0a 28   ┆  end;   (*  ctrl break  *)    (┆
0x0342a0…0342c0             2a 24 46 2b 2a 29 20 50 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29   ┆*$F+*) Procedure myexit; (*$F-*)┆
0x0342c0…0342e0             0a 62 65 67 69 6e 0a 0a 20 20 20 20 28 2a 24 49 2d 20 20 2a 29 0a 20 20 20 20 69 66 20 70 61 72   ┆ begin      (*$I-  *)     if par┆
0x0342e0…034300             61 6d 66 69 6c 65 5f 6f 70 65 6e 65 64 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20   ┆amfile_opened then       begin  ┆
0x034300…034320             20 20 20 20 20 63 6c 6f 73 65 20 28 20 70 61 72 61 6d 66 69 6c 65 29 3b 20 20 28 2a 24 49 2b 20   ┆     close ( paramfile);  (*$I+ ┆
0x034320…034340             20 2a 29 0a 20 20 20 20 20 20 69 66 20 69 6f 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 68 65 6e 20   ┆ *)       if ioresult <> 0 then ┆
0x034340…034360             3b 0a 20 20 20 20 20 20 70 61 72 61 6d 66 69 6c 65 5f 6f 70 65 6e 65 64 3a 3d 20 66 61 6c 73 65   ┆;       paramfile_opened:= false┆
0x034360…034380             0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 69 66 20 65 72 72 6f 72 61 64 64 72 20 3c 3e   ┆       end;      if erroraddr <>┆
0x034380…0343a0             20 6e 69 6c 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 72 75 6e 74   ┆ nil then       begin       runt┆
0x0343a0…0343c0             69 6d 65 5f 65 72 72 6f 72 20 20 28 20 27 21 20 20 65 72 72 6f 72 20 20 69 6e 20 70 6c 69 62 75   ┆ime_error  ( '!  error  in plibu┆
0x0343c0…0343e0             6e 69 74 2e 20 27 29 3b 0a 20 20 20 20 20 20 65 72 72 6f 72 61 64 64 72 3a 3d 20 6e 69 6c 0a 20   ┆nit. ');       erroraddr:= nil  ┆
0x0343e0…034400             20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 65 78 69 74 73 61 76 65 20 3c 3e 20 61 64 64 72   ┆     end;    if exitsave <> addr┆
0x034400…034420 (13, 1, 14) 20 28 20 6d 79 65 78 69 74 29 20 74 68 65 6e 20 65 78 69 74 70 72 6f 63 20 3a 3d 20 65 78 69 74   ┆ ( myexit) then exitproc := exit┆
0x034420…034440             73 61 76 65 3b 0a 65 6e 64 3b 0a 0a 0c 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆save; end;     {----------------┆
0x034440…034460             2d 2d 2d 2d 2d 20 6c 61 74 65 72 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆----- later --------------------┆
0x034460…034480             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 70 72 6f 63 65 64 75 72 65   ┆---------------------  procedure┆
0x034480…0344a0             20 61 73 73 69 67 6e 5f 61 6c 66 61 20 28 20 76 61 72 20 64 3a 20 61 6c 66 61 3b 20 73 3a 20 73   ┆ assign_alfa ( var d: alfa; s: s┆
0x0344a0…0344c0             74 72 69 6e 67 29 3b 0a 62 65 67 69 6e 0a 20 20 64 20 3a 3d 20 73 0a 65 6e 64 3b 0a 0a 0a 70 72   ┆tring); begin   d := s end;   pr┆
0x0344c0…0344e0             6f 63 65 64 75 72 65 20 72 74 70 68 61 6c 74 20 28 20 74 72 61 63 65 20 3a 20 62 6f 6f 6c 65 61   ┆ocedure rtphalt ( trace : boolea┆
0x0344e0…034500             6e 29 3b 0a 62 65 67 69 6e 0a 20 20 68 61 6c 74 20 28 20 33 30 30 29 3b 0a 65 6e 64 3b 0a 0a 0a   ┆n); begin   halt ( 300); end;   ┆
0x034500…034520             70 72 6f 63 65 64 75 72 65 20 66 69 6c 65 74 69 6d 65 20 28 20 76 61 72 20 66 3a 20 74 65 78 74   ┆procedure filetime ( var f: text┆
0x034520…034540             3b 20 76 61 72 20 64 3a 20 64 61 74 65 74 69 6d 65 29 3b 0a 76 61 72 20 74 3a 20 6c 6f 6e 67 69   ┆; var d: datetime); var t: longi┆
0x034540…034560             6e 74 3b 0a 62 65 67 69 6e 0a 20 20 67 65 74 66 74 69 6d 65 20 28 20 66 2c 74 29 3b 0a 20 20 75   ┆nt; begin   getftime ( f,t);   u┆
0x034560…034580             6e 70 61 63 6b 74 69 6d 65 20 28 20 74 2c 20 64 29 3b 0a 65 6e 64 3b 0a 0a 0a 70 72 6f 63 65 64   ┆npacktime ( t, d); end;   proced┆
0x034580…0345a0             75 72 65 20 6e 6f 66 69 6c 65 20 28 20 73 3a 73 74 72 69 6e 67 29 3b 0a 62 65 67 69 6e 0a 20 20   ┆ure nofile ( s:string); begin   ┆
0x0345a0…0345c0             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 66 69 6c 65 20 3a 20 27 2c 20 73 29   ┆writeln ( output, ' file : ', s)┆
0x0345c0…0345e0             3b 0a 20 20 68 61 6c 74 20 28 20 32 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20   ┆;   halt ( 2); end;    Function ┆
0x0345e0…034600             70 61 72 61 6d 73 65 61 72 63 68 20 28 20 70 3a 20 70 61 72 61 6d 70 74 72 3b 20 76 61 72 20 6e   ┆paramsearch ( p: paramptr; var n┆
0x034600…034620 (13, 1, 15) 6f 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72 20 74 78 74 3a 20 61 6c 66 61 29 3a 20 69 6e 74 65   ┆o: integer; var txt: alfa): inte┆
0x034620…034640             67 65 72 3b 0a 76 61 72 20 62 2c 20 62 31 2c 20 65 3a 20 62 79 74 65 3b 0a 20 20 20 20 72 65 73   ┆ger; var b, b1, e: byte;     res┆
0x034640…034660             75 6c 74 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 20 20 73 6f 75 72 63 65 70 61 74 68 3a 20 62 6f   ┆ult: integer;     sourcepath: bo┆
0x034660…034680             6f 6c 65 61 6e 3b 0a 62 65 67 69 6e 0a 20 20 73 6f 75 72 63 65 70 61 74 68 20 3a 3d 20 66 61 6c   ┆olean; begin   sourcepath := fal┆
0x034680…0346a0             73 65 3b 0a 20 20 70 61 72 61 6d 72 65 63 20 20 20 3a 3d 20 70 5e 2e 70 61 72 61 6d 65 74 65 72   ┆se;   paramrec   := p^.parameter┆
0x0346a0…0346c0             3b 0a 20 20 62 20 20 20 20 20 20 20 20 20 20 3a 3d 20 31 3b 0a 20 20 77 68 69 6c 65 20 20 28 20   ┆;   b          := 1;   while  ( ┆
0x0346c0…0346e0             62 20 3e 20 30 29 20 61 6e 64 20 20 28 20 6e 6f 20 3e 20 30 29 20 64 6f 0a 20 20 62 65 67 69 6e   ┆b > 0) and  ( no > 0) do   begin┆
0x0346e0…034700             0a 20 20 20 20 62 20 20 20 20 20 20 3a 3d 20 70 6f 73 20 28 20 27 20 27 2c 20 70 61 72 61 6d 72   ┆     b      := pos ( ' ', paramr┆
0x034700…034720             65 63 29 3b 0a 20 20 20 20 62 31 20 20 20 20 20 3a 3d 20 70 6f 73 20 28 20 27 2d 27 2c 20 70 61   ┆ec);     b1     := pos ( '-', pa┆
0x034720…034740             72 61 6d 72 65 63 29 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 34 3b 0a 20 20 20 20 69 66   ┆ramrec);     result := 4;     if┆
0x034740…034760             20 62 31 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66   ┆ b1 <> 0 then     begin       if┆
0x034760…034780             20 62 20 3d 20 30 20 74 68 65 6e 20 62 20 3a 3d 20 62 31 3b 0a 20 20 20 20 20 20 69 66 20 62 31   ┆ b = 0 then b := b1;       if b1┆
0x034780…0347a0             20 3c 3d 20 62 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 62   ┆ <= b then       begin         b┆
0x0347a0…0347c0             20 20 20 20 20 20 3a 3d 20 62 31 3b 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 38   ┆      := b1;         result := 8┆
0x0347c0…0347e0             3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 62 20 3c   ┆;       end;     end;     if b <┆
0x0347e0…034800             3e 20 30 20 74 68 65 6e 20 70 61 72 61 6d 72 65 63 5b 62 5d 20 3a 3d 20 63 68 72 20 28 20 32 36   ┆> 0 then paramrec[b] := chr ( 26┆
0x034800…034820 (14, 0, 1)  29 3b 0a 20 20 20 20 65 20 20 3a 3d 20 70 6f 73 20 28 20 27 20 27 2c 20 70 61 72 61 6d 72 65 63   ┆);     e  := pos ( ' ', paramrec┆
0x034820…034840             29 3b 0a 20 20 20 20 62 31 20 3a 3d 20 70 6f 73 20 28 20 27 2d 27 2c 20 70 61 72 61 6d 72 65 63   ┆);     b1 := pos ( '-', paramrec┆
0x034840…034860             29 3b 0a 20 20 20 20 69 66 20 65 20 3d 20 30 20 74 68 65 6e 20 65 20 3a 3d 20 62 31 3b 0a 20 20   ┆);     if e = 0 then e := b1;   ┆
0x034860…034880             20 20 69 66 20 62 31 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆  if b1 <> 0 then     begin     ┆
0x034880…0348a0             20 20 69 66 20 62 31 20 3c 20 65 20 74 68 65 6e 20 65 20 3a 3d 20 62 31 3b 0a 20 20 20 20 65 6e   ┆  if b1 < e then e := b1;     en┆
0x0348a0…0348c0             64 3b 0a 20 20 20 20 69 66 20 65 20 3d 20 30 20 74 68 65 6e 20 65 20 3a 3d 20 6c 65 6e 67 74 68   ┆d;     if e = 0 then e := length┆
0x0348c0…0348e0             20 28 20 70 61 72 61 6d 72 65 63 29 20 65 6c 73 65 20 65 20 3a 3d 20 65 2d 31 3b 0a 20 20 20 20   ┆ ( paramrec) else e := e-1;     ┆
0x0348e0…034900             69 66 20 62 20 3d 20 30 20 74 68 65 6e 20 65 20 3a 3d 20 62 3b 0a 20 20 20 20 69 66 20 65 20 3e   ┆if b = 0 then e := b;     if e >┆
0x034900…034920             20 62 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 61 73 73 69 67 6e 5f 61   ┆ b then     begin       assign_a┆
0x034920…034940             6c 66 61 20 28 20 74 78 74 2c 20 63 6f 70 79 20 28 20 70 61 72 61 6d 72 65 63 2c 20 62 2b 31 2c   ┆lfa ( txt, copy ( paramrec, b+1,┆
0x034940…034960             20 65 2d 62 29 29 3b 0a 20 20 20 20 20 20 6e 6f 20 3a 3d 20 6e 6f 20 2d 20 31 3b 0a 20 20 20 20   ┆ e-b));       no := no - 1;     ┆
0x034960…034980             20 20 69 66 20 73 6f 75 72 63 65 70 61 74 68 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e   ┆  if sourcepath then       begin┆
0x034980…0349a0             0a 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 70 61 74 68 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20   ┆         sourcepath := false;   ┆
0x0349a0…0349c0             20 20 20 20 20 20 69 66 20 72 65 73 75 6c 74 20 3d 20 38 20 74 68 65 6e 0a 20 20 20 20 20 20 20   ┆      if result = 8 then        ┆
0x0349c0…0349e0             20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 5f 70 61 74 68 20 3a 3d 20   ┆ begin           source_path := ┆
0x0349e0…034a00             63 6f 70 79 20 28 20 70 61 72 61 6d 72 65 63 2c 20 62 2b 31 2c 20 65 2d 62 29 3b 0a 20 20 20 20   ┆copy ( paramrec, b+1, e-b);     ┆
0x034a00…034a20 (14, 0, 2)  20 20 20 20 20 20 73 65 74 5f 70 61 74 68 5f 65 6e 64 20 28 20 73 6f 75 72 63 65 5f 70 61 74 68   ┆      set_path_end ( source_path┆
0x034a20…034a40             29 3b 0a 20 20 20 20 20 20 20 20 20 20 6e 6f 20 20 20 20 20 20 20 20 20 20 3a 3d 20 6e 6f 20 2b   ┆);           no          := no +┆
0x034a40…034a60             20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a   ┆ 1;         end;       end else ┆
0x034a60…034a80             20 20 20 20 20 20 69 66 20 20 28 20 72 65 73 75 6c 74 20 3d 20 34 29 20 61 6e 64 20 20 28 20 74   ┆      if  ( result = 4) and  ( t┆
0x034a80…034aa0             78 74 20 3d 20 27 73 6f 75 72 63 65 70 61 74 68 27 29 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65   ┆xt = 'sourcepath') then       be┆
0x034aa0…034ac0             67 69 6e 0a 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 70 61 74 68 20 20 3a 3d 20 74 72 75 65 3b   ┆gin         sourcepath  := true;┆
0x034ac0…034ae0             0a 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 5f 70 61 74 68 20 3a 3d 20 27 27 3b 0a 20 20 20 20   ┆         source_path := '';     ┆
0x034ae0…034b00             20 20 20 20 6e 6f 20 20 20 20 20 20 20 20 20 20 3a 3d 20 6e 6f 20 2b 20 31 3b 0a 20 20 20 20 20   ┆    no          := no + 1;      ┆
0x034b00…034b20             20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 20 20 70 61 72 61 6d 73 65 61   ┆ end;     end;   end;   paramsea┆
0x034b20…034b40             72 63 68 20 3a 3d 20 72 65 73 75 6c 74 20 73 68 6c 20 38 3b 0a 65 6e 64 3b 0a 0a 0a 46 75 6e 63   ┆rch := result shl 8; end;   Func┆
0x034b40…034b60             74 69 6f 6e 20 20 70 61 72 61 6d 72 65 61 64 20 28 20 70 5f 6e 6f 3a 20 69 6e 74 65 67 65 72 3b   ┆tion  paramread ( p_no: integer;┆
0x034b60…034b80             20 76 61 72 20 72 69 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72 20 74 78 74 3a 20 61 6c 66 61 29   ┆ var ri: integer; var txt: alfa)┆
0x034b80…034ba0             3a 20 69 6e 74 65 67 65 72 3b 0a 76 61 72 20 72 65 73 75 6c 74 3a 20 69 6e 74 65 67 65 72 3b 0a   ┆: integer; var result: integer; ┆
0x034ba0…034bc0             20 20 20 20 70 20 3a 20 70 61 72 61 6d 70 74 72 3b 0a 62 65 67 69 6e 0a 0a 20 20 72 69 20 20 20   ┆    p : paramptr; begin    ri   ┆
0x034bc0…034be0             20 3a 3d 20 30 3b 0a 0a 20 20 69 66 20 6c 65 6e 67 74 68 20 28 20 6c 65 66 74 73 69 64 65 29 20   ┆ := 0;    if length ( leftside) ┆
0x034be0…034c00             3e 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 70 5f 6e 6f 20 3c 3d 20   ┆> 0 then   begin     if p_no <= ┆
0x034c00…034c20 (14, 0, 3)  30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 61 73 73 69 67 6e 5f 61 6c   ┆0 then     begin       assign_al┆
0x034c20…034c40             66 61 20 28 20 74 78 74 2c 20 6c 65 66 74 73 69 64 65 29 3b 0a 20 20 20 20 20 20 70 61 72 61 6d   ┆fa ( txt, leftside);       param┆
0x034c40…034c60             72 65 61 64 20 3a 3d 20 34 3b 0a 20 20 20 20 20 20 65 78 69 74 3b 0a 20 20 20 20 65 6e 64 3b 0a   ┆read := 4;       exit;     end; ┆
0x034c60…034c80             20 20 20 20 70 5f 6e 6f 20 3a 3d 20 70 5f 6e 6f 20 2d 20 31 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20   ┆    p_no := p_no - 1;   end;    ┆
0x034c80…034ca0             69 66 20 70 5f 6e 6f 20 3c 3d 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66   ┆if p_no <= 0 then   begin     if┆
0x034ca0…034cc0             20 6c 65 6e 67 74 68 20 28 20 70 72 6f 67 72 61 6d 6e 61 6d 65 29 20 3e 20 30 20 74 68 65 6e 0a   ┆ length ( programname) > 0 then ┆
0x034cc0…034ce0             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 20 28 20 74 78   ┆    begin       assign_alfa ( tx┆
0x034ce0…034d00             74 2c 20 70 72 6f 67 72 61 6d 6e 61 6d 65 29 3b 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20   ┆t, programname);     end else   ┆
0x034d00…034d20             20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 20 28 20 74 78 74 2c   ┆  begin       assign_alfa ( txt,┆
0x034d20…034d40             27 70 6c 69 62 33 35 30 32 27 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 6c 65 6e   ┆'plib3502');     end;     if len┆
0x034d40…034d60             67 74 68 20 28 20 6c 65 66 74 73 69 64 65 29 20 3e 20 30 20 74 68 65 6e 20 70 61 72 61 6d 72 65   ┆gth ( leftside) > 0 then paramre┆
0x034d60…034d80             61 64 20 3a 3d 20 36 2a 32 35 36 2b 34 20 65 6c 73 65 20 70 61 72 61 6d 72 65 61 64 20 3a 3d 20   ┆ad := 6*256+4 else paramread := ┆
0x034d80…034da0             34 3b 0a 20 20 20 20 65 78 69 74 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 70 20 3a 3d 20 70 61 72 61   ┆4;     exit;   end;    p := para┆
0x034da0…034dc0             6d 68 65 61 64 3b 0a 20 20 77 68 69 6c 65 20 20 28 20 70 20 3c 3e 20 6e 69 6c 29 20 61 6e 64 20   ┆mhead;   while  ( p <> nil) and ┆
0x034dc0…034de0             20 28 20 70 5f 6e 6f 20 3e 20 30 29 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 72 65 73 75   ┆ ( p_no > 0) do   begin     resu┆
0x034de0…034e00             6c 74 20 3a 3d 20 70 61 72 61 6d 73 65 61 72 63 68 20 28 20 70 2c 20 70 5f 6e 6f 2c 20 74 78 74   ┆lt := paramsearch ( p, p_no, txt┆
0x034e00…034e20 (14, 0, 4)  29 3b 0a 20 20 20 20 70 20 3a 3d 20 70 5e 2e 6e 65 78 74 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 69   ┆);     p := p^.next;   end;    i┆
0x034e20…034e40             66 20 70 5f 6e 6f 20 3e 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 61 73 73 69   ┆f p_no > 0 then   begin     assi┆
0x034e40…034e60             67 6e 5f 61 6c 66 61 20 28 20 74 78 74 2c 27 27 29 3b 0a 20 20 20 20 70 61 72 61 6d 72 65 61 64   ┆gn_alfa ( txt,'');     paramread┆
0x034e60…034e80             20 3a 3d 20 30 3b 0a 20 20 20 20 65 78 69 74 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 76 61 6c 20 28   ┆ := 0;     exit;   end;    val (┆
0x034e80…034ea0             20 74 78 74 2c 20 72 69 2c 20 70 5f 6e 6f 29 3b 0a 20 20 69 66 20 70 5f 6e 6f 20 3c 3e 20 30 20   ┆ txt, ri, p_no);   if p_no <> 0 ┆
0x034ea0…034ec0             74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 72 65 73 75   ┆then   begin      result := resu┆
0x034ec0…034ee0             6c 74 20 2b 20 31 30 3b 0a 20 20 65 6e 64 20 65 6c 73 65 20 72 65 73 75 6c 74 20 3a 3d 20 72 65   ┆lt + 10;   end else result := re┆
0x034ee0…034f00             73 75 6c 74 20 2b 20 34 3b 0a 0a 20 20 70 61 72 61 6d 72 65 61 64 20 3a 3d 20 72 65 73 75 6c 74   ┆sult + 4;    paramread := result┆
0x034f00…034f20             3b 0a 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 64 61 74 65 20 28 20 76 61 72 20 64 61   ┆;  end;  procedure date ( var da┆
0x034f20…034f40             74 3a 61 6c 66 61 29 3b 0a 76 61 72 20 74 3a 20 64 61 74 65 74 69 6d 65 3b 0a 20 20 20 20 61 2c   ┆t:alfa); var t: datetime;     a,┆
0x034f40…034f60             62 3a 20 73 74 72 69 6e 67 3b 0a 62 65 67 69 6e 0a 20 20 67 65 74 63 6c 6f 63 6b 20 28 20 74 29   ┆b: string; begin   getclock ( t)┆
0x034f60…034f80             3b 0a 20 20 73 74 72 20 28 20 74 2e 79 65 61 72 3a 34 2c 20 61 29 3b 0a 20 20 62 20 3a 3d 20 63   ┆;   str ( t.year:4, a);   b := c┆
0x034f80…034fa0             6f 6e 63 61 74 20 28 20 27 20 27 2c 61 2c 27 2e 27 29 3b 0a 20 20 73 74 72 20 28 20 74 2e 6d 6f   ┆oncat ( ' ',a,'.');   str ( t.mo┆
0x034fa0…034fc0             6e 74 68 3a 32 2c 61 29 3b 0a 20 20 77 68 69 6c 65 20 70 6f 73 20 28 20 27 20 27 2c 61 29 20 3e   ┆nth:2,a);   while pos ( ' ',a) >┆
0x034fc0…034fe0             20 30 20 64 6f 20 61 5b 70 6f 73 20 28 20 27 20 27 2c 61 29 5d 20 3a 3d 20 27 30 27 3b 0a 20 20   ┆ 0 do a[pos ( ' ',a)] := '0';   ┆
0x034fe0…035000             61 20 3a 3d 20 63 6f 6e 63 61 74 20 28 20 62 2c 20 61 2c 20 27 2e 27 29 3b 0a 20 20 73 74 72 20   ┆a := concat ( b, a, '.');   str ┆
0x035000…035020 (14, 0, 5)  28 20 74 2e 64 61 79 3a 32 2c 62 29 3b 0a 20 20 77 68 69 6c 65 20 70 6f 73 20 28 20 27 20 27 2c   ┆( t.day:2,b);   while pos ( ' ',┆
0x035020…035040             62 29 20 3e 20 30 20 64 6f 20 62 5b 70 6f 73 20 28 20 27 20 27 2c 62 29 5d 20 3a 3d 20 27 30 27   ┆b) > 0 do b[pos ( ' ',b)] := '0'┆
0x035040…035060             3b 0a 20 20 64 61 74 20 3a 3d 20 63 6f 6e 63 61 74 20 28 20 61 2c 62 2c 27 20 27 29 3b 0a 65 6e   ┆;   dat := concat ( a,b,' '); en┆
0x035060…035080             64 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 74 69 6d 65 20 28 20 76 61 72 20 74 69 6d 3a 20 61   ┆d;   procedure time ( var tim: a┆
0x035080…0350a0             6c 66 61 29 3b 0a 76 61 72 20 74 3a 20 64 61 74 65 74 69 6d 65 3b 0a 20 20 20 20 61 2c 62 3a 20   ┆lfa); var t: datetime;     a,b: ┆
0x0350a0…0350c0             73 74 72 69 6e 67 3b 0a 62 65 67 69 6e 0a 20 20 67 65 74 63 6c 6f 63 6b 20 28 20 74 29 3b 0a 20   ┆string; begin   getclock ( t);  ┆
0x0350c0…0350e0             20 73 74 72 20 28 20 74 2e 68 6f 75 72 3a 32 2c 20 61 29 3b 0a 20 20 77 68 69 6c 65 20 70 6f 73   ┆ str ( t.hour:2, a);   while pos┆
0x0350e0…035100             20 28 20 27 20 27 2c 61 29 20 3e 20 30 20 64 6f 20 61 5b 70 6f 73 20 28 20 27 20 27 2c 61 29 5d   ┆ ( ' ',a) > 0 do a[pos ( ' ',a)]┆
0x035100…035120             20 3a 3d 20 27 30 27 3b 0a 20 20 62 20 3a 3d 20 63 6f 6e 63 61 74 20 28 20 27 20 27 2c 61 2c 27   ┆ := '0';   b := concat ( ' ',a,'┆
0x035120…035140             3a 27 29 3b 0a 20 20 73 74 72 20 28 20 74 2e 6d 69 6e 3a 32 2c 61 29 3b 0a 20 20 77 68 69 6c 65   ┆:');   str ( t.min:2,a);   while┆
0x035140…035160             20 70 6f 73 20 28 20 27 20 27 2c 61 29 20 3e 20 30 20 64 6f 20 61 5b 70 6f 73 20 28 20 27 20 27   ┆ pos ( ' ',a) > 0 do a[pos ( ' '┆
0x035160…035180             2c 61 29 5d 20 3a 3d 20 27 30 27 3b 0a 20 20 61 20 3a 3d 20 63 6f 6e 63 61 74 20 28 20 62 2c 20   ┆,a)] := '0';   a := concat ( b, ┆
0x035180…0351a0             61 2c 20 27 3a 27 29 3b 0a 20 20 73 74 72 20 28 20 74 2e 73 65 63 3a 32 2c 62 29 3b 0a 20 20 77   ┆a, ':');   str ( t.sec:2,b);   w┆
0x0351a0…0351c0             68 69 6c 65 20 70 6f 73 20 28 20 27 20 27 2c 62 29 20 3e 20 30 20 64 6f 20 62 5b 70 6f 73 20 28   ┆hile pos ( ' ',b) > 0 do b[pos (┆
0x0351c0…0351e0             20 27 20 27 2c 62 29 5d 20 3a 3d 20 27 30 27 3b 0a 20 20 74 69 6d 20 3a 3d 20 63 6f 6e 63 61 74   ┆ ' ',b)] := '0';   tim := concat┆
0x0351e0…035200             20 28 20 61 2c 62 2c 27 20 20 20 27 29 3b 0a 65 6e 64 3b 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ ( a,b,'   '); end;  -----------┆
0x035200…035220 (14, 0, 6)  2d 2d 2d 2d 2d 2d 2d 2d 20 6c 61 74 65 72 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆-------- later -----------------┆
0x035220…035240             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 28 2a 2d 2d 2d 2d   ┆-----------------------}  (*----┆
0x035240…035260             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x035280…0352a0             2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 0a 20 62 65 67 69 6e 09 09 28 2a 20 20 69 6e 69 74 69 61 6c 69   ┆------*)     begin  (*  initiali┆
0x0352a0…0352c0             7a 65 20 20 2a 29 0a 0a 20 20 65 78 69 74 73 61 76 65 20 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a   ┆ze  *)    exitsave := exitproc; ┆
0x0352c0…0352e0             20 20 65 78 69 74 70 72 6f 63 20 3a 3d 20 40 6d 79 65 78 69 74 3b 0a 20 20 66 69 6c 65 6d 6f 64   ┆  exitproc := @myexit;   filemod┆
0x0352e0…035300             65 20 3a 3d 20 30 3b 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 72 65 61 64 20 6f 6e 6c 79 20 69   ┆e := 0;          (*  read only i┆
0x035300…035320             66 20 70 6f 73 73 69 62 6c 65 20 20 2a 29 0a 0a 20 20 69 66 20 6c 65 6e 67 74 68 5f 6f 66 5f 66   ┆f possible  *)    if length_of_f┆
0x035320…035340             69 78 65 64 5f 70 61 72 74 31 20 3c 3e 20 34 34 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c   ┆ixed_part1 <> 44 then     writel┆
0x035340…035360             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 20 66 69 78 65 64 20 70 61 72 74 31 20 3c 3e 20 34   ┆n ( output, '!  fixed part1 <> 4┆
0x035360…035380             34 20 20 3a 20 20 27 2c 20 6c 65 6e 67 74 68 5f 6f 66 5f 66 69 78 65 64 5f 70 61 72 74 31 29 3b   ┆4  :  ', length_of_fixed_part1);┆
0x035380…0353a0             0a 0a 20 20 77 69 74 68 20 70 61 72 61 6d 6c 69 73 74 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a   ┆    with paramlist do     begin ┆
0x0353a0…0353c0             20 20 20 20 66 69 72 73 74 3a 3d 20 6e 69 6c 3b 0a 20 20 20 20 6c 61 73 74 20 3a 3d 20 6c 69 6e   ┆    first:= nil;     last := lin┆
0x0353c0…0353e0             6b 5f 74 79 70 65 20 28 20 61 64 64 72 20 28 20 66 69 72 73 74 29 29 3b 0a 20 20 20 20 69 74 65   ┆k_type ( addr ( first));     ite┆
0x0353e0…035400             6d 73 3a 3d 20 30 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 6c 65 66 74 73 69 64 65 3a 3d 20 27 2e   ┆ms:= 0     end;    leftside:= '.┆
0x035400…035420 (14, 0, 7)  2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 2e   ┆...............,,,,,,,,,,,,,,,,.┆
0x035420…035440             2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 27 3b 0a 09 09 09 28 2a 20 6c 6f 6e 67 20 73 74 72   ┆...............';    (* long str┆
0x035440…035460             69 6e 67 20 66 6f 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 73 74 61 63 6b 20 61 6e 64 20   ┆ing for problems with stack and ┆
0x035460…035480             43 44 4f 53 20 35 2e 32 20 3f 20 20 2a 29 0a 20 20 6c 65 66 74 73 69 64 65 3a 3d 20 27 27 3b 0a   ┆CDOS 5.2 ?  *)   leftside:= ''; ┆
0x035480…0354a0             20 20 70 72 6f 67 72 61 6d 6e 61 6d 65 3a 3d 20 27 27 3b 0a 20 20 70 6c 69 62 77 6f 72 6b 5f 6e   ┆  programname:= '';   plibwork_n┆
0x0354a0…0354c0             61 6d 65 3a 3d 20 27 27 3b 0a 0a 20 20 69 66 20 64 65 62 75 67 5f 75 6e 69 74 20 74 68 65 6e 20   ┆ame:= '';    if debug_unit then ┆
0x0354c0…0354e0             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 72 65 61 64 20 70 61 72 61 6d 65 74 65   ┆writeln ( output, 'read paramete┆
0x0354e0…035500             72 73 20 27 29 3b 0a 0a 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 63 6f 75   ┆rs ');    for p := 1 to paramcou┆
0x035500…035520             6e 74 20 64 6f 20 70 61 72 61 6d 70 75 74 20 28 20 70 61 72 61 6d 73 74 72 20 28 20 70 29 29 3b   ┆nt do paramput ( paramstr ( p));┆
0x035520…035540             0a 0a 20 20 69 66 20 64 65 62 75 67 5f 75 6e 69 74 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28   ┆    if debug_unit then writeln (┆
0x035540…035560             20 6f 75 74 70 75 74 2c 20 27 70 61 72 61 6d 65 74 65 72 73 20 72 65 61 64 20 6f 6b 20 27 29 3b   ┆ output, 'parameters read ok ');┆
0x035560…035580             0a 0a 20 20 69 66 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 3d 20 27 27 20 74 68 65 6e 20 66   ┆    if plibwork_name = '' then f┆
0x035580…0355a0             69 6e 64 73 65 74 20 28 20 73 65 74 5f 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 2c 20 70 6c 69 62   ┆indset ( set_plibwork_name, plib┆
0x0355a0…0355c0             77 6f 72 6b 5f 6e 61 6d 65 29 3b 0a 0a 20 20 69 66 20 64 65 62 75 67 5f 75 6e 69 74 20 74 68 65   ┆work_name);    if debug_unit the┆
0x0355c0…0355e0             6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 61 66 74 65 72 20 66 69 6e 64 73   ┆n writeln ( output, 'after finds┆
0x0355e0…035600             65 74 3a 20 27 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 29 3b 0a 0a 20 20 69 66 20 70 6c 69   ┆et: ', plibwork_name);    if pli┆
0x035600…035620 (14, 0, 8)  62 77 6f 72 6b 5f 6e 61 6d 65 20 3d 20 27 27 20 74 68 65 6e 0a 20 20 20 20 69 66 20 66 61 6c 73   ┆bwork_name = '' then     if fals┆
0x035620…035640             65 20 74 68 65 6e 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 20 77 6f 72 6b 64 69 72 20 3d 20   ┆e then           (*   workdir = ┆
0x035640…035660             63 75 72 72 65 6e 74 20 64 69 72 20 20 20 38 39 2e 31 31 2e 30 32 20 20 20 20 2a 29 0a 20 20 20   ┆current dir   89.11.02    *)    ┆
0x035660…035680             20 62 65 67 69 6e 0a 20 20 20 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 3a 3d 20 70 61 72 61   ┆ begin     plibwork_name := para┆
0x035680…0356a0             6d 73 74 72 20 28 20 30 29 3b 0a 0a 20 20 20 20 69 66 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65   ┆mstr ( 0);      if plibwork_name┆
0x0356a0…0356c0             20 3d 20 27 27 20 74 68 65 6e 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 3a 3d 20 27 5c 54 55   ┆ = '' then plibwork_name := '\TU┆
0x0356c0…0356e0             52 42 4f 5c 53 57 32 31 30 33 5c 27 3b 20 20 20 28 2a 20 20 66 6f 72 20 43 44 4f 53 20 35 2e 32   ┆RBO\SW2103\';   (*  for CDOS 5.2┆
0x0356e0…035700             20 20 21 21 20 20 2a 29 0a 0a 20 20 20 20 69 66 20 64 65 62 75 67 5f 75 6e 69 74 20 74 68 65 6e   ┆  !!  *)      if debug_unit then┆
0x035700…035720             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 70 6c 69 62 5f 77 6f 72 6b 20   ┆ writeln ( output, '  plib_work ┆
0x035720…035740             3a 20 22 27 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 2c 20 27 22 27 29 3b 0a 20 20 20 20 69   ┆: "', plibwork_name, '"');     i┆
0x035740…035760             66 20 70 6f 73 20 28 20 27 5c 27 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 29 20 3d 20 30 20   ┆f pos ( '\', plibwork_name) = 0 ┆
0x035760…035780             74 68 65 6e 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 3a 3d 20 27 27 0a 20 20 20 20 65 6c 73 65   ┆then plibwork_name:= ''     else┆
0x035780…0357a0             0a 20 20 20 20 77 68 69 6c 65 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 5b 6c 65 6e 67 74 68 20   ┆     while plibwork_name[length ┆
0x0357a0…0357c0             28 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 29 5d 20 3c 3e 20 62 61 63 6b 73 6c 61 73 68 20 64   ┆( plibwork_name)] <> backslash d┆
0x0357c0…0357e0             6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 64 65 6c 65 74 65 20 28 20 70 6c 69   ┆o       begin       delete ( pli┆
0x0357e0…035800             62 77 6f 72 6b 5f 6e 61 6d 65 2c 20 6c 65 6e 67 74 68 20 28 20 70 6c 69 62 77 6f 72 6b 5f 6e 61   ┆bwork_name, length ( plibwork_na┆
0x035800…035820 (14, 0, 9)  6d 65 29 2c 20 31 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20   ┆me), 1);       end;     end;    ┆
0x035820…035840             69 66 20 64 65 62 75 67 5f 75 6e 69 74 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆if debug_unit then writeln ( out┆
0x035840…035860             70 75 74 2c 20 27 61 66 74 65 72 20 70 6c 69 62 20 70 61 74 68 3a 20 27 2c 20 70 6c 69 62 77 6f   ┆put, 'after plib path: ', plibwo┆
0x035860…035880             72 6b 5f 6e 61 6d 65 29 3b 0a 0a 20 20 73 65 74 5f 70 61 74 68 5f 65 6e 64 20 28 20 70 6c 69 62   ┆rk_name);    set_path_end ( plib┆
0x035880…0358a0             77 6f 72 6b 5f 6e 61 6d 65 29 3b 0a 0a 20 20 69 66 20 64 65 62 75 67 5f 75 6e 69 74 20 74 68 65   ┆work_name);    if debug_unit the┆
0x0358a0…0358c0             6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 61 66 74 65 72 20 73 65 74 20 70   ┆n writeln ( output, 'after set p┆
0x0358c0…0358e0             61 74 68 20 65 6e 64 3a 20 27 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 29 3b 0a 0a 65 6e 64   ┆ath end: ', plibwork_name);  end┆
0x0358e0…035900             20 2e 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 65 6e 64   ┆ . (*----------------------  end┆
0x035900…035920             20 6f 66 20 20 50 4c 49 42 55 4e 49 54 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ of  PLIBUNIT  -----------------┆
0x035920…035940             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 01 45 20 31 0a 3b 0a 20 20 20 20 69   ┆---------------*)    E 1 ;     i┆
0x035940…035960             66 20 70 6f 73 20 28 20 27 5c 27 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 29 20 3d 20 30 20   ┆f pos ( '\', plibwork_name) = 0 ┆
0x035960…035980             74 68 65 6e 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 3a 3d 20 27 27 0a 20 20 20 20 65 6c 73 65   ┆then plibwork_name:= ''     else┆
0x035980…0359a0             0a 20 20 20 20 77 68 69 6c 65 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 5b 6c 65 6e 67 74 68 20   ┆     while plibwork_name[length ┆
0x0359a0…0359c0             28 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 29 5d 20 3c 3e 20 62 61 63 6b 73 6c 61 73 68 20 64   ┆( plibwork_name)] <> backslash d┆
0x0359c0…0359e0             6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 64 65 6c 65 74 65 20 28 20 70 6c 69   ┆o       begin       delete ( pli┆
0x0359e0…035a00             62 77 6f 72 6b 5f 6e 61 6d 65 2c 20 6c 65 6e 67 74 68 20 28 20 70 6c 69 62 77 6f 72 6b 5f 6e 61   ┆bwork_name, length ( plibwork_na┆
0x035a00…035a20 (14, 0, 10) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 70 6f 6c 79 66 69 6c 65 2e 70 61   ┆../sw2103/src/util/s.polyfile.pa┆
0x035a20…035a40             73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆s                               ┆
0x035a40…035a60             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x035a60…035a80             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x035a80…035aa0             20 20 37 30 34 30 33 20 20 35 32 36 35 33 32 37 36 36 34 20 20 31 31 37 30 34 00 20 00 00 00 00   ┆  70403  5265327664  11704      ┆
0x035aa0…035ac0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x035c00…035c20 (14, 0, 11) 01 68 34 34 33 32 32 0a 01 73 20 30 31 31 35 31 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20   ┆ h44322  s 01151/00000/00000  d ┆
0x035c20…035c40             44 20 31 2e 31 20 39 32 2f 31 30 2f 30 39 20 31 31 3a 31 39 3a 32 30 20 73 77 32 31 30 33 20 31   ┆D 1.1 92/10/09 11:19:20 sw2103 1┆
0x035c40…035c60             20 30 0a 01 63 20 53 43 43 53 20 75 73 65 64 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a   ┆ 0  c SCCS used.  e  u  U  t  T ┆
0x035c60…035c80             01 49 20 31 0a 0a 55 6e 69 74 20 50 6f 6c 79 46 69 6c 65 3b 0a 0a 7b 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆ I 1  Unit PolyFile;  {*********┆
0x035c80…035ca0             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x035ca0…035cc0             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆**************} {               ┆
0x035cc0…035ce0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x035ce0…035d00             20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 50 6f 6c 79 46 69 6c 65 20   ┆        } {            PolyFile ┆
0x035d00…035d20             56 65 72 73 69 6f 6e 20 31 2e 31 30 20 28 4d 53 2d 44 4f 53 29 20 20 20 20 20 20 20 20 20 20 20   ┆Version 1.10 (MS-DOS)           ┆
0x035d20…035d40             20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆  } {                           ┆
0x035d40…035d60             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20   ┆                            } { ┆
0x035d60…035d80             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 41 54 4d 41 4e 20 6d 6f 64 75 6c   ┆                    DATMAN modul┆
0x035d80…035da0             65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20   ┆e                     } {       ┆
0x035da0…035dc0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x035dc0…035de0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                } {             ┆
0x035de0…035e00             20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 36 20 20 20 20 20 20 20 20 20   ┆     Copyright (C) 1986         ┆
0x035e00…035e20 (14, 0, 12) 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6f 6c 79 54   ┆          } {              PolyT┆
0x035e20…035e40             65 63 68 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 41 2f 53 20 20 20 20 20 20 20 20 20 20 20   ┆ech International A/S           ┆
0x035e40…035e60             20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆    } {                         ┆
0x035e60…035e80             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a   ┆                              } ┆
0x035e80…035ea0             7b 20 20 46 75 72 74 68 65 72 20 64 65 74 61 69 6c 73 20 69 6e 20 50 6f 6c 79 46 69 6c 65 20 52   ┆{  Further details in PolyFile R┆
0x035ea0…035ec0             65 66 65 72 65 6e 63 65 20 4d 61 6e 75 61 6c 20 20 20 20 20 20 20 20 20 7d 0a 7b 09 09 09 09 09   ┆eference Manual         } {     ┆
0x035ec0…035ee0             09 09 7d 0a 7b 09 49 4f 43 48 45 43 4b 20 6d 61 64 65 20 66 6f 72 77 61 72 64 20 72 6f 75 74 69   ┆  } { IOCHECK made forward routi┆
0x035ee0…035f00             6e 65 20 20 20 20 38 39 2e 30 33 2e 32 38 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20   ┆ne    89.03.28        } {       ┆
0x035f00…035f20             4e 45 58 54 4b 45 59 2c 20 50 52 45 56 4b 45 59 20 63 6f 72 72 65 63 74 65 64 20 20 20 20 20 20   ┆NEXTKEY, PREVKEY corrected      ┆
0x035f20…035f40             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 6f 6b 20 2d 3e 20   ┆                } {       ok -> ┆
0x035f40…035f60             73 75 63 63 65 73 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆success                         ┆
0x035f60…035f80             20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 31 39 38 39 2e 30 38 2e 30 34 20 20 20 48 45   ┆          } {    1989.08.04   HE┆
0x035f80…035fa0             4a 20 20 20 20 20 54 75 72 62 6f 20 50 61 73 63 61 6c 20 76 65 72 73 69 6f 6e 20 20 20 20 20 20   ┆J     Turbo Pascal version      ┆
0x035fa0…035fc0             20 20 20 20 7d 0a 7b 20 20 20 20 31 39 38 39 2e 31 30 2e 32 30 20 20 20 48 45 4a 20 20 20 20 20   ┆    } {    1989.10.20   HEJ     ┆
0x035fc0…035fe0             4e 42 21 20 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 70 5f 6b 65 79 73 74 72 20 20 20 6d 75   ┆NB!  problems with p_keystr   mu┆
0x035fe0…036000             73 74 20 62 65 20 31 32 20 66 6f 72 20 63 72 6f 73 6c 69 6e 6b 20 20 7d 0a 7b 20 20 20 20 31 39   ┆st be 12 for croslink  } {    19┆
0x036000…036020 (14, 0, 13) 38 39 2e 31 31 2e 30 31 20 20 20 48 45 4a 20 20 20 20 20 42 65 74 74 65 72 20 69 6e 69 74 20 6f   ┆89.11.01   HEJ     Better init o┆
0x036020…036040             66 20 6e 6f 64 62 75 66 2c 20 6e 6f 64 6d 61 70 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20   ┆f nodbuf, nodmap } {            ┆
0x036040…036060             20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 78 6b 73 69 7a 65 20 33 30 20 20 20 20 20 20 20 20   ┆             maxksize 30        ┆
0x036060…036080             20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆           } {                  ┆
0x036080…0360a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x0360a0…0360c0             20 20 20 20 20 7d 0a 7b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆     } {************************┆
0x0360c0…0360e0             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 7d   ┆*******************************}┆
0x0360e0…036100             0a 7b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ { -----------------------------┆
0x036100…036120             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x036120…036140             2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69   ┆------ -- SCCS information -- Fi┆
0x036140…036160             6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09   ┆le   :  %P% -- Module :  %M% -- ┆
0x036160…036180             56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20   ┆Version:  %I% -- Date   :  %E%  ┆
0x036180…0361a0             25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆%U% ----------------------------┆
0x0361a0…0361c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0361c0…0361e0             2d 2d 2d 2d 2d 2d 2d 0a 7d 0a 0a 69 6e 74 65 72 66 61 63 65 0a 0a 75 73 65 73 20 44 4f 53 2c 20   ┆------- }  interface  uses DOS, ┆
0x0361e0…036200             43 62 72 65 61 6b 3b 0a 0a 43 6f 6e 73 74 0a 20 20 20 6d 61 78 5f 6d 61 78 6b 73 69 7a 65 09 3d   ┆Cbreak;  Const    max_maxksize =┆
0x036200…036220 (14, 0, 14) 20 20 20 33 30 3b 0a 20 20 20 6d 61 78 5f 6e 6f 64 65 73 69 7a 65 09 3d 20 20 20 36 34 3b 0a 20   ┆   30;    max_nodesize =   64;  ┆
0x036220…036240             20 20 6d 61 78 5f 6e 62 75 66 73 69 7a 65 09 3d 20 20 20 32 39 3b 0a 20 20 20 6d 61 78 5f 6d 61   ┆  max_nbufsize =   29;    max_ma┆
0x036240…036260             78 64 65 70 74 68 09 20 20 3d 20 31 30 3b 0a 20 20 20 75 6e 69 71 75 65 5f 6b 65 79 73 20 20 20   ┆xdepth   = 10;    unique_keys   ┆
0x036260…036280             20 3d 20 20 30 3b 09 09 28 2a 20 20 69 6e 64 65 78 20 6d 6f 64 65 20 20 2a 29 0a 20 20 20 64 75   ┆ =  0;  (*  index mode  *)    du┆
0x036280…0362a0             70 6c 69 63 61 74 65 5f 6b 65 79 73 20 3d 20 20 31 3b 0a 0a 0a 54 79 70 65 0a 0a 20 20 64 61 74   ┆plicate_keys =  1;   Type    dat┆
0x0362a0…0362c0             61 66 69 6c 65 20 3d 20 52 45 43 4f 52 44 0a 09 20 20 20 20 20 20 20 43 41 53 45 20 62 79 74 65   ┆afile = RECORD         CASE byte┆
0x0362c0…0362e0             20 4f 46 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 3a 20 28 66 3a 20 46 49 4c 45   ┆ OF                  0: (f: FILE┆
0x0362e0…036300             3b 0a 09 09 20 20 20 20 20 66 66 72 65 2c 6e 66 72 65 2c 69 6e 74 31 2c 69 6e 74 32 2c 6e 72 65   ┆;        ffre,nfre,int1,int2,nre┆
0x036300…036320             63 3a 20 77 6f 72 64 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 3a 20 28 66   ┆c: word);                  1: (f┆
0x036320…036340             69 6c 65 64 65 73 3a 20 66 69 6c 65 72 65 63 29 3b 20 20 20 28 2a 20 20 73 65 65 20 44 4f 53 20   ┆iledes: filerec);   (*  see DOS ┆
0x036340…036360             75 6e 69 74 20 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 0a 20 20 70 5f   ┆unit  *)              END;    p_┆
0x036360…036380             70 74 68 72 65 63 20 3d 20 52 45 43 4f 52 44 0a 09 09 6e 72 2c 65 70 3a 20 77 6f 72 64 3b 0a 20   ┆pthrec = RECORD   nr,ep: word;  ┆
0x036380…0363a0             20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 0a 20 20 70 5f 70 74 68 6c 73 74 20 3d 20   ┆             END;    p_pthlst = ┆
0x0363a0…0363c0             41 52 52 41 59 20 5b 20 31 2e 2e 6d 61 78 5f 6d 61 78 64 65 70 74 68 20 7b 6d 61 78 64 65 70 74   ┆ARRAY [ 1..max_maxdepth {maxdept┆
0x0363c0…0363e0             68 7d 20 5d 20 4f 46 20 70 5f 70 74 68 72 65 63 3b 0a 0a 20 20 69 6e 64 65 78 66 69 6c 65 20 3d   ┆h} ] OF p_pthrec;    indexfile =┆
0x0363e0…036400             20 52 45 43 4f 52 44 0a 09 09 64 20 20 20 20 20 20 20 20 20 3a 20 64 61 74 61 66 69 6c 65 3b 0a   ┆ RECORD   d         : datafile; ┆
0x036400…036420 (14, 0, 15) 09 09 64 75 70 6b 65 79 20 20 20 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 09 09 6b 6c 65 6e 2c 72 72   ┆  dupkey    : boolean;   klen,rr┆
0x036420…036440             2c 70 70 3a 20 77 6f 72 64 3b 0a 09 09 70 61 74 68 20 20 20 20 20 20 3a 20 70 5f 70 74 68 6c 73   ┆,pp: word;   path      : p_pthls┆
0x036440…036460             74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 0a 20 56 61 72 0a 20 20 20 69   ┆t;               END;   Var    i┆
0x036460…036480             6f 73 74 73 20 20 3a 20 77 6f 72 64 3b 09 28 2a 20 20 73 61 76 65 64 20 69 6f 72 65 73 75 6c 74   ┆osts  : word; (*  saved ioresult┆
0x036480…0364a0             20 20 2a 29 0a 20 20 20 73 75 63 63 65 73 73 3a 20 62 6f 6f 6c 65 61 6e 3b 09 28 2a 20 20 72 65   ┆  *)    success: boolean; (*  re┆
0x0364a0…0364c0             74 75 72 6e 65 64 20 72 65 73 75 6c 74 20 66 72 6f 6d 20 74 68 65 20 72 6f 75 74 69 6e 65 73 0a   ┆turned result from the routines ┆
0x0364c0…0364e0             09 09 09 2d 2d 20 20 20 20 3d 20 27 6f 6b 27 20 20 69 6e 20 74 68 65 20 50 6f 6c 79 46 69 6c 65   ┆   --    = 'ok'  in the PolyFile┆
0x0364e0…036500             20 6d 61 6e 75 61 6c 09 2a 29 0a 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 6f 6c 79 66 69 6c 65 5f   ┆ manual *)   PROCEDURE polyfile_┆
0x036500…036520             63 6f 6e 66 69 67 20 28 20 6d 61 78 5f 72 65 63 5f 73 69 7a 65 2c 20 6d 61 78 5f 6b 65 79 5f 73   ┆config ( max_rec_size, max_key_s┆
0x036520…036540             69 7a 65 2c 0a 09 20 20 20 6e 6f 64 65 5f 73 69 7a 65 2c 20 6e 6f 64 65 5f 62 75 66 5f 73 69 7a   ┆ize,     node_size, node_buf_siz┆
0x036540…036560             65 2c 20 6d 61 78 5f 64 65 70 74 68 20 3a 20 77 6f 72 64 20 29 3b 0a 28 2a 0a 2d 2d 09 55 73 65   ┆e, max_depth : word ); (* -- Use┆
0x036560…036580             64 20 74 6f 20 72 65 73 65 72 76 65 20 77 6f 72 6b 69 6e 67 20 76 61 72 69 61 62 6c 65 73 20 6f   ┆d to reserve working variables o┆
0x036580…0365a0             6e 20 74 68 65 20 68 65 61 70 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 6d 2e 0a   ┆n the heap and initialize them. ┆
0x0365a0…0365c0             2d 2d 0a 2d 2d 20 20 20 20 20 20 6d 61 78 5f 72 65 63 5f 73 69 7a 65 3a 09 6d 61 78 20 72 65 63   ┆-- --      max_rec_size: max rec┆
0x0365c0…0365e0             6f 72 64 20 73 69 7a 65 20 69 6e 20 62 79 74 65 73 2e 20 20 28 20 38 2e 2e 36 35 30 30 30 20 29   ┆ord size in bytes.  ( 8..65000 )┆
0x0365e0…036600             0a 2d 2d 09 6d 61 78 5f 6b 65 79 5f 73 69 7a 65 3a 20 20 20 6b 65 79 6c 65 6e 67 74 68 20 69 6e   ┆ -- max_key_size:   keylength in┆
0x036600…036620 (14, 1, 1)  20 63 68 61 72 73 09 28 20 31 2e 2e 20 33 30 20 29 0a 2d 2d 09 6e 6f 64 65 5f 73 69 7a 65 3a 09   ┆ chars ( 1.. 30 ) -- node_size: ┆
0x036620…036640             6e 6f 20 6f 66 20 6b 65 79 20 65 6e 74 72 69 65 73 20 70 72 20 69 6e 64 65 78 20 66 69 6c 65 20   ┆no of key entries pr index file ┆
0x036640…036660             72 65 63 6f 72 64 20 28 20 34 2e 2e 36 34 2c 20 65 76 65 6e 29 0a 2d 2d 09 6e 6f 64 65 5f 62 75   ┆record ( 4..64, even) -- node_bu┆
0x036660…036680             66 5f 73 69 7a 65 3a 09 6e 6f 20 6f 66 20 6e 6f 64 65 73 20 69 6e 20 6d 65 6d 6f 72 79 09 28 20   ┆f_size: no of nodes in memory ( ┆
0x036680…0366a0             33 2e 2e 32 39 20 29 0a 2d 2d 09 6d 61 78 5f 64 65 70 74 68 3a 09 6d 61 78 20 64 65 70 74 68 20   ┆3..29 ) -- max_depth: max depth ┆
0x0366a0…0366c0             6f 66 20 69 6e 64 65 78 20 73 74 72 75 63 74 75 72 65 2c 20 75 73 75 61 6c 20 20 33 2e 2e 38 20   ┆of index structure, usual  3..8 ┆
0x0366c0…0366e0             20 28 20 32 2e 2e 31 30 20 29 0a 2d 2d 20 20 09 52 65 74 75 72 6e 3a 20 20 20 20 73 75 63 63 65   ┆ ( 2..10 ) --   Return:    succe┆
0x0366e0…036700             73 73 20 69 73 20 73 65 74 20 74 6f 20 66 61 6c 73 65 20 69 66 20 72 65 73 65 72 76 61 74 69 6f   ┆ss is set to false if reservatio┆
0x036700…036720             6e 20 77 61 73 20 69 6d 70 6f 73 73 69 62 6c 65 2e 0a 2d 2d 0a 2d 2d 20 20 46 75 72 74 68 65 72   ┆n was impossible. -- --  Further┆
0x036720…036740             20 64 65 74 61 69 6c 73 20 69 6e 20 50 6f 6c 79 46 69 6c 65 20 52 65 66 65 72 65 6e 63 65 20 4d   ┆ details in PolyFile Reference M┆
0x036740…036760             61 6e 75 61 6c 0a 2a 29 0a 0a 50 52 4f 43 45 44 55 52 45 20 67 65 74 72 65 63 20 28 20 56 41 52   ┆anual *)  PROCEDURE getrec ( VAR┆
0x036760…036780             20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 62 75   ┆ datf: datafile; r: word; VAR bu┆
0x036780…0367a0             66 66 65 72 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 75 74 72 65 63 20 28 20 56 41 52 20 64   ┆ffer);  PROCEDURE putrec ( VAR d┆
0x0367a0…0367c0             61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 62 75 66 66   ┆atf: datafile; r: word; VAR buff┆
0x0367c0…0367e0             65 72 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 6d 61 6b 65 66 69 6c 65 20 28 20 56 41 52 20 64   ┆er);  PROCEDURE makefile ( VAR d┆
0x0367e0…036800             61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 66 6e 61 6d 3a 20 70 61 74 68 73 74 72 3b 20 72 65   ┆atf: datafile; fnam: pathstr; re┆
0x036800…036820 (14, 1, 2)  63 6c 65 6e 3a 20 77 6f 72 64 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 6f 70 65 6e 66 69 6c 65   ┆clen: word);  PROCEDURE openfile┆
0x036820…036840             20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 66 6e 61 6d 3a 20 70 61 74   ┆ ( VAR datf: datafile; fnam: pat┆
0x036840…036860             68 73 74 72 3b 20 72 65 63 6c 65 6e 3a 20 77 6f 72 64 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20   ┆hstr; reclen: word);  PROCEDURE ┆
0x036860…036880             63 6c 6f 73 65 66 69 6c 65 20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 29 3b   ┆closefile ( VAR datf: datafile);┆
0x036880…0368a0             0a 0a 50 52 4f 43 45 44 55 52 45 20 61 64 64 72 65 63 20 28 20 56 41 52 20 64 61 74 66 3a 20 64   ┆  PROCEDURE addrec ( VAR datf: d┆
0x0368a0…0368c0             61 74 61 66 69 6c 65 3b 20 56 41 52 20 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 62 75 66 66 65 72   ┆atafile; VAR r: word; VAR buffer┆
0x0368c0…0368e0             29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 64 65 6c 65 74 65 72 65 63 20 28 20 56 41 52 20 64 61   ┆);  PROCEDURE deleterec ( VAR da┆
0x0368e0…036900             74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 72 3a 20 77 6f 72 64 29 3b 0a 0a 46 55 4e 43 54 49 4f   ┆tf: datafile; r: word);  FUNCTIO┆
0x036900…036920             4e 20 66 69 6c 65 6c 65 6e 20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 29 3a   ┆N filelen ( VAR datf: datafile):┆
0x036920…036940             20 77 6f 72 64 3b 0a 0a 46 55 4e 43 54 49 4f 4e 20 75 73 65 64 72 65 63 73 20 28 20 56 41 52 20   ┆ word;  FUNCTION usedrecs ( VAR ┆
0x036940…036960             64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 29 3a 20 77 6f 72 64 3b 0a 0a 50 52 4f 43 45 44 55 52   ┆datf: datafile): word;  PROCEDUR┆
0x036960…036980             45 20 6d 61 6b 65 69 6e 64 65 78 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c   ┆E makeindex ( VAR idxf: indexfil┆
0x036980…0369a0             65 3b 20 66 6e 61 6d 3a 20 70 61 74 68 73 74 72 3b 20 6b 65 79 6c 65 6e 2c 73 3a 20 77 6f 72 64   ┆e; fnam: pathstr; keylen,s: word┆
0x0369a0…0369c0             29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 6f 70 65 6e 69 6e 64 65 78 20 28 20 56 41 52 20 69 64   ┆);  PROCEDURE openindex ( VAR id┆
0x0369c0…0369e0             78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 66 6e 61 6d 3a 20 70 61 74 68 73 74 72 3b 20 6b 65   ┆xf: indexfile; fnam: pathstr; ke┆
0x0369e0…036a00             79 6c 65 6e 2c 73 3a 20 77 6f 72 64 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 63 6c 6f 73 65 69   ┆ylen,s: word);  PROCEDURE closei┆
0x036a00…036a20 (14, 1, 3)  6e 64 65 78 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 29 3b 0a 0a 50 52   ┆ndex ( VAR idxf: indexfile);  PR┆
0x036a20…036a40             4f 43 45 44 55 52 45 20 63 6c 65 61 72 6b 65 79 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64   ┆OCEDURE clearkey ( VAR idxf: ind┆
0x036a40…036a60             65 78 66 69 6c 65 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 61 64 64 6b 65 79 20 28 20 56 41 52   ┆exfile);  PROCEDURE addkey ( VAR┆
0x036a60…036a80             20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 70 64 72 3a 20 77 6f 72 64 3b 20 56 41 52   ┆ idxf: indexfile; pdr: word; VAR┆
0x036a80…036aa0             20 70 6b 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 72 65 76 6b 65 79 20 28 20 56 41 52 20 69   ┆ pk);  PROCEDURE prevkey ( VAR i┆
0x036aa0…036ac0             64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20 70 64 72 3a 20 77 6f 72 64 3b 20 56   ┆dxf: indexfile; VAR pdr: word; V┆
0x036ac0…036ae0             41 52 20 70 6b 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 6e 65 78 74 6b 65 79 20 28 20 56 41 52   ┆AR pk);  PROCEDURE nextkey ( VAR┆
0x036ae0…036b00             20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20 70 64 72 3a 20 77 6f 72 64 3b   ┆ idxf: indexfile; VAR pdr: word;┆
0x036b00…036b20             20 56 41 52 20 70 6b 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 66 69 6e 64 6b 65 79 20 28 20 56   ┆ VAR pk);  PROCEDURE findkey ( V┆
0x036b20…036b40             41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20 70 64 72 3a 20 77 6f 72   ┆AR idxf: indexfile; VAR pdr: wor┆
0x036b40…036b60             64 3b 20 56 41 52 20 70 6b 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 73 65 61 72 63 68 6b 65 79   ┆d; VAR pk);  PROCEDURE searchkey┆
0x036b60…036b80             20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20 70 64 72 3a   ┆ ( VAR idxf: indexfile; VAR pdr:┆
0x036b80…036ba0             20 77 6f 72 64 3b 20 56 41 52 20 70 6b 29 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 64 65 6c 65 74   ┆ word; VAR pk);  PROCEDURE delet┆
0x036ba0…036bc0             65 6b 65 79 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20   ┆ekey ( VAR idxf: indexfile; VAR ┆
0x036bc0…036be0             70 64 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 70 6b 29 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆pdr: word; VAR pk);  (*---------┆
0x036be0…036c00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x036c20…036c40             2d 2a 29 0a 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 7b 24 49 2d 2c 53 2b 2c 52 2b 20   ┆-*)  implementation  {$I-,S+,R+ ┆
0x036c40…036c60             7d 20 20 20 20 20 7b 20 61 6c 6c 20 2d 20 20 69 6e 20 6f 72 69 67 2e 20 20 7d 0a 0a 43 6f 6e 73   ┆}     { all -  in orig.  }  Cons┆
0x036c60…036c80             74 0a 20 20 20 20 64 65 62 75 67 5f 75 6e 69 74 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 20 6d   ┆t     debug_unit =  false;     m┆
0x036c80…036ca0             61 78 66 69 6c 65 73 20 20 20 20 3d 20 20 20 38 3b 0a 0a 0a 20 20 20 70 61 74 68 73 74 72 6c 65   ┆axfiles    =   8;      pathstrle┆
0x036ca0…036cc0             6e 09 3d 20 37 39 3b 0a 0a 20 20 20 70 61 73 74 5f 65 6f 66 09 3d 20 20 31 30 30 3b 09 09 28 2a   ┆n = 79;     past_eof =  100;  (*┆
0x036cc0…036ce0             20 20 69 6f 72 65 73 75 6c 74 73 20 20 2a 29 0a 20 20 20 64 69 73 6b 5f 66 75 6c 6c 09 3d 20 20   ┆  ioresults  *)    disk_full =  ┆
0x036ce0…036d00             31 30 31 3b 0a 20 20 20 61 63 63 65 73 73 5f 64 65 6e 69 65 64 3d 20 20 20 20 35 3b 0a 20 20 20   ┆101;    access_denied=    5;    ┆
0x036d00…036d20             66 69 6c 65 5f 6e 6f 74 5f 66 6f 75 6e 64 3d 20 20 20 32 3b 0a 0a 54 79 70 65 0a 20 20 20 70 5f   ┆file_not_found=   2;  Type    p_┆
0x036d20…036d40             6e 6f 64 6d 61 70 20 3d 20 41 52 52 41 59 20 5b 20 31 2e 2e 6d 61 78 5f 6e 62 75 66 73 69 7a 65   ┆nodmap = ARRAY [ 1..max_nbufsize┆
0x036d40…036d60             20 5d 20 4f 46 20 77 6f 72 64 3b 0a 0a 56 61 72 0a 20 20 20 74 63 20 20 20 20 20 20 20 3a 20 20   ┆ ] OF word;  Var    tc       :  ┆
0x036d60…036d80             63 68 61 72 3b 0a 20 20 20 6d 61 70 69 78 20 20 20 20 3a 20 20 77 6f 72 64 3b 0a 20 20 20 65 78   ┆char;    mapix    :  word;    ex┆
0x036d80…036da0             69 74 73 61 76 65 20 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 20 20 20 70 5f 6e 6d 61 70 20 20 20 3a   ┆itsave :  pointer;    p_nmap   :┆
0x036da0…036dc0             20 20 70 5f 6e 6f 64 6d 61 70 3b 0a 0a 0a 43 6f 6e 73 74 20 20 20 20 20 28 2a 20 20 4e 42 20 20   ┆  p_nodmap;   Const     (*  NB  ┆
0x036dc0…036de0             20 69 6e 69 74 2e 20 76 61 72 73 20 20 2a 29 0a 0a 20 20 20 6d 61 78 72 73 69 7a 65 20 09 3a 20   ┆ init. vars  *)     maxrsize  : ┆
0x036de0…036e00             20 77 6f 72 64 09 3d 20 20 34 30 30 3b 0a 20 20 20 6d 61 78 6b 73 69 7a 65 09 3a 20 20 77 6f 72   ┆ word =  400;    maxksize :  wor┆
0x036e00…036e20 (14, 1, 5)  64 09 3d 20 20 20 6d 61 78 5f 6d 61 78 6b 73 69 7a 65 3b 09 28 2a 20 20 33 30 20 20 2a 29 0a 20   ┆d =   max_maxksize; (*  30  *)  ┆
0x036e20…036e40             20 20 6e 6f 64 65 73 69 7a 65 09 3a 20 20 77 6f 72 64 09 3d 20 20 20 6d 61 78 5f 6e 6f 64 65 73   ┆  nodesize :  word =   max_nodes┆
0x036e40…036e60             69 7a 65 3b 0a 20 20 20 6e 6f 64 65 68 61 6c 66 09 3a 20 20 77 6f 72 64 09 3d 20 20 20 33 32 3b   ┆ize;    nodehalf :  word =   32;┆
0x036e60…036e80             0a 20 20 20 6e 62 75 66 73 69 7a 65 09 3a 20 20 77 6f 72 64 09 3d 20 20 20 6d 61 78 5f 6e 62 75   ┆    nbufsize :  word =   max_nbu┆
0x036e80…036ea0             66 73 69 7a 65 3b 0a 20 20 20 6d 61 78 64 65 70 74 68 09 3a 20 20 77 6f 72 64 09 3d 20 20 20 6d   ┆fsize;    maxdepth :  word =   m┆
0x036ea0…036ec0             61 78 5f 6d 61 78 64 65 70 74 68 3b 0a 20 20 20 63 61 6c 6c 65 64 5f 66 72 6f 6d 5f 70 72 65 76   ┆ax_maxdepth;    called_from_prev┆
0x036ec0…036ee0             20 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 75 73 65 64 5f 66 69   ┆ :  boolean =  false;    used_fi┆
0x036ee0…036f00             6c 65 73 20 20 20 3a 20 20 77 6f 72 64 20 3d 20 20 20 20 30 3b 0a 20 20 20 73 69 7a 65 5f 6f 66   ┆les   :  word =    0;    size_of┆
0x036f00…036f20             5f 6e 62 75 66 20 3a 20 20 77 6f 72 64 20 3d 20 20 20 20 30 3b 20 20 20 20 20 20 20 20 20 20 20   ┆_nbuf :  word =    0;           ┆
0x036f20…036f40             20 28 2a 20 20 66 6f 72 20 66 72 65 65 6d 65 6d 20 20 2a 29 0a 20 20 20 73 69 7a 65 5f 6f 66 5f   ┆ (*  for freemem  *)    size_of_┆
0x036f40…036f60             72 62 75 66 20 3a 20 20 77 6f 72 64 20 3d 20 20 20 20 30 3b 20 20 20 20 20 20 20 20 20 20 20 20   ┆rbuf :  word =    0;            ┆
0x036f60…036f80             28 2a 20 20 66 6f 72 20 66 72 65 65 6d 65 6d 20 20 2a 29 0a 0a 54 59 50 45 0a 20 20 28 2a 20 20   ┆(*  for freemem  *)  TYPE   (*  ┆
0x036f80…036fa0             20 20 20 70 61 74 68 73 74 72 20 3d 20 53 54 52 49 4e 47 5b 37 39 5d 3b 20 20 20 69 6e 20 44 4f   ┆   pathstr = STRING[79];   in DO┆
0x036fa0…036fc0             53 20 75 6e 69 74 20 20 2d 2d 2d 2a 29 0a 0a 20 20 66 69 6c 65 72 65 63 5f 70 74 72 20 20 3d 20   ┆S unit  ---*)    filerec_ptr  = ┆
0x036fc0…036fe0             20 5e 64 61 74 61 66 69 6c 65 3b 0a 0a 20 20 70 5f 6b 65 79 73 74 72 20 3d 20 53 54 52 49 4e 47   ┆ ^datafile;    p_keystr = STRING┆
0x036fe0…037000             20 5b 20 6d 61 78 5f 6d 61 78 6b 73 69 7a 65 20 5d 3b 0a 0a 20 20 70 5f 69 64 78 72 65 63 20 3d   ┆ [ max_maxksize ];    p_idxrec =┆
0x037000…037020 (14, 1, 6)  20 52 45 43 4f 52 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 2c 6e 72 3a 20 77 6f   ┆ RECORD                dr,nr: wo┆
0x037020…037040             72 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 3a 20 70 5f 6b 65 79 73 74 72   ┆rd;                key: p_keystr┆
0x037040…037060             3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 0a 0a 20 20 70 5f 6e 6f 64 72 65 63   ┆;              END;     p_nodrec┆
0x037060…037080             20 3d 20 52 45 43 4f 52 44 0a 09 20 20 20 20 20 20 20 6e 65 3a 20 62 79 74 65 3b 20 20 7b 30 2e   ┆ = RECORD         ne: byte;  {0.┆
0x037080…0370a0             2e 6e 6f 64 65 73 69 7a 65 3b 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 72 30 3a 20   ┆.nodesize;}                nr0: ┆
0x0370a0…0370c0             77 6f 72 64 3b 0a 09 20 20 20 20 20 20 20 65 3a 20 41 52 52 41 59 5b 31 2e 2e 6d 61 78 5f 6e 6f   ┆word;         e: ARRAY[1..max_no┆
0x0370c0…0370e0             64 65 73 69 7a 65 5d 20 4f 46 20 70 5f 69 64 78 72 65 63 3b 0a 20 20 20 20 20 20 20 20 20 20 20   ┆desize] OF p_idxrec;            ┆
0x0370e0…037100             20 20 45 4e 44 3b 0a 0a 20 20 70 5f 6e 6f 64 72 63 70 20 3d 20 5e 70 5f 6e 6f 64 72 65 63 3b 0a   ┆  END;    p_nodrcp = ^p_nodrec; ┆
0x037100…037120             20 20 70 5f 69 6e 64 78 66 70 20 3d 20 5e 69 6e 64 65 78 66 69 6c 65 3b 0a 0a 20 20 70 5f 6e 62   ┆  p_indxfp = ^indexfile;    p_nb┆
0x037120…037140             66 72 65 63 20 3d 20 52 45 43 4f 52 44 0a 09 09 6e 20 20 3a 20 70 5f 6e 6f 64 72 65 63 3b 20 20   ┆frec = RECORD   n  : p_nodrec;  ┆
0x037140…037160             20 20 20 20 20 20 20 28 2a 20 20 6d 75 73 74 20 62 65 20 31 73 74 20 66 69 65 6c 64 20 20 2a 29   ┆       (*  must be 1st field  *)┆
0x037160…037180             0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 70 3a 20 70 5f 69 6e 64 78 66 70 3b 0a   ┆                 ifp: p_indxfp; ┆
0x037180…0371a0             09 09 6e 72 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 70 64   ┆  nr : word;                 upd┆
0x0371a0…0371c0             3a 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 0a 20   ┆: boolean;               END;   ┆
0x0371c0…0371e0             20 70 5f 6e 62 66 72 63 70 20 3d 20 5e 70 5f 6e 62 66 72 65 63 3b 0a 20 20 70 5f 6e 6f 64 62 75   ┆ p_nbfrcp = ^p_nbfrec;   p_nodbu┆
0x0371e0…037200             66 20 3d 20 41 52 52 41 59 5b 31 2e 2e 6d 61 78 5f 6e 62 75 66 73 69 7a 65 5d 20 4f 46 20 70 5f   ┆f = ARRAY[1..max_nbufsize] OF p_┆
0x037200…037220 (14, 1, 7)  6e 62 66 72 65 63 3b 0a 20 20 70 5f 72 65 63 62 75 66 20 3d 20 52 45 43 4f 52 44 0a 20 20 20 20   ┆nbfrec;   p_recbuf = RECORD     ┆
0x037220…037240             20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 41 53 45 20 69 6e 74 65 67 65 72 20 4f 46 0a 20 20   ┆              CASE integer OF   ┆
0x037240…037260             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 3a 20 28 6e 3a 20 70 5f 6e 62 66 72 65   ┆                  0: (n: p_nbfre┆
0x037260…037280             63 29 3b 0a 09 09 20 20 20 20 31 3a 20 28 72 3a 20 41 52 52 41 59 5b 31 2e 2e 6d 61 78 69 6e 74   ┆c);       1: (r: ARRAY[1..maxint┆
0x037280…0372a0             7b 6d 61 78 72 65 63 73 69 7a 65 7d 5d 20 4f 46 20 62 79 74 65 29 3b 0a 20 20 20 20 20 20 20 20   ┆{maxrecsize}] OF byte);         ┆
0x0372a0…0372c0             20 20 20 20 20 20 20 20 20 20 20 20 32 3a 20 28 73 74 61 74 3a 20 77 6f 72 64 29 3b 0a 20 20 20   ┆            2: (stat: word);    ┆
0x0372c0…0372e0             20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆             END;  (*-----------┆
0x0372e0…037300             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6f 6c 64 20 76 65 72 73   ┆----------------------- old vers┆
0x037300…037320             69 6f 6e 20 2d 2d 2d 2d 2d 2d 0a 54 59 50 45 0a 20 20 28 20 2a 20 20 70 61 74 68 73 74 72 20 3d   ┆ion ------ TYPE   ( *  pathstr =┆
0x037320…037340             20 53 54 52 49 4e 47 5b 37 39 5d 3b 20 20 20 2d 2d 2d 2a 20 20 29 0a 20 20 70 5f 6b 65 79 73 74   ┆ STRING[79];   ---*  )   p_keyst┆
0x037340…037360             72 20 3d 20 53 54 52 49 4e 47 5b 6d 61 78 6b 65 79 73 69 7a 65 5d 3b 0a 20 20 70 5f 69 64 78 72   ┆r = STRING[maxkeysize];   p_idxr┆
0x037360…037380             65 63 20 3d 20 52 45 43 4f 52 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 2c 6e 72   ┆ec = RECORD                dr,nr┆
0x037380…0373a0             3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 3a 20 70 5f 6b 65   ┆: word;                key: p_ke┆
0x0373a0…0373c0             79 73 74 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 0a 20 20 70 5f 70 74 68   ┆ystr;              END;    p_pth┆
0x0373c0…0373e0             72 65 63 20 3d 20 52 45 43 4f 52 44 0a 09 09 6e 72 2c 65 70 3a 20 77 6f 72 64 3b 0a 20 20 20 20   ┆rec = RECORD   nr,ep: word;     ┆
0x0373e0…037400             20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 70 5f 70 74 68 6c 73 74 20 3d 20 41 52 52 41   ┆          END;   p_pthlst = ARRA┆
0x037400…037420 (14, 1, 8)  59 5b 31 2e 2e 6d 61 78 64 65 70 74 68 5d 20 4f 46 20 70 5f 70 74 68 72 65 63 3b 0a 0a 20 20 69   ┆Y[1..maxdepth] OF p_pthrec;    i┆
0x037420…037440             6e 64 65 78 66 69 6c 65 20 3d 20 52 45 43 4f 52 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ndexfile = RECORD               ┆
0x037440…037460             20 20 64 3a 20 64 61 74 61 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64   ┆  d: datafile;                 d┆
0x037460…037480             75 70 6b 65 79 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 09 09 6b 6c 65 6e 2c 72 72 2c 70 70 3a 20 77 6f   ┆upkey: boolean;   klen,rr,pp: wo┆
0x037480…0374a0             72 64 3b 0a 09 09 70 61 74 68 3a 20 70 5f 70 74 68 6c 73 74 3b 0a 20 20 20 20 20 20 20 20 20 20   ┆rd;   path: p_pthlst;           ┆
0x0374a0…0374c0             20 20 20 20 45 4e 44 3b 0a 0a 20 20 70 5f 6e 6f 64 72 65 63 20 3d 20 52 45 43 4f 52 44 0a 20 20   ┆    END;    p_nodrec = RECORD   ┆
0x0374c0…0374e0             20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 3a 20 30 2e 2e 6e 6f 64 65 73 69 7a 65 3b 0a 20 20   ┆             ne: 0..nodesize;   ┆
0x0374e0…037500             20 20 20 20 20 20 20 20 20 20 20 20 20 6e 72 30 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 20 20 20   ┆             nr0: word;         ┆
0x037500…037520             20 20 20 20 20 20 20 65 3a 20 41 52 52 41 59 5b 31 2e 2e 6e 6f 64 65 73 69 7a 65 5d 20 4f 46 20   ┆       e: ARRAY[1..nodesize] OF ┆
0x037520…037540             70 5f 69 64 78 72 65 63 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 70 5f   ┆p_idxrec;              END;   p_┆
0x037540…037560             6e 6f 64 72 63 70 20 3d 20 5e 70 5f 6e 6f 64 72 65 63 3b 0a 20 20 70 5f 69 6e 64 78 66 70 20 3d   ┆nodrcp = ^p_nodrec;   p_indxfp =┆
0x037560…037580             20 5e 69 6e 64 65 78 66 69 6c 65 3b 0a 0a 20 20 70 5f 6e 62 66 72 65 63 20 3d 20 52 45 43 4f 52   ┆ ^indexfile;    p_nbfrec = RECOR┆
0x037580…0375a0             44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 3a 20 70 5f 6e 6f 64 72 65 63 3b 0a 20   ┆D                 n: p_nodrec;  ┆
0x0375a0…0375c0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 70 3a 20 70 5f 69 6e 64 78 66 70 3b 0a 20 20   ┆               ifp: p_indxfp;   ┆
0x0375c0…0375e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 72 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 20 20 20   ┆              nr: word;         ┆
0x0375e0…037600             20 20 20 20 20 20 20 20 75 70 64 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 20 20 20 20 20 20 20 20   ┆        upd: boolean;           ┆
0x037600…037620 (14, 1, 9)  20 20 20 20 45 4e 44 3b 0a 0a 20 20 70 5f 6e 62 66 72 63 70 20 3d 20 5e 70 5f 6e 62 66 72 65 63   ┆    END;    p_nbfrcp = ^p_nbfrec┆
0x037620…037640             3b 0a 20 20 70 5f 6e 6f 64 62 75 66 20 3d 20 41 52 52 41 59 5b 31 2e 2e 6e 62 75 66 73 69 7a 65   ┆;   p_nodbuf = ARRAY[1..nbufsize┆
0x037640…037660             5d 20 4f 46 20 70 5f 6e 62 66 72 65 63 3b 0a 0a 20 20 70 5f 72 65 63 62 75 66 20 3d 20 52 45 43   ┆] OF p_nbfrec;    p_recbuf = REC┆
0x037660…037680             4f 52 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 41 53 45 20 69 6e 74 65 67   ┆ORD                   CASE integ┆
0x037680…0376a0             65 72 20 4f 46 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 3a 20 28 6e 3a   ┆er OF                     0: (n:┆
0x0376a0…0376c0             20 70 5f 6e 62 66 72 65 63 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ p_nbfrec);                     ┆
0x0376c0…0376e0             31 3a 20 28 72 3a 20 41 52 52 41 59 5b 31 2e 2e 6d 61 78 72 65 63 73 69 7a 65 5d 20 4f 46 20 62   ┆1: (r: ARRAY[1..maxrecsize] OF b┆
0x0376e0…037700             79 74 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 3a 20 28 69 3a   ┆yte);                     2: (i:┆
0x037700…037720             20 77 6f 72 64 29 3b 0a 09 09 45 4e 44 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ word);   END; -----------------┆
0x037720…037740             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x037740…037760             2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 56 41 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆--------*)  VAR                 ┆
0x037760…037780             20 20 20 20 20 20 28 2a 20 20 6f 6e 20 68 65 61 70 20 20 2a 29 0a 20 20 70 5f 72 62 75 66 5f 70   ┆      (*  on heap  *)   p_rbuf_p┆
0x037780…0377a0             20 3a 20 5e 70 5f 72 65 63 62 75 66 3b 0a 20 20 70 5f 6e 62 75 66 5f 70 20 3a 20 5e 70 5f 6e 6f   ┆ : ^p_recbuf;   p_nbuf_p : ^p_no┆
0x0377a0…0377c0             64 62 75 66 3b 0a 20 20 70 09 3a 20 20 77 6f 72 64 3b 0a 0a 43 6f 6e 73 74 0a 20 20 66 69 6c 65   ┆dbuf;   p :  word;  Const   file┆
0x0377c0…0377e0             5f 74 61 62 6c 65 20 20 20 3a 20 20 61 72 72 61 79 20 5b 20 31 2e 2e 6d 61 78 66 69 6c 65 73 20   ┆_table   :  array [ 1..maxfiles ┆
0x0377e0…037800             5d 20 6f 66 20 66 69 6c 65 72 65 63 5f 70 74 72 09 28 2a 20 20 75 73 65 64 20 66 69 6c 65 73 20   ┆] of filerec_ptr (*  used files ┆
0x037800…037820 (14, 1, 10) 20 2a 29 0a 20 20 20 20 20 3d 20 28 20 6e 69 6c 2c 20 6e 69 6c 2c 20 6e 69 6c 2c 20 6e 69 6c 2c   ┆ *)      = ( nil, nil, nil, nil,┆
0x037820…037840             20 6e 69 6c 2c 20 6e 69 6c 2c 20 6e 69 6c 2c 20 6e 69 6c 20 29 3b 0a 0a 0a 46 75 6e 63 74 69 6f   ┆ nil, nil, nil, nil );   Functio┆
0x037840…037860             6e 20 66 69 6e 64 5f 66 69 6c 65 20 28 20 77 61 6e 74 3a 20 66 69 6c 65 72 65 63 5f 70 74 72 29   ┆n find_file ( want: filerec_ptr)┆
0x037860…037880             3a 20 77 6f 72 64 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 70 20 3a 20 77 6f 72 64 3b 0a 20 20 62   ┆: word;   var      p : word;   b┆
0x037880…0378a0             65 67 69 6e 0a 20 20 70 3a 3d 20 31 3b 0a 20 20 77 68 69 6c 65 20 28 20 66 69 6c 65 5f 74 61 62   ┆egin   p:= 1;   while ( file_tab┆
0x0378a0…0378c0             6c 65 5b 70 5d 20 3c 3e 20 77 61 6e 74 20 29 20 61 6e 64 20 28 20 70 20 3c 20 6d 61 78 66 69 6c   ┆le[p] <> want ) and ( p < maxfil┆
0x0378c0…0378e0             65 73 20 29 20 64 6f 20 20 20 20 69 6e 63 20 28 20 70 29 3b 0a 20 20 66 69 6e 64 5f 66 69 6c 65   ┆es ) do    inc ( p);   find_file┆
0x0378e0…037900             3a 3d 20 70 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 52 4f 43 45 44 55 52 45 20 69 6f 63 68 65 63 6b   ┆:= p   end;    PROCEDURE iocheck┆
0x037900…037920             20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 72 3a 20 77 6f 72 64 29 3b   ┆ ( VAR datf: datafile; r: word);┆
0x037920…037940             0a 56 41 52 0a 20 20 70 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 49 46 20 69 6f 73 74 73   ┆ VAR   p: word; BEGIN   IF iosts┆
0x037940…037960             3c 3e 30 20 54 48 45 4e 0a 20 20 57 49 54 48 20 64 61 74 66 20 44 4f 0a 20 20 42 45 47 49 4e 0a   ┆<>0 THEN   WITH datf DO   BEGIN ┆
0x037960…037980             20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65   ┆    writeln ( output);     write┆
0x037980…0379a0             20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 20 50 6f 6c 79 46 69 6c 65 20 49 2f 4f 20 45 72 72 6f   ┆ ( output, '** PolyFile I/O Erro┆
0x0379a0…0379c0             72 20 27 2c 20 69 6f 73 74 73 2c 20 27 27 3a 33 20 29 3b 0a 0a 20 20 63 61 73 65 20 69 6f 73 74   ┆r ', iosts, '':3 );    case iost┆
0x0379c0…0379e0             73 20 6f 66 0a 20 20 20 20 32 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 46   ┆s of     2: writeln ( output, 'F┆
0x0379e0…037a00             69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 20 20 20 20 33 3a 20 77 72 69 74 65 6c 6e 20   ┆ile not found');     3: writeln ┆
0x037a00…037a20 (14, 1, 11) 28 20 6f 75 74 70 75 74 2c 20 27 50 61 74 68 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 20 20 20   ┆( output, 'Path not found');    ┆
0x037a20…037a40             20 34 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 54 6f 6f 20 6d 61 6e 79 20   ┆ 4: writeln ( output, 'Too many ┆
0x037a40…037a60             6f 70 65 6e 20 66 69 6c 65 73 27 29 3b 0a 20 20 20 20 35 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆open files');     5: writeln ( o┆
0x037a60…037a80             75 74 70 75 74 2c 20 27 46 69 6c 65 20 61 63 63 65 73 73 20 64 65 6e 69 65 64 27 29 3b 0a 20 20   ┆utput, 'File access denied');   ┆
0x037a80…037aa0             20 20 36 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c 69 64 20   ┆  6: writeln ( output, 'Invalid ┆
0x037aa0…037ac0             66 69 6c 65 20 68 61 6e 64 6c 65 27 29 3b 0a 20 20 20 20 31 32 3a 77 72 69 74 65 6c 6e 20 28 20   ┆file handle');     12:writeln ( ┆
0x037ac0…037ae0             6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c 69 64 20 66 69 6c 65 20 61 63 63 65 73 73 20 63 6f 64   ┆output, 'Invalid file access cod┆
0x037ae0…037b00             65 27 29 3b 0a 20 20 20 20 31 30 30 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 52   ┆e');     100:writeln ( output,'R┆
0x037b00…037b20             65 61 64 20 70 61 73 74 20 65 6e 64 20 6f 66 20 66 69 6c 65 27 29 3b 0a 20 20 20 20 31 30 31 3a   ┆ead past end of file');     101:┆
0x037b20…037b40             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 44 69 73 6b 20 66 75 6c 6c 27 29 3b 0a 20   ┆writeln ( output,'Disk full');  ┆
0x037b40…037b60             20 20 20 31 30 32 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 46 69 6c 65 20 6e 6f   ┆   102:writeln ( output,'File no┆
0x037b60…037b80             74 20 61 73 73 69 67 6e 65 64 27 29 3b 0a 20 20 20 20 31 30 33 3a 77 72 69 74 65 6c 6e 20 28 20   ┆t assigned');     103:writeln ( ┆
0x037b80…037ba0             6f 75 74 70 75 74 2c 27 46 69 6c 65 20 6e 6f 74 20 6f 70 65 6e 27 29 3b 0a 20 20 20 20 31 30 34   ┆output,'File not open');     104┆
0x037ba0…037bc0             2c 0a 20 20 20 20 31 30 35 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 46 69 6c 65   ┆,     105:writeln ( output,'File┆
0x037bc0…037be0             20 6f 70 65 6e 65 64 20 69 6e 20 62 61 64 20 6d 6f 64 65 27 29 3b 0a 20 20 20 20 31 30 36 3a 77   ┆ opened in bad mode');     106:w┆
0x037be0…037c00             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 49 6e 76 61 6c 69 64 20 6e 75 6d 65 72 69 63   ┆riteln ( output,'Invalid numeric┆
0x037c00…037c20 (14, 1, 12) 20 66 6f 72 6d 61 74 27 29 3b 0a 20 20 20 20 32 30 30 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆ format');     200:writeln ( out┆
0x037c20…037c40             70 75 74 2c 27 44 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 27 29 3b 0a 20 20 20 20 32 30 31   ┆put,'Division by zero');     201┆
0x037c40…037c60             3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 4f 75 74 20 6f 66 20 72 61 6e 67 65 27   ┆:writeln ( output,'Out of range'┆
0x037c60…037c80             29 3b 0a 20 20 20 20 32 30 32 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 53 74 61   ┆);     202:writeln ( output,'Sta┆
0x037c80…037ca0             63 6b 20 6f 76 65 72 66 6c 6f 77 27 29 3b 0a 20 20 20 20 32 30 33 3a 77 72 69 74 65 6c 6e 20 28   ┆ck overflow');     203:writeln (┆
0x037ca0…037cc0             20 6f 75 74 70 75 74 2c 27 48 65 61 70 20 6f 76 65 72 66 6c 6f 77 27 29 3b 0a 20 20 20 20 32 30   ┆ output,'Heap overflow');     20┆
0x037cc0…037ce0             34 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 49 6e 76 61 6c 69 64 20 70 6f 69 6e   ┆4:writeln ( output,'Invalid poin┆
0x037ce0…037d00             74 65 72 20 6f 70 65 72 61 74 69 6f 6e 27 29 3b 0a 20 20 20 20 32 30 35 2c 0a 20 20 20 20 32 30   ┆ter operation');     205,     20┆
0x037d00…037d20             36 2c 0a 20 20 20 20 32 30 37 3a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 27 46 6c 6f   ┆6,     207:writeln ( output,'Flo┆
0x037d20…037d40             61 74 69 6e 67 20 70 6f 69 6e 74 20 65 72 72 6f 72 27 29 3b 0a 20 20 20 20 32 35 30 3a 77 72 69   ┆ating point error');     250:wri┆
0x037d40…037d60             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 42 72 65 61 6b 20 62 79 20 6f 70 65 72 61 74 6f   ┆teln ( output, 'Break by operato┆
0x037d60…037d80             72 2e 27 29 3b 0a 20 20 20 20 65 6c 73 65 20 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 20 20 77 72 69   ┆r.');     else ;   end;      wri┆
0x037d80…037da0             74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 46 69 6c 65 20 27 29 3b 20 70 3a 3d 30 3b 0a 20 20 20   ┆te ( output, 'File '); p:=0;    ┆
0x037da0…037dc0             20 57 48 49 4c 45 20 66 69 6c 65 64 65 73 2e 6e 61 6d 65 5b 70 5d 3c 3e 20 23 30 30 20 44 4f 0a   ┆ WHILE filedes.name[p]<> #00 DO ┆
0x037dc0…037de0             20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20   ┆    BEGIN       write ( output, ┆
0x037de0…037e00             66 69 6c 65 64 65 73 2e 6e 61 6d 65 5b 70 5d 29 3b 20 70 3a 3d 70 2b 31 3b 0a 20 20 20 20 45 4e   ┆filedes.name[p]); p:=p+1;     EN┆
0x037e00…037e20 (14, 1, 13) 44 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72   ┆D;     writeln ( output);     wr┆
0x037e20…037e40             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 52 65 63 6f 72 64 20 27 2c 72 29 3b 0a 0a   ┆iteln ( output, ' Record ',r);  ┆
0x037e40…037e60             20 20 20 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 6d 61 78 66 69 6c 65 73 20 64 6f 0a 20 20 20   ┆    for p:= 1 to maxfiles do    ┆
0x037e60…037e80             20 20 20 69 66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 20 3c 3e 20 6e 69 6c 20 74 68 65 6e 0a   ┆   if file_table[p] <> nil then ┆
0x037e80…037ea0             20 20 20 20 20 20 69 66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 5e 2e 66 69 6c 65 64 65 73 2e   ┆      if file_table[p]^.filedes.┆
0x037ea0…037ec0             6d 6f 64 65 20 3d 20 66 6d 69 6e 6f 75 74 20 74 68 65 6e 0a 09 63 6c 6f 73 65 20 28 20 66 69 6c   ┆mode = fminout then  close ( fil┆
0x037ec0…037ee0             65 5f 74 61 62 6c 65 5b 70 5d 5e 2e 66 29 3b 0a 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆e_table[p]^.f);      writeln ( o┆
0x037ee0…037f00             75 74 70 75 74 2c 20 27 20 50 72 6f 67 72 61 6d 20 74 65 72 6d 69 6e 61 74 65 64 2e 27 29 3b 0a   ┆utput, ' Program terminated.'); ┆
0x037f00…037f20             20 20 20 20 68 61 6c 74 20 28 20 69 6f 73 74 73 29 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a   ┆    halt ( iosts);   END; END;  ┆
0x037f20…037f40             0a 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 74 69 6e 64 65 78 3b 0a 56 41 52 0a 20 20 69 3a 20   ┆  PROCEDURE initindex; VAR   i: ┆
0x037f40…037f60             77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6e 62 75 66 73 69   ┆word; BEGIN   FOR i:=1 TO nbufsi┆
0x037f60…037f80             7a 65 20 44 4f 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 70 5f 6e 62 75 66 5f 70 5e 5b 69 5d   ┆ze DO     BEGIN     p_nbuf_p^[i]┆
0x037f80…037fa0             2e 69 66 70 3a 3d 4e 49 4c 3b 0a 20 20 20 20 70 5f 6e 62 75 66 5f 70 5e 5b 69 5d 2e 75 70 64 3a   ┆.ifp:=NIL;     p_nbuf_p^[i].upd:┆
0x037fa0…037fc0             3d 66 61 6c 73 65 3b 0a 20 20 20 20 70 5f 6e 6d 61 70 5b 69 5d 3a 3d 69 3b 0a 20 20 20 20 45 4e   ┆=false;     p_nmap[i]:=i;     EN┆
0x037fc0…037fe0             44 3b 0a 45 4e 44 3b 0a 0a 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 6f 6c 79 66 69 6c 65 5f 63 6f   ┆D; END;    PROCEDURE polyfile_co┆
0x037fe0…038000             6e 66 69 67 20 28 20 6d 61 78 5f 72 65 63 5f 73 69 7a 65 2c 20 6d 61 78 5f 6b 65 79 5f 73 69 7a   ┆nfig ( max_rec_size, max_key_siz┆
0x038000…038020 (14, 1, 14) 65 2c 0a 09 20 20 20 6e 6f 64 65 5f 73 69 7a 65 2c 20 6e 6f 64 65 5f 62 75 66 5f 73 69 7a 65 2c   ┆e,     node_size, node_buf_size,┆
0x038020…038040             20 6d 61 78 5f 64 65 70 74 68 20 3a 20 77 6f 72 64 20 29 3b 0a 28 2a 0a 2d 2d 09 55 73 65 64 20   ┆ max_depth : word ); (* -- Used ┆
0x038040…038060             74 6f 20 72 65 73 65 72 76 65 20 77 6f 72 6b 69 6e 67 20 76 61 72 69 61 62 6c 65 73 20 6f 6e 20   ┆to reserve working variables on ┆
0x038060…038080             74 68 65 20 68 65 61 70 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 6d 2e 0a 2d 2d   ┆the heap and initialize them. --┆
0x038080…0380a0             0a 2d 2d 20 20 20 20 20 20 6d 61 78 5f 72 65 63 5f 73 69 7a 65 3a 09 6d 61 78 20 72 65 63 6f 72   ┆ --      max_rec_size: max recor┆
0x0380a0…0380c0             64 20 73 69 7a 65 20 69 6e 20 62 79 74 65 73 2e 20 20 28 20 38 2e 2e 36 35 30 30 30 20 29 0a 2d   ┆d size in bytes.  ( 8..65000 ) -┆
0x0380c0…0380e0             2d 20 20 20 20 20 20 6d 61 78 5f 6b 65 79 5f 73 69 7a 65 3a 20 20 20 6b 65 79 6c 65 6e 67 74 68   ┆-      max_key_size:   keylength┆
0x0380e0…038100             20 69 6e 20 63 68 61 72 73 09 28 20 31 2e 2e 20 32 30 20 29 0a 2d 2d 20 20 20 20 20 20 6e 6f 64   ┆ in chars ( 1.. 20 ) --      nod┆
0x038100…038120             65 5f 73 69 7a 65 3a 09 6e 6f 20 6f 66 20 6b 65 79 20 65 6e 74 72 69 65 73 20 70 72 20 69 6e 64   ┆e_size: no of key entries pr ind┆
0x038120…038140             65 78 20 66 69 6c 65 20 72 65 63 6f 72 64 20 28 20 34 2e 2e 36 34 2c 20 65 76 65 6e 29 0a 2d 2d   ┆ex file record ( 4..64, even) --┆
0x038140…038160             20 20 20 20 20 20 6e 6f 64 65 5f 62 75 66 5f 73 69 7a 65 3a 09 6e 6f 20 6f 66 20 6e 6f 64 65 73   ┆      node_buf_size: no of nodes┆
0x038160…038180             20 69 6e 20 6d 65 6d 6f 72 79 09 28 20 33 2e 2e 34 30 20 29 0a 2d 2d 20 20 20 20 20 20 6d 61 78   ┆ in memory ( 3..40 ) --      max┆
0x038180…0381a0             5f 64 65 70 74 68 3a 09 6d 61 78 20 64 65 70 74 68 20 6f 66 20 69 6e 64 65 78 20 73 74 72 75 63   ┆_depth: max depth of index struc┆
0x0381a0…0381c0             74 75 72 65 2c 20 75 73 75 61 6c 20 34 2e 2e 36 20 28 20 33 2e 2e 31 30 20 29 0a 2d 2d 20 20 20   ┆ture, usual 4..6 ( 3..10 ) --   ┆
0x0381c0…0381e0             20 20 20 52 65 74 75 72 6e 3a 20 20 20 20 73 75 63 63 65 73 73 20 69 73 20 73 65 74 20 74 6f 20   ┆   Return:    success is set to ┆
0x0381e0…038200             66 61 6c 73 65 20 69 66 20 72 65 73 65 72 76 61 74 69 6f 6e 20 77 61 73 20 69 6d 70 6f 73 73 69   ┆false if reservation was impossi┆
0x038200…038220 (14, 1, 15) 62 6c 65 0a 2d 2d 20 20 46 75 72 74 68 65 72 20 64 65 74 61 69 6c 73 20 69 6e 20 50 6f 6c 79 46   ┆ble --  Further details in PolyF┆
0x038220…038240             69 6c 65 20 52 65 66 65 72 65 6e 63 65 20 4d 61 6e 75 61 6c 0a 2d 2d 20 20 20 20 20 20 67 6c 6f   ┆ile Reference Manual --      glo┆
0x038240…038260             62 61 6c 73 3a 20 20 73 69 7a 65 5f 6f 66 5f 6e 62 75 66 2c 20 73 69 7a 65 5f 6f 66 5f 72 62 75   ┆bals:  size_of_nbuf, size_of_rbu┆
0x038260…038280             66 0a 2a 29 0a 20 20 76 61 72 0a 20 20 20 20 20 70 2c 20 73 69 7a 65 5f 6f 66 5f 6e 62 66 72 65   ┆f *)   var      p, size_of_nbfre┆
0x038280…0382a0             63 20 20 3a 20 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 73 75 63 63 65 73 73 3a 3d 20   ┆c  :  word;   begin   success:= ┆
0x0382a0…0382c0             66 61 6c 73 65 3b 0a 20 20 69 66 20 6d 61 78 5f 72 65 63 5f 73 69 7a 65 20 3c 20 38 20 74 68 65   ┆false;   if max_rec_size < 8 the┆
0x0382c0…0382e0             6e 20 6d 61 78 72 73 69 7a 65 3a 3d 20 38 20 20 65 6c 73 65 0a 20 20 20 20 6d 61 78 72 73 69 7a   ┆n maxrsize:= 8  else     maxrsiz┆
0x0382e0…038300             65 3a 3d 20 6d 61 78 5f 72 65 63 5f 73 69 7a 65 3b 0a 0a 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 20   ┆e:= max_rec_size;    (*-------- ┆
0x038300…038320             20 6d 61 78 6b 73 69 7a 65 20 3d 20 33 30 20 20 63 61 6e 6e 6f 74 20 62 65 20 63 68 61 6e 67 65   ┆ maxksize = 30  cannot be change┆
0x038320…038340             64 20 69 6e 20 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 20 20 38 39 2e 31 30 2e 32 34 0a 20   ┆d in present version  89.10.24  ┆
0x038340…038360             20 6d 61 78 6b 73 69 7a 65 3a 3d 20 6d 61 78 5f 6b 65 79 5f 73 69 7a 65 20 61 6e 64 20 32 35 35   ┆ maxksize:= max_key_size and 255┆
0x038360…038380             3b 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 20 20 6e 6f 64 65 73 69 7a 65 3a 3d 20 6e   ┆;   ----------*)    nodesize:= n┆
0x038380…0383a0             6f 64 65 5f 73 69 7a 65 20 61 6e 64 20 32 35 34 3b 20 20 20 28 2a 20 20 65 76 65 6e 20 20 2a 29   ┆ode_size and 254;   (*  even  *)┆
0x0383a0…0383c0             0a 20 20 69 66 20 6e 6f 64 65 73 69 7a 65 20 3e 20 6d 61 78 5f 6e 6f 64 65 73 69 7a 65 20 74 68   ┆   if nodesize > max_nodesize th┆
0x0383c0…0383e0             65 6e 20 6e 6f 64 65 73 69 7a 65 3a 3d 20 6d 61 78 5f 6e 6f 64 65 73 69 7a 65 3b 0a 20 20 6e 6f   ┆en nodesize:= max_nodesize;   no┆
0x0383e0…038400             64 65 68 61 6c 66 3a 3d 20 6e 6f 64 65 73 69 7a 65 20 73 68 72 20 31 3b 0a 20 20 69 66 20 6e 6f   ┆dehalf:= nodesize shr 1;   if no┆
0x038400…038420 (15, 0, 1)  64 65 5f 62 75 66 5f 73 69 7a 65 20 3c 20 33 20 74 68 65 6e 20 6e 62 75 66 73 69 7a 65 3a 3d 20   ┆de_buf_size < 3 then nbufsize:= ┆
0x038420…038440             33 20 20 65 6c 73 65 20 6e 62 75 66 73 69 7a 65 3a 3d 20 6e 6f 64 65 5f 62 75 66 5f 73 69 7a 65   ┆3  else nbufsize:= node_buf_size┆
0x038440…038460             3b 0a 20 20 69 66 20 6e 62 75 66 73 69 7a 65 20 3e 20 6d 61 78 5f 6e 62 75 66 73 69 7a 65 20 74   ┆;   if nbufsize > max_nbufsize t┆
0x038460…038480             68 65 6e 20 6e 62 75 66 73 69 7a 65 3a 3d 20 6d 61 78 5f 6e 62 75 66 73 69 7a 65 3b 0a 20 20 69   ┆hen nbufsize:= max_nbufsize;   i┆
0x038480…0384a0             66 20 6d 61 78 5f 64 65 70 74 68 20 3e 20 6d 61 78 5f 6d 61 78 64 65 70 74 68 20 74 68 65 6e 20   ┆f max_depth > max_maxdepth then ┆
0x0384a0…0384c0             6d 61 78 64 65 70 74 68 3a 3d 20 6d 61 78 5f 6d 61 78 64 65 70 74 68 0a 20 20 65 6c 73 65 20 6d   ┆maxdepth:= max_maxdepth   else m┆
0x0384c0…0384e0             61 78 64 65 70 74 68 3a 3d 20 6d 61 78 5f 64 65 70 74 68 3b 0a 0a 20 20 73 69 7a 65 5f 6f 66 5f   ┆axdepth:= max_depth;    size_of_┆
0x0384e0…038500             6e 62 66 72 65 63 3a 3d 20 37 20 2b 20 33 20 2b 20 6e 6f 64 65 73 69 7a 65 20 2a 20 28 20 6d 61   ┆nbfrec:= 7 + 3 + nodesize * ( ma┆
0x038500…038520             78 6b 73 69 7a 65 20 2b 20 35 29 3b 0a 20 20 70 3a 3d 20 6e 62 75 66 73 69 7a 65 20 2a 20 73 69   ┆xksize + 5);   p:= nbufsize * si┆
0x038520…038540             7a 65 5f 6f 66 5f 6e 62 66 72 65 63 3b 0a 0a 20 20 69 66 20 6d 61 78 61 76 61 69 6c 20 3c 20 70   ┆ze_of_nbfrec;    if maxavail < p┆
0x038540…038560             20 74 68 65 6e 20 65 78 69 74 20 65 6c 73 65 20 20 73 69 7a 65 5f 6f 66 5f 6e 62 75 66 3a 3d 20   ┆ then exit else  size_of_nbuf:= ┆
0x038560…038580             70 3b 0a 20 20 67 65 74 6d 65 6d 20 28 20 70 5f 6e 62 75 66 5f 70 2c 20 73 69 7a 65 5f 6f 66 5f   ┆p;   getmem ( p_nbuf_p, size_of_┆
0x038580…0385a0             6e 62 75 66 29 3b 0a 20 20 66 69 6c 6c 63 68 61 72 20 28 20 70 5f 6e 62 75 66 5f 70 5e 2c 20 73   ┆nbuf);   fillchar ( p_nbuf_p^, s┆
0x0385a0…0385c0             69 7a 65 5f 6f 66 5f 6e 62 75 66 2c 20 30 29 3b 0a 0a 20 20 69 66 20 6d 61 78 72 73 69 7a 65 20   ┆ize_of_nbuf, 0);    if maxrsize ┆
0x0385c0…0385e0             3e 20 73 69 7a 65 5f 6f 66 5f 6e 62 66 72 65 63 20 74 68 65 6e 20 70 3a 3d 20 6d 61 78 72 73 69   ┆> size_of_nbfrec then p:= maxrsi┆
0x0385e0…038600             7a 65 20 20 65 6c 73 65 20 70 3a 3d 20 73 69 7a 65 5f 6f 66 5f 6e 62 66 72 65 63 3b 0a 20 20 69   ┆ze  else p:= size_of_nbfrec;   i┆
0x038600…038620 (15, 0, 2)  66 20 6d 61 78 61 76 61 69 6c 20 3c 20 70 20 74 68 65 6e 20 65 78 69 74 20 65 6c 73 65 20 73 69   ┆f maxavail < p then exit else si┆
0x038620…038640             7a 65 5f 6f 66 5f 72 62 75 66 3a 3d 20 70 3b 0a 20 20 67 65 74 6d 65 6d 20 28 20 70 5f 72 62 75   ┆ze_of_rbuf:= p;   getmem ( p_rbu┆
0x038640…038660             66 5f 70 2c 20 73 69 7a 65 5f 6f 66 5f 72 62 75 66 29 3b 0a 20 20 66 69 6c 6c 63 68 61 72 20 28   ┆f_p, size_of_rbuf);   fillchar (┆
0x038660…038680             20 70 5f 72 62 75 66 5f 70 5e 2c 20 73 69 7a 65 5f 6f 66 5f 72 62 75 66 2c 20 30 29 3b 0a 0a 0a   ┆ p_rbuf_p^, size_of_rbuf, 0);   ┆
0x038680…0386a0             20 20 69 6e 69 74 69 6e 64 65 78 3b 0a 0a 20 20 73 75 63 63 65 73 73 3a 3d 20 74 72 75 65 3b 0a   ┆  initindex;    success:= true; ┆
0x0386a0…0386c0             20 20 65 6e 64 3b 20 20 28 2a 20 20 70 6f 6c 79 66 69 6c 65 20 63 6f 6e 66 69 67 20 20 2a 29 0a   ┆  end;  (*  polyfile config  *) ┆
0x0386c0…0386e0             0a 0a 0a 0a 50 52 4f 43 45 44 55 52 45 20 67 65 74 72 65 63 20 28 20 56 41 52 20 64 61 74 66 3a   ┆    PROCEDURE getrec ( VAR datf:┆
0x0386e0…038700             20 64 61 74 61 66 69 6c 65 3b 20 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 62 75 66 66 65 72 29 3b   ┆ datafile; r: word; VAR buffer);┆
0x038700…038720             0a 56 41 52 0a 20 20 6e 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 73 65 65 6b 20 28 20 64   ┆ VAR   n: word; BEGIN   seek ( d┆
0x038720…038740             61 74 66 2e 66 2c 72 29 3b 20 62 6c 6f 63 6b 72 65 61 64 20 28 20 64 61 74 66 2e 66 2c 62 75 66   ┆atf.f,r); blockread ( datf.f,buf┆
0x038740…038760             66 65 72 2c 31 2c 6e 29 3b 0a 20 20 49 46 20 6e 3d 30 20 54 48 45 4e 20 69 6f 73 74 73 3a 3d 20   ┆fer,1,n);   IF n=0 THEN iosts:= ┆
0x038760…038780             70 61 73 74 5f 65 6f 66 20 45 4c 53 45 20 69 6f 73 74 73 3a 3d 69 6f 72 65 73 75 6c 74 3b 0a 20   ┆past_eof ELSE iosts:=ioresult;  ┆
0x038780…0387a0             20 69 66 20 69 6f 73 74 73 20 3c 3e 20 30 20 74 68 65 6e 20 69 6f 63 68 65 63 6b 20 28 20 64 61   ┆ if iosts <> 0 then iocheck ( da┆
0x0387a0…0387c0             74 66 2c 72 29 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 75 74 72 65 63 20 28 20   ┆tf,r); END;  PROCEDURE putrec ( ┆
0x0387c0…0387e0             56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 72 3a 20 77 6f 72 64 3b 20 56 41 52   ┆VAR datf: datafile; r: word; VAR┆
0x0387e0…038800             20 62 75 66 66 65 72 29 3b 0a 56 41 52 0a 20 20 6e 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20   ┆ buffer); VAR   n: word; BEGIN  ┆
0x038800…038820 (15, 0, 3)  20 73 65 65 6b 20 28 20 64 61 74 66 2e 66 2c 72 29 3b 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20   ┆ seek ( datf.f,r); blockwrite ( ┆
0x038820…038840             64 61 74 66 2e 66 2c 62 75 66 66 65 72 2c 31 2c 6e 29 3b 0a 20 20 49 46 20 6e 3d 30 20 54 48 45   ┆datf.f,buffer,1,n);   IF n=0 THE┆
0x038840…038860             4e 20 69 6f 73 74 73 3a 3d 20 64 69 73 6b 5f 66 75 6c 6c 20 45 4c 53 45 20 69 6f 73 74 73 3a 3d   ┆N iosts:= disk_full ELSE iosts:=┆
0x038860…038880             69 6f 72 65 73 75 6c 74 3b 0a 20 20 69 66 20 69 6f 73 74 73 20 3c 3e 20 30 20 74 68 65 6e 20 69   ┆ioresult;   if iosts <> 0 then i┆
0x038880…0388a0             6f 63 68 65 63 6b 20 28 20 64 61 74 66 2c 72 29 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52   ┆ocheck ( datf,r); END;  PROCEDUR┆
0x0388a0…0388c0             45 20 6d 61 6b 65 66 69 6c 65 20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b   ┆E makefile ( VAR datf: datafile;┆
0x0388c0…0388e0             20 66 6e 61 6d 3a 20 70 61 74 68 73 74 72 3b 20 72 65 63 6c 65 6e 3a 20 77 6f 72 64 29 3b 0a 42   ┆ fnam: pathstr; reclen: word); B┆
0x0388e0…038900             45 47 49 4e 0a 20 20 61 73 73 69 67 6e 20 28 20 64 61 74 66 2e 66 2c 66 6e 61 6d 29 3b 20 72 65   ┆EGIN   assign ( datf.f,fnam); re┆
0x038900…038920             77 72 69 74 65 20 28 20 64 61 74 66 2e 66 2c 72 65 63 6c 65 6e 29 3b 20 69 6f 73 74 73 3a 3d 69   ┆write ( datf.f,reclen); iosts:=i┆
0x038920…038940             6f 72 65 73 75 6c 74 3b 0a 20 20 49 46 20 69 6f 73 74 73 3d 20 61 63 63 65 73 73 5f 64 65 6e 69   ┆oresult;   IF iosts= access_deni┆
0x038940…038960             65 64 20 54 48 45 4e 20 73 75 63 63 65 73 73 3a 3d 66 61 6c 73 65 20 45 4c 53 45 0a 20 20 42 45   ┆ed THEN success:=false ELSE   BE┆
0x038960…038980             47 49 4e 0a 20 20 20 20 66 69 6c 65 5f 74 61 62 6c 65 5b 66 69 6e 64 5f 66 69 6c 65 20 28 20 6e   ┆GIN     file_table[find_file ( n┆
0x038980…0389a0             69 6c 29 5d 3a 3d 20 61 64 64 72 20 28 20 64 61 74 66 2e 66 29 3b 0a 20 20 20 20 69 6f 63 68 65   ┆il)]:= addr ( datf.f);     ioche┆
0x0389a0…0389c0             63 6b 20 28 20 64 61 74 66 2c 30 29 3b 0a 20 20 20 20 64 61 74 66 2e 66 66 72 65 3a 3d 24 46 46   ┆ck ( datf,0);     datf.ffre:=$FF┆
0x0389c0…0389e0             46 46 3b 20 64 61 74 66 2e 6e 66 72 65 3a 3d 30 3b 0a 20 20 20 20 64 61 74 66 2e 69 6e 74 31 3a   ┆FF; datf.nfre:=0;     datf.int1:┆
0x0389e0…038a00             3d 30 3b 20 64 61 74 66 2e 69 6e 74 32 3a 3d 30 3b 0a 20 20 20 20 6d 6f 76 65 20 28 20 64 61 74   ┆=0; datf.int2:=0;     move ( dat┆
0x038a00…038a20 (15, 0, 4)  66 2e 66 66 72 65 2c 70 5f 72 62 75 66 5f 70 5e 2c 38 29 3b 20 70 75 74 72 65 63 20 28 20 64 61   ┆f.ffre,p_rbuf_p^,8); putrec ( da┆
0x038a20…038a40             74 66 2c 30 2c 70 5f 72 62 75 66 5f 70 5e 29 3b 0a 20 20 20 20 64 61 74 66 2e 6e 72 65 63 3a 3d   ┆tf,0,p_rbuf_p^);     datf.nrec:=┆
0x038a40…038a60             31 3b 20 73 75 63 63 65 73 73 3a 3d 74 72 75 65 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 50   ┆1; success:=true;   END; END;  P┆
0x038a60…038a80             52 4f 43 45 44 55 52 45 20 6f 70 65 6e 66 69 6c 65 20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61   ┆ROCEDURE openfile ( VAR datf: da┆
0x038a80…038aa0             74 61 66 69 6c 65 3b 20 66 6e 61 6d 3a 20 70 61 74 68 73 74 72 3b 20 72 65 63 6c 65 6e 3a 20 77   ┆tafile; fnam: pathstr; reclen: w┆
0x038aa0…038ac0             6f 72 64 29 3b 0a 42 45 47 49 4e 0a 20 20 61 73 73 69 67 6e 20 28 20 64 61 74 66 2e 66 2c 66 6e   ┆ord); BEGIN   assign ( datf.f,fn┆
0x038ac0…038ae0             61 6d 29 3b 20 72 65 73 65 74 20 28 20 64 61 74 66 2e 66 2c 72 65 63 6c 65 6e 29 3b 20 69 6f 73   ┆am); reset ( datf.f,reclen); ios┆
0x038ae0…038b00             74 73 3a 3d 69 6f 72 65 73 75 6c 74 3b 0a 20 20 49 46 20 69 6f 73 74 73 3d 20 66 69 6c 65 5f 6e   ┆ts:=ioresult;   IF iosts= file_n┆
0x038b00…038b20             6f 74 5f 66 6f 75 6e 64 20 54 48 45 4e 20 73 75 63 63 65 73 73 3a 3d 66 61 6c 73 65 20 45 4c 53   ┆ot_found THEN success:=false ELS┆
0x038b20…038b40             45 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 66 69 6c 65 5f 74 61 62 6c 65 5b 66 69 6e 64 5f 66 69   ┆E   BEGIN     file_table[find_fi┆
0x038b40…038b60             6c 65 20 28 20 6e 69 6c 29 5d 3a 3d 20 61 64 64 72 20 28 20 64 61 74 66 2e 66 29 3b 0a 20 20 20   ┆le ( nil)]:= addr ( datf.f);    ┆
0x038b60…038b80             20 69 6f 63 68 65 63 6b 20 28 20 64 61 74 66 2c 30 29 3b 0a 20 20 20 20 67 65 74 72 65 63 20 28   ┆ iocheck ( datf,0);     getrec (┆
0x038b80…038ba0             20 64 61 74 66 2c 30 2c 70 5f 72 62 75 66 5f 70 5e 29 3b 20 6d 6f 76 65 20 28 20 70 5f 72 62 75   ┆ datf,0,p_rbuf_p^); move ( p_rbu┆
0x038ba0…038bc0             66 5f 70 5e 2c 64 61 74 66 2e 66 66 72 65 2c 38 29 3b 0a 20 20 20 20 64 61 74 66 2e 6e 72 65 63   ┆f_p^,datf.ffre,8);     datf.nrec┆
0x038bc0…038be0             3a 3d 20 66 69 6c 65 73 69 7a 65 20 28 20 64 61 74 66 2e 66 29 3b 20 73 75 63 63 65 73 73 3a 3d   ┆:= filesize ( datf.f); success:=┆
0x038be0…038c00             74 72 75 65 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 63 6c 6f   ┆true;   END; END;  PROCEDURE clo┆
0x038c00…038c20 (15, 0, 5)  73 65 66 69 6c 65 20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 29 3b 0a 42 45   ┆sefile ( VAR datf: datafile); BE┆
0x038c20…038c40             47 49 4e 0a 20 20 6d 6f 76 65 20 28 20 64 61 74 66 2e 66 66 72 65 2c 70 5f 72 62 75 66 5f 70 5e   ┆GIN   move ( datf.ffre,p_rbuf_p^┆
0x038c40…038c60             2c 38 29 3b 20 70 75 74 72 65 63 20 28 20 64 61 74 66 2c 30 2c 70 5f 72 62 75 66 5f 70 5e 29 3b   ┆,8); putrec ( datf,0,p_rbuf_p^);┆
0x038c60…038c80             0a 20 20 63 6c 6f 73 65 20 28 20 64 61 74 66 2e 66 29 3b 20 69 6f 73 74 73 3a 3d 69 6f 72 65 73   ┆   close ( datf.f); iosts:=iores┆
0x038c80…038ca0             75 6c 74 3b 20 69 6f 63 68 65 63 6b 20 28 20 64 61 74 66 2c 30 29 3b 0a 20 20 66 69 6c 65 5f 74   ┆ult; iocheck ( datf,0);   file_t┆
0x038ca0…038cc0             61 62 6c 65 5b 66 69 6e 64 5f 66 69 6c 65 20 28 20 61 64 64 72 28 20 64 61 74 66 2e 66 29 29 5d   ┆able[find_file ( addr( datf.f))]┆
0x038cc0…038ce0             3a 3d 20 6e 69 6c 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 5f 6e 65 77 72 20 28   ┆:= nil; END;  PROCEDURE p_newr (┆
0x038ce0…038d00             20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 56 41 52 20 72 3a 20 77 6f 72 64   ┆ VAR datf: datafile; VAR r: word┆
0x038d00…038d20             29 3b 0a 42 45 47 49 4e 0a 20 20 49 46 20 64 61 74 66 2e 66 66 72 65 3d 20 24 46 46 46 46 20 54   ┆); BEGIN   IF datf.ffre= $FFFF T┆
0x038d20…038d40             48 45 4e 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 72 3a 3d 64 61 74 66 2e 6e 72 65 63 3b 20 64 61   ┆HEN   BEGIN     r:=datf.nrec; da┆
0x038d40…038d60             74 66 2e 6e 72 65 63 3a 3d 64 61 74 66 2e 6e 72 65 63 2b 31 3b 0a 20 20 45 4e 44 20 45 4c 53 45   ┆tf.nrec:=datf.nrec+1;   END ELSE┆
0x038d60…038d80             0a 20 20 42 45 47 49 4e 0a 20 20 20 20 72 3a 3d 64 61 74 66 2e 66 66 72 65 3b 20 67 65 74 72 65   ┆   BEGIN     r:=datf.ffre; getre┆
0x038d80…038da0             63 20 28 20 64 61 74 66 2c 72 2c 70 5f 72 62 75 66 5f 70 5e 29 3b 0a 20 20 20 20 64 61 74 66 2e   ┆c ( datf,r,p_rbuf_p^);     datf.┆
0x038da0…038dc0             66 66 72 65 3a 3d 70 5f 72 62 75 66 5f 70 5e 2e 73 74 61 74 3b 20 64 61 74 66 2e 6e 66 72 65 3a   ┆ffre:=p_rbuf_p^.stat; datf.nfre:┆
0x038dc0…038de0             3d 64 61 74 66 2e 6e 66 72 65 2d 31 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45   ┆=datf.nfre-1;   END; END;  PROCE┆
0x038de0…038e00             44 55 52 45 20 61 64 64 72 65 63 20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65   ┆DURE addrec ( VAR datf: datafile┆
0x038e00…038e20 (15, 0, 6)  3b 20 56 41 52 20 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 62 75 66 66 65 72 29 3b 0a 42 45 47 49   ┆; VAR r: word; VAR buffer); BEGI┆
0x038e20…038e40             4e 0a 20 20 70 5f 6e 65 77 72 20 28 20 64 61 74 66 2c 72 29 3b 20 70 75 74 72 65 63 20 28 20 64   ┆N   p_newr ( datf,r); putrec ( d┆
0x038e40…038e60             61 74 66 2c 72 2c 62 75 66 66 65 72 29 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 64   ┆atf,r,buffer); END;  PROCEDURE d┆
0x038e60…038e80             65 6c 65 74 65 72 65 63 20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 3b 20 72   ┆eleterec ( VAR datf: datafile; r┆
0x038e80…038ea0             3a 20 77 6f 72 64 29 3b 0a 42 45 47 49 4e 0a 20 20 70 5f 72 62 75 66 5f 70 5e 2e 73 74 61 74 3a   ┆: word); BEGIN   p_rbuf_p^.stat:┆
0x038ea0…038ec0             3d 64 61 74 66 2e 66 66 72 65 3b 20 70 75 74 72 65 63 20 28 20 64 61 74 66 2c 72 2c 70 5f 72 62   ┆=datf.ffre; putrec ( datf,r,p_rb┆
0x038ec0…038ee0             75 66 5f 70 5e 29 3b 0a 20 20 64 61 74 66 2e 66 66 72 65 3a 3d 72 3b 20 64 61 74 66 2e 6e 66 72   ┆uf_p^);   datf.ffre:=r; datf.nfr┆
0x038ee0…038f00             65 3a 3d 64 61 74 66 2e 6e 66 72 65 2b 31 3b 0a 45 4e 44 3b 0a 0a 46 55 4e 43 54 49 4f 4e 20 66   ┆e:=datf.nfre+1; END;  FUNCTION f┆
0x038f00…038f20             69 6c 65 6c 65 6e 20 28 20 56 41 52 20 64 61 74 66 3a 20 64 61 74 61 66 69 6c 65 29 3a 20 77 6f   ┆ilelen ( VAR datf: datafile): wo┆
0x038f20…038f40             72 64 3b 0a 42 45 47 49 4e 0a 20 20 66 69 6c 65 6c 65 6e 3a 3d 64 61 74 66 2e 6e 72 65 63 3b 0a   ┆rd; BEGIN   filelen:=datf.nrec; ┆
0x038f40…038f60             45 4e 44 3b 0a 0a 46 55 4e 43 54 49 4f 4e 20 75 73 65 64 72 65 63 73 20 28 20 56 41 52 20 64 61   ┆END;  FUNCTION usedrecs ( VAR da┆
0x038f60…038f80             74 66 3a 20 64 61 74 61 66 69 6c 65 29 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 75 73 65   ┆tf: datafile): word; BEGIN   use┆
0x038f80…038fa0             64 72 65 63 73 3a 3d 64 61 74 66 2e 6e 72 65 63 2d 64 61 74 66 2e 6e 66 72 65 2d 31 3b 0a 45 4e   ┆drecs:=datf.nrec-datf.nfre-1; EN┆
0x038fa0…038fc0             44 3b 0a 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 5f 70 61 63 6b 20 28 20 56 41 52 20 6e 3a 20 70   ┆D;   PROCEDURE p_pack ( VAR n: p┆
0x038fc0…038fe0             5f 6e 6f 64 72 65 63 3b 20 6b 6c 65 6e 3a 20 77 6f 72 64 29 3b 0a 56 41 52 0a 20 20 69 3a 20 77   ┆_nodrec; klen: word); VAR   i: w┆
0x038fe0…039000             6f 72 64 3b 0a 20 20 70 3a 20 41 52 52 41 59 5b 30 2e 2e 6d 61 78 69 6e 74 5d 20 4f 46 20 62 79   ┆ord;   p: ARRAY[0..maxint] OF by┆
0x039000…039020 (15, 0, 7)  74 65 20 61 62 73 6f 6c 75 74 65 20 6e 3b 0a 42 45 47 49 4e 0a 20 20 49 46 20 6b 6c 65 6e 3c 3e   ┆te absolute n; BEGIN   IF klen<>┆
0x039020…039040             6d 61 78 6b 73 69 7a 65 20 54 48 45 4e 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6e 6f 64 65   ┆maxksize THEN   FOR i:=1 TO node┆
0x039040…039060             73 69 7a 65 20 44 4f 20 6d 6f 76 65 20 28 20 6e 2e 65 5b 69 5d 2c 70 5b 28 69 2d 31 29 2a 28 6b   ┆size DO move ( n.e[i],p[(i-1)*(k┆
0x039060…039080             6c 65 6e 2b 35 29 2b 33 5d 2c 6b 6c 65 6e 2b 35 29 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55   ┆len+5)+3],klen+5); END;  PROCEDU┆
0x039080…0390a0             52 45 20 70 5f 75 6e 70 61 63 6b 20 28 20 56 41 52 20 6e 3a 20 70 5f 6e 6f 64 72 65 63 3b 20 6b   ┆RE p_unpack ( VAR n: p_nodrec; k┆
0x0390a0…0390c0             6c 65 6e 3a 20 77 6f 72 64 29 3b 0a 56 41 52 0a 20 20 69 3a 20 77 6f 72 64 3b 0a 20 20 70 3a 20   ┆len: word); VAR   i: word;   p: ┆
0x0390c0…0390e0             41 52 52 41 59 5b 30 2e 2e 6d 61 78 69 6e 74 5d 20 4f 46 20 62 79 74 65 20 41 62 73 6f 6c 75 74   ┆ARRAY[0..maxint] OF byte Absolut┆
0x0390e0…039100             65 20 6e 3b 0a 42 45 47 49 4e 0a 20 20 49 46 20 6b 6c 65 6e 3c 3e 6d 61 78 6b 73 69 7a 65 20 54   ┆e n; BEGIN   IF klen<>maxksize T┆
0x039100…039120             48 45 4e 0a 20 20 46 4f 52 20 69 3a 3d 6e 6f 64 65 73 69 7a 65 20 44 4f 57 4e 54 4f 20 31 20 44   ┆HEN   FOR i:=nodesize DOWNTO 1 D┆
0x039120…039140             4f 20 6d 6f 76 65 20 28 20 70 5b 28 69 2d 31 29 2a 28 6b 6c 65 6e 2b 35 29 2b 33 5d 2c 6e 2e 65   ┆O move ( p[(i-1)*(klen+5)+3],n.e┆
0x039140…039160             5b 69 5d 2c 6b 6c 65 6e 2b 35 29 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 6d 61 6b   ┆[i],klen+5); END;  PROCEDURE mak┆
0x039160…039180             65 69 6e 64 65 78 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 66 6e   ┆eindex ( VAR idxf: indexfile; fn┆
0x039180…0391a0             61 6d 3a 20 70 61 74 68 73 74 72 3b 20 6b 65 79 6c 65 6e 2c 73 3a 20 77 6f 72 64 29 3b 0a 56 41   ┆am: pathstr; keylen,s: word); VA┆
0x0391a0…0391c0             52 0a 20 20 6b 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 6b 3a 3d 28 6b 65 79 6c 65 6e 2b   ┆R   k: word; BEGIN   k:=(keylen+┆
0x0391c0…0391e0             35 29 2a 6e 6f 64 65 73 69 7a 65 2b 33 3b 0a 20 20 6d 61 6b 65 66 69 6c 65 20 28 20 69 64 78 66   ┆5)*nodesize+3;   makefile ( idxf┆
0x0391e0…039200             2e 64 2c 66 6e 61 6d 2c 6b 29 3b 0a 20 20 69 64 78 66 2e 64 75 70 6b 65 79 3a 3d 73 3c 3e 30 3b   ┆.d,fnam,k);   idxf.dupkey:=s<>0;┆
0x039200…039220 (15, 0, 8)  20 69 64 78 66 2e 6b 6c 65 6e 3a 3d 6b 65 79 6c 65 6e 3b 0a 20 20 69 64 78 66 2e 72 72 3a 3d 30   ┆ idxf.klen:=keylen;   idxf.rr:=0┆
0x039220…039240             3b 20 69 64 78 66 2e 70 70 3a 3d 30 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 6f 70   ┆; idxf.pp:=0; END;  PROCEDURE op┆
0x039240…039260             65 6e 69 6e 64 65 78 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 66   ┆enindex ( VAR idxf: indexfile; f┆
0x039260…039280             6e 61 6d 3a 20 70 61 74 68 73 74 72 3b 20 6b 65 79 6c 65 6e 2c 73 3a 20 77 6f 72 64 29 3b 0a 56   ┆nam: pathstr; keylen,s: word); V┆
0x039280…0392a0             41 52 0a 20 20 6b 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 6b 3a 3d 28 6b 65 79 6c 65 6e   ┆AR   k: word; BEGIN   k:=(keylen┆
0x0392a0…0392c0             2b 35 29 2a 6e 6f 64 65 73 69 7a 65 2b 33 3b 0a 20 20 6f 70 65 6e 66 69 6c 65 20 28 20 69 64 78   ┆+5)*nodesize+3;   openfile ( idx┆
0x0392c0…0392e0             66 2e 64 2c 66 6e 61 6d 2c 6b 29 3b 0a 20 20 69 64 78 66 2e 64 75 70 6b 65 79 3a 3d 73 3c 3e 30   ┆f.d,fnam,k);   idxf.dupkey:=s<>0┆
0x0392e0…039300             3b 20 69 64 78 66 2e 6b 6c 65 6e 3a 3d 6b 65 79 6c 65 6e 3b 0a 20 20 69 64 78 66 2e 72 72 3a 3d   ┆; idxf.klen:=keylen;   idxf.rr:=┆
0x039300…039320             69 64 78 66 2e 64 2e 69 6e 74 31 3b 20 69 64 78 66 2e 70 70 3a 3d 30 3b 0a 45 4e 44 3b 0a 0a 50   ┆idxf.d.int1; idxf.pp:=0; END;  P┆
0x039320…039340             52 4f 43 45 44 55 52 45 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 56 41 52 20 69 64 78 66 3a 20   ┆ROCEDURE closeindex ( VAR idxf: ┆
0x039340…039360             69 6e 64 65 78 66 69 6c 65 29 3b 0a 56 41 52 0a 20 20 69 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e   ┆indexfile); VAR   i: word; BEGIN┆
0x039360…039380             0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6e 62 75 66 73 69 7a 65 20 44 4f 20 57 49 54 48 20   ┆   FOR i:=1 TO nbufsize DO WITH ┆
0x039380…0393a0             70 5f 6e 62 75 66 5f 70 5e 5b 69 5d 20 44 4f 0a 20 20 49 46 20 69 66 70 3d 61 64 64 72 20 28 20   ┆p_nbuf_p^[i] DO   IF ifp=addr ( ┆
0x0393a0…0393c0             69 64 78 66 29 20 54 48 45 4e 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 69 66 70 3a 3d 4e 49 4c 3b   ┆idxf) THEN   BEGIN     ifp:=NIL;┆
0x0393c0…0393e0             0a 20 20 20 20 49 46 20 75 70 64 20 54 48 45 4e 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20   ┆     IF upd THEN     BEGIN      ┆
0x0393e0…039400             20 70 5f 70 61 63 6b 20 28 20 6e 2c 69 64 78 66 2e 6b 6c 65 6e 29 3b 20 70 75 74 72 65 63 20 28   ┆ p_pack ( n,idxf.klen); putrec (┆
0x039400…039420 (15, 0, 9)  20 69 64 78 66 2e 64 2c 6e 72 2c 6e 29 3b 20 75 70 64 3a 3d 66 61 6c 73 65 3b 0a 20 20 20 20 45   ┆ idxf.d,nr,n); upd:=false;     E┆
0x039420…039440             4e 44 3b 0a 20 20 45 4e 44 3b 0a 20 20 69 64 78 66 2e 64 2e 69 6e 74 31 3a 3d 69 64 78 66 2e 72   ┆ND;   END;   idxf.d.int1:=idxf.r┆
0x039440…039460             72 3b 0a 20 20 63 6c 6f 73 65 66 69 6c 65 20 28 20 69 64 78 66 2e 64 29 3b 0a 45 4e 44 3b 0a 0a   ┆r;   closefile ( idxf.d); END;  ┆
0x039460…039480             50 52 4f 43 45 44 55 52 45 20 70 5f 6c 61 73 74 20 28 20 69 3a 20 77 6f 72 64 29 3b 0a 56 41 52   ┆PROCEDURE p_last ( i: word); VAR┆
0x039480…0394a0             0a 20 20 6a 2c 6b 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 6a 3a 3d 31 3b 20 57 48 49 4c   ┆   j,k: word; BEGIN   j:=1; WHIL┆
0x0394a0…0394c0             45 20 20 28 20 70 5f 6e 6d 61 70 5b 6a 5d 3c 3e 69 29 20 41 4e 44 20 28 6a 3c 6e 62 75 66 73 69   ┆E  ( p_nmap[j]<>i) AND (j<nbufsi┆
0x0394c0…0394e0             7a 65 29 20 44 4f 20 6a 3a 3d 6a 2b 31 3b 0a 20 20 46 4f 52 20 6b 3a 3d 6a 20 54 4f 20 6e 62 75   ┆ze) DO j:=j+1;   FOR k:=j TO nbu┆
0x0394e0…039500             66 73 69 7a 65 2d 31 20 44 4f 20 70 5f 6e 6d 61 70 5b 6b 5d 3a 3d 70 5f 6e 6d 61 70 5b 6b 2b 31   ┆fsize-1 DO p_nmap[k]:=p_nmap[k+1┆
0x039500…039520             5d 3b 0a 20 20 70 5f 6e 6d 61 70 5b 6e 62 75 66 73 69 7a 65 5d 3a 3d 69 3b 0a 45 4e 44 3b 0a 0a   ┆];   p_nmap[nbufsize]:=i; END;  ┆
0x039520…039540             50 52 4f 43 45 44 55 52 45 20 70 5f 67 65 74 6e 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64   ┆PROCEDURE p_getn ( VAR idxf: ind┆
0x039540…039560             65 78 66 69 6c 65 3b 20 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 6e 70 3a 20 70 5f 6e 6f 64 72 63   ┆exfile; r: word; VAR np: p_nodrc┆
0x039560…039580             70 29 3b 0a 56 41 52 0a 20 20 69 3a 20 77 6f 72 64 3b 0a 20 20 66 6f 75 6e 64 3a 20 62 6f 6f 6c   ┆p); VAR   i: word;   found: bool┆
0x039580…0395a0             65 61 6e 3b 0a 42 45 47 49 4e 0a 20 20 69 3a 3d 30 3b 0a 20 20 52 45 50 45 41 54 0a 20 20 20 20   ┆ean; BEGIN   i:=0;   REPEAT     ┆
0x0395a0…0395c0             69 3a 3d 69 2b 31 3b 0a 20 20 20 20 57 49 54 48 20 70 5f 6e 62 75 66 5f 70 5e 5b 69 5d 20 44 4f   ┆i:=i+1;     WITH p_nbuf_p^[i] DO┆
0x0395c0…0395e0             20 66 6f 75 6e 64 3a 3d 28 69 66 70 3d 61 64 64 72 28 69 64 78 66 29 29 20 41 4e 44 20 28 6e 72   ┆ found:=(ifp=addr(idxf)) AND (nr┆
0x0395e0…039600             3d 72 29 3b 0a 20 20 55 4e 54 49 4c 20 66 6f 75 6e 64 20 4f 52 20 28 69 3d 6e 62 75 66 73 69 7a   ┆=r);   UNTIL found OR (i=nbufsiz┆
0x039600…039620 (15, 0, 10) 65 29 3b 0a 20 20 49 46 20 4e 4f 54 20 66 6f 75 6e 64 20 54 48 45 4e 0a 20 20 42 45 47 49 4e 0a   ┆e);   IF NOT found THEN   BEGIN ┆
0x039620…039640             20 20 20 20 69 3a 3d 70 5f 6e 6d 61 70 5b 31 5d 3b 0a 20 20 20 20 57 49 54 48 20 70 5f 6e 62 75   ┆    i:=p_nmap[1];     WITH p_nbu┆
0x039640…039660             66 5f 70 5e 5b 69 5d 20 44 4f 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 49 46 20 75 70   ┆f_p^[i] DO     BEGIN       IF up┆
0x039660…039680             64 20 54 48 45 4e 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 70 5f 70 61 63   ┆d THEN       BEGIN         p_pac┆
0x039680…0396a0             6b 20 28 20 6e 2c 69 66 70 5e 2e 6b 6c 65 6e 29 3b 20 70 75 74 72 65 63 20 28 20 69 66 70 5e 2e   ┆k ( n,ifp^.klen); putrec ( ifp^.┆
0x0396a0…0396c0             64 2c 6e 72 2c 6e 29 3b 0a 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 20 20 67 65 74 72 65 63   ┆d,nr,n);       END;       getrec┆
0x0396c0…0396e0             20 28 20 69 64 78 66 2e 64 2c 72 2c 6e 29 3b 20 70 5f 75 6e 70 61 63 6b 20 28 20 6e 2c 69 64 78   ┆ ( idxf.d,r,n); p_unpack ( n,idx┆
0x0396e0…039700             66 2e 6b 6c 65 6e 29 3b 0a 20 20 20 20 20 20 69 66 70 3a 3d 61 64 64 72 20 28 20 69 64 78 66 29   ┆f.klen);       ifp:=addr ( idxf)┆
0x039700…039720             3b 20 6e 72 3a 3d 72 3b 20 75 70 64 3a 3d 66 61 6c 73 65 3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20   ┆; nr:=r; upd:=false;     END;   ┆
0x039720…039740             45 4e 44 3b 0a 20 20 70 5f 6c 61 73 74 20 28 20 69 29 3b 20 6e 70 3a 3d 61 64 64 72 20 28 20 70   ┆END;   p_last ( i); np:=addr ( p┆
0x039740…039760             5f 6e 62 75 66 5f 70 5e 5b 69 5d 29 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 5f   ┆_nbuf_p^[i]); END;  PROCEDURE p_┆
0x039760…039780             6e 65 77 6e 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20   ┆newn ( VAR idxf: indexfile; VAR ┆
0x039780…0397a0             72 3a 20 77 6f 72 64 3b 20 56 41 52 20 6e 70 3a 20 70 5f 6e 6f 64 72 63 70 29 3b 0a 56 41 52 0a   ┆r: word; VAR np: p_nodrcp); VAR ┆
0x0397a0…0397c0             20 20 69 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 69 3a 3d 70 5f 6e 6d 61 70 5b 31 5d 3b   ┆  i: word; BEGIN   i:=p_nmap[1];┆
0x0397c0…0397e0             0a 20 20 6d 61 70 69 78 3a 3d 20 69 3b 0a 20 20 57 49 54 48 20 70 5f 6e 62 75 66 5f 70 5e 5b 69   ┆   mapix:= i;   WITH p_nbuf_p^[i┆
0x0397e0…039800             5d 20 44 4f 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 49 46 20 75 70 64 20 54 48 45 4e 0a 20 20 20   ┆] DO   BEGIN     IF upd THEN    ┆
0x039800…039820 (15, 0, 11) 20 42 45 47 49 4e 0a 20 20 20 20 20 20 70 5f 70 61 63 6b 20 28 20 6e 2c 69 66 70 5e 2e 6b 6c 65   ┆ BEGIN       p_pack ( n,ifp^.kle┆
0x039820…039840             6e 29 3b 20 70 75 74 72 65 63 20 28 20 69 66 70 5e 2e 64 2c 6e 72 2c 6e 29 3b 0a 20 20 20 20 45   ┆n); putrec ( ifp^.d,nr,n);     E┆
0x039840…039860             4e 44 3b 0a 20 20 20 20 70 5f 6e 65 77 72 20 28 20 69 64 78 66 2e 64 2c 72 29 3b 20 69 66 70 3a   ┆ND;     p_newr ( idxf.d,r); ifp:┆
0x039860…039880             3d 61 64 64 72 20 28 20 69 64 78 66 29 3b 0a 20 20 20 20 6e 72 3a 3d 72 3b 20 75 70 64 3a 3d 66   ┆=addr ( idxf);     nr:=r; upd:=f┆
0x039880…0398a0             61 6c 73 65 3b 0a 20 20 45 4e 44 3b 0a 20 20 70 5f 6c 61 73 74 20 28 20 69 29 3b 20 6e 70 3a 3d   ┆alse;   END;   p_last ( i); np:=┆
0x0398a0…0398c0             61 64 64 72 20 28 20 70 5f 6e 62 75 66 5f 70 5e 5b 69 5d 29 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43   ┆addr ( p_nbuf_p^[i]); END;  PROC┆
0x0398c0…0398e0             45 44 55 52 45 20 70 5f 75 70 64 6e 20 28 20 6e 70 3a 20 70 5f 6e 6f 64 72 63 70 29 3b 0a 56 41   ┆EDURE p_updn ( np: p_nodrcp); VA┆
0x0398e0…039900             52 0a 20 20 70 3a 20 70 5f 6e 62 66 72 63 70 20 41 62 73 6f 6c 75 74 65 20 6e 70 3b 0a 42 45 47   ┆R   p: p_nbfrcp Absolute np; BEG┆
0x039900…039920             49 4e 0a 20 20 70 5e 2e 75 70 64 3a 3d 74 72 75 65 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55   ┆IN   p^.upd:=true; END;  PROCEDU┆
0x039920…039940             52 45 20 70 5f 72 65 74 6e 20 28 20 56 41 52 20 6e 70 3a 20 70 5f 6e 6f 64 72 63 70 29 3b 0a 56   ┆RE p_retn ( VAR np: p_nodrcp); V┆
0x039940…039960             41 52 0a 20 20 70 3a 20 70 5f 6e 62 66 72 63 70 20 41 62 73 6f 6c 75 74 65 20 6e 70 3b 0a 42 45   ┆AR   p: p_nbfrcp Absolute np; BE┆
0x039960…039980             47 49 4e 0a 20 20 57 49 54 48 20 70 5e 20 44 4f 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 64 65 6c   ┆GIN   WITH p^ DO   BEGIN     del┆
0x039980…0399a0             65 74 65 72 65 63 20 28 20 69 66 70 5e 2e 64 2c 6e 72 29 3b 20 69 66 70 3a 3d 4e 49 4c 3b 20 75   ┆eterec ( ifp^.d,nr); ifp:=NIL; u┆
0x0399a0…0399c0             70 64 3a 3d 66 61 6c 73 65 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52   ┆pd:=false;   END; END;  PROCEDUR┆
0x0399c0…0399e0             45 20 70 5f 78 6b 65 79 20 28 20 56 41 52 20 6b 3b 20 6b 6c 65 6e 3a 20 77 6f 72 64 29 3b 0a 56   ┆E p_xkey ( VAR k; klen: word); V┆
0x0399e0…039a00             41 52 0a 20 20 6b 65 79 3a 20 70 5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75 74 65 20 6b 3b 0a 42   ┆AR   key: p_keystr Absolute k; B┆
0x039a00…039a20 (15, 0, 12) 45 47 49 4e 0a 20 20 49 46 20 6f 72 64 20 28 20 6b 65 79 5b 30 5d 29 3e 6b 6c 65 6e 20 54 48 45   ┆EGIN   IF ord ( key[0])>klen THE┆
0x039a20…039a40             4e 20 6b 65 79 5b 30 5d 3a 3d 63 68 72 20 28 20 6b 6c 65 6e 29 3b 0a 45 4e 44 3b 0a 0a 46 55 4e   ┆N key[0]:=chr ( klen); END;  FUN┆
0x039a40…039a60             43 54 49 4f 4e 20 70 5f 63 6b 65 79 20 28 20 56 41 52 20 6b 31 2c 6b 32 3b 20 64 72 31 2c 64 72   ┆CTION p_ckey ( VAR k1,k2; dr1,dr┆
0x039a60…039a80             32 3a 20 77 6f 72 64 3b 20 64 75 70 3a 20 62 6f 6f 6c 65 61 6e 29 3a 20 69 6e 74 65 67 65 72 3b   ┆2: word; dup: boolean): integer;┆
0x039a80…039aa0             0a 56 41 52 0a 20 20 6b 65 79 31 3a 20 70 5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75 74 65 20 6b   ┆ VAR   key1: p_keystr Absolute k┆
0x039aa0…039ac0             31 3b 0a 20 20 6b 65 79 32 3a 20 70 5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75 74 65 20 6b 32 3b   ┆1;   key2: p_keystr Absolute k2;┆
0x039ac0…039ae0             0a 42 45 47 49 4e 0a 20 20 49 46 20 6b 65 79 31 3d 6b 65 79 32 20 54 48 45 4e 0a 20 20 49 46 20   ┆ BEGIN   IF key1=key2 THEN   IF ┆
0x039ae0…039b00             64 75 70 20 54 48 45 4e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 64 72 31 20 3e 20   ┆dup THEN     begin     if dr1 > ┆
0x039b00…039b20             64 72 32 20 74 68 65 6e 20 70 5f 63 6b 65 79 3a 3d 20 31 20 65 6c 73 65 20 70 5f 63 6b 65 79 3a   ┆dr2 then p_ckey:= 1 else p_ckey:┆
0x039b20…039b40             3d 20 2d 31 0a 20 20 20 20 65 6e 64 0a 20 20 45 4c 53 45 20 70 5f 63 6b 65 79 3a 3d 30 20 45 4c   ┆= -1     end   ELSE p_ckey:=0 EL┆
0x039b40…039b60             53 45 0a 20 20 49 46 20 6b 65 79 31 3e 6b 65 79 32 20 54 48 45 4e 20 70 5f 63 6b 65 79 3a 3d 31   ┆SE   IF key1>key2 THEN p_ckey:=1┆
0x039b60…039b80             20 45 4c 53 45 20 70 5f 63 6b 65 79 3a 3d 20 2d 31 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55   ┆ ELSE p_ckey:= -1; END;  PROCEDU┆
0x039b80…039ba0             52 45 20 63 6c 65 61 72 6b 65 79 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c   ┆RE clearkey ( VAR idxf: indexfil┆
0x039ba0…039bc0             65 29 3b 0a 42 45 47 49 4e 0a 20 20 69 64 78 66 2e 70 70 3a 3d 30 3b 0a 45 4e 44 3b 0a 0a 0a 0a   ┆e); BEGIN   idxf.pp:=0; END;    ┆
0x039bc0…039be0             0a 7b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆ {******************************┆
0x039be0…039c00             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 7d 0a 7b 20 20 20 20   ┆*************************} {    ┆
0x039c00…039c20 (15, 0, 13) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x039c20…039c40             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20   ┆                   } {          ┆
0x039c40…039c60             20 20 20 20 20 20 20 50 6f 6c 79 46 69 6c 65 20 56 65 72 73 69 6f 6e 20 31 2e 31 30 20 20 20 20   ┆       PolyFile Version 1.10    ┆
0x039c60…039c80             20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆             } {                ┆
0x039c80…039ca0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x039ca0…039cc0             20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41   ┆       } {                     A┆
0x039cc0…039ce0             44 44 4b 45 59 20 6d 6f 64 75 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆DDKEY module                    ┆
0x039ce0…039d00             20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ } {                            ┆
0x039d00…039d20             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20   ┆                           } {  ┆
0x039d20…039d40             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39   ┆                Copyright (C) 19┆
0x039d40…039d60             38 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20   ┆86                   } {        ┆
0x039d60…039d80             20 20 20 20 20 20 50 6f 6c 79 54 65 63 68 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 41 2f 53   ┆      PolyTech International A/S┆
0x039d80…039da0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆               } {              ┆
0x039da0…039dc0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x039dc0…039de0             20 20 20 20 20 20 20 20 20 7d 0a 7b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆         } {********************┆
0x039de0…039e00             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x039e00…039e20 (15, 0, 14) 2a 2a 2a 7d 0a 0a 7b 24 49 2d 2c 53 2b 2c 52 2b 20 7d 0a 0a 50 52 4f 43 45 44 55 52 45 20 61 64   ┆***}  {$I-,S+,R+ }  PROCEDURE ad┆
0x039e20…039e40             64 6b 65 79 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 7b 20 56 41   ┆dkey ( VAR idxf: indexfile; { VA┆
0x039e40…039e60             52 20 7d 20 70 64 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 70 6b 29 3b 0a 56 41 52 0a 20 20 70 6b   ┆R } pdr: word; VAR pk); VAR   pk┆
0x039e60…039e80             65 79 3a 20 70 5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75 74 65 20 70 6b 3b 0a 20 20 6e 70 72 2c   ┆ey: p_keystr Absolute pk;   npr,┆
0x039e80…039ea0             6d 70 72 20 20 20 20 20 3a 20 77 6f 72 64 3b 0a 20 20 63 2c 69 2c 6b 2c 6c 20 20 20 20 20 3a 20   ┆mpr     : word;   c,i,k,l     : ┆
0x039ea0…039ec0             20 69 6e 74 65 67 65 72 3b 0a 20 20 70 61 73 73 75 70 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 6e   ┆ integer;   passup: boolean;   n┆
0x039ec0…039ee0             2c 6d 3a 20 70 5f 6e 6f 64 72 63 70 3b 0a 20 20 70 65 2c 74 65 3a 20 70 5f 69 64 78 72 65 63 3b   ┆,m: p_nodrcp;   pe,te: p_idxrec;┆
0x039ee0…039f00             0a 0a 50 52 4f 43 45 44 55 52 45 20 73 65 61 72 63 68 20 28 20 6e 70 72 3a 20 77 6f 72 64 29 3b   ┆  PROCEDURE search ( npr: word);┆
0x039f00…039f20             0a 56 41 52 0a 20 20 72 3a 20 77 6f 72 64 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 73 65 72   ┆ VAR   r: word;  PROCEDURE inser┆
0x039f20…039f40             74 3b 0a 76 61 72 20 20 69 3a 20 77 6f 72 64 3b 0a 42 45 47 49 4e 0a 20 20 70 5f 67 65 74 6e 20   ┆t; var  i: word; BEGIN   p_getn ┆
0x039f40…039f60             28 20 69 64 78 66 2c 6e 70 72 2c 6e 29 3b 0a 20 20 57 49 54 48 20 6e 5e 20 44 4f 0a 20 20 42 45   ┆( idxf,npr,n);   WITH n^ DO   BE┆
0x039f60…039f80             47 49 4e 0a 20 20 20 20 49 46 20 6e 65 3c 6e 6f 64 65 73 69 7a 65 20 54 48 45 4e 0a 20 20 20 20   ┆GIN     IF ne<nodesize THEN     ┆
0x039f80…039fa0             42 45 47 49 4e 0a 20 20 20 20 20 20 6e 65 3a 3d 6e 65 2b 31 3b 20 46 4f 52 20 69 3a 3d 6e 65 20   ┆BEGIN       ne:=ne+1; FOR i:=ne ┆
0x039fa0…039fc0             44 4f 57 4e 54 4f 20 72 2b 32 20 44 4f 20 65 5b 69 5d 3a 3d 65 5b 69 2d 31 5d 3b 0a 20 20 20 20   ┆DOWNTO r+2 DO e[i]:=e[i-1];     ┆
0x039fc0…039fe0             20 20 65 5b 72 2b 31 5d 3a 3d 70 65 3b 20 70 61 73 73 75 70 3a 3d 66 61 6c 73 65 3b 0a 20 20 20   ┆  e[r+1]:=pe; passup:=false;    ┆
0x039fe0…03a000             20 45 4e 44 20 45 4c 53 45 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 70 5f 6e 65 77 6e   ┆ END ELSE     BEGIN       p_newn┆
0x03a000…03a020 (15, 0, 15) 20 28 20 69 64 78 66 2c 6d 70 72 2c 6d 29 3b 0a 20 20 20 20 20 20 49 46 20 72 3c 3d 6e 6f 64 65   ┆ ( idxf,mpr,m);       IF r<=node┆
0x03a020…03a040             68 61 6c 66 20 54 48 45 4e 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 49 46   ┆half THEN       BEGIN         IF┆
0x03a040…03a060             20 72 3d 6e 6f 64 65 68 61 6c 66 20 54 48 45 4e 20 74 65 3a 3d 70 65 20 45 4c 53 45 0a 20 20 20   ┆ r=nodehalf THEN te:=pe ELSE    ┆
0x03a060…03a080             20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 20 20 74 65 3a 3d 65 5b 6e 6f 64 65 68   ┆     BEGIN           te:=e[nodeh┆
0x03a080…03a0a0             61 6c 66 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 6e 6f 64 65 68 61 6c 66 20   ┆alf];           FOR i:=nodehalf ┆
0x03a0a0…03a0c0             44 4f 57 4e 54 4f 20 72 2b 32 20 44 4f 20 65 5b 69 5d 3a 3d 65 5b 69 2d 31 5d 3b 0a 20 20 20 20   ┆DOWNTO r+2 DO e[i]:=e[i-1];     ┆
0x03a0c0…03a0e0             20 20 20 20 20 20 65 5b 72 2b 31 5d 3a 3d 70 65 3b 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 20   ┆      e[r+1]:=pe;         END;  ┆
0x03a0e0…03a100             20 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6e 6f 64 65 68 61 6c 66 20 44 4f 20 6d   ┆       FOR i:=1 TO nodehalf DO m┆
0x03a100…03a120             5e 2e 65 5b 69 5d 3a 3d 65 5b 69 2b 6e 6f 64 65 68 61 6c 66 5d 3b 0a 20 20 20 20 20 20 45 4e 44   ┆^.e[i]:=e[i+nodehalf];       END┆
0x03a120…03a140             20 45 4c 53 45 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 72 3a 3d 72 2d 6e   ┆ ELSE       BEGIN         r:=r-n┆
0x03a140…03a160             6f 64 65 68 61 6c 66 3b 20 74 65 3a 3d 65 5b 6e 6f 64 65 68 61 6c 66 2b 31 5d 3b 0a 20 20 20 20   ┆odehalf; te:=e[nodehalf+1];     ┆
0x03a160…03a180             20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 72 2d 31 20 44 4f 20 6d 5e 2e 65 5b 69 5d 3a 3d   ┆    FOR i:=1 TO r-1 DO m^.e[i]:=┆
0x03a180…03a1a0             65 5b 69 2b 6e 6f 64 65 68 61 6c 66 2b 31 5d 3b 0a 20 20 20 20 20 20 20 20 6d 5e 2e 65 5b 72 5d   ┆e[i+nodehalf+1];         m^.e[r]┆
0x03a1a0…03a1c0             3a 3d 70 65 3b 0a 20 20 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 72 2b 31 20 54 4f 20 6e 6f 64 65   ┆:=pe;         FOR i:=r+1 TO node┆
0x03a1c0…03a1e0             68 61 6c 66 20 44 4f 20 6d 5e 2e 65 5b 69 5d 3a 3d 65 5b 69 2b 6e 6f 64 65 68 61 6c 66 5d 3b 0a   ┆half DO m^.e[i]:=e[i+nodehalf]; ┆
0x03a1e0…03a200             20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 20 20 6e 65 3a 3d 6e 6f 64 65 68 61 6c 66 3b 0a 20   ┆      END;       ne:=nodehalf;  ┆
0x03a200…03a220 (15, 1, 1)  20 20 20 20 20 6d 5e 2e 6e 65 3a 3d 6e 6f 64 65 68 61 6c 66 3b 20 6d 5e 2e 6e 72 30 3a 3d 74 65   ┆     m^.ne:=nodehalf; m^.nr0:=te┆
0x03a220…03a240             2e 6e 72 3b 20 74 65 2e 6e 72 3a 3d 6d 70 72 3b 0a 20 20 20 20 20 20 70 65 3a 3d 74 65 3b 20 70   ┆.nr; te.nr:=mpr;       pe:=te; p┆
0x03a240…03a260             5f 75 70 64 6e 20 28 20 6d 29 3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20 45 4e 44 3b 0a 20 20 70 5f   ┆_updn ( m);     END;   END;   p_┆
0x03a260…03a280             75 70 64 6e 20 28 20 6e 29 3b 0a 45 4e 44 3b 0a 0a 42 45 47 49 4e 0a 20 20 49 46 20 6e 70 72 3d   ┆updn ( n); END;  BEGIN   IF npr=┆
0x03a280…03a2a0             30 20 54 48 45 4e 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 70 61 73 73 75 70 3a 3d 74 72 75 65 3b   ┆0 THEN   BEGIN     passup:=true;┆
0x03a2a0…03a2c0             0a 20 20 20 20 57 49 54 48 20 70 65 20 44 4f 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20   ┆     WITH pe DO     BEGIN       ┆
0x03a2c0…03a2e0             6b 65 79 3a 3d 70 6b 65 79 3b 20 64 72 3a 3d 70 64 72 3b 20 6e 72 3a 3d 30 3b 0a 20 20 20 20 45   ┆key:=pkey; dr:=pdr; nr:=0;     E┆
0x03a2e0…03a300             4e 44 3b 0a 20 20 45 4e 44 20 45 4c 53 45 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 70 5f 67 65 74   ┆ND;   END ELSE   BEGIN     p_get┆
0x03a300…03a320             6e 20 28 20 69 64 78 66 2c 6e 70 72 2c 6e 29 3b 0a 20 20 20 20 57 49 54 48 20 6e 5e 20 44 4f 0a   ┆n ( idxf,npr,n);     WITH n^ DO ┆
0x03a320…03a340             20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 6c 3a 3d 31 3b 20 72 3a 3d 6e 65 3b 0a 20 20 20   ┆    BEGIN       l:=1; r:=ne;    ┆
0x03a340…03a360             20 20 20 52 45 50 45 41 54 0a 20 20 20 20 20 20 20 20 6b 3a 3d 28 6c 2b 72 29 20 44 49 56 20 32   ┆   REPEAT         k:=(l+r) DIV 2┆
0x03a360…03a380             3b 0a 20 20 20 20 20 20 20 20 63 3a 3d 70 5f 63 6b 65 79 20 28 20 70 6b 65 79 2c 65 5b 6b 5d 2e   ┆;         c:=p_ckey ( pkey,e[k].┆
0x03a380…03a3a0             6b 65 79 2c 70 64 72 2c 65 5b 6b 5d 2e 64 72 2c 69 64 78 66 2e 64 75 70 6b 65 79 29 3b 0a 20 20   ┆key,pdr,e[k].dr,idxf.dupkey);   ┆
0x03a3a0…03a3c0             20 20 20 20 20 20 49 46 20 63 3c 3d 30 20 54 48 45 4e 20 72 3a 3d 6b 2d 31 3b 20 49 46 20 63 3e   ┆      IF c<=0 THEN r:=k-1; IF c>┆
0x03a3c0…03a3e0             3d 30 20 54 48 45 4e 20 6c 3a 3d 6b 2b 31 3b 0a 20 20 20 20 20 20 55 4e 54 49 4c 20 72 3c 6c 3b   ┆=0 THEN l:=k+1;       UNTIL r<l;┆
0x03a3e0…03a400             0a 20 20 20 20 20 20 49 46 20 6c 2d 72 3e 31 20 54 48 45 4e 0a 20 20 20 20 20 20 42 45 47 49 4e   ┆       IF l-r>1 THEN       BEGIN┆
0x03a400…03a420 (15, 1, 2)  0a 20 20 20 20 20 20 20 20 73 75 63 63 65 73 73 3a 3d 66 61 6c 73 65 3b 20 70 61 73 73 75 70 3a   ┆         success:=false; passup:┆
0x03a420…03a440             3d 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 0a 20 20 20 20 20 20 42 45 47   ┆=false;       END ELSE       BEG┆
0x03a440…03a460             49 4e 0a 09 49 46 20 72 3d 30 20 54 48 45 4e 20 73 65 61 72 63 68 20 28 20 6e 72 30 29 20 45 4c   ┆IN  IF r=0 THEN search ( nr0) EL┆
0x03a460…03a480             53 45 20 73 65 61 72 63 68 20 28 20 65 5b 72 5d 2e 6e 72 29 3b 0a 09 49 46 20 70 61 73 73 75 70   ┆SE search ( e[r].nr);  IF passup┆
0x03a480…03a4a0             20 54 48 45 4e 20 69 6e 73 65 72 74 3b 0a 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 45 4e 44   ┆ THEN insert;       END;     END┆
0x03a4a0…03a4c0             3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 42 45 47 49 4e 0a 20 20 57 49 54 48 20 69 64 78 66   ┆;   END; END;  BEGIN   WITH idxf┆
0x03a4c0…03a4e0             20 44 4f 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 70 5f 78 6b 65 79 20 28 20 70 6b 65 79 2c 6b 6c   ┆ DO   BEGIN     p_xkey ( pkey,kl┆
0x03a4e0…03a500             65 6e 29 3b 20 73 75 63 63 65 73 73 3a 3d 74 72 75 65 3b 20 73 65 61 72 63 68 20 28 20 72 72 29   ┆en); success:=true; search ( rr)┆
0x03a500…03a520             3b 0a 20 20 20 20 49 46 20 70 61 73 73 75 70 20 54 48 45 4e 0a 20 20 20 20 42 45 47 49 4e 0a 20   ┆;     IF passup THEN     BEGIN  ┆
0x03a520…03a540             20 20 20 20 20 6e 70 72 3a 3d 72 72 3b 20 70 5f 6e 65 77 6e 20 28 20 69 64 78 66 2c 72 72 2c 6e   ┆     npr:=rr; p_newn ( idxf,rr,n┆
0x03a540…03a560             29 3b 0a 20 20 20 20 20 20 57 49 54 48 20 6e 5e 20 44 4f 0a 20 20 20 20 20 20 42 45 47 49 4e 0a   ┆);       WITH n^ DO       BEGIN ┆
0x03a560…03a580             20 20 20 20 20 20 20 20 6e 65 3a 3d 31 3b 20 6e 72 30 3a 3d 6e 70 72 3b 20 65 5b 31 5d 3a 3d 70   ┆        ne:=1; nr0:=npr; e[1]:=p┆
0x03a580…03a5a0             65 3b 0a 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 20 20 70 5f 75 70 64 6e 20 28 20 6e 29 3b   ┆e;       END;       p_updn ( n);┆
0x03a5a0…03a5c0             0a 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 70 70 3a 3d 30 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b   ┆     END;     pp:=0;   END; END;┆
0x03a5c0…03a5e0             0a 0a 7b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆  {*****************************┆
0x03a5e0…03a600             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 7d 0a 7b 20 20 20   ┆**************************} {   ┆
0x03a600…03a620 (15, 1, 3)  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x03a620…03a640             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20   ┆                    } {         ┆
0x03a640…03a660             20 20 20 20 20 20 20 20 50 6f 6c 79 46 69 6c 65 20 56 65 72 73 69 6f 6e 20 31 2e 31 30 20 20 20   ┆        PolyFile Version 1.10   ┆
0x03a660…03a680             20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆              } {               ┆
0x03a680…03a6a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x03a6a0…03a6c0             20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆        } {                     ┆
0x03a6c0…03a6e0             4e 50 46 4b 45 59 20 6d 6f 64 75 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆NPFKEY module                   ┆
0x03a6e0…03a700             20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆  } {                           ┆
0x03a700…03a720             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20   ┆                            } { ┆
0x03a720…03a740             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31   ┆                 Copyright (C) 1┆
0x03a740…03a760             39 38 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20   ┆986                   } {       ┆
0x03a760…03a780             20 20 20 20 20 20 20 50 6f 6c 79 54 65 63 68 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 41 2f   ┆       PolyTech International A/┆
0x03a780…03a7a0             53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆S               } {             ┆
0x03a7a0…03a7c0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x03a7c0…03a7e0             20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 31 39 38 39 2e 30 33 2e 32 38 20 20 20 48 45 4a   ┆          } {   1989.03.28   HEJ┆
0x03a7e0…03a800             20 20 20 64 72 6e 20 73 65 74 20 74 6f 20 61 20 6c 65 67 61 6c 20 76 61 6c 75 65 20 61 66 74 65   ┆   drn set to a legal value afte┆
0x03a800…03a820 (15, 1, 4)  72 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6c   ┆r   } {                      cal┆
0x03a820…03a840             6c 20 6f 66 20 6e 65 78 74 6b 65 79 2c 20 70 72 65 76 6b 65 79 20 20 20 20 20 20 20 20 20 7d 0a   ┆l of nextkey, prevkey         } ┆
0x03a840…03a860             7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆{                               ┆
0x03a860…03a880             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 2a 2a 2a 2a 2a   ┆                        } {*****┆
0x03a880…03a8a0             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x03a8a0…03a8c0             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 7d 0a 0a 7b 24 49 2d 2c 53 2b 2c 52 2b 20   ┆******************}  {$I-,S+,R+ ┆
0x03a8c0…03a8e0             20 7d 0a 0a 7b 2d 2d 2d 0a 50 52 4f 43 45 44 55 52 45 20 70 72 65 76 6b 65 79 20 28 20 56 41 52   ┆ }  {--- PROCEDURE prevkey ( VAR┆
0x03a8e0…03a900             20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20 70 64 72 3a 20 77 6f 72 64 3b   ┆ idxf: indexfile; VAR pdr: word;┆
0x03a900…03a920             20 56 41 52 20 70 6b 29 3b 0a 46 4f 52 57 41 52 44 3b 0a 2d 2d 2d 7d 0a 0a 50 52 4f 43 45 44 55   ┆ VAR pk); FORWARD; ---}  PROCEDU┆
0x03a920…03a940             52 45 20 6e 65 78 74 6b 65 79 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65   ┆RE nextkey ( VAR idxf: indexfile┆
0x03a940…03a960             3b 20 56 41 52 20 70 64 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 70 6b 29 3b 0a 56 41 52 0a 20 20   ┆; VAR pdr: word; VAR pk); VAR   ┆
0x03a960…03a980             70 6b 65 79 3a 20 70 5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75 74 65 20 70 6b 3b 0a 20 20 72 3a   ┆pkey: p_keystr Absolute pk;   r:┆
0x03a980…03a9a0             20 77 6f 72 64 3b 0a 20 20 6e 3a 20 70 5f 6e 6f 64 72 63 70 3b 0a 42 45 47 49 4e 0a 20 20 57 49   ┆ word;   n: p_nodrcp; BEGIN   WI┆
0x03a9a0…03a9c0             54 48 20 69 64 78 66 20 44 4f 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 49 46 20 70 70 3d 30 20 54   ┆TH idxf DO   BEGIN     IF pp=0 T┆
0x03a9c0…03a9e0             48 45 4e 20 72 3a 3d 72 72 20 45 4c 53 45 0a 20 20 20 20 57 49 54 48 20 70 61 74 68 5b 70 70 5d   ┆HEN r:=rr ELSE     WITH path[pp]┆
0x03a9e0…03aa00             20 44 4f 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 70 5f 67 65 74 6e 20 28 20 69 64 78   ┆ DO     BEGIN       p_getn ( idx┆
0x03aa00…03aa20 (15, 1, 5)  66 2c 6e 72 2c 6e 29 3b 20 72 3a 3d 6e 5e 2e 65 5b 65 70 5d 2e 6e 72 3b 0a 20 20 20 20 45 4e 44   ┆f,nr,n); r:=n^.e[ep].nr;     END┆
0x03aa20…03aa40             3b 0a 20 20 20 20 57 48 49 4c 45 20 72 3c 3e 30 20 44 4f 0a 20 20 20 20 42 45 47 49 4e 0a 20 20   ┆;     WHILE r<>0 DO     BEGIN   ┆
0x03aa40…03aa60             20 20 20 20 70 70 3a 3d 70 70 2b 31 3b 0a 20 20 20 20 20 20 57 49 54 48 20 70 61 74 68 5b 70 70   ┆    pp:=pp+1;       WITH path[pp┆
0x03aa60…03aa80             5d 20 44 4f 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 6e 72 3a 3d 72 3b 20   ┆] DO       BEGIN         nr:=r; ┆
0x03aa80…03aaa0             65 70 3a 3d 30 3b 0a 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 20 20 70 5f 67 65 74 6e 20 28   ┆ep:=0;       END;       p_getn (┆
0x03aaa0…03aac0             20 69 64 78 66 2c 72 2c 6e 29 3b 20 72 3a 3d 6e 5e 2e 6e 72 30 3b 0a 20 20 20 20 45 4e 44 3b 0a   ┆ idxf,r,n); r:=n^.nr0;     END; ┆
0x03aac0…03aae0             20 20 20 20 49 46 20 70 70 3c 3e 30 20 54 48 45 4e 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20   ┆    IF pp<>0 THEN     BEGIN     ┆
0x03aae0…03ab00             20 20 57 48 49 4c 45 20 28 70 70 3e 31 29 20 41 4e 44 20 28 70 61 74 68 5b 70 70 5d 2e 65 70 3d   ┆  WHILE (pp>1) AND (path[pp].ep=┆
0x03ab00…03ab20             6e 5e 2e 6e 65 29 20 44 4f 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 70 70   ┆n^.ne) DO       BEGIN         pp┆
0x03ab20…03ab40             3a 3d 70 70 2d 31 3b 20 70 5f 67 65 74 6e 20 28 20 69 64 78 66 2c 70 61 74 68 5b 70 70 5d 2e 6e   ┆:=pp-1; p_getn ( idxf,path[pp].n┆
0x03ab40…03ab60             72 2c 6e 29 3b 0a 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 20 20 49 46 20 70 61 74 68 5b 70   ┆r,n);       END;       IF path[p┆
0x03ab60…03ab80             70 5d 2e 65 70 3c 6e 5e 2e 6e 65 20 54 48 45 4e 20 57 49 54 48 20 70 61 74 68 5b 70 70 5d 20 44   ┆p].ep<n^.ne THEN WITH path[pp] D┆
0x03ab80…03aba0             4f 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 65 70 3a 3d 65 70 2b 31 3b 0a   ┆O       BEGIN         ep:=ep+1; ┆
0x03aba0…03abc0             20 20 20 20 20 20 20 20 57 49 54 48 20 6e 5e 2e 65 5b 65 70 5d 20 44 4f 0a 20 20 20 20 20 20 20   ┆        WITH n^.e[ep] DO        ┆
0x03abc0…03abe0             20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 20 20 70 6b 65 79 3a 3d 6b 65 79 3b 20 70 64 72 3a   ┆ BEGIN           pkey:=key; pdr:┆
0x03abe0…03ac00             3d 64 72 3b 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45   ┆=dr;         END;       END ELSE┆
0x03ac00…03ac20 (15, 1, 6)  20 70 70 3a 3d 30 3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 73 75 63 63 65 73 73 3a 3d 70 70   ┆ pp:=0;     END;     success:=pp┆
0x03ac20…03ac40             3c 3e 30 3b 0a 0a 20 20 20 20 69 66 20 6e 6f 74 20 73 75 63 63 65 73 73 20 74 68 65 6e 20 20 20   ┆<>0;      if not success then   ┆
0x03ac40…03ac60             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 63 6f 72 72 65 63 74 69 6f   ┆                   (*  correctio┆
0x03ac60…03ac80             6e 20 20 38 39 2e 30 33 2e 32 38 20 20 2a 29 0a 20 20 20 20 20 20 62 65 67 69 6e 20 20 20 20 28   ┆n  89.03.28  *)       begin    (┆
0x03ac80…03aca0             2a 20 20 20 20 55 2b 20 20 2a 29 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 5f 75 6e 69 74 20   ┆*    U+  *)       if debug_unit ┆
0x03aca0…03acc0             74 68 65 6e 0a 09 69 66 20 72 72 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67   ┆then  if rr = 0 then         beg┆
0x03acc0…03ace0             69 6e 0a 09 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 6e 6f 74 20 73 75 63 63 65   ┆in  write ( output, '  not succe┆
0x03ace0…03ad00             73 73 20 69 6e 20 6e 65 78 74 6b 65 79 2c 20 20 72 72 3a 20 27 2c 20 72 72 2c 0a 09 20 20 27 20   ┆ss in nextkey,  rr: ', rr,    ' ┆
0x03ad00…03ad20             20 20 20 20 20 20 20 20 70 72 65 73 73 20 61 6e 79 20 6b 65 79 27 29 3b 0a 09 74 63 3a 3d 20 72   ┆        press any key');  tc:= r┆
0x03ad20…03ad40             65 61 64 6b 65 79 3b 0a 09 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20   ┆eadkey;  writeln ( output);     ┆
0x03ad40…03ad60             20 20 20 20 69 66 20 74 63 20 3d 20 23 30 30 20 74 68 65 6e 20 74 63 3a 3d 20 72 65 61 64 6b 65   ┆    if tc = #00 then tc:= readke┆
0x03ad60…03ad80             79 3b 0a 20 20 20 20 20 20 20 20 69 66 20 74 63 20 3d 20 23 30 33 20 74 68 65 6e 20 20 68 61 6c   ┆y;         if tc = #03 then  hal┆
0x03ad80…03ada0             74 20 28 20 31 31 37 29 3b 0a 09 65 6e 64 3b 0a 0a 20 20 20 20 20 20 69 66 20 72 72 20 3d 20 30   ┆t ( 117);  end;        if rr = 0┆
0x03ada0…03adc0             20 74 68 65 6e 20 70 64 72 3a 3d 20 31 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 65 6d 70   ┆ then pdr:= 1            (*  emp┆
0x03adc0…03ade0             74 79 20 3a 20 20 72 72 20 3d 20 30 20 20 3f 3f 20 20 20 2a 29 0a 20 20 20 20 20 20 65 6c 73 65   ┆ty :  rr = 0  ??   *)       else┆
0x03ade0…03ae00             0a 20 20 20 20 20 20 69 66 20 63 61 6c 6c 65 64 5f 66 72 6f 6d 5f 70 72 65 76 20 74 68 65 6e 20   ┆       if called_from_prev then ┆
0x03ae00…03ae20 (15, 1, 7)  70 64 72 3a 3d 20 31 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 70 72 65 76 6b 65 79 20 28 20 69 64   ┆pdr:= 1       else  prevkey ( id┆
0x03ae20…03ae40             78 66 2c 20 70 64 72 2c 20 70 6b 65 79 29 3b 0a 20 20 20 20 20 20 70 70 3a 3d 20 30 3b 0a 20 20   ┆xf, pdr, pkey);       pp:= 0;   ┆
0x03ae40…03ae60             20 20 20 20 28 2a 20 20 20 20 55 2d 20 20 20 2a 29 0a 20 20 20 20 20 20 73 75 63 63 65 73 73 3a   ┆    (*    U-   *)       success:┆
0x03ae60…03ae80             3d 20 66 61 6c 73 65 0a 20 20 20 20 20 20 65 6e 64 0a 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b 20 20   ┆= false       end    END; END;  ┆
0x03ae80…03aea0             28 2a 20 20 6e 65 78 74 6b 65 79 20 20 2a 29 0a 0a 50 52 4f 43 45 44 55 52 45 20 70 72 65 76 6b   ┆(*  nextkey  *)  PROCEDURE prevk┆
0x03aea0…03aec0             65 79 20 7b 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20 70 64   ┆ey { VAR idxf: indexfile; VAR pd┆
0x03aec0…03aee0             72 3a 20 77 6f 72 64 3b 20 56 41 52 20 70 6b 20 7d 3b 0a 56 41 52 0a 20 20 70 6b 65 79 3a 20 70   ┆r: word; VAR pk }; VAR   pkey: p┆
0x03aee0…03af00             5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75 74 65 20 70 6b 3b 0a 20 20 72 3a 20 77 6f 72 64 3b 0a   ┆_keystr Absolute pk;   r: word; ┆
0x03af00…03af20             20 20 6e 3a 20 70 5f 6e 6f 64 72 63 70 3b 0a 42 45 47 49 4e 0a 20 20 57 49 54 48 20 69 64 78 66   ┆  n: p_nodrcp; BEGIN   WITH idxf┆
0x03af20…03af40             20 44 4f 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 49 46 20 70 70 3d 30 20 54 48 45 4e 20 72 3a 3d   ┆ DO   BEGIN     IF pp=0 THEN r:=┆
0x03af40…03af60             72 72 20 45 4c 53 45 0a 20 20 20 20 57 49 54 48 20 70 61 74 68 5b 70 70 5d 20 44 4f 0a 20 20 20   ┆rr ELSE     WITH path[pp] DO    ┆
0x03af60…03af80             20 42 45 47 49 4e 0a 20 20 20 20 20 20 70 5f 67 65 74 6e 20 28 20 69 64 78 66 2c 6e 72 2c 6e 29   ┆ BEGIN       p_getn ( idxf,nr,n)┆
0x03af80…03afa0             3b 20 65 70 3a 3d 65 70 2d 31 3b 0a 20 20 20 20 20 20 49 46 20 65 70 3d 30 20 54 48 45 4e 20 72   ┆; ep:=ep-1;       IF ep=0 THEN r┆
0x03afa0…03afc0             3a 3d 6e 5e 2e 6e 72 30 20 45 4c 53 45 20 72 3a 3d 6e 5e 2e 65 5b 65 70 5d 2e 6e 72 3b 0a 20 20   ┆:=n^.nr0 ELSE r:=n^.e[ep].nr;   ┆
0x03afc0…03afe0             20 20 45 4e 44 3b 0a 20 20 20 20 57 48 49 4c 45 20 72 3c 3e 30 20 44 4f 0a 20 20 20 20 42 45 47   ┆  END;     WHILE r<>0 DO     BEG┆
0x03afe0…03b000             49 4e 0a 20 20 20 20 20 20 70 5f 67 65 74 6e 20 28 20 69 64 78 66 2c 72 2c 6e 29 3b 20 70 70 3a   ┆IN       p_getn ( idxf,r,n); pp:┆
0x03b000…03b020 (15, 1, 8)  3d 70 70 2b 31 3b 0a 20 20 20 20 20 20 57 49 54 48 20 70 61 74 68 5b 70 70 5d 20 44 4f 0a 20 20   ┆=pp+1;       WITH path[pp] DO   ┆
0x03b020…03b040             20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 6e 72 3a 3d 72 3b 20 65 70 3a 3d 6e 5e 2e   ┆    BEGIN         nr:=r; ep:=n^.┆
0x03b040…03b060             6e 65 3b 0a 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 20 20 57 49 54 48 20 6e 5e 20 44 4f 20   ┆ne;       END;       WITH n^ DO ┆
0x03b060…03b080             72 3a 3d 65 5b 6e 65 5d 2e 6e 72 3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 49 46 20 70 70 3c   ┆r:=e[ne].nr;     END;     IF pp<┆
0x03b080…03b0a0             3e 30 20 54 48 45 4e 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 57 48 49 4c 45 20 28 70   ┆>0 THEN     BEGIN       WHILE (p┆
0x03b0a0…03b0c0             70 3e 31 29 20 41 4e 44 20 28 70 61 74 68 5b 70 70 5d 2e 65 70 3d 30 29 20 44 4f 0a 20 20 20 20   ┆p>1) AND (path[pp].ep=0) DO     ┆
0x03b0c0…03b0e0             20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 70 70 3a 3d 70 70 2d 31 3b 20 70 5f 67 65 74 6e   ┆  BEGIN         pp:=pp-1; p_getn┆
0x03b0e0…03b100             20 28 20 69 64 78 66 2c 70 61 74 68 5b 70 70 5d 2e 6e 72 2c 6e 29 3b 0a 20 20 20 20 20 20 45 4e   ┆ ( idxf,path[pp].nr,n);       EN┆
0x03b100…03b120             44 3b 0a 20 20 20 20 20 20 49 46 20 70 61 74 68 5b 70 70 5d 2e 65 70 3e 30 20 54 48 45 4e 20 57   ┆D;       IF path[pp].ep>0 THEN W┆
0x03b120…03b140             49 54 48 20 6e 5e 2e 65 5b 70 61 74 68 5b 70 70 5d 2e 65 70 5d 20 44 4f 0a 20 20 20 20 20 20 42   ┆ITH n^.e[path[pp].ep] DO       B┆
0x03b140…03b160             45 47 49 4e 0a 20 20 20 20 20 20 20 20 70 6b 65 79 3a 3d 6b 65 79 3b 20 70 64 72 3a 3d 64 72 3b   ┆EGIN         pkey:=key; pdr:=dr;┆
0x03b160…03b180             0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 70 70 3a 3d 30 3b 0a 20 20 20 20 45 4e 44 3b 0a   ┆       END ELSE pp:=0;     END; ┆
0x03b180…03b1a0             20 20 20 20 73 75 63 63 65 73 73 3a 3d 70 70 3c 3e 30 3b 0a 0a 20 20 20 20 69 66 20 6e 6f 74 20   ┆    success:=pp<>0;      if not ┆
0x03b1a0…03b1c0             73 75 63 63 65 73 73 20 74 68 65 6e 20 20 20 20 20 20 09 09 28 2a 20 20 63 6f 72 72 65 63 74 69   ┆success then        (*  correcti┆
0x03b1c0…03b1e0             6f 6e 20 20 38 39 2e 30 33 2e 32 38 20 20 2a 29 0a 20 20 20 20 20 20 62 65 67 69 6e 20 20 20 20   ┆on  89.03.28  *)       begin    ┆
0x03b1e0…03b200             28 2a 20 24 20 55 2b 20 20 2a 29 0a 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 5f 75 6e 69 74   ┆(* $ U+  *)        if debug_unit┆
0x03b200…03b220 (15, 1, 9)  20 74 68 65 6e 0a 20 20 20 20 28 2a 20 20 20 69 66 20 72 72 20 3d 20 30 20 74 68 65 6e 20 20 2a   ┆ then     (*   if rr = 0 then  *┆
0x03b220…03b240             29 0a 09 62 65 67 69 6e 0a 09 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 6e 6f 74   ┆)  begin  write ( output, '  not┆
0x03b240…03b260             20 73 75 63 63 65 73 73 20 69 6e 20 70 72 65 76 6b 65 79 2c 20 20 72 72 3a 20 27 2c 20 72 72 2c   ┆ success in prevkey,  rr: ', rr,┆
0x03b260…03b280             0a 09 20 20 27 20 20 20 20 20 20 20 20 20 70 72 65 73 73 20 61 6e 79 20 6b 65 79 27 29 3b 0a 09   ┆    '         press any key');  ┆
0x03b280…03b2a0             74 63 3a 3d 20 72 65 61 64 6b 65 79 3b 0a 09 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29   ┆tc:= readkey;  writeln ( output)┆
0x03b2a0…03b2c0             3b 0a 20 20 20 20 20 20 20 20 69 66 20 74 63 20 3d 20 23 30 30 20 74 68 65 6e 20 74 63 3a 3d 20   ┆;         if tc = #00 then tc:= ┆
0x03b2c0…03b2e0             72 65 61 64 6b 65 79 3b 0a 20 20 20 20 20 20 20 20 69 66 20 74 63 20 3d 20 23 30 33 20 74 68 65   ┆readkey;         if tc = #03 the┆
0x03b2e0…03b300             6e 20 20 68 61 6c 74 20 28 20 31 31 37 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20   ┆n  halt ( 117);         end;    ┆
0x03b300…03b320             20 20 20 20 63 61 6c 6c 65 64 5f 66 72 6f 6d 5f 70 72 65 76 3a 3d 20 74 72 75 65 3b 09 28 2a 20   ┆    called_from_prev:= true; (* ┆
0x03b320…03b340             20 74 6f 20 70 72 65 76 65 6e 74 20 6c 6f 6f 70 69 6e 67 20 20 2a 29 0a 20 20 20 20 20 20 6e 65   ┆ to prevent looping  *)       ne┆
0x03b340…03b360             78 74 6b 65 79 20 28 20 69 64 78 66 2c 20 70 64 72 2c 20 70 6b 65 79 29 3b 0a 20 20 20 20 20 20   ┆xtkey ( idxf, pdr, pkey);       ┆
0x03b360…03b380             63 61 6c 6c 65 64 5f 66 72 6f 6d 5f 70 72 65 76 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20   ┆called_from_prev:= false;       ┆
0x03b380…03b3a0             70 70 3a 3d 20 30 3b 0a 20 20 20 20 20 20 28 2a 20 24 20 55 2d 20 20 20 2a 29 0a 20 20 20 20 20   ┆pp:= 0;       (* $ U-   *)      ┆
0x03b3a0…03b3c0             20 73 75 63 63 65 73 73 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 20 65 6e 64 0a 0a 20 20 45 4e   ┆ success:= false       end    EN┆
0x03b3c0…03b3e0             44 3b 0a 45 4e 44 3b 20 20 20 28 2a 20 20 70 72 65 76 6b 65 79 20 20 2a 29 0a 0a 50 52 4f 43 45   ┆D; END;   (*  prevkey  *)  PROCE┆
0x03b3e0…03b400             44 55 52 45 20 70 5f 66 69 6e 6b 65 79 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66   ┆DURE p_finkey ( VAR idxf: indexf┆
0x03b400…03b420 (15, 1, 10) 69 6c 65 3b 20 56 41 52 20 70 64 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 70 6b 29 3b 0a 56 41 52   ┆ile; VAR pdr: word; VAR pk); VAR┆
0x03b420…03b440             0a 20 20 70 6b 65 79 3a 20 70 5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75 74 65 20 70 6b 3b 0a 20   ┆   pkey: p_keystr Absolute pk;  ┆
0x03b440…03b460             20 6e 70 72 20 20 20 20 20 20 20 3a 20 77 6f 72 64 3b 0a 20 20 63 2c 6b 2c 6c 2c 72 20 20 20 20   ┆ npr       : word;   c,k,l,r    ┆
0x03b460…03b480             20 3a 20 20 69 6e 74 65 67 65 72 3b 0a 20 20 72 6b 65 79 3a 20 70 5f 6b 65 79 73 74 72 3b 0a 20   ┆ :  integer;   rkey: p_keystr;  ┆
0x03b480…03b4a0             20 6e 3a 20 70 5f 6e 6f 64 72 63 70 3b 0a 42 45 47 49 4e 0a 20 20 57 49 54 48 20 69 64 78 66 20   ┆ n: p_nodrcp; BEGIN   WITH idxf ┆
0x03b4a0…03b4c0             44 4f 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 70 5f 78 6b 65 79 20 28 20 70 6b 65 79 2c 6b 6c 65   ┆DO   BEGIN     p_xkey ( pkey,kle┆
0x03b4c0…03b4e0             6e 29 3b 20 73 75 63 63 65 73 73 3a 3d 66 61 6c 73 65 3b 20 70 70 3a 3d 30 3b 20 6e 70 72 3a 3d   ┆n); success:=false; pp:=0; npr:=┆
0x03b4e0…03b500             72 72 3b 0a 20 20 20 20 57 48 49 4c 45 20 20 28 20 6e 70 72 3c 3e 30 29 20 41 4e 44 20 4e 4f 54   ┆rr;     WHILE  ( npr<>0) AND NOT┆
0x03b500…03b520             20 73 75 63 63 65 73 73 20 44 4f 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 70 70 3a 3d   ┆ success DO     BEGIN       pp:=┆
0x03b520…03b540             70 70 2b 31 3b 20 70 61 74 68 5b 70 70 5d 2e 6e 72 3a 3d 6e 70 72 3b 20 70 5f 67 65 74 6e 20 28   ┆pp+1; path[pp].nr:=npr; p_getn (┆
0x03b540…03b560             20 69 64 78 66 2c 6e 70 72 2c 6e 29 3b 0a 20 20 20 20 20 20 57 49 54 48 20 6e 5e 20 44 4f 0a 20   ┆ idxf,npr,n);       WITH n^ DO  ┆
0x03b560…03b580             20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 6c 3a 3d 31 3b 20 72 3a 3d 6e 65 3b 0a   ┆     BEGIN         l:=1; r:=ne; ┆
0x03b580…03b5a0             20 20 20 20 20 20 20 20 52 45 50 45 41 54 0a 20 20 20 20 20 20 20 20 20 20 6b 3a 3d 28 6c 2b 72   ┆        REPEAT           k:=(l+r┆
0x03b5a0…03b5c0             29 20 44 49 56 20 32 3b 0a 20 20 20 20 20 20 20 20 20 20 63 3a 3d 70 5f 63 6b 65 79 20 28 20 70   ┆) DIV 2;           c:=p_ckey ( p┆
0x03b5c0…03b5e0             6b 65 79 2c 65 5b 6b 5d 2e 6b 65 79 2c 30 2c 65 5b 6b 5d 2e 64 72 2c 64 75 70 6b 65 79 29 3b 0a   ┆key,e[k].key,0,e[k].dr,dupkey); ┆
0x03b5e0…03b600             20 20 20 20 20 20 20 20 20 20 49 46 20 63 3c 3d 30 20 54 48 45 4e 20 72 3a 3d 6b 2d 31 3b 20 49   ┆          IF c<=0 THEN r:=k-1; I┆
0x03b600…03b620 (15, 1, 11) 46 20 63 3e 3d 30 20 54 48 45 4e 20 6c 3a 3d 6b 2b 31 3b 0a 20 20 20 20 20 20 20 20 55 4e 54 49   ┆F c>=0 THEN l:=k+1;         UNTI┆
0x03b620…03b640             4c 20 72 3c 6c 3b 0a 20 20 20 20 20 20 20 20 49 46 20 6c 2d 72 3e 31 20 54 48 45 4e 0a 20 20 20   ┆L r<l;         IF l-r>1 THEN    ┆
0x03b640…03b660             20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 20 20 70 64 72 3a 3d 65 5b 6b 5d 2e 64   ┆     BEGIN           pdr:=e[k].d┆
0x03b660…03b680             72 3b 20 72 3a 3d 6b 3b 20 73 75 63 63 65 73 73 3a 3d 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20   ┆r; r:=k; success:=true;         ┆
0x03b680…03b6a0             45 4e 44 3b 0a 20 20 20 20 20 20 20 20 49 46 20 72 3d 30 20 54 48 45 4e 20 6e 70 72 3a 3d 6e 72   ┆END;         IF r=0 THEN npr:=nr┆
0x03b6a0…03b6c0             30 20 45 4c 53 45 20 6e 70 72 3a 3d 65 5b 72 5d 2e 6e 72 3b 0a 20 20 20 20 20 20 45 4e 44 3b 0a   ┆0 ELSE npr:=e[r].nr;       END; ┆
0x03b6c0…03b6e0             20 20 20 20 20 20 70 61 74 68 5b 70 70 5d 2e 65 70 3a 3d 72 3b 0a 20 20 20 20 45 4e 44 3b 0a 20   ┆      path[pp].ep:=r;     END;  ┆
0x03b6e0…03b700             20 20 20 49 46 20 4e 4f 54 20 73 75 63 63 65 73 73 20 41 4e 44 20 28 70 70 3e 30 29 20 54 48 45   ┆   IF NOT success AND (pp>0) THE┆
0x03b700…03b720             4e 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 57 48 49 4c 45 20 28 70 70 3e 31 29 20 41   ┆N     BEGIN       WHILE (pp>1) A┆
0x03b720…03b740             4e 44 20 28 70 61 74 68 5b 70 70 5d 2e 65 70 3d 30 29 20 44 4f 20 70 70 3a 3d 70 70 2d 31 3b 0a   ┆ND (path[pp].ep=0) DO pp:=pp-1; ┆
0x03b740…03b760             20 20 20 20 20 20 49 46 20 70 61 74 68 5b 70 70 5d 2e 65 70 3d 30 20 54 48 45 4e 20 70 70 3a 3d   ┆      IF path[pp].ep=0 THEN pp:=┆
0x03b760…03b780             30 3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55   ┆0;     END;   END; END;  PROCEDU┆
0x03b780…03b7a0             52 45 20 66 69 6e 64 6b 65 79 20 28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65   ┆RE findkey ( VAR idxf: indexfile┆
0x03b7a0…03b7c0             3b 20 56 41 52 20 70 64 72 3a 20 77 6f 72 64 3b 20 56 41 52 20 70 6b 29 3b 0a 56 41 52 0a 20 20   ┆; VAR pdr: word; VAR pk); VAR   ┆
0x03b7c0…03b7e0             70 61 72 61 6d 5f 6b 65 79 3a 20 70 5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75 74 65 20 70 6b 3b   ┆param_key: p_keystr Absolute pk;┆
0x03b7e0…03b800             0a 20 20 70 6b 65 79 2c 20 74 6b 65 79 3a 20 70 5f 6b 65 79 73 74 72 3b 0a 42 45 47 49 4e 0a 20   ┆   pkey, tkey: p_keystr; BEGIN  ┆
0x03b800…03b820 (15, 1, 12) 20 70 6b 65 79 3a 3d 20 70 61 72 61 6d 5f 6b 65 79 3b 09 09 28 2a 20 20 6e 65 76 65 72 20 63 68   ┆ pkey:= param_key;  (*  never ch┆
0x03b820…03b840             61 6e 67 65 20 70 6b 20 20 20 20 38 39 2e 30 38 2e 30 34 20 20 20 20 2a 29 0a 20 20 70 5f 66 69   ┆ange pk    89.08.04    *)   p_fi┆
0x03b840…03b860             6e 6b 65 79 20 28 20 69 64 78 66 2c 70 64 72 2c 70 6b 65 79 29 3b 0a 20 20 49 46 20 4e 4f 54 20   ┆nkey ( idxf,pdr,pkey);   IF NOT ┆
0x03b860…03b880             73 75 63 63 65 73 73 20 41 4e 44 20 69 64 78 66 2e 64 75 70 6b 65 79 20 54 48 45 4e 0a 20 20 42   ┆success AND idxf.dupkey THEN   B┆
0x03b880…03b8a0             45 47 49 4e 0a 20 20 20 20 74 6b 65 79 3a 3d 70 6b 65 79 3b 20 6e 65 78 74 6b 65 79 20 28 20 69   ┆EGIN     tkey:=pkey; nextkey ( i┆
0x03b8a0…03b8c0             64 78 66 2c 70 64 72 2c 70 6b 65 79 29 3b 0a 20 20 20 20 73 75 63 63 65 73 73 3a 3d 73 75 63 63   ┆dxf,pdr,pkey);     success:=succ┆
0x03b8c0…03b8e0             65 73 73 20 41 4e 44 20 28 70 6b 65 79 3d 74 6b 65 79 29 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44 3b   ┆ess AND (pkey=tkey);   END; END;┆
0x03b8e0…03b900             0a 0a 50 52 4f 43 45 44 55 52 45 20 73 65 61 72 63 68 6b 65 79 20 28 20 56 41 52 20 69 64 78 66   ┆  PROCEDURE searchkey ( VAR idxf┆
0x03b900…03b920             3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20 70 64 72 3a 20 77 6f 72 64 3b 20 56 41 52 20   ┆: indexfile; VAR pdr: word; VAR ┆
0x03b920…03b940             70 6b 29 3b 0a 56 41 52 0a 20 20 70 6b 65 79 3a 20 70 5f 6b 65 79 73 74 72 20 41 62 73 6f 6c 75   ┆pk); VAR   pkey: p_keystr Absolu┆
0x03b940…03b960             74 65 20 70 6b 3b 0a 42 45 47 49 4e 0a 20 20 70 5f 66 69 6e 6b 65 79 20 28 20 69 64 78 66 2c 70   ┆te pk; BEGIN   p_finkey ( idxf,p┆
0x03b960…03b980             64 72 2c 70 6b 65 79 29 3b 0a 20 20 49 46 20 4e 4f 54 20 73 75 63 63 65 73 73 20 54 48 45 4e 20   ┆dr,pkey);   IF NOT success THEN ┆
0x03b980…03b9a0             6e 65 78 74 6b 65 79 20 28 20 69 64 78 66 2c 70 64 72 2c 70 6b 65 79 29 3b 0a 20 20 69 66 20 6e   ┆nextkey ( idxf,pdr,pkey);   if n┆
0x03b9a0…03b9c0             6f 74 20 73 75 63 63 65 73 73 20 74 68 65 6e 20 20 20 20 20 20 20 28 2a 20 20 63 6f 72 72 65 63   ┆ot success then       (*  correc┆
0x03b9c0…03b9e0             74 69 6f 6e 20 20 38 39 2e 30 33 2e 32 38 20 20 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆tion  89.03.28  *)     begin    ┆
0x03b9e0…03ba00             20 70 72 65 76 6b 65 79 20 28 20 69 64 78 66 2c 20 70 64 72 2c 20 70 6b 65 79 29 3b 20 20 20 20   ┆ prevkey ( idxf, pdr, pkey);    ┆
0x03ba00…03ba20 (15, 1, 13) 28 2a 20 20 74 6f 20 6d 61 6b 65 20 61 6e 20 61 73 73 69 67 6e 20 74 6f 20 70 64 72 20 20 2a 29   ┆(*  to make an assign to pdr  *)┆
0x03ba20…03ba40             0a 20 20 20 20 63 6c 65 61 72 6b 65 79 20 28 20 69 64 78 66 29 3b 0a 20 20 20 20 73 75 63 63 65   ┆     clearkey ( idxf);     succe┆
0x03ba40…03ba60             73 73 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6e 64 0a 45 4e 44 3b 0a 0a 7b 2a 2a 2a 2a 2a 2a   ┆ss:= false     end END;  {******┆
0x03ba60…03ba80             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x03ba80…03baa0             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20   ┆*****************} {            ┆
0x03baa0…03bac0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x03bac0…03bae0             20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50   ┆           } {                 P┆
0x03bae0…03bb00             6f 6c 79 46 69 6c 65 20 56 65 72 73 69 6f 6e 20 31 2e 31 30 20 20 20 20 20 20 20 20 20 20 20 20   ┆olyFile Version 1.10            ┆
0x03bb00…03bb20             20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆     } {                        ┆
0x03bb20…03bb40             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d   ┆                               }┆
0x03bb40…03bb60             0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 45 4c 4b 45 59 20 6d 6f   ┆ {                     DELKEY mo┆
0x03bb60…03bb80             64 75 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20   ┆dule                     } {    ┆
0x03bb80…03bba0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x03bba0…03bbc0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20   ┆                   } {          ┆
0x03bbc0…03bbe0             20 20 20 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 36 20 20 20 20 20 20   ┆        Copyright (C) 1986      ┆
0x03bbe0…03bc00             20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6f   ┆             } {              Po┆
0x03bc00…03bc20 (15, 1, 14) 6c 79 54 65 63 68 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 41 2f 53 20 20 20 20 20 20 20 20   ┆lyTech International A/S        ┆
0x03bc20…03bc40             20 20 20 20 20 20 20 7d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆       } {                      ┆
0x03bc40…03bc60             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x03bc60…03bc80             20 7d 0a 7b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆ } {****************************┆
0x03bc80…03bca0             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 7d 0a 0a 7b 24   ┆***************************}  {$┆
0x03bca0…03bcc0             49 2d 2c 53 2b 2c 52 2b 20 7d 0a 0a 50 52 4f 43 45 44 55 52 45 20 64 65 6c 65 74 65 6b 65 79 20   ┆I-,S+,R+ }  PROCEDURE deletekey ┆
0x03bcc0…03bce0             28 20 56 41 52 20 69 64 78 66 3a 20 69 6e 64 65 78 66 69 6c 65 3b 20 56 41 52 20 70 64 72 3a 20   ┆( VAR idxf: indexfile; VAR pdr: ┆
0x03bce0…03bd00             77 6f 72 64 3b 20 56 41 52 20 70 6b 29 3b 0a 56 41 52 0a 20 20 70 6b 65 79 3a 20 70 5f 6b 65 79   ┆word; VAR pk); VAR   pkey: p_key┆
0x03bd00…03bd20             73 74 72 20 41 62 73 6f 6c 75 74 65 20 70 6b 3b 0a 20 20 75 73 69 7a 65 3a 20 62 6f 6f 6c 65 61   ┆str Absolute pk;   usize: boolea┆
0x03bd20…03bd40             6e 3b 0a 20 20 6e 3a 20 70 5f 6e 6f 64 72 63 70 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 64 65 6c   ┆n;   n: p_nodrcp;  PROCEDURE del┆
0x03bd40…03bd60             62 20 28 20 6e 70 72 3a 20 77 6f 72 64 29 3b 0a 56 41 52 0a 20 20 63 2c 69 2c 6b 2c 6c 2c 72 20   ┆b ( npr: word); VAR   c,i,k,l,r ┆
0x03bd60…03bd80             3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 78 70 72 3a 20 77 6f 72 64 3b 0a 20 20 6e 3a 20 70 5f 6e   ┆: integer;   xpr: word;   n: p_n┆
0x03bd80…03bda0             6f 64 72 63 70 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 75 66 6c 6f 77 20 28 20 6e 70 72 2c 6d 70   ┆odrcp;  PROCEDURE uflow ( npr,mp┆
0x03bda0…03bdc0             72 2c 72 3a 20 77 6f 72 64 29 3b 0a 56 41 52 0a 20 20 69 2c 6b 2c 6c 65 2c 6c 70 72 3a 20 69 6e   ┆r,r: word); VAR   i,k,le,lpr: in┆
0x03bdc0…03bde0             74 65 67 65 72 3b 0a 20 20 6e 2c 6d 2c 6c 3a 20 70 5f 6e 6f 64 72 63 70 3b 0a 42 45 47 49 4e 0a   ┆teger;   n,m,l: p_nodrcp; BEGIN ┆
0x03bde0…03be00             20 20 70 5f 67 65 74 6e 20 28 20 69 64 78 66 2c 6e 70 72 2c 6e 29 3b 20 70 5f 67 65 74 6e 20 28   ┆  p_getn ( idxf,npr,n); p_getn (┆
0x03be00…03be20 (15, 1, 15) 20 69 64 78 66 2c 6d 70 72 2c 6d 29 3b 0a 20 20 49 46 20 72 3c 6e 5e 2e 6e 65 20 54 48 45 4e 0a   ┆ idxf,mpr,m);   IF r<n^.ne THEN ┆
0x03be20…03be40             20 20 42 45 47 49 4e 0a 20 20 20 20 72 3a 3d 72 2b 31 3b 20 6c 70 72 3a 3d 6e 5e 2e 65 5b 72 5d   ┆  BEGIN     r:=r+1; lpr:=n^.e[r]┆
0x03be40…03be60             2e 6e 72 3b 20 70 5f 67 65 74 6e 20 28 20 69 64 78 66 2c 6c 70 72 2c 6c 29 3b 0a 20 20 20 20 6b   ┆.nr; p_getn ( idxf,lpr,l);     k┆
0x03be60…03be80             3a 3d 28 6c 5e 2e 6e 65 2d 6e 6f 64 65 68 61 6c 66 2b 31 29 20 44 49 56 20 32 3b 0a 20 20 20 20   ┆:=(l^.ne-nodehalf+1) DIV 2;     ┆
0x03be80…03bea0             6d 5e 2e 65 5b 6e 6f 64 65 68 61 6c 66 5d 3a 3d 6e 5e 2e 65 5b 72 5d 3b 20 6d 5e 2e 65 5b 6e 6f   ┆m^.e[nodehalf]:=n^.e[r]; m^.e[no┆
0x03bea0…03bec0             64 65 68 61 6c 66 5d 2e 6e 72 3a 3d 6c 5e 2e 6e 72 30 3b 0a 20 20 20 20 49 46 20 6b 3e 30 20 54   ┆dehalf].nr:=l^.nr0;     IF k>0 T┆
0x03bec0…03bee0             48 45 4e 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20   ┆HEN     BEGIN       FOR i:=1 TO ┆
0x03bee0…03bf00             6b 2d 31 20 44 4f 20 6d 5e 2e 65 5b 69 2b 6e 6f 64 65 68 61 6c 66 5d 3a 3d 6c 5e 2e 65 5b 69 5d   ┆k-1 DO m^.e[i+nodehalf]:=l^.e[i]┆
0x03bf00…03bf20             3b 0a 20 20 20 20 20 20 6e 5e 2e 65 5b 72 5d 3a 3d 6c 5e 2e 65 5b 6b 5d 3b 20 6e 5e 2e 65 5b 72   ┆;       n^.e[r]:=l^.e[k]; n^.e[r┆
0x03bf20…03bf40             5d 2e 6e 72 3a 3d 6c 70 72 3b 0a 20 20 20 20 20 20 6c 5e 2e 6e 72 30 3a 3d 6c 5e 2e 65 5b 6b 5d   ┆].nr:=lpr;       l^.nr0:=l^.e[k]┆
0x03bf40…03bf60             2e 6e 72 3b 20 6c 5e 2e 6e 65 3a 3d 6c 5e 2e 6e 65 2d 6b 3b 0a 20 20 20 20 20 20 46 4f 52 20 69   ┆.nr; l^.ne:=l^.ne-k;       FOR i┆
0x03bf60…03bf80             3a 3d 31 20 54 4f 20 6c 5e 2e 6e 65 20 44 4f 20 6c 5e 2e 65 5b 69 5d 3a 3d 6c 5e 2e 65 5b 69 2b   ┆:=1 TO l^.ne DO l^.e[i]:=l^.e[i+┆
0x03bf80…03bfa0             6b 5d 3b 0a 20 20 20 20 20 20 6d 5e 2e 6e 65 3a 3d 6e 6f 64 65 68 61 6c 66 2d 31 2b 6b 3b 20 75   ┆k];       m^.ne:=nodehalf-1+k; u┆
0x03bfa0…03bfc0             73 69 7a 65 3a 3d 66 61 6c 73 65 3b 20 70 5f 75 70 64 6e 20 28 20 6c 29 3b 0a 20 20 20 20 45 4e   ┆size:=false; p_updn ( l);     EN┆
0x03bfc0…03bfe0             44 20 45 4c 53 45 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 31 20   ┆D ELSE     BEGIN       FOR i:=1 ┆
0x03bfe0…03c000             54 4f 20 6e 6f 64 65 68 61 6c 66 20 44 4f 20 6d 5e 2e 65 5b 69 2b 6e 6f 64 65 68 61 6c 66 5d 3a   ┆TO nodehalf DO m^.e[i+nodehalf]:┆
0x03c000…03c020 (16, 0, 1)  3d 6c 5e 2e 65 5b 69 5d 3b 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 72 20 54 4f 20 6e 5e 2e 6e   ┆=l^.e[i];       FOR i:=r TO n^.n┆
0x03c020…03c040             65 2d 31 20 44 4f 20 6e 5e 2e 65 5b 69 5d 3a 3d 6e 5e 2e 65 5b 69 2b 31 5d 3b 0a 20 20 20 20 20   ┆e-1 DO n^.e[i]:=n^.e[i+1];      ┆
0x03c040…03c060             20 6d 5e 2e 6e 65 3a 3d 6e 6f 64 65 73 69 7a 65 3b 20 6e 5e 2e 6e 65 3a 3d 6e 5e 2e 6e 65 2d 31   ┆ m^.ne:=nodesize; n^.ne:=n^.ne-1┆
0x03c060…03c080             3b 20 70 5f 72 65 74 6e 20 28 20 6c 29 3b 0a 20 20 20 20 20 20 75 73 69 7a 65 3a 3d 6e 5e 2e 6e   ┆; p_retn ( l);       usize:=n^.n┆
0x03c080…03c0a0             65 3c 6e 6f 64 65 68 61 6c 66 3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 70 5f 75 70 64 6e 20   ┆e<nodehalf;     END;     p_updn ┆
0x03c0a0…03c0c0             28 20 6d 29 3b 0a 20 20 45 4e 44 20 45 4c 53 45 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 49 46 20   ┆( m);   END ELSE   BEGIN     IF ┆
0x03c0c0…03c0e0             72 3d 31 20 54 48 45 4e 20 6c 70 72 3a 3d 6e 5e 2e 6e 72 30 20 45 4c 53 45 20 6c 70 72 3a 3d 6e   ┆r=1 THEN lpr:=n^.nr0 ELSE lpr:=n┆
0x03c0e0…03c100             5e 2e 65 5b 72 2d 31 5d 2e 6e 72 3b 20 70 5f 67 65 74 6e 20 28 20 69 64 78 66 2c 6c 70 72 2c 6c   ┆^.e[r-1].nr; p_getn ( idxf,lpr,l┆
0x03c100…03c120             29 3b 0a 20 20 20 20 6c 65 3a 3d 6c 5e 2e 6e 65 2b 31 3b 20 6b 3a 3d 28 6c 65 2d 6e 6f 64 65 68   ┆);     le:=l^.ne+1; k:=(le-nodeh┆
0x03c120…03c140             61 6c 66 29 20 44 49 56 20 32 3b 0a 20 20 20 20 49 46 20 6b 3e 30 20 54 48 45 4e 0a 20 20 20 20   ┆alf) DIV 2;     IF k>0 THEN     ┆
0x03c140…03c160             42 45 47 49 4e 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 6e 6f 64 65 68 61 6c 66 2d 31 20 44 4f   ┆BEGIN       FOR i:=nodehalf-1 DO┆
0x03c160…03c180             57 4e 54 4f 20 31 20 44 4f 20 6d 5e 2e 65 5b 69 2b 6b 5d 3a 3d 6d 5e 2e 65 5b 69 5d 3b 0a 20 20   ┆WNTO 1 DO m^.e[i+k]:=m^.e[i];   ┆
0x03c180…03c1a0             20 20 20 20 6d 5e 2e 65 5b 6b 5d 3a 3d 6e 5e 2e 65 5b 72 5d 3b 20 6d 5e 2e 65 5b 6b 5d 2e 6e 72   ┆    m^.e[k]:=n^.e[r]; m^.e[k].nr┆
0x03c1a0…03c1c0             3a 3d 6d 5e 2e 6e 72 30 3b 20 6c 65 3a 3d 6c 65 2d 6b 3b 0a 20 20 20 20 20 20 46 4f 52 20 69 3a   ┆:=m^.nr0; le:=le-k;       FOR i:┆
0x03c1c0…03c1e0             3d 6b 2d 31 20 44 4f 57 4e 54 4f 20 31 20 44 4f 20 6d 5e 2e 65 5b 69 5d 3a 3d 6c 5e 2e 65 5b 69   ┆=k-1 DOWNTO 1 DO m^.e[i]:=l^.e[i┆
0x03c1e0…03c200             2b 6c 65 5d 3b 0a 20 20 20 20 20 20 6d 5e 2e 6e 72 30 3a 3d 6c 5e 2e 65 5b 6c 65 5d 2e 6e 72 3b   ┆+le];       m^.nr0:=l^.e[le].nr;┆
0x03c200…03c220 (16, 0, 2)  20 6e 5e 2e 65 5b 72 5d 3a 3d 6c 5e 2e 65 5b 6c 65 5d 3b 20 6e 5e 2e 65 5b 72 5d 2e 6e 72 3a 3d   ┆ n^.e[r]:=l^.e[le]; n^.e[r].nr:=┆
0x03c220…03c240             6d 70 72 3b 0a 20 20 20 20 20 20 6c 5e 2e 6e 65 3a 3d 6c 65 2d 31 3b 20 6d 5e 2e 6e 65 3a 3d 6e   ┆mpr;       l^.ne:=le-1; m^.ne:=n┆
0x03c240…03c260             6f 64 65 68 61 6c 66 2d 31 2b 6b 3b 20 75 73 69 7a 65 3a 3d 66 61 6c 73 65 3b 20 70 5f 75 70 64   ┆odehalf-1+k; usize:=false; p_upd┆
0x03c260…03c280             6e 20 28 20 6d 29 3b 0a 20 20 20 20 45 4e 44 20 45 4c 53 45 0a 20 20 20 20 42 45 47 49 4e 0a 20   ┆n ( m);     END ELSE     BEGIN  ┆
0x03c280…03c2a0             20 20 20 20 20 6c 5e 2e 65 5b 6c 65 5d 3a 3d 6e 5e 2e 65 5b 72 5d 3b 20 6c 5e 2e 65 5b 6c 65 5d   ┆     l^.e[le]:=n^.e[r]; l^.e[le]┆
0x03c2a0…03c2c0             2e 6e 72 3a 3d 6d 5e 2e 6e 72 30 3b 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6e   ┆.nr:=m^.nr0;       FOR i:=1 TO n┆
0x03c2c0…03c2e0             6f 64 65 68 61 6c 66 2d 31 20 44 4f 20 6c 5e 2e 65 5b 69 2b 6c 65 5d 3a 3d 6d 5e 2e 65 5b 69 5d   ┆odehalf-1 DO l^.e[i+le]:=m^.e[i]┆
0x03c2e0…03c300             3b 0a 20 20 20 20 20 20 6c 5e 2e 6e 65 3a 3d 6e 6f 64 65 73 69 7a 65 3b 20 6e 5e 2e 6e 65 3a 3d   ┆;       l^.ne:=nodesize; n^.ne:=┆
0x03c300…03c320             6e 5e 2e 6e 65 2d 31 3b 20 70 5f 72 65 74 6e 20 28 20 6d 29 3b 0a 20 20 20 20 20 20 75 73 69 7a   ┆n^.ne-1; p_retn ( m);       usiz┆
0x03c320…03c340             65 3a 3d 6e 5e 2e 6e 65 3c 6e 6f 64 65 68 61 6c 66 3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20 20 20   ┆e:=n^.ne<nodehalf;     END;     ┆
0x03c340…03c360             70 5f 75 70 64 6e 20 28 20 6c 29 3b 0a 20 20 45 4e 44 3b 0a 20 20 70 5f 75 70 64 6e 20 28 20 6e   ┆p_updn ( l);   END;   p_updn ( n┆
0x03c360…03c380             29 3b 0a 45 4e 44 3b 0a 0a 50 52 4f 43 45 44 55 52 45 20 64 65 6c 61 20 28 20 6d 70 72 3a 20 77   ┆); END;  PROCEDURE dela ( mpr: w┆
0x03c380…03c3a0             6f 72 64 29 3b 0a 56 41 52 0a 20 20 63 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 78 70 72 3a 20 77   ┆ord); VAR   c: integer;   xpr: w┆
0x03c3a0…03c3c0             6f 72 64 3b 0a 20 20 6d 3a 20 70 5f 6e 6f 64 72 63 70 3b 0a 42 45 47 49 4e 0a 20 20 70 5f 67 65   ┆ord;   m: p_nodrcp; BEGIN   p_ge┆
0x03c3c0…03c3e0             74 6e 20 28 20 69 64 78 66 2c 6d 70 72 2c 6d 29 3b 0a 20 20 57 49 54 48 20 6d 5e 20 44 4f 0a 20   ┆tn ( idxf,mpr,m);   WITH m^ DO  ┆
0x03c3e0…03c400             20 42 45 47 49 4e 0a 20 20 20 20 78 70 72 3a 3d 65 5b 6e 65 5d 2e 6e 72 3b 0a 20 20 20 20 49 46   ┆ BEGIN     xpr:=e[ne].nr;     IF┆
0x03c400…03c420 (16, 0, 3)  20 78 70 72 3c 3e 30 20 54 48 45 4e 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 63 3a 3d   ┆ xpr<>0 THEN     BEGIN       c:=┆
0x03c420…03c440             6e 65 3b 20 64 65 6c 61 20 28 20 78 70 72 29 3b 20 49 46 20 75 73 69 7a 65 20 54 48 45 4e 20 75   ┆ne; dela ( xpr); IF usize THEN u┆
0x03c440…03c460             66 6c 6f 77 20 28 20 6d 70 72 2c 78 70 72 2c 63 29 3b 0a 20 20 20 20 45 4e 44 20 45 4c 53 45 0a   ┆flow ( mpr,xpr,c);     END ELSE ┆
0x03c460…03c480             20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 70 5f 67 65 74 6e 20 28 20 69 64 78 66 2c 6e 70   ┆    BEGIN       p_getn ( idxf,np┆
0x03c480…03c4a0             72 2c 6e 29 3b 0a 20 20 20 20 20 20 65 5b 6e 65 5d 2e 6e 72 3a 3d 6e 5e 2e 65 5b 6b 5d 2e 6e 72   ┆r,n);       e[ne].nr:=n^.e[k].nr┆
0x03c4a0…03c4c0             3b 20 6e 5e 2e 65 5b 6b 5d 3a 3d 65 5b 6e 65 5d 3b 0a 20 20 20 20 20 20 6e 65 3a 3d 6e 65 2d 31   ┆; n^.e[k]:=e[ne];       ne:=ne-1┆
0x03c4c0…03c4e0             3b 20 75 73 69 7a 65 3a 3d 6e 65 3c 6e 6f 64 65 68 61 6c 66 3b 0a 20 20 20 20 20 20 70 5f 75 70   ┆; usize:=ne<nodehalf;       p_up┆
0x03c4e0…03c500             64 6e 20 28 20 6e 29 3b 20 70 5f 75 70 64 6e 20 28 20 6d 29 3b 0a 20 20 20 20 45 4e 44 3b 0a 20   ┆dn ( n); p_updn ( m);     END;  ┆
0x03c500…03c520             20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 42 45 47 49 4e 0a 20 20 49 46 20 6e 70 72 3d 30 20 54 48 45   ┆ END; END;  BEGIN   IF npr=0 THE┆
0x03c520…03c540             4e 0a 20 20 42 45 47 49 4e 0a 20 20 20 20 73 75 63 63 65 73 73 3a 3d 66 61 6c 73 65 3b 20 75 73   ┆N   BEGIN     success:=false; us┆
0x03c540…03c560             69 7a 65 3a 3d 66 61 6c 73 65 3b 0a 20 20 45 4e 44 20 45 4c 53 45 0a 20 20 42 45 47 49 4e 0a 20   ┆ize:=false;   END ELSE   BEGIN  ┆
0x03c560…03c580             20 20 20 70 5f 67 65 74 6e 20 28 20 69 64 78 66 2c 6e 70 72 2c 6e 29 3b 0a 20 20 20 20 57 49 54   ┆   p_getn ( idxf,npr,n);     WIT┆
0x03c580…03c5a0             48 20 6e 5e 20 44 4f 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 6c 3a 3d 31 3b 20 72 3a   ┆H n^ DO     BEGIN       l:=1; r:┆
0x03c5a0…03c5c0             3d 6e 65 3b 0a 20 20 20 20 20 20 52 45 50 45 41 54 0a 20 20 20 20 20 20 20 20 6b 3a 3d 28 6c 2b   ┆=ne;       REPEAT         k:=(l+┆
0x03c5c0…03c5e0             72 29 20 44 49 56 20 32 3b 0a 20 20 20 20 20 20 20 20 63 3a 3d 70 5f 63 6b 65 79 20 28 20 70 6b   ┆r) DIV 2;         c:=p_ckey ( pk┆
0x03c5e0…03c600             65 79 2c 65 5b 6b 5d 2e 6b 65 79 2c 70 64 72 2c 65 5b 6b 5d 2e 64 72 2c 69 64 78 66 2e 64 75 70   ┆ey,e[k].key,pdr,e[k].dr,idxf.dup┆
0x03c600…03c620 (16, 0, 4)  6b 65 79 29 3b 0a 20 20 20 20 20 20 20 20 49 46 20 63 3c 3d 30 20 54 48 45 4e 20 72 3a 3d 6b 2d   ┆key);         IF c<=0 THEN r:=k-┆
0x03c620…03c640             31 3b 20 49 46 20 63 3e 3d 30 20 54 48 45 4e 20 6c 3a 3d 6b 2b 31 3b 0a 20 20 20 20 20 20 55 4e   ┆1; IF c>=0 THEN l:=k+1;       UN┆
0x03c640…03c660             54 49 4c 20 6c 3e 72 3b 0a 20 20 20 20 20 20 49 46 20 72 3d 30 20 54 48 45 4e 20 78 70 72 3a 3d   ┆TIL l>r;       IF r=0 THEN xpr:=┆
0x03c660…03c680             6e 72 30 20 45 4c 53 45 20 78 70 72 3a 3d 65 5b 72 5d 2e 6e 72 3b 0a 20 20 20 20 20 20 49 46 20   ┆nr0 ELSE xpr:=e[r].nr;       IF ┆
0x03c680…03c6a0             6c 2d 72 3e 31 20 54 48 45 4e 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 09 70 64 72 3a 3d 65 5b 6b   ┆l-r>1 THEN       BEGIN  pdr:=e[k┆
0x03c6a0…03c6c0             5d 2e 64 72 3b 0a 09 49 46 20 78 70 72 3d 30 20 54 48 45 4e 0a 09 42 45 47 49 4e 0a 09 20 20 6e   ┆].dr;  IF xpr=0 THEN  BEGIN    n┆
0x03c6c0…03c6e0             65 3a 3d 6e 65 2d 31 3b 20 75 73 69 7a 65 3a 3d 6e 65 3c 6e 6f 64 65 68 61 6c 66 3b 0a 09 20 20   ┆e:=ne-1; usize:=ne<nodehalf;    ┆
0x03c6e0…03c700             46 4f 52 20 69 3a 3d 6b 20 54 4f 20 6e 65 20 44 4f 20 65 5b 69 5d 3a 3d 65 5b 69 2b 31 5d 3b 0a   ┆FOR i:=k TO ne DO e[i]:=e[i+1]; ┆
0x03c700…03c720             09 20 20 70 5f 75 70 64 6e 20 28 20 6e 29 3b 0a 09 45 4e 44 20 45 4c 53 45 0a 09 42 45 47 49 4e   ┆   p_updn ( n);  END ELSE  BEGIN┆
0x03c720…03c740             0a 09 20 20 64 65 6c 61 20 28 20 78 70 72 29 3b 20 49 46 20 75 73 69 7a 65 20 54 48 45 4e 20 75   ┆    dela ( xpr); IF usize THEN u┆
0x03c740…03c760             66 6c 6f 77 20 28 20 6e 70 72 2c 78 70 72 2c 72 29 3b 0a 09 45 4e 44 3b 0a 20 20 20 20 20 20 45   ┆flow ( npr,xpr,r);  END;       E┆
0x03c760…03c780             4e 44 20 45 4c 53 45 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 64 65 6c 62   ┆ND ELSE       BEGIN         delb┆
0x03c780…03c7a0             20 28 20 78 70 72 29 3b 20 49 46 20 75 73 69 7a 65 20 54 48 45 4e 20 75 66 6c 6f 77 20 28 20 6e   ┆ ( xpr); IF usize THEN uflow ( n┆
0x03c7a0…03c7c0             70 72 2c 78 70 72 2c 72 29 3b 0a 20 20 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 45 4e 44 3b 0a 20   ┆pr,xpr,r);       END;     END;  ┆
0x03c7c0…03c7e0             20 45 4e 44 3b 0a 45 4e 44 3b 0a 0a 42 45 47 49 4e 0a 20 20 57 49 54 48 20 69 64 78 66 20 44 4f   ┆ END; END;  BEGIN   WITH idxf DO┆
0x03c7e0…03c800             0a 20 20 42 45 47 49 4e 0a 20 20 20 20 70 5f 78 6b 65 79 20 28 20 70 6b 65 79 2c 6b 6c 65 6e 29   ┆   BEGIN     p_xkey ( pkey,klen)┆
0x03c800…03c820 (16, 0, 5)  3b 20 73 75 63 63 65 73 73 3a 3d 74 72 75 65 3b 20 64 65 6c 62 20 28 20 72 72 29 3b 0a 20 20 20   ┆; success:=true; delb ( rr);    ┆
0x03c820…03c840             20 49 46 20 75 73 69 7a 65 20 54 48 45 4e 0a 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 70   ┆ IF usize THEN     BEGIN       p┆
0x03c840…03c860             5f 67 65 74 6e 20 28 20 69 64 78 66 2c 72 72 2c 6e 29 3b 0a 20 20 20 20 20 20 49 46 20 6e 5e 2e   ┆_getn ( idxf,rr,n);       IF n^.┆
0x03c860…03c880             6e 65 3d 30 20 54 48 45 4e 0a 20 20 20 20 20 20 42 45 47 49 4e 0a 20 20 20 20 20 20 20 20 72 72   ┆ne=0 THEN       BEGIN         rr┆
0x03c880…03c8a0             3a 3d 6e 5e 2e 6e 72 30 3b 20 70 5f 72 65 74 6e 20 28 20 6e 29 3b 0a 20 20 20 20 20 20 45 4e 44   ┆:=n^.nr0; p_retn ( n);       END┆
0x03c8a0…03c8c0             3b 0a 20 20 20 20 45 4e 44 3b 0a 20 20 20 20 70 70 3a 3d 30 3b 0a 20 20 45 4e 44 3b 0a 45 4e 44   ┆;     END;     pp:=0;   END; END┆
0x03c8c0…03c8e0             3b 0a 0a 0a 0a 20 20 28 2a 24 46 2b 20 20 2a 29 0a 20 20 50 72 6f 63 65 64 75 72 65 20 6d 79 65   ┆;      (*$F+  *)   Procedure mye┆
0x03c8e0…03c900             78 69 74 3b 20 20 20 20 20 20 20 28 2a 24 46 2d 20 20 2a 29 0a 20 20 20 20 76 61 72 20 20 70 20   ┆xit;       (*$F-  *)     var  p ┆
0x03c900…03c920             3a 20 77 6f 72 64 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d   ┆: word;     begin     (*--------┆
0x03c920…03c940             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 38 39 2e 31 31   ┆-------------------------- 89.11┆
0x03c940…03c960             2e 30 31 20 2d 2d 2d 2d 2d 2d 2d 0a 20 20 20 20 69 66 20 65 78 69 74 63 6f 64 65 20 3d 20 32 30   ┆.01 -------     if exitcode = 20┆
0x03c960…03c980             31 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e   ┆1 then       begin       writeln┆
0x03c980…03c9a0             20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 6d 61 70 20 69 6e 64 65 78 20 3a 20 27 2c 20   ┆ ( output, '--   map index : ', ┆
0x03c9a0…03c9c0             6d 61 70 69 78 29 3b 0a 20 20 20 20 20 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 6d 61 78 5f 6e   ┆mapix);       for p:= 1 to max_n┆
0x03c9c0…03c9e0             62 75 66 73 69 7a 65 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20   ┆bufsize do         begin        ┆
0x03c9e0…03ca00             20 69 66 20 28 70 20 61 6e 64 20 31 29 20 3d 20 31 20 74 68 65 6e 20 20 77 72 69 74 65 20 28 20   ┆ if (p and 1) = 1 then  write ( ┆
0x03ca00…03ca20 (16, 0, 6)  6f 75 74 70 75 74 2c 20 70 3a 36 2c 20 27 20 3a 20 27 2c 20 70 5f 6e 6d 61 70 5b 70 5d 3a 36 29   ┆output, p:6, ' : ', p_nmap[p]:6)┆
0x03ca20…03ca40             0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 77 72 69 74 65 6c 6e 20 28 20 27 20 20 20 20 20 20 27   ┆         else writeln ( '      '┆
0x03ca40…03ca60             2c 20 70 5f 6e 6d 61 70 5b 70 5d 3a 36 29 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20   ┆, p_nmap[p]:6)         end;     ┆
0x03ca60…03ca80             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 65 6e 64 3b 0a 2d   ┆  writeln ( output)       end; -┆
0x03ca80…03caa0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03caa0…03cac0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 20 20 20 20   ┆------------------------*)      ┆
0x03cac0…03cae0             66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 6d 61 78 66 69 6c 65 73 20 64 6f 0a 20 20 20 20 20 20 69   ┆for p:= 1 to maxfiles do       i┆
0x03cae0…03cb00             66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 20 3c 3e 20 6e 69 6c 20 74 68 65 6e 0a 20 20 20 20   ┆f file_table[p] <> nil then     ┆
0x03cb00…03cb20             20 20 69 66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 5e 2e 66 69 6c 65 64 65 73 2e 6d 6f 64 65   ┆  if file_table[p]^.filedes.mode┆
0x03cb20…03cb40             20 3d 20 66 6d 69 6e 6f 75 74 20 74 68 65 6e 0a 09 63 6c 6f 73 65 20 28 20 66 69 6c 65 5f 74 61   ┆ = fminout then  close ( file_ta┆
0x03cb40…03cb60             62 6c 65 5b 70 5d 5e 2e 66 29 3b 0a 20 20 20 20 69 66 20 73 69 7a 65 5f 6f 66 5f 72 62 75 66 20   ┆ble[p]^.f);     if size_of_rbuf ┆
0x03cb60…03cb80             3c 3e 20 30 20 74 68 65 6e 20 66 72 65 65 6d 65 6d 20 28 20 70 5f 72 62 75 66 5f 70 2c 20 73 69   ┆<> 0 then freemem ( p_rbuf_p, si┆
0x03cb80…03cba0             7a 65 5f 6f 66 5f 72 62 75 66 29 3b 0a 20 20 20 20 69 66 20 73 69 7a 65 5f 6f 66 5f 6e 62 75 66   ┆ze_of_rbuf);     if size_of_nbuf┆
0x03cba0…03cbc0             20 3c 3e 20 30 20 74 68 65 6e 20 66 72 65 65 6d 65 6d 20 28 20 70 5f 6e 62 75 66 5f 70 2c 20 73   ┆ <> 0 then freemem ( p_nbuf_p, s┆
0x03cbc0…03cbe0             69 7a 65 5f 6f 66 5f 6e 62 75 66 29 3b 0a 0a 20 20 20 20 65 78 69 74 70 72 6f 63 3a 3d 20 65 78   ┆ize_of_nbuf);      exitproc:= ex┆
0x03cbe0…03cc00             69 74 73 61 76 65 0a 20 20 20 20 65 6e 64 3b 0a 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆itsave     end;   (*------------┆
0x03cc00…03cc20 (16, 0, 7)  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03cc20…03cc40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a   ┆-----------------------------*) ┆
0x03cc40…03cc60             0a 62 65 67 69 6e 09 28 2a 20 20 20 20 69 6e 69 74 69 61 6c 69 7a 65 20 64 6f 6e 65 20 69 6e 20   ┆ begin (*    initialize done in ┆
0x03cc60…03cc80             70 6f 6c 79 66 69 6c 65 5f 63 6f 6e 66 69 67 20 20 2a 29 0a 0a 65 78 69 74 73 61 76 65 3a 3d 20   ┆polyfile_config  *)  exitsave:= ┆
0x03cc80…03cca0             65 78 69 74 70 72 6f 63 3b 0a 65 78 69 74 70 72 6f 63 3a 3d 20 61 64 64 72 20 28 20 6d 79 65 78   ┆exitproc; exitproc:= addr ( myex┆
0x03cca0…03ccc0             69 74 29 3b 0a 0a 65 6e 64 2e 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆it);  end.  (*------------------┆
0x03ccc0…03cce0             2d 2d 2d 2d 2d 2d 2d 2d 20 65 6e 64 20 6f 66 20 50 6f 6c 79 46 69 6c 65 20 2d 2d 2d 2d 2d 2d 2d   ┆-------- end of PolyFile -------┆
0x03cce0…03cd00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 01 45   ┆-------------------------*)    E┆
0x03cd00…03cd20             20 31 0a 66 20 66 69 6c 65 5f 74 61 62 6c 65 5b 70 5d 5e 2e 66 69 6c 65 64 65 73 2e 6d 6f 64 65   ┆ 1 f file_table[p]^.filedes.mode┆
0x03cd20…03cd40             20 3d 20 66 6d 69 6e 6f 75 74 20 74 68 65 6e 0a 09 63 6c 6f 73 65 20 28 20 66 69 6c 65 5f 74 61   ┆ = fminout then  close ( file_ta┆
0x03cd40…03cd60             62 6c 65 5b 70 5d 5e 2e 66 29 3b 0a 20 20 20 20 69 66 20 73 69 7a 65 5f 6f 66 5f 72 62 75 66 20   ┆ble[p]^.f);     if size_of_rbuf ┆
0x03cd60…03cd80             3c 3e 20 30 20 74 68 65 6e 20 66 72 65 65 6d 65 6d 20 28 20 70 5f 72 62 75 66 5f 70 2c 20 73 69   ┆<> 0 then freemem ( p_rbuf_p, si┆
0x03cd80…03cda0             7a 65 5f 6f 66 5f 72 62 75 66 29 3b 0a 20 20 20 20 69 66 20 73 69 7a 65 5f 6f 66 5f 6e 62 75 66   ┆ze_of_rbuf);     if size_of_nbuf┆
0x03cda0…03cdc0             20 3c 3e 20 30 20 74 68 65 6e 20 66 72 65 65 6d 65 6d 20 28 20 70 5f 6e 62 75 66 5f 70 2c 20 73   ┆ <> 0 then freemem ( p_nbuf_p, s┆
0x03cdc0…03cde0             69 7a 65 5f 6f 66 5f 6e 62 75 66 29 3b 0a 0a 20 20 20 20 65 78 69 74 70 72 6f 63 3a 3d 20 65 78   ┆ize_of_nbuf);      exitproc:= ex┆
0x03cde0…03ce00             69 74 73 61 76 65 0a 20 20 20 20 65 6e 64 3b 0a 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆itsave     end;   (*------------┆
0x03ce00…03ce20 (16, 0, 8)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 74 65 73 74 69 6e 78 2e 70 61 73   ┆../sw2103/src/util/s.testinx.pas┆
0x03ce20…03ce40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x03ce60…03ce80             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x03ce80…03cea0             20 20 20 36 35 37 36 20 20 35 32 36 35 33 32 37 36 36 34 20 20 31 31 35 35 31 00 20 00 00 00 00   ┆   6576  5265327664  11551      ┆
0x03cea0…03cec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x03d000…03d020 (16, 0, 9)  01 68 33 34 35 38 39 0a 01 73 20 30 30 31 36 36 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20   ┆ h34589  s 00166/00000/00000  d ┆
0x03d020…03d040             44 20 31 2e 31 20 39 32 2f 31 30 2f 30 39 20 31 31 3a 32 32 3a 31 39 20 73 77 32 31 30 33 20 31   ┆D 1.1 92/10/09 11:22:19 sw2103 1┆
0x03d040…03d060             20 30 0a 01 63 20 53 43 43 53 20 75 73 65 64 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a   ┆ 0  c SCCS used.  e  u  U  t  T ┆
0x03d060…03d080             01 49 20 31 0a 50 72 6f 67 72 61 6d 20 74 65 73 74 69 6e 78 3b 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d   ┆ I 1 Program testinx; (*--------┆
0x03d080…03d0a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03d0a0…03d0c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 09 54 65 73   ┆---------------------- -- -- Tes┆
0x03d0c0…03d0e0             74 20 6f 66 20 70 6f 6c 79 66 69 6c 65 20 75 6e 69 74 0a 2d 2d 0a 2d 2d 09 72 65 61 64 20 6c 6f   ┆t of polyfile unit -- -- read lo┆
0x03d0e0…03d100             67 66 69 6c 65 20 61 6e 64 20 72 65 70 65 61 74 20 61 6c 6c 20 6f 70 65 72 61 74 69 6f 6e 73 0a   ┆gfile and repeat all operations ┆
0x03d100…03d120             2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆-- -----------------------------┆
0x03d120…03d140             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03d140…03d160             2d 2d 2d 2d 0a 2a 29 0a 7b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆---- *) { ----------------------┆
0x03d160…03d180             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03d180…03d1a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f   ┆------------- -- SCCS informatio┆
0x03d1a0…03d1c0             6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20   ┆n -- File   :  %P% -- Module :  ┆
0x03d1c0…03d1e0             25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a   ┆%M% -- Version:  %I% -- Date   :┆
0x03d1e0…03d200             20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆  %E%  %U% ---------------------┆
0x03d200…03d220 (16, 0, 10) 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03d220…03d240             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 7d 0a 0a 75 73 65 73 20 44 4f 53 2c 20 70 6f 6c 79   ┆-------------- }  uses DOS, poly┆
0x03d240…03d260             66 69 6c 65 3b 0a 0a 63 6f 6e 73 74 0a 20 20 20 28 2a 2d 2d 2d 2d 2d 2d 0a 20 20 20 6d 61 78 72   ┆file;  const    (*------    maxr┆
0x03d260…03d280             73 69 7a 65 09 3d 20 20 34 34 3b 0a 20 20 20 6d 61 78 6b 73 69 7a 65 09 3d 20 20 31 32 3b 0a 20   ┆size =  44;    maxksize =  12;  ┆
0x03d280…03d2a0             20 20 6e 6f 64 65 73 69 7a 65 09 3d 20 20 31 36 3b 0a 20 20 20 6e 6f 64 65 68 61 6c 66 09 3d 20   ┆  nodesize =  16;    nodehalf = ┆
0x03d2a0…03d2c0             20 20 38 3b 0a 20 20 20 6e 62 75 66 73 69 7a 65 09 3d 20 20 31 38 3b 0a 20 20 20 6d 61 78 64 65   ┆  8;    nbufsize =  18;    maxde┆
0x03d2c0…03d2e0             70 74 68 09 3d 20 20 20 36 3b 0a 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 6d 61 78   ┆pth =   6;    ---------*)    max┆
0x03d2e0…03d300             65 72 72 6f 72 73 09 3d 20 20 31 34 3b 0a 0a 74 79 70 65 0a 20 20 20 61 6c 66 61 09 3d 20 20 73   ┆errors =  14;  type    alfa =  s┆
0x03d300…03d320             74 72 69 6e 67 5b 31 32 5d 3b 0a 76 61 72 0a 20 20 20 66 75 6e 63 09 09 3a 20 20 63 68 61 72 3b   ┆tring[12]; var    func  :  char;┆
0x03d320…03d340             0a 20 20 20 65 72 72 6f 72 73 2c 0a 20 20 20 64 75 70 2c 0a 20 20 20 6c 6f 67 6e 6f 2c 0a 20 20   ┆    errors,    dup,    logno,   ┆
0x03d340…03d360             20 70 2c 20 74 2c 20 78 78 2c 0a 20 20 20 64 72 6e 2c 20 6e 65 77 72 6e 09 3a 20 20 77 6f 72 64   ┆ p, t, xx,    drn, newrn :  word┆
0x03d360…03d380             3b 0a 20 20 20 6b 65 79 2c 20 6e 65 77 6b 65 79 09 3a 20 20 61 6c 66 61 3b 0a 20 20 20 74 6f 6b   ┆;    key, newkey :  alfa;    tok┆
0x03d380…03d3a0             2c 20 6e 65 77 6f 6b 09 3a 20 20 61 6c 66 61 3b 0a 20 20 20 61 63 74 69 6f 6e 09 3a 20 20 73 74   ┆, newok :  alfa;    action :  st┆
0x03d3a0…03d3c0             72 69 6e 67 5b 32 35 35 5d 3b 0a 20 20 20 6c 6f 67 09 09 3a 20 20 74 65 78 74 3b 0a 0a 20 28 2a   ┆ring[255];    log  :  text;   (*┆
0x03d3c0…03d3e0             20 20 20 24 20 49 20 50 6f 6c 79 46 69 6c 63 20 20 20 2a 29 0a 0a 20 76 61 72 0a 20 20 20 20 69   ┆   $ I PolyFilc   *)   var     i┆
0x03d3e0…03d400             6e 78 66 09 09 3a 20 20 69 6e 64 65 78 66 69 6c 65 3b 0a 0a 20 62 65 67 69 6e 0a 20 65 72 72 6f   ┆nxf  :  indexfile;   begin  erro┆
0x03d400…03d420 (16, 0, 11) 72 73 3a 3d 20 30 3b 0a 0a 20 69 66 20 70 61 72 61 6d 63 6f 75 6e 74 20 3c 20 31 20 74 68 65 6e   ┆rs:= 0;   if paramcount < 1 then┆
0x03d420…03d440             0a 20 20 20 62 65 67 69 6e 0a 20 20 20 77 72 69 74 65 6c 6e 20 28 20 27 20 50 72 6f 67 72 61 6d   ┆    begin    writeln ( ' Program┆
0x03d440…03d460             20 63 61 6c 6c 3a 20 20 54 45 53 54 49 4e 58 20 3c 6c 6f 67 69 6e 64 65 78 2e 74 78 74 3e 20 3c   ┆ call:  TESTINX <logindex.txt> <┆
0x03d460…03d480             64 75 70 6b 65 79 3e 27 29 3b 0a 20 20 20 68 61 6c 74 0a 20 20 20 65 6e 64 3b 0a 0a 20 61 63 74   ┆dupkey>');    halt    end;   act┆
0x03d480…03d4a0             69 6f 6e 3a 3d 20 70 61 72 61 6d 73 74 72 28 31 29 3b 0a 20 61 73 73 69 67 6e 20 28 20 6c 6f 67   ┆ion:= paramstr(1);  assign ( log┆
0x03d4a0…03d4c0             2c 20 61 63 74 69 6f 6e 29 3b 0a 20 28 2a 24 49 2d 20 20 2a 29 0a 20 72 65 73 65 74 20 28 20 6c   ┆, action);  (*$I-  *)  reset ( l┆
0x03d4c0…03d4e0             6f 67 29 3b 20 20 28 2a 24 49 2b 20 20 2a 29 0a 20 78 78 3a 3d 20 69 6f 72 65 73 75 6c 74 3b 0a   ┆og);  (*$I+  *)  xx:= ioresult; ┆
0x03d4e0…03d500             20 69 66 20 78 78 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 77 72 69   ┆ if xx <> 0 then    begin    wri┆
0x03d500…03d520             74 65 6c 6e 20 28 20 27 20 46 69 6c 65 20 27 2c 20 61 63 74 69 6f 6e 2c 20 27 20 20 20 6e 6f 74   ┆teln ( ' File ', action, '   not┆
0x03d520…03d540             20 66 6f 75 6e 64 21 20 20 27 29 3b 0a 20 20 20 68 61 6c 74 0a 20 20 20 65 6e 64 3b 0a 0a 20 69   ┆ found!  ');    halt    end;   i┆
0x03d540…03d560             66 20 70 61 72 61 6d 63 6f 75 6e 74 20 3c 20 32 20 74 68 65 6e 20 64 75 70 3a 3d 20 31 20 65 6c   ┆f paramcount < 2 then dup:= 1 el┆
0x03d560…03d580             73 65 0a 20 76 61 6c 20 28 20 70 61 72 61 6d 73 74 72 28 32 29 2c 20 64 75 70 2c 20 78 78 29 3b   ┆se  val ( paramstr(2), dup, xx);┆
0x03d580…03d5a0             0a 0a 20 70 6f 6c 79 66 69 6c 65 5f 63 6f 6e 66 69 67 20 28 20 34 34 2c 20 31 32 2c 20 31 36 2c   ┆   polyfile_config ( 44, 12, 16,┆
0x03d5a0…03d5c0             20 31 38 2c 20 36 29 3b 0a 20 6d 61 6b 65 69 6e 64 65 78 20 28 20 69 6e 78 66 2c 20 27 50 4f 4c   ┆ 18, 6);  makeindex ( inxf, 'POL┆
0x03d5c0…03d5e0             59 49 4e 58 2e 49 4e 58 27 2c 20 31 32 2c 20 64 75 70 29 3b 0a 0a 20 28 2a 20 20 69 6e 69 74 69   ┆YINX.INX', 12, dup);   (*  initi┆
0x03d5e0…03d600             6e 64 65 78 3b 20 20 2a 29 0a 20 63 6c 65 61 72 6b 65 79 20 28 20 69 6e 78 66 29 3b 0a 0a 20 77   ┆ndex;  *)  clearkey ( inxf);   w┆
0x03d600…03d620 (16, 0, 12) 68 69 6c 65 20 28 20 6e 6f 74 20 65 6f 66 20 28 20 6c 6f 67 29 29 20 61 6e 64 20 28 20 65 72 72   ┆hile ( not eof ( log)) and ( err┆
0x03d620…03d640             6f 72 73 20 3c 3d 20 6d 61 78 65 72 72 6f 72 73 29 20 64 6f 0a 20 20 20 62 65 67 69 6e 0a 20 20   ┆ors <= maxerrors) do    begin   ┆
0x03d640…03d660             20 72 65 61 64 6c 6e 20 28 20 6c 6f 67 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 70 3a 3d 20 70   ┆ readln ( log, action);    p:= p┆
0x03d660…03d680             6f 73 20 28 20 27 23 27 2c 20 61 63 74 69 6f 6e 29 20 2b 31 3b 0a 20 20 20 74 3a 3d 20 70 6f 73   ┆os ( '#', action) +1;    t:= pos┆
0x03d680…03d6a0             20 28 20 27 24 27 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 76 61 6c 20 28 20 63 6f 70 79 20 28   ┆ ( '$', action);    val ( copy (┆
0x03d6a0…03d6c0             20 61 63 74 69 6f 6e 2c 20 70 2c 20 74 2d 70 29 2c 20 6c 6f 67 6e 6f 2c 20 78 78 29 3b 0a 20 20   ┆ action, p, t-p), logno, xx);   ┆
0x03d6c0…03d6e0             20 66 75 6e 63 3a 3d 20 61 63 74 69 6f 6e 5b 74 2b 31 5d 3b 0a 20 20 20 70 3a 3d 20 70 6f 73 20   ┆ func:= action[t+1];    p:= pos ┆
0x03d6e0…03d700             28 20 27 26 27 2c 20 61 63 74 69 6f 6e 29 20 2b 31 3b 0a 20 20 20 74 3a 3d 20 70 6f 73 20 28 20   ┆( '&', action) +1;    t:= pos ( ┆
0x03d700…03d720             27 40 27 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 76 61 6c 20 28 20 63 6f 70 79 20 28 20 61 63   ┆'@', action);    val ( copy ( ac┆
0x03d720…03d740             74 69 6f 6e 2c 20 70 2c 20 74 2d 70 29 2c 20 64 72 6e 2c 20 78 78 29 3b 0a 20 20 20 70 3a 3d 20   ┆tion, p, t-p), drn, xx);    p:= ┆
0x03d740…03d760             70 6f 73 20 28 20 27 22 27 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 6b 65 79 3a 3d 20 63 6f 70   ┆pos ( '"', action);    key:= cop┆
0x03d760…03d780             79 20 28 20 61 63 74 69 6f 6e 2c 20 74 2b 31 2c 20 70 2d 74 2d 31 29 3b 0a 20 20 20 70 3a 3d 20   ┆y ( action, t+1, p-t-1);    p:= ┆
0x03d780…03d7a0             70 6f 73 20 28 20 27 2d 3e 27 2c 20 61 63 74 69 6f 6e 29 20 2b 32 3b 0a 20 20 20 74 6f 6b 3a 3d   ┆pos ( '->', action) +2;    tok:=┆
0x03d7a0…03d7c0             20 63 6f 70 79 20 28 20 61 63 74 69 6f 6e 2c 20 70 2c 20 35 29 3b 0a 0a 20 20 20 6e 65 77 6b 65   ┆ copy ( action, p, 5);     newke┆
0x03d7c0…03d7e0             79 3a 3d 20 6b 65 79 3b 0a 20 20 20 63 61 73 65 20 66 75 6e 63 20 6f 66 0a 20 20 20 27 41 27 2c   ┆y:= key;    case func of    'A',┆
0x03d7e0…03d800             0a 20 20 20 27 44 27 3a 20 6e 65 77 72 6e 3a 3d 20 64 72 6e 3b 0a 20 20 20 27 43 27 3a 20 6e 65   ┆    'D': newrn:= drn;    'C': ne┆
0x03d800…03d820 (16, 0, 13) 77 72 6e 3a 3d 20 31 3b 0a 20 20 20 65 6c 73 65 20 20 20 20 20 20 6e 65 77 72 6e 3a 3d 20 35 35   ┆wrn:= 1;    else      newrn:= 55┆
0x03d820…03d840             35 35 35 3b 0a 20 20 20 65 6e 64 3b 0a 0a 20 20 20 63 61 73 65 20 66 75 6e 63 20 6f 66 0a 20 20   ┆555;    end;     case func of   ┆
0x03d840…03d860             20 27 41 27 3a 09 09 62 65 67 69 6e 0a 20 20 20 09 09 69 66 20 64 75 70 20 3e 20 31 20 74 68 65   ┆ 'A':  begin      if dup > 1 the┆
0x03d860…03d880             6e 0a 20 20 20 09 09 20 20 62 65 67 69 6e 0a 20 20 20 09 09 20 20 66 69 6e 64 6b 65 79 20 28 20   ┆n        begin        findkey ( ┆
0x03d880…03d8a0             69 6e 78 66 2c 20 78 78 2c 20 6b 65 79 29 3b 0a 20 20 20 09 09 20 20 69 66 20 6e 6f 74 20 73 75   ┆inxf, xx, key);        if not su┆
0x03d8a0…03d8c0             63 63 65 73 73 20 74 68 65 6e 20 61 64 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 6e 65 77 72 6e 2c   ┆ccess then addkey ( inxf, newrn,┆
0x03d8c0…03d8e0             20 6e 65 77 6b 65 79 29 0a 20 20 20 09 09 20 20 65 6e 64 0a 20 20 20 09 09 65 6c 73 65 0a 20 20   ┆ newkey)        end      else   ┆
0x03d8e0…03d900             20 09 09 61 64 64 6b 65 79 20 20 20 20 28 20 69 6e 78 66 2c 20 6e 65 77 72 6e 2c 20 6e 65 77 6b   ┆   addkey    ( inxf, newrn, newk┆
0x03d900…03d920             65 79 29 3b 0a 20 20 20 09 09 65 6e 64 3b 0a 20 20 20 27 43 27 3a 09 09 63 6c 65 61 72 6b 65 79   ┆ey);      end;    'C':  clearkey┆
0x03d920…03d940             20 20 28 20 69 6e 78 66 29 3b 0a 20 20 20 27 44 27 3a 09 09 64 65 6c 65 74 65 6b 65 79 20 28 20   ┆  ( inxf);    'D':  deletekey ( ┆
0x03d940…03d960             69 6e 78 66 2c 20 6e 65 77 72 6e 2c 20 6e 65 77 6b 65 79 29 3b 0a 20 20 20 27 46 27 3a 09 09 66   ┆inxf, newrn, newkey);    'F':  f┆
0x03d960…03d980             69 6e 64 6b 65 79 20 20 20 28 20 69 6e 78 66 2c 20 6e 65 77 72 6e 2c 20 6e 65 77 6b 65 79 29 3b   ┆indkey   ( inxf, newrn, newkey);┆
0x03d980…03d9a0             0a 20 20 20 27 53 27 3a 09 09 73 65 61 72 63 68 6b 65 79 20 28 20 69 6e 78 66 2c 20 6e 65 77 72   ┆    'S':  searchkey ( inxf, newr┆
0x03d9a0…03d9c0             6e 2c 20 6e 65 77 6b 65 79 29 3b 0a 20 20 20 27 4e 27 3a 09 09 6e 65 78 74 6b 65 79 20 20 20 28   ┆n, newkey);    'N':  nextkey   (┆
0x03d9c0…03d9e0             20 69 6e 78 66 2c 20 6e 65 77 72 6e 2c 20 6e 65 77 6b 65 79 29 3b 0a 20 20 20 27 50 27 3a 09 09   ┆ inxf, newrn, newkey);    'P':  ┆
0x03d9e0…03da00             70 72 65 76 6b 65 79 20 20 20 28 20 69 6e 78 66 2c 20 6e 65 77 72 6e 2c 20 6e 65 77 6b 65 79 29   ┆prevkey   ( inxf, newrn, newkey)┆
0x03da00…03da20 (16, 0, 14) 3b 0a 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 61 73 65 20 20 2a 29 0a 0a 20 20 20 69 66 20 73   ┆;    end;  (*  case  *)     if s┆
0x03da20…03da40             75 63 63 65 73 73 20 74 68 65 6e 20 6e 65 77 6f 6b 3a 3d 20 27 54 52 55 45 27 20 20 65 6c 73 65   ┆uccess then newok:= 'TRUE'  else┆
0x03da40…03da60             20 20 6e 65 77 6f 6b 3a 3d 20 27 46 41 4c 53 45 27 3b 0a 0a 20 20 20 69 66 20 6e 65 77 72 6e 20   ┆  newok:= 'FALSE';     if newrn ┆
0x03da60…03da80             3c 3e 20 64 72 6e 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 65 72 72 6f   ┆<> drn then      begin      erro┆
0x03da80…03daa0             72 73 3a 3d 20 65 72 72 6f 72 73 20 2b 20 31 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆rs:= errors + 1;      writeln ( ┆
0x03daa0…03dac0             27 2a 2a 20 20 72 65 63 6e 6f 20 3d 20 27 2c 20 6e 65 77 72 6e 3a 35 2c 20 27 27 3a 37 2c 20 27   ┆'**  recno = ', newrn:5, '':7, '┆
0x03dac0…03dae0             20 20 20 2a 2a 20 20 27 2c 20 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20   ┆   **  ', action)      end;     ┆
0x03dae0…03db00             20 0a 20 20 20 69 66 20 6e 65 77 6b 65 79 20 3c 3e 20 6b 65 79 20 74 68 65 6e 0a 20 20 20 20 20   ┆     if newkey <> key then      ┆
0x03db00…03db20             62 65 67 69 6e 0a 20 20 20 20 20 65 72 72 6f 72 73 3a 3d 20 65 72 72 6f 72 73 20 2b 20 31 3b 0a   ┆begin      errors:= errors + 1; ┆
0x03db20…03db40             20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 27 2a 2a 20 20 6e 20 6b 65 79 20 3d 20 27 2c 20 6e   ┆     writeln ( '**  n key = ', n┆
0x03db40…03db60             65 77 6b 65 79 3a 31 32 2c 20 27 22 20 20 20 2a 2a 20 27 2c 20 61 63 74 69 6f 6e 29 0a 20 20 20   ┆ewkey:12, '"   ** ', action)    ┆
0x03db60…03db80             20 20 65 6e 64 3b 0a 20 20 20 20 20 0a 20 20 20 69 66 20 6e 65 77 6f 6b 20 3c 3e 20 74 6f 6b 20   ┆  end;          if newok <> tok ┆
0x03db80…03dba0             74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 65 72 72 6f 72 73 3a 3d 20 65 72   ┆then      begin      errors:= er┆
0x03dba0…03dbc0             72 6f 72 73 20 2b 20 31 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 27 2a 2a 20 20 6e 20   ┆rors + 1;      writeln ( '**  n ┆
0x03dbc0…03dbe0             6f 6b 20 20 3d 20 27 2c 20 6e 65 77 6f 6b 3a 35 2c 20 27 27 3a 37 2c 20 27 20 20 20 2a 2a 20 20   ┆ok  = ', newok:5, '':7, '   **  ┆
0x03dbe0…03dc00             27 2c 20 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 0a 20 20 20 0a 20   ┆', action)      end;            ┆
0x03dc00…03dc20 (16, 0, 15) 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 68 69 6c 65 20 20 2a 29 0a 20 0a 20 70 3a 3d 20 30 3b 0a   ┆  end;  (*  while  *)    p:= 0; ┆
0x03dc20…03dc40             20 63 6c 65 61 72 6b 65 79 20 28 20 69 6e 78 66 29 3b 0a 20 72 65 70 65 61 74 0a 20 20 20 6e 65   ┆ clearkey ( inxf);  repeat    ne┆
0x03dc40…03dc60             78 74 6b 65 79 20 28 20 69 6e 78 66 2c 20 78 78 2c 20 6b 65 79 29 3b 0a 20 20 20 69 66 20 73 75   ┆xtkey ( inxf, xx, key);    if su┆
0x03dc60…03dc80             63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 70 3a 3d 20 70   ┆ccess then      begin      p:= p┆
0x03dc80…03dca0             20 2b 20 31 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 70 3a 38 2c 20 78 78 3a 38 2c 20   ┆ + 1;      writeln ( p:8, xx:8, ┆
0x03dca0…03dcc0             27 20 20 20 27 2c 20 6b 65 79 2c 20 27 22 27 29 0a 20 20 20 20 20 65 6e 64 0a 20 75 6e 74 69 6c   ┆'   ', key, '"')      end  until┆
0x03dcc0…03dce0             20 6e 6f 74 20 73 75 63 63 65 73 73 3b 0a 0a 20 77 72 69 74 65 6c 6e 20 28 20 27 4e 6f 20 6f 66   ┆ not success;   writeln ( 'No of┆
0x03dce0…03dd00             20 6b 65 79 77 6f 72 64 73 3a 20 27 2c 20 70 29 3b 0a 0a 20 63 6c 6f 73 65 20 28 20 6c 6f 67 29   ┆ keywords: ', p);   close ( log)┆
0x03dd00…03dd20             3b 0a 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 3b 0a 20 65 72 61 73 65 20 28 20   ┆;  closeindex ( inxf);  erase ( ┆
0x03dd20…03dd40             69 6e 78 66 2e 64 2e 66 29 3b 0a 0a 20 77 72 69 74 65 6c 6e 3b 0a 20 77 72 69 74 65 6c 6e 20 28   ┆inxf.d.f);   writeln;  writeln (┆
0x03dd40…03dd60             20 27 2d 2d 20 20 65 6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 20 77 72 69 74 65 6c 6e 3b 0a 20   ┆ '--  end of job.');  writeln;  ┆
0x03dd60…03dd80             65 6e 64 2e 09 09 28 2a 20 20 74 65 73 74 69 6e 64 65 78 09 2a 29 0a 20 0a 01 45 20 31 0a 6b 20   ┆end.  (*  testindex *)    E 1 k ┆
0x03dd80…03dda0             74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 65 72 72 6f 72 73 3a 3d 20 65 72   ┆then      begin      errors:= er┆
0x03dda0…03ddc0             72 6f 72 73 20 2b 20 31 3b 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 27 2a 2a 20 20 6e 20   ┆rors + 1;      writeln ( '**  n ┆
0x03ddc0…03dde0             6f 6b 20 20 3d 20 27 2c 20 6e 65 77 6f 6b 3a 35 2c 20 27 27 3a 37 2c 20 27 20 20 20 2a 2a 20 20   ┆ok  = ', newok:5, '':7, '   **  ┆
0x03dde0…03de00             27 2c 20 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 0a 20 20 20 0a 20   ┆', action)      end;            ┆
0x03de00…03de20 (16, 1, 1)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 62 6f 6f 74 6c 69 6e 6b 2e 70 61   ┆../sw2103/src/util/s.bootlink.pa┆
0x03de20…03de40             73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆s                               ┆
0x03de40…03de60             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x03de60…03de80             00 00 00 00 20 20 20 34 34 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       440     255     146      ┆
0x03de80…03dea0             20 31 34 31 36 35 30 20 20 35 33 36 34 35 31 36 32 33 36 20 20 31 31 37 31 34 00 20 00 00 00 00   ┆ 141650  5364516236  11714      ┆
0x03dea0…03dec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x03e000…03e020 (16, 1, 2)  01 68 32 35 38 35 38 0a 01 73 20 30 31 38 31 37 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20   ┆ h25858  s 01817/00000/00000  d ┆
0x03e020…03e040             44 20 31 2e 31 20 39 33 2f 30 34 2f 31 39 20 31 33 3a 33 35 3a 34 31 20 73 77 32 31 30 33 20 31   ┆D 1.1 93/04/19 13:35:41 sw2103 1┆
0x03e040…03e060             20 30 0a 01 63 20 42 6f 6f 74 6c 69 6e 6b 20 6c 69 6b 65 20 63 72 6f 73 6c 69 6e 6b 20 31 2e 39   ┆ 0  c Bootlink like croslink 1.9┆
0x03e060…03e080             0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 50 72 6f 67 72 61 6d 20 42 6f 6f   ┆  e  u  U  t  T  I 1 Program Boo┆
0x03e080…03e0a0             74 6c 69 6e 6b 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆tlink;  (*----------------------┆
0x03e0a0…03e0c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03e0c0…03e0e0             2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 4d 6f 64 75 6c 65 3a 20 20 20 20 43 72 6f 73 73 20 6c 69 6e 6b   ┆------- -- Module:    Cross link┆
0x03e0e0…03e100             65 72 20 20 20 20 77 69 74 68 20 73 74 72 69 63 74 20 70 61 72 61 6d 65 74 65 72 20 63 6f 6d 70   ┆er    with strict parameter comp┆
0x03e100…03e120             61 72 65 20 61 73 20 6f 6c 64 20 63 72 6f 73 73 6c 69 6e 6b 2e 0a 2d 2d 20 46 69 6c 65 3a 20 20   ┆are as old crosslink. -- File:  ┆
0x03e120…03e140             20 20 20 20 42 4f 4f 54 4c 49 4e 4b 2e 50 41 53 0a 2d 2d 20 50 61 63 6b 61 67 65 3a 20 20 20 53   ┆    BOOTLINK.PAS -- Package:   S┆
0x03e140…03e160             57 32 31 30 33 20 20 20 20 53 75 62 73 79 73 74 65 6d 3a 20 55 54 49 4c 49 54 59 20 20 20 50 72   ┆W2103    Subsystem: UTILITY   Pr┆
0x03e160…03e180             6f 67 72 61 6d 3a 20 42 4f 4f 54 4c 49 4e 4b 0a 2d 2d 0a 2d 2d 20 43 6f 6e 74 65 6e 74 73 3a 20   ┆ogram: BOOTLINK -- -- Contents: ┆
0x03e180…03e1a0             20 41 20 72 74 70 33 35 30 32 20 6c 69 62 72 61 72 79 20 6d 61 69 6e 74 65 6e 61 6e 63 65 20 70   ┆ A rtp3502 library maintenance p┆
0x03e1a0…03e1c0             72 6f 67 72 61 6d 2c 0a 2d 2d 09 20 20 20 20 20 20 66 6f 72 20 63 72 6f 73 73 6c 69 6e 6b 69 6e   ┆rogram, --       for crosslinkin┆
0x03e1c0…03e1e0             67 20 6f 66 20 6f 62 6a 65 63 74 20 70 72 6f 67 72 61 6d 73 20 69 6e 74 6f 20 61 20 6c 69 62 72   ┆g of object programs into a libr┆
0x03e1e0…03e200             61 72 79 2e 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 20 63 61 6c 6c 3a 20 20 42 4f 4f 54 4c 49   ┆ary. -- -- Program call:  BOOTLI┆
0x03e200…03e220 (16, 1, 3)  4e 4b 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 2e 2e 2e 20 3c 70 61 72 61 6d 65 74 65 72 3e 0a 2d   ┆NK <parameter> ... <parameter> -┆
0x03e220…03e240             2d 09 3c 70 61 72 61 6d 65 74 65 72 3e 20 3a 09 3d 3c 66 69 6c 65 70 61 74 68 3e 09 09 6e 61 6d   ┆- <parameter> : =<filepath>  nam┆
0x03e240…03e260             65 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 0a 2d 2d 09 09 09 50 41 52 41 4d   ┆e of destination file --   PARAM┆
0x03e260…03e280             49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 09 6e 61 6d 65 20 6f 66 20 66 69 6c 65 20 77 69 74 68 20   ┆IN-<filepath> name of file with ┆
0x03e280…03e2a0             70 61 72 61 6d 65 74 65 72 73 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆parameters --                   ┆
0x03e2a0…03e2c0             20 20 20 53 54 41 52 54 2d 3c 68 65 78 3e 2d 3c 68 65 78 3e 09 61 75 74 6f 6c 6f 61 64 20 73 74   ┆   START-<hex>-<hex> autoload st┆
0x03e2c0…03e2e0             61 72 74 20 61 64 64 72 65 73 73 0a 2d 2d 09 09 09 4d 41 50 2d 3c 79 65 73 6e 6f 3e 09 09 6c 69   ┆art address --   MAP-<yesno>  li┆
0x03e2e0…03e300             73 74 20 69 6e 63 6c 75 64 65 64 20 70 72 6f 67 72 61 6d 73 0a 2d 2d 09 09 09 50 52 49 4e 54 2d   ┆st included programs --   PRINT-┆
0x03e300…03e320             3c 79 65 73 6e 6f 6e 75 6d 62 3e 20 20 20 20 20 20 20 6c 69 73 74 20 6f 66 20 63 6f 72 65 69 6d   ┆<yesnonumb>       list of coreim┆
0x03e320…03e340             61 67 65 0a 2d 2d 09 09 09 53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72 70 61 74 68 3e 09 64 69   ┆age --   SOURCEPATH-<dirpath> di┆
0x03e340…03e360             72 65 63 74 6f 72 79 20 70 61 74 68 0a 2d 2d 09 09 09 4c 49 42 2d 3c 66 69 6c 65 70 61 74 68 3e   ┆rectory path --   LIB-<filepath>┆
0x03e360…03e380             09 09 6e 61 6d 65 20 6f 66 20 6c 69 62 20 66 69 6c 65 0a 2d 2d 09 09 09 3c 66 69 6c 65 70 61 74   ┆  name of lib file --   <filepat┆
0x03e380…03e3a0             68 3e 09 09 6e 61 6d 65 20 6f 66 20 6f 62 6a 65 63 74 20 66 69 6c 65 0a 2d 2d 0a 2d 2d 09 49 66   ┆h>  name of object file -- -- If┆
0x03e3a0…03e3c0             20 6e 6f 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 20 74   ┆ no extension is specified for t┆
0x03e3c0…03e3e0             68 65 20 6c 69 62 20 61 6e 64 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 2c 0a 2d 2d 09 65 78 74 65   ┆he lib and object files, -- exte┆
0x03e3e0…03e400             6e 73 69 6f 6e 20 27 2e 50 32 32 27 20 69 73 20 75 73 65 64 2e 0a 2d 2d 0a 2d 2d 0a 2d 2d 20 50   ┆nsion '.P22' is used. -- -- -- P┆
0x03e400…03e420 (16, 1, 4)  72 65 72 65 71 75 69 73 69 74 65 73 3a 20 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49 42   ┆rerequisites:  DOS, Cbreak, PLIB┆
0x03e420…03e440             55 4e 49 54 2c 20 50 6f 6c 79 66 69 6c 65 3b 0a 2d 2d 0a 2d 2d 20 44 6f 63 75 6d 65 6e 74 61 74   ┆UNIT, Polyfile; -- -- Documentat┆
0x03e440…03e460             69 6f 6e 3a 20 20 53 57 32 31 30 33 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 6d 65 64 20 62 79   ┆ion:  SW2103 -- -- Programmed by┆
0x03e460…03e480             20 42 42 2c 20 48 45 4a 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 39 20 62   ┆ BB, HEJ -- Copyright (C) 1989 b┆
0x03e480…03e4a0             79 20 52 43 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74 20   ┆y RC International -- Copyright ┆
0x03e4a0…03e4c0             28 43 29 20 31 39 39 32 20 62 79 20 44 41 4e 4f 53 49 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆(C) 1992 by DANOSI -------------┆
0x03e4c0…03e4e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03e4e0…03e500             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 56 65 72 73 69 6f 6e 20 68 69   ┆------------------ -- Version hi┆
0x03e500…03e520             73 74 6f 72 79 3a 0a 2d 2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44 61 74 65 20 20 20 20 20 20 49 6e   ┆story: -- -- Vers.  Date      In┆
0x03e520…03e540             69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 20 2d 2d 2d   ┆it. Text -- ----   --------  ---┆
0x03e540…03e560             2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆-  -----------------------------┆
0x03e560…03e580             2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 31 2e 30 20 20 20 20 38 35 30 36 31 33 20 20 20   ┆--------- -- -- 1.0    850613   ┆
0x03e580…03e5a0             20 62 62 20 20 20 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 70 72 69 6e 74 20 64 75 72 69 6e   ┆ bb    problems with print durin┆
0x03e5a0…03e5c0             67 20 6d 6f 64 75 6c 65 20 73 68 69 66 74 0a 2d 2d 09 09 09 20 20 74 68 65 20 74 77 6f 20 6c 61   ┆g module shift --     the two la┆
0x03e5c0…03e5e0             73 74 20 62 79 74 65 73 20 69 6e 20 65 76 65 72 79 20 6d 6f 64 75 6c 65 20 61 72 65 0a 2d 2d 09   ┆st bytes in every module are -- ┆
0x03e5e0…03e600             09 09 20 20 6e 65 76 65 72 20 61 6c 6c 6f 63 61 74 65 64 0a 2d 2d 20 31 2e 30 20 20 20 20 38 35   ┆    never allocated -- 1.0    85┆
0x03e600…03e620 (16, 1, 5)  30 38 31 35 20 20 20 20 62 62 20 20 20 20 63 68 65 63 6b 20 6f 6e 20 6f 62 6a 65 63 74 66 69 6c   ┆0815    bb    check on objectfil┆
0x03e620…03e640             65 20 74 61 69 6c 20 61 6e 64 20 6f 75 74 70 75 74 20 6f 66 0a 2d 2d 09 09 09 20 20 69 6d 61 67   ┆e tail and output of --     imag┆
0x03e640…03e660             65 66 69 6c 65 20 74 61 69 6c 20 69 6e 20 6f 75 74 70 75 74 66 69 6c 65 0a 2d 2d 20 31 2e 30 20   ┆efile tail in outputfile -- 1.0 ┆
0x03e660…03e680             20 20 20 38 35 31 31 30 37 20 20 20 20 6a 61 62 61 20 20 61 74 20 6d 6f 73 74 20 36 34 4b 20 62   ┆   851107    jaba  at most 64K b┆
0x03e680…03e6a0             79 74 65 73 20 70 72 6f 67 72 61 6d 73 20 6d 61 79 20 62 65 0a 2d 2d 09 09 09 20 20 63 72 6f 73   ┆ytes programs may be --     cros┆
0x03e6a0…03e6c0             73 6c 69 6e 6b 65 64 0a 2d 2d 09 09 09 20 20 70 61 73 63 61 6c 68 61 6c 74 20 69 6e 74 72 6f 64   ┆slinked --     pascalhalt introd┆
0x03e6c0…03e6e0             75 63 65 64 0a 2d 2d 09 09 09 20 20 77 72 69 74 65 68 61 6c 66 77 6f 72 64 73 20 69 6e 74 72 6f   ┆uced --     writehalfwords intro┆
0x03e6e0…03e700             64 75 63 65 64 0a 2d 2d 20 31 2e 30 20 20 20 20 38 36 30 39 32 36 20 20 20 20 62 62 20 20 20 20   ┆duced -- 1.0    860926    bb    ┆
0x03e700…03e720             63 6f 70 69 65 73 20 6e 6f 74 5f 75 73 65 64 20 77 6f 72 64 73 20 69 6e 20 64 65 73 63 72 69 70   ┆copies not_used words in descrip┆
0x03e720…03e740             74 6f 72 0a 2d 2d 09 09 09 20 20 73 65 67 6d 65 6e 74 20 70 61 72 74 20 31 0a 2d 2d 20 31 2e 31   ┆tor --     segment part 1 -- 1.1┆
0x03e740…03e760             20 20 20 20 38 36 31 30 33 31 20 20 20 20 62 62 20 20 20 20 67 65 6e 65 72 61 6c 20 63 6c 65 61   ┆    861031    bb    general clea┆
0x03e760…03e780             6e 75 70 20 62 65 63 61 75 73 65 20 73 6f 75 72 63 65 20 69 73 20 6e 6f 0a 2d 2d 09 09 09 20 20   ┆nup because source is no --     ┆
0x03e780…03e7a0             6c 6f 6e 67 65 72 20 72 63 38 30 30 30 20 73 6f 75 72 63 65 0a 2d 2d 20 31 2e 31 20 20 20 20 38   ┆longer rc8000 source -- 1.1    8┆
0x03e7a0…03e7c0             36 31 31 30 33 20 20 20 20 62 62 20 20 20 20 63 6f 73 6d 65 74 69 63 73 0a 2d 2d 20 31 2e 31 20   ┆61103    bb    cosmetics -- 1.1 ┆
0x03e7c0…03e7e0             20 20 20 38 37 30 36 30 39 20 20 20 20 62 62 20 20 20 20 43 6f 6e 76 65 72 74 65 64 20 74 6f 20   ┆   870609    bb    Converted to ┆
0x03e7e0…03e800             6c 66 33 35 30 32 20 61 6e 64 20 66 70 33 35 30 32 0a 2d 2d 20 31 2e 33 20 20 20 20 38 38 31 30   ┆lf3502 and fp3502 -- 1.3    8810┆
0x03e800…03e820 (16, 1, 6)  32 33 20 20 20 20 62 62 20 20 20 20 45 78 74 5f 74 61 62 6c 65 20 63 68 61 6e 67 65 64 20 66 72   ┆23    bb    Ext_table changed fr┆
0x03e820…03e840             6f 6d 20 73 74 61 74 69 63 20 61 72 72 61 79 20 74 6f 20 6c 69 73 74 20 6f 6e 20 68 65 61 70 2e   ┆om static array to list on heap.┆
0x03e840…03e860             0a 2d 2d 20 31 2e 34 20 20 20 20 38 38 31 31 31 34 20 20 20 20 62 62 20 20 20 20 42 61 6c 61 6e   ┆ -- 1.4    881114    bb    Balan┆
0x03e860…03e880             63 65 64 20 62 69 6e 61 72 79 20 73 65 61 72 63 68 20 69 6e 74 72 6f 64 75 63 65 64 0a 2d 2d 0a   ┆ced binary search introduced -- ┆
0x03e880…03e8a0             2d 2d 20 56 65 72 73 2e 20 20 44 61 74 65 20 20 20 20 20 20 49 6e 69 74 2e 20 54 65 78 74 0a 2d   ┆-- Vers.  Date      Init. Text -┆
0x03e8a0…03e8c0             2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 20 2d 2d 2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d   ┆- ----   --------  ----  -------┆
0x03e8c0…03e8e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a   ┆------------------------------- ┆
0x03e8e0…03e900             2d 2d 20 31 2e 34 20 20 20 20 38 39 2e 31 30 2e 31 38 20 20 48 45 4a 20 20 20 46 69 72 73 74 20   ┆-- 1.4    89.10.18  HEJ   First ┆
0x03e900…03e920             54 75 72 62 6f 20 50 61 73 63 61 6c 20 76 65 72 73 69 6f 6e 2e 0a 2d 2d 20 20 20 20 20 20 20 20   ┆Turbo Pascal version. --        ┆
0x03e920…03e940             38 39 2e 31 31 2e 30 31 20 20 48 45 4a 20 20 20 50 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 68 65   ┆89.11.01  HEJ   Problems with he┆
0x03e940…03e960             61 70 73 69 7a 65 20 73 6f 6c 76 65 64 2e 0a 2d 2d 20 20 20 20 20 20 20 20 38 39 2e 31 31 2e 30   ┆apsize solved. --        89.11.0┆
0x03e960…03e980             32 20 20 48 45 4a 20 20 20 43 75 72 72 65 6e 74 20 64 69 72 20 75 73 65 64 20 61 73 20 77 6f 72   ┆2  HEJ   Current dir used as wor┆
0x03e980…03e9a0             6b 20 64 69 72 2e 0a 2d 2d 20 31 2e 35 20 20 20 20 39 30 2e 30 31 2e 30 38 20 20 48 45 4a 20 20   ┆k dir. -- 1.5    90.01.08  HEJ  ┆
0x03e9a0…03e9c0             20 43 6f 64 65 5f 62 79 74 65 73 20 63 68 61 6e 67 65 64 20 74 6f 20 6c 6f 6e 67 69 6e 74 2c 20   ┆ Code_bytes changed to longint, ┆
0x03e9c0…03e9e0             62 75 74 20 73 74 69 6c 6c 20 3a 0a 2d 2d 09 09 09 20 20 38 35 31 31 30 37 3a 20 61 74 20 6d 6f   ┆but still : --     851107: at mo┆
0x03e9e0…03ea00             73 74 20 36 34 20 4b 20 62 79 74 65 73 20 70 72 6f 67 72 61 6d 73 2e 0a 2d 2d 20 20 20 20 20 20   ┆st 64 K bytes programs. --      ┆
0x03ea00…03ea20 (16, 1, 7)  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 72 72 6f 72 6c 65 76 65 6c 20 73 65 74   ┆                  Errorlevel set┆
0x03ea20…03ea40             20 74 6f 20 31 20 69 66 20 6c 69 6e 6b 69 6e 67 20 6e 6f 74 20 73 6f 6c 76 65 64 2e 0a 2d 2d 20   ┆ to 1 if linking not solved. -- ┆
0x03ea40…03ea60             31 2e 36 20 20 20 20 39 30 2e 30 32 2e 31 35 20 20 48 45 4a 20 20 20 73 6f 75 72 63 65 20 66 69   ┆1.6    90.02.15  HEJ   source fi┆
0x03ea60…03ea80             6c 65 73 20 77 69 74 68 6f 75 74 20 65 78 74 65 6e 73 69 6f 6e 20 61 72 65 20 61 63 63 65 70 74   ┆les without extension are accept┆
0x03ea80…03eaa0             65 64 20 74 6f 6f 2e 0a 2d 2d 20 31 2e 37 20 20 20 20 39 30 2e 30 35 2e 33 30 20 20 48 45 4a 20   ┆ed too. -- 1.7    90.05.30  HEJ ┆
0x03eaa0…03eac0             20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 27 50 32 32 27 2c 20 20 73 74 6f 70   ┆  Default extension 'P22',  stop┆
0x03eac0…03eae0             5f 6d 61 72 6b 20 20 24 46 46 46 46 20 20 2d 3e 20 20 30 30 30 30 2e 0a 2d 2d 20 31 2e 38 20 20   ┆_mark  $FFFF  ->  0000. -- 1.8  ┆
0x03eae0…03eb00             20 20 39 31 2e 30 34 2e 31 38 20 20 48 45 4a 20 20 20 50 72 69 6e 74 20 75 6e 72 65 73 6f 6c 76   ┆  91.04.18  HEJ   Print unresolv┆
0x03eb00…03eb20             65 64 20 72 65 66 65 72 65 6e 63 65 73 2c 20 66 72 65 65 6d 65 6d 20 61 66 74 65 72 20 75 73 65   ┆ed references, freemem after use┆
0x03eb20…03eb40             2e 0a 2d 2d 20 31 2e 39 20 20 20 20 39 32 2e 30 32 2e 32 34 20 20 48 45 4a 20 20 20 52 65 61 64   ┆. -- 1.9    92.02.24  HEJ   Read┆
0x03eb40…03eb60             69 6e 67 20 6f 66 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 22 50 52 49 4e 54 2d 22 20 63 68 61 6e   ┆ing of argument to "PRINT-" chan┆
0x03eb60…03eb80             67 65 64 2c 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63   ┆ged, --                        c┆
0x03eb80…03eba0             6f 72 72 65 63 74 73 20 65 72 72 6f 72 20 72 65 70 6f 72 74 65 64 20 62 79 20 4c 45 49 20 20 39   ┆orrects error reported by LEI  9┆
0x03eba0…03ebc0             31 2e 30 34 2e 31 36 2e 0a 2d 2d 20 31 2e 31 30 20 20 20 39 32 2e 30 34 2e 31 35 20 20 48 45 4a   ┆1.04.16. -- 1.10   92.04.15  HEJ┆
0x03ebc0…03ebe0             20 20 20 45 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 63 68 61 6e 67 65 64 20 74 6f 20 6c   ┆   Equal_paramlists changed to l┆
0x03ebe0…03ec00             65 74 20 66 72 6f 7a 65 6e 20 76 61 72 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆et frozen var --                ┆
0x03ec00…03ec20 (16, 1, 8)  20 20 20 20 20 20 20 20 61 6e 64 20 69 6e 73 70 65 63 74 20 62 65 20 63 6f 6d 70 61 74 69 62 6c   ┆        and inspect be compatibl┆
0x03ec20…03ec40             65 2e 0a 2d 2d 20 31 2e 31 31 20 20 20 39 32 2e 30 35 2e 32 35 20 20 48 45 4a 20 20 20 45 78 74   ┆e. -- 1.11   92.05.25  HEJ   Ext┆
0x03ec40…03ec60             65 6e 73 69 6f 6e 20 27 2e 54 32 32 27 20 69 73 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2e 0a 2d   ┆ension '.T22' is accepted too. -┆
0x03ec60…03ec80             2d 20 31 2e 31 32 20 20 20 39 32 2e 30 36 2e 32 36 20 20 48 45 4a 20 20 20 45 72 72 6f 72 20 69   ┆- 1.12   92.06.26  HEJ   Error i┆
0x03ec80…03eca0             6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 63 6f 72 72 65 63 74 65 64 2e 0a 2d 2d   ┆n equal_paramlists corrected. --┆
0x03eca0…03ecc0             20 31 2e 31 33 20 20 20 39 32 2e 31 30 2e 30 39 20 20 48 45 4a 20 20 20 53 43 43 53 20 69 6e 66   ┆ 1.13   92.10.09  HEJ   SCCS inf┆
0x03ecc0…03ece0             6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2c 0a 2d 2d 09 09 09 20 20 2d 20 4c 6f 61 64 65 72   ┆o and UNIX used, --     - Loader┆
0x03ece0…03ed00             20 6d 61 70 20 69 6e 63 6f 6e 73 69 73 74 65 6e 73 20 63 68 61 6e 67 65 64 20 74 6f 20 62 65 20   ┆ map inconsistens changed to be ┆
0x03ed00…03ed20             61 20 66 61 74 61 6c 20 65 72 72 6f 72 2e 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆a fatal error. -----------------┆
0x03ed20…03ed40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03ed40…03ed60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 31 2e 31 20 20 20 20 39 33 2e   ┆------------------ -- 1.1    93.┆
0x03ed60…03ed80             30 34 2e 31 39 20 20 48 45 4a 20 20 20 42 6f 6f 74 6c 69 6e 6b 20 75 73 65 73 20 6f 6c 64 20 76   ┆04.19  HEJ   Bootlink uses old v┆
0x03ed80…03eda0             65 72 73 69 6f 6e 20 6f 66 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 2e 0a 2d 2d 0a 2d   ┆ersion of equal_paramlists. -- -┆
0x03eda0…03edc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x03ede0…03ee00             2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20   ┆-- -- SCCS information -- File  ┆
0x03ee00…03ee20 (16, 1, 9)  20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73   ┆ :  %P% -- Module :  %M% -- Vers┆
0x03ee20…03ee40             69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a   ┆ion:  %I% -- Date   :  %E%  %U% ┆
0x03ee40…03ee60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x03ee80…03eea0             2d 2d 2d 0a 2a 29 0a 0a 0c 0a 0a 55 73 65 73 20 44 4f 53 2c 20 43 62 72 65 61 6b 2c 20 50 4c 49   ┆--- *)     Uses DOS, Cbreak, PLI┆
0x03eea0…03eec0             42 55 4e 49 54 2c 20 50 6f 6c 79 66 69 6c 65 3b 0a 0a 28 2a 24 4d 20 38 31 39 32 2c 38 31 39 32   ┆BUNIT, Polyfile;  (*$M 8192,8192┆
0x03eec0…03eee0             30 2c 38 36 39 32 30 20 20 73 74 61 63 6b 20 61 6e 64 20 68 65 61 70 20 20 2a 29 0a 28 2a 24 52   ┆0,86920  stack and heap  *) (*$R┆
0x03eee0…03ef00             2b 2c 53 2b 09 09 72 61 6e 67 65 20 63 68 65 63 6b 20 20 2a 29 0a 28 2a 24 49 2d 09 09 09 2a 29   ┆+,S+  range check  *) (*$I-   *)┆
0x03ef00…03ef20             0a 0a 43 6f 6e 73 74 0a 20 20 20 73 63 63 73 5f 64 61 74 65 20 20 20 20 3d 20 20 20 27 25 45 25   ┆  Const    sccs_date    =   '%E%┆
0x03ef20…03ef40             27 20 20 3b 0a 20 20 20 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 20 27 2e 50 32 32 27 20   ┆'  ;    src_extension=   '.P22' ┆
0x03ef40…03ef60             3b 0a 20 20 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 54 32 32 27 20 3b 0a 20   ┆;    comp_extension=  '.T22' ;  ┆
0x03ef60…03ef80             20 20 64 65 73 74 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e 42 32 32 27 20 3b 0a 0a 20 20 20   ┆  dest_extension=  '.B22' ;     ┆
0x03ef80…03efa0             64 65 62 75 67 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f   ┆debug : boolean =  false; (*  fo┆
0x03efa0…03efc0             72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 20 2a 29 0a 20 20 20 64 65 62 75 67 31 09 3a 20 62   ┆r debug output  *)    debug1 : b┆
0x03efc0…03efe0             6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f   ┆oolean =  false; (*  for debug o┆
0x03efe0…03f000             75 74 70 75 74 20 6f 66 20 20 2a 29 0a 20 20 20 64 65 62 75 67 32 09 3a 20 62 6f 6f 6c 65 61 6e   ┆utput of  *)    debug2 : boolean┆
0x03f000…03f020 (16, 1, 10) 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20   ┆ =  false; (*  for debug output ┆
0x03f020…03f040             6f 66 20 6d 6f 64 75 6c 65 20 6e 61 6d 65 73 20 2a 29 0a 20 20 20 64 65 62 75 67 33 09 3a 20 62   ┆of module names *)    debug3 : b┆
0x03f040…03f060             6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f   ┆oolean =  false; (*  for debug o┆
0x03f060…03f080             75 74 70 75 74 20 69 6e 20 6f 75 74 73 75 6d 20 20 20 2a 29 0a 20 20 20 64 65 62 75 67 34 09 3a   ┆utput in outsum   *)    debug4 :┆
0x03f080…03f0a0             20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67   ┆ boolean =  false; (*  for debug┆
0x03f0a0…03f0c0             20 6f 66 20 73 65 65 6b 09 09 2a 29 0a 20 20 20 64 65 62 75 67 63 61 74 09 3a 20 62 6f 6f 6c 65   ┆ of seek  *)    debugcat : boole┆
0x03f0c0…03f0e0             61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 66 20 69 74   ┆an =  false; (*  for debug of it┆
0x03f0e0…03f100             65 6d 20 63 61 74 61 6c 6f 67 09 2a 29 0a 20 20 20 64 65 62 75 67 36 09 3a 20 62 6f 6f 6c 65 61   ┆em catalog *)    debug6 : boolea┆
0x03f100…03f120             6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 66 20 6c 6f 61   ┆n =  false; (*  for debug of loa┆
0x03f120…03f140             64 65 72 20 6d 61 70 09 2a 29 0a 20 20 20 64 65 62 75 67 37 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d   ┆der map *)    debug7 : boolean =┆
0x03f140…03f160             20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 66 20 69 6e 64 65 78 09   ┆  false; (*  for debug of index ┆
0x03f160…03f180             09 2a 29 0a 0a 20 20 20 64 61 74 5f 6e 61 6d 65 09 3d 20 20 27 43 52 4f 53 57 52 4b 2e 44 41 54   ┆ *)     dat_name =  'CROSWRK.DAT┆
0x03f180…03f1a0             27 3b 0a 20 20 20 69 6e 78 5f 6e 61 6d 65 09 3d 20 20 27 43 52 4f 53 57 52 4b 2e 49 4e 58 27 3b   ┆';    inx_name =  'CROSWRK.INX';┆
0x03f1a0…03f1c0             0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 20 6f 6c 64 20 73 68 69 74 20 2d 2d 2d 0a 62 6f 6f 74 5f 63 6f   ┆  {-------- old shit --- boot_co┆
0x03f1c0…03f1e0             6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 20 20 3d 20 36 3b 0a 28 2a 20   ┆mpiler_version_number   = 6; (* ┆
0x03f1e0…03f200             72 65 76 35 20 62 6f 6f 74 20 66 69 6c 65 73 20 6d 75 73 74 20 73 61 79 20 74 68 69 73 20 76 65   ┆rev5 boot files must say this ve┆
0x03f200…03f220 (16, 1, 11) 72 73 69 6f 6e 20 21 21 21 20 2a 29 0a 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75   ┆rsion !!! *) compiler_version_nu┆
0x03f220…03f240             6d 62 65 72 20 20 20 20 20 20 20 20 3d 20 37 3b 0a 28 2a 20 74 68 65 20 65 78 70 65 63 74 65 64   ┆mber        = 7; (* the expected┆
0x03f240…03f260             20 70 61 73 63 61 6c 38 30 20 63 6f 6d 70 69 6c 65 72 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65   ┆ pascal80 compiler version numbe┆
0x03f260…03f280             72 20 2a 29 0a 66 69 78 65 64 5f 72 65 76 35 5f 64 5f 6c 65 6e 67 74 68 20 20 20 20 20 20 20 20   ┆r *) fixed_rev5_d_length        ┆
0x03f280…03f2a0             20 20 20 20 3d 20 32 30 3b 0a 28 2a 20 6c 65 6e 67 74 68 20 6f 66 20 66 69 78 65 64 20 70 61 72   ┆    = 20; (* length of fixed par┆
0x03f2a0…03f2c0             74 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 69 6e 20 77 6f 72 64 73   ┆t of descriptor segment in words┆
0x03f2c0…03f2e0             20 2a 29 0a 66 69 78 65 64 5f 63 5f 64 5f 6c 65 6e 67 74 68 09 09 3d 20 32 32 3b 20 28 2a 20 6c   ┆ *) fixed_c_d_length  = 22; (* l┆
0x03f2e0…03f300             65 6e 67 74 68 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 70 61 72 74 31 20 66 6f 72 20 72 63   ┆ength of descriptor part1 for rc┆
0x03f300…03f320             33 35 30 32 2f 32 20 20 2d 20 61 6c 73 6f 20 69 6e 20 77 6f 72 64 73 20 2a 29 0a 63 5f 6e 6f 5f   ┆3502/2  - also in words *) c_no_┆
0x03f320…03f340             6f 66 5f 6e 6f 74 5f 75 73 65 64 09 09 3d 20 34 3b 0a 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64   ┆of_not_used  = 4; no_of_not_used┆
0x03f340…03f360             20 3a 20 20 62 79 74 65 20 3d 20 63 5f 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 3b 0a 66 69 78   ┆ :  byte = c_no_of_not_used; fix┆
0x03f360…03f380             65 64 5f 64 5f 6c 65 6e 67 74 68 20 3a 20 77 6f 72 64 20 20 3d 20 66 69 78 65 64 5f 63 5f 64 5f   ┆ed_d_length : word  = fixed_c_d_┆
0x03f380…03f3a0             6c 65 6e 67 74 68 3b 20 28 2a 20 69 6e 69 74 20 74 6f 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73   ┆length; (* init to compiler_vers┆
0x03f3a0…03f3c0             69 6f 6e 20 2f 32 20 76 61 6c 75 65 20 2a 29 0a 0a 74 77 6f 5f 74 6f 5f 31 36 20 20 20 20 20 20   ┆ion /2 value *)  two_to_16      ┆
0x03f3c0…03f3e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 2d 31 3b 0a 0a 28 2a 20 63 6f 6e 74 65 6e   ┆                = -1;  (* conten┆
0x03f3e0…03f400             74 73 20 6b 65 79 20 76 61 6c 75 65 73 20 69 6e 20 74 61 69 6c 20 2a 29 0a 6f 62 6a 65 63 74 66   ┆ts key values in tail *) objectf┆
0x03f400…03f420 (16, 1, 12) 69 6c 65 5f 63 6f 6e 74 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 36 2a 32 35 36   ┆ile_content             = 16*256┆
0x03f420…03f440             20 2b 20 31 3b 0a 69 6d 61 67 65 66 69 6c 65 5f 63 6f 6e 74 65 6e 74 20 20 20 20 20 20 20 20 20   ┆ + 1; imagefile_content         ┆
0x03f440…03f460             20 20 20 20 20 3d 20 31 36 2a 32 35 36 20 2b 20 32 3b 0a 0a 70 72 6f 67 72 61 6d 5f 6b 69 6e 64   ┆     = 16*256 + 2;  program_kind┆
0x03f460…03f480             20 20 3d 20 31 3b 20 28 2a 20 75 73 65 64 20 61 73 20 27 6b 69 6e 64 2d 6f 66 2d 6f 62 6a 27 20   ┆  = 1; (* used as 'kind-of-obj' ┆
0x03f480…03f4a0             2a 29 0a 6d 69 6e 69 63 6f 72 65 20 20 20 20 20 20 3d 20 31 30 30 30 30 3b 20 28 2a 20 64 65 66   ┆*) minicore      = 10000; (* def┆
0x03f4a0…03f4c0             61 75 6c 74 20 73 69 7a 65 20 6f 66 20 63 6f 72 65 20 69 6d 61 67 65 20 28 77 6f 72 64 73 29 20   ┆ault size of core image (words) ┆
0x03f4c0…03f4e0             2a 29 0a 6d 69 64 69 63 6f 72 65 20 20 20 20 20 20 3d 20 32 30 30 30 30 3b 20 28 2a 20 74 68 65   ┆*) midicore      = 20000; (* the┆
0x03f4e0…03f500             20 73 69 7a 65 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 63 6f 72 65 20 69 6d 61 67 65   ┆ size of the internal core image┆
0x03f500…03f520             20 64 65 70 65 6e 64 73 20 6f 6e 20 2a 29 0a 6d 61 78 69 63 6f 72 65 20 20 20 20 20 20 3d 20 32   ┆ depends on *) maxicore      = 2┆
0x03f520…03f540             37 30 30 30 3b 20 28 2a 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 67 72 65 61 74 65 73   ┆7000; (* the size of the greates┆
0x03f540…03f560             74 20 6d 6f 64 75 6c 65 20 74 6f 20 6c 69 6e 6b 20 2a 29 0a 66 75 6c 6c 5f 68 6f 75 73 65 20 20   ┆t module to link *) full_house  ┆
0x03f560…03f580             20 20 3d 20 6d 61 78 69 6e 74 3b 20 28 2a 20 36 34 20 6b 20 62 79 74 65 73 2c 20 6d 61 78 20 6d   ┆  = maxint; (* 64 k bytes, max m┆
0x03f580…03f5a0             6f 64 75 6c 65 20 73 69 7a 65 20 2a 29 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆odule size *)  -----------------┆
0x03f5a0…03f5c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x03f5c0…03f5e0             2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 62 6f 6f 74 5f 63 5f 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f   ┆-------}  boot_c_compiler_versio┆
0x03f5e0…03f600             6e 5f 6e 75 6d 62 65 72 09 3d 20 31 30 3b 20 28 2a 20 72 63 33 35 30 32 63 20 62 6f 6f 74 66 69   ┆n_number = 10; (* rc3502c bootfi┆
0x03f600…03f620 (16, 1, 13) 6c 65 73 20 6d 75 73 74 20 73 61 79 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20 2a 29 0a 63 6f 6d   ┆les must say this version *) com┆
0x03f620…03f640             70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 09 3d 20 31 30 3b 20 28 2a 20   ┆piler_c_version_number = 10; (* ┆
0x03f640…03f660             65 78 70 65 63 74 65 64 20 52 54 50 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 2a 29 0a 6d   ┆expected RTP version number *) m┆
0x03f660…03f680             61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 09 09 09 3d 20 33 30 3b 20 28 2a 20 73 61 6d 65 20 6c 69   ┆ax_obj_params   = 30; (* same li┆
0x03f680…03f6a0             6d 69 74 20 61 73 20 70 61 73 73 35 20 2a 29 0a 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 09 09 09 3d   ┆mit as pass5 *) first_mem_no   =┆
0x03f6a0…03f6c0             20 24 43 30 3b 0a 0a 28 2a 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 65 6e 63 6f 64 69 6e   ┆ $C0;  (* parameter type encodin┆
0x03f6c0…03f6e0             67 20 20 20 20 20 20 39 32 2e 30 34 2e 31 35 20 20 20 20 20 20 20 20 2a 29 0a 63 6f 64 65 5f 76   ┆g      92.04.15        *) code_v┆
0x03f6e0…03f700             61 72 5f 70 74 72 20 20 20 20 3d 20 20 20 35 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 79 73 72 65 63   ┆ar_ptr    =   5; code_var_sysrec┆
0x03f700…03f720             20 3d 20 20 32 35 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 79 73 61 72 72 79 3d 20 20 32 39 3b 0a 63   ┆ =  25; code_var_sysarry=  29; c┆
0x03f720…03f740             6f 64 65 5f 76 61 72 5f 73 69 6d 70 6c 65 20 3d 20 20 33 33 3b 0a 63 6f 64 65 5f 69 6e 73 70 65   ┆ode_var_simple =  33; code_inspe┆
0x03f740…03f760             63 5f 70 74 72 20 3d 20 31 30 36 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 72 3d 20 31   ┆c_ptr = 106; code_inspec_sysr= 1┆
0x03f760…03f780             32 36 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 61 3d 20 31 33 30 3b 0a 63 6f 64 65 5f   ┆26; code_inspec_sysa= 130; code_┆
0x03f780…03f7a0             69 6e 73 70 65 63 5f 73 69 6d 20 3d 20 31 33 34 3b 0a 0a 28 2a 20 64 65 63 6c 61 72 61 74 69 6f   ┆inspec_sim = 134;  (* declaratio┆
0x03f7a0…03f7c0             6e 73 20 66 6f 72 20 63 72 63 31 36 20 73 75 6d 63 61 74 61 6c 6f 67 20 2a 29 0a 6e 6f 5f 6f 66   ┆ns for crc16 sumcatalog *) no_of┆
0x03f7c0…03f7e0             5f 73 75 6d 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 20 20 33 32   ┆_sums                     =   32┆
0x03f7e0…03f800             3b 20 28 2a 20 77 6f 72 64 73 20 2a 29 0a 73 75 6d 62 79 74 65 73 20 20 20 20 20 20 20 20 20 20   ┆; (* words *) sumbytes          ┆
0x03f800…03f820 (16, 1, 14) 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 30 34 38 3b 0a 73 75 6d 77 6f 72 64 73 20 20 20   ┆             = 2048; sumwords   ┆
0x03f820…03f840             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 30 32 34 3b 20 28 2a 20 73   ┆                    = 1024; (* s┆
0x03f840…03f860             75 6d 62 79 74 65 73 20 64 69 76 20 32 20 2a 29 0a 73 75 6d 5f 64 65 73 63 72 69 70 74 6f 72 5f   ┆umbytes div 2 *) sum_descriptor_┆
0x03f860…03f880             6c 65 6e 67 74 68 20 20 20 20 20 20 20 20 20 20 3d 20 20 20 31 30 3b 20 28 2a 20 62 79 74 65 73   ┆length          =   10; (* bytes┆
0x03f880…03f8a0             20 2a 29 0a 0a 0a 79 65 73 20 20 20 20 20 20 20 20 20 20 20 3d 20 27 79 65 73 27 3b 0a 6e 6f 20   ┆ *)   yes           = 'yes'; no ┆
0x03f8a0…03f8c0             20 20 20 20 20 20 20 20 20 20 20 3d 20 27 6e 6f 27 3b 09 09 28 2a 20 20 63 61 6c 6c 20 70 61 72   ┆           = 'no';  (*  call par┆
0x03f8c0…03f8e0             61 6d 65 74 65 72 73 20 2a 29 0a 0a 20 20 66 61 74 61 6c 09 09 3d 20 20 31 3b 0a 20 20 77 61 72   ┆ameters *)    fatal  =  1;   war┆
0x03f8e0…03f900             6e 09 09 3d 20 20 32 3b 0a 20 20 6d 61 72 67 69 6e 09 3d 20 20 31 30 3b 0a 0a 54 79 70 65 0a 0a   ┆n  =  2;   margin =  10;  Type  ┆
0x03f900…03f920             20 20 20 69 64 65 6e 74 69 66 69 65 72 20 3d 20 61 6c 66 61 3b 09 09 28 2a 20 61 72 72 61 79 20   ┆   identifier = alfa;  (* array ┆
0x03f920…03f940             28 20 31 20 2e 2e 20 31 32 20 29 20 6f 66 20 63 68 61 72 20 20 2a 29 0a 0a 20 20 20 6d 65 6d 5f   ┆( 1 .. 12 ) of char  *)     mem_┆
0x03f940…03f960             62 79 74 65 73 5f 74 79 70 65 09 3d 20 20 61 72 72 61 79 20 5b 20 30 2e 2e 36 35 35 32 30 20 20   ┆bytes_type =  array [ 0..65520  ┆
0x03f960…03f980             5d 20 6f 66 20 62 79 74 65 3b 0a 20 20 20 6d 65 6d 5f 77 6f 72 64 73 5f 74 79 70 65 09 3d 20 20   ┆] of byte;    mem_words_type =  ┆
0x03f980…03f9a0             61 72 72 61 79 20 5b 20 30 2e 2e 6d 61 78 69 6e 74 2d 38 20 5d 20 6f 66 20 77 6f 72 64 3b 0a 0a   ┆array [ 0..maxint-8 ] of word;  ┆
0x03f9a0…03f9c0             7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 73 65 20 20 70 6c 69 62 75 6e 69 74 0a 70   ┆{---------------  se  plibunit p┆
0x03f9c0…03f9e0             72 6f 67 72 61 6d 5f 70 6f 69 6e 74 20 3d 0a 20 20 72 65 63 6f 72 64 0a 20 20 70 61 67 65 5f 6e   ┆rogram_point =   record   page_n┆
0x03f9e0…03fa00             6f 20 20 2c 0a 20 20 72 65 6c 5f 62 79 74 65 20 3a 20 77 6f 72 64 0a 20 20 65 6e 64 3b 0a 0a 61   ┆o  ,   rel_byte : word   end;  a┆
0x03fa00…03fa20 (16, 1, 15) 64 64 72 65 73 73 20 3d 0a 20 20 72 65 63 6f 72 64 0a 20 20 62 61 73 65 20 20 2c 0a 20 20 64 69   ┆ddress =   record   base  ,   di┆
0x03fa20…03fa40             73 70 20 3a 20 77 6f 72 64 0a 20 20 65 6e 64 3b 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆sp : word   end;   -------------┆
0x03fa40…03fa60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 70 61 72 61 6d 5f 64 65 73 63 72 20 3d 0a 20 20 72 65 63   ┆----------}  param_descr =   rec┆
0x03fa60…03fa80             6f 72 64 0a 20 20 70 61 72 61 6d 63 6f 75 6e 74 20 3a 20 77 6f 72 64 3b 0a 20 20 70 61 72 61 6d   ┆ord   paramcount : word;   param┆
0x03fa80…03faa0             20 20 20 20 20 20 20 20 3a 20 61 72 72 61 79 20 5b 20 31 20 2e 2e 20 6d 61 78 5f 6f 62 6a 5f 70   ┆        : array [ 1 .. max_obj_p┆
0x03faa0…03fac0             61 72 61 6d 73 20 5d 20 6f 66 0a 20 20 20 20 72 65 63 6f 72 64 0a 20 20 20 20 70 61 72 61 6d 5f   ┆arams ] of     record     param_┆
0x03fac0…03fae0             74 79 70 65 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 70 61 72 61 6d 5f 73 69 7a 65 20 3a 20 77 6f   ┆type : word;     param_size : wo┆
0x03fae0…03fb00             72 64 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 20 20 65 78 74 5f 73 74 61 74 65 73 20   ┆rd     end   end;    ext_states ┆
0x03fb00…03fb20             3d 20 28 20 75 6e 64 65 66 2c 20 64 65 66 69 6e 65 64 29 3b 0a 0a 20 20 69 74 65 6d 5f 72 65 63   ┆= ( undef, defined);    item_rec┆
0x03fb20…03fb40             20 3d 20 20 72 65 63 6f 72 64 0a 20 20 20 20 72 65 63 73 74 61 74 09 3a 20 20 77 6f 72 64 3b 0a   ┆ =  record     recstat :  word; ┆
0x03fb40…03fb60             20 20 20 20 75 73 65 72 6e 61 6d 65 09 3a 20 20 61 6c 66 61 73 74 72 3b 0a 20 20 20 20 63 6f 6d   ┆    username :  alfastr;     com┆
0x03fb60…03fb80             70 69 6c 65 5f 64 61 74 65 20 3a 20 63 6f 64 65 64 5f 64 61 74 65 3b 0a 20 20 20 20 63 6f 6d 70   ┆pile_date : coded_date;     comp┆
0x03fb80…03fba0             69 6c 65 5f 74 69 6d 65 20 3a 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 20 20 20 20 73 74 61 74 65   ┆ile_time : coded_time;     state┆
0x03fba0…03fbc0             20 20 20 20 20 20 20 20 3a 20 65 78 74 5f 73 74 61 74 65 73 3b 0a 20 20 20 20 70 61 72 61 6d 6c   ┆        : ext_states;     paraml┆
0x03fbc0…03fbe0             69 73 74 20 20 20 20 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 3b 0a 20 20 20 20 73 61 76 65 64 5f   ┆ist    : param_descr;     saved_┆
0x03fbe0…03fc00             64 5f 61 64 64 72 20 3a 20 61 64 64 72 65 73 73 3b 0a 20 20 20 20 65 6e 74 72 79 5f 61 64 64 72   ┆d_addr : address;     entry_addr┆
0x03fc00…03fc20 (17, 0, 1)  20 20 20 3a 20 61 64 64 72 65 73 73 3b 0a 20 20 20 65 6e 64 3b 0a 0a 0c 0a 0a 56 61 72 0a 0a 20   ┆   : address;    end;     Var   ┆
0x03fc20…03fc40             20 20 20 6c 69 62 72 61 72 79 09 2c 0a 20 20 20 73 6f 75 72 63 65 5f 66 69 6c 65 09 2c 0a 20 20   ┆   library ,    source_file ,   ┆
0x03fc40…03fc60             20 6c 61 73 74 5f 73 63 61 6e 09 2c 0a 20 20 20 61 6e 79 5f 69 6e 63 6c 75 64 65 64 09 2c 0a 20   ┆ last_scan ,    any_included ,  ┆
0x03fc60…03fc80             20 20 61 66 74 65 72 5f 6c 69 62 09 2c 0a 20 20 20 77 61 6e 74 65 64 09 3a 20 62 6f 6f 6c 65 61   ┆  after_lib ,    wanted : boolea┆
0x03fc80…03fca0             6e 3b 0a 0a 20 20 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 09 2c 09 09 28 2a 20 20 20 77 6f 72 64   ┆n;     start_module ,  (*   word┆
0x03fca0…03fcc0             20 74 79 70 65 20 69 73 20 20 30 2e 2e 36 35 35 33 35 09 2a 29 0a 20 20 20 73 74 61 72 74 5f 64   ┆ type is  0..65535 *)    start_d┆
0x03fcc0…03fce0             69 73 70 6c 09 2c 0a 20 20 20 66 69 72 73 74 5f 6f 66 5f 6d 6f 64 75 6c 65 09 2c 0a 20 20 20 74   ┆ispl ,    first_of_module ,    t┆
0x03fce0…03fd00             6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 2c 0a 20 20 20 70 72 65 6f 63 63 75 70 69 65 64 09 2c 0a 20   ┆op_of_module,    preoccupied ,  ┆
0x03fd00…03fd20             20 20 70 61 72 61 6d 5f 69 6e 64 65 78 09 2c 0a 20 20 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c   ┆  param_index ,    no_of_obj_fil┆
0x03fd20…03fd40             65 73 09 2c 0a 20 20 20 73 74 65 70 09 09 2c 0a 20 20 20 70 2c 20 77 72 6b 09 2c 0a 20 20 20 75   ┆es ,    step  ,    p, wrk ,    u┆
0x03fd40…03fd60             6e 64 65 66 5f 63 6f 75 6e 74 09 2c 20 28 2a 20 68 6f 6c 64 73 20 6e 75 6d 62 65 72 20 6f 66 20   ┆ndef_count , (* holds number of ┆
0x03fd60…03fd80             65 78 74 5f 74 61 62 6c 65 20 65 6e 74 72 69 65 73 20 77 69 74 68 20 73 74 61 74 65 20 3d 20 75   ┆ext_table entries with state = u┆
0x03fd80…03fda0             6e 64 65 66 20 2a 29 0a 20 20 20 73 63 61 6e 09 09 3a 20 77 6f 72 64 3b 0a 0a 20 20 20 6c 61 73   ┆ndef *)    scan  : word;     las┆
0x03fda0…03fdc0             74 5f 65 78 74 65 72 6e 61 6c 2c 0a 20 20 20 6e 6f 5f 6f 66 5f 75 73 65 73 09 2c 0a 20 20 20 6e   ┆t_external,    no_of_uses ,    n┆
0x03fdc0…03fde0             6f 5f 6f 66 5f 69 6e 74 09 2c 0a 20 20 20 6e 6f 5f 6f 66 5f 65 78 74 09 3a 20 77 6f 72 64 3b 0a   ┆o_of_int ,    no_of_ext : word; ┆
0x03fde0…03fe00             0a 20 20 20 63 6f 64 65 5f 77 6f 72 64 73 09 2c 09 09 28 2a 20 20 6e 6f 20 6f 66 20 77 6f 72 64   ┆    code_words ,  (*  no of word┆
0x03fe00…03fe20 (17, 0, 2)  73 20 69 6e 20 63 6f 64 65 09 09 2a 29 0a 20 20 20 63 6f 64 65 5f 62 79 74 65 73 09 2c 09 09 28   ┆s in code  *)    code_bytes ,  (┆
0x03fe20…03fe40             2a 20 20 2d 20 20 2d 20 20 62 79 74 65 73 20 2d 20 20 2d 09 09 2a 29 0a 20 20 20 6f 63 74 65 74   ┆*  -  -  bytes -  -  *)    octet┆
0x03fe40…03fe60             73 09 3a 20 20 6c 6f 6e 67 69 6e 74 3b 09 28 2a 20 20 65 76 65 6e 20 6e 6f 20 6f 66 20 62 79 74   ┆s :  longint; (*  even no of byt┆
0x03fe60…03fe80             65 73 20 69 6e 20 63 6f 64 65 09 2a 29 0a 0a 20 20 20 74 6f 5f 61 64 64 72 09 2c 0a 20 20 20 6d   ┆es in code *)     to_addr ,    m┆
0x03fe80…03fea0             61 70 5f 61 64 64 72 09 2c 0a 20 20 20 73 74 61 72 74 5f 61 64 64 72 09 2c 0a 20 20 20 74 6f 70   ┆ap_addr ,    start_addr ,    top┆
0x03fea0…03fec0             5f 6f 66 5f 62 69 6e 09 2c 0a 20 20 20 64 5f 61 64 64 72 09 2c 0a 20 20 20 63 6f 64 65 5f 61 64   ┆_of_bin ,    d_addr ,    code_ad┆
0x03fec0…03fee0             64 72 09 3a 20 61 64 64 72 65 73 73 3b 0a 0a 20 20 20 28 2a 20 76 61 72 69 61 62 6c 65 73 20 63   ┆dr : address;     (* variables c┆
0x03fee0…03ff00             6f 6e 63 65 72 6e 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 70 61 72   ┆oncerning descriptor segment par┆
0x03ff00…03ff20             74 20 31 20 2a 29 0a 20 20 20 68 65 61 64 09 09 3a 20 20 64 65 73 63 72 69 70 74 6f 72 5f 70 61   ┆t 1 *)    head  :  descriptor_pa┆
0x03ff20…03ff40             72 74 31 3b 0a 0a 20 20 20 6f 62 6a 5f 70 61 72 61 6d 73 09 3a 20 20 70 61 72 61 6d 5f 64 65 73   ┆rt1;     obj_params :  param_des┆
0x03ff40…03ff60             63 72 3b 0a 20 20 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 09 3a 20 20 61 6c 66 61 3b 0a 0a 20 20 20   ┆cr;    name_of_ext :  alfa;     ┆
0x03ff60…03ff80             69 74 65 6d 09 09 2c 0a 20 20 20 65 78 74 5f 69 74 65 6d 09 3a 20 69 74 65 6d 5f 72 65 63 3b 0a   ┆item  ,    ext_item : item_rec; ┆
0x03ff80…03ffa0             0a 20 20 20 74 78 74 09 09 3a 20 20 73 74 72 69 6e 67 5b 34 30 5d 3b 0a 0a 20 20 20 70 61 72 61   ┆    txt  :  string[40];     para┆
0x03ffa0…03ffc0             6d 74 78 74 09 2c 0a 20 20 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 3a 20 20 70 61 74 68 73 74   ┆mtxt ,    obj_file_name:  pathst┆
0x03ffc0…03ffe0             72 3b 0a 0a 20 20 20 63 6f 72 65 73 69 7a 65 09 3a 20 20 77 6f 72 64 3b 20 28 2a 20 61 63 74 75   ┆r;     coresize :  word; (* actu┆
0x03ffe0…040000             61 6c 20 73 69 7a 65 20 6f 66 20 63 6f 72 65 20 69 6d 61 67 65 20 2a 29 0a 20 20 20 63 6f 72 65   ┆al size of core image *)    core┆
0x040000…040020 (17, 0, 3)  09 09 3a 20 20 5e 6d 65 6d 5f 62 79 74 65 73 5f 74 79 70 65 3b 0a 20 20 20 63 6f 72 65 77 09 3a   ┆  :  ^mem_bytes_type;    corew :┆
0x040020…040040             20 20 5e 6d 65 6d 5f 77 6f 72 64 73 5f 74 79 70 65 20 61 62 73 6f 6c 75 74 65 20 63 6f 72 65 3b   ┆  ^mem_words_type absolute core;┆
0x040040…040060             0a 20 20 20 75 70 70 65 72 63 6f 72 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 0a 20 20 20 66 70   ┆    uppercore :  pointer;     fp┆
0x040060…040080             6f 73 20 20 20 20 20 20 20 20 20 3a 20 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 69 6e 5f 6f 62 6a   ┆os         :  longint;    in_obj┆
0x040080…0400a0             5f 66 69 6c 65 09 2c 0a 20 20 20 6f 75 74 62 69 6e 66 69 6c 65 09 3a 20 66 69 6c 65 3b 0a 0a 20   ┆_file ,    outbinfile : file;   ┆
0x0400a0…0400c0             20 20 64 61 74 66 09 09 3a 20 20 64 61 74 61 66 69 6c 65 3b 0a 20 20 20 69 6e 78 66 09 09 3a 20   ┆  datf  :  datafile;    inxf  : ┆
0x0400c0…0400e0             20 69 6e 64 65 78 66 69 6c 65 3b 0a 20 20 20 6c 6f 67 6e 6f 09 2c 0a 20 20 20 64 72 6e 2c 20 69   ┆ indexfile;    logno ,    drn, i┆
0x0400e0…040100             74 65 6d 6e 6f 09 3a 20 20 77 6f 72 64 3b 09 28 2a 20 20 64 61 74 61 20 72 65 63 6f 72 64 20 6e   ┆temno :  word; (*  data record n┆
0x040100…040120             6f 20 20 2a 29 0a 20 20 20 6b 65 79 09 09 3a 20 20 61 6c 66 61 73 74 72 3b 0a 20 20 20 65 78 69   ┆o  *)    key  :  alfastr;    exi┆
0x040120…040140             74 73 61 76 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 20 20 20 6c 6f 67 09 09 3a 20 20 74 65 78   ┆tsave :  pointer;    log  :  tex┆
0x040140…040160             74 3b 0a 0a 20 20 20 73 75 6d 63 61 74 61 6c 6f 67 09 3a 20 61 72 72 61 79 20 5b 20 31 2e 2e 6e   ┆t;     sumcatalog : array [ 1..n┆
0x040160…040180             6f 5f 6f 66 5f 73 75 6d 73 20 5d 20 6f 66 20 77 6f 72 64 3b 0a 20 20 20 73 75 6d 69 6e 64 65 78   ┆o_of_sums ] of word;    sumindex┆
0x040180…0401a0             09 2c 0a 20 20 20 73 75 6d 63 6f 75 6e 74 09 2c 0a 20 20 20 73 75 6d 09 09 3a 20 20 77 6f 72 64   ┆ ,    sumcount ,    sum  :  word┆
0x0401a0…0401c0             3b 0a 0a 0a 20 43 6f 6e 73 74 20 20 20 28 2a 20 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72   ┆;    Const   (*  initialized var┆
0x0401c0…0401e0             20 20 2a 29 0a 0a 20 20 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65 64 3a 20 20 62 6f 6f 6c 65 61 6e   ┆  *)     source_opened:  boolean┆
0x0401e0…040200             09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 64 65 73 74 5f 6f 70 65 6e 65 64 20 20 3a 20 20 62 6f   ┆ =  false;    dest_opened  :  bo┆
0x040200…040220 (17, 0, 4)  6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 6e 65 77 6f 62 6a 5f 6f 70 65 6e 65 64   ┆olean =  false;    newobj_opened┆
0x040220…040240             3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 64 61 74 61 62 61 73 65   ┆:  boolean =  false;    database┆
0x040240…040260             5f 6f 70 65 6e 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 6d 65 6d   ┆_open:  boolean =  false;    mem┆
0x040260…040280             5f 61 6c 6c 6f 63 61 74 65 64 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20   ┆_allocated:  boolean =  false;  ┆
0x040280…0402a0             20 20 6c 6f 61 64 65 72 6d 61 70 5f 65 72 72 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c   ┆  loadermap_err:  boolean =  fal┆
0x0402a0…0402c0             73 65 3b 0a 20 20 20 6d 79 5f 65 78 63 6f 64 65 20 20 20 20 3a 20 20 77 6f 72 64 20 20 20 09 3d   ┆se;    my_excode    :  word    =┆
0x0402c0…0402e0             20 20 30 3b 0a 0a 20 20 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 3a 20 77 6f 72 64   ┆  0;     compiler_version : word┆
0x0402e0…040300             20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 3b 0a 20 20   ┆ = compiler_c_version_number;   ┆
0x040300…040320             20 62 6f 6f 74 65 72 5f 76 65 72 73 69 6f 6e 20 20 20 3a 20 77 6f 72 64 20 3d 20 62 6f 6f 74 5f   ┆ booter_version   : word = boot_┆
0x040320…040340             63 5f 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 62 69   ┆c_compiler_version_number;    bi┆
0x040340…040360             6e 64 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 74 72 75 65 3b 0a 20 20 20 64 65   ┆nd_yes :  boolean =  true;    de┆
0x040360…040380             73 63 72 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 74 72 75 65 3b 0a 20 20 20 6d   ┆scr_yes :  boolean =  true;    m┆
0x040380…0403a0             61 70 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 70   ┆ap_yes :  boolean =  false;    p┆
0x0403a0…0403c0             72 69 6e 74 5f 63 6f 64 65 09 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 0a 20   ┆rint_code :  boolean =  false;  ┆
0x0403c0…0403e0             20 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 3a 20 20 77 6f 72 64 20 20 20 20 3d 20 20 20 20 20   ┆  print_pr_line:  word    =     ┆
0x0403e0…040400             31 36 3b 0a 20 20 20 70 72 69 6e 74 5f 68 65 61 64 69 6e 67 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d   ┆16;    print_heading:  boolean =┆
0x040400…040420 (17, 0, 5)  20 20 66 61 6c 73 65 3b 0a 20 20 20 61 6c 6c 5f 6f 6e 65 73 09 3a 20 20 77 6f 72 64 09 20 20 20   ┆  false;    all_ones :  word    ┆
0x040420…040440             3d 20 20 24 46 46 46 46 3b 0a 0a 0c 0a 0a 20 56 61 72 0a 20 20 20 20 63 72 63 74 61 62 20 3a 20   ┆=  $FFFF;      Var     crctab : ┆
0x040440…040460             20 61 72 72 61 79 20 5b 20 30 2e 2e 20 32 35 35 20 5d 20 6f 66 20 77 6f 72 64 3b 20 20 20 20 28   ┆ array [ 0.. 255 ] of word;    (┆
0x040460…040480             2a 20 20 63 72 63 74 61 62 74 79 70 65 3b 20 20 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20   ┆*  crctabtype;  *)    Procedure ┆
0x040480…0404a0             63 72 63 31 36 20 28 20 76 61 72 20 73 75 6d 3a 20 77 6f 72 64 3b 20 64 61 74 61 3a 20 77 6f 72   ┆crc16 ( var sum: word; data: wor┆
0x0404a0…0404c0             64 29 3b 0a 20 20 28 2a 20 20 75 70 64 61 74 65 20 73 75 6d 20 61 63 63 6f 72 64 69 6e 67 20 74   ┆d);   (*  update sum according t┆
0x0404c0…0404e0             6f 20 6f 6c 64 20 73 75 6d 20 61 6e 64 20 64 61 74 61 2c 20 4e 42 20 62 6f 74 68 20 62 79 74 65   ┆o old sum and data, NB both byte┆
0x0404e0…040500             73 21 20 20 6c 6f 2c 20 68 69 0a 20 20 2d 2d 20 20 67 6c 6f 62 61 6c 20 3a 20 20 63 72 63 74 61   ┆s!  lo, hi   --  global :  crcta┆
0x040500…040520             62 20 20 20 20 2a 29 0a 20 20 62 65 67 69 6e 0a 20 20 69 6e 6c 69 6e 65 20 28 0a 09 20 24 38 41   ┆b    *)   begin   inline (   $8A┆
0x040520…040540             2f 24 34 36 2f 3c 64 61 74 61 2f 09 09 28 2a 20 20 20 4d 4f 56 20 41 4c 2c 6c 6f 28 64 61 74 61   ┆/$46/<data/  (*   MOV AL,lo(data┆
0x040540…040560             5b 42 50 5d 29 2a 29 0a 09 20 24 33 30 2f 24 45 34 2f 09 09 28 2a 20 20 20 58 4f 52 20 41 48 2c   ┆[BP])*)   $30/$E4/  (*   XOR AH,┆
0x040560…040580             41 48 09 09 2a 29 0a 09 20 24 43 34 2f 24 37 45 2f 3c 73 75 6d 2f 20 20 09 28 2a 20 20 20 4c 45   ┆AH  *)   $C4/$7E/<sum/   (*   LE┆
0x040580…0405a0             53 20 44 49 2c 73 75 6d 5b 42 50 5d 09 2a 29 0a 09 20 24 32 36 2f 24 33 33 2f 24 30 35 2f 09 09   ┆S DI,sum[BP] *)   $26/$33/$05/  ┆
0x0405a0…0405c0             28 2a 20 20 20 58 4f 52 20 41 58 2c 45 53 3a 5b 44 49 5d 09 2a 29 0a 09 20 24 33 32 2f 24 46 36   ┆(*   XOR AX,ES:[DI] *)   $32/$F6┆
0x0405c0…0405e0             2f 09 09 28 2a 20 20 20 58 4f 52 20 44 48 2c 44 48 09 09 2a 29 0a 09 20 24 38 41 2f 24 44 30 2f   ┆/  (*   XOR DH,DH  *)   $8A/$D0/┆
0x0405e0…040600             09 09 28 2a 20 20 20 4d 4f 56 20 44 4c 2c 41 4c 09 09 2a 29 0a 09 20 24 38 36 2f 24 43 34 2f 09   ┆  (*   MOV DL,AL  *)   $86/$C4/ ┆
0x040600…040620 (17, 0, 6)  09 28 2a 20 20 20 58 43 48 47 20 41 4c 2c 41 48 09 09 2a 29 0a 09 20 24 33 30 2f 24 45 34 2f 09   ┆ (*   XCHG AL,AH  *)   $30/$E4/ ┆
0x040620…040640             09 28 2a 20 20 20 58 4f 52 20 41 48 2c 41 48 09 09 2a 29 0a 09 20 24 38 42 2f 24 46 41 2f 09 09   ┆ (*   XOR AH,AH  *)   $8B/$FA/  ┆
0x040640…040660             28 2a 20 20 20 4d 4f 56 20 44 49 2c 44 58 09 09 2a 29 0a 09 20 24 44 31 2f 24 45 37 2f 09 09 28   ┆(*   MOV DI,DX  *)   $D1/$E7/  (┆
0x040660…040680             2a 20 20 20 53 48 4c 20 44 49 2c 31 20 09 09 2a 29 0a 09 20 24 33 33 2f 24 38 35 2f 63 72 63 74   ┆*   SHL DI,1   *)   $33/$85/crct┆
0x040680…0406a0             61 62 2f 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 63 72 63 74 61 62 5b 44 49 5d 09 2a 29 0a 09 20   ┆ab/ (*   XOR AX,crctab[DI] *)   ┆
0x0406a0…0406c0             24 38 41 2f 24 35 36 2f 3c 64 61 74 61 2b 31 2f 09 28 2a 20 20 20 4d 4f 56 20 44 4c 2c 68 69 28   ┆$8A/$56/<data+1/ (*   MOV DL,hi(┆
0x0406c0…0406e0             64 61 74 61 5b 42 50 5d 29 2a 29 0a 09 20 24 33 33 2f 24 43 32 2f 09 09 28 2a 20 20 20 58 4f 52   ┆data[BP])*)   $33/$C2/  (*   XOR┆
0x0406e0…040700             20 41 58 2c 44 58 09 09 2a 29 0a 09 20 24 38 41 2f 24 44 30 2f 09 09 28 2a 20 20 20 4d 4f 56 20   ┆ AX,DX  *)   $8A/$D0/  (*   MOV ┆
0x040700…040720             44 4c 2c 41 4c 09 09 2a 29 0a 09 20 24 38 36 2f 24 43 34 2f 09 09 28 2a 20 20 20 58 43 48 47 20   ┆DL,AL  *)   $86/$C4/  (*   XCHG ┆
0x040720…040740             41 4c 2c 41 48 09 09 2a 29 0a 09 20 24 33 30 2f 24 45 34 2f 09 09 28 2a 20 20 20 58 4f 52 20 41   ┆AL,AH  *)   $30/$E4/  (*   XOR A┆
0x040740…040760             48 2c 41 48 09 09 2a 29 0a 09 20 24 38 42 2f 24 46 41 2f 09 09 28 2a 20 20 20 4d 4f 56 20 44 49   ┆H,AH  *)   $8B/$FA/  (*   MOV DI┆
0x040760…040780             2c 44 58 09 09 2a 29 0a 09 20 24 44 31 2f 24 45 37 2f 09 09 28 2a 20 20 20 53 48 4c 20 44 49 2c   ┆,DX  *)   $D1/$E7/  (*   SHL DI,┆
0x040780…0407a0             31 20 09 09 2a 29 0a 09 20 24 33 33 2f 24 38 35 2f 63 72 63 74 61 62 2f 09 28 2a 20 20 20 58 4f   ┆1   *)   $33/$85/crctab/ (*   XO┆
0x0407a0…0407c0             52 20 41 58 2c 63 72 63 74 61 62 5b 44 49 5d 09 2a 29 0a 09 20 24 43 34 2f 24 37 45 2f 3c 73 75   ┆R AX,crctab[DI] *)   $C4/$7E/<su┆
0x0407c0…0407e0             6d 2f 20 20 09 28 2a 20 20 20 4c 45 53 20 44 49 2c 73 75 6d 5b 42 50 5d 09 2a 29 0a 09 20 24 32   ┆m/   (*   LES DI,sum[BP] *)   $2┆
0x0407e0…040800             36 2f 24 38 39 2f 24 30 35 20 20 09 09 28 2a 20 20 20 4d 4f 56 20 45 53 3a 5b 44 49 5d 2c 41 58   ┆6/$89/$05    (*   MOV ES:[DI],AX┆
0x040800…040820 (17, 0, 7)  09 2a 29 0a 20 20 20 20 20 20 20 29 0a 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 69   ┆ *)        )   {-------------  i┆
0x040820…040840             6e 20 50 41 53 43 41 4c 20 3a 20 20 2d 2d 0a 20 20 77 72 6b 3a 3d 20 73 75 6d 20 58 4f 52 20 6c   ┆n PASCAL :  --   wrk:= sum XOR l┆
0x040840…040860             6f 28 64 61 74 61 29 3b 09 09 28 2a 20 20 74 61 6b 65 20 74 68 65 20 6c 6f 77 20 62 79 74 65 20   ┆o(data);  (*  take the low byte ┆
0x040860…040880             20 2a 29 0a 20 20 77 72 6b 3a 3d 20 68 69 28 77 72 6b 29 20 58 4f 52 20 63 72 63 74 61 62 5b 6c   ┆ *)   wrk:= hi(wrk) XOR crctab[l┆
0x040880…0408a0             6f 28 77 72 6b 29 5d 3b 0a 0a 20 20 77 72 6b 3a 3d 20 77 72 6b 20 58 4f 52 20 68 69 28 64 61 74   ┆o(wrk)];    wrk:= wrk XOR hi(dat┆
0x0408a0…0408c0             61 29 3b 09 09 28 2a 20 20 74 61 6b 65 20 74 68 65 20 68 69 67 68 20 62 79 74 65 20 20 2a 29 0a   ┆a);  (*  take the high byte  *) ┆
0x0408c0…0408e0             20 20 73 75 6d 3a 3d 20 68 69 28 77 72 6b 29 20 58 4f 52 20 63 72 63 74 61 62 5b 6c 6f 28 77 72   ┆  sum:= hi(wrk) XOR crctab[lo(wr┆
0x0408e0…040900             6b 29 5d 3b 0a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆k)];  --------------------------┆
0x040900…040920             2d 7d 0a 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆-}   {--------------------------┆
0x040920…040940             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 4d 52 57 3a 0a 20 20 73 75 6d 3a 3d 73 75 6d 20   ┆--------------  MRW:   sum:=sum ┆
0x040940…040960             58 4f 52 20 6c 6f 28 64 61 74 61 29 3b 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 73 75 6d 3a   ┆XOR lo(data);           (*  sum:┆
0x040960…040980             3d 73 75 6d 20 45 58 4f 52 20 28 64 61 74 61 20 64 69 76 20 32 35 36 29 3b 20 2a 29 0a 20 20 74   ┆=sum EXOR (data div 256); *)   t┆
0x040980…0409a0             65 6d 70 3a 3d 20 63 72 63 74 61 62 5b 6c 6f 28 73 75 6d 29 5d 3b 0a 20 20 73 75 6d 3a 3d 20 20   ┆emp:= crctab[lo(sum)];   sum:=  ┆
0x0409a0…0409c0             68 69 28 73 75 6d 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20   ┆hi(sum);                    (*  ┆
0x0409c0…0409e0             73 75 6d 3a 3d 20 20 73 75 6d 20 64 69 76 20 32 35 36 3b 20 2a 29 0a 20 20 73 75 6d 3a 3d 20 20   ┆sum:=  sum div 256; *)   sum:=  ┆
0x0409e0…040a00             73 75 6d 20 58 4f 52 20 74 65 6d 70 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆sum XOR temp; ------------------┆
0x040a00…040a20 (17, 0, 8)  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 20 20 65 6e   ┆--------------------------}   en┆
0x040a20…040a40             64 3b 20 20 28 2a 20 20 63 72 63 31 36 20 20 2a 29 0a 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20   ┆d;  (*  crc16  *)     Procedure ┆
0x040a40…040a60             69 6e 69 74 5f 63 72 63 74 61 62 20 3b 0a 20 20 28 2a 20 20 67 6c 6f 62 61 6c 73 3a 20 20 20 63   ┆init_crctab ;   (*  globals:   c┆
0x040a60…040a80             72 63 74 61 62 20 20 20 2a 29 0a 20 20 63 6f 6e 73 74 0a 20 20 20 20 20 63 72 63 31 36 71 75 6f   ┆rctab   *)   const      crc16quo┆
0x040a80…040aa0             74 69 65 6e 74 20 3d 20 20 24 38 34 30 38 3b 09 09 28 2a 20 20 32 27 31 36 20 2b 20 32 27 31 32   ┆tient =  $8408;  (*  2'16 + 2'12┆
0x040aa0…040ac0             20 2b 20 32 27 35 20 2b 20 31 20 20 20 2a 29 0a 0a 20 20 76 61 72 0a 20 20 20 20 20 69 2c 20 6a   ┆ + 2'5 + 1   *)    var      i, j┆
0x040ac0…040ae0             2c 0a 20 20 20 20 20 71 2c 20 73 75 6d 3a 20 77 6f 72 64 3b 0a 0a 20 20 62 65 67 69 6e 0a 20 20   ┆,      q, sum: word;    begin   ┆
0x040ae0…040b00             71 3a 3d 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 3b 0a 0a 20 20 66 6f 72 20 69 3a 3d 30 20 74   ┆q:= crc16quotient;    for i:=0 t┆
0x040b00…040b20             6f 20 32 35 35 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 73 75 6d 3a 3d 20 69 3b 0a 20 20   ┆o 255 do   begin     sum:= i;   ┆
0x040b20…040b40             20 20 66 6f 72 20 6a 3a 3d 31 20 74 6f 20 38 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆  for j:=1 to 8 do     begin    ┆
0x040b40…040b60             20 20 20 69 66 20 20 28 73 75 6d 20 61 6e 64 20 31 29 20 3d 20 30 20 20 20 20 20 20 20 20 20 20   ┆   if  (sum and 1) = 0          ┆
0x040b60…040b80             20 20 20 20 20 7b 2d 20 20 20 20 20 20 69 66 20 20 73 75 6d 20 6d 6f 64 20 32 20 3d 20 30 20 2d   ┆     {-      if  sum mod 2 = 0 -┆
0x040b80…040ba0             7d 0a 20 20 20 20 20 20 74 68 65 6e 20 20 73 75 6d 3a 3d 20 73 75 6d 20 53 48 52 20 31 20 20 20   ┆}       then  sum:= sum SHR 1   ┆
0x040ba0…040bc0             20 20 20 20 20 20 20 20 20 20 7b 2d 20 20 20 20 20 20 74 68 65 6e 20 20 73 75 6d 3a 3d 20 73 75   ┆          {-      then  sum:= su┆
0x040bc0…040be0             6d 20 64 69 76 20 32 20 2d 7d 0a 20 20 20 20 20 20 65 6c 73 65 20 62 65 67 69 6e 0a 20 20 20 20   ┆m div 2 -}       else begin     ┆
0x040be0…040c00             20 20 20 20 73 75 6d 3a 3d 20 73 75 6d 20 53 48 52 20 31 3b 20 20 20 20 20 20 20 20 20 20 20 20   ┆    sum:= sum SHR 1;            ┆
0x040c00…040c20 (17, 0, 9)  20 20 20 20 7b 2d 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 20 73 75 6d 20 64 69 76 20 32 3b 20 2d   ┆    {-        sum:= sum div 2; -┆
0x040c20…040c40             7d 0a 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 20 73 75 6d 20 58 4f 52 20 71 3b 0a 20 20 20 20 20   ┆}         sum:= sum XOR q;      ┆
0x040c40…040c60             20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 63 72 63 74 61 62 20 5b 69 5d 3a 3d 20   ┆ end;     end;     crctab [i]:= ┆
0x040c60…040c80             73 75 6d 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6f   ┆sum;   end; end;  (*---------- o┆
0x040c80…040ca0             6c 64 20 2d 2d 0a 66 75 6e 63 74 69 6f 6e 20 63 72 63 31 36 20 28 20 6f 70 2c 20 71 75 6f 74 69   ┆ld -- function crc16 ( op, quoti┆
0x040ca0…040cc0             65 6e 74 20 3a 20 77 6f 72 64 29 20 3a 20 77 6f 72 64 3b 0a 20 20 65 78 74 65 72 6e 61 6c 3b 0a   ┆ent : word) : word;   external; ┆
0x040cc0…040ce0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 0a 50 72 6f 63 65 64 75 72 65   ┆------------------*)   Procedure┆
0x040ce0…040d00             20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 6b 69 6e 64 2c 20 6e 6f 2c 20 69 6e 66 20 3a 20 77   ┆  call_error ( kind, no, inf : w┆
0x040d00…040d20             6f 72 64 3b 20 74 78 74 20 3a 20 70 61 74 68 73 74 72 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69   ┆ord; txt : pathstr);   begin   i┆
0x040d20…040d40             66 20 6b 69 6e 64 20 3d 20 66 61 74 61 6c 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20   ┆f kind = fatal then     write ( ┆
0x040d40…040d60             6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 20 66 61 74 61 6c 20 65 72 72 6f 72 3a 20 27 29 0a 20 20   ┆output, '***  fatal error: ')   ┆
0x040d60…040d80             65 6c 73 65 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 21 21 20 20 20 77   ┆else     write ( output, '!!   w┆
0x040d80…040da0             61 72 6e 69 6e 67 3a 20 27 29 3b 0a 0a 20 20 63 61 73 65 20 6e 6f 20 6f 66 0a 0a 7b 2d 2d 2d 2d   ┆arning: ');    case no of  {----┆
0x040da0…040dc0             2d 2d 2d 2d 2d 2d 0a 20 20 31 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆------   1:  writeln ( output, '┆
0x040dc0…040de0             4e 6f 20 6f 75 74 66 69 6c 65 20 73 70 65 63 69 66 69 65 64 2e 27 29 3b 0a 0a 20 20 32 3a 20 20   ┆No outfile specified.');    2:  ┆
0x040de0…040e00             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 45 72 72 6f 72 20 69 6e 20 63 72 6f 73   ┆writeln ( output, 'Error in cros┆
0x040e00…040e20 (17, 0, 10) 73 6c 69 6e 6b 20 27 2c 20 69 6e 66 29 3b 0a 0a 20 20 33 3a 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆slink ', inf);    3:  writeln ( ┆
0x040e20…040e40             6f 75 74 70 75 74 2c 20 27 45 72 72 6f 72 20 69 6e 20 63 61 6c 6c 20 6f 66 20 63 72 6f 73 73 6c   ┆output, 'Error in call of crossl┆
0x040e40…040e60             69 6e 6b 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c 0a 20 20   ┆ink; parameter number ', inf,   ┆
0x040e60…040e80             20 20 20 20 20 20 27 3a 20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 2c 20 27 20   ┆      ':  ', getparam ( inf), ' ┆
0x040e80…040ea0             20 22 27 2c 20 74 78 74 2c 20 27 22 27 29 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20   ┆ "', txt, '"'); ------------}   ┆
0x040ea0…040ec0             20 34 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6c 6c 65 67 61 6c 20   ┆ 4:  writeln ( output, 'Illegal ┆
0x040ec0…040ee0             68 65 78 61 64 65 63 69 6d 61 6c 20 6e 75 6d 62 65 72 20 69 6e 20 63 61 6c 6c 3b 20 70 61 72 61   ┆hexadecimal number in call; para┆
0x040ee0…040f00             6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c 0a 20 20 20 20 20 20 20 20 27 3a 20   ┆meter number ', inf,         ': ┆
0x040f00…040f20             20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 2c 20 27 20 20 22 27 2c 20 74 78 74 2c   ┆ ', getparam ( inf), '  "', txt,┆
0x040f20…040f40             20 27 22 27 29 3b 0a 0a 20 20 35 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆ '"');    5:  writeln ( output, ┆
0x040f40…040f60             27 42 61 64 20 76 65 72 73 69 6f 6e 2c 20 72 65 63 6f 6d 70 69 6c 65 20 27 2c 20 74 78 74 2c 20   ┆'Bad version, recompile ', txt, ┆
0x040f60…040f80             27 2c 20 20 76 65 72 73 69 6f 6e 20 27 2c 20 69 6e 66 2c 0a 09 20 20 20 20 20 27 20 3c 3e 20 27   ┆',  version ', inf,       ' <> '┆
0x040f80…040fa0             2c 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 29 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d   ┆, compiler_version );  {--------┆
0x040fa0…040fc0             2d 2d 0a 20 20 36 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 79 65 73 20   ┆--   6:  writeln ( output, 'yes ┆
0x040fc0…040fe0             6f 72 20 6e 6f 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72 20 22 64 65 73 63 72 2d 22 27 2c 20   ┆or no expected after "descr-"', ┆
0x040fe0…041000             74 78 74 29 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 37 3a 20 20 77 72 69 74 65   ┆txt); ------------}    7:  write┆
0x041000…041020 (17, 0, 11) 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6c 6c 65 67 61 6c 20 63 6f 6e 74 65 6e 74 73 20 6f   ┆ln ( output, 'Illegal contents o┆
0x041020…041040             66 20 6f 62 6a 65 63 74 20 6f 72 20 6c 69 62 72 61 72 79 20 66 69 6c 65 20 27 2c 20 69 6e 66 2c   ┆f object or library file ', inf,┆
0x041040…041060             20 27 27 3a 33 2c 20 74 78 74 29 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 38 3a 20 20   ┆ '':3, txt);  {----------   8:  ┆
0x041060…041080             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 54 6f 6f 20 6d 61 6e 79 20 6d 6f 64 75   ┆writeln ( output, 'Too many modu┆
0x041080…0410a0             6c 65 73 2c 20 28 6d 6f 72 65 20 74 68 61 6e 20 27 2c 20 69 6e 66 2c 20 27 29 27 29 3b 0a 2d 2d   ┆les, (more than ', inf, ')'); --┆
0x0410a0…0410c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 39 3a 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77   ┆----------}    9:  begin       w┆
0x0410c0…0410e0             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6c 6c 65 67 61 6c 20 76 61 6c 75 65 20   ┆riteln ( output, 'Illegal value ┆
0x0410e0…041100             6f 66 20 22 73 74 61 72 74 22 70 61 72 61 6d 65 74 65 72 3b 20 70 61 72 61 6d 65 74 65 72 20 6e   ┆of "start"parameter; parameter n┆
0x041100…041120             75 6d 62 65 72 20 27 2c 0a 20 20 20 20 20 20 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 2c   ┆umber ',         param_index, ',┆
0x041120…041140             20 20 20 76 61 6c 75 65 20 20 48 27 2c 20 74 78 74 2c 20 27 2c 20 20 27 2c 20 67 65 74 70 61 72   ┆   value  H', txt, ',  ', getpar┆
0x041140…041160             61 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 29 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 6c   ┆am ( param_index));       writel┆
0x041160…041180             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 27 2c 20 73 74 72 68 65 78 20 28 20 73 74 61   ┆n ( output, '    ', strhex ( sta┆
0x041180…0411a0             72 74 5f 61 64 64 72 2e 62 61 73 65 29 2c 20 27 3a 27 2c 20 73 74 72 68 65 78 20 28 20 73 74 61   ┆rt_addr.base), ':', strhex ( sta┆
0x0411a0…0411c0             72 74 5f 61 64 64 72 2e 64 69 73 70 29 2c 0a 20 20 20 20 20 20 20 27 20 3c 20 27 2c 20 73 74 72   ┆rt_addr.disp),        ' < ', str┆
0x0411c0…0411e0             68 65 78 20 28 20 74 6f 70 5f 6f 66 5f 62 69 6e 2e 62 61 73 65 29 2c 20 27 3a 27 2c 20 73 74 72   ┆hex ( top_of_bin.base), ':', str┆
0x0411e0…041200             68 65 78 20 28 20 74 6f 70 5f 6f 66 5f 62 69 6e 2e 64 69 73 70 29 20 29 3b 0a 20 20 20 20 20 20   ┆hex ( top_of_bin.disp) );       ┆
0x041200…041220 (17, 0, 12) 65 6e 64 3b 0a 0a 20 20 31 30 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 54   ┆end;    10: writeln ( output, 'T┆
0x041220…041240             6f 6f 20 6d 61 6e 79 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 2c 20 6d 6f 64 75 6c   ┆oo many formal parameters, modul┆
0x041240…041260             65 3a 20 27 2c 20 74 78 74 2c 0a 09 20 27 20 20 27 2c 20 69 6e 66 2c 20 27 20 3e 20 27 2c 20 6d   ┆e: ', txt,   '  ', inf, ' > ', m┆
0x041260…041280             61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 29 3b 0a 0a 20 20 31 31 3a 20 77 72 69 74 65 6c 6e 20   ┆ax_obj_params );    11: writeln ┆
0x041280…0412a0             28 20 6f 75 74 70 75 74 2c 20 27 49 6e 63 6f 6e 73 69 73 74 65 6e 63 79 20 69 6e 20 64 65 73 63   ┆( output, 'Inconsistency in desc┆
0x0412a0…0412c0             72 69 70 74 6f 72 20 6c 65 6e 67 74 68 20 27 2c 20 69 6e 66 2c 20 74 78 74 29 3b 20 20 20 28 2a   ┆riptor length ', inf, txt);   (*┆
0x0412c0…0412e0             20 20 20 6e 61 6d 65 5f 6f 66 5f 6f 62 6a 20 20 2a 29 0a 0a 20 20 31 34 3a 20 20 62 65 67 69 6e   ┆   name_of_obj  *)    14:  begin┆
0x0412e0…041300             0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 22 79 65 73 22 2c 20 22   ┆     writeln ( output, '"yes", "┆
0x041300…041320             6e 6f 22 2c 20 6f 72 20 22 79 65 73 2d 3c 6e 75 6d 62 65 72 3e 22 20 65 78 70 65 63 74 65 64 20   ┆no", or "yes-<number>" expected ┆
0x041320…041340             61 66 74 65 72 20 22 70 72 69 6e 74 2d 22 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆after "print-"');     writeln ( ┆
0x041340…041360             6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 20 70 61 72 61 6d 65 74 65 72 20 67 69 76 65 6e 3a 20   ┆output, '      parameter given: ┆
0x041360…041380             27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a   ┆', getparam ( inf));       end; ┆
0x041380…0413a0             0a 20 20 31 36 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 55 6e 6b 6e 6f   ┆   16:  writeln ( output, 'Unkno┆
0x0413a0…0413c0             77 6e 20 6f 70 74 69 6f 6e 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 20 69   ┆wn option; parameter number ', i┆
0x0413c0…0413e0             6e 66 2c 0a 20 20 20 20 20 20 20 20 27 3a 20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e   ┆nf,         ':  ', getparam ( in┆
0x0413e0…041400             66 29 29 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 31 37 3a 20 20 77 72 69 74 65 6c 6e   ┆f));  {----------   17:  writeln┆
0x041400…041420 (17, 0, 13) 20 28 20 6f 75 74 70 75 74 2c 20 27 4e 61 6d 65 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72 20   ┆ ( output, 'Name expected after ┆
0x041420…041440             22 6c 69 62 2d 22 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c   ┆"lib-"; parameter number ', inf,┆
0x041440…041460             0a 20 20 20 20 20 20 20 20 27 3a 20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 29   ┆         ':  ', getparam ( inf))┆
0x041460…041480             3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 31 38 3a 20 20 77 72 69 74 65 6c 6e 20   ┆; ------------}    18:  writeln ┆
0x041480…0414a0             28 20 6f 75 74 70 75 74 2c 20 27 49 6e 63 6f 6e 73 69 73 74 65 6e 63 79 20 69 6e 20 6c 6f 61 64   ┆( output, 'Inconsistency in load┆
0x0414a0…0414c0             65 72 20 6d 61 70 27 29 3b 0a 0a 20 20 32 30 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆er map');    20:  writeln ( outp┆
0x0414c0…0414e0             75 74 2c 20 27 79 65 73 20 6f 72 20 6e 6f 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72 20 22 6d   ┆ut, 'yes or no expected after "m┆
0x0414e0…041500             61 70 2d 22 20 27 29 3b 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 32 31 3a 20 20 77 72 69 74   ┆ap-" '); {----------   21:  writ┆
0x041500…041520             65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 79 65 73 20 65 78 70 65 63 74 65 64 20 61 66 74 65   ┆eln ( output, 'yes expected afte┆
0x041520…041540             72 20 22 62 69 6e 64 2d 22 20 27 29 3b 0a 0a 20 20 32 32 3a 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆r "bind-" ');    22:  writeln ( ┆
0x041540…041560             6f 75 74 70 75 74 2c 20 27 22 62 69 6e 64 2e 79 65 73 22 20 72 65 71 75 69 72 65 64 20 62 79 20   ┆output, '"bind.yes" required by ┆
0x041560…041580             72 63 33 35 30 32 2f 32 20 27 29 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 20 20 32 33 3a   ┆rc3502/2 '); ------------}   23:┆
0x041580…0415a0             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 66 69 6c 65 3a 20 27 2c 20 6f 62   ┆  writeln ( output, 'file: ', ob┆
0x0415a0…0415c0             6a 5f 66 69 6c 65 5f 6e 61 6d 65 2c 20 27 20 6e 6f 74 20 52 54 50 20 6f 62 6a 65 63 74 20 66 69   ┆j_file_name, ' not RTP object fi┆
0x0415c0…0415e0             6c 65 27 29 3b 0a 0a 20 20 32 34 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆le');    24:  writeln ( output, ┆
0x0415e0…041600             27 4d 61 78 20 61 76 61 69 6c 61 62 6c 65 20 6d 65 6d 20 66 6f 72 20 63 6f 72 65 69 6d 61 67 65   ┆'Max available mem for coreimage┆
0x041600…041620 (17, 0, 14) 20 69 73 20 27 2c 20 69 6e 66 2c 20 27 20 3c 20 36 35 35 33 35 20 27 29 3b 0a 0a 20 20 32 35 3a   ┆ is ', inf, ' < 65535 ');    25:┆
0x041620…041640             20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆  begin        writeln ( output,┆
0x041640…041660             20 27 49 6c 6c 65 67 61 6c 20 6d 6f 64 75 6c 65 20 69 6e 20 22 73 74 61 72 74 22 70 61 72 61 6d   ┆ 'Illegal module in "start"param┆
0x041660…041680             65 74 65 72 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 0a 20 20 20 20 20 20   ┆eter; parameter number ',       ┆
0x041680…0416a0             20 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 2c 20 20 76 61 6c 75 65 20 20 24 27 2c 20 73 74   ┆  param_index, ',  value  $', st┆
0x0416a0…0416c0             72 68 65 78 28 69 6e 66 29 2c 20 27 2c 20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66   ┆rhex(inf), ',  ', getparam ( inf┆
0x0416c0…0416e0             29 29 3b 0a 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20   ┆));        writeln ( output, '  ┆
0x0416e0…041700             20 20 20 20 4d 6f 64 75 6c 65 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 20 24 43 30 20 2e 2e 20   ┆    Module should be in  $C0 .. ┆
0x041700…041720             24 46 45 20 20 27 29 3b 0a 20 20 20 20 20 20 20 65 6e 64 0a 20 20 65 6c 73 65 20 3b 0a 20 20 65   ┆$FE  ');        end   else ;   e┆
0x041720…041740             6e 64 3b 20 20 28 2a 20 20 63 61 73 65 20 20 2a 29 0a 0a 20 20 69 66 20 6b 69 6e 64 20 3d 20 66   ┆nd;  (*  case  *)    if kind = f┆
0x041740…041760             61 74 61 6c 20 74 68 65 6e 20 68 61 6c 74 20 28 20 31 29 3b 0a 20 20 65 6e 64 3b 20 28 2a 20 63   ┆atal then halt ( 1);   end; (* c┆
0x041760…041780             61 6c 6c 5f 65 72 72 6f 72 20 2a 29 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 70 72 6f 63 65   ┆all_error *)  {----------- proce┆
0x041780…0417a0             64 75 72 65 20 77 72 69 74 65 68 65 78 20 28 64 65 63 69 6d 61 6c 2c 20 70 6f 73 20 3a 20 77 6f   ┆dure writehex (decimal, pos : wo┆
0x0417a0…0417c0             72 64 29 3b 0a 62 65 67 69 6e 0a 6f 75 74 68 65 78 20 28 6f 75 74 70 75 74 2c 20 64 65 63 69 6d   ┆rd); begin outhex (output, decim┆
0x0417c0…0417e0             61 6c 2c 20 70 6f 73 29 3b 0a 65 6e 64 3b 20 28 2a 20 77 72 69 74 65 68 65 78 20 2a 29 0a 2d 2d   ┆al, pos); end; (* writehex *) --┆
0x0417e0…041800             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 0a 50 72 6f 63 65 64 75 72   ┆--------------------}   Procedur┆
0x041800…041820 (17, 0, 15) 65 20 20 69 6e 5f 6f 70 65 6e 66 69 6c 65 20 28 20 76 61 72 20 70 61 74 68 3a 20 70 61 74 68 73   ┆e  in_openfile ( var path: paths┆
0x041820…041840             74 72 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 73 63 61 6e 20 3d 20 31 20 74 68 65 6e 0a   ┆tr);   begin   if scan = 1 then ┆
0x041840…041860             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 70 61 74 68 29 20   ┆    begin     if lookup ( path) ┆
0x041860…041880             74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 65 6c 73 65 20 20 63 61 6c 6c 5f   ┆then  (*  ok  *)     else  call_┆
0x041880…0418a0             65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 33 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20   ┆error ( fatal, 23, param_index, ┆
0x0418a0…0418c0             70 61 74 68 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 69 6e   ┆path);     end;   open_file ( in┆
0x0418c0…0418e0             5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 74 68 2c 20 66 6d 5f 72 65 61 64 20 29 3b 0a 20 20 65 6e   ┆_obj_file, path, fm_read );   en┆
0x0418e0…041900             64 3b 0a 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 69 6e 5f 69 64 65 6e 74 69 66 69 65 72 20   ┆d;     Procedure  in_identifier ┆
0x041900…041920             28 20 76 61 72 20 69 64 20 3a 20 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 20 20 62 65 67 69 6e 0a   ┆( var id : identifier);   begin ┆
0x041920…041940             20 20 72 65 61 64 61 6c 66 61 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 69 64 29 3b 0a 20   ┆  readalfa ( in_obj_file, id);  ┆
0x041940…041960             20 65 6e 64 3b 20 28 2a 20 69 6e 5f 69 64 65 6e 74 69 66 69 65 72 20 2a 29 0a 0a 0a 0a 50 72 6f   ┆ end; (* in_identifier *)    Pro┆
0x041960…041980             63 65 64 75 72 65 20 69 6e 5f 70 61 72 61 6d 73 20 28 20 63 6f 75 6e 74 3a 20 77 6f 72 64 3b 20   ┆cedure in_params ( count: word; ┆
0x041980…0419a0             76 61 72 20 70 61 72 6d 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 3b 20 76 61 72 20 6e 61 6d 65 3a   ┆var parm: param_descr; var name:┆
0x0419a0…0419c0             20 61 6c 66 61 29 3b 0a 28 2a 20 72 65 61 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 20 6e 6f 5f   ┆ alfa); (* read parameters,  no_┆
0x0419c0…0419e0             6f 66 5f 70 61 72 61 6d 73 20 69 73 20 73 65 74 20 74 6f 20 63 6f 75 6e 74 20 20 2a 29 0a 20 20   ┆of_params is set to count  *)   ┆
0x0419e0…041a00             76 61 72 20 20 70 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 69 6c 6c 63 68 61 72   ┆var  p: word;   begin   fillchar┆
0x041a00…041a20 (17, 1, 1)  20 28 20 70 61 72 6d 2c 20 73 69 7a 65 6f 66 20 28 20 70 61 72 6d 29 2c 20 30 29 3b 0a 20 20 77   ┆ ( parm, sizeof ( parm), 0);   w┆
0x041a20…041a40             69 74 68 20 70 61 72 6d 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 63 6f 75   ┆ith parm do     begin     if cou┆
0x041a40…041a60             6e 74 20 3e 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 74 68 65 6e 0a 20 20 20 20 20 20 63   ┆nt > max_obj_params then       c┆
0x041a60…041a80             61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 31 30 2c 20 63 6f 75 6e 74 2c 20 73 74   ┆all_error ( fatal, 10, count, st┆
0x041a80…041aa0             72 61 6c 66 61 20 28 20 6e 61 6d 65 29 20 29 3b 0a 20 20 20 20 70 61 72 61 6d 63 6f 75 6e 74 3a   ┆ralfa ( name) );     paramcount:┆
0x041aa0…041ac0             3d 20 63 6f 75 6e 74 3b 0a 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 63 6f 75 6e 74   ┆= count;     for p := 1 to count┆
0x041ac0…041ae0             20 64 6f 0a 20 20 20 20 20 77 69 74 68 20 70 61 72 61 6d 5b 70 5d 20 64 6f 0a 20 20 20 20 20 20   ┆ do      with param[p] do       ┆
0x041ae0…041b00             62 65 67 69 6e 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a   ┆begin       readinteger ( in_obj┆
0x041b00…041b20             5f 66 69 6c 65 2c 20 70 61 72 61 6d 5f 74 79 70 65 29 3b 0a 20 20 20 20 20 20 72 65 61 64 69 6e   ┆_file, param_type);       readin┆
0x041b20…041b40             74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 72 61 6d 5f 73 69 7a 65 29   ┆teger ( in_obj_file, param_size)┆
0x041b40…041b60             3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 46   ┆;       end;     end;   end;   F┆
0x041b60…041b80             75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 28 20 76 61 72 20 61   ┆unction equal_paramlists ( var a┆
0x041b80…041ba0             2c 20 62 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 29 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 76 61   ┆, b: param_descr): boolean;   va┆
0x041ba0…041bc0             72 0a 20 20 20 20 70 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 65 71 75 61   ┆r     p: integer;   begin   equa┆
0x041bc0…041be0             6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 61 73 73 75 6d 65   ┆l_paramlists := true;  (* assume┆
0x041be0…041c00             20 65 76 65 72 79 74 68 69 6e 67 20 6f 6b 20 2a 29 0a 20 20 77 69 74 68 20 61 20 64 6f 0a 20 20   ┆ everything ok *)   with a do   ┆
0x041c00…041c20 (17, 1, 2)  20 20 69 66 20 70 61 72 61 6d 63 6f 75 6e 74 20 3c 3e 20 62 2e 70 61 72 61 6d 63 6f 75 6e 74 20   ┆  if paramcount <> b.paramcount ┆
0x041c20…041c40             74 68 65 6e 0a 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 66   ┆then       equal_paramlists := f┆
0x041c40…041c60             61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74   ┆alse     else       for p := 1 t┆
0x041c60…041c80             6f 20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20 77 69 74 68 20 70 61 72   ┆o paramcount do         with par┆
0x041c80…041ca0             61 6d 5b 70 5d 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 70 61 72 61 6d 5f 74 79   ┆am[p] do           if ( param_ty┆
0x041ca0…041cc0             70 65 20 3c 3e 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 74 79 70 65 20 29 0a 20 20   ┆pe <> b.param[p].param_type )   ┆
0x041cc0…041ce0             20 20 20 20 20 20 20 20 6f 72 20 28 20 70 61 72 61 6d 5f 73 69 7a 65 20 3c 3e 20 62 2e 70 61 72   ┆        or ( param_size <> b.par┆
0x041ce0…041d00             61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 20 29 0a 20 20 20 20 20 20 20 20 20 20 74 68 65   ┆am[p].param_size )           the┆
0x041d00…041d20             6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d   ┆n             equal_paramlists:=┆
0x041d20…041d40             20 66 61 6c 73 65 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 46 75   ┆ false;   end;    {---------- Fu┆
0x041d40…041d60             6e 63 74 69 6f 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 28 20 76 61 72 20 61 2c   ┆nction equal_paramlists ( var a,┆
0x041d60…041d80             20 62 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 29 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 20 20 76 61 72   ┆ b: param_descr): boolean;   var┆
0x041d80…041da0             0a 20 20 20 20 70 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 65 71 75 61 6c   ┆     p: integer;   begin   equal┆
0x041da0…041dc0             5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 61 73 73 75 6d 65 20   ┆_paramlists := true;  (* assume ┆
0x041dc0…041de0             65 76 65 72 79 74 68 69 6e 67 20 6f 6b 20 2a 29 0a 20 20 77 69 74 68 20 61 20 64 6f 0a 20 20 20   ┆everything ok *)   with a do    ┆
0x041de0…041e00             20 69 66 20 70 61 72 61 6d 63 6f 75 6e 74 20 3c 3e 20 62 2e 70 61 72 61 6d 63 6f 75 6e 74 20 74   ┆ if paramcount <> b.paramcount t┆
0x041e00…041e20 (17, 1, 3)  68 65 6e 0a 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 66 61   ┆hen       equal_paramlists := fa┆
0x041e20…041e40             6c 73 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f   ┆lse     else       for p := 1 to┆
0x041e40…041e60             20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20 77 69 74 68 20 70 61 72 61   ┆ paramcount do         with para┆
0x041e60…041e80             6d 5b 70 5d 20 64 6f 0a 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 73 69 7a 65 20 3d   ┆m[p] do          if param_size =┆
0x041e80…041ea0             20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 20 74 68 65 6e 0a 20 20 20 20   ┆ b.param[p].param_size then     ┆
0x041ea0…041ec0             20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74   ┆      begin           if param_t┆
0x041ec0…041ee0             79 70 65 20 3c 3e 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 74 79 70 65 20 74 68 65   ┆ype <> b.param[p].param_type the┆
0x041ee0…041f00             6e 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61   ┆n           case b.param[p].para┆
0x041f00…041f20             6d 5f 74 79 70 65 20 6f 66 0a 63 6f 64 65 5f 76 61 72 5f 70 74 72 20 3a 20 0a 20 20 20 20 20 20   ┆m_type of code_var_ptr :        ┆
0x041f20…041f40             20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 69 6e 73 70 65   ┆     if param_type <> code_inspe┆
0x041f40…041f60             63 5f 70 74 72 20 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66   ┆c_ptr  then equal_paramlists:= f┆
0x041f60…041f80             61 6c 73 65 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 79 73 72 65 63 3a 20 0a 20 20 20 20 20 20 20 20   ┆alse; code_var_sysrec:          ┆
0x041f80…041fa0             20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 69 6e 73 70 65 63 5f   ┆   if param_type <> code_inspec_┆
0x041fa0…041fc0             73 79 73 72 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c   ┆sysr then equal_paramlists:= fal┆
0x041fc0…041fe0             73 65 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 79 73 61 72 72 79 20 3a 20 0a 20 20 20 20 20 20 20 20   ┆se; code_var_sysarry :          ┆
0x041fe0…042000             20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 69 6e 73 70 65 63 5f   ┆   if param_type <> code_inspec_┆
0x042000…042020 (17, 1, 4)  73 79 73 61 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c   ┆sysa then equal_paramlists:= fal┆
0x042020…042040             73 65 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 69 6d 70 6c 65 3a 20 0a 20 20 20 20 20 20 20 20 20 20   ┆se; code_var_simple:            ┆
0x042040…042060             20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 69   ┆ if param_type <> code_inspec_si┆
0x042060…042080             6d 20 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65   ┆m  then equal_paramlists:= false┆
0x042080…0420a0             3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 70 74 72 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69   ┆; code_inspec_ptr:             i┆
0x0420a0…0420c0             66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 76 61 72 5f 70 74 72 20 20 20 20   ┆f param_type <> code_var_ptr    ┆
0x0420c0…0420e0             20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a   ┆ then equal_paramlists:= false; ┆
0x0420e0…042100             63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 72 3a 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20   ┆code_inspec_sysr:            if ┆
0x042100…042120             70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 76 61 72 5f 73 79 73 72 65 63 20 20 74   ┆param_type <> code_var_sysrec  t┆
0x042120…042140             68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f   ┆hen equal_paramlists:= false; co┆
0x042140…042160             64 65 5f 69 6e 73 70 65 63 5f 73 79 73 61 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70   ┆de_inspec_sysa:             if p┆
0x042160…042180             61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 76 61 72 5f 73 79 73 61 72 72 79 20 74 68   ┆aram_type <> code_var_sysarry th┆
0x042180…0421a0             65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64   ┆en equal_paramlists:= false; cod┆
0x0421a0…0421c0             65 5f 69 6e 73 70 65 63 5f 73 69 6d 3a 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61   ┆e_inspec_sim:            if para┆
0x0421c0…0421e0             6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 76 61 72 5f 73 69 6d 70 6c 65 20 20 74 68 65 6e 20   ┆m_type <> code_var_simple  then ┆
0x0421e0…042200             65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 65 6c   ┆equal_paramlists:= false;     el┆
0x042200…042220 (17, 1, 5)  73 65 20 20 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c   ┆se        equal_paramlists:= fal┆
0x042220…042240             73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 61 73 65 20 20 2a   ┆se;            end;  (*  case  *┆
0x042240…042260             29 0a 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 20 28 2a 20 20 73 69 7a 65 20 3d 20 20 20 2a   ┆)            end  (*  size =   *┆
0x042260…042280             29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73   ┆)           else  equal_paramlis┆
0x042280…0422a0             74 73 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 65 6e 64 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ts := false;   end; ------------┆
0x0422a0…0422c0             2d 2d 2d 2d 7d 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20   ┆----}    Procedure  out_integer ┆
0x0422c0…0422e0             28 20 69 6e 74 65 6c 20 3a 20 77 6f 72 64 20 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 77 72 69 74   ┆( intel : word );   begin   writ┆
0x0422e0…042300             65 69 6e 74 65 67 65 72 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c 20 69 6e 74 65 6c 20 29 3b 0a   ┆einteger ( outbinfile, intel ); ┆
0x042300…042320             20 20 20 28 2a 2d 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72   ┆   (*- if current_version_number┆
0x042320…042340             20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 74 68 65   ┆ = compiler_c_version_number the┆
0x042340…042360             6e 20 20 2d 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 63 72 63 31 36 20 28 20 73 75 6d   ┆n  -*)     begin     crc16 ( sum┆
0x042360…042380             2c 20 73 77 61 70 20 28 20 69 6e 74 65 6c 29 29 3b 0a 20 20 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d   ┆, swap ( intel));     (*--------┆
0x042380…0423a0             2d 2d 2d 0a 20 20 20 20 73 75 6d 3a 3d 20 63 72 63 31 36 20 28 20 63 72 63 31 36 20 28 20 73 75   ┆---     sum:= crc16 ( crc16 ( su┆
0x0423a0…0423c0             6d 20 78 6f 72 20 68 69 28 69 29 2c 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 29 0a 20 20 20 20   ┆m xor hi(i), crc16quotient)     ┆
0x0423c0…0423e0             78 6f 72 20 6c 6f 28 69 29 2c 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 20 29 3b 0a 20 20 20 20   ┆xor lo(i), crc16quotient );     ┆
0x0423e0…042400             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 20 69 6e 63 20 28 20 73 75 6d 63 6f 75 6e   ┆------------*)     inc ( sumcoun┆
0x042400…042420 (17, 1, 6)  74 29 3b 0a 20 20 20 20 69 66 20 73 75 6d 63 6f 75 6e 74 20 3e 20 73 75 6d 77 6f 72 64 73 0a 20   ┆t);     if sumcount > sumwords  ┆
0x042420…042440             20 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 20 20 73 75 6d 63 61 74 61 6c 6f 67 5b 73   ┆   then begin       sumcatalog[s┆
0x042440…042460             75 6d 69 6e 64 65 78 5d 20 3a 3d 20 6e 6f 74 20 73 77 61 70 20 28 20 73 75 6d 20 29 3b 0a 20 20   ┆umindex] := not swap ( sum );   ┆
0x042460…042480             20 20 20 20 69 6e 63 20 28 20 73 75 6d 69 6e 64 65 78 29 3b 0a 20 20 20 20 20 20 69 66 20 73 75   ┆    inc ( sumindex);       if su┆
0x042480…0424a0             6d 69 6e 64 65 78 20 3e 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20   ┆mindex > no_of_sums then        ┆
0x0424a0…0424c0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 20 20 73 75 6d 69 6e 64 65 78   ┆ writeln ( output, '**  sumindex┆
0x0424c0…0424e0             20 69 6e 20 6f 75 74 20 69 6e 74 67 20 3a 20 27 2c 20 73 75 6d 69 6e 64 65 78 29 3b 0a 20 20 20   ┆ in out intg : ', sumindex);    ┆
0x0424e0…042500             20 20 20 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 20 20 20 20 20 20 73 75 6d 3a 3d 20 20 61 6c   ┆   sumcount:= 1;       sum:=  al┆
0x042500…042520             6c 5f 6f 6e 65 73 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e   ┆l_ones;       end;     end;   en┆
0x042520…042540             64 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 61 64 64 72 20 28 20 61 20 3a 20 61   ┆d;   procedure  out_addr ( a : a┆
0x042540…042560             64 64 72 65 73 73 20 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20   ┆ddress );   begin   out_integer ┆
0x042560…042580             28 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 61 2e 62 61 73 65 20 73 68 6c 20 31 20 29 3b   ┆( first_mem_no + a.base shl 1 );┆
0x042580…0425a0             0a 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 61 2e 64 69 73 70 20 29 0a 20 20 65 6e 64 3b   ┆   out_integer ( a.disp )   end;┆
0x0425a0…0425c0             0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 69 64 65 6e 74 69 66 69 65 72 20 28 20   ┆    procedure  out_identifier ( ┆
0x0425c0…0425e0             69 64 20 3a 20 61 6c 66 61 20 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 70 20 20 3a 20 77 6f 72 64   ┆id : alfa );   var     p  : word┆
0x0425e0…042600             3b 0a 20 20 20 20 69 61 72 3a 20 20 61 72 72 61 79 20 5b 20 31 2e 2e 36 20 5d 20 6f 66 20 77 6f   ┆;     iar:  array [ 1..6 ] of wo┆
0x042600…042620 (17, 1, 7)  72 64 20 20 61 62 73 6f 6c 75 74 65 20 69 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 6f 72 20 70   ┆rd  absolute id;   begin   for p┆
0x042620…042640             20 3a 3d 20 31 20 74 6f 20 36 20 64 6f 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 73 77 61 70   ┆ := 1 to 6 do out_integer ( swap┆
0x042640…042660             20 28 20 69 61 72 5b 70 5d 29 20 29 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65   ┆ ( iar[p]) )   end;    Procedure┆
0x042660…042680             20 6f 75 74 5f 73 75 6d 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 70 20 20 20 3a 20 77 6f 72 64 3b   ┆ out_sum;   var      p   : word;┆
0x042680…0426a0             0a 20 20 20 20 20 64 61 74 20 3a 20 20 63 6f 64 65 64 5f 64 61 74 65 3b 0a 20 20 20 20 20 74 69   ┆      dat :  coded_date;      ti┆
0x0426a0…0426c0             6d 20 3a 20 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 20 20 20 20 20 6e 6f 77 20 3a 20 20 64 61 74   ┆m :  coded_time;      now :  dat┆
0x0426c0…0426e0             65 74 69 6d 65 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 6c 61 73 74 5f 73 63 61 6e 20 20 28   ┆etime;   begin   if last_scan  (┆
0x0426e0…042700             2a 2d 20 61 6e 64 20 28 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d   ┆*- and (current_version_number =┆
0x042700…042720             20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 29 20 2d 2a 29 0a   ┆ compiler_c_version_number) -*) ┆
0x042720…042740             20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 73   ┆  then begin     out_integer ( s┆
0x042740…042760             75 6d 5f 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 29 3b 0a 20 20 20 20 6f 75 74 5f   ┆um_descriptor_length );     out_┆
0x042760…042780             69 6e 74 65 67 65 72 20 28 20 31 20 29 3b 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28   ┆integer ( 1 );     out_integer (┆
0x042780…0427a0             20 73 75 6d 62 79 74 65 73 20 29 3b 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 34   ┆ sumbytes );     out_integer ( 4┆
0x0427a0…0427c0             20 2b 20 32 2a 6e 6f 5f 6f 66 5f 73 75 6d 73 20 29 3b 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67   ┆ + 2*no_of_sums );     out_integ┆
0x0427c0…0427e0             65 72 20 28 20 73 75 6d 6b 69 6e 64 20 29 3b 0a 20 20 20 20 28 2a 20 6f 75 74 70 75 74 20 64 61   ┆er ( sumkind );     (* output da┆
0x0427e0…042800             74 65 20 61 6e 64 20 74 69 6d 65 20 6f 66 20 63 72 6f 73 73 6c 69 6e 6b 20 2a 29 0a 20 20 20 20   ┆te and time of crosslink *)     ┆
0x042800…042820 (17, 1, 8)  67 65 74 63 6c 6f 63 6b 20 28 20 6e 6f 77 29 3b 0a 20 20 20 20 64 61 74 65 5f 61 6e 64 5f 74 69   ┆getclock ( now);     date_and_ti┆
0x042820…042840             6d 65 5f 74 6f 5f 72 63 33 35 30 32 20 28 20 6e 6f 77 2c 20 64 61 74 2c 20 74 69 6d 29 3b 0a 20   ┆me_to_rc3502 ( now, dat, tim);  ┆
0x042840…042860             20 20 20 28 2a 20 20 20 20 20 20 63 6c 6f 63 6b 2e 74 69 6d 65 2e 63 6f 6d 70 69 6c 65 72 5f 76   ┆   (*      clock.time.compiler_v┆
0x042860…042880             65 72 73 69 6f 6e 20 3a 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d   ┆ersion := compiler_c_version_num┆
0x042880…0428a0             62 65 72 3b 20 20 2a 29 0a 20 20 20 20 74 69 6d 3a 3d 20 62 6f 6f 74 65 72 5f 76 65 72 73 69 6f   ┆ber;  *)     tim:= booter_versio┆
0x0428a0…0428c0             6e 20 73 68 6c 20 31 31 20 2b 20 74 69 6d 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68   ┆n shl 11 + tim;     if debug3 th┆
0x0428c0…0428e0             65 6e 20 20 20 20 20 20 20 28 2a 20 20 6f 6e 6c 79 20 66 6f 72 20 64 65 62 75 67 20 20 2a 29 0a   ┆en       (*  only for debug  *) ┆
0x0428e0…042900             20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 64 61 74 3a 3d 20 24 42 33 30 34 3b 0a 20   ┆      begin       dat:= $B304;  ┆
0x042900…042920             20 20 20 20 20 74 69 6d 3a 3d 20 24 35 32 43 34 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20   ┆     tim:= $52C4;       end;    ┆
0x042920…042940             20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 64 61 74 29 3b 0a 20 20 20 20 6f 75 74 5f 69 6e   ┆  out_integer ( dat);     out_in┆
0x042940…042960             74 65 67 65 72 20 28 20 74 69 6d 29 3b 0a 20 20 20 20 73 75 6d 63 61 74 61 6c 6f 67 5b 73 75 6d   ┆teger ( tim);     sumcatalog[sum┆
0x042960…042980             69 6e 64 65 78 5d 20 3a 3d 20 6e 6f 74 20 73 77 61 70 20 28 73 75 6d 20 29 3b 0a 0a 20 20 20 20   ┆index] := not swap (sum );      ┆
0x042980…0429a0             69 66 20 64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20   ┆if debug3 then       begin      ┆
0x0429a0…0429c0             20 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 35 20 64 6f 20 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆  for p:= 1 to 5 do  writeln ( o┆
0x0429c0…0429e0             75 74 70 75 74 2c 20 27 20 20 20 73 75 6d 20 27 2c 20 70 3a 38 2c 20 73 74 72 68 65 78 20 28 20   ┆utput, '   sum ', p:8, strhex ( ┆
0x0429e0…042a00             73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 29 3a 38 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20   ┆sumcatalog[p]):8);       end;   ┆
0x042a00…042a20 (17, 1, 9)  20 20 20 66 6f 72 20 70 3a 3d 31 20 74 6f 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 64 6f 0a 20 20 20   ┆   for p:=1 to no_of_sums do    ┆
0x042a20…042a40             20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 6f 75   ┆   begin       writeinteger ( ou┆
0x042a40…042a60             74 62 69 6e 66 69 6c 65 2c 20 73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 20 29 3b 0a 20 20 20 20 20   ┆tbinfile, sumcatalog[p] );      ┆
0x042a60…042a80             20 73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 3a 3d 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 20 20 20 20 20   ┆ sumcatalog[p]:= all_ones;      ┆
0x042a80…042aa0             20 65 6e 64 3b 0a 20 20 20 20 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 20 20 20 20 73 75 6d 3a   ┆ end;     sumcount:= 1;     sum:┆
0x042aa0…042ac0             3d 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 6c 61 73 74 20 73   ┆= all_ones;     end;  (*  last s┆
0x042ac0…042ae0             63 61 6e 20 20 2a 29 0a 20 20 73 75 6d 69 6e 64 65 78 20 3a 3d 20 31 3b 0a 20 20 65 6e 64 3b 0a   ┆can  *)   sumindex := 1;   end; ┆
0x042ae0…042b00             0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 65 6e 64 3b 0a 20 20 62 65 67 69 6e 0a 20   ┆   Procedure  out_end;   begin  ┆
0x042b00…042b20             20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65   ┆ if undef_count <> 0 then     be┆
0x042b20…042b40             67 69 6e 0a 20 20 20 20 72 65 77 72 69 74 65 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c 20 31 29   ┆gin     rewrite ( outbinfile, 1)┆
0x042b40…042b60             3b 09 28 2a 20 65 6d 70 74 79 20 6f 75 74 70 75 74 20 2a 29 0a 20 20 20 20 69 6f 63 68 65 63 6b   ┆; (* empty output *)     iocheck┆
0x042b60…042b80             20 28 20 6f 75 74 62 69 6e 66 69 6c 65 29 0a 20 20 20 20 65 6e 64 0a 20 20 65 6c 73 65 0a 20 20   ┆ ( outbinfile)     end   else   ┆
0x042b80…042ba0             20 20 6f 75 74 5f 73 75 6d 3b 0a 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74   ┆  out_sum;   if debug3 then writ┆
0x042ba0…042bc0             65 20 28 20 6f 75 74 70 75 74 2c 20 27 20 77 72 69 74 65 73 20 20 24 30 30 20 27 29 3b 0a 20 20   ┆e ( output, ' writes  $00 ');   ┆
0x042bc0…042be0             77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c 20 73 74 6f 70 5f   ┆writeinteger ( outbinfile, stop_┆
0x042be0…042c00             6d 61 72 6b 29 3b 0a 0a 20 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 6f 75 74 62 69 6e 66 69 6c   ┆mark);    close_file ( outbinfil┆
0x042c00…042c20 (17, 1, 10) 65 20 29 3b 0a 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20   ┆e );   if debug3 then writeln ( ┆
0x042c20…042c40             6f 75 74 70 75 74 2c 20 27 24 30 30 20 20 61 6e 64 20 63 6c 6f 73 65 2e 20 27 29 3b 0a 0a 20 20   ┆output, '$00  and close. ');    ┆
0x042c40…042c60             65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 5f 61 64 64 72 20 28 20 61 64 3a 20   ┆end;    Function str_addr ( ad: ┆
0x042c60…042c80             61 64 64 72 65 73 73 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 76 61 72 20 20 20 20 6e 75 6c 6e 75   ┆address): string;   var    nulnu┆
0x042c80…042ca0             6c 20 3a 20 20 73 74 72 69 6e 67 5b 32 5d 3b 0a 20 20 62 65 67 69 6e 0a 20 20 77 69 74 68 20 61   ┆l :  string[2];   begin   with a┆
0x042ca0…042cc0             64 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 64 69 73 70 20 3c 3d 20 24 46   ┆d do     begin     if disp <= $F┆
0x042cc0…042ce0             46 20 74 68 65 6e 20 6e 75 6c 6e 75 6c 3a 3d 20 27 30 30 27 20 65 6c 73 65 20 6e 75 6c 6e 75 6c   ┆F then nulnul:= '00' else nulnul┆
0x042ce0…042d00             3a 3d 20 27 27 3b 0a 20 20 20 20 73 74 72 5f 61 64 64 72 3a 3d 20 73 74 72 68 65 78 20 28 20 66   ┆:= '';     str_addr:= strhex ( f┆
0x042d00…042d20             69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 62 61 73 65 20 73 68 6c 20 31 29 20 2b 20 27 2e 27 0a   ┆irst_mem_no + base shl 1) + '.' ┆
0x042d20…042d40             20 20 20 20 20 2b 20 6e 75 6c 6e 75 6c 20 2b 20 73 74 72 68 65 78 20 28 20 64 69 73 70 29 3b 0a   ┆     + nulnul + strhex ( disp); ┆
0x042d40…042d60             20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 70 72 69 6e   ┆    end   end;    Procedure prin┆
0x042d60…042d80             74 5f 69 74 65 6d 73 20 3b 0a 20 20 28 2a 20 70 72 69 6e 74 20 61 6c 6c 20 75 6e 64 65 66 69 6e   ┆t_items ;   (* print all undefin┆
0x042d80…042da0             65 64 20 69 74 65 6d 73 20 20 2a 29 0a 20 20 62 65 67 69 6e 0a 20 20 63 6c 65 61 72 6b 65 79 20   ┆ed items  *)   begin   clearkey ┆
0x042da0…042dc0             28 20 69 6e 78 66 29 3b 0a 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20 20 69 66 20 64 65   ┆( inxf);   inc ( logno);   if de┆
0x042dc0…042de0             62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27   ┆bug7 then     writeln ( log, '#'┆
0x042de0…042e00             2c 20 6c 6f 67 6e 6f 2c 20 27 24 43 6c 65 61 72 6b 65 79 20 26 31 40 22 20 20 2d 3e 27 2c 20 73   ┆, logno, '$Clearkey &1@"  ->', s┆
0x042e00…042e20 (17, 1, 11) 75 63 63 65 73 73 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 20   ┆uccess);   writeln ( output);   ┆
0x042e20…042e40             20 72 65 70 65 61 74 0a 20 20 20 20 6e 65 78 74 6b 65 79 20 28 20 69 6e 78 66 2c 20 64 72 6e 2c   ┆ repeat     nextkey ( inxf, drn,┆
0x042e40…042e60             20 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20 20 20 20 69 66 20   ┆ key);     inc ( logno);     if ┆
0x042e60…042e80             64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f 67 2c   ┆debug7 then       writeln ( log,┆
0x042e80…042ea0             20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 4e 65 78 74 6b 65 79 20 26 27 2c 20 64 72 6e 2c 20   ┆ '#', logno, '$Nextkey &', drn, ┆
0x042ea0…042ec0             27 40 27 2c 20 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 20 20 20   ┆'@', key, '"  ->', success);    ┆
0x042ec0…042ee0             20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆ if success then       begin    ┆
0x042ee0…042f00             20 20 20 67 65 74 72 65 63 20 28 20 64 61 74 66 2c 20 64 72 6e 2c 20 69 74 65 6d 29 3b 0a 20 20   ┆   getrec ( datf, drn, item);   ┆
0x042f00…042f20             20 20 20 20 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 20 20 20 20 20 20 20 20 69 66 20 73 74 61 74   ┆    with item do         if stat┆
0x042f20…042f40             65 20 3d 20 75 6e 64 65 66 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09   ┆e = undef then           begin  ┆
0x042f40…042f60             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27   ┆  writeln ( output, '':margin, '┆
0x042f60…042f80             2a 2a 2a 20 20 27 2c 20 6b 65 79 2c 20 27 20 3a 20 20 6e 6f 74 20 64 65 66 69 6e 65 64 2c 20 20   ┆***  ', key, ' :  not defined,  ┆
0x042f80…042fa0             27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 75 73 65 64 20 62 79 20 27 2c 20 75 73 65 72 6e 61 6d   ┆',           'used by ', usernam┆
0x042fa0…042fc0             65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 65 6e 64 0a 0a 20 20 75   ┆e);           end;      end    u┆
0x042fc0…042fe0             6e 74 69 6c 20 6e 6f 74 20 73 75 63 63 65 73 73 3b 0a 0a 20 20 69 66 20 64 65 62 75 67 37 20 74   ┆ntil not success;    if debug7 t┆
0x042fe0…043000             68 65 6e 20 63 6c 6f 73 65 20 28 20 6c 6f 67 29 3b 0a 20 20 6d 79 5f 65 78 63 6f 64 65 3a 3d 20   ┆hen close ( log);   my_excode:= ┆
0x043000…043020 (17, 1, 12) 31 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 74 68 69 73 20 73 65 74 73 20   ┆1;                (*  this sets ┆
0x043020…043040             65 72 72 6f 72 6c 65 76 65 6c 20 31 20 20 20 2a 29 0a 20 20 65 6e 64 3b 20 28 2a 20 70 72 69 6e   ┆errorlevel 1   *)   end; (* prin┆
0x043040…043060             74 5f 69 74 65 6d 73 20 20 2a 29 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 70 72 69 6e 74 5f 6d 61   ┆t_items  *)   Procedure print_ma┆
0x043060…043080             70 20 28 20 76 61 72 20 69 74 65 6d 3a 20 69 74 65 6d 5f 72 65 63 29 3b 0a 20 20 76 61 72 0a 20   ┆p ( var item: item_rec);   var  ┆
0x043080…0430a0             20 20 20 20 70 20 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 70 72 69 6e 74   ┆    p : word;   begin   if print┆
0x0430a0…0430c0             5f 68 65 61 64 69 6e 67 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74   ┆_heading then     begin     writ┆
0x0430c0…0430e0             65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆eln ( output);     writeln ( out┆
0x0430e0…043100             70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 0a 20 20 27 20 20 6b 69 6e 64 20 20 20 20 20 20 6e   ┆put, '':margin,   '  kind      n┆
0x043100…043120             61 6d 65 20 20 20 20 20 20 20 20 20 20 20 64 61 74 65 20 20 20 20 74 69 6d 65 20 20 20 20 64 65   ┆ame           date    time    de┆
0x043120…043140             73 63 72 20 20 20 20 63 6f 64 65 20 20 20 6c 65 6e 67 74 68 28 68 65 78 29 27 29 3b 0a 20 20 20   ┆scr    code   length(hex)');    ┆
0x043140…043160             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 0a 20 20   ┆ writeln ( output, '':margin,   ┆
0x043160…043180             27 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆'-------------------------------┆
0x043180…0431a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0431a0…0431c0             2d 2d 2d 2d 2d 2d 2d 27 29 3b 0a 20 20 20 20 70 72 69 6e 74 5f 68 65 61 64 69 6e 67 20 3a 3d 20   ┆-------');     print_heading := ┆
0x0431c0…0431e0             66 61 6c 73 65 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 77 69 74 68 20 69 74 65 6d 20 64 6f 0a   ┆false;     end;    with item do ┆
0x0431e0…043200             20 20 62 65 67 69 6e 0a 20 20 63 61 73 65 20 68 65 61 64 2e 6b 69 6e 64 20 6f 66 0a 20 20 31 3a   ┆  begin   case head.kind of   1:┆
0x043200…043220 (17, 1, 13) 20 20 77 72 69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 50   ┆  write (  output, '':margin, 'P┆
0x043220…043240             52 4f 47 52 41 4d 20 20 20 27 29 3b 0a 20 20 32 3a 20 20 77 72 69 74 65 20 28 20 20 6f 75 74 70   ┆ROGRAM   ');   2:  write (  outp┆
0x043240…043260             75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 50 52 4f 43 45 44 55 52 45 20 27 29 3b 0a 20 20   ┆ut, '':margin, 'PROCEDURE ');   ┆
0x043260…043280             33 3a 20 20 77 72 69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20   ┆3:  write (  output, '':margin, ┆
0x043280…0432a0             27 46 55 4e 43 54 49 4f 4e 20 20 27 29 3b 0a 20 20 36 3a 20 20 77 72 69 74 65 20 28 20 20 6f 75   ┆'FUNCTION  ');   6:  write (  ou┆
0x0432a0…0432c0             74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 44 41 54 41 20 20 20 20 20 20 27 29 3b 0a   ┆tput, '':margin, 'DATA      '); ┆
0x0432c0…0432e0             20 20 65 6e 64 3b 0a 0a 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 61 6c 66   ┆  end;    write ( output, stralf┆
0x0432e0…043300             61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 2c 20 27 27 3a 32 29 3b 0a 20 20 69 66 20 63 6f 6d 70   ┆a ( head.name), '':2);   if comp┆
0x043300…043320             69 6c 65 5f 64 61 74 65 20 73 68 72 20 39 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74   ┆ile_date shr 9 > 0 then     writ┆
0x043320…043340             65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 64 61 74 65 20 28 20 63 6f 6d 70 69 6c 65 5f 64 61   ┆e ( output, strdate ( compile_da┆
0x043340…043360             74 65 29 2c 20 27 3a 27 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74   ┆te), ':')   else     write ( out┆
0x043360…043380             70 75 74 2c 20 27 20 20 2e 2e 2e 2e 2e 20 27 3a 31 31 29 3b 0a 0a 20 20 69 66 20 63 6f 6d 70 69   ┆put, '  ..... ':11);    if compi┆
0x043380…0433a0             6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 20 3c 3e 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69   ┆le_time shr 11 <> compiler_versi┆
0x0433a0…0433c0             6f 6e 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 3f 27 2c   ┆on then     write ( output, '?',┆
0x0433c0…0433e0             20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 2c 20 27 3f 27 29 0a 20 20 65 6c 73   ┆ compile_time shr 11, '?')   els┆
0x0433e0…043400             65 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 74 69 6d 65 20 28 20   ┆e     write ( output, strtime ( ┆
0x043400…043420 (17, 1, 14) 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 29 29 3b 0a 0a 20 20 69 66 20 64 65 73 63 72 5f 79 65 73 20   ┆compile_time));    if descr_yes ┆
0x043420…043440             74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 33 2c 20 73   ┆then     write ( output, '':3, s┆
0x043440…043460             74 72 5f 61 64 64 72 20 28 20 64 5f 61 64 64 72 29 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 77 72   ┆tr_addr ( d_addr))   else     wr┆
0x043460…043480             69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 33 2c 20 27 27 3a 37 29 3b 0a 0a 20 20 77 72   ┆ite ( output, '':3, '':7);    wr┆
0x043480…0434a0             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 32 2c 20 73 74 72 5f 61 64 64 72 20 28   ┆iteln ( output, '':2, str_addr (┆
0x0434a0…0434c0             20 63 6f 64 65 5f 61 64 64 72 29 2c 20 27 27 3a 32 2c 0a 20 20 20 20 20 20 73 74 72 68 65 78 20   ┆ code_addr), '':2,       strhex ┆
0x0434c0…0434e0             28 20 74 6f 70 5f 6f 66 5f 62 69 6e 2e 64 69 73 70 20 2d 20 63 6f 64 65 5f 61 64 64 72 2e 64 69   ┆( top_of_bin.disp - code_addr.di┆
0x0434e0…043500             73 70 20 2b 20 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 29 3a 34 20 29   ┆sp + head.descriptor_length):4 )┆
0x043500…043520             3b 0a 0a 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 20 3c 3e 20 63   ┆;    if compile_time shr 11 <> c┆
0x043520…043540             6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 20 74 68 65 6e 0a 20 20 20 20 20 63 61 6c 6c 5f   ┆ompiler_version  then      call_┆
0x043540…043560             65 72 72 6f 72 20 28 20 77 61 72 6e 2c 20 35 2c 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68   ┆error ( warn, 5, compile_time sh┆
0x043560…043580             72 20 31 31 2c 20 68 65 61 64 2e 6e 61 6d 65 20 29 3b 0a 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b   ┆r 11, head.name );   end;   end;┆
0x043580…0435a0             0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 63 6f 6e 76 65 72 74 5f 74 6f 5f 68 65 78 20 28 20 61   ┆   Procedure  convert_to_hex ( a┆
0x0435a0…0435c0             20 3a 20 61 6c 66 61 73 74 72 3b 20 76 61 72 20 68 65 78 5f 6e 75 6d 62 65 72 20 3a 20 77 6f 72   ┆ : alfastr; var hex_number : wor┆
0x0435c0…0435e0             64 20 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 70 3a 20 20 77 6f 72 64 3b 0a 20 20 62 65 67 69   ┆d );   var      p:  word;   begi┆
0x0435e0…043600             6e 0a 20 20 69 66 20 28 20 61 5b 31 5d 20 3c 3e 20 27 68 27 20 29 20 61 6e 64 20 28 20 61 5b 31   ┆n   if ( a[1] <> 'h' ) and ( a[1┆
0x043600…043620 (17, 1, 15) 5d 20 3c 3e 20 27 24 27 20 29 20 74 68 65 6e 0a 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20   ┆] <> '$' ) then      call_error ┆
0x043620…043640             28 20 66 61 74 61 6c 2c 20 34 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 61 29 3b 0a 20 20 68   ┆( fatal, 4, param_index, a);   h┆
0x043640…043660             65 78 5f 6e 75 6d 62 65 72 20 3a 3d 20 30 3b 0a 0a 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e   ┆ex_number := 0;    if false then┆
0x043660…043680             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 63 6f 6e 76 65 72 74 20 3c 27 2c   ┆ writeln ( output, ' convert <',┆
0x043680…0436a0             20 61 2c 20 27 3e 20 20 27 29 3b 0a 20 20 66 6f 72 20 70 20 3a 3d 20 32 20 74 6f 20 6c 65 6e 67   ┆ a, '>  ');   for p := 2 to leng┆
0x0436a0…0436c0             74 68 28 61 29 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 28 20 27 30 27 20   ┆th(a) do     begin     if ( '0' ┆
0x0436c0…0436e0             3c 3d 20 61 5b 70 5d 20 29 20 61 6e 64 20 28 20 61 5b 70 5d 20 3c 3d 20 27 39 27 20 29 20 74 68   ┆<= a[p] ) and ( a[p] <= '9' ) th┆
0x0436e0…043700             65 6e 0a 20 20 20 20 20 20 68 65 78 5f 6e 75 6d 62 65 72 20 3a 3d 20 68 65 78 5f 6e 75 6d 62 65   ┆en       hex_number := hex_numbe┆
0x043700…043720             72 20 73 68 6c 20 34 20 2b 20 28 20 6f 72 64 28 20 61 5b 70 5d 20 29 20 2d 20 6f 72 64 28 20 27   ┆r shl 4 + ( ord( a[p] ) - ord( '┆
0x043720…043740             30 27 20 29 20 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 28 20 27 61 27 20 3c 3d 20   ┆0' ) )     else     if ( 'a' <= ┆
0x043740…043760             61 5b 70 5d 20 29 20 61 6e 64 20 28 20 61 5b 70 5d 20 3c 3d 20 27 66 27 20 29 20 74 68 65 6e 0a   ┆a[p] ) and ( a[p] <= 'f' ) then ┆
0x043760…043780             20 20 20 20 20 20 68 65 78 5f 6e 75 6d 62 65 72 20 3a 3d 20 68 65 78 5f 6e 75 6d 62 65 72 20 73   ┆      hex_number := hex_number s┆
0x043780…0437a0             68 6c 20 34 20 2b 20 28 20 6f 72 64 28 20 61 5b 70 5d 20 29 20 2d 20 6f 72 64 28 20 27 61 27 20   ┆hl 4 + ( ord( a[p] ) - ord( 'a' ┆
0x0437a0…0437c0             29 20 2b 20 31 30 20 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20   ┆) + 10 )     else       begin   ┆
0x0437c0…0437e0             20 20 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆    if false then writeln ( outp┆
0x0437e0…043800             75 74 2c 20 27 20 20 65 78 69 74 20 61 74 20 70 6f 73 20 27 2c 20 70 2c 20 27 20 20 3c 27 2c 20   ┆ut, '  exit at pos ', p, '  <', ┆
0x043800…043820 (18, 0, 1)  61 5b 70 5d 2c 20 27 3e 27 29 3b 0a 20 20 20 20 20 20 65 78 69 74 0a 20 20 20 20 20 20 65 6e 64   ┆a[p], '>');       exit       end┆
0x043820…043840             0a 20 20 20 20 65 6e 64 3b 20 28 2a 20 20 66 6f 72 20 2e 2e 2e 2e 2e 20 20 2a 29 0a 0a 20 20 65   ┆     end; (*  for .....  *)    e┆
0x043840…043860             6e 64 3b 20 20 28 2a 20 20 63 6f 6e 76 65 72 74 20 68 65 78 20 20 2a 29 0a 0a 0a 50 72 6f 63 65   ┆nd;  (*  convert hex  *)   Proce┆
0x043860…043880             64 75 72 65 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20 6d 2c 20 64 20 3a 20 77 6f 72 64 3b 20 76   ┆dure  map_laddr ( m, d : word; v┆
0x043880…0438a0             61 72 20 61 20 3a 20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 20   ┆ar a : address );   begin   if  ┆
0x0438a0…0438c0             6d 20 3e 3d 20 33 32 20 20 74 68 65 6e 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c   ┆m >= 32  then call_error ( fatal┆
0x0438c0…0438e0             2c 20 37 2c 20 6d 2c 20 27 20 6d 20 3e 3d 20 33 32 20 27 29 3b 0a 20 20 61 2e 62 61 73 65 20 3a   ┆, 7, m, ' m >= 32 ');   a.base :┆
0x0438e0…043900             3d 20 6d 3b 0a 20 20 61 2e 64 69 73 70 20 3a 3d 20 64 0a 20 20 65 6e 64 3b 0a 0a 0a 50 72 6f 63   ┆= m;   a.disp := d   end;   Proc┆
0x043900…043920             65 64 75 72 65 20 72 65 73 65 72 76 65 5f 61 72 65 61 20 28 20 73 69 7a 65 3a 20 6c 6f 6e 67 69   ┆edure reserve_area ( size: longi┆
0x043920…043940             6e 74 3b 20 76 61 72 20 61 3a 20 61 64 64 72 65 73 73 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69   ┆nt; var a: address);   begin   i┆
0x043940…043960             66 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 20 2d 20 73 69 7a 65 20 3c 20 61 2e 64 69 73 70 20   ┆f top_of_module - size < a.disp ┆
0x043960…043980             74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 64 65 62 75 67 36 20 74 68 65   ┆then     begin     if debug6 the┆
0x043980…0439a0             6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆n       begin       writeln ( ou┆
0x0439a0…0439c0             74 70 75 74 2c 20 27 2d 2d 20 20 72 65 73 65 72 76 65 20 28 74 6f 70 2c 73 69 7a 65 2c 61 2c 73   ┆tput, '--  reserve (top,size,a,s┆
0x0439c0…0439e0             61 76 65 64 5f 64 29 27 2c 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 2c 20 27 20 20 27 2c 20 73   ┆aved_d)', top_of_module, '  ', s┆
0x0439e0…043a00             69 7a 65 2c 20 27 20 20 27 2c 0a 20 20 20 20 20 20 61 2e 64 69 73 70 2c 20 27 20 20 27 2c 20 73   ┆ize, '  ',       a.disp, '  ', s┆
0x043a00…043a20 (18, 0, 2)  74 72 5f 61 64 64 72 20 28 20 61 29 2c 20 27 20 20 27 2c 20 73 74 72 5f 61 64 64 72 20 28 20 69   ┆tr_addr ( a), '  ', str_addr ( i┆
0x043a20…043a40             74 65 6d 2e 73 61 76 65 64 5f 64 5f 61 64 64 72 29 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 6c   ┆tem.saved_d_addr));       writel┆
0x043a40…043a60             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 72 65 73 65 72 76 65 20 28 64 65 73 5f 6c 65   ┆n ( output, '--  reserve (des_le┆
0x043a60…043a80             6e 67 2c 6f 63 74 65 74 73 29 20 27 2c 20 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65   ┆ng,octets) ', head.descriptor_le┆
0x043a80…043aa0             6e 67 74 68 2c 0a 20 20 20 20 20 20 27 20 20 27 2c 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20   ┆ngth,       '  ', octets);      ┆
0x043aa0…043ac0             20 65 6e 64 3b 0a 20 20 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20 61 2e 62 61 73 65 20 2b 20 31   ┆ end;     map_laddr ( a.base + 1┆
0x043ac0…043ae0             2c 20 66 69 72 73 74 5f 6f 66 5f 6d 6f 64 75 6c 65 2c 20 61 29 3b 0a 20 20 20 20 6f 75 74 5f 73   ┆, first_of_module, a);     out_s┆
0x043ae0…043b00             75 6d 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65   ┆um;     end;   end;    Procedure┆
0x043b00…043b20             20 20 6d 61 70 5f 69 6e 63 72 20 28 20 66 72 6f 6d 20 3a 20 61 64 64 72 65 73 73 3b 20 6f 66 66   ┆  map_incr ( from : address; off┆
0x043b20…043b40             73 65 74 20 3a 20 6c 6f 6e 67 69 6e 74 3b 20 76 61 72 20 61 20 3a 20 61 64 64 72 65 73 73 20 29   ┆set : longint; var a : address )┆
0x043b40…043b60             3b 0a 20 20 76 61 72 20 6f 6c 64 5f 62 61 73 65 20 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e   ┆;   var old_base : word;   begin┆
0x043b60…043b80             0a 20 20 6f 6c 64 5f 62 61 73 65 20 3a 3d 20 66 72 6f 6d 2e 62 61 73 65 3b 0a 20 20 72 65 73 65   ┆   old_base := from.base;   rese┆
0x043b80…043ba0             72 76 65 5f 61 72 65 61 20 28 20 6f 66 66 73 65 74 2c 20 66 72 6f 6d 29 3b 0a 20 20 61 2e 62 61   ┆rve_area ( offset, from);   a.ba┆
0x043ba0…043bc0             73 65 20 3a 3d 20 66 72 6f 6d 2e 62 61 73 65 3b 0a 20 20 69 66 20 6f 6c 64 5f 62 61 73 65 20 3d   ┆se := from.base;   if old_base =┆
0x043bc0…043be0             20 66 72 6f 6d 2e 62 61 73 65 20 74 68 65 6e 20 20 28 2a 20 73 61 6d 65 20 6d 6f 64 75 6c 65 20   ┆ from.base then  (* same module ┆
0x043be0…043c00             2a 29 0a 20 20 20 20 61 2e 64 69 73 70 20 3a 3d 20 66 72 6f 6d 2e 64 69 73 70 20 2b 20 20 6f 66   ┆*)     a.disp := from.disp +  of┆
0x043c00…043c20 (18, 0, 3)  66 73 65 74 0a 20 20 65 6c 73 65 20 28 2a 20 63 68 61 6e 67 65 20 6d 6f 64 75 6c 65 20 2a 29 0a   ┆fset   else (* change module *) ┆
0x043c20…043c40             20 20 20 20 61 2e 64 69 73 70 20 3a 3d 20 66 72 6f 6d 2e 64 69 73 70 3b 0a 20 20 65 6e 64 3b 0a   ┆    a.disp := from.disp;   end; ┆
0x043c40…043c60             0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 66 72 6f 6d 20 3a   ┆   Procedure  map_point ( from :┆
0x043c60…043c80             20 61 64 64 72 65 73 73 3b 20 73 69 7a 65 20 3a 20 77 6f 72 64 3b 20 70 20 3a 20 70 72 6f 67 72   ┆ address; size : word; p : progr┆
0x043c80…043ca0             61 6d 5f 70 6f 69 6e 74 3b 0a 09 20 20 20 20 20 76 61 72 20 61 20 3a 20 61 64 64 72 65 73 73 20   ┆am_point;       var a : address ┆
0x043ca0…043cc0             29 3b 0a 20 20 76 61 72 20 20 6f 66 66 73 65 74 20 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 62 65   ┆);   var  offset : longint;   be┆
0x043cc0…043ce0             67 69 6e 0a 20 20 6f 66 66 73 65 74 3a 3d 20 70 2e 72 65 6c 5f 62 79 74 65 3b 0a 20 20 6f 66 66   ┆gin   offset:= p.rel_byte;   off┆
0x043ce0…043d00             73 65 74 20 3a 3d 20 6f 66 66 73 65 74 20 2b 20 28 20 70 2e 70 61 67 65 5f 6e 6f 20 2d 20 31 29   ┆set := offset + ( p.page_no - 1)┆
0x043d00…043d20             20 2a 20 73 69 7a 65 3b 0a 20 20 69 66 20 6f 66 66 73 65 74 20 3e 3d 20 63 6f 64 65 5f 62 79 74   ┆ * size;   if offset >= code_byt┆
0x043d20…043d40             65 73 20 20 74 68 65 6e 0a 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c   ┆es  then     call_error ( fatal,┆
0x043d40…043d60             20 37 2c 20 6f 66 66 73 65 74 2c 20 27 6f 66 66 73 65 74 20 3e 3d 20 63 6f 64 65 62 79 74 65 73   ┆ 7, offset, 'offset >= codebytes┆
0x043d60…043d80             20 27 29 3b 0a 20 20 6d 61 70 5f 69 6e 63 72 20 28 20 66 72 6f 6d 2c 20 6f 66 66 73 65 74 2c 20   ┆ ');   map_incr ( from, offset, ┆
0x043d80…043da0             61 20 29 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 5f 61 64 64 72 20   ┆a )   end;    Procedure in_addr ┆
0x043da0…043dc0             28 20 76 61 72 20 61 3a 20 61 64 64 72 65 73 73 29 3b 0a 20 20 76 61 72 20 70 6f 69 6e 74 3a 20   ┆( var a: address);   var point: ┆
0x043dc0…043de0             70 72 6f 67 72 61 6d 5f 70 6f 69 6e 74 3b 0a 20 20 62 65 67 69 6e 0a 20 20 28 2a 20 73 69 6d 75   ┆program_point;   begin   (* simu┆
0x043de0…043e00             6c 61 74 65 3a 20 69 6e 5f 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 3b 20 2a 29 0a 20 20 77 69 74   ┆late: in_point (point); *)   wit┆
0x043e00…043e20 (18, 0, 4)  68 20 70 6f 69 6e 74 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 72 65 61 64 69 6e 74   ┆h point do     begin     readint┆
0x043e20…043e40             65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 67 65 5f 6e 6f 29 3b 0a 20 20   ┆eger ( in_obj_file, page_no);   ┆
0x043e40…043e60             20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 72 65 6c   ┆  readinteger ( in_obj_file, rel┆
0x043e60…043e80             5f 62 79 74 65 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63   ┆_byte);     end;   map_point ( c┆
0x043e80…043ea0             6f 64 65 5f 61 64 64 72 2c 20 68 65 61 64 2e 70 61 67 65 73 69 7a 65 2c 20 70 6f 69 6e 74 2c 20   ┆ode_addr, head.pagesize, point, ┆
0x043ea0…043ec0             61 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 67 65 74 5f 62 79 74 65 20   ┆a);   end;    Function get_byte ┆
0x043ec0…043ee0             28 20 66 72 6f 6d 5f 61 64 64 72 3a 20 61 64 64 72 65 73 73 3b 20 72 65 6c 3a 20 69 6e 74 65 67   ┆( from_addr: address; rel: integ┆
0x043ee0…043f00             65 72 29 20 3a 20 62 79 74 65 3b 0a 20 20 76 61 72 0a 20 20 20 20 62 79 74 65 5f 69 6e 64 65 78   ┆er) : byte;   var     byte_index┆
0x043f00…043f20             3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 77 69 74 68 20 66 72 6f 6d 5f 61 64 64 72   ┆: word;   begin   with from_addr┆
0x043f20…043f40             20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 62 79 74 65 5f 69 6e 64 65 78 20 3a 3d 20   ┆ do     begin     byte_index := ┆
0x043f40…043f60             64 69 73 70 20 2b 20 72 65 6c 20 2d 20 63 6f 64 65 5f 61 64 64 72 2e 64 69 73 70 3b 0a 20 20 20   ┆disp + rel - code_addr.disp;    ┆
0x043f60…043f80             20 69 66 20 62 79 74 65 5f 69 6e 64 65 78 20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 20 74 68 65   ┆ if byte_index >= code_bytes the┆
0x043f80…043fa0             6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 37 2c 20 62   ┆n       call_error ( fatal, 7, b┆
0x043fa0…043fc0             79 74 65 5f 69 6e 64 65 78 2c 20 27 62 79 74 65 69 6e 64 65 78 20 3e 3d 20 63 6f 64 65 5f 62 79   ┆yte_index, 'byteindex >= code_by┆
0x043fc0…043fe0             74 65 73 27 29 3b 0a 20 20 20 20 67 65 74 5f 62 79 74 65 3a 3d 20 63 6f 72 65 5e 5b 62 79 74 65   ┆tes');     get_byte:= core^[byte┆
0x043fe0…044000             5f 69 6e 64 65 78 5d 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63   ┆_index];     end;   end;    Proc┆
0x044000…044020 (18, 0, 5)  65 64 75 72 65 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72 3a 20 61 64 64 72   ┆edure store_byte ( to_addr: addr┆
0x044020…044040             65 73 73 3b 20 72 65 6c 3a 20 69 6e 74 65 67 65 72 3b 20 62 79 76 61 3a 20 62 79 74 65 29 3b 0a   ┆ess; rel: integer; byva: byte); ┆
0x044040…044060             20 20 76 61 72 0a 20 20 20 20 62 79 74 65 5f 69 6e 64 65 78 3a 20 77 6f 72 64 3b 0a 20 20 62 65   ┆  var     byte_index: word;   be┆
0x044060…044080             67 69 6e 0a 20 20 77 69 74 68 20 74 6f 5f 61 64 64 72 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a   ┆gin   with to_addr do     begin ┆
0x044080…0440a0             20 20 20 20 62 79 74 65 5f 69 6e 64 65 78 20 3a 3d 20 64 69 73 70 20 2b 20 72 65 6c 20 2d 20 63   ┆    byte_index := disp + rel - c┆
0x0440a0…0440c0             6f 64 65 5f 61 64 64 72 2e 64 69 73 70 3b 0a 20 20 20 20 69 66 20 62 79 74 65 5f 69 6e 64 65 78   ┆ode_addr.disp;     if byte_index┆
0x0440c0…0440e0             20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 20 74 68 65 6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65   ┆ >= code_bytes then       call_e┆
0x0440e0…044100             72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 37 2c 20 62 79 74 65 5f 69 6e 64 65 78 2c 20 27 62 79   ┆rror ( fatal, 7, byte_index, 'by┆
0x044100…044120             74 65 69 6e 64 65 78 20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 27 29 3b 0a 20 20 20 20 63 6f 72   ┆teindex >= code_bytes');     cor┆
0x044120…044140             65 5e 5b 62 79 74 65 5f 69 6e 64 65 78 5d 3a 3d 20 62 79 76 61 3b 0a 20 20 20 20 65 6e 64 3b 0a   ┆e^[byte_index]:= byva;     end; ┆
0x044140…044160             20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 67 65 74 62 6c 6f 63 6b 20 28 20 62   ┆  end;    Procedure getblock ( b┆
0x044160…044180             79 74 65 63 6f 75 6e 74 3a 20 6c 6f 6e 67 69 6e 74 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 62 79   ┆ytecount: longint);   var     by┆
0x044180…0441a0             74 65 73 20 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 62 6c 6f 63 6b 72 65 61 64 20   ┆tes : word;   begin   blockread ┆
0x0441a0…0441c0             28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 63 6f 72 65 5e 2c 20 62 79 74 65 63 6f 75 6e 74 2c   ┆( in_obj_file, core^, bytecount,┆
0x0441c0…0441e0             20 62 79 74 65 73 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65   ┆ bytes);   iocheck ( in_obj_file┆
0x0441e0…044200             29 3b 0a 20 20 69 66 20 62 79 74 65 73 20 3c 20 62 79 74 65 63 6f 75 6e 74 20 74 68 65 6e 20 72   ┆);   if bytes < bytecount then r┆
0x044200…044220 (18, 0, 6)  75 6e 65 72 72 6f 72 20 28 20 31 33 30 29 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75   ┆unerror ( 130)   end;    Procedu┆
0x044220…044240             72 65 20 70 75 74 62 6c 6f 63 6b 20 28 20 62 79 74 65 63 6f 75 6e 74 3a 20 6c 6f 6e 67 69 6e 74   ┆re putblock ( bytecount: longint┆
0x044240…044260             29 3b 0a 20 20 76 61 72 0a 20 20 20 20 70 2c 20 62 79 74 65 73 2c 20 6c 61 73 74 20 3a 20 77 6f   ┆);   var     p, bytes, last : wo┆
0x044260…044280             72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 62 6c 6f 63 6b 77 72 69 74 65 20 28 20 6f 75 74 62 69   ┆rd;   begin   blockwrite ( outbi┆
0x044280…0442a0             6e 66 69 6c 65 2c 20 63 6f 72 65 5e 2c 20 62 79 74 65 63 6f 75 6e 74 2c 20 62 79 74 65 73 29 3b   ┆nfile, core^, bytecount, bytes);┆
0x0442a0…0442c0             0a 20 20 69 6f 63 68 65 63 6b 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 29 3b 0a 20 20 69 66 20 62   ┆   iocheck ( outbinfile);   if b┆
0x0442c0…0442e0             79 74 65 73 20 3c 20 62 79 74 65 63 6f 75 6e 74 20 74 68 65 6e 20 72 75 6e 65 72 72 6f 72 20 28   ┆ytes < bytecount then runerror (┆
0x0442e0…044300             20 31 33 31 29 3b 0a 20 20 28 2a 2d 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e   ┆ 131);   (*-  if current_version┆
0x044300…044320             5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d   ┆_number = compiler_c_version_num┆
0x044320…044340             62 65 72 20 20 74 68 65 6e 20 20 2d 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6c 61 73   ┆ber  then  -*)     begin     las┆
0x044340…044360             74 3a 3d 20 28 20 62 79 74 65 63 6f 75 6e 74 20 73 68 72 20 31 20 29 20 2d 20 31 3b 0a 20 20 20   ┆t:= ( bytecount shr 1 ) - 1;    ┆
0x044360…044380             20 66 6f 72 20 70 3a 3d 20 30 20 74 6f 20 6c 61 73 74 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69   ┆ for p:= 0 to last do       begi┆
0x044380…0443a0             6e 0a 20 20 20 20 20 20 63 72 63 31 36 20 28 20 73 75 6d 2c 20 63 6f 72 65 77 5e 5b 70 5d 29 3b   ┆n       crc16 ( sum, corew^[p]);┆
0x0443a0…0443c0             0a 20 20 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆     (*-------------------------┆
0x0443c0…0443e0             0a 20 20 20 20 20 20 73 75 6d 3a 3d 20 63 72 63 31 36 20 28 20 63 72 63 31 36 20 28 20 73 75 6d   ┆       sum:= crc16 ( crc16 ( sum┆
0x0443e0…044400             20 78 6f 72 20 68 69 28 62 79 74 65 73 29 2c 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 20 29 0a   ┆ xor hi(bytes), crc16quotient ) ┆
0x044400…044420 (18, 0, 7)  20 20 20 20 20 20 78 6f 72 20 20 20 20 20 6c 6f 28 62 79 74 65 73 29 20 2c 20 63 72 63 31 36 71   ┆      xor     lo(bytes) , crc16q┆
0x044420…044440             75 6f 74 69 65 6e 74 20 29 3b 0a 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆uotient );       ---------------┆
0x044440…044460             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 20 20 20 69 6e 63 20 28 20 73 75 6d 63 6f 75 6e   ┆----------*)       inc ( sumcoun┆
0x044460…044480             74 29 3b 0a 20 20 20 20 20 20 69 66 20 73 75 6d 63 6f 75 6e 74 20 3e 20 73 75 6d 77 6f 72 64 73   ┆t);       if sumcount > sumwords┆
0x044480…0444a0             0a 20 20 20 20 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 09 73 75 6d 63 61 74 61 6c 6f 67 5b 73 75   ┆       then begin  sumcatalog[su┆
0x0444a0…0444c0             6d 69 6e 64 65 78 5d 3a 3d 20 6e 6f 74 20 73 77 61 70 20 28 20 73 75 6d 20 29 3b 0a 09 69 6e 63   ┆mindex]:= not swap ( sum );  inc┆
0x0444c0…0444e0             20 28 20 73 75 6d 69 6e 64 65 78 29 3b 0a 20 20 20 20 20 20 69 66 20 73 75 6d 69 6e 64 65 78 20   ┆ ( sumindex);       if sumindex ┆
0x0444e0…044500             3e 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 6c   ┆> no_of_sums then         writel┆
0x044500…044520             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 20 20 73 75 6d 69 6e 64 65 78 20 69 6e 20 70 75 74   ┆n ( output, '**  sumindex in put┆
0x044520…044540             62 6c 6f 63 6b 28 27 2c 20 62 79 74 65 63 6f 75 6e 74 2c 27 25 27 2c 20 6c 61 73 74 2c 27 29 20   ┆block(', bytecount,'%', last,') ┆
0x044540…044560             3a 20 27 2c 20 73 75 6d 69 6e 64 65 78 20 29 3b 0a 09 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a   ┆: ', sumindex );  sumcount:= 1; ┆
0x044560…044580             09 73 75 6d 3a 3d 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 09 65 6e 64 3b 0a 20 20 20 20 20 20 65 6e 64   ┆ sum:= all_ones;  end;       end┆
0x044580…0445a0             3b 20 20 20 28 2a 20 20 66 6f 72 20 70 20 20 2a 29 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64   ┆;   (*  for p  *)     end;   end┆
0x0445a0…0445c0             3b 20 20 28 2a 20 20 70 75 74 62 6c 6f 63 6b 20 20 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65   ┆;  (*  putblock  *)    Procedure┆
0x0445c0…0445e0             20 73 74 6f 72 65 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 2c 20 6b 5f 61 64 64 72 3a 20 61   ┆ store_addr ( to_addr, k_addr: a┆
0x0445e0…044600             64 64 72 65 73 73 29 3b 0a 20 20 28 2a 20 61 64 64 20 74 68 65 20 64 69 73 70 20 69 6e 20 63 6f   ┆ddress);   (* add the disp in co┆
0x044600…044620 (18, 0, 8)  72 65 2d 69 6d 61 67 65 20 74 6f 20 74 68 65 20 6e 65 77 20 63 6f 6e 74 65 6e 74 73 20 2a 29 0a   ┆re-image to the new contents *) ┆
0x044620…044640             20 20 62 65 67 69 6e 0a 20 20 6d 61 70 5f 69 6e 63 72 20 28 20 6b 5f 61 64 64 72 2c 20 73 77 61   ┆  begin   map_incr ( k_addr, swa┆
0x044640…044660             70 28 67 65 74 5f 62 79 74 65 28 74 6f 5f 61 64 64 72 2c 2d 31 29 29 20 2b 20 67 65 74 5f 62 79   ┆p(get_byte(to_addr,-1)) + get_by┆
0x044660…044680             74 65 28 74 6f 5f 61 64 64 72 2c 30 29 2c 20 6b 5f 61 64 64 72 29 3b 0a 20 20 77 69 74 68 20 6b   ┆te(to_addr,0), k_addr);   with k┆
0x044680…0446a0             5f 61 64 64 72 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 62 61 73 65 20 3a 3d 20 66   ┆_addr do     begin     base := f┆
0x0446a0…0446c0             69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 62 61 73 65 20 73 68 6c 20 31 3b 0a 20 20 20 20 28 2a   ┆irst_mem_no + base shl 1;     (*┆
0x0446c0…0446e0             2d 2d 2d 2d 20 20 6f 6c 64 20 20 2d 2d 2d 0a 20 20 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65   ┆----  old  ---     if current_ve┆
0x0446e0…044700             72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f   ┆rsion_number = compiler_version_┆
0x044700…044720             6e 75 6d 62 65 72 20 74 68 65 6e 0a 20 20 20 20 20 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74   ┆number then       store_byte ( t┆
0x044720…044740             6f 5f 61 64 64 72 2c 20 2d 33 2c 20 73 77 61 70 28 62 61 73 65 29 20 61 6e 64 20 32 35 35 29 3b   ┆o_addr, -3, swap(base) and 255);┆
0x044740…044760             0a 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 20 73 74 6f 72   ┆     ----------------*)     stor┆
0x044760…044780             65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72 2c 20 2d 32 2c 20 6c 6f 28 62 61 73 65 29 29 3b   ┆e_byte ( to_addr, -2, lo(base));┆
0x044780…0447a0             0a 20 20 20 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72 2c 20 2d 31 2c 20 68   ┆     store_byte ( to_addr, -1, h┆
0x0447a0…0447c0             69 28 64 69 73 70 29 29 3b 0a 20 20 20 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64   ┆i(disp));     store_byte ( to_ad┆
0x0447c0…0447e0             64 72 2c 20 20 30 2c 20 6c 6f 28 64 69 73 70 29 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e   ┆dr,  0, lo(disp));     end;   en┆
0x0447e0…044800             64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 67 65 74 5f 64 61 74 65 20 28 20 76 61 72 20 64   ┆d;    Procedure get_date ( var d┆
0x044800…044820 (18, 0, 9)  61 74 65 3a 20 63 6f 64 65 64 5f 64 61 74 65 3b 20 76 61 72 20 74 69 6d 65 3a 20 63 6f 64 65 64   ┆ate: coded_date; var time: coded┆
0x044820…044840             5f 74 69 6d 65 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 66 70 6f 73 20 3a 20 6c 6f 6e 67 69 6e   ┆_time);   var      fpos : longin┆
0x044840…044860             74 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 66 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20   ┆t;    begin    fpos:= filepos ( ┆
0x044860…044880             69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62   ┆in_obj_file);    iocheck ( in_ob┆
0x044880…0448a0             6a 5f 66 69 6c 65 29 3b 0a 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a   ┆j_file);    readinteger ( in_obj┆
0x0448a0…0448c0             5f 66 69 6c 65 2c 20 64 61 74 65 29 3b 0a 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69   ┆_file, date);    readinteger ( i┆
0x0448c0…0448e0             6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 74 69 6d 65 29 3b 0a 20 20 20 69 66 20 74 69 6d 65 20 73 68   ┆n_obj_file, time);    if time sh┆
0x0448e0…044900             72 20 31 31 20 3c 3e 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 74 68 65 6e 0a 20 20   ┆r 11 <> compiler_version then   ┆
0x044900…044920             20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆   begin      writeln ( output, ┆
0x044920…044940             27 21 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 20 24 27 2c 20 73 74 72 68 65 78 20 28 20 74 69   ┆'! compile time  $', strhex ( ti┆
0x044940…044960             6d 65 29 2c 0a 09 27 20 20 20 27 2c 20 73 74 72 64 61 74 65 20 28 20 64 61 74 65 29 2c 20 27 27   ┆me),  '   ', strdate ( date), ''┆
0x044960…044980             3a 32 2c 20 73 74 72 74 69 6d 65 20 28 20 74 69 6d 65 29 29 3b 0a 20 20 20 20 20 63 61 6c 6c 5f   ┆:2, strtime ( time));      call_┆
0x044980…0449a0             65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 35 2c 20 74 69 6d 65 20 73 68 72 20 31 31 2c 20 73   ┆error ( fatal, 5, time shr 11, s┆
0x0449a0…0449c0             74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 20 29 3b 0a 20 20 20 20 20 65 6e 64 3b   ┆tralfa ( head.name) );      end;┆
0x0449c0…0449e0             0a 20 20 20 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 66 70 6f 73 29 3b 09 28   ┆    seek ( in_obj_file, fpos); (┆
0x0449e0…044a00             2a 20 20 62 61 63 6b 20 61 67 61 69 6e 20 20 2a 29 0a 20 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f   ┆*  back again  *)    end;    Pro┆
0x044a00…044a20 (18, 0, 10) 63 65 64 75 72 65 20 69 6e 69 74 5f 69 74 65 6d 20 28 20 76 61 72 20 69 74 65 6d 3a 20 69 74 65   ┆cedure init_item ( var item: ite┆
0x044a20…044a40             6d 5f 72 65 63 3b 20 76 61 72 20 72 65 63 6e 6f 3a 20 77 6f 72 64 3b 0a 09 09 20 20 20 20 20 20   ┆m_rec; var recno: word;         ┆
0x044a40…044a60             6b 65 79 3a 20 61 6c 66 61 73 74 72 3b 20 73 65 74 5f 64 61 74 65 3a 20 62 6f 6f 6c 65 61 6e 29   ┆key: alfastr; set_date: boolean)┆
0x044a60…044a80             3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 69 6c 6c 63 68 61 72 20 28 20 69 74 65 6d 2c 20 73 69 7a   ┆;   begin   fillchar ( item, siz┆
0x044a80…044aa0             65 6f 66 20 28 20 69 74 65 6d 29 2c 20 30 29 3b 0a 20 20 77 69 74 68 20 69 74 65 6d 20 64 6f 0a   ┆eof ( item), 0);   with item do ┆
0x044aa0…044ac0             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 28 2a 20 20 72 65 63 73 74 61 74 3a 3d 20 30 3b 20 20   ┆    begin     (*  recstat:= 0;  ┆
0x044ac0…044ae0             20 62 79 20 66 69 6c 6c 63 68 61 72 20 20 2a 29 0a 20 20 20 20 69 66 20 73 65 74 5f 64 61 74 65   ┆ by fillchar  *)     if set_date┆
0x044ae0…044b00             20 74 68 65 6e 20 20 67 65 74 5f 64 61 74 65 20 28 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 2c 20   ┆ then  get_date ( compile_date, ┆
0x044b00…044b20             63 6f 6d 70 69 6c 65 5f 74 69 6d 65 29 3b 0a 20 20 20 28 2a 20 20 20 20 65 6c 73 65 20 20 63 6f   ┆compile_time);    (*    else  co┆
0x044b20…044b40             6d 70 69 6c 65 5f 64 61 74 65 3a 3d 20 30 3b 20 20 20 75 6e 64 65 66 69 6e 65 64 20 64 61 74 65   ┆mpile_date:= 0;   undefined date┆
0x044b40…044b60             20 2a 29 0a 0a 20 20 20 20 73 74 61 74 65 20 3a 3d 20 75 6e 64 65 66 3b 0a 20 20 20 20 75 73 65   ┆ *)      state := undef;     use┆
0x044b60…044b80             72 6e 61 6d 65 3a 3d 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 3b 0a 20 20   ┆rname:= stralfa ( head.name);   ┆
0x044b80…044ba0             20 20 70 61 72 61 6d 6c 69 73 74 20 3a 3d 20 6f 62 6a 5f 70 61 72 61 6d 73 3b 0a 20 20 20 20 65   ┆  paramlist := obj_params;     e┆
0x044ba0…044bc0             6e 74 72 79 5f 61 64 64 72 20 3a 3d 20 73 74 61 72 74 5f 61 64 64 72 3b 20 20 28 2a 20 64 75 6d   ┆ntry_addr := start_addr;  (* dum┆
0x044bc0…044be0             6d 79 20 65 6e 74 72 79 2d 61 64 64 72 20 2a 29 0a 20 20 20 20 65 6e 64 3b 0a 20 20 61 6e 79 5f   ┆my entry-addr *)     end;   any_┆
0x044be0…044c00             69 6e 63 6c 75 64 65 64 20 3a 3d 20 74 72 75 65 3b 0a 20 20 69 6e 63 20 28 20 6c 61 73 74 5f 65   ┆included := true;   inc ( last_e┆
0x044c00…044c20 (18, 0, 11) 78 74 65 72 6e 61 6c 29 3b 0a 20 20 69 6e 63 20 28 20 75 6e 64 65 66 5f 63 6f 75 6e 74 29 3b 0a   ┆xternal);   inc ( undef_count); ┆
0x044c20…044c40             20 20 61 64 64 72 65 63 20 28 20 64 61 74 66 2c 20 72 65 63 6e 6f 2c 20 69 74 65 6d 29 3b 0a 20   ┆  addrec ( datf, recno, item);  ┆
0x044c40…044c60             20 6b 65 79 3a 3d 20 6b 65 79 20 2b 20 27 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a 20 20 69   ┆ key:= key + '            ';   i┆
0x044c60…044c80             66 20 64 65 62 75 67 63 61 74 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆f debugcat then  writeln ( outpu┆
0x044c80…044ca0             74 2c 20 27 20 20 20 61 64 64 72 65 63 20 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 27 2c 20 72 65 63   ┆t, '   addrec : ', key, ',', rec┆
0x044ca0…044cc0             6e 6f 3a 34 2c 20 73 65 74 5f 64 61 74 65 3a 38 29 3b 0a 20 20 61 64 64 6b 65 79 20 28 20 69 6e   ┆no:4, set_date:8);   addkey ( in┆
0x044cc0…044ce0             78 66 2c 20 72 65 63 6e 6f 2c 20 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f   ┆xf, recno, key);     inc ( logno┆
0x044ce0…044d00             29 3b 0a 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20   ┆);   if debug7 then     writeln ┆
0x044d00…044d20             28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 41 64 64 6b 65 79 20 26 27 2c 20   ┆( log, '#', logno, '$Addkey &', ┆
0x044d20…044d40             72 65 63 6e 6f 2c 20 27 40 27 2c 20 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73   ┆recno, '@', key, '"  ->', succes┆
0x044d40…044d60             73 29 3b 0a 0a 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 73 65 61 72 63 68   ┆s);     end;    Procedure search┆
0x044d60…044d80             20 28 20 76 61 72 20 69 74 65 6d 3a 20 69 74 65 6d 5f 72 65 63 3b 20 76 61 72 20 72 65 63 6e 6f   ┆ ( var item: item_rec; var recno┆
0x044d80…044da0             3a 20 77 6f 72 64 3b 0a 20 20 20 20 76 61 72 20 6b 65 79 3a 20 61 6c 66 61 73 74 72 3b 20 76 61   ┆: word;     var key: alfastr; va┆
0x044da0…044dc0             72 20 70 61 72 61 6d 73 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 29 3b 0a 20 28 2a 20 20 73 65 61   ┆r params: param_descr);  (*  sea┆
0x044dc0…044de0             72 63 68 20 66 6f 72 20 61 6e 20 69 74 65 6d 20 77 69 74 68 20 20 69 64 20 3d 20 6b 65 79 20 61   ┆rch for an item with  id = key a┆
0x044de0…044e00             6e 64 20 70 61 72 61 6d 6c 69 73 74 20 3d 20 70 61 72 61 6d 73 0a 20 2d 2d 20 20 72 65 74 75 72   ┆nd paramlist = params  --  retur┆
0x044e00…044e20 (18, 0, 12) 6e 73 20 73 75 63 63 65 73 73 20 3d 20 66 61 6c 73 65 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 0a   ┆ns success = false if not found ┆
0x044e20…044e40             20 2d 2d 20 20 72 65 74 75 72 6e 73 20 73 75 63 63 65 73 73 20 3d 20 74 72 75 65 20 61 6e 64 20   ┆ --  returns success = true and ┆
0x044e40…044e60             74 68 65 20 69 74 65 6d 2c 20 69 66 20 66 6f 75 6e 64 0a 20 2d 2d 20 20 67 6c 6f 62 61 6c 73 3a   ┆the item, if found  --  globals:┆
0x044e60…044e80             20 69 6e 78 66 2c 20 64 61 74 66 0a 20 2a 29 0a 20 20 20 76 61 72 20 20 6e 5f 6b 65 79 20 3a 20   ┆ inxf, datf  *)    var  n_key : ┆
0x044e80…044ea0             61 6c 66 61 73 74 72 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 72 65 63 6e 6f 3a 3d 20 30 3b 0a   ┆alfastr;    begin    recno:= 0; ┆
0x044ea0…044ec0             20 20 20 6e 5f 6b 65 79 3a 3d 20 6b 65 79 3b 0a 20 20 20 69 66 20 64 65 62 75 67 63 61 74 20 74   ┆   n_key:= key;    if debugcat t┆
0x044ec0…044ee0             68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 73 2e 66 69 6e 64 6b 65   ┆hen  writeln ( output, 's.findke┆
0x044ee0…044f00             79 20 3a 20 27 2c 20 6e 5f 6b 65 79 2c 20 27 2c 27 29 3b 0a 20 20 20 66 69 6e 64 6b 65 79 20 28   ┆y : ', n_key, ',');    findkey (┆
0x044f00…044f20             20 69 6e 78 66 2c 20 72 65 63 6e 6f 2c 20 6e 5f 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20   ┆ inxf, recno, n_key);     inc ( ┆
0x044f20…044f40             6c 6f 67 6e 6f 29 3b 0a 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69   ┆logno);   if debug7 then     wri┆
0x044f40…044f60             74 65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 46 69 6e 64 6b 65   ┆teln ( log, '#', logno, '$Findke┆
0x044f60…044f80             79 20 26 27 2c 20 72 65 63 6e 6f 2c 20 27 40 27 2c 20 6e 5f 6b 65 79 2c 20 27 22 20 20 2d 3e 27   ┆y &', recno, '@', n_key, '"  ->'┆
0x044f80…044fa0             2c 20 73 75 63 63 65 73 73 29 3b 0a 0a 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a   ┆, success);     if success then ┆
0x044fa0…044fc0             20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 77 68 69 6c 65 20 28 20 6e 5f 6b 65 79 20 3d 20   ┆     begin      while ( n_key = ┆
0x044fc0…044fe0             6b 65 79 29 20 61 6e 64 20 73 75 63 63 65 73 73 20 64 6f 0a 20 20 20 20 20 20 20 62 65 67 69 6e   ┆key) and success do        begin┆
0x044fe0…045000             0a 20 20 20 20 20 20 20 67 65 74 72 65 63 20 28 20 64 61 74 66 2c 20 72 65 63 6e 6f 2c 20 69 74   ┆        getrec ( datf, recno, it┆
0x045000…045020 (18, 0, 13) 65 6d 29 3b 0a 20 20 20 20 20 20 20 69 66 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20   ┆em);        if equal_paramlists ┆
0x045020…045040             28 20 69 74 65 6d 2e 70 61 72 61 6d 6c 69 73 74 2c 20 70 61 72 61 6d 73 29 20 74 68 65 6e 20 65   ┆( item.paramlist, params) then e┆
0x045040…045060             78 69 74 3b 0a 20 20 20 20 20 20 20 6e 65 78 74 6b 65 79 20 28 20 69 6e 78 66 2c 20 72 65 63 6e   ┆xit;        nextkey ( inxf, recn┆
0x045060…045080             6f 2c 20 6e 5f 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20 20 20   ┆o, n_key);     inc ( logno);    ┆
0x045080…0450a0             20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f   ┆ if debug7 then     writeln ( lo┆
0x0450a0…0450c0             67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 4e 65 78 74 6b 65 79 20 26 27 2c 20 72 65 63   ┆g, '#', logno, '$Nextkey &', rec┆
0x0450c0…0450e0             6e 6f 2c 20 27 40 27 2c 20 6e 5f 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73 73   ┆no, '@', n_key, '"  ->', success┆
0x0450e0…045100             29 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 68 69 6c 65 20 20 2a 29 0a 0a 20   ┆);        end;  (*  while  *)   ┆
0x045100…045120             20 20 20 20 73 75 63 63 65 73 73 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 65 6e 64 20 20 28 2a   ┆    success:= false      end  (*┆
0x045120…045140             20 20 6b 65 79 20 66 6f 75 6e 64 20 20 2a 29 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 73 65   ┆  key found  *)     end;  (*  se┆
0x045140…045160             61 72 63 68 20 20 2a 29 0a 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆arch  *)   {--------------------┆
0x045160…045180             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 46 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 5f 65 78 74 20 28   ┆---------- Function search_ext (┆
0x045180…0451a0             70 20 3a 20 5e 20 6e 6f 64 65 29 20 3a 20 5e 20 65 78 74 5f 74 61 62 6c 65 5f 74 3b 0a 76 61 72   ┆p : ^ node) : ^ ext_table_t; var┆
0x0451a0…0451c0             0a 69 74 65 6d 20 3a 20 5e 20 65 78 74 5f 74 61 62 6c 65 5f 74 3b 0a 62 65 67 69 6e 0a 69 74 65   ┆ item : ^ ext_table_t; begin ite┆
0x0451c0…0451e0             6d 20 3a 3d 20 70 5e 2e 65 78 74 5f 74 61 62 6c 65 3b 0a 77 68 69 6c 65 20 6e 6f 74 20 6e 69 6c   ┆m := p^.ext_table; while not nil┆
0x0451e0…045200             20 28 69 74 65 6d 29 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c   ┆ (item) do begin if equal_paraml┆
0x045200…045220 (18, 0, 14) 69 73 74 73 20 28 69 74 65 6d 29 20 74 68 65 6e 0a 65 78 69 74 6c 6f 6f 70 3b 0a 69 74 65 6d 20   ┆ists (item) then exitloop; item ┆
0x045220…045240             3a 3d 20 69 74 65 6d 5e 2e 6e 65 78 74 3b 0a 65 6e 64 3b 0a 73 65 61 72 63 68 5f 65 78 74 20 3a   ┆:= item^.next; end; search_ext :┆
0x045240…045260             3d 20 69 74 65 6d 3b 0a 65 6e 64 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆= item; end; -------------------┆
0x045260…045280             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 50 72 6f 63 65 64 75 72 65 20 73 65 74 5f 65   ┆--------------}  Procedure set_e┆
0x045280…0452a0             78 74 65 6e 73 69 6f 6e 20 28 20 76 61 72 20 70 61 74 68 3a 20 70 61 74 68 73 74 72 29 3b 0a 20   ┆xtension ( var path: pathstr);  ┆
0x0452a0…0452c0             20 76 61 72 0a 20 20 20 20 20 64 69 72 09 3a 20 20 64 69 72 73 74 72 3b 0a 20 20 20 20 20 6e 61   ┆ var      dir :  dirstr;      na┆
0x0452c0…0452e0             6d 65 09 3a 20 20 6e 61 6d 65 73 74 72 3b 0a 20 20 20 20 20 65 78 74 09 3a 20 20 65 78 74 73 74   ┆me :  namestr;      ext :  extst┆
0x0452e0…045300             72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 73 70 6c 69 74 20 28 20 70 61 74 68 2c 20 64 69 72 2c   ┆r;   begin   fsplit ( path, dir,┆
0x045300…045320             20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 69 66 20 65 78 74 20 3d 20 27 27 20 74 68 65 6e 0a   ┆ name, ext);   if ext = '' then ┆
0x045320…045340             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 70 61 74 68 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20   ┆    begin     path:= dir + name ┆
0x045340…045360             2b 20 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28   ┆+ src_extension;     if lookup (┆
0x045360…045380             20 70 61 74 68 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 65 6c 73 65   ┆ path) then  (*  ok  *)     else┆
0x045380…0453a0             0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 61 74 68 3a 3d 20 64 69 72 20 2b 20   ┆       begin       path:= dir + ┆
0x0453a0…0453c0             6e 61 6d 65 20 2b 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 20 20 20 20 69 66 20   ┆name + comp_extension;       if ┆
0x0453c0…0453e0             6c 6f 6f 6b 75 70 20 28 20 70 61 74 68 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a   ┆lookup ( path) then  (*  ok  *) ┆
0x0453e0…045400             20 20 20 20 20 20 65 6c 73 65 20 70 61 74 68 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 0a 20 20 20   ┆      else path:= dir + name    ┆
0x045400…045420 (18, 0, 15) 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 0c 0a 0a 50 72 6f 63   ┆   end     end   end;       Proc┆
0x045420…045440             65 64 75 72 65 20 63 68 65 63 6b 5f 70 61 72 61 6d 73 20 3b 0a 20 28 2a 20 20 72 65 61 64 20 6c   ┆edure check_params ;  (*  read l┆
0x045440…045460             69 73 74 20 6f 66 20 70 61 72 61 6d 65 74 65 72 73 0a 20 2d 2d 20 20 61 6e 64 20 63 68 65 63 6b   ┆ist of parameters  --  and check┆
0x045460…045480             20 74 68 61 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 65 78 69 73 74 0a 20 2d 2d 20 20 72 65   ┆ that source files exist  --  re┆
0x045480…0454a0             74 75 72 6e 73 20 6f 72 20 68 61 6c 74 73 20 74 68 65 20 70 72 6f 67 72 61 6d 0a 20 2d 2d 20 20   ┆turns or halts the program  --  ┆
0x0454a0…0454c0             47 6c 6f 62 61 6c 73 3a 20 20 73 6f 75 72 63 65 2c 20 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e 2c   ┆Globals:  source, src_extension,┆
0x0454c0…0454e0             20 6c 65 66 74 73 69 64 65 0a 20 2a 29 0a 0a 20 20 76 61 72 0a 20 20 20 20 20 64 69 72 09 3a 20   ┆ leftside  *)    var      dir : ┆
0x0454e0…045500             20 64 69 72 73 74 72 3b 0a 20 20 20 20 20 6e 61 6d 65 09 3a 20 20 6e 61 6d 65 73 74 72 3b 0a 20   ┆ dirstr;      name :  namestr;  ┆
0x045500…045520             20 20 20 20 65 78 74 09 3a 20 20 65 78 74 73 74 72 3b 0a 0a 20 20 62 65 67 69 6e 0a 20 20 69 66   ┆    ext :  extstr;    begin   if┆
0x045520…045540             20 28 20 70 61 72 61 6d 63 6f 75 6e 74 20 3d 20 30 20 29 20 6f 72 20 28 20 70 61 72 61 6d 73 74   ┆ ( paramcount = 0 ) or ( paramst┆
0x045540…045560             72 20 28 20 31 29 20 3d 20 27 48 45 4c 50 27 20 29 0a 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20   ┆r ( 1) = 'HELP' )   then begin  ┆
0x045560…045580             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 48 65 6c 70 20 69 6e 66 6f 72   ┆   writeln ( output, 'Help infor┆
0x045580…0455a0             6d 61 74 69 6f 6e 20 66 6f 72 20 43 72 6f 73 73 20 6c 69 6e 6b 65 72 20 3a 27 29 3b 0a 20 20 20   ┆mation for Cross linker :');    ┆
0x0455a0…0455c0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 27 54 68 65 20 70 72 6f 67   ┆ writeln ( output,     'The prog┆
0x0455c0…0455e0             72 61 6d 20 77 69 6c 6c 20 67 65 6e 65 72 61 74 65 20 61 20 52 43 35 30 30 30 20 63 6f 72 65 69   ┆ram will generate a RC5000 corei┆
0x0455e0…045600             6d 61 67 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 27 29 3b 0a 20 20 20 20 77 72 69 74   ┆mage containing all ');     writ┆
0x045600…045620 (18, 1, 1)  65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 27 74 68 65 20 73 70 65 63 69 66 69 65 64   ┆eln ( output,     'the specified┆
0x045620…045640             20 6f 62 6a 65 63 74 20 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 74 68 65 20 6e 65 63 65 73 73 61   ┆ object programs and the necessa┆
0x045640…045660             72 79 20 6c 69 62 72 61 72 79 20 72 6f 75 74 69 6e 65 73 2e 27 29 3b 0a 20 20 20 20 77 72 69 74   ┆ry library routines.');     writ┆
0x045660…045680             65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆eln ( output);     writeln ( out┆
0x045680…0456a0             70 75 74 2c 20 27 43 61 6c 6c 20 73 79 6e 74 61 78 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c   ┆put, 'Call syntax:');     writel┆
0x0456a0…0456c0             6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 42 4f 4f 54 4c 49 4e 4b 20 3c 70 61 72   ┆n ( output,       'BOOTLINK <par┆
0x0456c0…0456e0             61 6d 65 74 65 72 3e 20 2e 2e 2e 20 3c 70 61 72 61 6d 65 74 65 72 3e 27 29 3b 0a 20 20 20 20 77   ┆ameter> ... <parameter>');     w┆
0x0456e0…045700             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 3c 70 61   ┆riteln ( output,       '     <pa┆
0x045700…045720             72 61 6d 65 74 65 72 3e 20 3a 20 20 20 20 20 20 20 3d 3c 66 69 6c 65 70 61 74 68 3e 2d 3c 77 6f   ┆rameter> :       =<filepath>-<wo┆
0x045720…045740             72 6b 64 69 72 3e 20 20 20 6e 61 6d 65 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c   ┆rkdir>   name of destination fil┆
0x045740…045760             65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20   ┆e');     writeln ( output,      ┆
0x045760…045780             20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 3c 77 6f 72   ┆ '                         -<wor┆
0x045780…0457a0             6b 64 69 72 3e 20 20 20 69 73 20 6f 6e 6c 79 20 6e 65 65 64 65 64 20 69 66 20 6e 6f 74 20 63 75   ┆kdir>   is only needed if not cu┆
0x0457a0…0457c0             72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28   ┆rrent directory');     writeln (┆
0x0457c0…0457e0             20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ output,       '                ┆
0x0457e0…045800             20 20 20 20 20 20 20 20 20 50 41 52 41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 20 20 20 20 20   ┆         PARAMIN-<filepath>     ┆
0x045800…045820 (18, 1, 2)  20 6e 61 6d 65 20 6f 66 20 66 69 6c 65 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b   ┆ name of file with parameters');┆
0x045820…045840             0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20   ┆     writeln ( output,       '  ┆
0x045840…045860             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 4f 55 52 43 45 50 41 54   ┆                       SOURCEPAT┆
0x045860…045880             48 2d 3c 64 69 72 70 61 74 68 3e 20 20 20 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 20 66 6f   ┆H-<dirpath>    directory path fo┆
0x045880…0458a0             72 20 6f 62 6a 65 63 74 73 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆r objects');     writeln ( outpu┆
0x0458a0…0458c0             74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆t,       '                      ┆
0x0458c0…0458e0             20 20 20 53 54 41 52 54 2d 3c 68 65 78 3e 2d 3c 68 65 78 3e 20 20 20 20 20 20 20 73 65 74 20 62   ┆   START-<hex>-<hex>       set b┆
0x0458e0…045900             61 73 65 20 61 6e 64 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 27 29 3b 0a 20 20 20 20 77 72 69 74   ┆ase and displacement');     writ┆
0x045900…045920             65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20   ┆eln ( output,       '           ┆
0x045920…045940             20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 41 50 2d 3c 79 65 73 6e 6f 3e 20 20 20 20 20 20 20   ┆              MAP-<yesno>       ┆
0x045940…045960             20 20 20 20 20 20 6c 69 73 74 20 69 6e 63 6c 75 64 65 64 20 70 72 6f 67 72 61 6d 73 27 29 3b 0a   ┆      list included programs'); ┆
0x045960…045980             20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20   ┆    writeln ( output,       '   ┆
0x045980…0459a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 52 49 4e 54 2d 3c 79 65 73   ┆                      PRINT-<yes┆
0x0459a0…0459c0             6e 6f 6e 75 6d 62 3e 20 20 20 20 20 20 20 6c 69 73 74 20 6f 66 20 63 6f 72 65 69 6d 61 67 65 27   ┆nonumb>       list of coreimage'┆
0x0459c0…0459e0             29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27   ┆);     writeln ( output,       '┆
0x0459e0…045a00             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 49 42 2d 3c 66 69   ┆                         LIB-<fi┆
0x045a00…045a20 (18, 1, 3)  6c 65 70 61 74 68 3e 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 6c 69 62 72 61 72 79   ┆lepath>          name of library┆
0x045a20…045a40             20 66 69 6c 65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20   ┆ file');     writeln ( output,  ┆
0x045a40…045a60             20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c   ┆     '                         <┆
0x045a60…045a80             66 69 6c 65 70 61 74 68 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 73   ┆filepath>              name of s┆
0x045a80…045aa0             6f 75 72 63 65 20 66 69 6c 65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆ource file');     writeln ( outp┆
0x045aa0…045ac0             75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20   ┆ut);     writeln ( output,      ┆
0x045ac0…045ae0             20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f   ┆ '              Default extensio┆
0x045ae0…045b00             6e 20 66 6f 72 20 6c 69 62 72 61 72 79 20 61 6e 64 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 69   ┆n for library and object files i┆
0x045b00…045b20             73 20 22 27 2c 0a 09 09 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e 2c 20 27 22 20 20 27 29 3b 0a 20   ┆s "',   src_extension, '"  ');  ┆
0x045b20…045b40             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 20   ┆   writeln ( output);     write ┆
0x045b40…045b60             28 20 6f 75 74 70 75 74 2c 20 27 21 20 53 70 65 63 69 66 79 20 70 61 72 61 6d 65 74 65 72 73 27   ┆( output, '! Specify parameters'┆
0x045b60…045b80             29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 68 61   ┆);     writeln ( output);     ha┆
0x045b80…045ba0             6c 74 20 28 20 31 29 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 6c 65 66 74 73 69 64 65 20   ┆lt ( 1)     end;    if leftside ┆
0x045ba0…045bc0             3d 20 27 27 0a 20 20 74 68 65 6e 0a 20 20 20 20 6c 65 66 74 73 69 64 65 3a 3d 20 27 43 4f 52 45   ┆= ''   then     leftside:= 'CORE┆
0x045bc0…045be0             49 4d 41 47 27 20 2b 20 64 65 73 74 5f 65 78 74 65 6e 73 69 6f 6e 0a 20 20 65 6c 73 65 0a 20 20   ┆IMAG' + dest_extension   else   ┆
0x045be0…045c00             20 20 62 65 67 69 6e 0a 20 20 20 20 66 73 70 6c 69 74 20 28 20 6c 65 66 74 73 69 64 65 2c 20 64   ┆  begin     fsplit ( leftside, d┆
0x045c00…045c20 (18, 1, 4)  69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 20 20 69 66 20 65 78 74 20 3d 20 27 27 20   ┆ir, name, ext);     if ext = '' ┆
0x045c20…045c40             74 68 65 6e 20 20 6c 65 66 74 73 69 64 65 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 64 65   ┆then  leftside:= dir + name + de┆
0x045c40…045c60             73 74 5f 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 65 6e 64 3b 20 20 28   ┆st_extension     end;    end;  (┆
0x045c60…045c80             2a 20 20 63 68 65 63 6b 20 70 61 72 61 6d 73 20 20 2a 29 0a 0a 0c 0a 0a 28 2a 24 46 2b 2a 29 20   ┆*  check params  *)     (*$F+*) ┆
0x045c80…045ca0             50 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29 0a 62 65 67 69 6e 0a   ┆Procedure myexit; (*$F-*) begin ┆
0x045ca0…045cc0             0a 20 20 69 66 20 6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67   ┆   if mem_allocated then     beg┆
0x045cc0…045ce0             69 6e 0a 20 20 20 20 66 72 65 65 6d 65 6d 20 28 20 75 70 70 65 72 63 6f 72 65 2c 20 6d 61 78 69   ┆in     freemem ( uppercore, maxi┆
0x045ce0…045d00             6e 74 29 3b 0a 20 20 20 20 66 72 65 65 6d 65 6d 20 28 20 63 6f 72 65 2c 20 6d 61 78 69 6e 74 29   ┆nt);     freemem ( core, maxint)┆
0x045d00…045d20             3b 0a 20 20 20 20 6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20   ┆;     mem_allocated:= false     ┆
0x045d20…045d40             65 6e 64 3b 0a 0a 20 20 69 66 20 28 20 65 78 69 74 63 6f 64 65 20 3c 3e 20 30 20 29 20 61 6e 64   ┆end;    if ( exitcode <> 0 ) and┆
0x045d40…045d60             20 28 20 65 78 69 74 63 6f 64 65 20 3c 3e 20 32 35 34 20 29 20 74 68 65 6e 0a 20 20 20 20 62 65   ┆ ( exitcode <> 254 ) then     be┆
0x045d60…045d80             67 69 6e 0a 0a 20 20 20 20 69 66 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 20 74 68 65 6e 0a 20   ┆gin      if database_open then  ┆
0x045d80…045da0             20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 63 6c 6f 73 65 66 69 6c 65 20 28 20 64 61 74   ┆     begin       closefile ( dat┆
0x045da0…045dc0             66 29 3b 0a 20 20 20 20 20 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 3b 0a 20 20   ┆f);       closeindex ( inxf);   ┆
0x045dc0…045de0             20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 20 63 6c 6f 73   ┆    end;     if debug7 then clos┆
0x045de0…045e00             65 20 28 20 6c 6f 67 29 3b 0a 0a 20 20 20 20 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 20 20 28 20   ┆e ( log);      runtime_error  ( ┆
0x045e00…045e20 (18, 1, 5)  27 21 20 20 65 72 72 6f 72 20 20 69 6e 20 63 72 6f 73 6c 69 6e 6b 2e 20 27 29 3b 0a 20 20 20 20   ┆'!  error  in croslink. ');     ┆
0x045e20…045e40             65 78 69 74 63 6f 64 65 3a 3d 20 32 35 34 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 65 78   ┆exitcode:= 254     end;    if ex┆
0x045e40…045e60             69 74 73 61 76 65 20 3c 3e 20 61 64 64 72 20 28 20 6d 79 65 78 69 74 29 20 74 68 65 6e 20 65 78   ┆itsave <> addr ( myexit) then ex┆
0x045e60…045e80             69 74 70 72 6f 63 20 3a 3d 20 65 78 69 74 73 61 76 65 3b 0a 65 6e 64 3b 0a 0a 0a 0c 0a 0a 62 65   ┆itproc := exitsave; end;      be┆
0x045e80…045ea0             67 69 6e 09 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6d 61 69 6e 20 70 72 6f   ┆gin (*----------------- main pro┆
0x045ea0…045ec0             67 72 61 6d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a   ┆gram --------------------------*┆
0x045ec0…045ee0             29 0a 0a 65 78 69 74 73 61 76 65 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a 65 78 69 74 70 72 6f 63   ┆)  exitsave:= exitproc; exitproc┆
0x045ee0…045f00             3a 3d 20 61 64 64 72 20 28 20 6d 79 65 78 69 74 29 3b 0a 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f   ┆:= addr ( myexit);   writeln ( o┆
0x045f00…045f20             75 74 70 75 74 2c 20 27 27 3a 37 2c 20 27 43 72 6f 73 73 20 6c 69 6e 6b 65 72 20 20 72 65 6c 2e   ┆utput, '':7, 'Cross linker  rel.┆
0x045f20…045f40             20 25 52 25 2e 25 4c 25 2c 20 20 20 31 39 27 20 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63   ┆ %R%.%L%,   19' ,     copy ( scc┆
0x045f40…045f60             73 5f 64 61 74 65 2c 20 31 2c 20 32 29 2c 20 27 2e 27 2c 20 63 6f 70 79 20 28 20 73 63 63 73 5f   ┆s_date, 1, 2), '.', copy ( sccs_┆
0x045f60…045f80             64 61 74 65 2c 20 34 2c 20 32 29 2c 20 27 2e 27 2c 0a 20 20 20 20 63 6f 70 79 20 28 20 73 63 63   ┆date, 4, 2), '.',     copy ( scc┆
0x045f80…045fa0             73 5f 64 61 74 65 2c 20 37 2c 20 32 29 29 3b 0a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆s_date, 7, 2));  writeln ( outpu┆
0x045fa0…045fc0             74 29 3b 0a 0a 63 68 65 63 6b 5f 70 61 72 61 6d 73 20 3b 0a 0a 0a 20 20 20 20 20 28 2a 20 72 65   ┆t);  check_params ;        (* re┆
0x045fc0…045fe0             73 65 72 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 62 75 66 66 65 72 20 66 6f 72 20 63 6f 72 65 20   ┆serve a maximum buffer for core ┆
0x045fe0…046000             69 6d 61 67 65 20 2a 29 0a 69 66 20 6d 61 78 61 76 61 69 6c 20 3c 20 36 35 35 33 35 20 74 68 65   ┆image *) if maxavail < 65535 the┆
0x046000…046020 (18, 1, 6)  6e 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 34 2c 20 6d 61 78 61 76 61   ┆n call_error ( fatal, 24, maxava┆
0x046020…046040             69 6c 2c 20 27 27 29 3b 0a 67 65 74 6d 65 6d 20 28 20 63 6f 72 65 2c 20 6d 61 78 69 6e 74 29 3b   ┆il, ''); getmem ( core, maxint);┆
0x046040…046060             0a 67 65 74 6d 65 6d 20 28 20 75 70 70 65 72 63 6f 72 65 2c 20 6d 61 78 69 6e 74 29 3b 0a 6d 65   ┆ getmem ( uppercore, maxint); me┆
0x046060…046080             6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 3d 20 74 72 75 65 3b 0a 0a 28 2a 2d 2d 20 69 6e 69 74 69 61   ┆m_allocated:= true;  (*-- initia┆
0x046080…0460a0             6c 69 7a 65 20 64 61 74 61 73 74 72 75 63 74 75 72 65 73 20 69 6e 20 64 61 74 61 66 69 6c 65 20   ┆lize datastructures in datafile ┆
0x0460a0…0460c0             61 6e 64 20 69 6e 64 65 78 66 69 6c 65 09 2a 29 0a 70 6f 6c 79 66 69 6c 65 5f 63 6f 6e 66 69 67   ┆and indexfile *) polyfile_config┆
0x0460c0…0460e0             20 28 20 73 69 7a 65 6f 66 20 28 20 69 74 65 6d 5f 72 65 63 29 2c 20 61 6c 66 61 6c 65 6e 67 74   ┆ ( sizeof ( item_rec), alfalengt┆
0x0460e0…046100             68 2c 20 31 36 2c 20 31 38 2c 20 36 29 3b 0a 6d 61 6b 65 66 69 6c 65 20 20 28 20 64 61 74 66 2c   ┆h, 16, 18, 6); makefile  ( datf,┆
0x046100…046120             20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 64 61 74 5f 6e 61 6d 65 2c 20 73 69 7a 65 6f   ┆ plibwork_name + dat_name, sizeo┆
0x046120…046140             66 20 28 20 69 74 65 6d 5f 72 65 63 29 20 29 3b 0a 6d 61 6b 65 69 6e 64 65 78 20 28 20 69 6e 78   ┆f ( item_rec) ); makeindex ( inx┆
0x046140…046160             66 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 69 6e 78 5f 6e 61 6d 65 2c 20 61 6c 66   ┆f, plibwork_name + inx_name, alf┆
0x046160…046180             61 6c 65 6e 67 74 68 2c 20 64 75 70 6c 69 63 61 74 65 5f 6b 65 79 73 29 3b 0a 64 61 74 61 62 61   ┆alength, duplicate_keys); databa┆
0x046180…0461a0             73 65 5f 6f 70 65 6e 3a 3d 20 74 72 75 65 3b 0a 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20   ┆se_open:= true; if debug7 then  ┆
0x0461a0…0461c0             20 62 65 67 69 6e 0a 20 20 61 73 73 69 67 6e 20 28 20 6c 6f 67 2c 20 27 4c 4f 47 49 4e 44 45 58   ┆ begin   assign ( log, 'LOGINDEX┆
0x0461c0…0461e0             2e 54 58 54 27 29 3b 0a 20 20 72 65 77 72 69 74 65 20 28 20 6c 6f 67 29 3b 0a 20 20 65 6e 64 3b   ┆.TXT');   rewrite ( log);   end;┆
0x0461e0…046200             0a 6c 6f 67 6e 6f 3a 3d 20 30 3b 0a 6c 61 73 74 5f 65 78 74 65 72 6e 61 6c 20 3a 3d 20 30 3b 0a   ┆ logno:= 0; last_external := 0; ┆
0x046200…046220 (18, 1, 7)  66 69 6c 6c 63 68 61 72 20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 2c 20 61 6c 66 61 6c 65 6e 67   ┆fillchar ( name_of_ext, alfaleng┆
0x046220…046240             74 68 2c 20 30 29 3b 0a 0a 28 2a 20 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 6f 75 74 70   ┆th, 0);  (*  initialize the outp┆
0x046240…046260             75 74 20 6d 6f 64 75 6c 65 20 3a 20 20 2a 29 0a 0a 70 72 69 6e 74 5f 68 65 61 64 69 6e 67 20 3a   ┆ut module :  *)  print_heading :┆
0x046260…046280             3d 20 74 72 75 65 3b 0a 0a 6f 70 65 6e 5f 66 69 6c 65 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c   ┆= true;  open_file ( outbinfile,┆
0x046280…0462a0             20 6c 65 66 74 73 69 64 65 2c 20 66 6d 5f 77 72 69 74 65 20 29 3b 0a 0a 73 63 61 6e 20 3a 3d 20   ┆ leftside, fm_write );  scan := ┆
0x0462a0…0462c0             30 3b 0a 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3a 3d 20 30 3b 0a 61 6e 79 5f 69 6e 63 6c 75 64 65   ┆0; undef_count := 0; any_include┆
0x0462c0…0462e0             64 20 3a 3d 20 74 72 75 65 3b 09 28 2a 20 61 63 74 75 61 6c 6c 79 20 6e 6f 74 20 63 6f 72 72 65   ┆d := true; (* actually not corre┆
0x0462e0…046300             63 74 2c 20 62 75 74 20 68 65 6c 70 73 20 66 69 72 73 74 20 73 63 61 6e 20 2a 29 0a 66 6f 72 20   ┆ct, but helps first scan *) for ┆
0x046300…046320             70 3a 3d 31 20 74 6f 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 64 6f 20 73 75 6d 63 61 74 61 6c 6f 67   ┆p:=1 to no_of_sums do sumcatalog┆
0x046320…046340             5b 70 5d 3a 3d 20 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 70 72 65 6f 63 63 75 70 69 65 64 3a 3d 20 32   ┆[p]:=  all_ones; preoccupied:= 2┆
0x046340…046360             3b 20 28 2a 20 74 77 6f 20 62 79 74 65 73 20 61 72 65 20 6e 65 76 65 72 20 61 6c 6c 6f 63 61 74   ┆; (* two bytes are never allocat┆
0x046360…046380             65 64 20 2a 29 0a 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 3a 3d 20 20 24 46 46 46 45 3b 09 09 28   ┆ed *) top_of_module:=  $FFFE;  (┆
0x046380…0463a0             2a 20 20 20 20 2d 20 70 72 65 6f 63 63 75 70 69 65 64 3b 20 20 2a 29 0a 73 75 6d 69 6e 64 65 78   ┆*    - preoccupied;  *) sumindex┆
0x0463a0…0463c0             3a 3d 20 31 3b 0a 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 73 75 6d 3a 3d 20 61 6c 6c 5f 6f 6e   ┆:= 1; sumcount:= 1; sum:= all_on┆
0x0463c0…0463e0             65 73 3b 0a 69 6e 69 74 5f 63 72 63 74 61 62 3b 0a 0a 0a 28 2a 20 20 73 63 61 6e 20 74 68 65 20   ┆es; init_crctab;   (*  scan the ┆
0x0463e0…046400             70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 20 3a 20 20 2a 29 0a 72 65 70 65 61 74 0a 20 20 6c 61   ┆parameter list :  *) repeat   la┆
0x046400…046420 (18, 1, 8)  73 74 5f 73 63 61 6e 20 3a 3d 20 6e 6f 74 20 61 6e 79 5f 69 6e 63 6c 75 64 65 64 20 6f 72 20 28   ┆st_scan := not any_included or (┆
0x046420…046440             28 73 63 61 6e 20 3e 20 30 20 29 20 61 6e 64 20 28 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3d 20 30   ┆(scan > 0 ) and (undef_count = 0┆
0x046440…046460             29 29 3b 0a 20 20 61 6e 79 5f 69 6e 63 6c 75 64 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 61   ┆));   any_included := false;   a┆
0x046460…046480             66 74 65 72 5f 6c 69 62 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 28 2a 20 64 65 66 61 75 6c 74   ┆fter_lib := false;    (* default┆
0x046480…0464a0             20 76 61 6c 75 65 73 20 66 6f 72 20 6f 70 74 69 6f 6e 73 20 2a 29 0a 0a 20 20 73 74 61 72 74 5f   ┆ values for options *)    start_┆
0x0464a0…0464c0             6d 6f 64 75 6c 65 20 3a 3d 20 30 3b 0a 20 20 73 74 61 72 74 5f 64 69 73 70 6c 20 20 3a 3d 20 24   ┆module := 0;   start_displ  := $┆
0x0464c0…0464e0             31 30 30 3b 09 09 28 2a 20 20 20 3d 20 32 35 36 20 20 20 2a 29 0a 20 20 6d 61 70 5f 6c 61 64 64   ┆100;  (*   = 256   *)   map_ladd┆
0x0464e0…046500             72 20 28 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 2c 20 74   ┆r ( start_module, start_displ, t┆
0x046500…046520             6f 70 5f 6f 66 5f 62 69 6e 29 3b 0a 20 20 70 72 69 6e 74 5f 63 6f 64 65 20 3a 3d 20 66 61 6c 73   ┆op_of_bin);   print_code := fals┆
0x046520…046540             65 3b 0a 20 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 20 3a 3d 20 31 36 3b 09 09 28 2a 20 64 65   ┆e;   print_pr_line := 16;  (* de┆
0x046540…046560             66 61 75 6c 74 3a 20 31 36 20 77 6f 72 64 73 20 70 72 20 6c 69 6e 65 20 2a 29 0a 20 20 6d 61 70   ┆fault: 16 words pr line *)   map┆
0x046560…046580             5f 79 65 73 20 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 0a 20   ┆_yes := true;    if false then  ┆
0x046580…0465a0             20 62 65 67 69 6e 0a 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3a 3d 20 30 3b 0a 0a 20 20 77 68   ┆ begin   param_index := 0;    wh┆
0x0465a0…0465c0             69 6c 65 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3c 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d   ┆ile param_index < paramlist.item┆
0x0465c0…0465e0             73 20 64 6f 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 69 6e 63 20 28 20 70 61 72 61 6d 5f 69 6e 64   ┆s do    begin    inc ( param_ind┆
0x0465e0…046600             65 78 29 3b 0a 20 20 20 70 61 72 61 6d 74 78 74 3a 3d 20 67 65 74 70 61 72 61 6d 20 28 20 70 61   ┆ex);    paramtxt:= getparam ( pa┆
0x046600…046620 (18, 1, 9)  72 61 6d 5f 69 6e 64 65 78 20 29 3b 0a 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆ram_index );    writeln ( output┆
0x046620…046640             2c 20 27 20 70 61 72 61 6d 20 27 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 3a 33 2c 20 27 3a 20 22   ┆, ' param ', param_index:3, ': "┆
0x046640…046660             27 2c 20 70 61 72 61 6d 74 78 74 2c 20 27 22 27 29 3b 0a 20 20 20 65 6e 64 3b 20 20 28 2a 20 77   ┆', paramtxt, '"');    end;  (* w┆
0x046660…046680             68 69 6c 65 20 20 2a 29 0a 20 20 65 6e 64 3b 20 20 20 28 2a 20 20 64 65 62 75 67 20 20 2a 29 0a   ┆hile  *)   end;   (*  debug  *) ┆
0x046680…0466a0             0a 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3a 3d 20 30 3b 0a 0a 20 20 73 63 61 6e 20 3a 3d 20   ┆   param_index := 0;    scan := ┆
0x0466a0…0466c0             73 63 61 6e 20 2b 20 31 3b 0a 20 20 69 66 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20   ┆scan + 1;   if last_scan then   ┆
0x0466c0…0466e0             20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20   ┆  begin     writeln ( output);  ┆
0x0466e0…046700             20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 29 3b 0a 20   ┆   write ( output, '':margin);  ┆
0x046700…046720             20 20 20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3d 20 30 20 74 68 65 6e 20 77 72 69 74 65   ┆   if undef_count = 0 then write┆
0x046720…046740             20 28 20 6f 75 74 70 75 74 2c 20 27 4c 69 6e 6b 69 6e 67 20 73 6f 6c 76 65 64 27 29 0a 20 20 20   ┆ ( output, 'Linking solved')    ┆
0x046740…046760             20 65 6c 73 65 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 4c 69 6e 6b 69 6e 67   ┆ else write ( output, '! Linking┆
0x046760…046780             20 75 6e 63 6f 6d 70 6c 65 74 65 64 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆ uncompleted');     writeln ( ou┆
0x046780…0467a0             74 70 75 74 2c 20 27 20 69 6e 3a 20 27 2c 20 73 63 61 6e 2c 20 27 20 73 63 61 6e 73 2e 27 29 3b   ┆tput, ' in: ', scan, ' scans.');┆
0x0467a0…0467c0             0a 20 20 20 20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20   ┆     if undef_count <> 0 then   ┆
0x0467c0…0467e0             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 69 74 65 6d 73 3b 0a 20 20 20   ┆    begin       print_items;    ┆
0x0467e0…046800             20 20 20 6d 61 70 5f 79 65 73 3a 3d 20 66 61 6c 73 65 3b 09 09 09 28 2a 20 20 64 6f 6e 74 20 70   ┆   map_yes:= false;   (*  dont p┆
0x046800…046820 (18, 1, 10) 72 69 6e 74 20 6d 61 70 09 2a 29 0a 20 20 20 20 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 3a 3d 20   ┆rint map *)       param_index:= ┆
0x046820…046840             70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 09 28 2a 20 20 73 6b 69 70 20 6c 69 6e 6b 69 6e 67   ┆paramlist.items (*  skip linking┆
0x046840…046860             09 2a 29 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 28 2a 20 69 6e 69   ┆ *)       end     end;    (* ini┆
0x046860…046880             74 69 61 6c 69 7a 65 20 6c 6f 6f 70 2d 76 61 72 69 61 62 6c 65 73 20 2a 29 0a 0a 20 20 66 69 72   ┆tialize loop-variables *)    fir┆
0x046880…0468a0             73 74 5f 6f 66 5f 6d 6f 64 75 6c 65 20 3a 3d 20 32 3b 0a 20 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66   ┆st_of_module := 2;   no_of_obj_f┆
0x0468a0…0468c0             69 6c 65 73 20 3a 3d 20 30 3b 0a 0a 20 77 68 69 6c 65 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3c   ┆iles := 0;   while param_index <┆
0x0468c0…0468e0             20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 69 6e   ┆ paramlist.items do   begin   in┆
0x0468e0…046900             63 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 29 3b 0a 20 20 70 61 72 61 6d 74 78 74 3a 3d 20 67   ┆c ( param_index);   paramtxt:= g┆
0x046900…046920             65 74 70 61 72 61 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 29 3b 0a 0a 20 20 6c 69 62 72   ┆etparam ( param_index );    libr┆
0x046920…046940             61 72 79 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 73 6f 75 72 63 65 5f 66 69 6c 65 20 3a 3d 20   ┆ary := false;    source_file := ┆
0x046940…046960             66 61 6c 73 65 3b 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 73 74 61 72 74 2d 27 2c 20 70 61 72   ┆false;    if pos ( 'start-', par┆
0x046960…046980             61 6d 74 78 74 29 20 3d 20 31 20 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20   ┆amtxt) = 1  then     begin      ┆
0x046980…0469a0             28 2a 20 20 67 65 74 20 74 68 65 20 6d 6f 64 75 6c 65 20 6e 6f 2e 20 3a 20 20 2a 29 0a 0a 20 20   ┆(*  get the module no. :  *)    ┆
0x0469a0…0469c0             20 20 74 78 74 3a 3d 20 63 6f 70 79 20 28 20 70 61 72 61 6d 74 78 74 2c 20 37 2c 20 32 30 29 3b   ┆  txt:= copy ( paramtxt, 7, 20);┆
0x0469c0…0469e0             0a 20 20 20 20 69 66 20 28 74 78 74 5b 31 5d 20 3d 20 27 68 27 29 20 6f 72 20 28 20 74 78 74 5b   ┆     if (txt[1] = 'h') or ( txt[┆
0x0469e0…046a00             31 5d 20 3d 20 27 24 27 29 20 74 68 65 6e 20 63 6f 6e 76 65 72 74 5f 74 6f 5f 68 65 78 20 28 20   ┆1] = '$') then convert_to_hex ( ┆
0x046a00…046a20 (18, 1, 11) 74 78 74 2c 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29 0a 20 20 20 20 65 6c 73 65 20 76 61 6c 20   ┆txt, start_module)     else val ┆
0x046a20…046a40             28 20 74 78 74 2c 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 77 72 6b 29 3b 0a 0a 20 20 20 20   ┆( txt, start_module, wrk);      ┆
0x046a40…046a60             69 66 20 28 73 74 61 72 74 5f 6d 6f 64 75 6c 65 20 3c 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 20   ┆if (start_module < first_mem_no ┆
0x046a60…046a80             29 20 6f 72 20 28 32 35 36 20 3c 3d 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29 20 74 68 65 6e 0a   ┆) or (256 <= start_module) then ┆
0x046a80…046aa0             20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 35 2c 20 70 61   ┆      call_error ( fatal, 25, pa┆
0x046aa0…046ac0             72 61 6d 5f 69 6e 64 65 78 20 2c 20 27 27 29 3b 0a 0a 20 20 20 20 73 74 61 72 74 5f 6d 6f 64 75   ┆ram_index , '');      start_modu┆
0x046ac0…046ae0             6c 65 20 3a 3d 20 28 73 74 61 72 74 5f 6d 6f 64 75 6c 65 20 6d 6f 64 20 36 34 29 20 64 69 76 20   ┆le := (start_module mod 64) div ┆
0x046ae0…046b00             32 3b 0a 0a 0a 20 20 20 20 28 2a 20 20 67 65 74 20 74 68 65 20 64 69 73 70 6c 61 63 65 6d 65 6e   ┆2;       (*  get the displacemen┆
0x046b00…046b20             74 20 3a 20 20 2a 29 0a 0a 20 20 20 20 70 3a 3d 20 70 6f 73 20 28 20 27 2d 27 2c 20 74 78 74 29   ┆t :  *)      p:= pos ( '-', txt)┆
0x046b20…046b40             3b 0a 20 20 20 20 69 66 20 70 20 3d 20 30 20 74 68 65 6e 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20   ┆;     if p = 0 then  call_error ┆
0x046b40…046b60             28 20 66 61 74 61 6c 2c 20 39 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 20 20 6e 6f 20 64   ┆( fatal, 9, param_index, '  no d┆
0x046b60…046b80             69 73 70 6c 61 63 65 6d 65 6e 74 20 27 29 3b 0a 0a 20 20 20 20 64 65 6c 65 74 65 20 28 20 74 78   ┆isplacement ');      delete ( tx┆
0x046b80…046ba0             74 2c 20 31 2c 20 70 29 3b 0a 20 20 20 20 69 66 20 28 20 74 78 74 5b 31 5d 20 3d 20 27 68 27 29   ┆t, 1, p);     if ( txt[1] = 'h')┆
0x046ba0…046bc0             20 6f 72 20 28 20 74 78 74 5b 31 5d 20 3d 20 27 24 27 29 20 74 68 65 6e 20 20 63 6f 6e 76 65 72   ┆ or ( txt[1] = '$') then  conver┆
0x046bc0…046be0             74 5f 74 6f 5f 68 65 78 20 28 20 74 78 74 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 20 29 0a 20 20   ┆t_to_hex ( txt, start_displ )   ┆
0x046be0…046c00             20 20 20 65 6c 73 65 20 76 61 6c 20 28 20 74 78 74 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 2c 20   ┆   else val ( txt, start_displ, ┆
0x046c00…046c20 (18, 1, 12) 77 72 6b 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 20 77 72 69 74 65 6c 6e   ┆wrk);     if debug1 then writeln┆
0x046c20…046c40             20 28 20 27 20 64 69 73 70 6c 20 3a 20 24 27 2c 20 73 74 72 68 65 78 28 73 74 61 72 74 5f 64 69   ┆ ( ' displ : $', strhex(start_di┆
0x046c40…046c60             73 70 6c 29 2c 20 27 20 20 20 27 2c 20 74 78 74 29 3b 0a 0a 20 20 20 20 6d 61 70 5f 6c 61 64 64   ┆spl), '   ', txt);      map_ladd┆
0x046c60…046c80             72 20 28 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 2c 20 73   ┆r ( start_module, start_displ, s┆
0x046c80…046ca0             74 61 72 74 5f 61 64 64 72 29 3b 0a 20 20 20 20 77 69 74 68 20 74 6f 70 5f 6f 66 5f 62 69 6e 20   ┆tart_addr);     with top_of_bin ┆
0x046ca0…046cc0             64 6f 0a 20 20 20 20 20 69 66 20 28 73 74 61 72 74 5f 61 64 64 72 20 2e 20 62 61 73 65 20 3c 20   ┆do      if (start_addr . base < ┆
0x046cc0…046ce0             62 61 73 65 20 29 20 6f 72 0a 20 20 20 20 20 28 28 73 74 61 72 74 5f 61 64 64 72 20 2e 20 62 61   ┆base ) or      ((start_addr . ba┆
0x046ce0…046d00             73 65 20 3d 20 62 61 73 65 29 20 61 6e 64 20 28 73 74 61 72 74 5f 61 64 64 72 20 2e 20 64 69 73   ┆se = base) and (start_addr . dis┆
0x046d00…046d20             70 20 3c 20 64 69 73 70 29 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f   ┆p < disp)) then        call_erro┆
0x046d20…046d40             72 20 28 20 66 61 74 61 6c 2c 20 39 20 28 2a 20 69 6c 6c 65 67 61 6c 20 76 61 6c 75 65 20 6f 66   ┆r ( fatal, 9 (* illegal value of┆
0x046d40…046d60             20 73 74 61 72 74 20 70 61 72 61 6d 20 2a 29 2c 0a 20 20 20 20 20 20 20 70 61 72 61 6d 5f 69 6e   ┆ start param *),        param_in┆
0x046d60…046d80             64 65 78 2c 20 73 74 72 68 65 78 20 28 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29 20 2b 20 27 3a 27   ┆dex, strhex (start_module) + ':'┆
0x046d80…046da0             20 2b 20 73 74 72 68 65 78 20 28 20 73 74 61 72 74 5f 64 69 73 70 6c 29 29 3b 0a 20 20 20 20 69   ┆ + strhex ( start_displ));     i┆
0x046da0…046dc0             66 20 6c 61 73 74 5f 73 63 61 6e 20 61 6e 64 20 28 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65   ┆f last_scan and ( no_of_obj_file┆
0x046dc0…046de0             73 20 3e 20 31 20 29 20 74 68 65 6e 20 6f 75 74 5f 73 75 6d 3b 0a 0a 20 20 20 20 74 6f 70 5f 6f   ┆s > 1 ) then out_sum;      top_o┆
0x046de0…046e00             66 5f 62 69 6e 20 3a 3d 20 73 74 61 72 74 5f 61 64 64 72 3b 0a 20 20 20 20 28 2a 20 66 6f 72 63   ┆f_bin := start_addr;     (* forc┆
0x046e00…046e20 (18, 1, 13) 65 20 73 63 61 6e 6e 69 6e 67 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 6f 72 64 65 72 20 74 6f   ┆e scanning all files in order to┆
0x046e20…046e40             20 61 64 6a 75 73 74 20 74 6f 70 5f 6f 66 5f 62 69 6e 20 2a 29 0a 20 20 20 20 61 66 74 65 72 5f   ┆ adjust top_of_bin *)     after_┆
0x046e40…046e60             6c 69 62 20 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 20 20 69 66 20 66 61 6c 73 65 20 7b 64 65 62 75   ┆lib := true;      if false {debu┆
0x046e60…046e80             67 7d 20 74 68 65 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆g} then      writeln ( output, '┆
0x046e80…046ea0             20 20 20 20 53 54 41 52 54 20 20 27 2c 20 73 74 72 68 65 78 20 28 20 73 74 61 72 74 5f 6d 6f 64   ┆    START  ', strhex ( start_mod┆
0x046ea0…046ec0             75 6c 65 29 2c 20 27 3a 27 2c 20 73 74 72 68 65 78 20 28 20 73 74 61 72 74 5f 64 69 73 70 6c 29   ┆ule), ':', strhex ( start_displ)┆
0x046ec0…046ee0             29 3b 0a 0a 20 20 65 6e 64 20 28 2a 20 20 70 61 72 61 6d 20 3d 20 27 73 74 61 72 74 2d 27 20 2e   ┆);    end (*  param = 'start-' .┆
0x046ee0…046f00             2e 2e 2e 2e 2e 2e 20 20 2a 29 0a 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27   ┆......  *)    else    if pos ( '┆
0x046f00…046f20             70 72 69 6e 74 2d 27 2c 20 70 61 72 61 6d 74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20   ┆print-', paramtxt) = 1 then     ┆
0x046f20…046f40             62 65 67 69 6e 0a 20 20 20 20 69 66 20 66 61 6c 73 65 20 7b 64 65 62 75 67 7d 20 74 68 65 6e 20   ┆begin     if false {debug} then ┆
0x046f40…046f60             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 50 52 49 4e 54 20 20 27 2c 20   ┆ writeln ( output, '  PRINT  ', ┆
0x046f60…046f80             70 61 72 61 6d 74 78 74 29 3b 0a 20 20 20 20 74 78 74 3a 3d 20 63 6f 70 79 20 28 20 70 61 72 61   ┆paramtxt);     txt:= copy ( para┆
0x046f80…046fa0             6d 74 78 74 2c 20 37 2c 20 32 30 29 3b 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 79 65 73 27   ┆mtxt, 7, 20);     if pos ( 'yes'┆
0x046fa0…046fc0             2c 20 74 78 74 20 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆, txt ) > 0 then       begin    ┆
0x046fc0…046fe0             20 20 20 70 72 69 6e 74 5f 63 6f 64 65 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 70 3a 3d 20   ┆   print_code:= true;       p:= ┆
0x046fe0…047000             30 3b 0a 20 20 20 20 20 20 76 61 6c 20 28 20 63 6f 70 79 20 28 20 74 78 74 2c 20 35 2c 20 32 30   ┆0;       val ( copy ( txt, 5, 20┆
0x047000…047020 (18, 1, 14) 29 2c 20 70 2c 20 77 72 6b 29 3b 0a 20 20 20 20 20 20 69 66 20 70 20 3e 20 30 20 74 68 65 6e 20   ┆), p, wrk);       if p > 0 then ┆
0x047020…047040             70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 3a 3d 20 70 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20   ┆print_pr_line:= p       end     ┆
0x047040…047060             65 6c 73 65 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 6e 6f 27 2c 20 74 78 74 20 29 20 3e 20   ┆else     if pos ( 'no', txt ) > ┆
0x047060…047080             30 20 20 74 68 65 6e 20 70 72 69 6e 74 5f 63 6f 64 65 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65   ┆0  then print_code:= false     e┆
0x047080…0470a0             6c 73 65 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 31 34   ┆lse       call_error ( fatal, 14┆
0x0470a0…0470c0             2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 70 72 69 6e 74 2d 27 20 2b 20 74 78 74 29 3b 0a   ┆, param_index, 'print-' + txt); ┆
0x0470c0…0470e0             0a 20 20 20 20 69 66 20 66 61 6c 73 65 20 7b 64 65 62 75 67 7d 20 74 68 65 6e 20 20 77 72 69 74   ┆     if false {debug} then  writ┆
0x0470e0…047100             65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 50 52 49 4e 54 20 20 27 2c 20 70 72 69 6e 74   ┆eln ( output, '  PRINT  ', print┆
0x047100…047120             5f 63 6f 64 65 3a 38 2c 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 3a 36 29 3b 0a 0a 20 20 20 20   ┆_code:8, print_pr_line:6);      ┆
0x047120…047140             65 6e 64 20 28 2a 20 61 20 3d 20 27 70 72 69 6e 74 27 20 2e 2e 2e 2e 2e 2e 2e 20 20 2a 29 0a 0a   ┆end (* a = 'print' .......  *)  ┆
0x047140…047160             20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 6c 69 62 2d 27 2c 20 70 61 72 61 6d   ┆  else    if pos ( 'lib-', param┆
0x047160…047180             74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 64 65 6c 65   ┆txt) = 1 then     begin     dele┆
0x047180…0471a0             74 65 20 28 20 70 61 72 61 6d 74 78 74 2c 20 31 2c 20 34 29 3b 0a 20 20 20 20 73 65 74 5f 65 78   ┆te ( paramtxt, 1, 4);     set_ex┆
0x0471a0…0471c0             74 65 6e 73 69 6f 6e 20 28 20 70 61 72 61 6d 74 78 74 29 3b 0a 20 20 20 20 6c 69 62 72 61 72 79   ┆tension ( paramtxt);     library┆
0x0471c0…0471e0             20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 73 6f 75 72 63 65 5f 66 69 6c 65 20 3a 3d 20 74 72 75   ┆ := true;     source_file := tru┆
0x0471e0…047200             65 3b 0a 20 20 20 20 65 6e 64 20 28 2a 20 61 20 3d 20 27 6c 69 62 27 20 2e 2e 2e 2e 2e 2e 2e 20   ┆e;     end (* a = 'lib' ....... ┆
0x047200…047220 (18, 1, 15) 2a 29 0a 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 6d 61 70 2d 27 2c 20 70   ┆*)    else    if pos ( 'map-', p┆
0x047220…047240             61 72 61 6d 74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆aramtxt) = 1 then     begin     ┆
0x047240…047260             20 74 78 74 3a 3d 20 63 6f 70 79 20 28 20 70 61 72 61 6d 74 78 74 2c 20 35 2c 20 32 30 29 3b 0a   ┆ txt:= copy ( paramtxt, 5, 20); ┆
0x047260…047280             20 20 20 20 69 66 20 70 6f 73 20 28 20 79 65 73 2c 20 74 78 74 20 29 20 3e 20 30 20 74 68 65 6e   ┆    if pos ( yes, txt ) > 0 then┆
0x047280…0472a0             20 20 20 6d 61 70 5f 79 65 73 3a 3d 20 74 72 75 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69   ┆   map_yes:= true     else     i┆
0x0472a0…0472c0             66 20 70 6f 73 20 28 20 6e 6f 2c 20 74 78 74 20 29 20 3e 20 30 20 74 68 65 6e 20 20 20 6d 61 70   ┆f pos ( no, txt ) > 0 then   map┆
0x0472c0…0472e0             5f 79 65 73 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 63 61 6c 6c   ┆_yes:= false     else       call┆
0x0472e0…047300             5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 30 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c   ┆_error ( fatal, 20, param_index,┆
0x047300…047320             20 27 27 29 3b 0a 0a 20 20 20 20 65 6e 64 20 28 2a 20 61 20 3d 20 27 6d 61 70 27 20 2e 2e 2e 2e   ┆ '');      end (* a = 'map' ....┆
0x047320…047340             2e 2e 2e 20 2a 29 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 64 65 62 75 67   ┆... *)   else    if pos ( 'debug┆
0x047340…047360             2d 27 2c 20 70 61 72 61 6d 74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e   ┆-', paramtxt) = 1 then     begin┆
0x047360…047380             0a 20 20 20 20 63 61 73 65 20 70 61 72 61 6d 74 78 74 5b 37 5d 20 6f 66 0a 20 20 20 20 27 30 27   ┆     case paramtxt[7] of     '0'┆
0x047380…0473a0             3a 20 20 64 65 62 75 67 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 31 27 3a 20 20 64 65 62 75 67   ┆:  debug:= true;     '1':  debug┆
0x0473a0…0473c0             31 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 32 27 3a 20 20 64 65 62 75 67 32 3a 3d 20 74 72 75   ┆1:= true;     '2':  debug2:= tru┆
0x0473c0…0473e0             65 3b 0a 20 20 20 20 27 33 27 3a 20 20 64 65 62 75 67 33 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20   ┆e;     '3':  debug3:= true;     ┆
0x0473e0…047400             27 34 27 3a 20 20 64 65 62 75 67 34 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 35 27 3a 20 20 64   ┆'4':  debug4:= true;     '5':  d┆
0x047400…047420 (19, 0, 1)  65 62 75 67 63 61 74 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 36 27 3a 20 20 64 65 62 75 67 36   ┆ebugcat:= true;     '6':  debug6┆
0x047420…047440             3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 37 27 3a 20 20 64 65 62 75 67 37 3a 3d 20 74 72 75 65   ┆:= true;     '7':  debug7:= true┆
0x047440…047460             3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 0a 0a 20 20 65 6c 73 65 0a 0a 20 20 7b 2d 2d   ┆;     end     end    else    {--┆
0x047460…047480             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 6f 6c 64 0a 20 20 69 66 20 61 20   ┆-------------------  old   if a ┆
0x047480…0474a0             3d 20 27 62 69 6e 64 27 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 72 20 3a 3d 20 66 70 5f   ┆= 'bind' then   begin   r := fp_┆
0x0474a0…0474c0             73 79 73 74 65 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 2b 20 31 2c 20 69 2c 20 61 20 29   ┆system ( param_index + 1, i, a )┆
0x0474c0…0474e0             3b 0a 20 20 69 66 20 72 20 6d 6f 64 20 32 35 36 20 3c 3e 20 31 30 20 74 68 65 6e 0a 20 20 6d 65   ┆;   if r mod 256 <> 10 then   me┆
0x0474e0…047500             73 73 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 31 2c 20 70 61 72 61 6d 5f 69 6e 64 65   ┆ss_error ( fatal, 21, param_inde┆
0x047500…047520             78 2c 20 69 74 65 6d 20 29 3b 0a 20 20 69 66 20 28 61 3d 79 65 73 29 20 6f 72 20 28 61 3d 6e 6f   ┆x, item );   if (a=yes) or (a=no┆
0x047520…047540             29 20 74 68 65 6e 0a 20 20 62 69 6e 64 5f 79 65 73 20 3a 3d 20 61 20 3d 20 79 65 73 0a 20 20 65   ┆) then   bind_yes := a = yes   e┆
0x047540…047560             6c 73 65 0a 20 20 6d 65 73 73 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 31 2c 20 70 61   ┆lse   mess_error ( fatal, 21, pa┆
0x047560…047580             72 61 6d 5f 69 6e 64 65 78 2c 20 69 74 65 6d 20 29 3b 20 28 2a 20 79 65 73 20 6f 72 20 6e 6f 20   ┆ram_index, item ); (* yes or no ┆
0x047580…0475a0             65 78 63 70 65 63 74 65 64 20 2a 29 0a 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3a 3d 20 70 61   ┆excpected *)   param_index := pa┆
0x0475a0…0475c0             72 61 6d 5f 69 6e 64 65 78 20 2b 20 32 3b 0a 20 20 65 6e 64 20 20 20 28 2a 20 61 20 3d 20 27 62   ┆ram_index + 2;   end   (* a = 'b┆
0x0475c0…0475e0             69 6e 64 27 20 2a 29 0a 0a 20 20 65 6c 73 65 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ind' *)    else   --------------┆
0x0475e0…047600             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 2d 27 2c 20 70   ┆------------}    if pos ( '-', p┆
0x047600…047620 (19, 0, 2)  61 72 61 6d 74 78 74 20 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f   ┆aramtxt ) > 0 then     call_erro┆
0x047620…047640             72 20 28 20 66 61 74 61 6c 2c 20 31 36 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 27 29 20   ┆r ( fatal, 16, param_index, '') ┆
0x047640…047660             28 2a 20 75 6e 6b 6e 6f 77 6e 20 6f 70 74 69 6f 6e 2d 6e 61 6d 65 20 2a 29 0a 20 20 65 6c 73 65   ┆(* unknown option-name *)   else┆
0x047660…047680             0a 20 20 20 20 73 6f 75 72 63 65 5f 66 69 6c 65 3a 3d 20 74 72 75 65 3b 0a 0a 0a 20 20 69 66 20   ┆     source_file:= true;     if ┆
0x047680…0476a0             73 6f 75 72 63 65 5f 66 69 6c 65 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 0a 20 20 28 2a 20 20   ┆source_file then   begin    (*  ┆
0x0476a0…0476c0             27 70 61 72 61 6d 74 78 74 27 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 6e 61 6d 65   ┆'paramtxt' must contain the name┆
0x0476c0…0476e0             20 6f 66 20 61 6e 20 6f 62 6a 65 63 74 20 70 72 6f 67 72 61 6d 20 28 20 66 69 6c 65 20 29 2c 0a   ┆ of an object program ( file ), ┆
0x0476e0…047700             20 20 77 68 69 63 68 20 68 61 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68   ┆  which has to be included in th┆
0x047700…047720             65 20 62 69 6e 61 72 79 20 70 72 6f 67 61 6d 20 28 20 66 69 6c 65 20 29 20 2e 20 20 2a 29 0a 0a   ┆e binary progam ( file ) .  *)  ┆
0x047720…047740             20 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 20 3a 3d 20 70 61 72 61 6d 74 78 74 3b 0a 20 20 73   ┆  obj_file_name := paramtxt;   s┆
0x047740…047760             65 74 5f 65 78 74 65 6e 73 69 6f 6e 20 28 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 29 3b 0a 20   ┆et_extension ( obj_file_name);  ┆
0x047760…047780             20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 3a 3d 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69   ┆ no_of_obj_files := no_of_obj_fi┆
0x047780…0477a0             6c 65 73 20 2b 20 31 3b 0a 0a 20 20 28 2a 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3a 20 6f 6d 69   ┆les + 1;    (* optimization: omi┆
0x0477a0…0477c0             74 20 73 63 61 6e 6e 69 6e 67 20 74 68 65 20 28 6e 6f 72 6d 61 6c 29 20 73 6f 75 72 63 65 66 69   ┆t scanning the (normal) sourcefi┆
0x0477c0…0477e0             6c 65 73 20 65 78 63 65 70 74 20 20 20 2a 29 0a 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20   ┆les except   *)   (*            ┆
0x0477e0…047800             20 20 20 64 75 72 69 6e 67 20 74 68 65 20 76 65 72 79 20 66 69 72 73 74 20 61 6e 64 20 6c 61 73   ┆   during the very first and las┆
0x047800…047820 (19, 0, 3)  74 20 73 63 61 6e 73 2c 20 61 6e 64 20 61 66 74 65 72 20 2a 29 0a 20 20 28 2a 20 20 20 20 20 20   ┆t scans, and after *)   (*      ┆
0x047820…047840             20 20 20 20 20 20 20 20 20 61 6e 79 20 6c 69 62 72 61 72 79 2d 66 69 6c 65 73 20 20 20 20 20 20   ┆         any library-files      ┆
0x047840…047860             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29 0a 0a 20 20 61   ┆                         *)    a┆
0x047860…047880             66 74 65 72 5f 6c 69 62 20 3a 3d 20 61 66 74 65 72 5f 6c 69 62 20 6f 72 20 6c 69 62 72 61 72 79   ┆fter_lib := after_lib or library┆
0x047880…0478a0             3b 0a 20 20 69 66 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 3d 20 31 20 74 68 65 6e 0a   ┆;   if no_of_obj_files = 1 then ┆
0x0478a0…0478c0             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 28 73 63 61 6e 20 3d 20 31 29 20 6f 72 20 6c   ┆    begin     if (scan = 1) or l┆
0x0478c0…0478e0             61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20 73 74   ┆ast_scan then     map_laddr ( st┆
0x0478e0…047900             61 72 74 5f 6d 6f 64 75 6c 65 2c 20 73 74 61 72 74 5f 64 69 73 70 6c 2c 20 73 74 61 72 74 5f 61   ┆art_module, start_displ, start_a┆
0x047900…047920             64 64 72 29 3b 0a 20 20 20 20 74 6f 70 5f 6f 66 5f 62 69 6e 20 3a 3d 20 73 74 61 72 74 5f 61 64   ┆ddr);     top_of_bin := start_ad┆
0x047920…047940             64 72 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 28 73 63 61 6e 20 3d 20 31 29 20 6f 72   ┆dr;     end;    if (scan = 1) or┆
0x047940…047960             20 6c 61 73 74 5f 73 63 61 6e 20 6f 72 20 61 66 74 65 72 5f 6c 69 62 20 74 68 65 6e 0a 20 20 20   ┆ last_scan or after_lib then    ┆
0x047960…047980             20 62 65 67 69 6e 09 09 28 2a 20 20 72 65 61 64 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 20 2a 29   ┆ begin  (*  read object file  *)┆
0x047980…0479a0             0a 0a 20 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 6f 62 6a   ┆    open_file ( in_obj_file, obj┆
0x0479a0…0479c0             5f 66 69 6c 65 5f 6e 61 6d 65 2c 20 66 6d 5f 72 65 61 64 20 29 3b 0a 20 20 69 66 20 73 63 61 6e   ┆_file_name, fm_read );   if scan┆
0x0479c0…0479e0             20 3d 20 31 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a   ┆ = 1 then  writeln ( output, '':┆
0x0479e0…047a00             6d 61 72 67 69 6e 2c 20 27 20 20 72 65 61 64 20 66 69 6c 65 20 3a 20 27 2c 20 6f 62 6a 5f 66 69   ┆margin, '  read file : ', obj_fi┆
0x047a00…047a20 (19, 0, 4)  6c 65 5f 6e 61 6d 65 29 3b 0a 0a 20 20 28 2a 20 20 72 65 61 64 20 73 65 67 6d 65 6e 74 20 64 65   ┆le_name);    (*  read segment de┆
0x047a20…047a40             73 63 72 69 70 74 6f 72 2c 20 70 61 72 74 20 31 20 3a 20 20 2a 29 0a 0a 20 20 72 65 61 64 68 65   ┆scriptor, part 1 :  *)    readhe┆
0x047a40…047a60             61 64 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 68 65 61 64 20 29 3b 0a 0a 20 20 7b 2d 2d   ┆ad ( in_obj_file, head );    {--┆
0x047a60…047a80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x047a80…047aa0             2d 2d 2d 20 20 6f 6c 64 0a 20 20 28 2a 20 69 66 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f   ┆---  old   (* if compiler_versio┆
0x047aa0…047ac0             6e 20 6e 75 6d 62 65 72 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 73 6b 69 70 20 74 68 65 20 64   ┆n number is undefined skip the d┆
0x047ac0…047ae0             65 73 63 72 69 70 74 6f 72 20 2a 29 0a 20 20 28 2a 20 73 65 67 6d 65 6e 74 20 61 6e 64 20 70 69   ┆escriptor *)   (* segment and pi┆
0x047ae0…047b00             63 6b 75 70 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 66 72 6f 6d 20 74 68 65   ┆ckup the version number from the┆
0x047b00…047b20             20 73 65 63 6f 6e 64 20 2a 29 0a 20 20 28 2a 20 77 6f 72 64 20 6f 6e 20 74 68 65 20 66 69 72 73   ┆ second *)   (* word on the firs┆
0x047b20…047b40             74 20 63 6f 64 65 70 61 67 65 20 77 68 65 72 65 61 66 74 65 72 20 74 68 65 20 66 69 6c 65 20 69   ┆t codepage whereafter the file i┆
0x047b40…047b60             73 20 72 65 77 6f 75 6e 64 65 64 20 2a 29 0a 20 20 69 66 20 64 65 73 63 72 5f 79 65 73 20 74 68   ┆s rewounded *)   if descr_yes th┆
0x047b60…047b80             65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f   ┆en   begin   if current_version_┆
0x047b80…047ba0             6e 75 6d 62 65 72 20 3d 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 66 6f 72 20 69 20   ┆number = 0 then   begin   for i ┆
0x047ba0…047bc0             3a 3d 20 32 20 74 6f 20 64 65 73 63 72 5f 6c 65 6e 67 74 68 20 64 69 76 20 32 20 64 6f 0a 20 20   ┆:= 2 to descr_length div 2 do   ┆
0x047bc0…047be0             6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 20 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 64 75 6d 6d   ┆lf_readinteger (in_obj_file,dumm┆
0x047be0…047c00             79 29 3b 0a 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 20 28 69 6e 5f 6f 62 6a 5f 66 69 6c   ┆y);   lf_readinteger (in_obj_fil┆
0x047c00…047c20 (19, 0, 5)  65 2c 64 75 6d 6d 79 29 3b 20 28 2a 20 72 65 61 64 20 63 6f 6d 70 69 6c 65 20 64 61 74 65 20 2a   ┆e,dummy); (* read compile date *┆
0x047c20…047c40             29 0a 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 69   ┆)   lf_readinteger(in_obj_file,i┆
0x047c40…047c60             29 3b 0a 20 20 77 69 74 68 20 69 20 61 73 20 74 69 6d 65 20 3a 20 63 6f 64 65 64 5f 74 69 6d 65   ┆);   with i as time : coded_time┆
0x047c60…047c80             20 64 6f 0a 20 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3a 3d 20   ┆ do   current_version_number := ┆
0x047c80…047ca0             74 69 6d 65 2e 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 3b 0a 20 20 6c 66 5f 72 65 73 65   ┆time.compiler_version;   lf_rese┆
0x047ca0…047cc0             74 20 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65   ┆t (in_obj_file);   lf_readintege┆
0x047cc0…047ce0             72 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 64 65 73 63 72 5f 6c 65 6e 67 74 68 29 3b 0a 20 20   ┆r(in_obj_file, descr_length);   ┆
0x047ce0…047d00             69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70   ┆if current_version_number = comp┆
0x047d00…047d20             69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 74 68 65 6e 0a 20 20 62 65 67   ┆iler_c_version_number then   beg┆
0x047d20…047d40             69 6e 0a 20 20 66 69 78 65 64 5f 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 66 69 78 65 64 5f 63 5f 64   ┆in   fixed_d_length := fixed_c_d┆
0x047d40…047d60             5f 6c 65 6e 67 74 68 3b 0a 20 20 62 69 6e 64 5f 79 65 73 20 20 20 20 20 20 20 3a 3d 20 74 72 75   ┆_length;   bind_yes       := tru┆
0x047d60…047d80             65 3b 0a 20 20 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 20 3a 3d 20 63 5f 6e 6f 5f 6f 66 5f 6e   ┆e;   no_of_not_used := c_no_of_n┆
0x047d80…047da0             6f 74 5f 75 73 65 64 3b 0a 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 20 20 65 6e 64 0a 20 20 65   ┆ot_used;   end;   end;   end   e┆
0x047da0…047dc0             6c 73 65 0a 20 20 28 2a 20 6e 6f 74 65 20 3a 20 6e 6f 20 64 65 73 63 72 69 70 74 6f 72 20 73 65   ┆lse   (* note : no descriptor se┆
0x047dc0…047de0             67 6d 65 6e 74 20 69 73 20 6f 6e 6c 79 20 70 6f 73 73 69 62 6c 65 20 69 6e 20 72 65 76 20 35 20   ┆gment is only possible in rev 5 ┆
0x047de0…047e00             21 21 21 21 21 21 20 2a 29 0a 20 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62   ┆!!!!!! *)   current_version_numb┆
0x047e00…047e20 (19, 0, 6)  65 72 20 3a 3d 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 3b 0a 20   ┆er := compiler_version_number;  ┆
0x047e20…047e40             20 70 72 65 6f 63 63 75 70 69 65 64 3a 3d 20 70 72 65 6f 63 63 75 70 69 65 64 20 2b 20 73 75 6d   ┆ preoccupied:= preoccupied + sum┆
0x047e40…047e60             5f 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2b 20 34 20 2b 20 32 2a 6e 6f 5f 6f 66   ┆_descriptor_length + 4 + 2*no_of┆
0x047e60…047e80             5f 73 75 6d 73 3b 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆_sums;   -----------------------┆
0x047e80…047ea0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x047ea0…047ec0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 70 72 65 6f 63 63 75 70 69 65 64 3a   ┆---------------}    preoccupied:┆
0x047ec0…047ee0             3d 20 32 20 2b 20 73 75 6d 5f 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2b 20 34 20   ┆= 2 + sum_descriptor_length + 4 ┆
0x047ee0…047f00             2b 20 32 2a 6e 6f 5f 6f 66 5f 73 75 6d 73 3b 0a 20 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 3a   ┆+ 2*no_of_sums;   top_of_module:┆
0x047f00…047f20             3d 20 20 24 46 46 46 46 20 2d 20 70 72 65 6f 63 63 75 70 69 65 64 20 2b 20 31 3b 0a 0a 20 20 77   ┆=  $FFFF - preoccupied + 1;    w┆
0x047f20…047f40             68 69 6c 65 20 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 73   ┆hile head.descriptor_length <> s┆
0x047f40…047f60             74 6f 70 5f 6d 61 72 6b 20 64 6f 0a 20 20 20 77 69 74 68 20 68 65 61 64 20 64 6f 0a 20 20 20 20   ┆top_mark do    with head do     ┆
0x047f60…047f80             62 65 67 69 6e 0a 0a 20 20 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆begin      {--------------------┆
0x047f80…047fa0             2d 20 20 64 6f 6e 65 20 69 6e 20 72 65 61 64 68 65 61 64 0a 20 20 20 20 6c 66 5f 72 65 61 64 69   ┆-  done in readhead     lf_readi┆
0x047fa0…047fc0             6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 6e 6f 5f 6f 66 5f 70 61 67 65   ┆nteger( in_obj_file,  no_of_page┆
0x047fc0…047fe0             73 20 29 3b 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f   ┆s );     lf_readinteger( in_obj_┆
0x047fe0…048000             66 69 6c 65 2c 20 20 73 69 7a 65 5f 6f 66 5f 70 61 67 65 20 29 3b 0a 20 20 20 20 6c 66 5f 72 65   ┆file,  size_of_page );     lf_re┆
0x048000…048020 (19, 0, 7)  61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 62 79 74 65 73 5f 6f   ┆adinteger( in_obj_file,  bytes_o┆
0x048020…048040             6e 5f 6c 61 73 74 5f 70 61 67 65 20 29 3b 0a 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67   ┆n_last_page );      lf_readinteg┆
0x048040…048060             65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 6b 69 6e 64 5f 6f 66 5f 6f 62 6a 20 29 3b   ┆er( in_obj_file,  kind_of_obj );┆
0x048060…048080             0a 0a 20 20 20 20 69 6e 5f 69 64 65 6e 74 69 66 69 65 72 28 20 6e 61 6d 65 5f 6f 66 5f 6f 62 6a   ┆      in_identifier( name_of_obj┆
0x048080…0480a0             20 29 3b 0a 0a 20 20 20 20 69 6e 5f 70 6f 69 6e 74 28 20 65 6e 74 72 79 5f 70 6f 69 6e 74 20 29   ┆ );      in_point( entry_point )┆
0x0480a0…0480c0             3b 0a 20 20 20 20 69 6e 5f 70 6f 69 6e 74 28 20 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 20   ┆;     in_point( exception_point ┆
0x0480c0…0480e0             29 3b 0a 20 20 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72   ┆);     if current_version_number┆
0x0480e0…048100             20 3d 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 74 68 65 6e 0a   ┆ = compiler_version_number then ┆
0x048100…048120             20 20 20 20 69 6e 5f 70 6f 69 6e 74 28 20 65 78 69 74 5f 70 6f 69 6e 74 20 29 3b 0a 0a 20 20 20   ┆    in_point( exit_point );     ┆
0x048120…048140             20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 64   ┆ lf_readinteger( in_obj_file,  d┆
0x048140…048160             65 66 61 75 6c 74 5f 61 70 70 65 74 69 74 65 20 29 3b 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e   ┆efault_appetite );     lf_readin┆
0x048160…048180             74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 61 70 70 65 74 69 74 65 20 29 3b   ┆teger( in_obj_file,  appetite );┆
0x048180…0481a0             0a 20 20 20 20 66 6f 72 20 69 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65   ┆     for i := 1 to no_of_not_use┆
0x0481a0…0481c0             64 20 64 6f 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 69 6e 5f 6f 62 6a 5f 66   ┆d do     lf_readinteger(in_obj_f┆
0x0481c0…0481e0             69 6c 65 2c 20 6e 6f 74 5f 75 73 65 64 20 28 69 29 29 3b 0a 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d   ┆ile, not_used (i));     --------┆
0x0481e0…048200             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x048200…048220 (19, 0, 8)  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 7d 0a 0a 20 20 20 20 77 61 6e 74 65 64 3a 3d 20   ┆--------------- }      wanted:= ┆
0x048220…048240             6b 69 6e 64 20 3c 3d 20 33 3b 09 09 28 2a 20 73 6b 69 70 20 6f 70 65 6e 20 72 6f 75 74 69 6e 65   ┆kind <= 3;  (* skip open routine┆
0x048240…048260             73 20 69 6e 20 6c 69 62 72 61 72 79 20 2a 29 0a 20 20 20 20 69 6e 5f 70 61 72 61 6d 73 20 28 20   ┆s in library *)     in_params ( ┆
0x048260…048280             6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 2c 20 6f 62 6a 5f 70 61 72 61 6d 73 2c 20 68 65 61 64 2e 6e   ┆no_of_params, obj_params, head.n┆
0x048280…0482a0             61 6d 65 29 3b 0a 0a 0a 20 20 20 20 77 72 6b 3a 3d 20 20 6c 65 6e 67 74 68 5f 6f 66 5f 66 69 78   ┆ame);       wrk:=  length_of_fix┆
0x0482a0…0482c0             65 64 5f 70 61 72 74 31 20 2b 20 6f 62 6a 5f 70 61 72 61 6d 73 2e 70 61 72 61 6d 63 6f 75 6e 74   ┆ed_part1 + obj_params.paramcount┆
0x0482c0…0482e0             20 2a 20 32 20 2a 20 73 69 7a 65 6f 66 20 28 20 77 6f 72 64 29 3b 0a 20 20 20 20 69 66 20 64 65   ┆ * 2 * sizeof ( word);     if de┆
0x0482e0…048300             73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 77 72 6b 20 74 68 65 6e 0a 20 20 20 20   ┆scriptor_length <> wrk then     ┆
0x048300…048320             20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 74 72 75 65 20 74 68 65 6e 0a 09 77 69 74 68   ┆  begin       if true then  with┆
0x048320…048340             20 6f 62 6a 5f 70 61 72 61 6d 73 20 64 6f 0a 09 62 65 67 69 6e 0a 09 69 66 20 6e 6f 5f 6f 66 5f   ┆ obj_params do  begin  if no_of_┆
0x048340…048360             70 61 72 61 6d 73 20 3d 20 30 20 74 68 65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 72 65 61 64   ┆params = 0 then    begin    read┆
0x048360…048380             69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 72 61 6d 5b 31 5d 2e   ┆integer ( in_obj_file, param[1].┆
0x048380…0483a0             70 61 72 61 6d 5f 74 79 70 65 29 3b 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e   ┆param_type);    readinteger ( in┆
0x0483a0…0483c0             5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 72 61 6d 5b 31 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 29 3b   ┆_obj_file, param[1].param_size);┆
0x0483c0…0483e0             0a 09 20 20 65 6e 64 3b 0a 09 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 64 20   ┆    end;  writeln ( output, ' d ┆
0x0483e0…048400             6c 65 6e 67 74 2c 20 70 61 72 61 6d 73 2c 20 78 31 2c 20 78 32 20 3a 20 27 2c 20 64 65 73 63 72   ┆lengt, params, x1, x2 : ', descr┆
0x048400…048420 (19, 0, 9)  69 70 74 6f 72 5f 6c 65 6e 67 74 68 3a 36 2c 0a 09 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 3a   ┆iptor_length:6,    no_of_params:┆
0x048420…048440             36 2c 20 70 61 72 61 6d 5b 31 5d 2e 70 61 72 61 6d 5f 74 79 70 65 3a 36 2c 20 70 61 72 61 6d 5b   ┆6, param[1].param_type:6, param[┆
0x048440…048460             31 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 3a 36 29 3b 0a 09 65 6e 64 3b 0a 0a 20 20 20 20 20 20 63   ┆1].param_size:6);  end;        c┆
0x048460…048480             61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 31 31 2c 20 64 65 73 63 72 69 70 74 6f   ┆all_error ( fatal, 11, descripto┆
0x048480…0484a0             72 5f 6c 65 6e 67 74 68 2c 0a 20 20 20 20 20 20 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e   ┆r_length,        stralfa ( head.┆
0x0484a0…0484c0             6e 61 6d 65 29 20 2b 20 27 20 20 27 20 2b 20 73 74 72 69 6e 74 20 28 77 72 6b 29 29 3b 0a 20 20   ┆name) + '  ' + strint (wrk));   ┆
0x0484c0…0484e0             20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 72 6f 6e 67 20 6e 6f 20 6f 66 20 70 61 72 61 6d 73   ┆    end;  (*  wrong no of params┆
0x0484e0…048500             20 20 2a 29 0a 0a 20 20 20 20 28 2a 2d 20 20 69 66 20 64 65 73 63 72 5f 79 65 73 20 74 68 65 6e   ┆  *)      (*-  if descr_yes then┆
0x048500…048520             20 20 20 20 20 2d 2a 29 0a 20 20 20 20 28 2a 2d 20 20 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 64 65   ┆     -*)     (*-  d_length := de┆
0x048520…048540             73 63 72 5f 6c 65 6e 67 74 68 3b 20 20 2d 2a 29 0a 20 20 20 20 28 2a 2d 20 20 65 6c 73 65 20 20   ┆scr_length;  -*)     (*-  else  ┆
0x048540…048560             20 20 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 30 3b 20 20 2d 2a 29 0a 0a 20 20 20 20 63 6f 64 65 5f   ┆  d_length := 0;  -*)      code_┆
0x048560…048580             62 79 74 65 73 20 3a 3d 20 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 20 20   ┆bytes :=  last_page_length;     ┆
0x048580…0485a0             63 6f 64 65 5f 62 79 74 65 73 20 3a 3d 20 20 63 6f 64 65 5f 62 79 74 65 73 20 2b 20 28 6e 6f 5f   ┆code_bytes :=  code_bytes + (no_┆
0x0485a0…0485c0             6f 66 5f 70 61 67 65 73 20 2d 20 31 20 29 20 2a 20 70 61 67 65 73 69 7a 65 3b 0a 20 20 20 20 63   ┆of_pages - 1 ) * pagesize;     c┆
0x0485c0…0485e0             6f 64 65 5f 77 6f 72 64 73 20 3a 3d 20 28 63 6f 64 65 5f 62 79 74 65 73 20 2b 20 31 29 20 64 69   ┆ode_words := (code_bytes + 1) di┆
0x0485e0…048600             76 20 32 3b 0a 20 20 20 20 6f 63 74 65 74 73 20 20 20 20 20 3a 3d 20 63 6f 64 65 5f 77 6f 72 64   ┆v 2;     octets     := code_word┆
0x048600…048620 (19, 0, 10) 73 20 2a 20 32 3b 0a 0a 0a 20 20 20 20 6b 65 79 3a 3d 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d   ┆s * 2;       key:= stralfa ( nam┆
0x048620…048640             65 29 20 2b 20 27 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a 20 20 20 20 69 66 20 64 65 62 75   ┆e) + '            ';     if debu┆
0x048640…048660             67 32 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 69 74 65 6d   ┆g2 then writeln ( output, ' item┆
0x048660…048680             20 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 20 77 6f 72 64 73 20 3a 20 27 2c 20 63 6f 64 65 5f 77 6f   ┆ : ', key, ', words : ', code_wo┆
0x048680…0486a0             72 64 73 2c 0a 20 20 20 20 20 20 27 20 20 62 79 74 65 73 20 3a 20 27 2c 20 63 6f 64 65 5f 62 79   ┆rds,       '  bytes : ', code_by┆
0x0486a0…0486c0             74 65 73 29 3b 0a 20 20 20 20 73 65 61 72 63 68 20 28 20 69 74 65 6d 2c 20 69 74 65 6d 6e 6f 2c   ┆tes);     search ( item, itemno,┆
0x0486c0…0486e0             20 6b 65 79 2c 20 6f 62 6a 5f 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 63   ┆ key, obj_params);     if debugc┆
0x0486e0…048700             61 74 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 73   ┆at then  writeln ( output, '   s┆
0x048700…048720             65 61 72 63 68 20 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 27 2c 20 69 74 65 6d 6e 6f 3a 34 2c 20 73   ┆earch : ', key, ',', itemno:4, s┆
0x048720…048740             75 63 63 65 73 73 3a 38 29 3b 0a 0a 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 20   ┆uccess:8);      if success then ┆
0x048740…048760             20 28 2a 20 20 66 6f 75 6e 64 20 20 2a 29 0a 20 20 20 20 65 6c 73 65 09 28 2a 20 6e 6f 74 20 69   ┆ (*  found  *)     else (* not i┆
0x048760…048780             6e 20 74 61 62 6c 65 20 2a 29 0a 20 20 20 20 20 20 69 66 20 6c 69 62 72 61 72 79 20 74 68 65 6e   ┆n table *)       if library then┆
0x048780…0487a0             0a 20 20 20 20 20 20 20 20 77 61 6e 74 65 64 20 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 20 65   ┆         wanted := false       e┆
0x0487a0…0487c0             6c 73 65 0a 09 69 6e 69 74 5f 69 74 65 6d 20 28 20 69 74 65 6d 2c 20 69 74 65 6d 6e 6f 2c 20 73   ┆lse  init_item ( item, itemno, s┆
0x0487c0…0487e0             74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 2c 20 74 72 75 65 29 3b 0a 0a 0a 20 20   ┆tralfa ( head.name), true);     ┆
0x0487e0…048800             20 20 69 66 20 77 61 6e 74 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77   ┆  if wanted then     begin     w┆
0x048800…048820 (19, 0, 11) 69 74 68 20 69 74 65 6d 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 64 5f 61 64 64 72   ┆ith item do     begin     d_addr┆
0x048820…048840             20 3a 3d 20 74 6f 70 5f 6f 66 5f 62 69 6e 3b 0a 0a 20 20 20 20 28 2a 2d 20 20 20 69 66 20 62 69   ┆ := top_of_bin;      (*-   if bi┆
0x048840…048860             6e 64 5f 79 65 73 20 74 68 65 6e 20 20 20 2d 2a 29 0a 20 20 20 20 28 2a 20 66 6f 72 63 65 20 6e   ┆nd_yes then   -*)     (* force n┆
0x048860…048880             65 77 20 6d 6f 64 75 6c 65 20 69 66 20 28 64 65 73 63 72 2d 6c 65 6e 67 74 68 20 2b 20 63 6f 64   ┆ew module if (descr-length + cod┆
0x048880…0488a0             65 2d 6c 65 6e 67 74 68 29 20 65 78 63 65 65 64 73 0a 20 20 20 20 74 68 65 20 72 65 6d 61 69 6e   ┆e-length) exceeds     the remain┆
0x0488a0…0488c0             69 6e 67 20 70 61 72 74 20 6f 66 20 63 75 72 72 65 6e 74 20 6d 6f 64 75 6c 65 20 2a 29 0a 0a 20   ┆ing part of current module *)   ┆
0x0488c0…0488e0             20 20 20 72 65 73 65 72 76 65 5f 61 72 65 61 20 28 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e   ┆   reserve_area ( descriptor_len┆
0x0488e0…048900             67 74 68 20 2b 20 6f 63 74 65 74 73 2c 20 64 5f 61 64 64 72 29 3b 0a 0a 20 20 20 20 28 2a 2d 20   ┆gth + octets, d_addr);      (*- ┆
0x048900…048920             20 65 6c 73 65 20 20 20 72 65 73 65 72 76 65 5f 61 72 65 61 20 28 64 5f 6c 65 6e 67 74 68 2c 20   ┆ else   reserve_area (d_length, ┆
0x048920…048940             64 5f 61 64 64 72 29 3b 20 20 20 2d 2a 29 0a 0a 20 20 20 20 69 66 20 6e 6f 74 20 6c 61 73 74 5f   ┆d_addr);   -*)      if not last_┆
0x048940…048960             73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 73 61 76 65 64 5f 64 5f 61 64 64 72 20 3a 3d 20   ┆scan then       saved_d_addr := ┆
0x048960…048980             64 5f 61 64 64 72 0a 20 20 20 20 65 6c 73 65 20 28 2a 20 74 65 73 74 20 74 68 61 74 20 74 68 65   ┆d_addr     else (* test that the┆
0x048980…0489a0             20 73 74 61 72 74 2d 61 64 64 72 65 73 73 20 68 61 73 27 6e 74 20 63 68 61 6e 67 65 64 20 64 75   ┆ start-address has'nt changed du┆
0x0489a0…0489c0             72 69 6e 67 20 74 68 65 20 76 65 72 79 20 6c 61 73 74 20 73 63 61 6e 20 2a 29 0a 20 20 20 20 69   ┆ring the very last scan *)     i┆
0x0489c0…0489e0             66 20 20 28 20 73 61 76 65 64 5f 64 5f 61 64 64 72 2e 62 61 73 65 20 3c 3e 20 64 5f 61 64 64 72   ┆f  ( saved_d_addr.base <> d_addr┆
0x0489e0…048a00             2e 62 61 73 65 20 29 0a 20 20 20 20 6f 72 20 20 28 20 73 61 76 65 64 5f 64 5f 61 64 64 72 2e 64   ┆.base )     or  ( saved_d_addr.d┆
0x048a00…048a20 (19, 0, 12) 69 73 70 20 3c 3e 20 64 5f 61 64 64 72 2e 64 69 73 70 20 29 20 74 68 65 6e 0a 20 20 20 20 20 20   ┆isp <> d_addr.disp ) then       ┆
0x048a20…048a40             62 65 67 69 6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 77 61 72 6e 2c 20 31   ┆begin       call_error ( warn, 1┆
0x048a40…048a60             38 2c 20 30 2c 20 27 27 29 3b 0a 20 20 20 20 20 20 6c 6f 61 64 65 72 6d 61 70 5f 65 72 72 3a 3d   ┆8, 0, '');       loadermap_err:=┆
0x048a60…048a80             20 74 72 75 65 3b 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 6d 61 70 20 28 20 69 74 65 6d 29 3b 0a   ┆ true;       print_map ( item); ┆
0x048a80…048aa0             20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 73 61 76 65   ┆      writeln ( output, '   save┆
0x048aa0…048ac0             64 5f 64 5f 61 64 64 72 20 77 61 73 3a 20 27 2c 20 73 74 72 5f 61 64 64 72 20 28 20 73 61 76 65   ┆d_d_addr was: ', str_addr ( save┆
0x048ac0…048ae0             64 5f 64 5f 61 64 64 72 29 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 6d 61 70 5f   ┆d_d_addr));       end;      map_┆
0x048ae0…048b00             69 6e 63 72 20 28 20 64 5f 61 64 64 72 2c 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68   ┆incr ( d_addr, descriptor_length┆
0x048b00…048b20             2c 20 63 6f 64 65 5f 61 64 64 72 29 3b 0a 20 20 20 20 72 65 73 65 72 76 65 5f 61 72 65 61 20 28   ┆, code_addr);     reserve_area (┆
0x048b20…048b40             20 6f 63 74 65 74 73 2c 20 63 6f 64 65 5f 61 64 64 72 29 3b 0a 20 20 20 20 6d 61 70 5f 69 6e 63   ┆ octets, code_addr);     map_inc┆
0x048b40…048b60             72 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 6f 63 74 65 74 73 2c 20 74 6f 70 5f 6f 66 5f 62 69   ┆r ( code_addr, octets, top_of_bi┆
0x048b60…048b80             6e 29 3b 0a 20 20 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 70   ┆n);     map_point ( code_addr, p┆
0x048b80…048ba0             61 67 65 73 69 7a 65 2c 20 65 6e 74 72 79 5f 70 6f 69 6e 74 2c 20 65 6e 74 72 79 5f 61 64 64 72   ┆agesize, entry_point, entry_addr┆
0x048ba0…048bc0             29 3b 0a 0a 20 20 20 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 3d 20 30 20 74 68 65   ┆);       if compile_date = 0 the┆
0x048bc0…048be0             6e 20 67 65 74 5f 64 61 74 65 20 28 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 2c 20 63 6f 6d 70 69   ┆n get_date ( compile_date, compi┆
0x048be0…048c00             6c 65 5f 74 69 6d 65 29 3b 0a 20 20 20 20 28 2a 20 64 65 63 72 65 6d 65 6e 74 20 75 6e 64 65 66   ┆le_time);     (* decrement undef┆
0x048c00…048c20 (19, 0, 13) 5f 63 6f 75 6e 74 20 69 66 20 74 68 65 20 6d 6f 64 75 6c 65 20 68 61 73 20 6e 6f 74 20 62 65 65   ┆_count if the module has not bee┆
0x048c20…048c40             6e 20 64 65 66 69 6e 65 64 20 62 65 66 6f 72 65 20 2a 29 0a 20 20 20 20 75 6e 64 65 66 5f 63 6f   ┆n defined before *)     undef_co┆
0x048c40…048c60             75 6e 74 20 3a 3d 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 2d 20 31 20 2a 20 6f 72 64 28 73 74 61   ┆unt := undef_count - 1 * ord(sta┆
0x048c60…048c80             74 65 20 3d 20 75 6e 64 65 66 29 3b 0a 20 20 20 20 73 74 61 74 65 20 3a 3d 20 64 65 66 69 6e 65   ┆te = undef);     state := define┆
0x048c80…048ca0             64 3b 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 69 74 68 20 69 74 65 6d 20 20 2a 29 0a 0a   ┆d;     end;  (*  with item  *)  ┆
0x048ca0…048cc0             20 20 20 20 70 75 74 72 65 63 20 28 20 64 61 74 66 2c 20 69 74 65 6d 6e 6f 2c 20 69 74 65 6d 29   ┆    putrec ( datf, itemno, item)┆
0x048cc0…048ce0             3b 0a 0a 20 20 20 20 69 66 20 64 65 62 75 67 63 61 74 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20   ┆;      if debugcat then writeln ┆
0x048ce0…048d00             28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 70 75 74 72 65 63 20 3a 20 27 2c 20 73 74 72 61 6c 66   ┆( output, '   putrec : ', stralf┆
0x048d00…048d20             61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 2c 20 69 74 65 6d 6e 6f 3a 34 29 3b 0a 0a 20 20 20 20   ┆a ( head.name), itemno:4);      ┆
0x048d20…048d40             65 6e 64 3b 20 20 28 2a 20 20 69 66 20 77 61 6e 74 65 64 20 20 2a 29 0a 0a 0a 20 20 20 20 69 66   ┆end;  (*  if wanted  *)       if┆
0x048d40…048d60             20 64 65 73 63 72 5f 79 65 73 20 61 6e 64 20 77 61 6e 74 65 64 20 61 6e 64 20 6c 61 73 74 5f 73   ┆ descr_yes and wanted and last_s┆
0x048d60…048d80             63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20 20 20 28 2a 20 20   ┆can then       begin        (*  ┆
0x048d80…048da0             6f 75 74 70 75 74 20 74 68 65 20 72 65 64 75 63 65 64 20 64 65 73 63 72 69 70 74 6f 72 20 73 65   ┆output the reduced descriptor se┆
0x048da0…048dc0             67 6d 65 6e 74 20 3a 20 20 2a 29 0a 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28   ┆gment :  *)        out_integer (┆
0x048dc0…048de0             20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f   ┆ descriptor_length );       out_┆
0x048de0…048e00             69 6e 74 65 67 65 72 20 28 20 6e 6f 5f 6f 66 5f 70 61 67 65 73 20 29 3b 0a 20 20 20 20 20 20 6f   ┆integer ( no_of_pages );       o┆
0x048e00…048e20 (19, 0, 14) 75 74 5f 69 6e 74 65 67 65 72 20 28 20 70 61 67 65 73 69 7a 65 20 29 3b 0a 20 20 20 20 20 20 6f   ┆ut_integer ( pagesize );       o┆
0x048e20…048e40             75 74 5f 69 6e 74 65 67 65 72 20 28 20 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 20 29 3b   ┆ut_integer ( last_page_length );┆
0x048e40…048e60             0a 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 6b 69 6e 64 20 29 3b 0a 0a 20   ┆        out_integer ( kind );   ┆
0x048e60…048e80             20 20 20 20 20 6f 75 74 5f 69 64 65 6e 74 69 66 69 65 72 20 28 20 6e 61 6d 65 20 29 3b 0a 0a 20   ┆     out_identifier ( name );   ┆
0x048e80…048ea0             20 20 20 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 70 61 67 65   ┆     map_point ( code_addr, page┆
0x048ea0…048ec0             73 69 7a 65 2c 20 65 6e 74 72 79 5f 70 6f 69 6e 74 2c 20 6d 61 70 5f 61 64 64 72 20 29 3b 0a 20   ┆size, entry_point, map_addr );  ┆
0x048ec0…048ee0             20 20 20 20 20 6f 75 74 5f 61 64 64 72 20 28 20 6d 61 70 5f 61 64 64 72 20 29 3b 0a 0a 20 20 20   ┆     out_addr ( map_addr );     ┆
0x048ee0…048f00             20 20 20 69 66 20 6b 69 6e 64 20 3d 20 70 72 6f 67 72 61 6d 6b 69 6e 64 20 74 68 65 6e 0a 09 6d   ┆   if kind = programkind then  m┆
0x048f00…048f20             61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 70 61 67 65 73 69 7a 65 2c 20   ┆ap_point ( code_addr, pagesize, ┆
0x048f20…048f40             65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 2c 20 6d 61 70 5f 61 64 64 72 20 29 3b 0a 20 20 20   ┆exception_point, map_addr );    ┆
0x048f40…048f60             20 20 20 6f 75 74 5f 61 64 64 72 20 28 20 6d 61 70 5f 61 64 64 72 20 29 3b 0a 0a 20 20 20 20 20   ┆   out_addr ( map_addr );       ┆
0x048f60…048f80             20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 64 65 66 61 75 6c 74 5f 61 70 70 65 74 69 74 65 20   ┆ out_integer ( default_appetite ┆
0x048f80…048fa0             29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 6c 61 73 74 5f 70 61 72 61   ┆);       out_integer ( last_para┆
0x048fa0…048fc0             6d 5f 6f 66 66 73 65 74 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20   ┆m_offset );       out_integer ( ┆
0x048fc0…048fe0             73 6f 75 72 63 65 5f 64 61 74 65 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72   ┆source_date );       out_integer┆
0x048fe0…049000             20 28 20 73 6f 75 72 63 65 5f 74 69 6d 65 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67   ┆ ( source_time);       out_integ┆
0x049000…049020 (19, 0, 15) 65 72 20 28 20 76 65 72 73 69 6f 6e 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72   ┆er ( version);       out_integer┆
0x049020…049040             20 28 20 65 78 74 72 61 20 29 3b 0a 0a 20 20 20 20 20 20 77 69 74 68 20 6f 62 6a 5f 70 61 72 61   ┆ ( extra );        with obj_para┆
0x049040…049060             6d 73 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 6f 75 74 5f 69 6e 74 65 67 65 72   ┆ms do         begin  out_integer┆
0x049060…049080             20 28 20 70 61 72 61 6d 63 6f 75 6e 74 29 3b 0a 09 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 70   ┆ ( paramcount);  for p := 1 to p┆
0x049080…0490a0             61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆aramcount do          begin     ┆
0x0490a0…0490c0             20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61   ┆     out_integer ( param[p].para┆
0x0490c0…0490e0             6d 5f 74 79 70 65 20 29 3b 0a 20 20 20 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28   ┆m_type );          out_integer (┆
0x0490e0…049100             20 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 20 29 3b 0a 20 20 20 20 20 20 20 20   ┆ param[p].param_size );         ┆
0x049100…049120             20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 0a 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a   ┆ end         end        end;  (*┆
0x049120…049140             20 20 6f 75 74 70 75 74 20 64 65 73 63 72 69 70 74 6f 72 20 20 73 65 67 6d 20 20 2a 29 0a 0a 20   ┆  output descriptor  segm  *)   ┆
0x049140…049160             20 20 20 69 66 20 6e 6f 74 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 62   ┆   if not last_scan then       b┆
0x049160…049180             65 67 69 6e 09 09 09 20 28 2a 20 73 6b 69 70 20 74 68 65 20 63 6f 64 65 20 70 61 72 74 20 2a 29   ┆egin    (* skip the code part *)┆
0x049180…0491a0             0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28   ┆       if debug4 then  writeln (┆
0x0491a0…0491c0             20 6f 75 74 70 75 74 2c 20 27 73 65 65 6b 20 74 6f 20 20 70 6f 73 20 2b 20 20 20 27 2c 20 6f 63   ┆ output, 'seek to  pos +   ', oc┆
0x0491c0…0491e0             74 65 74 73 29 3b 0a 20 20 20 20 20 20 66 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 69 6e   ┆tets);       fpos:= filepos ( in┆
0x0491e0…049200             5f 6f 62 6a 5f 66 69 6c 65 29 20 2b 20 6f 63 74 65 74 73 3b 0a 20 20 20 20 20 20 69 66 20 64 65   ┆_obj_file) + octets;       if de┆
0x049200…049220 (19, 1, 1)  62 75 67 34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 73 65   ┆bug4 then  writeln ( output, 'se┆
0x049220…049240             65 6b 20 66 72 6f 6d 20 3a 20 20 27 2c 20 66 70 6f 73 20 2d 20 6f 63 74 65 74 73 29 3b 0a 0a 20   ┆ek from :  ', fpos - octets);   ┆
0x049240…049260             20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 20 29 3b 0a 20 20   ┆     iocheck ( in_obj_file );   ┆
0x049260…049280             20 20 20 20 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 66 70 6f 73 29 3b 0a 20   ┆    seek ( in_obj_file, fpos);  ┆
0x049280…0492a0             20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 20 29 3b 0a 20 20   ┆     iocheck ( in_obj_file );   ┆
0x0492a0…0492c0             20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆    if debug4 then writeln ( out┆
0x0492c0…0492e0             70 75 74 2c 20 27 20 73 65 65 6b 20 6f 6b 20 20 27 29 3b 0a 20 20 20 20 20 20 65 6e 64 0a 20 20   ┆put, ' seek ok  ');       end   ┆
0x0492e0…049300             20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 67 65 74 62 6c 6f 63   ┆  else       begin       getbloc┆
0x049300…049320             6b 20 28 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆k ( octets);       {------------┆
0x049320…049340             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 73 65 65 20 69 6e 69 74 20 69 74 65 6d 20 2d 2d 0a 20 20 20 20   ┆---------- see init item --     ┆
0x049340…049360             20 20 69 66 20 77 61 6e 74 65 64 20 61 6e 64 20 64 65 73 63 72 5f 79 65 73 20 74 68 65 6e 0a 09   ┆  if wanted and descr_yes then  ┆
0x049360…049380             62 65 67 69 6e 0a 09 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 09 20 20 62 65 67 69 6e 0a 09 20 20   ┆begin  with item do    begin    ┆
0x049380…0493a0             63 6f 6d 70 69 6c 65 5f 64 61 74 65 3a 3d 20 63 6f 72 65 77 5e 5b 30 5d 3b 0a 09 20 20 63 6f 6d   ┆compile_date:= corew^[0];    com┆
0x0493a0…0493c0             70 69 6c 65 5f 74 69 6d 65 3a 3d 20 63 6f 72 65 77 5e 5b 31 5d 3b 0a 0a 09 20 20 69 66 20 63 75   ┆pile_time:= corew^[1];     if cu┆
0x0493c0…0493e0             72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3c 3e 20 63 6f 6d 70 69 6c 65 5f   ┆rrent_version_number <> compile_┆
0x0493e0…049400             74 69 6d 65 20 73 68 72 20 31 31 20 74 68 65 6e 0a 09 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72   ┆time shr 11 then      call_error┆
0x049400…049420 (19, 1, 2)  20 28 20 66 61 74 61 6c 2c 20 35 2c 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31   ┆ ( fatal, 5, compile_time shr 11┆
0x049420…049440             2c 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 29 3b 0a 09 20 20 65 6e 64 3b   ┆, stralfa ( head.name));    end;┆
0x049440…049460             20 20 28 2a 20 20 77 69 74 68 20 20 2a 29 0a 09 70 75 74 72 65 63 20 28 20 64 61 74 66 2c 20 69   ┆  (*  with  *)  putrec ( datf, i┆
0x049460…049480             74 65 6d 6e 6f 2c 20 69 74 65 6d 29 0a 09 65 6e 64 3b 0a 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d   ┆temno, item)  end;       -------┆
0x049480…0494a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0494a0…0494c0             2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 61 6e 64 20 28 6d   ┆-------}        if wanted and (m┆
0x0494c0…0494e0             61 70 5f 79 65 73 20 6f 72 20 70 72 69 6e 74 5f 63 6f 64 65 29 20 74 68 65 6e 20 20 70 72 69 6e   ┆ap_yes or print_code) then  prin┆
0x0494e0…049500             74 5f 6d 61 70 20 28 20 69 74 65 6d 20 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20   ┆t_map ( item );       end;  (*  ┆
0x049500…049520             6c 61 73 74 20 73 63 61 6e 20 20 2a 29 0a 0a 20 20 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e   ┆last scan  *)      if false then┆
0x049520…049540             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 72 65 61 64 79 20 66 6f 72   ┆  writeln ( output, '  ready for┆
0x049540…049560             20 65 78 74 65 72 6e 20 27 29 3b 0a 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e   ┆ extern ');     readinteger ( in┆
0x049560…049580             5f 6f 62 6a 5f 66 69 6c 65 2c 20 6e 6f 5f 6f 66 5f 65 78 74 29 3b 0a 0a 20 20 20 20 69 66 20 64   ┆_obj_file, no_of_ext);      if d┆
0x049580…0495a0             65 62 75 67 31 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 6e   ┆ebug1 then  writeln ( output, 'n┆
0x0495a0…0495c0             6f 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 3a 20 27 2c 20 6e 6f 5f 6f 66 5f 65 78 74 29 3b 0a 0a   ┆o of external : ', no_of_ext);  ┆
0x0495c0…0495e0             20 20 20 20 66 6f 72 20 73 74 65 70 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f 65 78 74 20 64   ┆    for step := 1 to no_of_ext d┆
0x0495e0…049600             6f 09 28 2a 20 20 70 72 6f 63 65 73 73 20 65 78 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 20 2a 29   ┆o (*  process external links  *)┆
0x049600…049620 (19, 1, 3)  0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 6e 5f 69 64 65 6e 74 69 66 69 65 72   ┆       begin       in_identifier┆
0x049620…049640             20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 29 3b 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67   ┆ ( name_of_ext);       readinteg┆
0x049640…049660             65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 77 72 6b 29 3b 0a 20 20 20 20 20 20 69 6e   ┆er ( in_obj_file, wrk);       in┆
0x049660…049680             5f 70 61 72 61 6d 73 20 28 20 77 72 6b 2c 20 6f 62 6a 5f 70 61 72 61 6d 73 2c 20 6e 61 6d 65 5f   ┆_params ( wrk, obj_params, name_┆
0x049680…0496a0             6f 66 5f 65 78 74 29 3b 0a 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 74 68 65 6e 0a 20   ┆of_ext);        if wanted then  ┆
0x0496a0…0496c0             20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6b 65 79 3a 3d 20 73 74 72 61 6c   ┆       begin         key:= stral┆
0x0496c0…0496e0             66 61 20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 29 20 2b 20 27 20 20 20 20 20 20 20 20 20 20 20   ┆fa ( name_of_ext) + '           ┆
0x0496e0…049700             20 27 3b 0a 09 73 65 61 72 63 68 20 28 20 65 78 74 5f 69 74 65 6d 2c 20 64 72 6e 2c 20 6b 65 79   ┆ ';  search ( ext_item, drn, key┆
0x049700…049720             2c 20 6f 62 6a 5f 70 61 72 61 6d 73 20 29 3b 0a 09 69 66 20 64 65 62 75 67 63 61 74 20 74 68 65   ┆, obj_params );  if debugcat the┆
0x049720…049740             6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 73 65 61 72 63 68 20 65 78 74   ┆n  writeln ( output, 'search ext┆
0x049740…049760             3a 20 27 2c 20 6b 65 79 2c 20 27 2c 27 2c 20 64 72 6e 3a 34 2c 20 73 75 63 63 65 73 73 3a 38 29   ┆: ', key, ',', drn:4, success:8)┆
0x049760…049780             3b 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 09 20   ┆;         if not success then   ┆
0x049780…0497a0             20 69 6e 69 74 5f 69 74 65 6d 20 28 20 65 78 74 5f 69 74 65 6d 2c 20 64 72 6e 2c 20 6b 65 79 2c   ┆ init_item ( ext_item, drn, key,┆
0x0497a0…0497c0             20 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 6d 61 70 5f 61 64 64 72 20 3a 3d 20 65 78 74   ┆ false);         map_addr := ext┆
0x0497c0…0497e0             5f 69 74 65 6d 2e 65 6e 74 72 79 5f 61 64 64 72 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a   ┆_item.entry_addr;         end;  ┆
0x0497e0…049800             20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c   ┆      readinteger ( in_obj_file,┆
0x049800…049820 (19, 1, 4)  20 6e 6f 5f 6f 66 5f 75 73 65 73 29 3b 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 61 6e   ┆ no_of_uses);       if wanted an┆
0x049820…049840             64 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 09 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20   ┆d last_scan then  for p := 1 to ┆
0x049840…049860             6e 6f 5f 6f 66 5f 75 73 65 73 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆no_of_uses do         begin     ┆
0x049860…049880             20 20 20 20 69 6e 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 29 3b 0a 20 20 20 20 20 20 20 20   ┆    in_addr ( to_addr);         ┆
0x049880…0498a0             73 74 6f 72 65 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 2c 20 6d 61 70 5f 61 64 64 72 29 3b   ┆store_addr ( to_addr, map_addr);┆
0x0498a0…0498c0             0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 09 09 28 2a 20 20 73 6b 69   ┆         end       else  (*  ski┆
0x0498c0…0498e0             70 20 20 2a 29 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 66 70 6f 73 3a 3d 20 66 69 6c 65   ┆p  *)         begin  fpos:= file┆
0x0498e0…049900             70 6f 73 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 20 2b 20 6e 6f 5f 6f 66 5f 75 73 65 73 20   ┆pos ( in_obj_file) + no_of_uses ┆
0x049900…049920             2a 20 73 69 7a 65 6f 66 20 28 20 61 64 64 72 65 73 73 29 3b 0a 20 20 20 20 20 20 20 20 69 6f 63   ┆* sizeof ( address);         ioc┆
0x049920…049940             68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 09 73 65 65 6b 20 28 20 69 6e 5f   ┆heck ( in_obj_file);  seek ( in_┆
0x049940…049960             6f 62 6a 5f 66 69 6c 65 2c 20 66 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 20 69 6f 63 68 65 63 6b   ┆obj_file, fpos);         iocheck┆
0x049960…049980             20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20   ┆ ( in_obj_file);         end;   ┆
0x049980…0499a0             20 20 20 20 65 6e 64 3b 20 28 2a 20 70 72 6f 63 65 73 73 20 65 78 74 65 72 6e 61 6c 20 6c 69 6e   ┆    end; (* process external lin┆
0x0499a0…0499c0             6b 73 20 2a 29 0a 0a 20 20 20 20 20 20 28 2a 20 70 72 6f 63 65 73 73 20 74 68 65 20 69 6e 74 65   ┆ks *)        (* process the inte┆
0x0499c0…0499e0             72 6e 61 6c 20 6c 69 6e 6b 20 6c 69 73 74 20 2a 29 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65   ┆rnal link list *)       readinte┆
0x0499e0…049a00             67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 6e 6f 5f 6f 66 5f 69 6e 74 20 29 3b   ┆ger ( in_obj_file,  no_of_int );┆
0x049a00…049a20 (19, 1, 5)  0a 20 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 61 6e 64 20 6c 61 73 74 5f 73 63 61 6e 20   ┆        if wanted and last_scan ┆
0x049a20…049a40             20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f   ┆ then         for p := 1 to no_o┆
0x049a40…049a60             66 5f 69 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 69   ┆f_int do         begin         i┆
0x049a60…049a80             6e 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 29 3b 0a 20 20 20 20 20 20 20 20 69 6e 5f 61 64   ┆n_addr ( to_addr);         in_ad┆
0x049a80…049aa0             64 72 20 28 20 6d 61 70 5f 61 64 64 72 29 3b 0a 20 20 20 20 20 20 20 20 73 74 6f 72 65 5f 61 64   ┆dr ( map_addr);         store_ad┆
0x049aa0…049ac0             64 72 20 28 20 74 6f 5f 61 64 64 72 2c 20 6d 61 70 5f 61 64 64 72 29 3b 0a 20 20 20 20 20 20 20   ┆dr ( to_addr, map_addr);        ┆
0x049ac0…049ae0             20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 09 28 2a 20 73 6b 69 70 20 74 68 65 20 69 6e 74 65   ┆ end       else (* skip the inte┆
0x049ae0…049b00             72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09 66 70 6f   ┆rnal links *)         begin  fpo┆
0x049b00…049b20             73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 20 2b 20 6e 6f 5f   ┆s:= filepos ( in_obj_file) + no_┆
0x049b20…049b40             6f 66 5f 69 6e 74 20 2a 20 32 20 2a 20 73 69 7a 65 6f 66 20 28 20 61 64 64 72 65 73 73 29 3b 0a   ┆of_int * 2 * sizeof ( address); ┆
0x049b40…049b60             20 20 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a   ┆        iocheck ( in_obj_file); ┆
0x049b60…049b80             09 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 66 70 6f 73 29 3b 0a 20 20 20 20   ┆ seek ( in_obj_file, fpos);     ┆
0x049b80…049ba0             20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 20 20   ┆    iocheck ( in_obj_file);     ┆
0x049ba0…049bc0             20 20 20 20 65 6e 64 3b 0a 0a 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 61 6e 64 20 6c   ┆    end;         if wanted and l┆
0x049bc0…049be0             61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 0a 0a 09 28   ┆ast_scan then         begin    (┆
0x049be0…049c00             2a 20 70 75 74 20 62 6f 6f 74 2d 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 69 6e 74 6f 20 63   ┆* put boot-version number into c┆
0x049c00…049c20 (19, 1, 6)  6f 72 65 69 6d 61 67 65 20 28 32 29 20 69 66 20 63 6f 72 72 65 63 74 20 63 6f 6d 70 69 6c 65 72   ┆oreimage (2) if correct compiler┆
0x049c20…049c40             20 76 65 72 73 69 6f 6e 20 2a 29 0a 20 20 20 20 20 20 77 72 6b 3a 3d 20 73 77 61 70 20 28 20 63   ┆ version *)       wrk:= swap ( c┆
0x049c40…049c60             6f 72 65 77 5e 5b 31 5d 29 3b 09 09 28 2a 20 20 20 73 65 74 20 76 65 72 73 69 6f 6e 20 6e 75 6d   ┆orew^[1]);  (*   set version num┆
0x049c60…049c80             62 65 72 20 66 6f 72 20 62 6f 6f 74 65 72 20 20 2a 29 0a 20 20 20 20 20 20 77 72 6b 3a 3d 20 62   ┆ber for booter  *)       wrk:= b┆
0x049c80…049ca0             6f 6f 74 65 72 5f 76 65 72 73 69 6f 6e 20 73 68 6c 20 31 31 20 2b 20 28 20 77 72 6b 20 61 6e 64   ┆ooter_version shl 11 + ( wrk and┆
0x049ca0…049cc0             20 24 30 37 46 46 20 29 3b 0a 20 20 20 20 20 20 63 6f 72 65 77 5e 5b 31 5d 3a 3d 20 73 77 61 70   ┆ $07FF );       corew^[1]:= swap┆
0x049cc0…049ce0             20 28 20 77 72 6b 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e   ┆ ( wrk);          if debug4 then┆
0x049ce0…049d00             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 62 65 66 6f 72 65 20 70 75 74   ┆  writeln ( output, ' before put┆
0x049d00…049d20             62 6c 6f 63 6b 20 20 27 2c 20 6f 63 74 65 74 73 2c 20 27 20 62 79 74 65 73 20 27 29 3b 0a 09 70   ┆block  ', octets, ' bytes ');  p┆
0x049d20…049d40             75 74 62 6c 6f 63 6b 20 28 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 64 65   ┆utblock ( octets);         if de┆
0x049d40…049d60             62 75 67 34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 61   ┆bug4 then  writeln ( output, ' a┆
0x049d60…049d80             66 74 65 72 20 20 70 75 74 62 6c 6f 63 6b 20 20 27 2c 20 6f 63 74 65 74 73 2c 20 27 20 62 79 74   ┆fter  putblock  ', octets, ' byt┆
0x049d80…049da0             65 73 20 27 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 70 72 69 6e 74 5f 63 6f 64 65 20 74 68   ┆es ');          if print_code th┆
0x049da0…049dc0             65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 63 6f 64   ┆en    begin    for p := 1 to cod┆
0x049dc0…049de0             65 5f 77 6f 72 64 73 20 64 6f 0a 09 20 20 20 20 62 65 67 69 6e 0a 09 20 20 20 20 20 20 69 66 20   ┆e_words do      begin        if ┆
0x049de0…049e00             28 70 20 6d 6f 64 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 29 20 3d 20 31 20 74 68 65 6e 0a 09   ┆(p mod print_pr_line) = 1 then  ┆
0x049e00…049e20 (19, 1, 7)  09 62 65 67 69 6e 0a 09 09 6d 61 70 5f 69 6e 63 72 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 32   ┆ begin   map_incr ( code_addr, 2┆
0x049e20…049e40             20 2a 20 70 20 2d 20 32 2c 20 6d 61 70 5f 61 64 64 72 29 3b 0a 09 09 77 72 69 74 65 20 28 20 6f   ┆ * p - 2, map_addr);   write ( o┆
0x049e40…049e60             75 74 70 75 74 2c 20 73 74 72 68 65 78 20 28 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 6d   ┆utput, strhex ( first_mem_no + m┆
0x049e60…049e80             61 70 5f 61 64 64 72 2e 62 61 73 65 20 73 68 6c 20 31 29 2c 20 27 2e 27 2c 20 73 74 72 68 65 78   ┆ap_addr.base shl 1), '.', strhex┆
0x049e80…049ea0             20 28 20 6d 61 70 5f 61 64 64 72 2e 64 69 73 70 29 2c 0a 09 09 20 27 20 27 2c 20 73 74 72 68 65   ┆ ( map_addr.disp),    ' ', strhe┆
0x049ea0…049ec0             78 20 28 70 2a 32 20 2d 20 32 29 2c 20 27 3a 27 29 0a 09 09 65 6e 64 3b 0a 09 20 20 20 20 20 20   ┆x (p*2 - 2), ':')   end;        ┆
0x049ec0…049ee0             77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 32 2c 20 73 74 72 68 65 78 20 28 0a 09   ┆write ( output, '':2, strhex (  ┆
0x049ee0…049f00             20 20 20 20 20 20 20 73 77 61 70 20 28 20 67 65 74 5f 62 79 74 65 20 28 20 63 6f 64 65 5f 61 64   ┆       swap ( get_byte ( code_ad┆
0x049f00…049f20             64 72 2c 20 70 2d 31 20 29 20 2b 20 67 65 74 5f 62 79 74 65 20 28 20 63 6f 64 65 5f 61 64 64 72   ┆dr, p-1 ) + get_byte ( code_addr┆
0x049f20…049f40             2c 70 29 20 29 29 29 3b 0a 09 20 20 20 20 20 20 69 66 20 28 20 70 20 6d 6f 64 20 70 72 69 6e 74   ┆,p) )));        if ( p mod print┆
0x049f40…049f60             5f 70 72 5f 6c 69 6e 65 29 20 3d 20 30 20 74 68 65 6e 0a 09 09 77 72 69 74 65 6c 6e 20 28 20 6f   ┆_pr_line) = 0 then   writeln ( o┆
0x049f60…049f80             75 74 70 75 74 29 3b 0a 09 20 20 20 20 20 20 65 6e 64 3b 20 20 20 28 2a 20 20 66 6f 72 20 20 70   ┆utput);        end;   (*  for  p┆
0x049f80…049fa0             20 20 2a 29 0a 0a 09 20 20 20 20 69 66 20 28 20 70 20 6d 6f 64 20 70 72 69 6e 74 5f 70 72 5f 6c   ┆  *)       if ( p mod print_pr_l┆
0x049fa0…049fc0             69 6e 65 29 20 3c 3e 20 30 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆ine) <> 0 then  writeln ( output┆
0x049fc0…049fe0             29 3b 0a 09 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 0a 09 20 20 20 20 65   ┆);      writeln ( output)      e┆
0x049fe0…04a000             6e 64 3b 20 20 28 2a 20 20 69 66 20 70 72 69 6e 74 20 63 6f 64 65 20 20 2a 29 0a 0a 0a 09 20 65   ┆nd;  (*  if print code  *)     e┆
0x04a000…04a020 (19, 1, 8)  6e 64 3b 20 28 2a 20 6f 75 74 70 75 74 20 65 74 63 20 2a 29 0a 20 20 20 20 0a 20 20 20 20 69 66   ┆nd; (* output etc *)          if┆
0x04a020…04a040             20 6c 6f 61 64 65 72 6d 61 70 5f 65 72 72 20 74 68 65 6e 20 68 61 6c 74 20 28 20 31 29 3b 09 28   ┆ loadermap_err then halt ( 1); (┆
0x04a040…04a060             2a 20 20 73 65 74 20 65 72 72 6f 72 6c 65 76 65 6c 20 31 20 20 2a 29 0a 20 20 20 20 72 65 61 64   ┆*  set errorlevel 1  *)     read┆
0x04a060…04a080             68 65 61 64 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 68 65 61 64 29 3b 0a 0a 20 20 20 20   ┆head ( in_obj_file, head);      ┆
0x04a080…04a0a0             65 6e 64 3b 20 28 2a 20 77 68 69 6c 65 20 64 65 73 63 72 2d 6c 65 6e 67 74 68 20 3e 20 30 20 2a   ┆end; (* while descr-length > 0 *┆
0x04a0a0…04a0c0             29 0a 0a 0a 20 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b   ┆)     close_file ( in_obj_file);┆
0x04a0c0…04a0e0             0a 0a 20 20 69 66 20 6e 6f 74 20 61 66 74 65 72 5f 6c 69 62 20 74 68 65 6e 20 20 73 74 61 72 74   ┆    if not after_lib then  start┆
0x04a0e0…04a100             5f 61 64 64 72 20 3a 3d 20 74 6f 70 5f 6f 66 5f 62 69 6e 3b 0a 0a 20 20 65 6e 64 3b 20 20 28 2a   ┆_addr := top_of_bin;    end;  (*┆
0x04a100…04a120             20 20 72 65 61 64 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 20 2a 29 0a 0a 20 20 65 6e 64 20 20 28   ┆  read object file  *)    end  (┆
0x04a120…04a140             2a 20 20 69 66 20 73 6f 75 72 63 65 20 66 69 6c 65 20 20 2a 29 0a 0a 20 20 65 6e 64 20 20 28 2a   ┆*  if source file  *)    end  (*┆
0x04a140…04a160             20 20 77 68 69 6c 65 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3c 20 69 74 65 6d 73 20 20 2e 2e   ┆  while  param_index < items  ..┆
0x04a160…04a180             2e 2e 2e 2e 20 20 2a 29 3b 0a 0a 20 75 6e 74 69 6c 20 6c 61 73 74 5f 73 63 61 6e 3b 0a 0a 0a 28   ┆....  *);   until last_scan;   (┆
0x04a180…04a1a0             2a 20 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 20 69 73 20 65 78 68 61 75 73 74   ┆*  the parameter list is exhaust┆
0x04a1a0…04a1c0             65 64 2e 20 20 20 2a 29 0a 0a 0a 28 2a 20 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 20 6d 6f 64   ┆ed.   *)   (*  terminate the mod┆
0x04a1c0…04a1e0             75 6c 65 73 20 3a 20 20 2a 29 0a 0a 20 20 6f 75 74 5f 65 6e 64 3b 20 20 20 20 20 20 20 20 20 20   ┆ules :  *)    out_end;          ┆
0x04a1e0…04a200             20 20 20 20 20 20 20 20 20 28 2a 20 20 6c 61 73 74 20 63 68 65 63 6b 73 75 6d 73 20 20 2a 29 0a   ┆         (*  last checksums  *) ┆
0x04a200…04a220 (19, 1, 9)  20 20 63 6c 6f 73 65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a 20 20 63 6c 6f 73 65 69 6e 64 65   ┆  closefile ( datf);   closeinde┆
0x04a220…04a240             78 20 28 20 69 6e 78 66 29 3b 0a 20 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 3d 20 66 61 6c   ┆x ( inxf);   database_open:= fal┆
0x04a240…04a260             73 65 3b 0a 20 20 65 72 61 73 65 20 28 20 64 61 74 66 2e 66 29 3b 0a 20 20 65 72 61 73 65 20 28   ┆se;   erase ( datf.f);   erase (┆
0x04a260…04a280             20 69 6e 78 66 2e 64 2e 66 29 3b 0a 0a 69 66 20 74 72 75 65 7b 64 65 62 75 67 63 61 74 7d 20 74   ┆ inxf.d.f);  if true{debugcat} t┆
0x04a280…04a2a0             68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b   ┆hen   begin   writeln ( output);┆
0x04a2a0…04a2c0             0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20   ┆   writeln ( output, '':margin, ┆
0x04a2c0…04a2e0             27 20 20 20 6e 6f 20 6f 66 20 65 78 74 65 72 6e 61 6c 73 20 20 20 3a 20 27 2c 20 6c 61 73 74 5f   ┆'   no of externals   : ', last_┆
0x04a2e0…04a300             65 78 74 65 72 6e 61 6c 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆external);   end;   writeln ( ou┆
0x04a300…04a320             74 70 75 74 29 3b 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 20 65   ┆tput); writeln ( output, '--   e┆
0x04a320…04a340             6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b   ┆nd of job.'); writeln ( output);┆
0x04a340…04a360             0a 68 61 6c 74 20 28 20 6d 79 5f 65 78 63 6f 64 65 29 3b 0a 65 6e 64 20 2e 0a 28 2a 2d 2d 2d 2d   ┆ halt ( my_excode); end . (*----┆
0x04a360…04a380             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 65 6e 64 20 6f 66 20 43 72 6f 73 6c 69 6e 6b   ┆---------------- end of Croslink┆
0x04a380…04a3a0             20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29   ┆ -----------------------------*)┆
0x04a3a0…04a3c0             0a 0c 0a 01 45 20 31 0a 0a 0a 0a 28 2a 20 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 20 6d 6f 64   ┆    E 1    (*  terminate the mod┆
0x04a3c0…04a3e0             75 6c 65 73 20 3a 20 20 2a 29 0a 0a 20 20 6f 75 74 5f 65 6e 64 3b 20 20 20 20 20 20 20 20 20 20   ┆ules :  *)    out_end;          ┆
0x04a3e0…04a400             20 20 20 20 20 20 20 20 20 28 2a 20 20 6c 61 73 74 20 63 68 65 63 6b 73 75 6d 73 20 20 2a 29 0a   ┆         (*  last checksums  *) ┆
0x04a400…04a420 (19, 1, 10) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 73 2e 75 74 69 6c 2e 64 6f 63 00 00 00   ┆../sw2103/src/util/s.util.doc   ┆
0x04a420…04a440             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x04a460…04a480             00 00 00 00 20 20 20 34 34 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       440     255     146      ┆
0x04a480…04a4a0             20 20 20 34 33 36 30 20 20 35 33 34 30 31 33 33 35 33 36 20 20 31 30 37 35 36 00 20 00 00 00 00   ┆   4360  5340133536  10756      ┆
0x04a4a0…04a4c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x04a600…04a620 (19, 1, 11) 01 68 33 35 34 32 39 0a 01 73 20 30 30 30 30 33 2f 30 30 30 30 32 2f 30 30 30 37 35 0a 01 64 20   ┆ h35429  s 00003/00002/00075  d ┆
0x04a620…04a640             44 20 31 2e 32 20 39 33 2f 30 32 2f 31 36 20 31 30 3a 34 33 3a 35 37 20 73 77 32 31 30 33 20 32   ┆D 1.2 93/02/16 10:43:57 sw2103 2┆
0x04a640…04a660             20 31 0a 01 63 20 44 61 74 61 20 6d 6f 64 75 6c 65 73 20 6e 6f 77 20 61 63 63 65 70 74 65 64 20   ┆ 1  c Data modules now accepted ┆
0x04a660…04a680             69 6e 20 50 4c 49 42 4a 4f 49 4e 2e 0a 01 65 0a 01 73 20 30 30 30 37 37 2f 30 30 30 30 30 2f 30   ┆in PLIBJOIN.  e  s 00077/00000/0┆
0x04a680…04a6a0             30 30 30 30 0a 01 64 20 44 20 31 2e 31 20 39 33 2f 30 32 2f 31 36 20 31 30 3a 33 31 3a 33 34 20   ┆0000  d D 1.1 93/02/16 10:31:34 ┆
0x04a6a0…04a6c0             73 77 32 31 30 33 20 31 20 30 0a 01 63 20 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 39 32 2e   ┆sw2103 1 0  c Description of 92.┆
0x04a6c0…04a6e0             31 30 2e 31 32 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 0a 01 44 20 32 0a   ┆10.12  e  u  U  t  T  I 1   D 2 ┆
0x04a6e0…04a700             09 09 09 09 09 09 09 31 39 39 32 2e 31 30 2e 31 32 20 2f 20 48 45 4a 0a 01 45 20 32 0a 01 49 20   ┆       1992.10.12 / HEJ  E 2  I ┆
0x04a700…04a720             32 0a 09 09 09 09 09 09 09 31 39 39 33 2e 30 32 2e 31 36 20 2f 20 48 45 4a 0a 01 45 20 32 0a 0a   ┆2        1993.02.16 / HEJ  E 2  ┆
0x04a720…04a740             09 09 55 74 69 6c 69 74 69 65 73 20 66 6f 72 20 20 53 57 32 31 30 33 0a 09 09 3d 3d 3d 3d 3d 3d   ┆  Utilities for  SW2103   ======┆
0x04a740…04a760             3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 0a 09 53 6f 6d 65 20 75 74 69 6c 69 74 79 20   ┆===============    Some utility ┆
0x04a760…04a780             70 72 6f 67 72 61 6d 73 20 66 6f 72 20 74 68 65 20 53 57 32 31 30 33 20 70 61 63 6b 61 67 65 20   ┆programs for the SW2103 package ┆
0x04a780…04a7a0             61 72 65 20 70 6c 61 63 65 64 20 69 6e 20 20 64 69 72 65 63 74 6f 72 79 0a 09 53 57 32 31 30 33   ┆are placed in  directory  SW2103┆
0x04a7a0…04a7c0             2e 20 54 68 65 20 73 6f 75 72 63 65 73 20 61 72 65 20 69 6e 20 20 64 69 72 65 63 74 6f 72 79 20   ┆. The sources are in  directory ┆
0x04a7c0…04a7e0             53 57 32 31 30 33 5c 54 45 58 54 2e 0a 0a 0a 09 33 2e 20 46 6c 6f 70 70 79 20 44 69 73 63 20 43   ┆SW2103\TEXT.    3. Floppy Disc C┆
0x04a7e0…04a800             6f 6e 74 65 6e 74 73 3a 0a 0a 09 43 4f 4d 50 52 45 53 53 2e 45 58 45 09 43 6f 6d 70 72 65 73 73   ┆ontents:   COMPRESS.EXE Compress┆
0x04a800…04a820 (19, 1, 12) 69 6e 67 20 6f 66 20 52 54 50 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 2e 0a 0a 09 43 52 4f 53 4c   ┆ing of RTP environments.   CROSL┆
0x04a820…04a840             49 4e 4b 2e 45 58 45 09 54 68 65 20 43 72 6f 73 73 20 6c 69 6e 6b 65 72 20 70 72 6f 67 72 61 6d   ┆INK.EXE The Cross linker program┆
0x04a840…04a860             2e 0a 0a 09 50 4c 49 42 2e 45 58 45 09 54 68 65 20 50 4c 49 42 49 4e 53 45 52 54 2c 20 50 4c 49   ┆.   PLIB.EXE The PLIBINSERT, PLI┆
0x04a860…04a880             42 44 45 4c 45 54 45 2c 20 50 4c 49 42 45 58 54 52 41 43 54 20 70 72 6f 67 72 61 6d 73 2e 0a 0a   ┆BDELETE, PLIBEXTRACT programs.  ┆
0x04a880…04a8a0             09 50 4c 49 42 43 4f 4e 56 2e 45 58 45 09 54 68 65 20 50 4c 49 42 43 4f 4e 56 45 52 54 20 70 72   ┆ PLIBCONV.EXE The PLIBCONVERT pr┆
0x04a8a0…04a8c0             6f 67 72 61 6d 2e 0a 0a 09 50 4c 49 42 4a 4f 49 4e 2e 45 58 45 09 57 6f 72 6b 73 20 61 73 20 50   ┆ogram.   PLIBJOIN.EXE Works as P┆
0x04a8c0…04a8e0             4c 49 42 20 2f 49 4e 53 45 52 54 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 63 68 65 63 6b 20   ┆LIB /INSERT with parametercheck ┆
0x04a8e0…04a900             61 73 20 43 52 4f 53 4c 49 4e 4b 2e 0a 0a 09 50 4c 49 42 4c 4f 4f 4b 2e 45 58 45 09 54 68 65 20   ┆as CROSLINK.   PLIBLOOK.EXE The ┆
0x04a900…04a920             50 4c 49 42 4c 4f 4f 4b 55 50 2c 20 50 4c 49 42 41 4c 4c 2c 20 50 4c 49 42 49 4d 41 47 45 20 70   ┆PLIBLOOKUP, PLIBALL, PLIBIMAGE p┆
0x04a920…04a940             72 6f 67 72 61 6d 73 2e 0a 0a 0a 09 34 2e 20 43 68 61 6e 67 65 73 0a 0a 20 20 20 20 20 20 20 20   ┆rograms.    4. Changes          ┆
0x04a940…04a960             42 69 6e 61 72 79 20 66 69 6c 65 73 20 61 72 65 20 61 63 63 65 73 73 65 64 20 69 6e 20 72 65 61   ┆Binary files are accessed in rea┆
0x04a960…04a980             64 20 6f 6e 6c 79 20 6d 6f 64 65 20 28 20 39 32 2e 30 37 2e 30 33 20 29 2e 0a 0a 09 50 4c 49 42   ┆d only mode ( 92.07.03 ).   PLIB┆
0x04a980…04a9a0             43 4f 4e 56 3a 20 31 2e 36 20 20 20 31 39 39 32 2e 30 32 2e 32 34 0a 09 20 20 45 72 72 6f 72 20   ┆CONV: 1.6   1992.02.24    Error ┆
0x04a9a0…04a9c0             63 6f 72 72 65 63 74 65 64 3a 20 56 45 52 53 49 4f 4e 2d 2e 50 32 32 20 75 73 65 64 20 61 73 20   ┆corrected: VERSION-.P22 used as ┆
0x04a9c0…04a9e0             64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65 2e 0a 0a 09 50 4c 49 42 4c 4f 4f 4b 3a 20 31 2e   ┆destination file.   PLIBLOOK: 1.┆
0x04a9e0…04aa00             32 30 20 20 20 31 39 39 32 2e 30 36 2e 32 35 0a 09 20 20 45 78 74 65 6e 73 69 6f 6e 20 2e 54 32   ┆20   1992.06.25    Extension .T2┆
0x04aa00…04aa20 (19, 1, 13) 32 20 69 73 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2e 0a 09 20 20 4f 70 74 69 6f 6e 20 2f 43 4f   ┆2 is accepted too.    Option /CO┆
0x04aa20…04aa40             4d 50 49 4c 45 52 20 61 6e 64 20 2f 44 45 54 41 49 4c 53 20 69 6e 74 72 6f 64 75 63 65 64 2e 0a   ┆MPILER and /DETAILS introduced. ┆
0x04aa40…04aa60             0a 09 50 4c 49 42 3a 20 31 2e 31 37 20 20 20 31 39 39 32 2e 30 35 2e 32 35 0a 09 20 20 45 78 74   ┆  PLIB: 1.17   1992.05.25    Ext┆
0x04aa60…04aa80             65 6e 73 69 6f 6e 20 2e 54 32 32 20 69 73 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2e 0a 0a 09 43   ┆ension .T22 is accepted too.   C┆
0x04aa80…04aaa0             52 4f 53 4c 49 4e 4b 3a 20 31 2e 31 32 20 20 20 31 39 39 32 2e 30 36 2e 32 36 0a 09 20 20 45 78   ┆ROSLINK: 1.12   1992.06.26    Ex┆
0x04aaa0…04aac0             74 65 6e 73 69 6f 6e 20 2e 54 32 32 20 69 73 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2e 0a 20 20   ┆tension .T22 is accepted too.   ┆
0x04aac0…04aae0             20 20 20 20 20 20 20 20 50 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 69 6e 73 70 65 63 74 20 61   ┆        Parameter type inspect a┆
0x04aae0…04ab00             63 63 65 70 74 65 64 20 61 73 20 65 71 75 61 6c 20 74 6f 20 76 61 72 2e 0a 20 20 20 20 20 20 20   ┆ccepted as equal to var.        ┆
0x04ab00…04ab20             20 20 20 45 72 72 6f 72 20 69 6e 20 63 68 65 63 6b 20 6f 66 20 70 61 72 61 6d 65 74 65 72 20 6c   ┆   Error in check of parameter l┆
0x04ab20…04ab40             69 73 74 73 20 63 6f 72 72 65 63 74 65 64 2e 0a 09 20 20 45 72 72 6f 72 20 22 6c 6f 61 64 65 72   ┆ists corrected.    Error "loader┆
0x04ab40…04ab60             20 6d 61 70 20 69 6e 63 6f 6e 73 69 73 74 65 6e 63 65 22 20 69 73 20 6d 61 64 65 20 66 61 74 61   ┆ map inconsistence" is made fata┆
0x04ab60…04ab80             6c 2e 0a 0a 01 44 20 32 0a 09 50 4c 49 42 4a 4f 49 4e 3a 20 31 2e 33 20 20 20 31 39 39 32 2e 30   ┆l.   D 2  PLIBJOIN: 1.3   1992.0┆
0x04ab80…04aba0             36 2e 30 32 0a 01 45 20 32 0a 01 49 20 32 0a 09 50 4c 49 42 4a 4f 49 4e 3a 20 31 2e 35 20 20 20   ┆6.02  E 2  I 2  PLIBJOIN: 1.5   ┆
0x04aba0…04abc0             31 39 39 33 2e 30 32 2e 31 36 0a 09 20 20 44 61 74 61 20 6d 6f 64 75 6c 65 73 20 61 72 65 20 61   ┆1993.02.16    Data modules are a┆
0x04abc0…04abe0             63 63 65 70 74 65 64 2e 0a 01 45 20 32 0a 09 20 20 45 78 74 65 6e 73 69 6f 6e 20 2e 54 32 32 20   ┆ccepted.  E 2    Extension .T22 ┆
0x04abe0…04ac00             69 73 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2e 0a 20 20 20 20 20 20 20 20 20 20 4c 49 42 2d 20   ┆is accepted too.           LIB- ┆
0x04ac00…04ac20 (19, 1, 14) 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 6c 6c 6f 77 65 64 2e 0a 0a 09 54 68 65 20 70 72 6f 67 72 61   ┆ no longer allowed.   The progra┆
0x04ac20…04ac40             6d 73 20 61 72 65 20 63 6f 6d 70 69 6c 65 64 20 62 79 20 54 55 52 42 4f 20 35 2e 35 20 6f 6e 20   ┆ms are compiled by TURBO 5.5 on ┆
0x04ac40…04ac60             61 20 55 4e 49 58 20 73 79 73 74 65 6d 2e 0a 0a 09 37 2e 20 4e 6f 74 65 73 0a 0a 09 43 61 6c 6c   ┆a UNIX system.   7. Notes   Call┆
0x04ac60…04ac80             20 73 79 6e 74 61 78 20 69 73 20 6d 61 64 65 20 61 73 20 63 6c 6f 73 65 20 74 6f 20 74 68 65 20   ┆ syntax is made as close to the ┆
0x04ac80…04aca0             63 61 6c 6c 69 6e 67 20 6f 66 20 52 54 50 33 35 30 32 32 20 61 73 0a 09 70 6f 73 73 69 62 6c 65   ┆calling of RTP35022 as  possible┆
0x04aca0…04acc0             2e 0a 09 43 61 6c 6c 69 6e 67 20 77 69 74 68 6f 75 74 20 70 61 72 61 6d 65 74 65 72 73 20 67 69   ┆.  Calling without parameters gi┆
0x04acc0…04ace0             76 65 73 20 68 65 6c 70 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 09 57 68 65 6e 20 72 75 6e 6e   ┆ves help information.  When runn┆
0x04ace0…04ad00             69 6e 67 20 6f 6e 20 52 43 37 35 30 20 79 6f 75 20 73 68 6f 75 6c 64 20 72 75 6e 20 74 68 65 20   ┆ing on RC750 you should run the ┆
0x04ad00…04ad20             43 48 41 52 38 20 61 6e 64 20 56 50 43 0a 09 70 72 6f 67 72 61 6d 20 66 69 72 73 74 20 6f 6e 20   ┆CHAR8 and VPC  program first on ┆
0x04ad20…04ad40             74 68 65 20 77 61 6e 74 65 64 20 63 6f 6e 73 6f 6c 65 2e 0a 0a 09 54 68 65 20 54 45 58 54 20 63   ┆the wanted console.   The TEXT c┆
0x04ad40…04ad60             6f 6e 74 61 69 6e 73 20 74 68 65 20 73 6f 75 72 63 65 73 20 69 6e 63 6c 75 64 69 6e 67 20 74 77   ┆ontains the sources including tw┆
0x04ad60…04ad80             6f 20 70 72 6f 67 72 61 6d 20 75 6e 69 74 73 2c 0a 09 6f 6e 65 20 77 69 74 68 20 63 61 6c 6c 20   ┆o program units,  one with call ┆
0x04ad80…04ada0             70 61 72 61 6d 65 74 65 72 20 72 65 61 64 69 6e 67 20 61 6e 64 20 64 61 74 61 66 6f 72 6d 61 74   ┆parameter reading and dataformat┆
0x04ada0…04adc0             73 20 66 6f 72 20 50 4c 49 42 2c 0a 09 61 6e 64 20 6f 6e 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20   ┆s for PLIB,  and one containing ┆
0x04adc0…04ade0             74 68 65 20 50 6f 6c 79 46 69 6c 65 20 72 6f 75 74 69 6e 65 73 2c 20 77 68 69 63 68 20 69 73 20   ┆the PolyFile routines, which is ┆
0x04ade0…04ae00             61 6e 0a 09 69 6e 64 65 78 2d 73 65 71 75 65 6e 74 69 61 6c 20 66 69 6c 65 20 73 79 73 74 65 6d   ┆an  index-sequential file system┆
0x04ae00…04ae20 (19, 1, 15) 20 70 61 63 6b 61 67 65 2e 0a 0a 0a 20 20 20 20 20 20 20 20 38 2e 20 44 6f 63 75 6d 65 6e 74 61   ┆ package.           8. Documenta┆
0x04ae20…04ae40             74 69 6f 6e 0a 0a 20 20 20 20 20 20 20 20 20 50 61 72 74 20 4e 6f 2e 09 54 69 74 6c 65 0a 0a 20   ┆tion           Part No. Title   ┆
0x04ae40…04ae60             20 20 20 20 20 20 20 20 39 39 30 30 30 39 39 34 09 52 43 33 35 30 32 2d 32 20 52 45 41 4c 2d 54   ┆        99000994 RC3502-2 REAL-T┆
0x04ae60…04ae80             49 4d 45 20 50 41 53 43 41 4c 0a 0a 09 20 37 39 38 36 30 30 35 30 09 53 57 32 31 30 33 20 50 61   ┆IME PASCAL    79860050 SW2103 Pa┆
0x04ae80…04aea0             63 6b 61 67 65 20 44 65 73 63 72 69 70 74 69 6f 6e 0a 0a 09 20 4a 79 64 73 6b 20 54 65 6c 65 66   ┆ckage Description    Jydsk Telef┆
0x04aea0…04aec0             6f 6e 09 27 48 6f 77 20 74 6f 20 75 73 65 20 74 68 65 20 52 54 50 33 35 30 32 32 20 43 6f 6d 70   ┆on 'How to use the RTP35022 Comp┆
0x04aec0…04aee0             69 6c 65 72 0a 09 09 09 75 6e 64 65 72 20 4d 53 2d 44 4f 53 20 61 74 20 4a 54 27 20 20 20 20 20   ┆iler    under MS-DOS at JT'     ┆
0x04aee0…04af00             20 20 20 20 20 2f 4a 55 4d 0a 0a 01 45 20 31 0a 20 73 68 6f 75 6c 64 20 72 75 6e 20 74 68 65 20   ┆     /JUM   E 1  should run the ┆
0x04af00…04af20             43 48 41 52 38 20 61 6e 64 20 56 50 43 0a 09 70 72 6f 67 72 61 6d 20 66 69 72 73 74 20 6f 6e 20   ┆CHAR8 and VPC  program first on ┆
0x04af20…04af40             74 68 65 20 77 61 6e 74 65 64 20 63 6f 6e 73 6f 6c 65 2e 0a 0a 09 54 68 65 20 54 45 58 54 20 63   ┆the wanted console.   The TEXT c┆
0x04af40…04af60             6f 6e 74 61 69 6e 73 20 74 68 65 20 73 6f 75 72 63 65 73 20 69 6e 63 6c 75 64 69 6e 67 20 74 77   ┆ontains the sources including tw┆
0x04af60…04af80             6f 20 70 72 6f 67 72 61 6d 20 75 6e 69 74 73 2c 0a 09 6f 6e 65 20 77 69 74 68 20 63 61 6c 6c 20   ┆o program units,  one with call ┆
0x04af80…04afa0             70 61 72 61 6d 65 74 65 72 20 72 65 61 64 69 6e 67 20 61 6e 64 20 64 61 74 61 66 6f 72 6d 61 74   ┆parameter reading and dataformat┆
0x04afa0…04afc0             73 20 66 6f 72 20 50 4c 49 42 2c 0a 09 61 6e 64 20 6f 6e 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20   ┆s for PLIB,  and one containing ┆
0x04afc0…04afe0             74 68 65 20 50 6f 6c 79 46 69 6c 65 20 72 6f 75 74 69 6e 65 73 2c 20 77 68 69 63 68 20 69 73 20   ┆the PolyFile routines, which is ┆
0x04afe0…04b000             61 6e 0a 09 69 6e 64 65 78 2d 73 65 71 75 65 6e 74 69 61 6c 20 66 69 6c 65 20 73 79 73 74 65 6d   ┆an  index-sequential file system┆
0x04b000…04b020 (20, 0, 1)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 74 65 73 74 2f 64 6f 6b 00 00 00 00 00   ┆../sw2103/src/util/test/dok     ┆
0x04b020…04b040             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x04b060…04b080             00 00 00 00 20 20 20 36 36 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       660     255     146      ┆
0x04b080…04b0a0             20 20 20 20 32 31 34 20 20 35 33 34 30 31 33 31 37 33 35 20 20 31 30 35 30 35 00 20 00 00 00 00   ┆    214  5340131735  10505      ┆
0x04b0a0…04b0c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x04b200…04b220 (20, 0, 2)  0a 39 33 2e 30 32 2e 31 36 20 20 20 48 45 4a 20 20 20 50 6c 69 62 6a 6f 69 6e 20 31 2e 35 20 20   ┆ 93.02.16   HEJ   Plibjoin 1.5  ┆
0x04b220…04b240             6a 6f 69 6e 20 61 66 20 64 61 74 61 20 6d 6f 64 75 6c 65 72 2e 0a 09 09 54 65 73 74 20 65 72 20   ┆join af data moduler.   Test er ┆
0x04b240…04b260             75 64 66 30 72 74 20 76 65 64 20 61 74 20 75 64 66 30 72 65 20 74 65 73 74 6a 6f 69 6e 2e 62 61   ┆udf0rt ved at udf0re testjoin.ba┆
0x04b260…04b280             74 20 75 6e 64 65 72 20 56 50 49 58 0a 09 09 69 20 2f 75 73 72 32 2f 73 77 35 30 32 30 2f 73 72   ┆t under VPIX   i /usr2/sw5020/sr┆
0x04b280…04b2a0             63 2f 69 6d 63 2f 61 75 78 2e 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆c/imc/aux.                      ┆
0x04b2a0…04b2c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x8…]
0x04b3c0…04b3e0             00 00 00 00 00 00 00 00 13 00 00 00 04 00 00 00 e0 6d 40 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                Яm@             ┆
0x04b3e0…04b400             ec f1 ff 7f 79 3a 00 00 18 04 00 00 7f f4 ff 7f 7b f4 ff 7f 2d 3b 00 00 04 00 00 00 3b f2 ff 7f   ┆Вы  y:       З  {З  -;      ;Ы  ┆
0x04b400…04b420 (20, 0, 3)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 75 74 69 6c 2f 78 62 6f 6f 74 6c 69 6e 6b 00 00 00 00   ┆../sw2103/src/util/xbootlink    ┆
0x04b420…04b440             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x04b460…04b480             00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       640     255     146      ┆
0x04b480…04b4a0             20 31 34 31 34 35 36 20 20 35 33 36 34 35 31 36 31 34 35 20 20 31 31 30 36 36 00 20 00 00 00 00   ┆ 141456  5364516145  11066      ┆
0x04b4a0…04b4c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x04b600…04b620 (20, 0, 4)  50 72 6f 67 72 61 6d 20 42 6f 6f 74 6c 69 6e 6b 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆Program Bootlink;  (*-----------┆
0x04b620…04b640             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x04b640…04b660             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 4d 6f 64 75 6c 65 3a 20 20 20   ┆------------------ -- Module:   ┆
0x04b660…04b680             20 43 72 6f 73 73 20 6c 69 6e 6b 65 72 20 20 20 20 77 69 74 68 20 73 74 72 69 63 74 20 70 61 72   ┆ Cross linker    with strict par┆
0x04b680…04b6a0             61 6d 65 74 65 72 20 63 6f 6d 70 61 72 65 20 61 73 20 6f 6c 64 20 63 72 6f 73 73 6c 69 6e 6b 2e   ┆ameter compare as old crosslink.┆
0x04b6a0…04b6c0             0a 2d 2d 20 46 69 6c 65 3a 20 20 20 20 20 20 42 4f 4f 54 4c 49 4e 4b 2e 50 41 53 0a 2d 2d 20 50   ┆ -- File:      BOOTLINK.PAS -- P┆
0x04b6c0…04b6e0             61 63 6b 61 67 65 3a 20 20 20 53 57 32 31 30 33 20 20 20 20 53 75 62 73 79 73 74 65 6d 3a 20 55   ┆ackage:   SW2103    Subsystem: U┆
0x04b6e0…04b700             54 49 4c 49 54 59 20 20 20 50 72 6f 67 72 61 6d 3a 20 42 4f 4f 54 4c 49 4e 4b 0a 2d 2d 0a 2d 2d   ┆TILITY   Program: BOOTLINK -- --┆
0x04b700…04b720             20 43 6f 6e 74 65 6e 74 73 3a 20 20 41 20 72 74 70 33 35 30 32 20 6c 69 62 72 61 72 79 20 6d 61   ┆ Contents:  A rtp3502 library ma┆
0x04b720…04b740             69 6e 74 65 6e 61 6e 63 65 20 70 72 6f 67 72 61 6d 2c 0a 2d 2d 09 20 20 20 20 20 20 66 6f 72 20   ┆intenance program, --       for ┆
0x04b740…04b760             63 72 6f 73 73 6c 69 6e 6b 69 6e 67 20 6f 66 20 6f 62 6a 65 63 74 20 70 72 6f 67 72 61 6d 73 20   ┆crosslinking of object programs ┆
0x04b760…04b780             69 6e 74 6f 20 61 20 6c 69 62 72 61 72 79 2e 0a 2d 2d 0a 2d 2d 20 50 72 6f 67 72 61 6d 20 63 61   ┆into a library. -- -- Program ca┆
0x04b780…04b7a0             6c 6c 3a 20 20 42 4f 4f 54 4c 49 4e 4b 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 2e 2e 2e 20 3c 70   ┆ll:  BOOTLINK <parameter> ... <p┆
0x04b7a0…04b7c0             61 72 61 6d 65 74 65 72 3e 0a 2d 2d 09 3c 70 61 72 61 6d 65 74 65 72 3e 20 3a 09 3d 3c 66 69 6c   ┆arameter> -- <parameter> : =<fil┆
0x04b7c0…04b7e0             65 70 61 74 68 3e 09 09 6e 61 6d 65 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c 65   ┆epath>  name of destination file┆
0x04b7e0…04b800             0a 2d 2d 09 09 09 50 41 52 41 4d 49 4e 2d 3c 66 69 6c 65 70 61 74 68 3e 09 6e 61 6d 65 20 6f 66   ┆ --   PARAMIN-<filepath> name of┆
0x04b800…04b820 (20, 0, 5)  20 66 69 6c 65 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 0a 2d 2d 20 20 20 20 20 20 20 20   ┆ file with parameters --        ┆
0x04b820…04b840             20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 41 52 54 2d 3c 68 65 78 3e 2d 3c 68 65 78 3e 09   ┆              START-<hex>-<hex> ┆
0x04b840…04b860             61 75 74 6f 6c 6f 61 64 20 73 74 61 72 74 20 61 64 64 72 65 73 73 0a 2d 2d 09 09 09 4d 41 50 2d   ┆autoload start address --   MAP-┆
0x04b860…04b880             3c 79 65 73 6e 6f 3e 09 09 6c 69 73 74 20 69 6e 63 6c 75 64 65 64 20 70 72 6f 67 72 61 6d 73 0a   ┆<yesno>  list included programs ┆
0x04b880…04b8a0             2d 2d 09 09 09 50 52 49 4e 54 2d 3c 79 65 73 6e 6f 6e 75 6d 62 3e 20 20 20 20 20 20 20 6c 69 73   ┆--   PRINT-<yesnonumb>       lis┆
0x04b8a0…04b8c0             74 20 6f 66 20 63 6f 72 65 69 6d 61 67 65 0a 2d 2d 09 09 09 53 4f 55 52 43 45 50 41 54 48 2d 3c   ┆t of coreimage --   SOURCEPATH-<┆
0x04b8c0…04b8e0             64 69 72 70 61 74 68 3e 09 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 0a 2d 2d 09 09 09 4c 49 42   ┆dirpath> directory path --   LIB┆
0x04b8e0…04b900             2d 3c 66 69 6c 65 70 61 74 68 3e 09 09 6e 61 6d 65 20 6f 66 20 6c 69 62 20 66 69 6c 65 0a 2d 2d   ┆-<filepath>  name of lib file --┆
0x04b900…04b920             09 09 09 3c 66 69 6c 65 70 61 74 68 3e 09 09 6e 61 6d 65 20 6f 66 20 6f 62 6a 65 63 74 20 66 69   ┆   <filepath>  name of object fi┆
0x04b920…04b940             6c 65 0a 2d 2d 0a 2d 2d 09 49 66 20 6e 6f 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 73 70 65 63   ┆le -- -- If no extension is spec┆
0x04b940…04b960             69 66 69 65 64 20 66 6f 72 20 74 68 65 20 6c 69 62 20 61 6e 64 20 6f 62 6a 65 63 74 20 66 69 6c   ┆ified for the lib and object fil┆
0x04b960…04b980             65 73 2c 0a 2d 2d 09 65 78 74 65 6e 73 69 6f 6e 20 27 2e 50 32 32 27 20 69 73 20 75 73 65 64 2e   ┆es, -- extension '.P22' is used.┆
0x04b980…04b9a0             0a 2d 2d 0a 2d 2d 0a 2d 2d 20 50 72 65 72 65 71 75 69 73 69 74 65 73 3a 20 20 44 4f 53 2c 20 43   ┆ -- -- -- Prerequisites:  DOS, C┆
0x04b9a0…04b9c0             62 72 65 61 6b 2c 20 50 4c 49 42 55 4e 49 54 2c 20 50 6f 6c 79 66 69 6c 65 3b 0a 2d 2d 0a 2d 2d   ┆break, PLIBUNIT, Polyfile; -- --┆
0x04b9c0…04b9e0             20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3a 20 20 53 57 32 31 30 33 0a 2d 2d 0a 2d 2d 20 50 72   ┆ Documentation:  SW2103 -- -- Pr┆
0x04b9e0…04ba00             6f 67 72 61 6d 6d 65 64 20 62 79 20 42 42 2c 20 48 45 4a 0a 2d 2d 20 43 6f 70 79 72 69 67 68 74   ┆ogrammed by BB, HEJ -- Copyright┆
0x04ba00…04ba20 (20, 0, 6)  20 28 43 29 20 31 39 38 39 20 62 79 20 52 43 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 0a 2d 2d   ┆ (C) 1989 by RC International --┆
0x04ba20…04ba40             20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 39 32 20 62 79 20 44 41 4e 4f 53 49 0a 2d 2d   ┆ Copyright (C) 1992 by DANOSI --┆
0x04ba40…04ba60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x04ba60…04ba80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d   ┆----------------------------- --┆
0x04ba80…04baa0             20 56 65 72 73 69 6f 6e 20 68 69 73 74 6f 72 79 3a 0a 2d 2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44   ┆ Version history: -- -- Vers.  D┆
0x04baa0…04bac0             61 74 65 20 20 20 20 20 20 49 6e 69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d   ┆ate      Init. Text -- ----   --┆
0x04bac0…04bae0             2d 2d 2d 2d 2d 2d 20 20 2d 2d 2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆------  ----  ------------------┆
0x04bae0…04bb00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 31 2e 30 20 20   ┆-------------------- -- -- 1.0  ┆
0x04bb00…04bb20             20 20 38 35 30 36 31 33 20 20 20 20 62 62 20 20 20 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20   ┆  850613    bb    problems with ┆
0x04bb20…04bb40             70 72 69 6e 74 20 64 75 72 69 6e 67 20 6d 6f 64 75 6c 65 20 73 68 69 66 74 0a 2d 2d 09 09 09 20   ┆print during module shift --    ┆
0x04bb40…04bb60             20 74 68 65 20 74 77 6f 20 6c 61 73 74 20 62 79 74 65 73 20 69 6e 20 65 76 65 72 79 20 6d 6f 64   ┆ the two last bytes in every mod┆
0x04bb60…04bb80             75 6c 65 20 61 72 65 0a 2d 2d 09 09 09 20 20 6e 65 76 65 72 20 61 6c 6c 6f 63 61 74 65 64 0a 2d   ┆ule are --     never allocated -┆
0x04bb80…04bba0             2d 20 31 2e 30 20 20 20 20 38 35 30 38 31 35 20 20 20 20 62 62 20 20 20 20 63 68 65 63 6b 20 6f   ┆- 1.0    850815    bb    check o┆
0x04bba0…04bbc0             6e 20 6f 62 6a 65 63 74 66 69 6c 65 20 74 61 69 6c 20 61 6e 64 20 6f 75 74 70 75 74 20 6f 66 0a   ┆n objectfile tail and output of ┆
0x04bbc0…04bbe0             2d 2d 09 09 09 20 20 69 6d 61 67 65 66 69 6c 65 20 74 61 69 6c 20 69 6e 20 6f 75 74 70 75 74 66   ┆--     imagefile tail in outputf┆
0x04bbe0…04bc00             69 6c 65 0a 2d 2d 20 31 2e 30 20 20 20 20 38 35 31 31 30 37 20 20 20 20 6a 61 62 61 20 20 61 74   ┆ile -- 1.0    851107    jaba  at┆
0x04bc00…04bc20 (20, 0, 7)  20 6d 6f 73 74 20 36 34 4b 20 62 79 74 65 73 20 70 72 6f 67 72 61 6d 73 20 6d 61 79 20 62 65 0a   ┆ most 64K bytes programs may be ┆
0x04bc20…04bc40             2d 2d 09 09 09 20 20 63 72 6f 73 73 6c 69 6e 6b 65 64 0a 2d 2d 09 09 09 20 20 70 61 73 63 61 6c   ┆--     crosslinked --     pascal┆
0x04bc40…04bc60             68 61 6c 74 20 69 6e 74 72 6f 64 75 63 65 64 0a 2d 2d 09 09 09 20 20 77 72 69 74 65 68 61 6c 66   ┆halt introduced --     writehalf┆
0x04bc60…04bc80             77 6f 72 64 73 20 69 6e 74 72 6f 64 75 63 65 64 0a 2d 2d 20 31 2e 30 20 20 20 20 38 36 30 39 32   ┆words introduced -- 1.0    86092┆
0x04bc80…04bca0             36 20 20 20 20 62 62 20 20 20 20 63 6f 70 69 65 73 20 6e 6f 74 5f 75 73 65 64 20 77 6f 72 64 73   ┆6    bb    copies not_used words┆
0x04bca0…04bcc0             20 69 6e 20 64 65 73 63 72 69 70 74 6f 72 0a 2d 2d 09 09 09 20 20 73 65 67 6d 65 6e 74 20 70 61   ┆ in descriptor --     segment pa┆
0x04bcc0…04bce0             72 74 20 31 0a 2d 2d 20 31 2e 31 20 20 20 20 38 36 31 30 33 31 20 20 20 20 62 62 20 20 20 20 67   ┆rt 1 -- 1.1    861031    bb    g┆
0x04bce0…04bd00             65 6e 65 72 61 6c 20 63 6c 65 61 6e 75 70 20 62 65 63 61 75 73 65 20 73 6f 75 72 63 65 20 69 73   ┆eneral cleanup because source is┆
0x04bd00…04bd20             20 6e 6f 0a 2d 2d 09 09 09 20 20 6c 6f 6e 67 65 72 20 72 63 38 30 30 30 20 73 6f 75 72 63 65 0a   ┆ no --     longer rc8000 source ┆
0x04bd20…04bd40             2d 2d 20 31 2e 31 20 20 20 20 38 36 31 31 30 33 20 20 20 20 62 62 20 20 20 20 63 6f 73 6d 65 74   ┆-- 1.1    861103    bb    cosmet┆
0x04bd40…04bd60             69 63 73 0a 2d 2d 20 31 2e 31 20 20 20 20 38 37 30 36 30 39 20 20 20 20 62 62 20 20 20 20 43 6f   ┆ics -- 1.1    870609    bb    Co┆
0x04bd60…04bd80             6e 76 65 72 74 65 64 20 74 6f 20 6c 66 33 35 30 32 20 61 6e 64 20 66 70 33 35 30 32 0a 2d 2d 20   ┆nverted to lf3502 and fp3502 -- ┆
0x04bd80…04bda0             31 2e 33 20 20 20 20 38 38 31 30 32 33 20 20 20 20 62 62 20 20 20 20 45 78 74 5f 74 61 62 6c 65   ┆1.3    881023    bb    Ext_table┆
0x04bda0…04bdc0             20 63 68 61 6e 67 65 64 20 66 72 6f 6d 20 73 74 61 74 69 63 20 61 72 72 61 79 20 74 6f 20 6c 69   ┆ changed from static array to li┆
0x04bdc0…04bde0             73 74 20 6f 6e 20 68 65 61 70 2e 0a 2d 2d 20 31 2e 34 20 20 20 20 38 38 31 31 31 34 20 20 20 20   ┆st on heap. -- 1.4    881114    ┆
0x04bde0…04be00             62 62 20 20 20 20 42 61 6c 61 6e 63 65 64 20 62 69 6e 61 72 79 20 73 65 61 72 63 68 20 69 6e 74   ┆bb    Balanced binary search int┆
0x04be00…04be20 (20, 0, 8)  72 6f 64 75 63 65 64 0a 2d 2d 0a 2d 2d 20 56 65 72 73 2e 20 20 44 61 74 65 20 20 20 20 20 20 49   ┆roduced -- -- Vers.  Date      I┆
0x04be20…04be40             6e 69 74 2e 20 54 65 78 74 0a 2d 2d 20 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 20 2d 2d   ┆nit. Text -- ----   --------  --┆
0x04be40…04be60             2d 2d 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--  ----------------------------┆
0x04be60…04be80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 31 2e 34 20 20 20 20 38 39 2e 31 30 2e 31 38 20 20 48   ┆---------- -- 1.4    89.10.18  H┆
0x04be80…04bea0             45 4a 20 20 20 46 69 72 73 74 20 54 75 72 62 6f 20 50 61 73 63 61 6c 20 76 65 72 73 69 6f 6e 2e   ┆EJ   First Turbo Pascal version.┆
0x04bea0…04bec0             0a 2d 2d 20 20 20 20 20 20 20 20 38 39 2e 31 31 2e 30 31 20 20 48 45 4a 20 20 20 50 72 6f 62 6c   ┆ --        89.11.01  HEJ   Probl┆
0x04bec0…04bee0             65 6d 73 20 77 69 74 68 20 68 65 61 70 73 69 7a 65 20 73 6f 6c 76 65 64 2e 0a 2d 2d 20 20 20 20   ┆ems with heapsize solved. --    ┆
0x04bee0…04bf00             20 20 20 20 38 39 2e 31 31 2e 30 32 20 20 48 45 4a 20 20 20 43 75 72 72 65 6e 74 20 64 69 72 20   ┆    89.11.02  HEJ   Current dir ┆
0x04bf00…04bf20             75 73 65 64 20 61 73 20 77 6f 72 6b 20 64 69 72 2e 0a 2d 2d 20 31 2e 35 20 20 20 20 39 30 2e 30   ┆used as work dir. -- 1.5    90.0┆
0x04bf20…04bf40             31 2e 30 38 20 20 48 45 4a 20 20 20 43 6f 64 65 5f 62 79 74 65 73 20 63 68 61 6e 67 65 64 20 74   ┆1.08  HEJ   Code_bytes changed t┆
0x04bf40…04bf60             6f 20 6c 6f 6e 67 69 6e 74 2c 20 62 75 74 20 73 74 69 6c 6c 20 3a 0a 2d 2d 09 09 09 20 20 38 35   ┆o longint, but still : --     85┆
0x04bf60…04bf80             31 31 30 37 3a 20 61 74 20 6d 6f 73 74 20 36 34 20 4b 20 62 79 74 65 73 20 70 72 6f 67 72 61 6d   ┆1107: at most 64 K bytes program┆
0x04bf80…04bfa0             73 2e 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 72 72   ┆s. --                        Err┆
0x04bfa0…04bfc0             6f 72 6c 65 76 65 6c 20 73 65 74 20 74 6f 20 31 20 69 66 20 6c 69 6e 6b 69 6e 67 20 6e 6f 74 20   ┆orlevel set to 1 if linking not ┆
0x04bfc0…04bfe0             73 6f 6c 76 65 64 2e 0a 2d 2d 20 31 2e 36 20 20 20 20 39 30 2e 30 32 2e 31 35 20 20 48 45 4a 20   ┆solved. -- 1.6    90.02.15  HEJ ┆
0x04bfe0…04c000             20 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 77 69 74 68 6f 75 74 20 65 78 74 65 6e 73 69 6f 6e   ┆  source files without extension┆
0x04c000…04c020 (20, 0, 9)  20 61 72 65 20 61 63 63 65 70 74 65 64 20 74 6f 6f 2e 0a 2d 2d 20 31 2e 37 20 20 20 20 39 30 2e   ┆ are accepted too. -- 1.7    90.┆
0x04c020…04c040             30 35 2e 33 30 20 20 48 45 4a 20 20 20 44 65 66 61 75 6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 27   ┆05.30  HEJ   Default extension '┆
0x04c040…04c060             50 32 32 27 2c 20 20 73 74 6f 70 5f 6d 61 72 6b 20 20 24 46 46 46 46 20 20 2d 3e 20 20 30 30 30   ┆P22',  stop_mark  $FFFF  ->  000┆
0x04c060…04c080             30 2e 0a 2d 2d 20 31 2e 38 20 20 20 20 39 31 2e 30 34 2e 31 38 20 20 48 45 4a 20 20 20 50 72 69   ┆0. -- 1.8    91.04.18  HEJ   Pri┆
0x04c080…04c0a0             6e 74 20 75 6e 72 65 73 6f 6c 76 65 64 20 72 65 66 65 72 65 6e 63 65 73 2c 20 66 72 65 65 6d 65   ┆nt unresolved references, freeme┆
0x04c0a0…04c0c0             6d 20 61 66 74 65 72 20 75 73 65 2e 0a 2d 2d 20 31 2e 39 20 20 20 20 39 32 2e 30 32 2e 32 34 20   ┆m after use. -- 1.9    92.02.24 ┆
0x04c0c0…04c0e0             20 48 45 4a 20 20 20 52 65 61 64 69 6e 67 20 6f 66 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 22 50   ┆ HEJ   Reading of argument to "P┆
0x04c0e0…04c100             52 49 4e 54 2d 22 20 63 68 61 6e 67 65 64 2c 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆RINT-" changed, --              ┆
0x04c100…04c120             20 20 20 20 20 20 20 20 20 20 63 6f 72 72 65 63 74 73 20 65 72 72 6f 72 20 72 65 70 6f 72 74 65   ┆          corrects error reporte┆
0x04c120…04c140             64 20 62 79 20 4c 45 49 20 20 39 31 2e 30 34 2e 31 36 2e 0a 2d 2d 20 31 2e 31 30 20 20 20 39 32   ┆d by LEI  91.04.16. -- 1.10   92┆
0x04c140…04c160             2e 30 34 2e 31 35 20 20 48 45 4a 20 20 20 45 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 63   ┆.04.15  HEJ   Equal_paramlists c┆
0x04c160…04c180             68 61 6e 67 65 64 20 74 6f 20 6c 65 74 20 66 72 6f 7a 65 6e 20 76 61 72 0a 2d 2d 20 20 20 20 20   ┆hanged to let frozen var --     ┆
0x04c180…04c1a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 69 6e 73 70 65 63 74 20 62   ┆                   and inspect b┆
0x04c1a0…04c1c0             65 20 63 6f 6d 70 61 74 69 62 6c 65 2e 0a 2d 2d 20 31 2e 31 31 20 20 20 39 32 2e 30 35 2e 32 35   ┆e compatible. -- 1.11   92.05.25┆
0x04c1c0…04c1e0             20 20 48 45 4a 20 20 20 45 78 74 65 6e 73 69 6f 6e 20 27 2e 54 32 32 27 20 69 73 20 61 63 63 65   ┆  HEJ   Extension '.T22' is acce┆
0x04c1e0…04c200             70 74 65 64 20 74 6f 6f 2e 0a 2d 2d 20 31 2e 31 32 20 20 20 39 32 2e 30 36 2e 32 36 20 20 48 45   ┆pted too. -- 1.12   92.06.26  HE┆
0x04c200…04c220 (20, 0, 10) 4a 20 20 20 45 72 72 6f 72 20 69 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 63 6f   ┆J   Error in equal_paramlists co┆
0x04c220…04c240             72 72 65 63 74 65 64 2e 0a 2d 2d 20 31 2e 31 33 20 20 20 39 32 2e 31 30 2e 30 39 20 20 48 45 4a   ┆rrected. -- 1.13   92.10.09  HEJ┆
0x04c240…04c260             20 20 20 53 43 43 53 20 69 6e 66 6f 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2c 0a 2d 2d 09 09   ┆   SCCS info and UNIX used, --  ┆
0x04c260…04c280             09 20 20 2d 20 4c 6f 61 64 65 72 20 6d 61 70 20 69 6e 63 6f 6e 73 69 73 74 65 6e 73 20 63 68 61   ┆   - Loader map inconsistens cha┆
0x04c280…04c2a0             6e 67 65 64 20 74 6f 20 62 65 20 61 20 66 61 74 61 6c 20 65 72 72 6f 72 2e 0a 2d 2d 2d 2d 2d 2d   ┆nged to be a fatal error. ------┆
0x04c2a0…04c2c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x04c2c0…04c2e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d   ┆----------------------------- --┆
0x04c2e0…04c300             20 31 2e 31 20 20 20 20 39 33 2e 30 34 2e 31 39 20 20 48 45 4a 20 20 20 42 6f 6f 74 6c 69 6e 6b   ┆ 1.1    93.04.19  HEJ   Bootlink┆
0x04c300…04c320             20 75 73 65 73 20 6f 6c 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 65 71 75 61 6c 5f 70 61 72 61 6d   ┆ uses old version of equal_param┆
0x04c320…04c340             6c 69 73 74 73 2e 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆lists. -- ----------------------┆
0x04c340…04c360             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x04c360…04c380             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f   ┆------------- -- SCCS informatio┆
0x04c380…04c3a0             6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20   ┆n -- File   :  %P% -- Module :  ┆
0x04c3a0…04c3c0             25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a   ┆%M% -- Version:  %I% -- Date   :┆
0x04c3c0…04c3e0             20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆  %E%  %U% ---------------------┆
0x04c3e0…04c400             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x04c400…04c420 (20, 0, 11) 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 0c 0a 0a 55 73 65 73 20 44 4f 53 2c 20   ┆-------------- *)     Uses DOS, ┆
0x04c420…04c440             43 62 72 65 61 6b 2c 20 50 4c 49 42 55 4e 49 54 2c 20 50 6f 6c 79 66 69 6c 65 3b 0a 0a 28 2a 24   ┆Cbreak, PLIBUNIT, Polyfile;  (*$┆
0x04c440…04c460             4d 20 38 31 39 32 2c 38 31 39 32 30 2c 38 36 39 32 30 20 20 73 74 61 63 6b 20 61 6e 64 20 68 65   ┆M 8192,81920,86920  stack and he┆
0x04c460…04c480             61 70 20 20 2a 29 0a 28 2a 24 52 2b 2c 53 2b 09 09 72 61 6e 67 65 20 63 68 65 63 6b 20 20 2a 29   ┆ap  *) (*$R+,S+  range check  *)┆
0x04c480…04c4a0             0a 28 2a 24 49 2d 09 09 09 2a 29 0a 0a 43 6f 6e 73 74 0a 20 20 20 73 63 63 73 5f 64 61 74 65 20   ┆ (*$I-   *)  Const    sccs_date ┆
0x04c4a0…04c4c0             20 20 20 3d 20 20 20 27 25 45 25 27 20 20 3b 0a 20 20 20 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e   ┆   =   '%E%'  ;    src_extension┆
0x04c4c0…04c4e0             3d 20 20 20 27 2e 50 32 32 27 20 3b 0a 20 20 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e 3d 20   ┆=   '.P22' ;    comp_extension= ┆
0x04c4e0…04c500             20 27 2e 54 32 32 27 20 3b 0a 20 20 20 64 65 73 74 5f 65 78 74 65 6e 73 69 6f 6e 3d 20 20 27 2e   ┆ '.T22' ;    dest_extension=  '.┆
0x04c500…04c520             42 32 32 27 20 3b 0a 0a 20 20 20 64 65 62 75 67 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61   ┆B22' ;     debug : boolean =  fa┆
0x04c520…04c540             6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 20 2a 29 0a 20 20   ┆lse; (*  for debug output  *)   ┆
0x04c540…04c560             20 64 65 62 75 67 31 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20   ┆ debug1 : boolean =  false; (*  ┆
0x04c560…04c580             66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 6f 66 20 20 2a 29 0a 20 20 20 64 65 62 75 67   ┆for debug output of  *)    debug┆
0x04c580…04c5a0             32 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65   ┆2 : boolean =  false; (*  for de┆
0x04c5a0…04c5c0             62 75 67 20 6f 75 74 70 75 74 20 6f 66 20 6d 6f 64 75 6c 65 20 6e 61 6d 65 73 20 2a 29 0a 20 20   ┆bug output of module names *)   ┆
0x04c5c0…04c5e0             20 64 65 62 75 67 33 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20   ┆ debug3 : boolean =  false; (*  ┆
0x04c5e0…04c600             66 6f 72 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 69 6e 20 6f 75 74 73 75 6d 20 20 20 2a 29 0a   ┆for debug output in outsum   *) ┆
0x04c600…04c620 (20, 0, 12) 20 20 20 64 65 62 75 67 34 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a   ┆   debug4 : boolean =  false; (*┆
0x04c620…04c640             20 20 66 6f 72 20 64 65 62 75 67 20 6f 66 20 73 65 65 6b 09 09 2a 29 0a 20 20 20 64 65 62 75 67   ┆  for debug of seek  *)    debug┆
0x04c640…04c660             63 61 74 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20   ┆cat : boolean =  false; (*  for ┆
0x04c660…04c680             64 65 62 75 67 20 6f 66 20 69 74 65 6d 20 63 61 74 61 6c 6f 67 09 2a 29 0a 20 20 20 64 65 62 75   ┆debug of item catalog *)    debu┆
0x04c680…04c6a0             67 36 09 3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64   ┆g6 : boolean =  false; (*  for d┆
0x04c6a0…04c6c0             65 62 75 67 20 6f 66 20 6c 6f 61 64 65 72 20 6d 61 70 09 2a 29 0a 20 20 20 64 65 62 75 67 37 09   ┆ebug of loader map *)    debug7 ┆
0x04c6c0…04c6e0             3a 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 09 28 2a 20 20 66 6f 72 20 64 65 62 75   ┆: boolean =  false; (*  for debu┆
0x04c6e0…04c700             67 20 6f 66 20 69 6e 64 65 78 09 09 2a 29 0a 0a 20 20 20 64 61 74 5f 6e 61 6d 65 09 3d 20 20 27   ┆g of index  *)     dat_name =  '┆
0x04c700…04c720             43 52 4f 53 57 52 4b 2e 44 41 54 27 3b 0a 20 20 20 69 6e 78 5f 6e 61 6d 65 09 3d 20 20 27 43 52   ┆CROSWRK.DAT';    inx_name =  'CR┆
0x04c720…04c740             4f 53 57 52 4b 2e 49 4e 58 27 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 20 6f 6c 64 20 73 68 69 74 20   ┆OSWRK.INX';  {-------- old shit ┆
0x04c740…04c760             2d 2d 2d 0a 62 6f 6f 74 5f 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72   ┆--- boot_compiler_version_number┆
0x04c760…04c780             20 20 20 3d 20 36 3b 0a 28 2a 20 72 65 76 35 20 62 6f 6f 74 20 66 69 6c 65 73 20 6d 75 73 74 20   ┆   = 6; (* rev5 boot files must ┆
0x04c780…04c7a0             73 61 79 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20 21 21 21 20 2a 29 0a 63 6f 6d 70 69 6c 65 72   ┆say this version !!! *) compiler┆
0x04c7a0…04c7c0             5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 20 20 20 20 20 20 20 3d 20 37 3b 0a 28 2a 20 74   ┆_version_number        = 7; (* t┆
0x04c7c0…04c7e0             68 65 20 65 78 70 65 63 74 65 64 20 70 61 73 63 61 6c 38 30 20 63 6f 6d 70 69 6c 65 72 20 76 65   ┆he expected pascal80 compiler ve┆
0x04c7e0…04c800             72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 2a 29 0a 66 69 78 65 64 5f 72 65 76 35 5f 64 5f 6c 65 6e   ┆rsion number *) fixed_rev5_d_len┆
0x04c800…04c820 (20, 0, 13) 67 74 68 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 30 3b 0a 28 2a 20 6c 65 6e 67 74 68 20 6f   ┆gth            = 20; (* length o┆
0x04c820…04c840             66 20 66 69 78 65 64 20 70 61 72 74 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 73 65 67 6d 65   ┆f fixed part of descriptor segme┆
0x04c840…04c860             6e 74 20 69 6e 20 77 6f 72 64 73 20 2a 29 0a 66 69 78 65 64 5f 63 5f 64 5f 6c 65 6e 67 74 68 09   ┆nt in words *) fixed_c_d_length ┆
0x04c860…04c880             09 3d 20 32 32 3b 20 28 2a 20 6c 65 6e 67 74 68 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 70   ┆ = 22; (* length of descriptor p┆
0x04c880…04c8a0             61 72 74 31 20 66 6f 72 20 72 63 33 35 30 32 2f 32 20 20 2d 20 61 6c 73 6f 20 69 6e 20 77 6f 72   ┆art1 for rc3502/2  - also in wor┆
0x04c8a0…04c8c0             64 73 20 2a 29 0a 63 5f 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 09 09 3d 20 34 3b 0a 6e 6f 5f   ┆ds *) c_no_of_not_used  = 4; no_┆
0x04c8c0…04c8e0             6f 66 5f 6e 6f 74 5f 75 73 65 64 20 3a 20 20 62 79 74 65 20 3d 20 63 5f 6e 6f 5f 6f 66 5f 6e 6f   ┆of_not_used :  byte = c_no_of_no┆
0x04c8e0…04c900             74 5f 75 73 65 64 3b 0a 66 69 78 65 64 5f 64 5f 6c 65 6e 67 74 68 20 3a 20 77 6f 72 64 20 20 3d   ┆t_used; fixed_d_length : word  =┆
0x04c900…04c920             20 66 69 78 65 64 5f 63 5f 64 5f 6c 65 6e 67 74 68 3b 20 28 2a 20 69 6e 69 74 20 74 6f 20 63 6f   ┆ fixed_c_d_length; (* init to co┆
0x04c920…04c940             6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 2f 32 20 76 61 6c 75 65 20 2a 29 0a 0a 74 77 6f 5f   ┆mpiler_version /2 value *)  two_┆
0x04c940…04c960             74 6f 5f 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 2d 31 3b   ┆to_16                      = -1;┆
0x04c960…04c980             0a 0a 28 2a 20 63 6f 6e 74 65 6e 74 73 20 6b 65 79 20 76 61 6c 75 65 73 20 69 6e 20 74 61 69 6c   ┆  (* contents key values in tail┆
0x04c980…04c9a0             20 2a 29 0a 6f 62 6a 65 63 74 66 69 6c 65 5f 63 6f 6e 74 65 6e 74 20 20 20 20 20 20 20 20 20 20   ┆ *) objectfile_content          ┆
0x04c9a0…04c9c0             20 20 20 3d 20 31 36 2a 32 35 36 20 2b 20 31 3b 0a 69 6d 61 67 65 66 69 6c 65 5f 63 6f 6e 74 65   ┆   = 16*256 + 1; imagefile_conte┆
0x04c9c0…04c9e0             6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 36 2a 32 35 36 20 2b 20 32 3b 0a 0a 70   ┆nt              = 16*256 + 2;  p┆
0x04c9e0…04ca00             72 6f 67 72 61 6d 5f 6b 69 6e 64 20 20 3d 20 31 3b 20 28 2a 20 75 73 65 64 20 61 73 20 27 6b 69   ┆rogram_kind  = 1; (* used as 'ki┆
0x04ca00…04ca20 (20, 0, 14) 6e 64 2d 6f 66 2d 6f 62 6a 27 20 2a 29 0a 6d 69 6e 69 63 6f 72 65 20 20 20 20 20 20 3d 20 31 30   ┆nd-of-obj' *) minicore      = 10┆
0x04ca20…04ca40             30 30 30 3b 20 28 2a 20 64 65 66 61 75 6c 74 20 73 69 7a 65 20 6f 66 20 63 6f 72 65 20 69 6d 61   ┆000; (* default size of core ima┆
0x04ca40…04ca60             67 65 20 28 77 6f 72 64 73 29 20 2a 29 0a 6d 69 64 69 63 6f 72 65 20 20 20 20 20 20 3d 20 32 30   ┆ge (words) *) midicore      = 20┆
0x04ca60…04ca80             30 30 30 3b 20 28 2a 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6e 61 6c   ┆000; (* the size of the internal┆
0x04ca80…04caa0             20 63 6f 72 65 20 69 6d 61 67 65 20 64 65 70 65 6e 64 73 20 6f 6e 20 2a 29 0a 6d 61 78 69 63 6f   ┆ core image depends on *) maxico┆
0x04caa0…04cac0             72 65 20 20 20 20 20 20 3d 20 32 37 30 30 30 3b 20 28 2a 20 74 68 65 20 73 69 7a 65 20 6f 66 20   ┆re      = 27000; (* the size of ┆
0x04cac0…04cae0             74 68 65 20 67 72 65 61 74 65 73 74 20 6d 6f 64 75 6c 65 20 74 6f 20 6c 69 6e 6b 20 2a 29 0a 66   ┆the greatest module to link *) f┆
0x04cae0…04cb00             75 6c 6c 5f 68 6f 75 73 65 20 20 20 20 3d 20 6d 61 78 69 6e 74 3b 20 28 2a 20 36 34 20 6b 20 62   ┆ull_house    = maxint; (* 64 k b┆
0x04cb00…04cb20             79 74 65 73 2c 20 6d 61 78 20 6d 6f 64 75 6c 65 20 73 69 7a 65 20 2a 29 0a 0a 2d 2d 2d 2d 2d 2d   ┆ytes, max module size *)  ------┆
0x04cb20…04cb40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x04cb40…04cb60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 62 6f 6f 74 5f 63 5f 63 6f 6d 70   ┆------------------}  boot_c_comp┆
0x04cb60…04cb80             69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 09 3d 20 31 30 3b 20 28 2a 20 72 63 33   ┆iler_version_number = 10; (* rc3┆
0x04cb80…04cba0             35 30 32 63 20 62 6f 6f 74 66 69 6c 65 73 20 6d 75 73 74 20 73 61 79 20 74 68 69 73 20 76 65 72   ┆502c bootfiles must say this ver┆
0x04cba0…04cbc0             73 69 6f 6e 20 2a 29 0a 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65   ┆sion *) compiler_c_version_numbe┆
0x04cbc0…04cbe0             72 09 3d 20 31 30 3b 20 28 2a 20 65 78 70 65 63 74 65 64 20 52 54 50 20 76 65 72 73 69 6f 6e 20   ┆r = 10; (* expected RTP version ┆
0x04cbe0…04cc00             6e 75 6d 62 65 72 20 2a 29 0a 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 09 09 09 3d 20 33 30 3b   ┆number *) max_obj_params   = 30;┆
0x04cc00…04cc20 (20, 0, 15) 20 28 2a 20 73 61 6d 65 20 6c 69 6d 69 74 20 61 73 20 70 61 73 73 35 20 2a 29 0a 66 69 72 73 74   ┆ (* same limit as pass5 *) first┆
0x04cc20…04cc40             5f 6d 65 6d 5f 6e 6f 09 09 09 3d 20 24 43 30 3b 0a 0a 28 2a 20 70 61 72 61 6d 65 74 65 72 20 74   ┆_mem_no   = $C0;  (* parameter t┆
0x04cc40…04cc60             79 70 65 20 65 6e 63 6f 64 69 6e 67 20 20 20 20 20 20 39 32 2e 30 34 2e 31 35 20 20 20 20 20 20   ┆ype encoding      92.04.15      ┆
0x04cc60…04cc80             20 20 2a 29 0a 63 6f 64 65 5f 76 61 72 5f 70 74 72 20 20 20 20 3d 20 20 20 35 3b 0a 63 6f 64 65   ┆  *) code_var_ptr    =   5; code┆
0x04cc80…04cca0             5f 76 61 72 5f 73 79 73 72 65 63 20 3d 20 20 32 35 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 79 73 61   ┆_var_sysrec =  25; code_var_sysa┆
0x04cca0…04ccc0             72 72 79 3d 20 20 32 39 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 69 6d 70 6c 65 20 3d 20 20 33 33 3b   ┆rry=  29; code_var_simple =  33;┆
0x04ccc0…04cce0             0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 70 74 72 20 3d 20 31 30 36 3b 0a 63 6f 64 65 5f 69 6e 73   ┆ code_inspec_ptr = 106; code_ins┆
0x04cce0…04cd00             70 65 63 5f 73 79 73 72 3d 20 31 32 36 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 61 3d   ┆pec_sysr= 126; code_inspec_sysa=┆
0x04cd00…04cd20             20 31 33 30 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 69 6d 20 3d 20 31 33 34 3b 0a 0a 28 2a   ┆ 130; code_inspec_sim = 134;  (*┆
0x04cd20…04cd40             20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 66 6f 72 20 63 72 63 31 36 20 73 75 6d 63 61 74 61 6c   ┆ declarations for crc16 sumcatal┆
0x04cd40…04cd60             6f 67 20 2a 29 0a 6e 6f 5f 6f 66 5f 73 75 6d 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆og *) no_of_sums                ┆
0x04cd60…04cd80             20 20 20 20 20 3d 20 20 20 33 32 3b 20 28 2a 20 77 6f 72 64 73 20 2a 29 0a 73 75 6d 62 79 74 65   ┆     =   32; (* words *) sumbyte┆
0x04cd80…04cda0             73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 30 34 38 3b 0a   ┆s                       = 2048; ┆
0x04cda0…04cdc0             73 75 6d 77 6f 72 64 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d   ┆sumwords                       =┆
0x04cdc0…04cde0             20 31 30 32 34 3b 20 28 2a 20 73 75 6d 62 79 74 65 73 20 64 69 76 20 32 20 2a 29 0a 73 75 6d 5f   ┆ 1024; (* sumbytes div 2 *) sum_┆
0x04cde0…04ce00             64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 20 20 20 20 20 20 20 20 20 3d 20 20 20 31   ┆descriptor_length          =   1┆
0x04ce00…04ce20 (20, 1, 1)  30 3b 20 28 2a 20 62 79 74 65 73 20 2a 29 0a 0a 0a 79 65 73 20 20 20 20 20 20 20 20 20 20 20 3d   ┆0; (* bytes *)   yes           =┆
0x04ce20…04ce40             20 27 79 65 73 27 3b 0a 6e 6f 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 27 6e 6f 27 3b 09 09 28   ┆ 'yes'; no            = 'no';  (┆
0x04ce40…04ce60             2a 20 20 63 61 6c 6c 20 70 61 72 61 6d 65 74 65 72 73 20 2a 29 0a 0a 20 20 66 61 74 61 6c 09 09   ┆*  call parameters *)    fatal  ┆
0x04ce60…04ce80             3d 20 20 31 3b 0a 20 20 77 61 72 6e 09 09 3d 20 20 32 3b 0a 20 20 6d 61 72 67 69 6e 09 3d 20 20   ┆=  1;   warn  =  2;   margin =  ┆
0x04ce80…04cea0             31 30 3b 0a 0a 54 79 70 65 0a 0a 20 20 20 69 64 65 6e 74 69 66 69 65 72 20 3d 20 61 6c 66 61 3b   ┆10;  Type     identifier = alfa;┆
0x04cea0…04cec0             09 09 28 2a 20 61 72 72 61 79 20 28 20 31 20 2e 2e 20 31 32 20 29 20 6f 66 20 63 68 61 72 20 20   ┆  (* array ( 1 .. 12 ) of char  ┆
0x04cec0…04cee0             2a 29 0a 0a 20 20 20 6d 65 6d 5f 62 79 74 65 73 5f 74 79 70 65 09 3d 20 20 61 72 72 61 79 20 5b   ┆*)     mem_bytes_type =  array [┆
0x04cee0…04cf00             20 30 2e 2e 36 35 35 32 30 20 20 5d 20 6f 66 20 62 79 74 65 3b 0a 20 20 20 6d 65 6d 5f 77 6f 72   ┆ 0..65520  ] of byte;    mem_wor┆
0x04cf00…04cf20             64 73 5f 74 79 70 65 09 3d 20 20 61 72 72 61 79 20 5b 20 30 2e 2e 6d 61 78 69 6e 74 2d 38 20 5d   ┆ds_type =  array [ 0..maxint-8 ]┆
0x04cf20…04cf40             20 6f 66 20 77 6f 72 64 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 73 65 20   ┆ of word;  {---------------  se ┆
0x04cf40…04cf60             20 70 6c 69 62 75 6e 69 74 0a 70 72 6f 67 72 61 6d 5f 70 6f 69 6e 74 20 3d 0a 20 20 72 65 63 6f   ┆ plibunit program_point =   reco┆
0x04cf60…04cf80             72 64 0a 20 20 70 61 67 65 5f 6e 6f 20 20 2c 0a 20 20 72 65 6c 5f 62 79 74 65 20 3a 20 77 6f 72   ┆rd   page_no  ,   rel_byte : wor┆
0x04cf80…04cfa0             64 0a 20 20 65 6e 64 3b 0a 0a 61 64 64 72 65 73 73 20 3d 0a 20 20 72 65 63 6f 72 64 0a 20 20 62   ┆d   end;  address =   record   b┆
0x04cfa0…04cfc0             61 73 65 20 20 2c 0a 20 20 64 69 73 70 20 3a 20 77 6f 72 64 0a 20 20 65 6e 64 3b 0a 20 20 2d 2d   ┆ase  ,   disp : word   end;   --┆
0x04cfc0…04cfe0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 70 61 72 61 6d 5f 64 65   ┆---------------------}  param_de┆
0x04cfe0…04d000             73 63 72 20 3d 0a 20 20 72 65 63 6f 72 64 0a 20 20 70 61 72 61 6d 63 6f 75 6e 74 20 3a 20 77 6f   ┆scr =   record   paramcount : wo┆
0x04d000…04d020 (20, 1, 2)  72 64 3b 0a 20 20 70 61 72 61 6d 20 20 20 20 20 20 20 20 3a 20 61 72 72 61 79 20 5b 20 31 20 2e   ┆rd;   param        : array [ 1 .┆
0x04d020…04d040             2e 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 5d 20 6f 66 0a 20 20 20 20 72 65 63 6f 72 64   ┆. max_obj_params ] of     record┆
0x04d040…04d060             0a 20 20 20 20 70 61 72 61 6d 5f 74 79 70 65 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 70 61 72 61   ┆     param_type : word;     para┆
0x04d060…04d080             6d 5f 73 69 7a 65 20 3a 20 77 6f 72 64 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 20 20   ┆m_size : word     end   end;    ┆
0x04d080…04d0a0             65 78 74 5f 73 74 61 74 65 73 20 3d 20 28 20 75 6e 64 65 66 2c 20 64 65 66 69 6e 65 64 29 3b 0a   ┆ext_states = ( undef, defined); ┆
0x04d0a0…04d0c0             0a 20 20 69 74 65 6d 5f 72 65 63 20 3d 20 20 72 65 63 6f 72 64 0a 20 20 20 20 72 65 63 73 74 61   ┆   item_rec =  record     recsta┆
0x04d0c0…04d0e0             74 09 3a 20 20 77 6f 72 64 3b 0a 20 20 20 20 75 73 65 72 6e 61 6d 65 09 3a 20 20 61 6c 66 61 73   ┆t :  word;     username :  alfas┆
0x04d0e0…04d100             74 72 3b 0a 20 20 20 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 3a 20 63 6f 64 65 64 5f 64 61 74   ┆tr;     compile_date : coded_dat┆
0x04d100…04d120             65 3b 0a 20 20 20 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 3a 20 63 6f 64 65 64 5f 74 69 6d 65   ┆e;     compile_time : coded_time┆
0x04d120…04d140             3b 0a 20 20 20 20 73 74 61 74 65 20 20 20 20 20 20 20 20 3a 20 65 78 74 5f 73 74 61 74 65 73 3b   ┆;     state        : ext_states;┆
0x04d140…04d160             0a 20 20 20 20 70 61 72 61 6d 6c 69 73 74 20 20 20 20 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 3b   ┆     paramlist    : param_descr;┆
0x04d160…04d180             0a 20 20 20 20 73 61 76 65 64 5f 64 5f 61 64 64 72 20 3a 20 61 64 64 72 65 73 73 3b 0a 20 20 20   ┆     saved_d_addr : address;    ┆
0x04d180…04d1a0             20 65 6e 74 72 79 5f 61 64 64 72 20 20 20 3a 20 61 64 64 72 65 73 73 3b 0a 20 20 20 65 6e 64 3b   ┆ entry_addr   : address;    end;┆
0x04d1a0…04d1c0             0a 0a 0c 0a 0a 56 61 72 0a 0a 20 20 20 20 6c 69 62 72 61 72 79 09 2c 0a 20 20 20 73 6f 75 72 63   ┆     Var      library ,    sourc┆
0x04d1c0…04d1e0             65 5f 66 69 6c 65 09 2c 0a 20 20 20 6c 61 73 74 5f 73 63 61 6e 09 2c 0a 20 20 20 61 6e 79 5f 69   ┆e_file ,    last_scan ,    any_i┆
0x04d1e0…04d200             6e 63 6c 75 64 65 64 09 2c 0a 20 20 20 61 66 74 65 72 5f 6c 69 62 09 2c 0a 20 20 20 77 61 6e 74   ┆ncluded ,    after_lib ,    want┆
0x04d200…04d220 (20, 1, 3)  65 64 09 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 0a 20 20 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 09 2c   ┆ed : boolean;     start_module ,┆
0x04d220…04d240             09 09 28 2a 20 20 20 77 6f 72 64 20 74 79 70 65 20 69 73 20 20 30 2e 2e 36 35 35 33 35 09 2a 29   ┆  (*   word type is  0..65535 *)┆
0x04d240…04d260             0a 20 20 20 73 74 61 72 74 5f 64 69 73 70 6c 09 2c 0a 20 20 20 66 69 72 73 74 5f 6f 66 5f 6d 6f   ┆    start_displ ,    first_of_mo┆
0x04d260…04d280             64 75 6c 65 09 2c 0a 20 20 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 2c 0a 20 20 20 70 72 65 6f   ┆dule ,    top_of_module,    preo┆
0x04d280…04d2a0             63 63 75 70 69 65 64 09 2c 0a 20 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 09 2c 0a 20 20 20 6e 6f   ┆ccupied ,    param_index ,    no┆
0x04d2a0…04d2c0             5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 09 2c 0a 20 20 20 73 74 65 70 09 09 2c 0a 20 20 20 70 2c   ┆_of_obj_files ,    step  ,    p,┆
0x04d2c0…04d2e0             20 77 72 6b 09 2c 0a 20 20 20 75 6e 64 65 66 5f 63 6f 75 6e 74 09 2c 20 28 2a 20 68 6f 6c 64 73   ┆ wrk ,    undef_count , (* holds┆
0x04d2e0…04d300             20 6e 75 6d 62 65 72 20 6f 66 20 65 78 74 5f 74 61 62 6c 65 20 65 6e 74 72 69 65 73 20 77 69 74   ┆ number of ext_table entries wit┆
0x04d300…04d320             68 20 73 74 61 74 65 20 3d 20 75 6e 64 65 66 20 2a 29 0a 20 20 20 73 63 61 6e 09 09 3a 20 77 6f   ┆h state = undef *)    scan  : wo┆
0x04d320…04d340             72 64 3b 0a 0a 20 20 20 6c 61 73 74 5f 65 78 74 65 72 6e 61 6c 2c 0a 20 20 20 6e 6f 5f 6f 66 5f   ┆rd;     last_external,    no_of_┆
0x04d340…04d360             75 73 65 73 09 2c 0a 20 20 20 6e 6f 5f 6f 66 5f 69 6e 74 09 2c 0a 20 20 20 6e 6f 5f 6f 66 5f 65   ┆uses ,    no_of_int ,    no_of_e┆
0x04d360…04d380             78 74 09 3a 20 77 6f 72 64 3b 0a 0a 20 20 20 63 6f 64 65 5f 77 6f 72 64 73 09 2c 09 09 28 2a 20   ┆xt : word;     code_words ,  (* ┆
0x04d380…04d3a0             20 6e 6f 20 6f 66 20 77 6f 72 64 73 20 69 6e 20 63 6f 64 65 09 09 2a 29 0a 20 20 20 63 6f 64 65   ┆ no of words in code  *)    code┆
0x04d3a0…04d3c0             5f 62 79 74 65 73 09 2c 09 09 28 2a 20 20 2d 20 20 2d 20 20 62 79 74 65 73 20 2d 20 20 2d 09 09   ┆_bytes ,  (*  -  -  bytes -  -  ┆
0x04d3c0…04d3e0             2a 29 0a 20 20 20 6f 63 74 65 74 73 09 3a 20 20 6c 6f 6e 67 69 6e 74 3b 09 28 2a 20 20 65 76 65   ┆*)    octets :  longint; (*  eve┆
0x04d3e0…04d400             6e 20 6e 6f 20 6f 66 20 62 79 74 65 73 20 69 6e 20 63 6f 64 65 09 2a 29 0a 0a 20 20 20 74 6f 5f   ┆n no of bytes in code *)     to_┆
0x04d400…04d420 (20, 1, 4)  61 64 64 72 09 2c 0a 20 20 20 6d 61 70 5f 61 64 64 72 09 2c 0a 20 20 20 73 74 61 72 74 5f 61 64   ┆addr ,    map_addr ,    start_ad┆
0x04d420…04d440             64 72 09 2c 0a 20 20 20 74 6f 70 5f 6f 66 5f 62 69 6e 09 2c 0a 20 20 20 64 5f 61 64 64 72 09 2c   ┆dr ,    top_of_bin ,    d_addr ,┆
0x04d440…04d460             0a 20 20 20 63 6f 64 65 5f 61 64 64 72 09 3a 20 61 64 64 72 65 73 73 3b 0a 0a 20 20 20 28 2a 20   ┆    code_addr : address;     (* ┆
0x04d460…04d480             76 61 72 69 61 62 6c 65 73 20 63 6f 6e 63 65 72 6e 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 20   ┆variables concerning descriptor ┆
0x04d480…04d4a0             73 65 67 6d 65 6e 74 20 70 61 72 74 20 31 20 2a 29 0a 20 20 20 68 65 61 64 09 09 3a 20 20 64 65   ┆segment part 1 *)    head  :  de┆
0x04d4a0…04d4c0             73 63 72 69 70 74 6f 72 5f 70 61 72 74 31 3b 0a 0a 20 20 20 6f 62 6a 5f 70 61 72 61 6d 73 09 3a   ┆scriptor_part1;     obj_params :┆
0x04d4c0…04d4e0             20 20 70 61 72 61 6d 5f 64 65 73 63 72 3b 0a 20 20 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 09 3a 20   ┆  param_descr;    name_of_ext : ┆
0x04d4e0…04d500             20 61 6c 66 61 3b 0a 0a 20 20 20 69 74 65 6d 09 09 2c 0a 20 20 20 65 78 74 5f 69 74 65 6d 09 3a   ┆ alfa;     item  ,    ext_item :┆
0x04d500…04d520             20 69 74 65 6d 5f 72 65 63 3b 0a 0a 20 20 20 74 78 74 09 09 3a 20 20 73 74 72 69 6e 67 5b 34 30   ┆ item_rec;     txt  :  string[40┆
0x04d520…04d540             5d 3b 0a 0a 20 20 20 70 61 72 61 6d 74 78 74 09 2c 0a 20 20 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61   ┆];     paramtxt ,    obj_file_na┆
0x04d540…04d560             6d 65 3a 20 20 70 61 74 68 73 74 72 3b 0a 0a 20 20 20 63 6f 72 65 73 69 7a 65 09 3a 20 20 77 6f   ┆me:  pathstr;     coresize :  wo┆
0x04d560…04d580             72 64 3b 20 28 2a 20 61 63 74 75 61 6c 20 73 69 7a 65 20 6f 66 20 63 6f 72 65 20 69 6d 61 67 65   ┆rd; (* actual size of core image┆
0x04d580…04d5a0             20 2a 29 0a 20 20 20 63 6f 72 65 09 09 3a 20 20 5e 6d 65 6d 5f 62 79 74 65 73 5f 74 79 70 65 3b   ┆ *)    core  :  ^mem_bytes_type;┆
0x04d5a0…04d5c0             0a 20 20 20 63 6f 72 65 77 09 3a 20 20 5e 6d 65 6d 5f 77 6f 72 64 73 5f 74 79 70 65 20 61 62 73   ┆    corew :  ^mem_words_type abs┆
0x04d5c0…04d5e0             6f 6c 75 74 65 20 63 6f 72 65 3b 0a 20 20 20 75 70 70 65 72 63 6f 72 65 09 3a 20 20 70 6f 69 6e   ┆olute core;    uppercore :  poin┆
0x04d5e0…04d600             74 65 72 3b 0a 0a 20 20 20 66 70 6f 73 20 20 20 20 20 20 20 20 20 3a 20 20 6c 6f 6e 67 69 6e 74   ┆ter;     fpos         :  longint┆
0x04d600…04d620 (20, 1, 5)  3b 0a 20 20 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 09 2c 0a 20 20 20 6f 75 74 62 69 6e 66 69 6c 65   ┆;    in_obj_file ,    outbinfile┆
0x04d620…04d640             09 3a 20 66 69 6c 65 3b 0a 0a 20 20 20 64 61 74 66 09 09 3a 20 20 64 61 74 61 66 69 6c 65 3b 0a   ┆ : file;     datf  :  datafile; ┆
0x04d640…04d660             20 20 20 69 6e 78 66 09 09 3a 20 20 69 6e 64 65 78 66 69 6c 65 3b 0a 20 20 20 6c 6f 67 6e 6f 09   ┆   inxf  :  indexfile;    logno ┆
0x04d660…04d680             2c 0a 20 20 20 64 72 6e 2c 20 69 74 65 6d 6e 6f 09 3a 20 20 77 6f 72 64 3b 09 28 2a 20 20 64 61   ┆,    drn, itemno :  word; (*  da┆
0x04d680…04d6a0             74 61 20 72 65 63 6f 72 64 20 6e 6f 20 20 2a 29 0a 20 20 20 6b 65 79 09 09 3a 20 20 61 6c 66 61   ┆ta record no  *)    key  :  alfa┆
0x04d6a0…04d6c0             73 74 72 3b 0a 20 20 20 65 78 69 74 73 61 76 65 09 3a 20 20 70 6f 69 6e 74 65 72 3b 0a 20 20 20   ┆str;    exitsave :  pointer;    ┆
0x04d6c0…04d6e0             6c 6f 67 09 09 3a 20 20 74 65 78 74 3b 0a 0a 20 20 20 73 75 6d 63 61 74 61 6c 6f 67 09 3a 20 61   ┆log  :  text;     sumcatalog : a┆
0x04d6e0…04d700             72 72 61 79 20 5b 20 31 2e 2e 6e 6f 5f 6f 66 5f 73 75 6d 73 20 5d 20 6f 66 20 77 6f 72 64 3b 0a   ┆rray [ 1..no_of_sums ] of word; ┆
0x04d700…04d720             20 20 20 73 75 6d 69 6e 64 65 78 09 2c 0a 20 20 20 73 75 6d 63 6f 75 6e 74 09 2c 0a 20 20 20 73   ┆   sumindex ,    sumcount ,    s┆
0x04d720…04d740             75 6d 09 09 3a 20 20 77 6f 72 64 3b 0a 0a 0a 20 43 6f 6e 73 74 20 20 20 28 2a 20 20 69 6e 69 74   ┆um  :  word;    Const   (*  init┆
0x04d740…04d760             69 61 6c 69 7a 65 64 20 76 61 72 20 20 2a 29 0a 0a 20 20 20 73 6f 75 72 63 65 5f 6f 70 65 6e 65   ┆ialized var  *)     source_opene┆
0x04d760…04d780             64 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 64 65 73 74 5f 6f 70   ┆d:  boolean =  false;    dest_op┆
0x04d780…04d7a0             65 6e 65 64 20 20 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 6e 65   ┆ened  :  boolean =  false;    ne┆
0x04d7a0…04d7c0             77 6f 62 6a 5f 6f 70 65 6e 65 64 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a   ┆wobj_opened:  boolean =  false; ┆
0x04d7c0…04d7e0             20 20 20 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 20 20 62 6f 6f 6c 65 61 6e 09 3d 20 20 66 61   ┆   database_open:  boolean =  fa┆
0x04d7e0…04d800             6c 73 65 3b 0a 20 20 20 6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 20 20 62 6f 6f 6c 65 61 6e 09   ┆lse;    mem_allocated:  boolean ┆
0x04d800…04d820 (20, 1, 6)  3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 6c 6f 61 64 65 72 6d 61 70 5f 65 72 72 3a 20 20 62 6f 6f   ┆=  false;    loadermap_err:  boo┆
0x04d820…04d840             6c 65 61 6e 09 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 6d 79 5f 65 78 63 6f 64 65 20 20 20 20 3a   ┆lean =  false;    my_excode    :┆
0x04d840…04d860             20 20 77 6f 72 64 20 20 20 09 3d 20 20 30 3b 0a 0a 20 20 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72   ┆  word    =  0;     compiler_ver┆
0x04d860…04d880             73 69 6f 6e 20 3a 20 77 6f 72 64 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e   ┆sion : word = compiler_c_version┆
0x04d880…04d8a0             5f 6e 75 6d 62 65 72 3b 0a 20 20 20 62 6f 6f 74 65 72 5f 76 65 72 73 69 6f 6e 20 20 20 3a 20 77   ┆_number;    booter_version   : w┆
0x04d8a0…04d8c0             6f 72 64 20 3d 20 62 6f 6f 74 5f 63 5f 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75   ┆ord = boot_c_compiler_version_nu┆
0x04d8c0…04d8e0             6d 62 65 72 3b 0a 20 20 20 62 69 6e 64 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20   ┆mber;    bind_yes :  boolean =  ┆
0x04d8e0…04d900             74 72 75 65 3b 0a 20 20 20 64 65 73 63 72 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20   ┆true;    descr_yes :  boolean = ┆
0x04d900…04d920             20 74 72 75 65 3b 0a 20 20 20 6d 61 70 5f 79 65 73 09 3a 20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20   ┆ true;    map_yes :  boolean =  ┆
0x04d920…04d940             66 61 6c 73 65 3b 0a 20 20 20 70 72 69 6e 74 5f 63 6f 64 65 09 3a 20 20 62 6f 6f 6c 65 61 6e 20   ┆false;    print_code :  boolean ┆
0x04d940…04d960             3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 3a 20 20 77 6f 72   ┆=  false;    print_pr_line:  wor┆
0x04d960…04d980             64 20 20 20 20 3d 20 20 20 20 20 31 36 3b 0a 20 20 20 70 72 69 6e 74 5f 68 65 61 64 69 6e 67 3a   ┆d    =     16;    print_heading:┆
0x04d980…04d9a0             20 20 62 6f 6f 6c 65 61 6e 20 3d 20 20 66 61 6c 73 65 3b 0a 20 20 20 61 6c 6c 5f 6f 6e 65 73 09   ┆  boolean =  false;    all_ones ┆
0x04d9a0…04d9c0             3a 20 20 77 6f 72 64 09 20 20 20 3d 20 20 24 46 46 46 46 3b 0a 0a 0c 0a 0a 20 56 61 72 0a 20 20   ┆:  word    =  $FFFF;      Var   ┆
0x04d9c0…04d9e0             20 20 63 72 63 74 61 62 20 3a 20 20 61 72 72 61 79 20 5b 20 30 2e 2e 20 32 35 35 20 5d 20 6f 66   ┆  crctab :  array [ 0.. 255 ] of┆
0x04d9e0…04da00             20 77 6f 72 64 3b 20 20 20 20 28 2a 20 20 63 72 63 74 61 62 74 79 70 65 3b 20 20 2a 29 0a 0a 0a   ┆ word;    (*  crctabtype;  *)   ┆
0x04da00…04da20 (20, 1, 7)  0a 50 72 6f 63 65 64 75 72 65 20 63 72 63 31 36 20 28 20 76 61 72 20 73 75 6d 3a 20 77 6f 72 64   ┆ Procedure crc16 ( var sum: word┆
0x04da20…04da40             3b 20 64 61 74 61 3a 20 77 6f 72 64 29 3b 0a 20 20 28 2a 20 20 75 70 64 61 74 65 20 73 75 6d 20   ┆; data: word);   (*  update sum ┆
0x04da40…04da60             61 63 63 6f 72 64 69 6e 67 20 74 6f 20 6f 6c 64 20 73 75 6d 20 61 6e 64 20 64 61 74 61 2c 20 4e   ┆according to old sum and data, N┆
0x04da60…04da80             42 20 62 6f 74 68 20 62 79 74 65 73 21 20 20 6c 6f 2c 20 68 69 0a 20 20 2d 2d 20 20 67 6c 6f 62   ┆B both bytes!  lo, hi   --  glob┆
0x04da80…04daa0             61 6c 20 3a 20 20 63 72 63 74 61 62 20 20 20 20 2a 29 0a 20 20 62 65 67 69 6e 0a 20 20 69 6e 6c   ┆al :  crctab    *)   begin   inl┆
0x04daa0…04dac0             69 6e 65 20 28 0a 09 20 24 38 41 2f 24 34 36 2f 3c 64 61 74 61 2f 09 09 28 2a 20 20 20 4d 4f 56   ┆ine (   $8A/$46/<data/  (*   MOV┆
0x04dac0…04dae0             20 41 4c 2c 6c 6f 28 64 61 74 61 5b 42 50 5d 29 2a 29 0a 09 20 24 33 30 2f 24 45 34 2f 09 09 28   ┆ AL,lo(data[BP])*)   $30/$E4/  (┆
0x04dae0…04db00             2a 20 20 20 58 4f 52 20 41 48 2c 41 48 09 09 2a 29 0a 09 20 24 43 34 2f 24 37 45 2f 3c 73 75 6d   ┆*   XOR AH,AH  *)   $C4/$7E/<sum┆
0x04db00…04db20             2f 20 20 09 28 2a 20 20 20 4c 45 53 20 44 49 2c 73 75 6d 5b 42 50 5d 09 2a 29 0a 09 20 24 32 36   ┆/   (*   LES DI,sum[BP] *)   $26┆
0x04db20…04db40             2f 24 33 33 2f 24 30 35 2f 09 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 45 53 3a 5b 44 49 5d 09 2a   ┆/$33/$05/  (*   XOR AX,ES:[DI] *┆
0x04db40…04db60             29 0a 09 20 24 33 32 2f 24 46 36 2f 09 09 28 2a 20 20 20 58 4f 52 20 44 48 2c 44 48 09 09 2a 29   ┆)   $32/$F6/  (*   XOR DH,DH  *)┆
0x04db60…04db80             0a 09 20 24 38 41 2f 24 44 30 2f 09 09 28 2a 20 20 20 4d 4f 56 20 44 4c 2c 41 4c 09 09 2a 29 0a   ┆   $8A/$D0/  (*   MOV DL,AL  *) ┆
0x04db80…04dba0             09 20 24 38 36 2f 24 43 34 2f 09 09 28 2a 20 20 20 58 43 48 47 20 41 4c 2c 41 48 09 09 2a 29 0a   ┆  $86/$C4/  (*   XCHG AL,AH  *) ┆
0x04dba0…04dbc0             09 20 24 33 30 2f 24 45 34 2f 09 09 28 2a 20 20 20 58 4f 52 20 41 48 2c 41 48 09 09 2a 29 0a 09   ┆  $30/$E4/  (*   XOR AH,AH  *)  ┆
0x04dbc0…04dbe0             20 24 38 42 2f 24 46 41 2f 09 09 28 2a 20 20 20 4d 4f 56 20 44 49 2c 44 58 09 09 2a 29 0a 09 20   ┆ $8B/$FA/  (*   MOV DI,DX  *)   ┆
0x04dbe0…04dc00             24 44 31 2f 24 45 37 2f 09 09 28 2a 20 20 20 53 48 4c 20 44 49 2c 31 20 09 09 2a 29 0a 09 20 24   ┆$D1/$E7/  (*   SHL DI,1   *)   $┆
0x04dc00…04dc20 (20, 1, 8)  33 33 2f 24 38 35 2f 63 72 63 74 61 62 2f 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 63 72 63 74 61   ┆33/$85/crctab/ (*   XOR AX,crcta┆
0x04dc20…04dc40             62 5b 44 49 5d 09 2a 29 0a 09 20 24 38 41 2f 24 35 36 2f 3c 64 61 74 61 2b 31 2f 09 28 2a 20 20   ┆b[DI] *)   $8A/$56/<data+1/ (*  ┆
0x04dc40…04dc60             20 4d 4f 56 20 44 4c 2c 68 69 28 64 61 74 61 5b 42 50 5d 29 2a 29 0a 09 20 24 33 33 2f 24 43 32   ┆ MOV DL,hi(data[BP])*)   $33/$C2┆
0x04dc60…04dc80             2f 09 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 44 58 09 09 2a 29 0a 09 20 24 38 41 2f 24 44 30 2f   ┆/  (*   XOR AX,DX  *)   $8A/$D0/┆
0x04dc80…04dca0             09 09 28 2a 20 20 20 4d 4f 56 20 44 4c 2c 41 4c 09 09 2a 29 0a 09 20 24 38 36 2f 24 43 34 2f 09   ┆  (*   MOV DL,AL  *)   $86/$C4/ ┆
0x04dca0…04dcc0             09 28 2a 20 20 20 58 43 48 47 20 41 4c 2c 41 48 09 09 2a 29 0a 09 20 24 33 30 2f 24 45 34 2f 09   ┆ (*   XCHG AL,AH  *)   $30/$E4/ ┆
0x04dcc0…04dce0             09 28 2a 20 20 20 58 4f 52 20 41 48 2c 41 48 09 09 2a 29 0a 09 20 24 38 42 2f 24 46 41 2f 09 09   ┆ (*   XOR AH,AH  *)   $8B/$FA/  ┆
0x04dce0…04dd00             28 2a 20 20 20 4d 4f 56 20 44 49 2c 44 58 09 09 2a 29 0a 09 20 24 44 31 2f 24 45 37 2f 09 09 28   ┆(*   MOV DI,DX  *)   $D1/$E7/  (┆
0x04dd00…04dd20             2a 20 20 20 53 48 4c 20 44 49 2c 31 20 09 09 2a 29 0a 09 20 24 33 33 2f 24 38 35 2f 63 72 63 74   ┆*   SHL DI,1   *)   $33/$85/crct┆
0x04dd20…04dd40             61 62 2f 09 28 2a 20 20 20 58 4f 52 20 41 58 2c 63 72 63 74 61 62 5b 44 49 5d 09 2a 29 0a 09 20   ┆ab/ (*   XOR AX,crctab[DI] *)   ┆
0x04dd40…04dd60             24 43 34 2f 24 37 45 2f 3c 73 75 6d 2f 20 20 09 28 2a 20 20 20 4c 45 53 20 44 49 2c 73 75 6d 5b   ┆$C4/$7E/<sum/   (*   LES DI,sum[┆
0x04dd60…04dd80             42 50 5d 09 2a 29 0a 09 20 24 32 36 2f 24 38 39 2f 24 30 35 20 20 09 09 28 2a 20 20 20 4d 4f 56   ┆BP] *)   $26/$89/$05    (*   MOV┆
0x04dd80…04dda0             20 45 53 3a 5b 44 49 5d 2c 41 58 09 2a 29 0a 20 20 20 20 20 20 20 29 0a 0a 0a 7b 2d 2d 2d 2d 2d   ┆ ES:[DI],AX *)        )   {-----┆
0x04dda0…04ddc0             2d 2d 2d 2d 2d 2d 2d 2d 20 20 69 6e 20 50 41 53 43 41 4c 20 3a 20 20 2d 2d 0a 20 20 77 72 6b 3a   ┆--------  in PASCAL :  --   wrk:┆
0x04ddc0…04dde0             3d 20 73 75 6d 20 58 4f 52 20 6c 6f 28 64 61 74 61 29 3b 09 09 28 2a 20 20 74 61 6b 65 20 74 68   ┆= sum XOR lo(data);  (*  take th┆
0x04dde0…04de00             65 20 6c 6f 77 20 62 79 74 65 20 20 2a 29 0a 20 20 77 72 6b 3a 3d 20 68 69 28 77 72 6b 29 20 58   ┆e low byte  *)   wrk:= hi(wrk) X┆
0x04de00…04de20 (20, 1, 9)  4f 52 20 63 72 63 74 61 62 5b 6c 6f 28 77 72 6b 29 5d 3b 0a 0a 20 20 77 72 6b 3a 3d 20 77 72 6b   ┆OR crctab[lo(wrk)];    wrk:= wrk┆
0x04de20…04de40             20 58 4f 52 20 68 69 28 64 61 74 61 29 3b 09 09 28 2a 20 20 74 61 6b 65 20 74 68 65 20 68 69 67   ┆ XOR hi(data);  (*  take the hig┆
0x04de40…04de60             68 20 62 79 74 65 20 20 2a 29 0a 20 20 73 75 6d 3a 3d 20 68 69 28 77 72 6b 29 20 58 4f 52 20 63   ┆h byte  *)   sum:= hi(wrk) XOR c┆
0x04de60…04de80             72 63 74 61 62 5b 6c 6f 28 77 72 6b 29 5d 3b 0a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆rctab[lo(wrk)];  ---------------┆
0x04de80…04dea0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆------------}   {---------------┆
0x04dea0…04dec0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 4d 52 57 3a 0a   ┆-------------------------  MRW: ┆
0x04dec0…04dee0             20 20 73 75 6d 3a 3d 73 75 6d 20 58 4f 52 20 6c 6f 28 64 61 74 61 29 3b 20 20 20 20 20 20 20 20   ┆  sum:=sum XOR lo(data);        ┆
0x04dee0…04df00             20 20 20 28 2a 20 20 73 75 6d 3a 3d 73 75 6d 20 45 58 4f 52 20 28 64 61 74 61 20 64 69 76 20 32   ┆   (*  sum:=sum EXOR (data div 2┆
0x04df00…04df20             35 36 29 3b 20 2a 29 0a 20 20 74 65 6d 70 3a 3d 20 63 72 63 74 61 62 5b 6c 6f 28 73 75 6d 29 5d   ┆56); *)   temp:= crctab[lo(sum)]┆
0x04df20…04df40             3b 0a 20 20 73 75 6d 3a 3d 20 20 68 69 28 73 75 6d 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆;   sum:=  hi(sum);             ┆
0x04df40…04df60             20 20 20 20 20 20 20 28 2a 20 20 73 75 6d 3a 3d 20 20 73 75 6d 20 64 69 76 20 32 35 36 3b 20 2a   ┆       (*  sum:=  sum div 256; *┆
0x04df60…04df80             29 0a 20 20 73 75 6d 3a 3d 20 20 73 75 6d 20 58 4f 52 20 74 65 6d 70 3b 0a 2d 2d 2d 2d 2d 2d 2d   ┆)   sum:=  sum XOR temp; -------┆
0x04df80…04dfa0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x04dfa0…04dfc0             2d 2d 2d 2d 2d 7d 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 72 63 31 36 20 20 2a 29 0a 0a 0a 0a   ┆-----}   end;  (*  crc16  *)    ┆
0x04dfc0…04dfe0             0a 50 72 6f 63 65 64 75 72 65 20 69 6e 69 74 5f 63 72 63 74 61 62 20 3b 0a 20 20 28 2a 20 20 67   ┆ Procedure init_crctab ;   (*  g┆
0x04dfe0…04e000             6c 6f 62 61 6c 73 3a 20 20 20 63 72 63 74 61 62 20 20 20 2a 29 0a 20 20 63 6f 6e 73 74 0a 20 20   ┆lobals:   crctab   *)   const   ┆
0x04e000…04e020 (20, 1, 10) 20 20 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 20 3d 20 20 24 38 34 30 38 3b 09 09 28 2a 20 20   ┆   crc16quotient =  $8408;  (*  ┆
0x04e020…04e040             32 27 31 36 20 2b 20 32 27 31 32 20 2b 20 32 27 35 20 2b 20 31 20 20 20 2a 29 0a 0a 20 20 76 61   ┆2'16 + 2'12 + 2'5 + 1   *)    va┆
0x04e040…04e060             72 0a 20 20 20 20 20 69 2c 20 6a 2c 0a 20 20 20 20 20 71 2c 20 73 75 6d 3a 20 77 6f 72 64 3b 0a   ┆r      i, j,      q, sum: word; ┆
0x04e060…04e080             0a 20 20 62 65 67 69 6e 0a 20 20 71 3a 3d 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 3b 0a 0a 20   ┆   begin   q:= crc16quotient;   ┆
0x04e080…04e0a0             20 66 6f 72 20 69 3a 3d 30 20 74 6f 20 32 35 35 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆ for i:=0 to 255 do   begin     ┆
0x04e0a0…04e0c0             73 75 6d 3a 3d 20 69 3b 0a 20 20 20 20 66 6f 72 20 6a 3a 3d 31 20 74 6f 20 38 20 64 6f 0a 20 20   ┆sum:= i;     for j:=1 to 8 do   ┆
0x04e0c0…04e0e0             20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 20 28 73 75 6d 20 61 6e 64 20 31 29 20 3d 20   ┆  begin       if  (sum and 1) = ┆
0x04e0e0…04e100             30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2d 20 20 20 20 20 20 69 66 20 20 73 75 6d 20   ┆0               {-      if  sum ┆
0x04e100…04e120             6d 6f 64 20 32 20 3d 20 30 20 2d 7d 0a 20 20 20 20 20 20 74 68 65 6e 20 20 73 75 6d 3a 3d 20 73   ┆mod 2 = 0 -}       then  sum:= s┆
0x04e120…04e140             75 6d 20 53 48 52 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2d 20 20 20 20 20 20 74 68 65   ┆um SHR 1             {-      the┆
0x04e140…04e160             6e 20 20 73 75 6d 3a 3d 20 73 75 6d 20 64 69 76 20 32 20 2d 7d 0a 20 20 20 20 20 20 65 6c 73 65   ┆n  sum:= sum div 2 -}       else┆
0x04e160…04e180             20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 20 73 75 6d 20 53 48 52 20 31 3b 20   ┆ begin         sum:= sum SHR 1; ┆
0x04e180…04e1a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2d 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 20 73   ┆               {-        sum:= s┆
0x04e1a0…04e1c0             75 6d 20 64 69 76 20 32 3b 20 2d 7d 0a 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 20 73 75 6d 20 58   ┆um div 2; -}         sum:= sum X┆
0x04e1c0…04e1e0             4f 52 20 71 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 63 72   ┆OR q;       end;     end;     cr┆
0x04e1e0…04e200             63 74 61 62 20 5b 69 5d 3a 3d 20 73 75 6d 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 28 2a 2d   ┆ctab [i]:= sum;   end; end;  (*-┆
0x04e200…04e220 (20, 1, 11) 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6f 6c 64 20 2d 2d 0a 66 75 6e 63 74 69 6f 6e 20 63 72 63 31 36 20   ┆--------- old -- function crc16 ┆
0x04e220…04e240             28 20 6f 70 2c 20 71 75 6f 74 69 65 6e 74 20 3a 20 77 6f 72 64 29 20 3a 20 77 6f 72 64 3b 0a 20   ┆( op, quotient : word) : word;  ┆
0x04e240…04e260             20 65 78 74 65 72 6e 61 6c 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a   ┆ external; ------------------*) ┆
0x04e260…04e280             0a 0a 50 72 6f 63 65 64 75 72 65 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 6b 69 6e 64 2c 20   ┆  Procedure  call_error ( kind, ┆
0x04e280…04e2a0             6e 6f 2c 20 69 6e 66 20 3a 20 77 6f 72 64 3b 20 74 78 74 20 3a 20 70 61 74 68 73 74 72 29 3b 0a   ┆no, inf : word; txt : pathstr); ┆
0x04e2a0…04e2c0             20 20 62 65 67 69 6e 0a 20 20 69 66 20 6b 69 6e 64 20 3d 20 66 61 74 61 6c 20 74 68 65 6e 0a 20   ┆  begin   if kind = fatal then  ┆
0x04e2c0…04e2e0             20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 20 66 61 74 61 6c 20 65   ┆   write ( output, '***  fatal e┆
0x04e2e0…04e300             72 72 6f 72 3a 20 27 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70   ┆rror: ')   else     write ( outp┆
0x04e300…04e320             75 74 2c 20 27 21 21 20 20 20 77 61 72 6e 69 6e 67 3a 20 27 29 3b 0a 0a 20 20 63 61 73 65 20 6e   ┆ut, '!!   warning: ');    case n┆
0x04e320…04e340             6f 20 6f 66 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 31 3a 20 20 77 72 69 74 65 6c 6e 20   ┆o of  {----------   1:  writeln ┆
0x04e340…04e360             28 20 6f 75 74 70 75 74 2c 20 27 4e 6f 20 6f 75 74 66 69 6c 65 20 73 70 65 63 69 66 69 65 64 2e   ┆( output, 'No outfile specified.┆
0x04e360…04e380             27 29 3b 0a 0a 20 20 32 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 45 72   ┆');    2:  writeln ( output, 'Er┆
0x04e380…04e3a0             72 6f 72 20 69 6e 20 63 72 6f 73 73 6c 69 6e 6b 20 27 2c 20 69 6e 66 29 3b 0a 0a 20 20 33 3a 20   ┆ror in crosslink ', inf);    3: ┆
0x04e3a0…04e3c0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 45 72 72 6f 72 20 69 6e 20 63 61 6c   ┆ writeln ( output, 'Error in cal┆
0x04e3c0…04e3e0             6c 20 6f 66 20 63 72 6f 73 73 6c 69 6e 6b 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72   ┆l of crosslink; parameter number┆
0x04e3e0…04e400             20 27 2c 20 69 6e 66 2c 0a 20 20 20 20 20 20 20 20 27 3a 20 20 27 2c 20 67 65 74 70 61 72 61 6d   ┆ ', inf,         ':  ', getparam┆
0x04e400…04e420 (20, 1, 12) 20 28 20 69 6e 66 29 2c 20 27 20 20 22 27 2c 20 74 78 74 2c 20 27 22 27 29 3b 0a 2d 2d 2d 2d 2d   ┆ ( inf), '  "', txt, '"'); -----┆
0x04e420…04e440             2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 34 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆-------}    4:  writeln ( output┆
0x04e440…04e460             2c 20 27 49 6c 6c 65 67 61 6c 20 68 65 78 61 64 65 63 69 6d 61 6c 20 6e 75 6d 62 65 72 20 69 6e   ┆, 'Illegal hexadecimal number in┆
0x04e460…04e480             20 63 61 6c 6c 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c 0a   ┆ call; parameter number ', inf, ┆
0x04e480…04e4a0             20 20 20 20 20 20 20 20 27 3a 20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 2c 20   ┆        ':  ', getparam ( inf), ┆
0x04e4a0…04e4c0             27 20 20 22 27 2c 20 74 78 74 2c 20 27 22 27 29 3b 0a 0a 20 20 35 3a 20 20 77 72 69 74 65 6c 6e   ┆'  "', txt, '"');    5:  writeln┆
0x04e4c0…04e4e0             20 28 20 6f 75 74 70 75 74 2c 20 27 42 61 64 20 76 65 72 73 69 6f 6e 2c 20 72 65 63 6f 6d 70 69   ┆ ( output, 'Bad version, recompi┆
0x04e4e0…04e500             6c 65 20 27 2c 20 74 78 74 2c 20 27 2c 20 20 76 65 72 73 69 6f 6e 20 27 2c 20 69 6e 66 2c 0a 09   ┆le ', txt, ',  version ', inf,  ┆
0x04e500…04e520             20 20 20 20 20 27 20 3c 3e 20 27 2c 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 29 3b   ┆     ' <> ', compiler_version );┆
0x04e520…04e540             0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 36 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆  {----------   6:  writeln ( ou┆
0x04e540…04e560             74 70 75 74 2c 20 27 79 65 73 20 6f 72 20 6e 6f 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72 20   ┆tput, 'yes or no expected after ┆
0x04e560…04e580             22 64 65 73 63 72 2d 22 27 2c 20 74 78 74 29 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a   ┆"descr-"', txt); ------------}  ┆
0x04e580…04e5a0             20 20 37 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6c 6c 65 67 61 6c   ┆  7:  writeln ( output, 'Illegal┆
0x04e5a0…04e5c0             20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 6f 62 6a 65 63 74 20 6f 72 20 6c 69 62 72 61 72 79 20 66   ┆ contents of object or library f┆
0x04e5c0…04e5e0             69 6c 65 20 27 2c 20 69 6e 66 2c 20 27 27 3a 33 2c 20 74 78 74 29 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d   ┆ile ', inf, '':3, txt);  {------┆
0x04e5e0…04e600             2d 2d 2d 2d 0a 20 20 38 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 54 6f   ┆----   8:  writeln ( output, 'To┆
0x04e600…04e620 (20, 1, 13) 6f 20 6d 61 6e 79 20 6d 6f 64 75 6c 65 73 2c 20 28 6d 6f 72 65 20 74 68 61 6e 20 27 2c 20 69 6e   ┆o many modules, (more than ', in┆
0x04e620…04e640             66 2c 20 27 29 27 29 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 39 3a 20 20 62 65   ┆f, ')'); ------------}    9:  be┆
0x04e640…04e660             67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6c 6c   ┆gin       writeln ( output, 'Ill┆
0x04e660…04e680             65 67 61 6c 20 76 61 6c 75 65 20 6f 66 20 22 73 74 61 72 74 22 70 61 72 61 6d 65 74 65 72 3b 20   ┆egal value of "start"parameter; ┆
0x04e680…04e6a0             70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 27 2c 0a 20 20 20 20 20 20 20 20 70 61 72 61   ┆parameter number ',         para┆
0x04e6a0…04e6c0             6d 5f 69 6e 64 65 78 2c 20 27 2c 20 20 20 76 61 6c 75 65 20 20 48 27 2c 20 74 78 74 2c 20 27 2c   ┆m_index, ',   value  H', txt, ',┆
0x04e6c0…04e6e0             20 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 29 29 3b 0a 20   ┆  ', getparam ( param_index));  ┆
0x04e6e0…04e700             20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 27 2c 20 73   ┆     writeln ( output, '    ', s┆
0x04e700…04e720             74 72 68 65 78 20 28 20 73 74 61 72 74 5f 61 64 64 72 2e 62 61 73 65 29 2c 20 27 3a 27 2c 20 73   ┆trhex ( start_addr.base), ':', s┆
0x04e720…04e740             74 72 68 65 78 20 28 20 73 74 61 72 74 5f 61 64 64 72 2e 64 69 73 70 29 2c 0a 20 20 20 20 20 20   ┆trhex ( start_addr.disp),       ┆
0x04e740…04e760             20 27 20 3c 20 27 2c 20 73 74 72 68 65 78 20 28 20 74 6f 70 5f 6f 66 5f 62 69 6e 2e 62 61 73 65   ┆ ' < ', strhex ( top_of_bin.base┆
0x04e760…04e780             29 2c 20 27 3a 27 2c 20 73 74 72 68 65 78 20 28 20 74 6f 70 5f 6f 66 5f 62 69 6e 2e 64 69 73 70   ┆), ':', strhex ( top_of_bin.disp┆
0x04e780…04e7a0             29 20 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 31 30 3a 20 77 72 69 74 65 6c 6e 20 28   ┆) );       end;    10: writeln (┆
0x04e7a0…04e7c0             20 6f 75 74 70 75 74 2c 20 27 54 6f 6f 20 6d 61 6e 79 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65   ┆ output, 'Too many formal parame┆
0x04e7c0…04e7e0             74 65 72 73 2c 20 6d 6f 64 75 6c 65 3a 20 27 2c 20 74 78 74 2c 0a 09 20 27 20 20 27 2c 20 69 6e   ┆ters, module: ', txt,   '  ', in┆
0x04e7e0…04e800             66 2c 20 27 20 3e 20 27 2c 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 29 3b 0a 0a 20 20 31   ┆f, ' > ', max_obj_params );    1┆
0x04e800…04e820 (20, 1, 14) 31 3a 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 63 6f 6e 73 69 73 74 65   ┆1: writeln ( output, 'Inconsiste┆
0x04e820…04e840             6e 63 79 20 69 6e 20 64 65 73 63 72 69 70 74 6f 72 20 6c 65 6e 67 74 68 20 27 2c 20 69 6e 66 2c   ┆ncy in descriptor length ', inf,┆
0x04e840…04e860             20 74 78 74 29 3b 20 20 20 28 2a 20 20 20 6e 61 6d 65 5f 6f 66 5f 6f 62 6a 20 20 2a 29 0a 0a 20   ┆ txt);   (*   name_of_obj  *)   ┆
0x04e860…04e880             20 31 34 3a 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆ 14:  begin     writeln ( output┆
0x04e880…04e8a0             2c 20 27 22 79 65 73 22 2c 20 22 6e 6f 22 2c 20 6f 72 20 22 79 65 73 2d 3c 6e 75 6d 62 65 72 3e   ┆, '"yes", "no", or "yes-<number>┆
0x04e8a0…04e8c0             22 20 65 78 70 65 63 74 65 64 20 61 66 74 65 72 20 22 70 72 69 6e 74 2d 22 27 29 3b 0a 20 20 20   ┆" expected after "print-"');    ┆
0x04e8c0…04e8e0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 20 70 61 72 61 6d 65   ┆ writeln ( output, '      parame┆
0x04e8e0…04e900             74 65 72 20 67 69 76 65 6e 3a 20 27 2c 20 67 65 74 70 61 72 61 6d 20 28 20 69 6e 66 29 29 3b 0a   ┆ter given: ', getparam ( inf)); ┆
0x04e900…04e920             20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 31 36 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆      end;    16:  writeln ( out┆
0x04e920…04e940             70 75 74 2c 20 27 55 6e 6b 6e 6f 77 6e 20 6f 70 74 69 6f 6e 3b 20 70 61 72 61 6d 65 74 65 72 20   ┆put, 'Unknown option; parameter ┆
0x04e940…04e960             6e 75 6d 62 65 72 20 27 2c 20 69 6e 66 2c 0a 20 20 20 20 20 20 20 20 27 3a 20 20 27 2c 20 67 65   ┆number ', inf,         ':  ', ge┆
0x04e960…04e980             74 70 61 72 61 6d 20 28 20 69 6e 66 29 29 3b 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 31   ┆tparam ( inf));  {----------   1┆
0x04e980…04e9a0             37 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 4e 61 6d 65 20 65 78 70 65   ┆7:  writeln ( output, 'Name expe┆
0x04e9a0…04e9c0             63 74 65 64 20 61 66 74 65 72 20 22 6c 69 62 2d 22 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d   ┆cted after "lib-"; parameter num┆
0x04e9c0…04e9e0             62 65 72 20 27 2c 20 69 6e 66 2c 0a 20 20 20 20 20 20 20 20 27 3a 20 20 27 2c 20 67 65 74 70 61   ┆ber ', inf,         ':  ', getpa┆
0x04e9e0…04ea00             72 61 6d 20 28 20 69 6e 66 29 29 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 31 38   ┆ram ( inf)); ------------}    18┆
0x04ea00…04ea20 (20, 1, 15) 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6e 63 6f 6e 73 69 73 74 65   ┆:  writeln ( output, 'Inconsiste┆
0x04ea20…04ea40             6e 63 79 20 69 6e 20 6c 6f 61 64 65 72 20 6d 61 70 27 29 3b 0a 0a 20 20 32 30 3a 20 20 77 72 69   ┆ncy in loader map');    20:  wri┆
0x04ea40…04ea60             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 79 65 73 20 6f 72 20 6e 6f 20 65 78 70 65 63 74   ┆teln ( output, 'yes or no expect┆
0x04ea60…04ea80             65 64 20 61 66 74 65 72 20 22 6d 61 70 2d 22 20 27 29 3b 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a   ┆ed after "map-" '); {---------- ┆
0x04ea80…04eaa0             20 20 32 31 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 79 65 73 20 65 78   ┆  21:  writeln ( output, 'yes ex┆
0x04eaa0…04eac0             70 65 63 74 65 64 20 61 66 74 65 72 20 22 62 69 6e 64 2d 22 20 27 29 3b 0a 0a 20 20 32 32 3a 20   ┆pected after "bind-" ');    22: ┆
0x04eac0…04eae0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 22 62 69 6e 64 2e 79 65 73 22 20 72   ┆ writeln ( output, '"bind.yes" r┆
0x04eae0…04eb00             65 71 75 69 72 65 64 20 62 79 20 72 63 33 35 30 32 2f 32 20 27 29 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d   ┆equired by rc3502/2 '); --------┆
0x04eb00…04eb20             2d 2d 2d 2d 7d 0a 20 20 32 33 3a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆----}   23:  writeln ( output, '┆
0x04eb20…04eb40             66 69 6c 65 3a 20 27 2c 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 2c 20 27 20 6e 6f 74 20 52 54   ┆file: ', obj_file_name, ' not RT┆
0x04eb40…04eb60             50 20 6f 62 6a 65 63 74 20 66 69 6c 65 27 29 3b 0a 0a 20 20 32 34 3a 20 20 77 72 69 74 65 6c 6e   ┆P object file');    24:  writeln┆
0x04eb60…04eb80             20 28 20 6f 75 74 70 75 74 2c 20 27 4d 61 78 20 61 76 61 69 6c 61 62 6c 65 20 6d 65 6d 20 66 6f   ┆ ( output, 'Max available mem fo┆
0x04eb80…04eba0             72 20 63 6f 72 65 69 6d 61 67 65 20 69 73 20 27 2c 20 69 6e 66 2c 20 27 20 3c 20 36 35 35 33 35   ┆r coreimage is ', inf, ' < 65535┆
0x04eba0…04ebc0             20 27 29 3b 0a 0a 20 20 32 35 3a 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 77 72 69 74 65 6c   ┆ ');    25:  begin        writel┆
0x04ebc0…04ebe0             6e 20 28 20 6f 75 74 70 75 74 2c 20 27 49 6c 6c 65 67 61 6c 20 6d 6f 64 75 6c 65 20 69 6e 20 22   ┆n ( output, 'Illegal module in "┆
0x04ebe0…04ec00             73 74 61 72 74 22 70 61 72 61 6d 65 74 65 72 3b 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65   ┆start"parameter; parameter numbe┆
0x04ec00…04ec20 (21, 0, 1)  72 20 27 2c 0a 20 20 20 20 20 20 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 2c 20 20 76 61   ┆r ',         param_index, ',  va┆
0x04ec20…04ec40             6c 75 65 20 20 24 27 2c 20 73 74 72 68 65 78 28 69 6e 66 29 2c 20 27 2c 20 20 27 2c 20 67 65 74   ┆lue  $', strhex(inf), ',  ', get┆
0x04ec40…04ec60             70 61 72 61 6d 20 28 20 69 6e 66 29 29 3b 0a 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆param ( inf));        writeln ( ┆
0x04ec60…04ec80             6f 75 74 70 75 74 2c 20 27 20 20 20 20 20 20 4d 6f 64 75 6c 65 20 73 68 6f 75 6c 64 20 62 65 20   ┆output, '      Module should be ┆
0x04ec80…04eca0             69 6e 20 20 24 43 30 20 2e 2e 20 24 46 45 20 20 27 29 3b 0a 20 20 20 20 20 20 20 65 6e 64 0a 20   ┆in  $C0 .. $FE  ');        end  ┆
0x04eca0…04ecc0             20 65 6c 73 65 20 3b 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 61 73 65 20 20 2a 29 0a 0a 20 20   ┆ else ;   end;  (*  case  *)    ┆
0x04ecc0…04ece0             69 66 20 6b 69 6e 64 20 3d 20 66 61 74 61 6c 20 74 68 65 6e 20 68 61 6c 74 20 28 20 31 29 3b 0a   ┆if kind = fatal then halt ( 1); ┆
0x04ece0…04ed00             20 20 65 6e 64 3b 20 28 2a 20 63 61 6c 6c 5f 65 72 72 6f 72 20 2a 29 0a 0a 7b 2d 2d 2d 2d 2d 2d   ┆  end; (* call_error *)  {------┆
0x04ed00…04ed20             2d 2d 2d 2d 2d 0a 70 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 68 65 78 20 28 64 65 63 69 6d 61   ┆----- procedure writehex (decima┆
0x04ed20…04ed40             6c 2c 20 70 6f 73 20 3a 20 77 6f 72 64 29 3b 0a 62 65 67 69 6e 0a 6f 75 74 68 65 78 20 28 6f 75   ┆l, pos : word); begin outhex (ou┆
0x04ed40…04ed60             74 70 75 74 2c 20 64 65 63 69 6d 61 6c 2c 20 70 6f 73 29 3b 0a 65 6e 64 3b 20 28 2a 20 77 72 69   ┆tput, decimal, pos); end; (* wri┆
0x04ed60…04ed80             74 65 68 65 78 20 2a 29 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d   ┆tehex *) ----------------------}┆
0x04ed80…04eda0             0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 69 6e 5f 6f 70 65 6e 66 69 6c 65 20 28 20 76 61 72 20   ┆   Procedure  in_openfile ( var ┆
0x04eda0…04edc0             70 61 74 68 3a 20 70 61 74 68 73 74 72 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 73 63 61   ┆path: pathstr);   begin   if sca┆
0x04edc0…04ede0             6e 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 6c 6f 6f 6b   ┆n = 1 then     begin     if look┆
0x04ede0…04ee00             75 70 20 28 20 70 61 74 68 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20   ┆up ( path) then  (*  ok  *)     ┆
0x04ee00…04ee20 (21, 0, 2)  65 6c 73 65 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 33 2c 20 70 61   ┆else  call_error ( fatal, 23, pa┆
0x04ee20…04ee40             72 61 6d 5f 69 6e 64 65 78 2c 20 70 61 74 68 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 6f 70 65   ┆ram_index, path);     end;   ope┆
0x04ee40…04ee60             6e 5f 66 69 6c 65 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 74 68 2c 20 66 6d 5f 72   ┆n_file ( in_obj_file, path, fm_r┆
0x04ee60…04ee80             65 61 64 20 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 69 6e 5f   ┆ead );   end;     Procedure  in_┆
0x04ee80…04eea0             69 64 65 6e 74 69 66 69 65 72 20 28 20 76 61 72 20 69 64 20 3a 20 69 64 65 6e 74 69 66 69 65 72   ┆identifier ( var id : identifier┆
0x04eea0…04eec0             29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 72 65 61 64 61 6c 66 61 20 28 20 69 6e 5f 6f 62 6a 5f 66   ┆);   begin   readalfa ( in_obj_f┆
0x04eec0…04eee0             69 6c 65 2c 20 69 64 29 3b 0a 20 20 65 6e 64 3b 20 28 2a 20 69 6e 5f 69 64 65 6e 74 69 66 69 65   ┆ile, id);   end; (* in_identifie┆
0x04eee0…04ef00             72 20 2a 29 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 5f 70 61 72 61 6d 73 20 28 20 63 6f   ┆r *)    Procedure in_params ( co┆
0x04ef00…04ef20             75 6e 74 3a 20 77 6f 72 64 3b 20 76 61 72 20 70 61 72 6d 3a 20 70 61 72 61 6d 5f 64 65 73 63 72   ┆unt: word; var parm: param_descr┆
0x04ef20…04ef40             3b 20 76 61 72 20 6e 61 6d 65 3a 20 61 6c 66 61 29 3b 0a 28 2a 20 72 65 61 64 20 70 61 72 61 6d   ┆; var name: alfa); (* read param┆
0x04ef40…04ef60             65 74 65 72 73 2c 20 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 20 69 73 20 73 65 74 20 74 6f 20 63   ┆eters,  no_of_params is set to c┆
0x04ef60…04ef80             6f 75 6e 74 20 20 2a 29 0a 20 20 76 61 72 20 20 70 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e   ┆ount  *)   var  p: word;   begin┆
0x04ef80…04efa0             0a 20 20 66 69 6c 6c 63 68 61 72 20 28 20 70 61 72 6d 2c 20 73 69 7a 65 6f 66 20 28 20 70 61 72   ┆   fillchar ( parm, sizeof ( par┆
0x04efa0…04efc0             6d 29 2c 20 30 29 3b 0a 20 20 77 69 74 68 20 70 61 72 6d 20 64 6f 0a 20 20 20 20 62 65 67 69 6e   ┆m), 0);   with parm do     begin┆
0x04efc0…04efe0             0a 20 20 20 20 69 66 20 63 6f 75 6e 74 20 3e 20 6d 61 78 5f 6f 62 6a 5f 70 61 72 61 6d 73 20 74   ┆     if count > max_obj_params t┆
0x04efe0…04f000             68 65 6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 31 30   ┆hen       call_error ( fatal, 10┆
0x04f000…04f020 (21, 0, 3)  2c 20 63 6f 75 6e 74 2c 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 29 20 29 3b 0a 20 20 20 20   ┆, count, stralfa ( name) );     ┆
0x04f020…04f040             70 61 72 61 6d 63 6f 75 6e 74 3a 3d 20 63 6f 75 6e 74 3b 0a 20 20 20 20 66 6f 72 20 70 20 3a 3d   ┆paramcount:= count;     for p :=┆
0x04f040…04f060             20 31 20 74 6f 20 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 77 69 74 68 20 70 61 72 61 6d 5b 70   ┆ 1 to count do      with param[p┆
0x04f060…04f080             5d 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67   ┆] do       begin       readinteg┆
0x04f080…04f0a0             65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 72 61 6d 5f 74 79 70 65 29 3b 0a 20   ┆er ( in_obj_file, param_type);  ┆
0x04f0a0…04f0c0             20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20   ┆     readinteger ( in_obj_file, ┆
0x04f0c0…04f0e0             70 61 72 61 6d 5f 73 69 7a 65 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b   ┆param_size);       end;     end;┆
0x04f0e0…04f100             0a 20 20 65 6e 64 3b 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69   ┆   end;   Function equal_paramli┆
0x04f100…04f120             73 74 73 20 28 20 76 61 72 20 61 2c 20 62 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 29 3a 20 62 6f   ┆sts ( var a, b: param_descr): bo┆
0x04f120…04f140             6f 6c 65 61 6e 3b 0a 20 20 76 61 72 0a 20 20 20 20 70 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 62   ┆olean;   var     p: integer;   b┆
0x04f140…04f160             65 67 69 6e 0a 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 74 72 75 65 3b   ┆egin   equal_paramlists := true;┆
0x04f160…04f180             20 20 28 2a 20 61 73 73 75 6d 65 20 65 76 65 72 79 74 68 69 6e 67 20 6f 6b 20 2a 29 0a 20 20 77   ┆  (* assume everything ok *)   w┆
0x04f180…04f1a0             69 74 68 20 61 20 64 6f 0a 20 20 20 20 69 66 20 70 61 72 61 6d 63 6f 75 6e 74 20 3c 3e 20 62 2e   ┆ith a do     if paramcount <> b.┆
0x04f1a0…04f1c0             70 61 72 61 6d 63 6f 75 6e 74 20 74 68 65 6e 0a 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72 61   ┆paramcount then       equal_para┆
0x04f1c0…04f1e0             6d 6c 69 73 74 73 20 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 66   ┆mlists := false     else       f┆
0x04f1e0…04f200             6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20   ┆or p := 1 to paramcount do      ┆
0x04f200…04f220 (21, 0, 4)  20 20 20 77 69 74 68 20 70 61 72 61 6d 5b 70 5d 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 69 66   ┆   with param[p] do           if┆
0x04f220…04f240             20 28 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61   ┆ ( param_type <> b.param[p].para┆
0x04f240…04f260             6d 5f 74 79 70 65 20 29 0a 20 20 20 20 20 20 20 20 20 20 6f 72 20 28 20 70 61 72 61 6d 5f 73 69   ┆m_type )           or ( param_si┆
0x04f260…04f280             7a 65 20 3c 3e 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 20 29 0a 20 20   ┆ze <> b.param[p].param_size )   ┆
0x04f280…04f2a0             20 20 20 20 20 20 20 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 71 75 61 6c 5f 70   ┆        then             equal_p┆
0x04f2a0…04f2c0             61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 7b 2d 2d   ┆aramlists:= false;   end;    {--┆
0x04f2c0…04f2e0             2d 2d 2d 2d 2d 2d 2d 2d 0a 46 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73   ┆-------- Function equal_paramlis┆
0x04f2e0…04f300             74 73 20 28 20 76 61 72 20 61 2c 20 62 3a 20 70 61 72 61 6d 5f 64 65 73 63 72 29 3a 20 62 6f 6f   ┆ts ( var a, b: param_descr): boo┆
0x04f300…04f320             6c 65 61 6e 3b 0a 20 20 76 61 72 0a 20 20 20 20 70 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 62 65   ┆lean;   var     p: integer;   be┆
0x04f320…04f340             67 69 6e 0a 20 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 74 72 75 65 3b 20   ┆gin   equal_paramlists := true; ┆
0x04f340…04f360             20 28 2a 20 61 73 73 75 6d 65 20 65 76 65 72 79 74 68 69 6e 67 20 6f 6b 20 2a 29 0a 20 20 77 69   ┆ (* assume everything ok *)   wi┆
0x04f360…04f380             74 68 20 61 20 64 6f 0a 20 20 20 20 69 66 20 70 61 72 61 6d 63 6f 75 6e 74 20 3c 3e 20 62 2e 70   ┆th a do     if paramcount <> b.p┆
0x04f380…04f3a0             61 72 61 6d 63 6f 75 6e 74 20 74 68 65 6e 0a 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72 61 6d   ┆aramcount then       equal_param┆
0x04f3a0…04f3c0             6c 69 73 74 73 20 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 66 6f   ┆lists := false     else       fo┆
0x04f3c0…04f3e0             72 20 70 20 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 20   ┆r p := 1 to paramcount do       ┆
0x04f3e0…04f400             20 20 77 69 74 68 20 70 61 72 61 6d 5b 70 5d 20 64 6f 0a 20 20 20 20 20 20 20 20 20 69 66 20 70   ┆  with param[p] do          if p┆
0x04f400…04f420 (21, 0, 5)  61 72 61 6d 5f 73 69 7a 65 20 3d 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a   ┆aram_size = b.param[p].param_siz┆
0x04f420…04f440             65 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20   ┆e then           begin          ┆
0x04f440…04f460             20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 62 2e 70 61 72 61 6d 5b 70 5d 2e 70 61 72   ┆ if param_type <> b.param[p].par┆
0x04f460…04f480             61 6d 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 62 2e 70 61   ┆am_type then           case b.pa┆
0x04f480…04f4a0             72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 74 79 70 65 20 6f 66 0a 63 6f 64 65 5f 76 61 72 5f 70 74   ┆ram[p].param_type of code_var_pt┆
0x04f4a0…04f4c0             72 20 3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e   ┆r :             if param_type <>┆
0x04f4c0…04f4e0             20 63 6f 64 65 5f 69 6e 73 70 65 63 5f 70 74 72 20 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72   ┆ code_inspec_ptr  then equal_par┆
0x04f4e0…04f500             61 6d 6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 79 73 72 65 63   ┆amlists:= false; code_var_sysrec┆
0x04f500…04f520             3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63   ┆:             if param_type <> c┆
0x04f520…04f540             6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 72 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d   ┆ode_inspec_sysr then equal_param┆
0x04f540…04f560             6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 79 73 61 72 72 79 20   ┆lists:= false; code_var_sysarry ┆
0x04f560…04f580             3a 20 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63   ┆:             if param_type <> c┆
0x04f580…04f5a0             6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 61 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d   ┆ode_inspec_sysa then equal_param┆
0x04f5a0…04f5c0             6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 76 61 72 5f 73 69 6d 70 6c 65 3a 20   ┆lists:= false; code_var_simple: ┆
0x04f5c0…04f5e0             0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64   ┆            if param_type <> cod┆
0x04f5e0…04f600             65 5f 69 6e 73 70 65 63 5f 73 69 6d 20 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69   ┆e_inspec_sim  then equal_paramli┆
0x04f600…04f620 (21, 0, 6)  73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 70 74 72 3a 20 0a 20   ┆sts:= false; code_inspec_ptr:   ┆
0x04f620…04f640             20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f   ┆          if param_type <> code_┆
0x04f640…04f660             76 61 72 5f 70 74 72 20 20 20 20 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74   ┆var_ptr     then equal_paramlist┆
0x04f660…04f680             73 3a 3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 72 3a 0a 20 20 20   ┆s:= false; code_inspec_sysr:    ┆
0x04f680…04f6a0             20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 76 61   ┆        if param_type <> code_va┆
0x04f6a0…04f6c0             72 5f 73 79 73 72 65 63 20 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a   ┆r_sysrec  then equal_paramlists:┆
0x04f6c0…04f6e0             3d 20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 79 73 61 3a 20 0a 20 20 20 20   ┆= false; code_inspec_sysa:      ┆
0x04f6e0…04f700             20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 76 61 72   ┆       if param_type <> code_var┆
0x04f700…04f720             5f 73 79 73 61 72 72 79 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d   ┆_sysarry then equal_paramlists:=┆
0x04f720…04f740             20 66 61 6c 73 65 3b 0a 63 6f 64 65 5f 69 6e 73 70 65 63 5f 73 69 6d 3a 0a 20 20 20 20 20 20 20   ┆ false; code_inspec_sim:        ┆
0x04f740…04f760             20 20 20 20 69 66 20 70 61 72 61 6d 5f 74 79 70 65 20 3c 3e 20 63 6f 64 65 5f 76 61 72 5f 73 69   ┆    if param_type <> code_var_si┆
0x04f760…04f780             6d 70 6c 65 20 20 74 68 65 6e 20 65 71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 3a 3d 20 66 61   ┆mple  then equal_paramlists:= fa┆
0x04f780…04f7a0             6c 73 65 3b 0a 0a 20 20 20 65 6c 73 65 20 20 20 20 20 20 20 20 65 71 75 61 6c 5f 70 61 72 61 6d   ┆lse;     else        equal_param┆
0x04f7a0…04f7c0             6c 69 73 74 73 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 20 20   ┆lists:= false;            end;  ┆
0x04f7c0…04f7e0             28 2a 20 20 63 61 73 65 20 20 2a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 20 28 2a 20   ┆(*  case  *)            end  (* ┆
0x04f7e0…04f800             20 73 69 7a 65 20 3d 20 20 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 20 65 71 75   ┆ size =   *)           else  equ┆
0x04f800…04f820 (21, 0, 7)  61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 65 6e 64 3b 0a 2d   ┆al_paramlists := false;   end; -┆
0x04f820…04f840             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6f   ┆---------------}    Procedure  o┆
0x04f840…04f860             75 74 5f 69 6e 74 65 67 65 72 20 28 20 69 6e 74 65 6c 20 3a 20 77 6f 72 64 20 29 3b 0a 20 20 62   ┆ut_integer ( intel : word );   b┆
0x04f860…04f880             65 67 69 6e 0a 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 6f 75 74 62 69 6e 66 69 6c 65   ┆egin   writeinteger ( outbinfile┆
0x04f880…04f8a0             2c 20 69 6e 74 65 6c 20 29 3b 0a 20 20 20 28 2a 2d 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72   ┆, intel );    (*- if current_ver┆
0x04f8a0…04f8c0             73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e   ┆sion_number = compiler_c_version┆
0x04f8c0…04f8e0             5f 6e 75 6d 62 65 72 20 74 68 65 6e 20 20 2d 2a 29 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆_number then  -*)     begin     ┆
0x04f8e0…04f900             63 72 63 31 36 20 28 20 73 75 6d 2c 20 73 77 61 70 20 28 20 69 6e 74 65 6c 29 29 3b 0a 20 20 20   ┆crc16 ( sum, swap ( intel));    ┆
0x04f900…04f920             20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 20 20 73 75 6d 3a 3d 20 63 72 63 31 36 20 28   ┆ (*-----------     sum:= crc16 (┆
0x04f920…04f940             20 63 72 63 31 36 20 28 20 73 75 6d 20 78 6f 72 20 68 69 28 69 29 2c 20 63 72 63 31 36 71 75 6f   ┆ crc16 ( sum xor hi(i), crc16quo┆
0x04f940…04f960             74 69 65 6e 74 29 0a 20 20 20 20 78 6f 72 20 6c 6f 28 69 29 2c 20 63 72 63 31 36 71 75 6f 74 69   ┆tient)     xor lo(i), crc16quoti┆
0x04f960…04f980             65 6e 74 20 29 3b 0a 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 20 69 6e   ┆ent );     ------------*)     in┆
0x04f980…04f9a0             63 20 28 20 73 75 6d 63 6f 75 6e 74 29 3b 0a 20 20 20 20 69 66 20 73 75 6d 63 6f 75 6e 74 20 3e   ┆c ( sumcount);     if sumcount >┆
0x04f9a0…04f9c0             20 73 75 6d 77 6f 72 64 73 0a 20 20 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 20 20 73   ┆ sumwords     then begin       s┆
0x04f9c0…04f9e0             75 6d 63 61 74 61 6c 6f 67 5b 73 75 6d 69 6e 64 65 78 5d 20 3a 3d 20 6e 6f 74 20 73 77 61 70 20   ┆umcatalog[sumindex] := not swap ┆
0x04f9e0…04fa00             28 20 73 75 6d 20 29 3b 0a 20 20 20 20 20 20 69 6e 63 20 28 20 73 75 6d 69 6e 64 65 78 29 3b 0a   ┆( sum );       inc ( sumindex); ┆
0x04fa00…04fa20 (21, 0, 8)  20 20 20 20 20 20 69 66 20 73 75 6d 69 6e 64 65 78 20 3e 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 74   ┆      if sumindex > no_of_sums t┆
0x04fa20…04fa40             68 65 6e 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a   ┆hen         writeln ( output, '*┆
0x04fa40…04fa60             2a 20 20 73 75 6d 69 6e 64 65 78 20 69 6e 20 6f 75 74 20 69 6e 74 67 20 3a 20 27 2c 20 73 75 6d   ┆*  sumindex in out intg : ', sum┆
0x04fa60…04fa80             69 6e 64 65 78 29 3b 0a 20 20 20 20 20 20 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 20 20 20 20   ┆index);       sumcount:= 1;     ┆
0x04fa80…04faa0             20 20 73 75 6d 3a 3d 20 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20   ┆  sum:=  all_ones;       end;   ┆
0x04faa0…04fac0             20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 61   ┆  end;   end;   procedure  out_a┆
0x04fac0…04fae0             64 64 72 20 28 20 61 20 3a 20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6f   ┆ddr ( a : address );   begin   o┆
0x04fae0…04fb00             75 74 5f 69 6e 74 65 67 65 72 20 28 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 61 2e 62 61   ┆ut_integer ( first_mem_no + a.ba┆
0x04fb00…04fb20             73 65 20 73 68 6c 20 31 20 29 3b 0a 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 61 2e 64 69   ┆se shl 1 );   out_integer ( a.di┆
0x04fb20…04fb40             73 70 20 29 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 69 64   ┆sp )   end;    procedure  out_id┆
0x04fb40…04fb60             65 6e 74 69 66 69 65 72 20 28 20 69 64 20 3a 20 61 6c 66 61 20 29 3b 0a 20 20 76 61 72 0a 20 20   ┆entifier ( id : alfa );   var   ┆
0x04fb60…04fb80             20 20 70 20 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 69 61 72 3a 20 20 61 72 72 61 79 20 5b 20 31   ┆  p  : word;     iar:  array [ 1┆
0x04fb80…04fba0             2e 2e 36 20 5d 20 6f 66 20 77 6f 72 64 20 20 61 62 73 6f 6c 75 74 65 20 69 64 3b 0a 20 20 62 65   ┆..6 ] of word  absolute id;   be┆
0x04fba0…04fbc0             67 69 6e 0a 20 20 66 6f 72 20 70 20 3a 3d 20 31 20 74 6f 20 36 20 64 6f 20 6f 75 74 5f 69 6e 74   ┆gin   for p := 1 to 6 do out_int┆
0x04fbc0…04fbe0             65 67 65 72 20 28 20 73 77 61 70 20 28 20 69 61 72 5b 70 5d 29 20 29 0a 20 20 65 6e 64 3b 0a 0a   ┆eger ( swap ( iar[p]) )   end;  ┆
0x04fbe0…04fc00             0a 0a 50 72 6f 63 65 64 75 72 65 20 6f 75 74 5f 73 75 6d 3b 0a 20 20 76 61 72 0a 20 20 20 20 20   ┆  Procedure out_sum;   var      ┆
0x04fc00…04fc20 (21, 0, 9)  70 20 20 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 20 64 61 74 20 3a 20 20 63 6f 64 65 64 5f 64 61   ┆p   : word;      dat :  coded_da┆
0x04fc20…04fc40             74 65 3b 0a 20 20 20 20 20 74 69 6d 20 3a 20 20 63 6f 64 65 64 5f 74 69 6d 65 3b 0a 20 20 20 20   ┆te;      tim :  coded_time;     ┆
0x04fc40…04fc60             20 6e 6f 77 20 3a 20 20 64 61 74 65 74 69 6d 65 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 6c   ┆ now :  datetime;   begin   if l┆
0x04fc60…04fc80             61 73 74 5f 73 63 61 6e 20 20 28 2a 2d 20 61 6e 64 20 28 63 75 72 72 65 6e 74 5f 76 65 72 73 69   ┆ast_scan  (*- and (current_versi┆
0x04fc80…04fca0             6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e   ┆on_number = compiler_c_version_n┆
0x04fca0…04fcc0             75 6d 62 65 72 29 20 2d 2a 29 0a 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 6f 75 74 5f   ┆umber) -*)   then begin     out_┆
0x04fcc0…04fce0             69 6e 74 65 67 65 72 20 28 20 73 75 6d 5f 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20   ┆integer ( sum_descriptor_length ┆
0x04fce0…04fd00             29 3b 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 31 20 29 3b 0a 20 20 20 20 6f 75   ┆);     out_integer ( 1 );     ou┆
0x04fd00…04fd20             74 5f 69 6e 74 65 67 65 72 20 28 20 73 75 6d 62 79 74 65 73 20 29 3b 0a 20 20 20 20 6f 75 74 5f   ┆t_integer ( sumbytes );     out_┆
0x04fd20…04fd40             69 6e 74 65 67 65 72 20 28 20 34 20 2b 20 32 2a 6e 6f 5f 6f 66 5f 73 75 6d 73 20 29 3b 0a 20 20   ┆integer ( 4 + 2*no_of_sums );   ┆
0x04fd40…04fd60             20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 73 75 6d 6b 69 6e 64 20 29 3b 0a 20 20 20 20 28   ┆  out_integer ( sumkind );     (┆
0x04fd60…04fd80             2a 20 6f 75 74 70 75 74 20 64 61 74 65 20 61 6e 64 20 74 69 6d 65 20 6f 66 20 63 72 6f 73 73 6c   ┆* output date and time of crossl┆
0x04fd80…04fda0             69 6e 6b 20 2a 29 0a 20 20 20 20 67 65 74 63 6c 6f 63 6b 20 28 20 6e 6f 77 29 3b 0a 20 20 20 20   ┆ink *)     getclock ( now);     ┆
0x04fda0…04fdc0             64 61 74 65 5f 61 6e 64 5f 74 69 6d 65 5f 74 6f 5f 72 63 33 35 30 32 20 28 20 6e 6f 77 2c 20 64   ┆date_and_time_to_rc3502 ( now, d┆
0x04fdc0…04fde0             61 74 2c 20 74 69 6d 29 3b 0a 20 20 20 20 28 2a 20 20 20 20 20 20 63 6c 6f 63 6b 2e 74 69 6d 65   ┆at, tim);     (*      clock.time┆
0x04fde0…04fe00             2e 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 3a 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f   ┆.compiler_version := compiler_c_┆
0x04fe00…04fe20 (21, 0, 10) 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 3b 20 20 2a 29 0a 20 20 20 20 74 69 6d 3a 3d 20 62 6f   ┆version_number;  *)     tim:= bo┆
0x04fe20…04fe40             6f 74 65 72 5f 76 65 72 73 69 6f 6e 20 73 68 6c 20 31 31 20 2b 20 74 69 6d 3b 0a 20 20 20 20 69   ┆oter_version shl 11 + tim;     i┆
0x04fe40…04fe60             66 20 64 65 62 75 67 33 20 74 68 65 6e 20 20 20 20 20 20 20 28 2a 20 20 6f 6e 6c 79 20 66 6f 72   ┆f debug3 then       (*  only for┆
0x04fe60…04fe80             20 64 65 62 75 67 20 20 2a 29 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 64 61 74   ┆ debug  *)       begin       dat┆
0x04fe80…04fea0             3a 3d 20 24 42 33 30 34 3b 0a 20 20 20 20 20 20 74 69 6d 3a 3d 20 24 35 32 43 34 3b 0a 20 20 20   ┆:= $B304;       tim:= $52C4;    ┆
0x04fea0…04fec0             20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 64 61 74 29 3b   ┆   end;      out_integer ( dat);┆
0x04fec0…04fee0             0a 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 74 69 6d 29 3b 0a 20 20 20 20 73 75 6d   ┆     out_integer ( tim);     sum┆
0x04fee0…04ff00             63 61 74 61 6c 6f 67 5b 73 75 6d 69 6e 64 65 78 5d 20 3a 3d 20 6e 6f 74 20 73 77 61 70 20 28 73   ┆catalog[sumindex] := not swap (s┆
0x04ff00…04ff20             75 6d 20 29 3b 0a 0a 20 20 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e 0a 20 20 20 20 20 20   ┆um );      if debug3 then       ┆
0x04ff20…04ff40             62 65 67 69 6e 0a 20 20 20 20 20 20 20 66 6f 72 20 70 3a 3d 20 31 20 74 6f 20 35 20 64 6f 20 20   ┆begin        for p:= 1 to 5 do  ┆
0x04ff40…04ff60             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 73 75 6d 20 27 2c 20 70 3a 38   ┆writeln ( output, '   sum ', p:8┆
0x04ff60…04ff80             2c 20 73 74 72 68 65 78 20 28 20 73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 29 3a 38 29 3b 0a 20 20   ┆, strhex ( sumcatalog[p]):8);   ┆
0x04ff80…04ffa0             20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 66 6f 72 20 70 3a 3d 31 20 74 6f 20 6e 6f 5f 6f 66 5f   ┆    end;      for p:=1 to no_of_┆
0x04ffa0…04ffc0             73 75 6d 73 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77 72 69 74 65 69   ┆sums do       begin       writei┆
0x04ffc0…04ffe0             6e 74 65 67 65 72 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c 20 73 75 6d 63 61 74 61 6c 6f 67 5b   ┆nteger ( outbinfile, sumcatalog[┆
0x04ffe0…050000             70 5d 20 29 3b 0a 20 20 20 20 20 20 73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 3a 3d 20 61 6c 6c 5f   ┆p] );       sumcatalog[p]:= all_┆
0x050000…050020 (21, 0, 11) 6f 6e 65 73 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 73 75 6d 63 6f 75 6e 74 3a 3d 20   ┆ones;       end;     sumcount:= ┆
0x050020…050040             31 3b 0a 20 20 20 20 73 75 6d 3a 3d 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 20 20 20 20 65 6e 64 3b 20   ┆1;     sum:= all_ones;     end; ┆
0x050040…050060             20 28 2a 20 20 6c 61 73 74 20 73 63 61 6e 20 20 2a 29 0a 20 20 73 75 6d 69 6e 64 65 78 20 3a 3d   ┆ (*  last scan  *)   sumindex :=┆
0x050060…050080             20 31 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6f 75 74 5f 65 6e 64   ┆ 1;   end;    Procedure  out_end┆
0x050080…0500a0             3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3c 3e 20 30 20   ┆;   begin   if undef_count <> 0 ┆
0x0500a0…0500c0             74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 72 65 77 72 69 74 65 20 28 20 6f 75 74   ┆then     begin     rewrite ( out┆
0x0500c0…0500e0             62 69 6e 66 69 6c 65 2c 20 31 29 3b 09 28 2a 20 65 6d 70 74 79 20 6f 75 74 70 75 74 20 2a 29 0a   ┆binfile, 1); (* empty output *) ┆
0x0500e0…050100             20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 29 0a 20 20 20 20 65 6e   ┆    iocheck ( outbinfile)     en┆
0x050100…050120             64 0a 20 20 65 6c 73 65 0a 20 20 20 20 6f 75 74 5f 73 75 6d 3b 0a 20 20 69 66 20 64 65 62 75 67   ┆d   else     out_sum;   if debug┆
0x050120…050140             33 20 74 68 65 6e 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 20 77 72 69 74 65 73 20   ┆3 then write ( output, ' writes ┆
0x050140…050160             20 24 30 30 20 27 29 3b 0a 20 20 77 72 69 74 65 69 6e 74 65 67 65 72 20 28 20 6f 75 74 62 69 6e   ┆ $00 ');   writeinteger ( outbin┆
0x050160…050180             66 69 6c 65 2c 20 73 74 6f 70 5f 6d 61 72 6b 29 3b 0a 0a 20 20 63 6c 6f 73 65 5f 66 69 6c 65 20   ┆file, stop_mark);    close_file ┆
0x050180…0501a0             28 20 6f 75 74 62 69 6e 66 69 6c 65 20 29 3b 0a 20 20 69 66 20 64 65 62 75 67 33 20 74 68 65 6e   ┆( outbinfile );   if debug3 then┆
0x0501a0…0501c0             20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 24 30 30 20 20 61 6e 64 20 63 6c 6f   ┆ writeln ( output, '$00  and clo┆
0x0501c0…0501e0             73 65 2e 20 27 29 3b 0a 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f 6e 20 73 74 72 5f   ┆se. ');    end;    Function str_┆
0x0501e0…050200             61 64 64 72 20 28 20 61 64 3a 20 61 64 64 72 65 73 73 29 3a 20 73 74 72 69 6e 67 3b 0a 20 20 76   ┆addr ( ad: address): string;   v┆
0x050200…050220 (21, 0, 12) 61 72 20 20 20 20 6e 75 6c 6e 75 6c 20 3a 20 20 73 74 72 69 6e 67 5b 32 5d 3b 0a 20 20 62 65 67   ┆ar    nulnul :  string[2];   beg┆
0x050220…050240             69 6e 0a 20 20 77 69 74 68 20 61 64 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66   ┆in   with ad do     begin     if┆
0x050240…050260             20 64 69 73 70 20 3c 3d 20 24 46 46 20 74 68 65 6e 20 6e 75 6c 6e 75 6c 3a 3d 20 27 30 30 27 20   ┆ disp <= $FF then nulnul:= '00' ┆
0x050260…050280             65 6c 73 65 20 6e 75 6c 6e 75 6c 3a 3d 20 27 27 3b 0a 20 20 20 20 73 74 72 5f 61 64 64 72 3a 3d   ┆else nulnul:= '';     str_addr:=┆
0x050280…0502a0             20 73 74 72 68 65 78 20 28 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 62 61 73 65 20 73 68   ┆ strhex ( first_mem_no + base sh┆
0x0502a0…0502c0             6c 20 31 29 20 2b 20 27 2e 27 0a 20 20 20 20 20 2b 20 6e 75 6c 6e 75 6c 20 2b 20 73 74 72 68 65   ┆l 1) + '.'      + nulnul + strhe┆
0x0502c0…0502e0             78 20 28 20 64 69 73 70 29 3b 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f   ┆x ( disp);     end   end;    Pro┆
0x0502e0…050300             63 65 64 75 72 65 20 70 72 69 6e 74 5f 69 74 65 6d 73 20 3b 0a 20 20 28 2a 20 70 72 69 6e 74 20   ┆cedure print_items ;   (* print ┆
0x050300…050320             61 6c 6c 20 75 6e 64 65 66 69 6e 65 64 20 69 74 65 6d 73 20 20 2a 29 0a 20 20 62 65 67 69 6e 0a   ┆all undefined items  *)   begin ┆
0x050320…050340             20 20 63 6c 65 61 72 6b 65 79 20 28 20 69 6e 78 66 29 3b 0a 20 20 69 6e 63 20 28 20 6c 6f 67 6e   ┆  clearkey ( inxf);   inc ( logn┆
0x050340…050360             6f 29 3b 0a 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e   ┆o);   if debug7 then     writeln┆
0x050360…050380             20 28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 43 6c 65 61 72 6b 65 79 20 26   ┆ ( log, '#', logno, '$Clearkey &┆
0x050380…0503a0             31 40 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆1@"  ->', success);   writeln ( ┆
0x0503a0…0503c0             6f 75 74 70 75 74 29 3b 0a 0a 20 20 72 65 70 65 61 74 0a 20 20 20 20 6e 65 78 74 6b 65 79 20 28   ┆output);    repeat     nextkey (┆
0x0503c0…0503e0             20 69 6e 78 66 2c 20 64 72 6e 2c 20 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e   ┆ inxf, drn, key);     inc ( logn┆
0x0503e0…050400             6f 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 20 20 77 72 69   ┆o);     if debug7 then       wri┆
0x050400…050420 (21, 0, 13) 74 65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 4e 65 78 74 6b 65   ┆teln ( log, '#', logno, '$Nextke┆
0x050420…050440             79 20 26 27 2c 20 64 72 6e 2c 20 27 40 27 2c 20 6b 65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75   ┆y &', drn, '@', key, '"  ->', su┆
0x050440…050460             63 63 65 73 73 29 3b 0a 20 20 20 20 69 66 20 73 75 63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 20   ┆ccess);     if success then     ┆
0x050460…050480             20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 67 65 74 72 65 63 20 28 20 64 61 74 66 2c 20 64 72 6e   ┆  begin       getrec ( datf, drn┆
0x050480…0504a0             2c 20 69 74 65 6d 29 3b 0a 20 20 20 20 20 20 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 20 20 20 20   ┆, item);       with item do     ┆
0x0504a0…0504c0             20 20 20 20 69 66 20 73 74 61 74 65 20 3d 20 75 6e 64 65 66 20 74 68 65 6e 0a 20 20 20 20 20 20   ┆    if state = undef then       ┆
0x0504c0…0504e0             20 20 20 20 62 65 67 69 6e 0a 09 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆    begin    writeln ( output, '┆
0x0504e0…050500             27 3a 6d 61 72 67 69 6e 2c 20 27 2a 2a 2a 20 20 27 2c 20 6b 65 79 2c 20 27 20 3a 20 20 6e 6f 74   ┆':margin, '***  ', key, ' :  not┆
0x050500…050520             20 64 65 66 69 6e 65 64 2c 20 20 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 75 73 65 64 20 62 79   ┆ defined,  ',           'used by┆
0x050520…050540             20 27 2c 20 75 73 65 72 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20   ┆ ', username);           end;   ┆
0x050540…050560             20 20 20 65 6e 64 0a 0a 20 20 75 6e 74 69 6c 20 6e 6f 74 20 73 75 63 63 65 73 73 3b 0a 0a 20 20   ┆   end    until not success;    ┆
0x050560…050580             69 66 20 64 65 62 75 67 37 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 6c 6f 67 29 3b 0a 20 20 6d   ┆if debug7 then close ( log);   m┆
0x050580…0505a0             79 5f 65 78 63 6f 64 65 3a 3d 20 31 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20   ┆y_excode:= 1;                (* ┆
0x0505a0…0505c0             20 74 68 69 73 20 73 65 74 73 20 65 72 72 6f 72 6c 65 76 65 6c 20 31 20 20 20 2a 29 0a 20 20 65   ┆ this sets errorlevel 1   *)   e┆
0x0505c0…0505e0             6e 64 3b 20 28 2a 20 70 72 69 6e 74 5f 69 74 65 6d 73 20 20 2a 29 0a 0a 0a 50 72 6f 63 65 64 75   ┆nd; (* print_items  *)   Procedu┆
0x0505e0…050600             72 65 20 70 72 69 6e 74 5f 6d 61 70 20 28 20 76 61 72 20 69 74 65 6d 3a 20 69 74 65 6d 5f 72 65   ┆re print_map ( var item: item_re┆
0x050600…050620 (21, 0, 14) 63 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 70 20 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e   ┆c);   var      p : word;   begin┆
0x050620…050640             0a 20 20 69 66 20 70 72 69 6e 74 5f 68 65 61 64 69 6e 67 20 74 68 65 6e 0a 20 20 20 20 62 65 67   ┆   if print_heading then     beg┆
0x050640…050660             69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72   ┆in     writeln ( output);     wr┆
0x050660…050680             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 0a 20 20 27 20 20   ┆iteln ( output, '':margin,   '  ┆
0x050680…0506a0             6b 69 6e 64 20 20 20 20 20 20 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 64 61 74 65 20 20 20   ┆kind      name           date   ┆
0x0506a0…0506c0             20 74 69 6d 65 20 20 20 20 64 65 73 63 72 20 20 20 20 63 6f 64 65 20 20 20 6c 65 6e 67 74 68 28   ┆ time    descr    code   length(┆
0x0506c0…0506e0             68 65 78 29 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27   ┆hex)');     writeln ( output, ''┆
0x0506e0…050700             3a 6d 61 72 67 69 6e 2c 0a 20 20 27 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆:margin,   '--------------------┆
0x050700…050720             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x050720…050740             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 27 29 3b 0a 20 20 20 20 70 72 69 6e 74 5f   ┆------------------');     print_┆
0x050740…050760             68 65 61 64 69 6e 67 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 77 69   ┆heading := false;     end;    wi┆
0x050760…050780             74 68 20 69 74 65 6d 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 63 61 73 65 20 68 65 61 64 2e 6b   ┆th item do   begin   case head.k┆
0x050780…0507a0             69 6e 64 20 6f 66 0a 20 20 31 3a 20 20 77 72 69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20 27 27   ┆ind of   1:  write (  output, ''┆
0x0507a0…0507c0             3a 6d 61 72 67 69 6e 2c 20 27 50 52 4f 47 52 41 4d 20 20 20 27 29 3b 0a 20 20 32 3a 20 20 77 72   ┆:margin, 'PROGRAM   ');   2:  wr┆
0x0507c0…0507e0             69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 50 52 4f 43 45   ┆ite (  output, '':margin, 'PROCE┆
0x0507e0…050800             44 55 52 45 20 27 29 3b 0a 20 20 33 3a 20 20 77 72 69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20   ┆DURE ');   3:  write (  output, ┆
0x050800…050820 (21, 0, 15) 27 27 3a 6d 61 72 67 69 6e 2c 20 27 46 55 4e 43 54 49 4f 4e 20 20 27 29 3b 0a 20 20 36 3a 20 20   ┆'':margin, 'FUNCTION  ');   6:  ┆
0x050820…050840             77 72 69 74 65 20 28 20 20 6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 44 41 54   ┆write (  output, '':margin, 'DAT┆
0x050840…050860             41 20 20 20 20 20 20 27 29 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 77 72 69 74 65 20 28 20 6f 75 74   ┆A      ');   end;    write ( out┆
0x050860…050880             70 75 74 2c 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 2c 20 27 27 3a 32 29   ┆put, stralfa ( head.name), '':2)┆
0x050880…0508a0             3b 0a 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 20 73 68 72 20 39 20 3e 20 30 20 74 68   ┆;   if compile_date shr 9 > 0 th┆
0x0508a0…0508c0             65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 64 61 74 65 20 28   ┆en     write ( output, strdate (┆
0x0508c0…0508e0             20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 29 2c 20 27 3a 27 29 0a 20 20 65 6c 73 65 0a 20 20 20 20   ┆ compile_date), ':')   else     ┆
0x0508e0…050900             77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 2e 2e 2e 2e 2e 20 27 3a 31 31 29 3b 0a   ┆write ( output, '  ..... ':11); ┆
0x050900…050920             0a 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 20 3c 3e 20 63 6f 6d   ┆   if compile_time shr 11 <> com┆
0x050920…050940             70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f   ┆piler_version then     write ( o┆
0x050940…050960             75 74 70 75 74 2c 20 27 3f 27 2c 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 2c   ┆utput, '?', compile_time shr 11,┆
0x050960…050980             20 27 3f 27 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c   ┆ '?')   else     write ( output,┆
0x050980…0509a0             20 73 74 72 74 69 6d 65 20 28 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 29 29 3b 0a 0a 20 20 69 66   ┆ strtime ( compile_time));    if┆
0x0509a0…0509c0             20 64 65 73 63 72 5f 79 65 73 20 74 68 65 6e 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70   ┆ descr_yes then     write ( outp┆
0x0509c0…0509e0             75 74 2c 20 27 27 3a 33 2c 20 73 74 72 5f 61 64 64 72 20 28 20 64 5f 61 64 64 72 29 29 0a 20 20   ┆ut, '':3, str_addr ( d_addr))   ┆
0x0509e0…050a00             65 6c 73 65 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 33 2c 20 27   ┆else     write ( output, '':3, '┆
0x050a00…050a20 (21, 1, 1)  27 3a 37 29 3b 0a 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 32 2c   ┆':7);    writeln ( output, '':2,┆
0x050a20…050a40             20 73 74 72 5f 61 64 64 72 20 28 20 63 6f 64 65 5f 61 64 64 72 29 2c 20 27 27 3a 32 2c 0a 20 20   ┆ str_addr ( code_addr), '':2,   ┆
0x050a40…050a60             20 20 20 20 73 74 72 68 65 78 20 28 20 74 6f 70 5f 6f 66 5f 62 69 6e 2e 64 69 73 70 20 2d 20 63   ┆    strhex ( top_of_bin.disp - c┆
0x050a60…050a80             6f 64 65 5f 61 64 64 72 2e 64 69 73 70 20 2b 20 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f   ┆ode_addr.disp + head.descriptor_┆
0x050a80…050aa0             6c 65 6e 67 74 68 29 3a 34 20 29 3b 0a 0a 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20   ┆length):4 );    if compile_time ┆
0x050aa0…050ac0             73 68 72 20 31 31 20 3c 3e 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 20 74 68 65 6e   ┆shr 11 <> compiler_version  then┆
0x050ac0…050ae0             0a 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 77 61 72 6e 2c 20 35 2c 20 63 6f 6d 70   ┆      call_error ( warn, 5, comp┆
0x050ae0…050b00             69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 2c 20 68 65 61 64 2e 6e 61 6d 65 20 29 3b 0a 20 20   ┆ile_time shr 11, head.name );   ┆
0x050b00…050b20             65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 63 6f 6e 76 65 72 74   ┆end;   end;   Procedure  convert┆
0x050b20…050b40             5f 74 6f 5f 68 65 78 20 28 20 61 20 3a 20 61 6c 66 61 73 74 72 3b 20 76 61 72 20 68 65 78 5f 6e   ┆_to_hex ( a : alfastr; var hex_n┆
0x050b40…050b60             75 6d 62 65 72 20 3a 20 77 6f 72 64 20 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 70 3a 20 20 77   ┆umber : word );   var      p:  w┆
0x050b60…050b80             6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 28 20 61 5b 31 5d 20 3c 3e 20 27 68 27 20   ┆ord;   begin   if ( a[1] <> 'h' ┆
0x050b80…050ba0             29 20 61 6e 64 20 28 20 61 5b 31 5d 20 3c 3e 20 27 24 27 20 29 20 74 68 65 6e 0a 20 20 20 20 20   ┆) and ( a[1] <> '$' ) then      ┆
0x050ba0…050bc0             63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 34 2c 20 70 61 72 61 6d 5f 69 6e 64   ┆call_error ( fatal, 4, param_ind┆
0x050bc0…050be0             65 78 2c 20 61 29 3b 0a 20 20 68 65 78 5f 6e 75 6d 62 65 72 20 3a 3d 20 30 3b 0a 0a 20 20 69 66   ┆ex, a);   hex_number := 0;    if┆
0x050be0…050c00             20 66 61 6c 73 65 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20   ┆ false then writeln ( output, ' ┆
0x050c00…050c20 (21, 1, 2)  63 6f 6e 76 65 72 74 20 3c 27 2c 20 61 2c 20 27 3e 20 20 27 29 3b 0a 20 20 66 6f 72 20 70 20 3a   ┆convert <', a, '>  ');   for p :┆
0x050c20…050c40             3d 20 32 20 74 6f 20 6c 65 6e 67 74 68 28 61 29 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20   ┆= 2 to length(a) do     begin   ┆
0x050c40…050c60             20 20 69 66 20 28 20 27 30 27 20 3c 3d 20 61 5b 70 5d 20 29 20 61 6e 64 20 28 20 61 5b 70 5d 20   ┆  if ( '0' <= a[p] ) and ( a[p] ┆
0x050c60…050c80             3c 3d 20 27 39 27 20 29 20 74 68 65 6e 0a 20 20 20 20 20 20 68 65 78 5f 6e 75 6d 62 65 72 20 3a   ┆<= '9' ) then       hex_number :┆
0x050c80…050ca0             3d 20 68 65 78 5f 6e 75 6d 62 65 72 20 73 68 6c 20 34 20 2b 20 28 20 6f 72 64 28 20 61 5b 70 5d   ┆= hex_number shl 4 + ( ord( a[p]┆
0x050ca0…050cc0             20 29 20 2d 20 6f 72 64 28 20 27 30 27 20 29 20 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69   ┆ ) - ord( '0' ) )     else     i┆
0x050cc0…050ce0             66 20 28 20 27 61 27 20 3c 3d 20 61 5b 70 5d 20 29 20 61 6e 64 20 28 20 61 5b 70 5d 20 3c 3d 20   ┆f ( 'a' <= a[p] ) and ( a[p] <= ┆
0x050ce0…050d00             27 66 27 20 29 20 74 68 65 6e 0a 20 20 20 20 20 20 68 65 78 5f 6e 75 6d 62 65 72 20 3a 3d 20 68   ┆'f' ) then       hex_number := h┆
0x050d00…050d20             65 78 5f 6e 75 6d 62 65 72 20 73 68 6c 20 34 20 2b 20 28 20 6f 72 64 28 20 61 5b 70 5d 20 29 20   ┆ex_number shl 4 + ( ord( a[p] ) ┆
0x050d20…050d40             2d 20 6f 72 64 28 20 27 61 27 20 29 20 2b 20 31 30 20 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20   ┆- ord( 'a' ) + 10 )     else    ┆
0x050d40…050d60             20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 66 61 6c 73 65 20 74 68 65 6e 20 77 72 69   ┆   begin       if false then wri┆
0x050d60…050d80             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 65 78 69 74 20 61 74 20 70 6f 73 20 27 2c   ┆teln ( output, '  exit at pos ',┆
0x050d80…050da0             20 70 2c 20 27 20 20 3c 27 2c 20 61 5b 70 5d 2c 20 27 3e 27 29 3b 0a 20 20 20 20 20 20 65 78 69   ┆ p, '  <', a[p], '>');       exi┆
0x050da0…050dc0             74 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 3b 20 28 2a 20 20 66 6f 72 20 2e 2e 2e   ┆t       end     end; (*  for ...┆
0x050dc0…050de0             2e 2e 20 20 2a 29 0a 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 6f 6e 76 65 72 74 20 68 65 78 20   ┆..  *)    end;  (*  convert hex ┆
0x050de0…050e00             20 2a 29 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20 6d 2c 20   ┆ *)   Procedure  map_laddr ( m, ┆
0x050e00…050e20 (21, 1, 3)  64 20 3a 20 77 6f 72 64 3b 20 76 61 72 20 61 20 3a 20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 62   ┆d : word; var a : address );   b┆
0x050e20…050e40             65 67 69 6e 0a 20 20 69 66 20 20 6d 20 3e 3d 20 33 32 20 20 74 68 65 6e 20 63 61 6c 6c 5f 65 72   ┆egin   if  m >= 32  then call_er┆
0x050e40…050e60             72 6f 72 20 28 20 66 61 74 61 6c 2c 20 37 2c 20 6d 2c 20 27 20 6d 20 3e 3d 20 33 32 20 27 29 3b   ┆ror ( fatal, 7, m, ' m >= 32 ');┆
0x050e60…050e80             0a 20 20 61 2e 62 61 73 65 20 3a 3d 20 6d 3b 0a 20 20 61 2e 64 69 73 70 20 3a 3d 20 64 0a 20 20   ┆   a.base := m;   a.disp := d   ┆
0x050e80…050ea0             65 6e 64 3b 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 72 65 73 65 72 76 65 5f 61 72 65 61 20 28 20   ┆end;   Procedure reserve_area ( ┆
0x050ea0…050ec0             73 69 7a 65 3a 20 6c 6f 6e 67 69 6e 74 3b 20 76 61 72 20 61 3a 20 61 64 64 72 65 73 73 29 3b 0a   ┆size: longint; var a: address); ┆
0x050ec0…050ee0             20 20 62 65 67 69 6e 0a 20 20 69 66 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 20 2d 20 73 69 7a   ┆  begin   if top_of_module - siz┆
0x050ee0…050f00             65 20 3c 20 61 2e 64 69 73 70 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66   ┆e < a.disp then     begin     if┆
0x050f00…050f20             20 64 65 62 75 67 36 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 77   ┆ debug6 then       begin       w┆
0x050f20…050f40             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 72 65 73 65 72 76 65 20 28 74   ┆riteln ( output, '--  reserve (t┆
0x050f40…050f60             6f 70 2c 73 69 7a 65 2c 61 2c 73 61 76 65 64 5f 64 29 27 2c 20 74 6f 70 5f 6f 66 5f 6d 6f 64 75   ┆op,size,a,saved_d)', top_of_modu┆
0x050f60…050f80             6c 65 2c 20 27 20 20 27 2c 20 73 69 7a 65 2c 20 27 20 20 27 2c 0a 20 20 20 20 20 20 61 2e 64 69   ┆le, '  ', size, '  ',       a.di┆
0x050f80…050fa0             73 70 2c 20 27 20 20 27 2c 20 73 74 72 5f 61 64 64 72 20 28 20 61 29 2c 20 27 20 20 27 2c 20 73   ┆sp, '  ', str_addr ( a), '  ', s┆
0x050fa0…050fc0             74 72 5f 61 64 64 72 20 28 20 69 74 65 6d 2e 73 61 76 65 64 5f 64 5f 61 64 64 72 29 29 3b 0a 20   ┆tr_addr ( item.saved_d_addr));  ┆
0x050fc0…050fe0             20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2d 2d 20 20 72 65 73 65   ┆     writeln ( output, '--  rese┆
0x050fe0…051000             72 76 65 20 28 64 65 73 5f 6c 65 6e 67 2c 6f 63 74 65 74 73 29 20 27 2c 20 68 65 61 64 2e 64 65   ┆rve (des_leng,octets) ', head.de┆
0x051000…051020 (21, 1, 4)  73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 2c 0a 20 20 20 20 20 20 27 20 20 27 2c 20 6f 63 74   ┆scriptor_length,       '  ', oct┆
0x051020…051040             65 74 73 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 6d 61 70 5f 6c 61 64 64 72 20 28   ┆ets);       end;     map_laddr (┆
0x051040…051060             20 61 2e 62 61 73 65 20 2b 20 31 2c 20 66 69 72 73 74 5f 6f 66 5f 6d 6f 64 75 6c 65 2c 20 61 29   ┆ a.base + 1, first_of_module, a)┆
0x051060…051080             3b 0a 20 20 20 20 6f 75 74 5f 73 75 6d 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a   ┆;     out_sum;     end;   end;  ┆
0x051080…0510a0             0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6d 61 70 5f 69 6e 63 72 20 28 20 66 72 6f 6d 20 3a 20 61   ┆  Procedure  map_incr ( from : a┆
0x0510a0…0510c0             64 64 72 65 73 73 3b 20 6f 66 66 73 65 74 20 3a 20 6c 6f 6e 67 69 6e 74 3b 20 76 61 72 20 61 20   ┆ddress; offset : longint; var a ┆
0x0510c0…0510e0             3a 20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 76 61 72 20 6f 6c 64 5f 62 61 73 65 20 3a 20 77 6f   ┆: address );   var old_base : wo┆
0x0510e0…051100             72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6f 6c 64 5f 62 61 73 65 20 3a 3d 20 66 72 6f 6d 2e 62   ┆rd;   begin   old_base := from.b┆
0x051100…051120             61 73 65 3b 0a 20 20 72 65 73 65 72 76 65 5f 61 72 65 61 20 28 20 6f 66 66 73 65 74 2c 20 66 72   ┆ase;   reserve_area ( offset, fr┆
0x051120…051140             6f 6d 29 3b 0a 20 20 61 2e 62 61 73 65 20 3a 3d 20 66 72 6f 6d 2e 62 61 73 65 3b 0a 20 20 69 66   ┆om);   a.base := from.base;   if┆
0x051140…051160             20 6f 6c 64 5f 62 61 73 65 20 3d 20 66 72 6f 6d 2e 62 61 73 65 20 74 68 65 6e 20 20 28 2a 20 73   ┆ old_base = from.base then  (* s┆
0x051160…051180             61 6d 65 20 6d 6f 64 75 6c 65 20 2a 29 0a 20 20 20 20 61 2e 64 69 73 70 20 3a 3d 20 66 72 6f 6d   ┆ame module *)     a.disp := from┆
0x051180…0511a0             2e 64 69 73 70 20 2b 20 20 6f 66 66 73 65 74 0a 20 20 65 6c 73 65 20 28 2a 20 63 68 61 6e 67 65   ┆.disp +  offset   else (* change┆
0x0511a0…0511c0             20 6d 6f 64 75 6c 65 20 2a 29 0a 20 20 20 20 61 2e 64 69 73 70 20 3a 3d 20 66 72 6f 6d 2e 64 69   ┆ module *)     a.disp := from.di┆
0x0511c0…0511e0             73 70 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 20 6d 61 70 5f 70 6f 69   ┆sp;   end;    Procedure  map_poi┆
0x0511e0…051200             6e 74 20 28 20 66 72 6f 6d 20 3a 20 61 64 64 72 65 73 73 3b 20 73 69 7a 65 20 3a 20 77 6f 72 64   ┆nt ( from : address; size : word┆
0x051200…051220 (21, 1, 5)  3b 20 70 20 3a 20 70 72 6f 67 72 61 6d 5f 70 6f 69 6e 74 3b 0a 09 20 20 20 20 20 76 61 72 20 61   ┆; p : program_point;       var a┆
0x051220…051240             20 3a 20 61 64 64 72 65 73 73 20 29 3b 0a 20 20 76 61 72 20 20 6f 66 66 73 65 74 20 3a 20 6c 6f   ┆ : address );   var  offset : lo┆
0x051240…051260             6e 67 69 6e 74 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6f 66 66 73 65 74 3a 3d 20 70 2e 72 65 6c 5f   ┆ngint;   begin   offset:= p.rel_┆
0x051260…051280             62 79 74 65 3b 0a 20 20 6f 66 66 73 65 74 20 3a 3d 20 6f 66 66 73 65 74 20 2b 20 28 20 70 2e 70   ┆byte;   offset := offset + ( p.p┆
0x051280…0512a0             61 67 65 5f 6e 6f 20 2d 20 31 29 20 2a 20 73 69 7a 65 3b 0a 20 20 69 66 20 6f 66 66 73 65 74 20   ┆age_no - 1) * size;   if offset ┆
0x0512a0…0512c0             3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 20 20 74 68 65 6e 0a 20 20 20 20 63 61 6c 6c 5f 65 72 72   ┆>= code_bytes  then     call_err┆
0x0512c0…0512e0             6f 72 20 28 20 66 61 74 61 6c 2c 20 37 2c 20 6f 66 66 73 65 74 2c 20 27 6f 66 66 73 65 74 20 3e   ┆or ( fatal, 7, offset, 'offset >┆
0x0512e0…051300             3d 20 63 6f 64 65 62 79 74 65 73 20 27 29 3b 0a 20 20 6d 61 70 5f 69 6e 63 72 20 28 20 66 72 6f   ┆= codebytes ');   map_incr ( fro┆
0x051300…051320             6d 2c 20 6f 66 66 73 65 74 2c 20 61 20 29 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75   ┆m, offset, a )   end;    Procedu┆
0x051320…051340             72 65 20 69 6e 5f 61 64 64 72 20 28 20 76 61 72 20 61 3a 20 61 64 64 72 65 73 73 29 3b 0a 20 20   ┆re in_addr ( var a: address);   ┆
0x051340…051360             76 61 72 20 70 6f 69 6e 74 3a 20 70 72 6f 67 72 61 6d 5f 70 6f 69 6e 74 3b 0a 20 20 62 65 67 69   ┆var point: program_point;   begi┆
0x051360…051380             6e 0a 20 20 28 2a 20 73 69 6d 75 6c 61 74 65 3a 20 69 6e 5f 70 6f 69 6e 74 20 28 70 6f 69 6e 74   ┆n   (* simulate: in_point (point┆
0x051380…0513a0             29 3b 20 2a 29 0a 20 20 77 69 74 68 20 70 6f 69 6e 74 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a   ┆); *)   with point do     begin ┆
0x0513a0…0513c0             20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70   ┆    readinteger ( in_obj_file, p┆
0x0513c0…0513e0             61 67 65 5f 6e 6f 29 3b 0a 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62   ┆age_no);     readinteger ( in_ob┆
0x0513e0…051400             6a 5f 66 69 6c 65 2c 20 72 65 6c 5f 62 79 74 65 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 6d 61   ┆j_file, rel_byte);     end;   ma┆
0x051400…051420 (21, 1, 6)  70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 68 65 61 64 2e 70 61 67 65 73 69   ┆p_point ( code_addr, head.pagesi┆
0x051420…051440             7a 65 2c 20 70 6f 69 6e 74 2c 20 61 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 46 75 6e 63 74 69 6f   ┆ze, point, a);   end;    Functio┆
0x051440…051460             6e 20 67 65 74 5f 62 79 74 65 20 28 20 66 72 6f 6d 5f 61 64 64 72 3a 20 61 64 64 72 65 73 73 3b   ┆n get_byte ( from_addr: address;┆
0x051460…051480             20 72 65 6c 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 62 79 74 65 3b 0a 20 20 76 61 72 0a 20 20 20   ┆ rel: integer) : byte;   var    ┆
0x051480…0514a0             20 62 79 74 65 5f 69 6e 64 65 78 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 77 69 74   ┆ byte_index: word;   begin   wit┆
0x0514a0…0514c0             68 20 66 72 6f 6d 5f 61 64 64 72 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 62 79 74   ┆h from_addr do     begin     byt┆
0x0514c0…0514e0             65 5f 69 6e 64 65 78 20 3a 3d 20 64 69 73 70 20 2b 20 72 65 6c 20 2d 20 63 6f 64 65 5f 61 64 64   ┆e_index := disp + rel - code_add┆
0x0514e0…051500             72 2e 64 69 73 70 3b 0a 20 20 20 20 69 66 20 62 79 74 65 5f 69 6e 64 65 78 20 3e 3d 20 63 6f 64   ┆r.disp;     if byte_index >= cod┆
0x051500…051520             65 5f 62 79 74 65 73 20 74 68 65 6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20   ┆e_bytes then       call_error ( ┆
0x051520…051540             66 61 74 61 6c 2c 20 37 2c 20 62 79 74 65 5f 69 6e 64 65 78 2c 20 27 62 79 74 65 69 6e 64 65 78   ┆fatal, 7, byte_index, 'byteindex┆
0x051540…051560             20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 27 29 3b 0a 20 20 20 20 67 65 74 5f 62 79 74 65 3a 3d   ┆ >= code_bytes');     get_byte:=┆
0x051560…051580             20 63 6f 72 65 5e 5b 62 79 74 65 5f 69 6e 64 65 78 5d 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65   ┆ core^[byte_index];     end;   e┆
0x051580…0515a0             6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f   ┆nd;    Procedure store_byte ( to┆
0x0515a0…0515c0             5f 61 64 64 72 3a 20 61 64 64 72 65 73 73 3b 20 72 65 6c 3a 20 69 6e 74 65 67 65 72 3b 20 62 79   ┆_addr: address; rel: integer; by┆
0x0515c0…0515e0             76 61 3a 20 62 79 74 65 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 62 79 74 65 5f 69 6e 64 65 78 3a   ┆va: byte);   var     byte_index:┆
0x0515e0…051600             20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 77 69 74 68 20 74 6f 5f 61 64 64 72 20 64 6f   ┆ word;   begin   with to_addr do┆
0x051600…051620 (21, 1, 7)  0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 62 79 74 65 5f 69 6e 64 65 78 20 3a 3d 20 64 69 73   ┆     begin     byte_index := dis┆
0x051620…051640             70 20 2b 20 72 65 6c 20 2d 20 63 6f 64 65 5f 61 64 64 72 2e 64 69 73 70 3b 0a 20 20 20 20 69 66   ┆p + rel - code_addr.disp;     if┆
0x051640…051660             20 62 79 74 65 5f 69 6e 64 65 78 20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73 20 74 68 65 6e 0a 20   ┆ byte_index >= code_bytes then  ┆
0x051660…051680             20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 37 2c 20 62 79 74 65   ┆     call_error ( fatal, 7, byte┆
0x051680…0516a0             5f 69 6e 64 65 78 2c 20 27 62 79 74 65 69 6e 64 65 78 20 3e 3d 20 63 6f 64 65 5f 62 79 74 65 73   ┆_index, 'byteindex >= code_bytes┆
0x0516a0…0516c0             27 29 3b 0a 20 20 20 20 63 6f 72 65 5e 5b 62 79 74 65 5f 69 6e 64 65 78 5d 3a 3d 20 62 79 76 61   ┆');     core^[byte_index]:= byva┆
0x0516c0…0516e0             3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 67   ┆;     end;   end;    Procedure g┆
0x0516e0…051700             65 74 62 6c 6f 63 6b 20 28 20 62 79 74 65 63 6f 75 6e 74 3a 20 6c 6f 6e 67 69 6e 74 29 3b 0a 20   ┆etblock ( bytecount: longint);  ┆
0x051700…051720             20 76 61 72 0a 20 20 20 20 62 79 74 65 73 20 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20   ┆ var     bytes : word;   begin  ┆
0x051720…051740             20 62 6c 6f 63 6b 72 65 61 64 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 63 6f 72 65 5e 2c   ┆ blockread ( in_obj_file, core^,┆
0x051740…051760             20 62 79 74 65 63 6f 75 6e 74 2c 20 62 79 74 65 73 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20   ┆ bytecount, bytes);   iocheck ( ┆
0x051760…051780             69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 69 66 20 62 79 74 65 73 20 3c 20 62 79 74 65 63   ┆in_obj_file);   if bytes < bytec┆
0x051780…0517a0             6f 75 6e 74 20 74 68 65 6e 20 72 75 6e 65 72 72 6f 72 20 28 20 31 33 30 29 0a 20 20 65 6e 64 3b   ┆ount then runerror ( 130)   end;┆
0x0517a0…0517c0             0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 70 75 74 62 6c 6f 63 6b 20 28 20 62 79 74 65 63 6f 75   ┆    Procedure putblock ( bytecou┆
0x0517c0…0517e0             6e 74 3a 20 6c 6f 6e 67 69 6e 74 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 70 2c 20 62 79 74 65 73   ┆nt: longint);   var     p, bytes┆
0x0517e0…051800             2c 20 6c 61 73 74 20 3a 20 77 6f 72 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 62 6c 6f 63 6b 77 72   ┆, last : word;   begin   blockwr┆
0x051800…051820 (21, 1, 8)  69 74 65 20 28 20 6f 75 74 62 69 6e 66 69 6c 65 2c 20 63 6f 72 65 5e 2c 20 62 79 74 65 63 6f 75   ┆ite ( outbinfile, core^, bytecou┆
0x051820…051840             6e 74 2c 20 62 79 74 65 73 29 3b 0a 20 20 69 6f 63 68 65 63 6b 20 28 20 6f 75 74 62 69 6e 66 69   ┆nt, bytes);   iocheck ( outbinfi┆
0x051840…051860             6c 65 29 3b 0a 20 20 69 66 20 62 79 74 65 73 20 3c 20 62 79 74 65 63 6f 75 6e 74 20 74 68 65 6e   ┆le);   if bytes < bytecount then┆
0x051860…051880             20 72 75 6e 65 72 72 6f 72 20 28 20 31 33 31 29 3b 0a 20 20 28 2a 2d 20 20 69 66 20 63 75 72 72   ┆ runerror ( 131);   (*-  if curr┆
0x051880…0518a0             65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f   ┆ent_version_number = compiler_c_┆
0x0518a0…0518c0             76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 20 74 68 65 6e 20 20 2d 2a 29 0a 20 20 20 20 62 65   ┆version_number  then  -*)     be┆
0x0518c0…0518e0             67 69 6e 0a 20 20 20 20 6c 61 73 74 3a 3d 20 28 20 62 79 74 65 63 6f 75 6e 74 20 73 68 72 20 31   ┆gin     last:= ( bytecount shr 1┆
0x0518e0…051900             20 29 20 2d 20 31 3b 0a 20 20 20 20 66 6f 72 20 70 3a 3d 20 30 20 74 6f 20 6c 61 73 74 20 64 6f   ┆ ) - 1;     for p:= 0 to last do┆
0x051900…051920             0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 63 72 63 31 36 20 28 20 73 75 6d 2c 20   ┆       begin       crc16 ( sum, ┆
0x051920…051940             63 6f 72 65 77 5e 5b 70 5d 29 3b 0a 20 20 20 20 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆corew^[p]);     (*--------------┆
0x051940…051960             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 20 20 20 20 73 75 6d 3a 3d 20 63 72 63 31 36 20 28 20   ┆-----------       sum:= crc16 ( ┆
0x051960…051980             63 72 63 31 36 20 28 20 73 75 6d 20 78 6f 72 20 68 69 28 62 79 74 65 73 29 2c 20 63 72 63 31 36   ┆crc16 ( sum xor hi(bytes), crc16┆
0x051980…0519a0             71 75 6f 74 69 65 6e 74 20 29 0a 20 20 20 20 20 20 78 6f 72 20 20 20 20 20 6c 6f 28 62 79 74 65   ┆quotient )       xor     lo(byte┆
0x0519a0…0519c0             73 29 20 2c 20 63 72 63 31 36 71 75 6f 74 69 65 6e 74 20 29 3b 0a 20 20 20 20 20 20 2d 2d 2d 2d   ┆s) , crc16quotient );       ----┆
0x0519c0…0519e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 20 20 20 20 20 20 69 6e   ┆---------------------*)       in┆
0x0519e0…051a00             63 20 28 20 73 75 6d 63 6f 75 6e 74 29 3b 0a 20 20 20 20 20 20 69 66 20 73 75 6d 63 6f 75 6e 74   ┆c ( sumcount);       if sumcount┆
0x051a00…051a20 (21, 1, 9)  20 3e 20 73 75 6d 77 6f 72 64 73 0a 20 20 20 20 20 20 74 68 65 6e 20 62 65 67 69 6e 0a 09 73 75   ┆ > sumwords       then begin  su┆
0x051a20…051a40             6d 63 61 74 61 6c 6f 67 5b 73 75 6d 69 6e 64 65 78 5d 3a 3d 20 6e 6f 74 20 73 77 61 70 20 28 20   ┆mcatalog[sumindex]:= not swap ( ┆
0x051a40…051a60             73 75 6d 20 29 3b 0a 09 69 6e 63 20 28 20 73 75 6d 69 6e 64 65 78 29 3b 0a 20 20 20 20 20 20 69   ┆sum );  inc ( sumindex);       i┆
0x051a60…051a80             66 20 73 75 6d 69 6e 64 65 78 20 3e 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 74 68 65 6e 0a 20 20 20   ┆f sumindex > no_of_sums then    ┆
0x051a80…051aa0             20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 2a 2a 20 20 73 75 6d 69   ┆     writeln ( output, '**  sumi┆
0x051aa0…051ac0             6e 64 65 78 20 69 6e 20 70 75 74 62 6c 6f 63 6b 28 27 2c 20 62 79 74 65 63 6f 75 6e 74 2c 27 25   ┆ndex in putblock(', bytecount,'%┆
0x051ac0…051ae0             27 2c 20 6c 61 73 74 2c 27 29 20 3a 20 27 2c 20 73 75 6d 69 6e 64 65 78 20 29 3b 0a 09 73 75 6d   ┆', last,') : ', sumindex );  sum┆
0x051ae0…051b00             63 6f 75 6e 74 3a 3d 20 31 3b 0a 09 73 75 6d 3a 3d 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 09 65 6e 64   ┆count:= 1;  sum:= all_ones;  end┆
0x051b00…051b20             3b 0a 20 20 20 20 20 20 65 6e 64 3b 20 20 20 28 2a 20 20 66 6f 72 20 70 20 20 2a 29 0a 20 20 20   ┆;       end;   (*  for p  *)    ┆
0x051b20…051b40             20 65 6e 64 3b 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 70 75 74 62 6c 6f 63 6b 20 20 2a 29 0a 0a   ┆ end;   end;  (*  putblock  *)  ┆
0x051b40…051b60             0a 0a 50 72 6f 63 65 64 75 72 65 20 73 74 6f 72 65 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72   ┆  Procedure store_addr ( to_addr┆
0x051b60…051b80             2c 20 6b 5f 61 64 64 72 3a 20 61 64 64 72 65 73 73 29 3b 0a 20 20 28 2a 20 61 64 64 20 74 68 65   ┆, k_addr: address);   (* add the┆
0x051b80…051ba0             20 64 69 73 70 20 69 6e 20 63 6f 72 65 2d 69 6d 61 67 65 20 74 6f 20 74 68 65 20 6e 65 77 20 63   ┆ disp in core-image to the new c┆
0x051ba0…051bc0             6f 6e 74 65 6e 74 73 20 2a 29 0a 20 20 62 65 67 69 6e 0a 20 20 6d 61 70 5f 69 6e 63 72 20 28 20   ┆ontents *)   begin   map_incr ( ┆
0x051bc0…051be0             6b 5f 61 64 64 72 2c 20 73 77 61 70 28 67 65 74 5f 62 79 74 65 28 74 6f 5f 61 64 64 72 2c 2d 31   ┆k_addr, swap(get_byte(to_addr,-1┆
0x051be0…051c00             29 29 20 2b 20 67 65 74 5f 62 79 74 65 28 74 6f 5f 61 64 64 72 2c 30 29 2c 20 6b 5f 61 64 64 72   ┆)) + get_byte(to_addr,0), k_addr┆
0x051c00…051c20 (21, 1, 10) 29 3b 0a 20 20 77 69 74 68 20 6b 5f 61 64 64 72 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20   ┆);   with k_addr do     begin   ┆
0x051c20…051c40             20 20 62 61 73 65 20 3a 3d 20 66 69 72 73 74 5f 6d 65 6d 5f 6e 6f 20 2b 20 62 61 73 65 20 73 68   ┆  base := first_mem_no + base sh┆
0x051c40…051c60             6c 20 31 3b 0a 20 20 20 20 28 2a 2d 2d 2d 2d 20 20 6f 6c 64 20 20 2d 2d 2d 0a 20 20 20 20 69 66   ┆l 1;     (*----  old  ---     if┆
0x051c60…051c80             20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c   ┆ current_version_number = compil┆
0x051c80…051ca0             65 72 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 74 68 65 6e 0a 20 20 20 20 20 20 73 74 6f   ┆er_version_number then       sto┆
0x051ca0…051cc0             72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72 2c 20 2d 33 2c 20 73 77 61 70 28 62 61 73 65   ┆re_byte ( to_addr, -3, swap(base┆
0x051cc0…051ce0             29 20 61 6e 64 20 32 35 35 29 3b 0a 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆) and 255);     ----------------┆
0x051ce0…051d00             2a 29 0a 20 20 20 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f 61 64 64 72 2c 20 2d 32 2c   ┆*)     store_byte ( to_addr, -2,┆
0x051d00…051d20             20 6c 6f 28 62 61 73 65 29 29 3b 0a 20 20 20 20 73 74 6f 72 65 5f 62 79 74 65 20 28 20 74 6f 5f   ┆ lo(base));     store_byte ( to_┆
0x051d20…051d40             61 64 64 72 2c 20 2d 31 2c 20 68 69 28 64 69 73 70 29 29 3b 0a 20 20 20 20 73 74 6f 72 65 5f 62   ┆addr, -1, hi(disp));     store_b┆
0x051d40…051d60             79 74 65 20 28 20 74 6f 5f 61 64 64 72 2c 20 20 30 2c 20 6c 6f 28 64 69 73 70 29 29 3b 0a 20 20   ┆yte ( to_addr,  0, lo(disp));   ┆
0x051d60…051d80             20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 67 65 74 5f 64   ┆  end;   end;    Procedure get_d┆
0x051d80…051da0             61 74 65 20 28 20 76 61 72 20 64 61 74 65 3a 20 63 6f 64 65 64 5f 64 61 74 65 3b 20 76 61 72 20   ┆ate ( var date: coded_date; var ┆
0x051da0…051dc0             74 69 6d 65 3a 20 63 6f 64 65 64 5f 74 69 6d 65 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 66 70   ┆time: coded_time);   var      fp┆
0x051dc0…051de0             6f 73 20 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 66 70 6f 73 3a 3d   ┆os : longint;    begin    fpos:=┆
0x051de0…051e00             20 66 69 6c 65 70 6f 73 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 20 69 6f 63 68   ┆ filepos ( in_obj_file);    ioch┆
0x051e00…051e20 (21, 1, 11) 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 20 72 65 61 64 69 6e 74 65 67   ┆eck ( in_obj_file);    readinteg┆
0x051e20…051e40             65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 64 61 74 65 29 3b 0a 20 20 20 72 65 61 64   ┆er ( in_obj_file, date);    read┆
0x051e40…051e60             69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 74 69 6d 65 29 3b 0a 20 20   ┆integer ( in_obj_file, time);   ┆
0x051e60…051e80             20 69 66 20 74 69 6d 65 20 73 68 72 20 31 31 20 3c 3e 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73   ┆ if time shr 11 <> compiler_vers┆
0x051e80…051ea0             69 6f 6e 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e   ┆ion then      begin      writeln┆
0x051ea0…051ec0             20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 20 24 27 2c 20   ┆ ( output, '! compile time  $', ┆
0x051ec0…051ee0             73 74 72 68 65 78 20 28 20 74 69 6d 65 29 2c 0a 09 27 20 20 20 27 2c 20 73 74 72 64 61 74 65 20   ┆strhex ( time),  '   ', strdate ┆
0x051ee0…051f00             28 20 64 61 74 65 29 2c 20 27 27 3a 32 2c 20 73 74 72 74 69 6d 65 20 28 20 74 69 6d 65 29 29 3b   ┆( date), '':2, strtime ( time));┆
0x051f00…051f20             0a 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 35 2c 20 74 69 6d   ┆      call_error ( fatal, 5, tim┆
0x051f20…051f40             65 20 73 68 72 20 31 31 2c 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 20 29   ┆e shr 11, stralfa ( head.name) )┆
0x051f40…051f60             3b 0a 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c   ┆;      end;    seek ( in_obj_fil┆
0x051f60…051f80             65 2c 20 66 70 6f 73 29 3b 09 28 2a 20 20 62 61 63 6b 20 61 67 61 69 6e 20 20 2a 29 0a 20 20 20   ┆e, fpos); (*  back again  *)    ┆
0x051f80…051fa0             65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65 64 75 72 65 20 69 6e 69 74 5f 69 74 65 6d 20 28 20 76 61   ┆end;    Procedure init_item ( va┆
0x051fa0…051fc0             72 20 69 74 65 6d 3a 20 69 74 65 6d 5f 72 65 63 3b 20 76 61 72 20 72 65 63 6e 6f 3a 20 77 6f 72   ┆r item: item_rec; var recno: wor┆
0x051fc0…051fe0             64 3b 0a 09 09 20 20 20 20 20 20 6b 65 79 3a 20 61 6c 66 61 73 74 72 3b 20 73 65 74 5f 64 61 74   ┆d;         key: alfastr; set_dat┆
0x051fe0…052000             65 3a 20 62 6f 6f 6c 65 61 6e 29 3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 69 6c 6c 63 68 61 72 20   ┆e: boolean);   begin   fillchar ┆
0x052000…052020 (21, 1, 12) 28 20 69 74 65 6d 2c 20 73 69 7a 65 6f 66 20 28 20 69 74 65 6d 29 2c 20 30 29 3b 0a 20 20 77 69   ┆( item, sizeof ( item), 0);   wi┆
0x052020…052040             74 68 20 69 74 65 6d 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 28 2a 20 20 72 65 63   ┆th item do     begin     (*  rec┆
0x052040…052060             73 74 61 74 3a 3d 20 30 3b 20 20 20 62 79 20 66 69 6c 6c 63 68 61 72 20 20 2a 29 0a 20 20 20 20   ┆stat:= 0;   by fillchar  *)     ┆
0x052060…052080             69 66 20 73 65 74 5f 64 61 74 65 20 74 68 65 6e 20 20 67 65 74 5f 64 61 74 65 20 28 20 63 6f 6d   ┆if set_date then  get_date ( com┆
0x052080…0520a0             70 69 6c 65 5f 64 61 74 65 2c 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 29 3b 0a 20 20 20 28 2a 20   ┆pile_date, compile_time);    (* ┆
0x0520a0…0520c0             20 20 20 65 6c 73 65 20 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 3a 3d 20 30 3b 20 20 20 75 6e 64   ┆   else  compile_date:= 0;   und┆
0x0520c0…0520e0             65 66 69 6e 65 64 20 64 61 74 65 20 2a 29 0a 0a 20 20 20 20 73 74 61 74 65 20 3a 3d 20 75 6e 64   ┆efined date *)      state := und┆
0x0520e0…052100             65 66 3b 0a 20 20 20 20 75 73 65 72 6e 61 6d 65 3a 3d 20 73 74 72 61 6c 66 61 20 28 20 68 65 61   ┆ef;     username:= stralfa ( hea┆
0x052100…052120             64 2e 6e 61 6d 65 29 3b 0a 20 20 20 20 70 61 72 61 6d 6c 69 73 74 20 3a 3d 20 6f 62 6a 5f 70 61   ┆d.name);     paramlist := obj_pa┆
0x052120…052140             72 61 6d 73 3b 0a 20 20 20 20 65 6e 74 72 79 5f 61 64 64 72 20 3a 3d 20 73 74 61 72 74 5f 61 64   ┆rams;     entry_addr := start_ad┆
0x052140…052160             64 72 3b 20 20 28 2a 20 64 75 6d 6d 79 20 65 6e 74 72 79 2d 61 64 64 72 20 2a 29 0a 20 20 20 20   ┆dr;  (* dummy entry-addr *)     ┆
0x052160…052180             65 6e 64 3b 0a 20 20 61 6e 79 5f 69 6e 63 6c 75 64 65 64 20 3a 3d 20 74 72 75 65 3b 0a 20 20 69   ┆end;   any_included := true;   i┆
0x052180…0521a0             6e 63 20 28 20 6c 61 73 74 5f 65 78 74 65 72 6e 61 6c 29 3b 0a 20 20 69 6e 63 20 28 20 75 6e 64   ┆nc ( last_external);   inc ( und┆
0x0521a0…0521c0             65 66 5f 63 6f 75 6e 74 29 3b 0a 20 20 61 64 64 72 65 63 20 28 20 64 61 74 66 2c 20 72 65 63 6e   ┆ef_count);   addrec ( datf, recn┆
0x0521c0…0521e0             6f 2c 20 69 74 65 6d 29 3b 0a 20 20 6b 65 79 3a 3d 20 6b 65 79 20 2b 20 27 20 20 20 20 20 20 20   ┆o, item);   key:= key + '       ┆
0x0521e0…052200             20 20 20 20 20 27 3b 0a 20 20 69 66 20 64 65 62 75 67 63 61 74 20 74 68 65 6e 20 20 77 72 69 74   ┆     ';   if debugcat then  writ┆
0x052200…052220 (21, 1, 13) 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 61 64 64 72 65 63 20 3a 20 27 2c 20 6b 65   ┆eln ( output, '   addrec : ', ke┆
0x052220…052240             79 2c 20 27 2c 27 2c 20 72 65 63 6e 6f 3a 34 2c 20 73 65 74 5f 64 61 74 65 3a 38 29 3b 0a 20 20   ┆y, ',', recno:4, set_date:8);   ┆
0x052240…052260             61 64 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 72 65 63 6e 6f 2c 20 6b 65 79 29 3b 0a 20 20 20 20   ┆addkey ( inxf, recno, key);     ┆
0x052260…052280             69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20   ┆inc ( logno);   if debug7 then  ┆
0x052280…0522a0             20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24   ┆   writeln ( log, '#', logno, '$┆
0x0522a0…0522c0             41 64 64 6b 65 79 20 26 27 2c 20 72 65 63 6e 6f 2c 20 27 40 27 2c 20 6b 65 79 2c 20 27 22 20 20   ┆Addkey &', recno, '@', key, '"  ┆
0x0522c0…0522e0             2d 3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 0a 0a 20 20 65 6e 64 3b 0a 0a 0a 0a 50 72 6f 63 65   ┆->', success);     end;    Proce┆
0x0522e0…052300             64 75 72 65 20 73 65 61 72 63 68 20 28 20 76 61 72 20 69 74 65 6d 3a 20 69 74 65 6d 5f 72 65 63   ┆dure search ( var item: item_rec┆
0x052300…052320             3b 20 76 61 72 20 72 65 63 6e 6f 3a 20 77 6f 72 64 3b 0a 20 20 20 20 76 61 72 20 6b 65 79 3a 20   ┆; var recno: word;     var key: ┆
0x052320…052340             61 6c 66 61 73 74 72 3b 20 76 61 72 20 70 61 72 61 6d 73 3a 20 70 61 72 61 6d 5f 64 65 73 63 72   ┆alfastr; var params: param_descr┆
0x052340…052360             29 3b 0a 20 28 2a 20 20 73 65 61 72 63 68 20 66 6f 72 20 61 6e 20 69 74 65 6d 20 77 69 74 68 20   ┆);  (*  search for an item with ┆
0x052360…052380             20 69 64 20 3d 20 6b 65 79 20 61 6e 64 20 70 61 72 61 6d 6c 69 73 74 20 3d 20 70 61 72 61 6d 73   ┆ id = key and paramlist = params┆
0x052380…0523a0             0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20 73 75 63 63 65 73 73 20 3d 20 66 61 6c 73 65 20 69 66   ┆  --  returns success = false if┆
0x0523a0…0523c0             20 6e 6f 74 20 66 6f 75 6e 64 0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20 73 75 63 63 65 73 73 20   ┆ not found  --  returns success ┆
0x0523c0…0523e0             3d 20 74 72 75 65 20 61 6e 64 20 74 68 65 20 69 74 65 6d 2c 20 69 66 20 66 6f 75 6e 64 0a 20 2d   ┆= true and the item, if found  -┆
0x0523e0…052400             2d 20 20 67 6c 6f 62 61 6c 73 3a 20 69 6e 78 66 2c 20 64 61 74 66 0a 20 2a 29 0a 20 20 20 76 61   ┆-  globals: inxf, datf  *)    va┆
0x052400…052420 (21, 1, 14) 72 20 20 6e 5f 6b 65 79 20 3a 20 61 6c 66 61 73 74 72 3b 0a 20 20 20 62 65 67 69 6e 0a 20 20 20   ┆r  n_key : alfastr;    begin    ┆
0x052420…052440             72 65 63 6e 6f 3a 3d 20 30 3b 0a 20 20 20 6e 5f 6b 65 79 3a 3d 20 6b 65 79 3b 0a 20 20 20 69 66   ┆recno:= 0;    n_key:= key;    if┆
0x052440…052460             20 64 65 62 75 67 63 61 74 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆ debugcat then  writeln ( output┆
0x052460…052480             2c 20 27 73 2e 66 69 6e 64 6b 65 79 20 3a 20 27 2c 20 6e 5f 6b 65 79 2c 20 27 2c 27 29 3b 0a 20   ┆, 's.findkey : ', n_key, ',');  ┆
0x052480…0524a0             20 20 66 69 6e 64 6b 65 79 20 28 20 69 6e 78 66 2c 20 72 65 63 6e 6f 2c 20 6e 5f 6b 65 79 29 3b   ┆  findkey ( inxf, recno, n_key);┆
0x0524a0…0524c0             0a 20 20 20 20 69 6e 63 20 28 20 6c 6f 67 6e 6f 29 3b 0a 20 20 69 66 20 64 65 62 75 67 37 20 74   ┆     inc ( logno);   if debug7 t┆
0x0524c0…0524e0             68 65 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e   ┆hen     writeln ( log, '#', logn┆
0x0524e0…052500             6f 2c 20 27 24 46 69 6e 64 6b 65 79 20 26 27 2c 20 72 65 63 6e 6f 2c 20 27 40 27 2c 20 6e 5f 6b   ┆o, '$Findkey &', recno, '@', n_k┆
0x052500…052520             65 79 2c 20 27 22 20 20 2d 3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 0a 20 20 20 69 66 20 73 75   ┆ey, '"  ->', success);     if su┆
0x052520…052540             63 63 65 73 73 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 77 68 69 6c 65   ┆ccess then      begin      while┆
0x052540…052560             20 28 20 6e 5f 6b 65 79 20 3d 20 6b 65 79 29 20 61 6e 64 20 73 75 63 63 65 73 73 20 64 6f 0a 20   ┆ ( n_key = key) and success do  ┆
0x052560…052580             20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 67 65 74 72 65 63 20 28 20 64 61 74 66   ┆      begin        getrec ( datf┆
0x052580…0525a0             2c 20 72 65 63 6e 6f 2c 20 69 74 65 6d 29 3b 0a 20 20 20 20 20 20 20 69 66 20 65 71 75 61 6c 5f   ┆, recno, item);        if equal_┆
0x0525a0…0525c0             70 61 72 61 6d 6c 69 73 74 73 20 28 20 69 74 65 6d 2e 70 61 72 61 6d 6c 69 73 74 2c 20 70 61 72   ┆paramlists ( item.paramlist, par┆
0x0525c0…0525e0             61 6d 73 29 20 74 68 65 6e 20 65 78 69 74 3b 0a 20 20 20 20 20 20 20 6e 65 78 74 6b 65 79 20 28   ┆ams) then exit;        nextkey (┆
0x0525e0…052600             20 69 6e 78 66 2c 20 72 65 63 6e 6f 2c 20 6e 5f 6b 65 79 29 3b 0a 20 20 20 20 69 6e 63 20 28 20   ┆ inxf, recno, n_key);     inc ( ┆
0x052600…052620 (21, 1, 15) 6c 6f 67 6e 6f 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 37 20 74 68 65 6e 0a 20 20 20 20 77   ┆logno);     if debug7 then     w┆
0x052620…052640             72 69 74 65 6c 6e 20 28 20 6c 6f 67 2c 20 27 23 27 2c 20 6c 6f 67 6e 6f 2c 20 27 24 4e 65 78 74   ┆riteln ( log, '#', logno, '$Next┆
0x052640…052660             6b 65 79 20 26 27 2c 20 72 65 63 6e 6f 2c 20 27 40 27 2c 20 6e 5f 6b 65 79 2c 20 27 22 20 20 2d   ┆key &', recno, '@', n_key, '"  -┆
0x052660…052680             3e 27 2c 20 73 75 63 63 65 73 73 29 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77   ┆>', success);        end;  (*  w┆
0x052680…0526a0             68 69 6c 65 20 20 2a 29 0a 0a 20 20 20 20 20 73 75 63 63 65 73 73 3a 3d 20 66 61 6c 73 65 0a 20   ┆hile  *)       success:= false  ┆
0x0526a0…0526c0             20 20 20 20 65 6e 64 20 20 28 2a 20 20 6b 65 79 20 66 6f 75 6e 64 20 20 2a 29 0a 20 20 20 20 65   ┆    end  (*  key found  *)     e┆
0x0526c0…0526e0             6e 64 3b 20 20 28 2a 20 20 73 65 61 72 63 68 20 20 2a 29 0a 0a 0a 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆nd;  (*  search  *)   {---------┆
0x0526e0…052700             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 46 75 6e 63 74 69 6f 6e 20 73   ┆--------------------- Function s┆
0x052700…052720             65 61 72 63 68 5f 65 78 74 20 28 70 20 3a 20 5e 20 6e 6f 64 65 29 20 3a 20 5e 20 65 78 74 5f 74   ┆earch_ext (p : ^ node) : ^ ext_t┆
0x052720…052740             61 62 6c 65 5f 74 3b 0a 76 61 72 0a 69 74 65 6d 20 3a 20 5e 20 65 78 74 5f 74 61 62 6c 65 5f 74   ┆able_t; var item : ^ ext_table_t┆
0x052740…052760             3b 0a 62 65 67 69 6e 0a 69 74 65 6d 20 3a 3d 20 70 5e 2e 65 78 74 5f 74 61 62 6c 65 3b 0a 77 68   ┆; begin item := p^.ext_table; wh┆
0x052760…052780             69 6c 65 20 6e 6f 74 20 6e 69 6c 20 28 69 74 65 6d 29 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 65   ┆ile not nil (item) do begin if e┆
0x052780…0527a0             71 75 61 6c 5f 70 61 72 61 6d 6c 69 73 74 73 20 28 69 74 65 6d 29 20 74 68 65 6e 0a 65 78 69 74   ┆qual_paramlists (item) then exit┆
0x0527a0…0527c0             6c 6f 6f 70 3b 0a 69 74 65 6d 20 3a 3d 20 69 74 65 6d 5e 2e 6e 65 78 74 3b 0a 65 6e 64 3b 0a 73   ┆loop; item := item^.next; end; s┆
0x0527c0…0527e0             65 61 72 63 68 5f 65 78 74 20 3a 3d 20 69 74 65 6d 3b 0a 65 6e 64 3b 0a 2d 2d 2d 2d 2d 2d 2d 2d   ┆earch_ext := item; end; --------┆
0x0527e0…052800             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 50 72 6f 63   ┆-------------------------}  Proc┆
0x052800…052820 (22, 0, 1)  65 64 75 72 65 20 73 65 74 5f 65 78 74 65 6e 73 69 6f 6e 20 28 20 76 61 72 20 70 61 74 68 3a 20   ┆edure set_extension ( var path: ┆
0x052820…052840             70 61 74 68 73 74 72 29 3b 0a 20 20 76 61 72 0a 20 20 20 20 20 64 69 72 09 3a 20 20 64 69 72 73   ┆pathstr);   var      dir :  dirs┆
0x052840…052860             74 72 3b 0a 20 20 20 20 20 6e 61 6d 65 09 3a 20 20 6e 61 6d 65 73 74 72 3b 0a 20 20 20 20 20 65   ┆tr;      name :  namestr;      e┆
0x052860…052880             78 74 09 3a 20 20 65 78 74 73 74 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 66 73 70 6c 69 74 20 28   ┆xt :  extstr;   begin   fsplit (┆
0x052880…0528a0             20 70 61 74 68 2c 20 64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 69 66 20 65 78 74   ┆ path, dir, name, ext);   if ext┆
0x0528a0…0528c0             20 3d 20 27 27 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 70 61 74 68 3a 3d 20   ┆ = '' then     begin     path:= ┆
0x0528c0…0528e0             64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 20 20   ┆dir + name + src_extension;     ┆
0x0528e0…052900             69 66 20 6c 6f 6f 6b 75 70 20 28 20 70 61 74 68 29 20 74 68 65 6e 20 20 28 2a 20 20 6f 6b 20 20   ┆if lookup ( path) then  (*  ok  ┆
0x052900…052920             2a 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 61   ┆*)     else       begin       pa┆
0x052920…052940             74 68 3a 3d 20 64 69 72 20 2b 20 6e 61 6d 65 20 2b 20 63 6f 6d 70 5f 65 78 74 65 6e 73 69 6f 6e   ┆th:= dir + name + comp_extension┆
0x052940…052960             3b 0a 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 20 28 20 70 61 74 68 29 20 74 68 65 6e 20 20   ┆;       if lookup ( path) then  ┆
0x052960…052980             28 2a 20 20 6f 6b 20 20 2a 29 0a 20 20 20 20 20 20 65 6c 73 65 20 70 61 74 68 3a 3d 20 64 69 72   ┆(*  ok  *)       else path:= dir┆
0x052980…0529a0             20 2b 20 6e 61 6d 65 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 0a 20 20 65 6e 64 3b   ┆ + name       end     end   end;┆
0x0529a0…0529c0             0a 0a 0a 0a 0c 0a 0a 50 72 6f 63 65 64 75 72 65 20 63 68 65 63 6b 5f 70 61 72 61 6d 73 20 3b 0a   ┆       Procedure check_params ; ┆
0x0529c0…0529e0             20 28 2a 20 20 72 65 61 64 20 6c 69 73 74 20 6f 66 20 70 61 72 61 6d 65 74 65 72 73 0a 20 2d 2d   ┆ (*  read list of parameters  --┆
0x0529e0…052a00             20 20 61 6e 64 20 63 68 65 63 6b 20 74 68 61 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 65 78   ┆  and check that source files ex┆
0x052a00…052a20 (22, 0, 2)  69 73 74 0a 20 2d 2d 20 20 72 65 74 75 72 6e 73 20 6f 72 20 68 61 6c 74 73 20 74 68 65 20 70 72   ┆ist  --  returns or halts the pr┆
0x052a20…052a40             6f 67 72 61 6d 0a 20 2d 2d 20 20 47 6c 6f 62 61 6c 73 3a 20 20 73 6f 75 72 63 65 2c 20 73 72 63   ┆ogram  --  Globals:  source, src┆
0x052a40…052a60             5f 65 78 74 65 6e 73 69 6f 6e 2c 20 6c 65 66 74 73 69 64 65 0a 20 2a 29 0a 0a 20 20 76 61 72 0a   ┆_extension, leftside  *)    var ┆
0x052a60…052a80             20 20 20 20 20 64 69 72 09 3a 20 20 64 69 72 73 74 72 3b 0a 20 20 20 20 20 6e 61 6d 65 09 3a 20   ┆     dir :  dirstr;      name : ┆
0x052a80…052aa0             20 6e 61 6d 65 73 74 72 3b 0a 20 20 20 20 20 65 78 74 09 3a 20 20 65 78 74 73 74 72 3b 0a 0a 20   ┆ namestr;      ext :  extstr;   ┆
0x052aa0…052ac0             20 62 65 67 69 6e 0a 20 20 69 66 20 28 20 70 61 72 61 6d 63 6f 75 6e 74 20 3d 20 30 20 29 20 6f   ┆ begin   if ( paramcount = 0 ) o┆
0x052ac0…052ae0             72 20 28 20 70 61 72 61 6d 73 74 72 20 28 20 31 29 20 3d 20 27 48 45 4c 50 27 20 29 0a 20 20 74   ┆r ( paramstr ( 1) = 'HELP' )   t┆
0x052ae0…052b00             68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆hen begin     writeln ( output, ┆
0x052b00…052b20             27 48 65 6c 70 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 43 72 6f 73 73 20 6c 69 6e 6b   ┆'Help information for Cross link┆
0x052b20…052b40             65 72 20 3a 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20   ┆er :');     writeln ( output,   ┆
0x052b40…052b60             20 20 27 54 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 67 65 6e 65 72 61 74 65 20 61 20 52   ┆  'The program will generate a R┆
0x052b60…052b80             43 35 30 30 30 20 63 6f 72 65 69 6d 61 67 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 27   ┆C5000 coreimage containing all '┆
0x052b80…052ba0             29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 27 74 68   ┆);     writeln ( output,     'th┆
0x052ba0…052bc0             65 20 73 70 65 63 69 66 69 65 64 20 6f 62 6a 65 63 74 20 70 72 6f 67 72 61 6d 73 20 61 6e 64 20   ┆e specified object programs and ┆
0x052bc0…052be0             74 68 65 20 6e 65 63 65 73 73 61 72 79 20 6c 69 62 72 61 72 79 20 72 6f 75 74 69 6e 65 73 2e 27   ┆the necessary library routines.'┆
0x052be0…052c00             29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72   ┆);     writeln ( output);     wr┆
0x052c00…052c20 (22, 0, 3)  69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 43 61 6c 6c 20 73 79 6e 74 61 78 3a 27 29 3b   ┆iteln ( output, 'Call syntax:');┆
0x052c20…052c40             0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 42 4f   ┆     writeln ( output,       'BO┆
0x052c40…052c60             4f 54 4c 49 4e 4b 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 2e 2e 2e 20 3c 70 61 72 61 6d 65 74 65   ┆OTLINK <parameter> ... <paramete┆
0x052c60…052c80             72 3e 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20   ┆r>');     writeln ( output,     ┆
0x052c80…052ca0             20 20 27 20 20 20 20 20 3c 70 61 72 61 6d 65 74 65 72 3e 20 3a 20 20 20 20 20 20 20 3d 3c 66 69   ┆  '     <parameter> :       =<fi┆
0x052ca0…052cc0             6c 65 70 61 74 68 3e 2d 3c 77 6f 72 6b 64 69 72 3e 20 20 20 6e 61 6d 65 20 6f 66 20 64 65 73 74   ┆lepath>-<workdir>   name of dest┆
0x052cc0…052ce0             69 6e 61 74 69 6f 6e 20 66 69 6c 65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆ination file');     writeln ( ou┆
0x052ce0…052d00             74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆tput,       '                   ┆
0x052d00…052d20             20 20 20 20 20 20 2d 3c 77 6f 72 6b 64 69 72 3e 20 20 20 69 73 20 6f 6e 6c 79 20 6e 65 65 64 65   ┆      -<workdir>   is only neede┆
0x052d20…052d40             64 20 69 66 20 6e 6f 74 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 29 3b 0a 20 20   ┆d if not current directory');   ┆
0x052d40…052d60             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20   ┆  writeln ( output,       '     ┆
0x052d60…052d80             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 41 52 41 4d 49 4e 2d 3c 66 69 6c   ┆                    PARAMIN-<fil┆
0x052d80…052da0             65 70 61 74 68 3e 20 20 20 20 20 20 6e 61 6d 65 20 6f 66 20 66 69 6c 65 20 77 69 74 68 20 70 61   ┆epath>      name of file with pa┆
0x052da0…052dc0             72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74   ┆rameters');     writeln ( output┆
0x052dc0…052de0             2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆,       '                       ┆
0x052de0…052e00             20 20 53 4f 55 52 43 45 50 41 54 48 2d 3c 64 69 72 70 61 74 68 3e 20 20 20 20 64 69 72 65 63 74   ┆  SOURCEPATH-<dirpath>    direct┆
0x052e00…052e20 (22, 0, 4)  6f 72 79 20 70 61 74 68 20 66 6f 72 20 6f 62 6a 65 63 74 73 27 29 3b 0a 20 20 20 20 77 72 69 74   ┆ory path for objects');     writ┆
0x052e20…052e40             65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20   ┆eln ( output,       '           ┆
0x052e40…052e60             20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 41 52 54 2d 3c 68 65 78 3e 2d 3c 68 65 78 3e 20   ┆              START-<hex>-<hex> ┆
0x052e60…052e80             20 20 20 20 20 20 73 65 74 20 62 61 73 65 20 61 6e 64 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 27   ┆      set base and displacement'┆
0x052e80…052ea0             29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27   ┆);     writeln ( output,       '┆
0x052ea0…052ec0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 41 50 2d 3c 79 65   ┆                         MAP-<ye┆
0x052ec0…052ee0             73 6e 6f 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 20 69 6e 63 6c 75 64 65 64 20 70   ┆sno>             list included p┆
0x052ee0…052f00             72 6f 67 72 61 6d 73 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c   ┆rograms');     writeln ( output,┆
0x052f00…052f20             0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆       '                        ┆
0x052f20…052f40             20 50 52 49 4e 54 2d 3c 79 65 73 6e 6f 6e 75 6d 62 3e 20 20 20 20 20 20 20 6c 69 73 74 20 6f 66   ┆ PRINT-<yesnonumb>       list of┆
0x052f40…052f60             20 63 6f 72 65 69 6d 61 67 65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆ coreimage');     writeln ( outp┆
0x052f60…052f80             75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ut,       '                     ┆
0x052f80…052fa0             20 20 20 20 4c 49 42 2d 3c 66 69 6c 65 70 61 74 68 3e 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65   ┆    LIB-<filepath>          name┆
0x052fa0…052fc0             20 6f 66 20 6c 69 62 72 61 72 79 20 66 69 6c 65 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20   ┆ of library file');     writeln ┆
0x052fc0…052fe0             28 20 6f 75 74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆( output,       '               ┆
0x052fe0…053000             20 20 20 20 20 20 20 20 20 20 3c 66 69 6c 65 70 61 74 68 3e 20 20 20 20 20 20 20 20 20 20 20 20   ┆          <filepath>            ┆
0x053000…053020 (22, 0, 5)  20 20 6e 61 6d 65 20 6f 66 20 73 6f 75 72 63 65 20 66 69 6c 65 27 29 3b 0a 20 20 20 20 77 72 69   ┆  name of source file');     wri┆
0x053020…053040             74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆teln ( output);     writeln ( ou┆
0x053040…053060             74 70 75 74 2c 0a 20 20 20 20 20 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 66 61 75   ┆tput,       '              Defau┆
0x053060…053080             6c 74 20 65 78 74 65 6e 73 69 6f 6e 20 66 6f 72 20 6c 69 62 72 61 72 79 20 61 6e 64 20 6f 62 6a   ┆lt extension for library and obj┆
0x053080…0530a0             65 63 74 20 66 69 6c 65 73 20 69 73 20 22 27 2c 0a 09 09 73 72 63 5f 65 78 74 65 6e 73 69 6f 6e   ┆ect files is "',   src_extension┆
0x0530a0…0530c0             2c 20 27 22 20 20 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b   ┆, '"  ');     writeln ( output);┆
0x0530c0…0530e0             0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 21 20 53 70 65 63 69 66 79 20   ┆     write ( output, '! Specify ┆
0x0530e0…053100             70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆parameters');     writeln ( outp┆
0x053100…053120             75 74 29 3b 0a 20 20 20 20 68 61 6c 74 20 28 20 31 29 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69   ┆ut);     halt ( 1)     end;    i┆
0x053120…053140             66 20 6c 65 66 74 73 69 64 65 20 3d 20 27 27 0a 20 20 74 68 65 6e 0a 20 20 20 20 6c 65 66 74 73   ┆f leftside = ''   then     lefts┆
0x053140…053160             69 64 65 3a 3d 20 27 43 4f 52 45 49 4d 41 47 27 20 2b 20 64 65 73 74 5f 65 78 74 65 6e 73 69 6f   ┆ide:= 'COREIMAG' + dest_extensio┆
0x053160…053180             6e 0a 20 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 66 73 70 6c 69 74 20 28 20   ┆n   else     begin     fsplit ( ┆
0x053180…0531a0             6c 65 66 74 73 69 64 65 2c 20 64 69 72 2c 20 6e 61 6d 65 2c 20 65 78 74 29 3b 0a 20 20 20 20 69   ┆leftside, dir, name, ext);     i┆
0x0531a0…0531c0             66 20 65 78 74 20 3d 20 27 27 20 74 68 65 6e 20 20 6c 65 66 74 73 69 64 65 3a 3d 20 64 69 72 20   ┆f ext = '' then  leftside:= dir ┆
0x0531c0…0531e0             2b 20 6e 61 6d 65 20 2b 20 64 65 73 74 5f 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 65 6e 64 3b   ┆+ name + dest_extension     end;┆
0x0531e0…053200             0a 0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 63 68 65 63 6b 20 70 61 72 61 6d 73 20 20 2a 29 0a 0a   ┆    end;  (*  check params  *)  ┆
0x053200…053220 (22, 0, 6)  0c 0a 0a 28 2a 24 46 2b 2a 29 20 50 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24   ┆   (*$F+*) Procedure myexit; (*$┆
0x053220…053240             46 2d 2a 29 0a 62 65 67 69 6e 0a 0a 20 20 69 66 20 6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 20 74   ┆F-*) begin    if mem_allocated t┆
0x053240…053260             68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 66 72 65 65 6d 65 6d 20 28 20 75 70 70 65   ┆hen     begin     freemem ( uppe┆
0x053260…053280             72 63 6f 72 65 2c 20 6d 61 78 69 6e 74 29 3b 0a 20 20 20 20 66 72 65 65 6d 65 6d 20 28 20 63 6f   ┆rcore, maxint);     freemem ( co┆
0x053280…0532a0             72 65 2c 20 6d 61 78 69 6e 74 29 3b 0a 20 20 20 20 6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 3d   ┆re, maxint);     mem_allocated:=┆
0x0532a0…0532c0             20 66 61 6c 73 65 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 28 20 65 78 69 74 63 6f 64 65   ┆ false     end;    if ( exitcode┆
0x0532c0…0532e0             20 3c 3e 20 30 20 29 20 61 6e 64 20 28 20 65 78 69 74 63 6f 64 65 20 3c 3e 20 32 35 34 20 29 20   ┆ <> 0 ) and ( exitcode <> 254 ) ┆
0x0532e0…053300             74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20 69 66 20 64 61 74 61 62 61 73 65 5f   ┆then     begin      if database_┆
0x053300…053320             6f 70 65 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 63 6c 6f 73   ┆open then       begin       clos┆
0x053320…053340             65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a 20 20 20 20 20 20 63 6c 6f 73 65 69 6e 64 65 78 20   ┆efile ( datf);       closeindex ┆
0x053340…053360             28 20 69 6e 78 66 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67   ┆( inxf);       end;     if debug┆
0x053360…053380             37 20 74 68 65 6e 20 63 6c 6f 73 65 20 28 20 6c 6f 67 29 3b 0a 0a 20 20 20 20 72 75 6e 74 69 6d   ┆7 then close ( log);      runtim┆
0x053380…0533a0             65 5f 65 72 72 6f 72 20 20 28 20 27 21 20 20 65 72 72 6f 72 20 20 69 6e 20 63 72 6f 73 6c 69 6e   ┆e_error  ( '!  error  in croslin┆
0x0533a0…0533c0             6b 2e 20 27 29 3b 0a 20 20 20 20 65 78 69 74 63 6f 64 65 3a 3d 20 32 35 34 0a 20 20 20 20 65 6e   ┆k. ');     exitcode:= 254     en┆
0x0533c0…0533e0             64 3b 0a 0a 20 20 69 66 20 65 78 69 74 73 61 76 65 20 3c 3e 20 61 64 64 72 20 28 20 6d 79 65 78   ┆d;    if exitsave <> addr ( myex┆
0x0533e0…053400             69 74 29 20 74 68 65 6e 20 65 78 69 74 70 72 6f 63 20 3a 3d 20 65 78 69 74 73 61 76 65 3b 0a 65   ┆it) then exitproc := exitsave; e┆
0x053400…053420 (22, 0, 7)  6e 64 3b 0a 0a 0a 0c 0a 0a 62 65 67 69 6e 09 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆nd;      begin (*---------------┆
0x053420…053440             2d 2d 20 6d 61 69 6e 20 70 72 6f 67 72 61 6d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆-- main program ----------------┆
0x053440…053460             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0a 65 78 69 74 73 61 76 65 3a 3d 20 65 78 69 74 70 72 6f   ┆----------*)  exitsave:= exitpro┆
0x053460…053480             63 3b 0a 65 78 69 74 70 72 6f 63 3a 3d 20 61 64 64 72 20 28 20 6d 79 65 78 69 74 29 3b 0a 0a 20   ┆c; exitproc:= addr ( myexit);   ┆
0x053480…0534a0             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 37 2c 20 27 43 72 6f 73 73 20 6c   ┆writeln ( output, '':7, 'Cross l┆
0x0534a0…0534c0             69 6e 6b 65 72 20 20 72 65 6c 2e 20 25 52 25 2e 25 4c 25 2c 20 20 20 31 39 27 20 2c 0a 20 20 20   ┆inker  rel. %R%.%L%,   19' ,    ┆
0x0534c0…0534e0             20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 31 2c 20 32 29 2c 20 27 2e 27 2c 20 63   ┆ copy ( sccs_date, 1, 2), '.', c┆
0x0534e0…053500             6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 34 2c 20 32 29 2c 20 27 2e 27 2c 0a 20 20 20   ┆opy ( sccs_date, 4, 2), '.',    ┆
0x053500…053520             20 63 6f 70 79 20 28 20 73 63 63 73 5f 64 61 74 65 2c 20 37 2c 20 32 29 29 3b 0a 20 77 72 69 74   ┆ copy ( sccs_date, 7, 2));  writ┆
0x053520…053540             65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 0a 63 68 65 63 6b 5f 70 61 72 61 6d 73 20 3b 0a 0a   ┆eln ( output);  check_params ;  ┆
0x053540…053560             0a 20 20 20 20 20 28 2a 20 72 65 73 65 72 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 62 75 66 66 65   ┆      (* reserve a maximum buffe┆
0x053560…053580             72 20 66 6f 72 20 63 6f 72 65 20 69 6d 61 67 65 20 2a 29 0a 69 66 20 6d 61 78 61 76 61 69 6c 20   ┆r for core image *) if maxavail ┆
0x053580…0535a0             3c 20 36 35 35 33 35 20 74 68 65 6e 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c   ┆< 65535 then call_error ( fatal,┆
0x0535a0…0535c0             20 32 34 2c 20 6d 61 78 61 76 61 69 6c 2c 20 27 27 29 3b 0a 67 65 74 6d 65 6d 20 28 20 63 6f 72   ┆ 24, maxavail, ''); getmem ( cor┆
0x0535c0…0535e0             65 2c 20 6d 61 78 69 6e 74 29 3b 0a 67 65 74 6d 65 6d 20 28 20 75 70 70 65 72 63 6f 72 65 2c 20   ┆e, maxint); getmem ( uppercore, ┆
0x0535e0…053600             6d 61 78 69 6e 74 29 3b 0a 6d 65 6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 3d 20 74 72 75 65 3b 0a 0a   ┆maxint); mem_allocated:= true;  ┆
0x053600…053620 (22, 0, 8)  28 2a 2d 2d 20 69 6e 69 74 69 61 6c 69 7a 65 20 64 61 74 61 73 74 72 75 63 74 75 72 65 73 20 69   ┆(*-- initialize datastructures i┆
0x053620…053640             6e 20 64 61 74 61 66 69 6c 65 20 61 6e 64 20 69 6e 64 65 78 66 69 6c 65 09 2a 29 0a 70 6f 6c 79   ┆n datafile and indexfile *) poly┆
0x053640…053660             66 69 6c 65 5f 63 6f 6e 66 69 67 20 28 20 73 69 7a 65 6f 66 20 28 20 69 74 65 6d 5f 72 65 63 29   ┆file_config ( sizeof ( item_rec)┆
0x053660…053680             2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 31 36 2c 20 31 38 2c 20 36 29 3b 0a 6d 61 6b 65 66 69   ┆, alfalength, 16, 18, 6); makefi┆
0x053680…0536a0             6c 65 20 20 28 20 64 61 74 66 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 64 61 74 5f   ┆le  ( datf, plibwork_name + dat_┆
0x0536a0…0536c0             6e 61 6d 65 2c 20 73 69 7a 65 6f 66 20 28 20 69 74 65 6d 5f 72 65 63 29 20 29 3b 0a 6d 61 6b 65   ┆name, sizeof ( item_rec) ); make┆
0x0536c0…0536e0             69 6e 64 65 78 20 28 20 69 6e 78 66 2c 20 70 6c 69 62 77 6f 72 6b 5f 6e 61 6d 65 20 2b 20 69 6e   ┆index ( inxf, plibwork_name + in┆
0x0536e0…053700             78 5f 6e 61 6d 65 2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 64 75 70 6c 69 63 61 74 65 5f 6b 65   ┆x_name, alfalength, duplicate_ke┆
0x053700…053720             79 73 29 3b 0a 64 61 74 61 62 61 73 65 5f 6f 70 65 6e 3a 3d 20 74 72 75 65 3b 0a 69 66 20 64 65   ┆ys); database_open:= true; if de┆
0x053720…053740             62 75 67 37 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 61 73 73 69 67 6e 20 28 20 6c 6f 67   ┆bug7 then   begin   assign ( log┆
0x053740…053760             2c 20 27 4c 4f 47 49 4e 44 45 58 2e 54 58 54 27 29 3b 0a 20 20 72 65 77 72 69 74 65 20 28 20 6c   ┆, 'LOGINDEX.TXT');   rewrite ( l┆
0x053760…053780             6f 67 29 3b 0a 20 20 65 6e 64 3b 0a 6c 6f 67 6e 6f 3a 3d 20 30 3b 0a 6c 61 73 74 5f 65 78 74 65   ┆og);   end; logno:= 0; last_exte┆
0x053780…0537a0             72 6e 61 6c 20 3a 3d 20 30 3b 0a 66 69 6c 6c 63 68 61 72 20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78   ┆rnal := 0; fillchar ( name_of_ex┆
0x0537a0…0537c0             74 2c 20 61 6c 66 61 6c 65 6e 67 74 68 2c 20 30 29 3b 0a 0a 28 2a 20 20 69 6e 69 74 69 61 6c 69   ┆t, alfalength, 0);  (*  initiali┆
0x0537c0…0537e0             7a 65 20 74 68 65 20 6f 75 74 70 75 74 20 6d 6f 64 75 6c 65 20 3a 20 20 2a 29 0a 0a 70 72 69 6e   ┆ze the output module :  *)  prin┆
0x0537e0…053800             74 5f 68 65 61 64 69 6e 67 20 3a 3d 20 74 72 75 65 3b 0a 0a 6f 70 65 6e 5f 66 69 6c 65 20 28 20   ┆t_heading := true;  open_file ( ┆
0x053800…053820 (22, 0, 9)  6f 75 74 62 69 6e 66 69 6c 65 2c 20 6c 65 66 74 73 69 64 65 2c 20 66 6d 5f 77 72 69 74 65 20 29   ┆outbinfile, leftside, fm_write )┆
0x053820…053840             3b 0a 0a 73 63 61 6e 20 3a 3d 20 30 3b 0a 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3a 3d 20 30 3b 0a   ┆;  scan := 0; undef_count := 0; ┆
0x053840…053860             61 6e 79 5f 69 6e 63 6c 75 64 65 64 20 3a 3d 20 74 72 75 65 3b 09 28 2a 20 61 63 74 75 61 6c 6c   ┆any_included := true; (* actuall┆
0x053860…053880             79 20 6e 6f 74 20 63 6f 72 72 65 63 74 2c 20 62 75 74 20 68 65 6c 70 73 20 66 69 72 73 74 20 73   ┆y not correct, but helps first s┆
0x053880…0538a0             63 61 6e 20 2a 29 0a 66 6f 72 20 70 3a 3d 31 20 74 6f 20 6e 6f 5f 6f 66 5f 73 75 6d 73 20 64 6f   ┆can *) for p:=1 to no_of_sums do┆
0x0538a0…0538c0             20 73 75 6d 63 61 74 61 6c 6f 67 5b 70 5d 3a 3d 20 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 70 72 65 6f   ┆ sumcatalog[p]:=  all_ones; preo┆
0x0538c0…0538e0             63 63 75 70 69 65 64 3a 3d 20 32 3b 20 28 2a 20 74 77 6f 20 62 79 74 65 73 20 61 72 65 20 6e 65   ┆ccupied:= 2; (* two bytes are ne┆
0x0538e0…053900             76 65 72 20 61 6c 6c 6f 63 61 74 65 64 20 2a 29 0a 74 6f 70 5f 6f 66 5f 6d 6f 64 75 6c 65 3a 3d   ┆ver allocated *) top_of_module:=┆
0x053900…053920             20 20 24 46 46 46 45 3b 09 09 28 2a 20 20 20 20 2d 20 70 72 65 6f 63 63 75 70 69 65 64 3b 20 20   ┆  $FFFE;  (*    - preoccupied;  ┆
0x053920…053940             2a 29 0a 73 75 6d 69 6e 64 65 78 3a 3d 20 31 3b 0a 73 75 6d 63 6f 75 6e 74 3a 3d 20 31 3b 0a 73   ┆*) sumindex:= 1; sumcount:= 1; s┆
0x053940…053960             75 6d 3a 3d 20 61 6c 6c 5f 6f 6e 65 73 3b 0a 69 6e 69 74 5f 63 72 63 74 61 62 3b 0a 0a 0a 28 2a   ┆um:= all_ones; init_crctab;   (*┆
0x053960…053980             20 20 73 63 61 6e 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 20 3a 20 20 2a 29 0a   ┆  scan the parameter list :  *) ┆
0x053980…0539a0             72 65 70 65 61 74 0a 20 20 6c 61 73 74 5f 73 63 61 6e 20 3a 3d 20 6e 6f 74 20 61 6e 79 5f 69 6e   ┆repeat   last_scan := not any_in┆
0x0539a0…0539c0             63 6c 75 64 65 64 20 6f 72 20 28 28 73 63 61 6e 20 3e 20 30 20 29 20 61 6e 64 20 28 75 6e 64 65   ┆cluded or ((scan > 0 ) and (unde┆
0x0539c0…0539e0             66 5f 63 6f 75 6e 74 20 3d 20 30 29 29 3b 0a 20 20 61 6e 79 5f 69 6e 63 6c 75 64 65 64 20 3a 3d   ┆f_count = 0));   any_included :=┆
0x0539e0…053a00             20 66 61 6c 73 65 3b 0a 20 20 61 66 74 65 72 5f 6c 69 62 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20   ┆ false;   after_lib := false;   ┆
0x053a00…053a20 (22, 0, 10) 20 28 2a 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 66 6f 72 20 6f 70 74 69 6f 6e 73 20 2a   ┆ (* default values for options *┆
0x053a20…053a40             29 0a 0a 20 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 20 3a 3d 20 30 3b 0a 20 20 73 74 61 72 74 5f   ┆)    start_module := 0;   start_┆
0x053a40…053a60             64 69 73 70 6c 20 20 3a 3d 20 24 31 30 30 3b 09 09 28 2a 20 20 20 3d 20 32 35 36 20 20 20 2a 29   ┆displ  := $100;  (*   = 256   *)┆
0x053a60…053a80             0a 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 73 74 61   ┆   map_laddr ( start_module, sta┆
0x053a80…053aa0             72 74 5f 64 69 73 70 6c 2c 20 74 6f 70 5f 6f 66 5f 62 69 6e 29 3b 0a 20 20 70 72 69 6e 74 5f 63   ┆rt_displ, top_of_bin);   print_c┆
0x053aa0…053ac0             6f 64 65 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 20 3a 3d   ┆ode := false;   print_pr_line :=┆
0x053ac0…053ae0             20 31 36 3b 09 09 28 2a 20 64 65 66 61 75 6c 74 3a 20 31 36 20 77 6f 72 64 73 20 70 72 20 6c 69   ┆ 16;  (* default: 16 words pr li┆
0x053ae0…053b00             6e 65 20 2a 29 0a 20 20 6d 61 70 5f 79 65 73 20 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 69 66 20 66   ┆ne *)   map_yes := true;    if f┆
0x053b00…053b20             61 6c 73 65 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20   ┆alse then   begin   param_index ┆
0x053b20…053b40             3a 3d 20 30 3b 0a 0a 20 20 77 68 69 6c 65 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3c 20 70 61 72   ┆:= 0;    while param_index < par┆
0x053b40…053b60             61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 69 6e 63 20   ┆amlist.items do    begin    inc ┆
0x053b60…053b80             28 20 70 61 72 61 6d 5f 69 6e 64 65 78 29 3b 0a 20 20 20 70 61 72 61 6d 74 78 74 3a 3d 20 67 65   ┆( param_index);    paramtxt:= ge┆
0x053b80…053ba0             74 70 61 72 61 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 29 3b 0a 20 20 20 77 72 69 74 65   ┆tparam ( param_index );    write┆
0x053ba0…053bc0             6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 70 61 72 61 6d 20 27 2c 20 70 61 72 61 6d 5f 69 6e   ┆ln ( output, ' param ', param_in┆
0x053bc0…053be0             64 65 78 3a 33 2c 20 27 3a 20 22 27 2c 20 70 61 72 61 6d 74 78 74 2c 20 27 22 27 29 3b 0a 20 20   ┆dex:3, ': "', paramtxt, '"');   ┆
0x053be0…053c00             20 65 6e 64 3b 20 20 28 2a 20 77 68 69 6c 65 20 20 2a 29 0a 20 20 65 6e 64 3b 20 20 20 28 2a 20   ┆ end;  (* while  *)   end;   (* ┆
0x053c00…053c20 (22, 0, 11) 20 64 65 62 75 67 20 20 2a 29 0a 0a 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 3a 3d 20 30 3b 0a   ┆ debug  *)    param_index := 0; ┆
0x053c20…053c40             0a 20 20 73 63 61 6e 20 3a 3d 20 73 63 61 6e 20 2b 20 31 3b 0a 20 20 69 66 20 6c 61 73 74 5f 73   ┆   scan := scan + 1;   if last_s┆
0x053c40…053c60             63 61 6e 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 28   ┆can then     begin     writeln (┆
0x053c60…053c80             20 6f 75 74 70 75 74 29 3b 0a 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27   ┆ output);     write ( output, ''┆
0x053c80…053ca0             3a 6d 61 72 67 69 6e 29 3b 0a 20 20 20 20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3d 20 30   ┆:margin);     if undef_count = 0┆
0x053ca0…053cc0             20 74 68 65 6e 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 4c 69 6e 6b 69 6e 67 20 73   ┆ then write ( output, 'Linking s┆
0x053cc0…053ce0             6f 6c 76 65 64 27 29 0a 20 20 20 20 65 6c 73 65 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c   ┆olved')     else write ( output,┆
0x053ce0…053d00             20 27 21 20 4c 69 6e 6b 69 6e 67 20 75 6e 63 6f 6d 70 6c 65 74 65 64 27 29 3b 0a 20 20 20 20 77   ┆ '! Linking uncompleted');     w┆
0x053d00…053d20             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 69 6e 3a 20 27 2c 20 73 63 61 6e 2c 20   ┆riteln ( output, ' in: ', scan, ┆
0x053d20…053d40             27 20 73 63 61 6e 73 2e 27 29 3b 0a 20 20 20 20 69 66 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3c   ┆' scans.');     if undef_count <┆
0x053d40…053d60             3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 72 69 6e 74   ┆> 0 then       begin       print┆
0x053d60…053d80             5f 69 74 65 6d 73 3b 0a 20 20 20 20 20 20 6d 61 70 5f 79 65 73 3a 3d 20 66 61 6c 73 65 3b 09 09   ┆_items;       map_yes:= false;  ┆
0x053d80…053da0             09 28 2a 20 20 64 6f 6e 74 20 70 72 69 6e 74 20 6d 61 70 09 2a 29 0a 20 20 20 20 20 20 70 61 72   ┆ (*  dont print map *)       par┆
0x053da0…053dc0             61 6d 5f 69 6e 64 65 78 3a 3d 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 09 28 2a 20 20 73   ┆am_index:= paramlist.items (*  s┆
0x053dc0…053de0             6b 69 70 20 6c 69 6e 6b 69 6e 67 09 2a 29 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64   ┆kip linking *)       end     end┆
0x053de0…053e00             3b 0a 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6c 6f 6f 70 2d 76 61 72 69 61 62 6c 65   ┆;    (* initialize loop-variable┆
0x053e00…053e20 (22, 0, 12) 73 20 2a 29 0a 0a 20 20 66 69 72 73 74 5f 6f 66 5f 6d 6f 64 75 6c 65 20 3a 3d 20 32 3b 0a 20 20   ┆s *)    first_of_module := 2;   ┆
0x053e20…053e40             6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 3a 3d 20 30 3b 0a 0a 20 77 68 69 6c 65 20 70 61   ┆no_of_obj_files := 0;   while pa┆
0x053e40…053e60             72 61 6d 5f 69 6e 64 65 78 20 3c 20 70 61 72 61 6d 6c 69 73 74 2e 69 74 65 6d 73 20 64 6f 0a 20   ┆ram_index < paramlist.items do  ┆
0x053e60…053e80             20 62 65 67 69 6e 0a 20 20 69 6e 63 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 29 3b 0a 20 20 70   ┆ begin   inc ( param_index);   p┆
0x053e80…053ea0             61 72 61 6d 74 78 74 3a 3d 20 67 65 74 70 61 72 61 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78   ┆aramtxt:= getparam ( param_index┆
0x053ea0…053ec0             20 29 3b 0a 0a 20 20 6c 69 62 72 61 72 79 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 73 6f 75 72   ┆ );    library := false;    sour┆
0x053ec0…053ee0             63 65 5f 66 69 6c 65 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 73   ┆ce_file := false;    if pos ( 's┆
0x053ee0…053f00             74 61 72 74 2d 27 2c 20 70 61 72 61 6d 74 78 74 29 20 3d 20 31 20 20 74 68 65 6e 0a 20 20 20 20   ┆tart-', paramtxt) = 1  then     ┆
0x053f00…053f20             62 65 67 69 6e 0a 0a 20 20 20 20 28 2a 20 20 67 65 74 20 74 68 65 20 6d 6f 64 75 6c 65 20 6e 6f   ┆begin      (*  get the module no┆
0x053f20…053f40             2e 20 3a 20 20 2a 29 0a 0a 20 20 20 20 74 78 74 3a 3d 20 63 6f 70 79 20 28 20 70 61 72 61 6d 74   ┆. :  *)      txt:= copy ( paramt┆
0x053f40…053f60             78 74 2c 20 37 2c 20 32 30 29 3b 0a 20 20 20 20 69 66 20 28 74 78 74 5b 31 5d 20 3d 20 27 68 27   ┆xt, 7, 20);     if (txt[1] = 'h'┆
0x053f60…053f80             29 20 6f 72 20 28 20 74 78 74 5b 31 5d 20 3d 20 27 24 27 29 20 74 68 65 6e 20 63 6f 6e 76 65 72   ┆) or ( txt[1] = '$') then conver┆
0x053f80…053fa0             74 5f 74 6f 5f 68 65 78 20 28 20 74 78 74 2c 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29 0a 20 20   ┆t_to_hex ( txt, start_module)   ┆
0x053fa0…053fc0             20 20 65 6c 73 65 20 76 61 6c 20 28 20 74 78 74 2c 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20   ┆  else val ( txt, start_module, ┆
0x053fc0…053fe0             77 72 6b 29 3b 0a 0a 20 20 20 20 69 66 20 28 73 74 61 72 74 5f 6d 6f 64 75 6c 65 20 3c 20 66 69   ┆wrk);      if (start_module < fi┆
0x053fe0…054000             72 73 74 5f 6d 65 6d 5f 6e 6f 20 29 20 6f 72 20 28 32 35 36 20 3c 3d 20 73 74 61 72 74 5f 6d 6f   ┆rst_mem_no ) or (256 <= start_mo┆
0x054000…054020 (22, 0, 13) 64 75 6c 65 29 20 74 68 65 6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61   ┆dule) then       call_error ( fa┆
0x054020…054040             74 61 6c 2c 20 32 35 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 2c 20 27 27 29 3b 0a 0a 20 20 20   ┆tal, 25, param_index , '');     ┆
0x054040…054060             20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 20 3a 3d 20 28 73 74 61 72 74 5f 6d 6f 64 75 6c 65 20 6d   ┆ start_module := (start_module m┆
0x054060…054080             6f 64 20 36 34 29 20 64 69 76 20 32 3b 0a 0a 0a 20 20 20 20 28 2a 20 20 67 65 74 20 74 68 65 20   ┆od 64) div 2;       (*  get the ┆
0x054080…0540a0             64 69 73 70 6c 61 63 65 6d 65 6e 74 20 3a 20 20 2a 29 0a 0a 20 20 20 20 70 3a 3d 20 70 6f 73 20   ┆displacement :  *)      p:= pos ┆
0x0540a0…0540c0             28 20 27 2d 27 2c 20 74 78 74 29 3b 0a 20 20 20 20 69 66 20 70 20 3d 20 30 20 74 68 65 6e 20 20   ┆( '-', txt);     if p = 0 then  ┆
0x0540c0…0540e0             63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 39 2c 20 70 61 72 61 6d 5f 69 6e 64   ┆call_error ( fatal, 9, param_ind┆
0x0540e0…054100             65 78 2c 20 27 20 20 6e 6f 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 20 27 29 3b 0a 0a 20 20 20 20   ┆ex, '  no displacement ');      ┆
0x054100…054120             64 65 6c 65 74 65 20 28 20 74 78 74 2c 20 31 2c 20 70 29 3b 0a 20 20 20 20 69 66 20 28 20 74 78   ┆delete ( txt, 1, p);     if ( tx┆
0x054120…054140             74 5b 31 5d 20 3d 20 27 68 27 29 20 6f 72 20 28 20 74 78 74 5b 31 5d 20 3d 20 27 24 27 29 20 74   ┆t[1] = 'h') or ( txt[1] = '$') t┆
0x054140…054160             68 65 6e 20 20 63 6f 6e 76 65 72 74 5f 74 6f 5f 68 65 78 20 28 20 74 78 74 2c 20 73 74 61 72 74   ┆hen  convert_to_hex ( txt, start┆
0x054160…054180             5f 64 69 73 70 6c 20 29 0a 20 20 20 20 20 65 6c 73 65 20 76 61 6c 20 28 20 74 78 74 2c 20 73 74   ┆_displ )      else val ( txt, st┆
0x054180…0541a0             61 72 74 5f 64 69 73 70 6c 2c 20 77 72 6b 29 3b 0a 20 20 20 20 69 66 20 64 65 62 75 67 31 20 74   ┆art_displ, wrk);     if debug1 t┆
0x0541a0…0541c0             68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 27 20 64 69 73 70 6c 20 3a 20 24 27 2c 20 73 74 72 68   ┆hen writeln ( ' displ : $', strh┆
0x0541c0…0541e0             65 78 28 73 74 61 72 74 5f 64 69 73 70 6c 29 2c 20 27 20 20 20 27 2c 20 74 78 74 29 3b 0a 0a 20   ┆ex(start_displ), '   ', txt);   ┆
0x0541e0…054200             20 20 20 6d 61 70 5f 6c 61 64 64 72 20 28 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 73 74 61   ┆   map_laddr ( start_module, sta┆
0x054200…054220 (22, 0, 14) 72 74 5f 64 69 73 70 6c 2c 20 73 74 61 72 74 5f 61 64 64 72 29 3b 0a 20 20 20 20 77 69 74 68 20   ┆rt_displ, start_addr);     with ┆
0x054220…054240             74 6f 70 5f 6f 66 5f 62 69 6e 20 64 6f 0a 20 20 20 20 20 69 66 20 28 73 74 61 72 74 5f 61 64 64   ┆top_of_bin do      if (start_add┆
0x054240…054260             72 20 2e 20 62 61 73 65 20 3c 20 62 61 73 65 20 29 20 6f 72 0a 20 20 20 20 20 28 28 73 74 61 72   ┆r . base < base ) or      ((star┆
0x054260…054280             74 5f 61 64 64 72 20 2e 20 62 61 73 65 20 3d 20 62 61 73 65 29 20 61 6e 64 20 28 73 74 61 72 74   ┆t_addr . base = base) and (start┆
0x054280…0542a0             5f 61 64 64 72 20 2e 20 64 69 73 70 20 3c 20 64 69 73 70 29 29 20 74 68 65 6e 0a 20 20 20 20 20   ┆_addr . disp < disp)) then      ┆
0x0542a0…0542c0             20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 39 20 28 2a 20 69 6c 6c 65 67   ┆  call_error ( fatal, 9 (* illeg┆
0x0542c0…0542e0             61 6c 20 76 61 6c 75 65 20 6f 66 20 73 74 61 72 74 20 70 61 72 61 6d 20 2a 29 2c 0a 20 20 20 20   ┆al value of start param *),     ┆
0x0542e0…054300             20 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 73 74 72 68 65 78 20 28 73 74 61 72 74 5f 6d 6f   ┆   param_index, strhex (start_mo┆
0x054300…054320             64 75 6c 65 29 20 2b 20 27 3a 27 20 2b 20 73 74 72 68 65 78 20 28 20 73 74 61 72 74 5f 64 69 73   ┆dule) + ':' + strhex ( start_dis┆
0x054320…054340             70 6c 29 29 3b 0a 20 20 20 20 69 66 20 6c 61 73 74 5f 73 63 61 6e 20 61 6e 64 20 28 20 6e 6f 5f   ┆pl));     if last_scan and ( no_┆
0x054340…054360             6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 3e 20 31 20 29 20 74 68 65 6e 20 6f 75 74 5f 73 75 6d 3b   ┆of_obj_files > 1 ) then out_sum;┆
0x054360…054380             0a 0a 20 20 20 20 74 6f 70 5f 6f 66 5f 62 69 6e 20 3a 3d 20 73 74 61 72 74 5f 61 64 64 72 3b 0a   ┆      top_of_bin := start_addr; ┆
0x054380…0543a0             20 20 20 20 28 2a 20 66 6f 72 63 65 20 73 63 61 6e 6e 69 6e 67 20 61 6c 6c 20 66 69 6c 65 73 20   ┆    (* force scanning all files ┆
0x0543a0…0543c0             69 6e 20 6f 72 64 65 72 20 74 6f 20 61 64 6a 75 73 74 20 74 6f 70 5f 6f 66 5f 62 69 6e 20 2a 29   ┆in order to adjust top_of_bin *)┆
0x0543c0…0543e0             0a 20 20 20 20 61 66 74 65 72 5f 6c 69 62 20 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 20 20 69 66 20   ┆     after_lib := true;      if ┆
0x0543e0…054400             66 61 6c 73 65 20 7b 64 65 62 75 67 7d 20 74 68 65 6e 0a 20 20 20 20 20 77 72 69 74 65 6c 6e 20   ┆false {debug} then      writeln ┆
0x054400…054420 (22, 0, 15) 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 20 53 54 41 52 54 20 20 27 2c 20 73 74 72 68 65 78 20   ┆( output, '    START  ', strhex ┆
0x054420…054440             28 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 29 2c 20 27 3a 27 2c 20 73 74 72 68 65 78 20 28 20 73   ┆( start_module), ':', strhex ( s┆
0x054440…054460             74 61 72 74 5f 64 69 73 70 6c 29 29 3b 0a 0a 20 20 65 6e 64 20 28 2a 20 20 70 61 72 61 6d 20 3d   ┆tart_displ));    end (*  param =┆
0x054460…054480             20 27 73 74 61 72 74 2d 27 20 2e 2e 2e 2e 2e 2e 2e 20 20 2a 29 0a 0a 20 20 65 6c 73 65 0a 0a 20   ┆ 'start-' .......  *)    else   ┆
0x054480…0544a0             20 69 66 20 70 6f 73 20 28 20 27 70 72 69 6e 74 2d 27 2c 20 70 61 72 61 6d 74 78 74 29 20 3d 20   ┆ if pos ( 'print-', paramtxt) = ┆
0x0544a0…0544c0             31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 66 61 6c 73 65 20 7b 64   ┆1 then     begin     if false {d┆
0x0544c0…0544e0             65 62 75 67 7d 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20   ┆ebug} then  writeln ( output, ' ┆
0x0544e0…054500             20 50 52 49 4e 54 20 20 27 2c 20 70 61 72 61 6d 74 78 74 29 3b 0a 20 20 20 20 74 78 74 3a 3d 20   ┆ PRINT  ', paramtxt);     txt:= ┆
0x054500…054520             63 6f 70 79 20 28 20 70 61 72 61 6d 74 78 74 2c 20 37 2c 20 32 30 29 3b 0a 20 20 20 20 69 66 20   ┆copy ( paramtxt, 7, 20);     if ┆
0x054520…054540             70 6f 73 20 28 20 27 79 65 73 27 2c 20 74 78 74 20 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20   ┆pos ( 'yes', txt ) > 0 then     ┆
0x054540…054560             20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 63 6f 64 65 3a 3d 20 74 72 75 65 3b   ┆  begin       print_code:= true;┆
0x054560…054580             0a 20 20 20 20 20 20 70 3a 3d 20 30 3b 0a 20 20 20 20 20 20 76 61 6c 20 28 20 63 6f 70 79 20 28   ┆       p:= 0;       val ( copy (┆
0x054580…0545a0             20 74 78 74 2c 20 35 2c 20 32 30 29 2c 20 70 2c 20 77 72 6b 29 3b 0a 20 20 20 20 20 20 69 66 20   ┆ txt, 5, 20), p, wrk);       if ┆
0x0545a0…0545c0             70 20 3e 20 30 20 74 68 65 6e 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 3a 3d 20 70 0a 20 20 20   ┆p > 0 then print_pr_line:= p    ┆
0x0545c0…0545e0             20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 27 6e 6f   ┆   end     else     if pos ( 'no┆
0x0545e0…054600             27 2c 20 74 78 74 20 29 20 3e 20 30 20 20 74 68 65 6e 20 70 72 69 6e 74 5f 63 6f 64 65 3a 3d 20   ┆', txt ) > 0  then print_code:= ┆
0x054600…054620 (22, 1, 1)  66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20   ┆false     else       call_error ┆
0x054620…054640             28 20 66 61 74 61 6c 2c 20 31 34 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 70 72 69 6e 74   ┆( fatal, 14, param_index, 'print┆
0x054640…054660             2d 27 20 2b 20 74 78 74 29 3b 0a 0a 20 20 20 20 69 66 20 66 61 6c 73 65 20 7b 64 65 62 75 67 7d   ┆-' + txt);      if false {debug}┆
0x054660…054680             20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 50 52 49 4e   ┆ then  writeln ( output, '  PRIN┆
0x054680…0546a0             54 20 20 27 2c 20 70 72 69 6e 74 5f 63 6f 64 65 3a 38 2c 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e   ┆T  ', print_code:8, print_pr_lin┆
0x0546a0…0546c0             65 3a 36 29 3b 0a 0a 20 20 20 20 65 6e 64 20 28 2a 20 61 20 3d 20 27 70 72 69 6e 74 27 20 2e 2e   ┆e:6);      end (* a = 'print' ..┆
0x0546c0…0546e0             2e 2e 2e 2e 2e 20 20 2a 29 0a 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20 28 20 27 6c   ┆.....  *)    else    if pos ( 'l┆
0x0546e0…054700             69 62 2d 27 2c 20 70 61 72 61 6d 74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67   ┆ib-', paramtxt) = 1 then     beg┆
0x054700…054720             69 6e 0a 20 20 20 20 64 65 6c 65 74 65 20 28 20 70 61 72 61 6d 74 78 74 2c 20 31 2c 20 34 29 3b   ┆in     delete ( paramtxt, 1, 4);┆
0x054720…054740             0a 20 20 20 20 73 65 74 5f 65 78 74 65 6e 73 69 6f 6e 20 28 20 70 61 72 61 6d 74 78 74 29 3b 0a   ┆     set_extension ( paramtxt); ┆
0x054740…054760             20 20 20 20 6c 69 62 72 61 72 79 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 73 6f 75 72 63 65 5f   ┆    library := true;     source_┆
0x054760…054780             66 69 6c 65 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 65 6e 64 20 28 2a 20 61 20 3d 20 27 6c 69   ┆file := true;     end (* a = 'li┆
0x054780…0547a0             62 27 20 2e 2e 2e 2e 2e 2e 2e 20 2a 29 0a 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70 6f 73 20   ┆b' ....... *)    else    if pos ┆
0x0547a0…0547c0             28 20 27 6d 61 70 2d 27 2c 20 70 61 72 61 6d 74 78 74 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 20   ┆( 'map-', paramtxt) = 1 then    ┆
0x0547c0…0547e0             20 62 65 67 69 6e 0a 20 20 20 20 20 74 78 74 3a 3d 20 63 6f 70 79 20 28 20 70 61 72 61 6d 74 78   ┆ begin      txt:= copy ( paramtx┆
0x0547e0…054800             74 2c 20 35 2c 20 32 30 29 3b 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 79 65 73 2c 20 74 78 74   ┆t, 5, 20);     if pos ( yes, txt┆
0x054800…054820 (22, 1, 2)  20 29 20 3e 20 30 20 74 68 65 6e 20 20 20 6d 61 70 5f 79 65 73 3a 3d 20 74 72 75 65 0a 20 20 20   ┆ ) > 0 then   map_yes:= true    ┆
0x054820…054840             20 65 6c 73 65 0a 20 20 20 20 69 66 20 70 6f 73 20 28 20 6e 6f 2c 20 74 78 74 20 29 20 3e 20 30   ┆ else     if pos ( no, txt ) > 0┆
0x054840…054860             20 74 68 65 6e 20 20 20 6d 61 70 5f 79 65 73 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65   ┆ then   map_yes:= false     else┆
0x054860…054880             0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 30 2c 20 70   ┆       call_error ( fatal, 20, p┆
0x054880…0548a0             61 72 61 6d 5f 69 6e 64 65 78 2c 20 27 27 29 3b 0a 0a 20 20 20 20 65 6e 64 20 28 2a 20 61 20 3d   ┆aram_index, '');      end (* a =┆
0x0548a0…0548c0             20 27 6d 61 70 27 20 2e 2e 2e 2e 2e 2e 2e 20 2a 29 0a 20 20 65 6c 73 65 0a 0a 20 20 69 66 20 70   ┆ 'map' ....... *)   else    if p┆
0x0548c0…0548e0             6f 73 20 28 20 27 64 65 62 75 67 2d 27 2c 20 70 61 72 61 6d 74 78 74 29 20 3d 20 31 20 74 68 65   ┆os ( 'debug-', paramtxt) = 1 the┆
0x0548e0…054900             6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 63 61 73 65 20 70 61 72 61 6d 74 78 74 5b 37 5d   ┆n     begin     case paramtxt[7]┆
0x054900…054920             20 6f 66 0a 20 20 20 20 27 30 27 3a 20 20 64 65 62 75 67 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20   ┆ of     '0':  debug:= true;     ┆
0x054920…054940             27 31 27 3a 20 20 64 65 62 75 67 31 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 32 27 3a 20 20 64   ┆'1':  debug1:= true;     '2':  d┆
0x054940…054960             65 62 75 67 32 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 33 27 3a 20 20 64 65 62 75 67 33 3a 3d   ┆ebug2:= true;     '3':  debug3:=┆
0x054960…054980             20 74 72 75 65 3b 0a 20 20 20 20 27 34 27 3a 20 20 64 65 62 75 67 34 3a 3d 20 74 72 75 65 3b 0a   ┆ true;     '4':  debug4:= true; ┆
0x054980…0549a0             20 20 20 20 27 35 27 3a 20 20 64 65 62 75 67 63 61 74 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27   ┆    '5':  debugcat:= true;     '┆
0x0549a0…0549c0             36 27 3a 20 20 64 65 62 75 67 36 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 27 37 27 3a 20 20 64 65   ┆6':  debug6:= true;     '7':  de┆
0x0549c0…0549e0             62 75 67 37 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 0a 0a 20 20   ┆bug7:= true;     end     end    ┆
0x0549e0…054a00             65 6c 73 65 0a 0a 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20   ┆else    {---------------------  ┆
0x054a00…054a20 (22, 1, 3)  6f 6c 64 0a 20 20 69 66 20 61 20 3d 20 27 62 69 6e 64 27 20 74 68 65 6e 0a 20 20 62 65 67 69 6e   ┆old   if a = 'bind' then   begin┆
0x054a20…054a40             0a 20 20 72 20 3a 3d 20 66 70 5f 73 79 73 74 65 6d 20 28 20 70 61 72 61 6d 5f 69 6e 64 65 78 20   ┆   r := fp_system ( param_index ┆
0x054a40…054a60             2b 20 31 2c 20 69 2c 20 61 20 29 3b 0a 20 20 69 66 20 72 20 6d 6f 64 20 32 35 36 20 3c 3e 20 31   ┆+ 1, i, a );   if r mod 256 <> 1┆
0x054a60…054a80             30 20 74 68 65 6e 0a 20 20 6d 65 73 73 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 32 31 2c   ┆0 then   mess_error ( fatal, 21,┆
0x054a80…054aa0             20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 69 74 65 6d 20 29 3b 0a 20 20 69 66 20 28 61 3d 79 65   ┆ param_index, item );   if (a=ye┆
0x054aa0…054ac0             73 29 20 6f 72 20 28 61 3d 6e 6f 29 20 74 68 65 6e 0a 20 20 62 69 6e 64 5f 79 65 73 20 3a 3d 20   ┆s) or (a=no) then   bind_yes := ┆
0x054ac0…054ae0             61 20 3d 20 79 65 73 0a 20 20 65 6c 73 65 0a 20 20 6d 65 73 73 5f 65 72 72 6f 72 20 28 20 66 61   ┆a = yes   else   mess_error ( fa┆
0x054ae0…054b00             74 61 6c 2c 20 32 31 2c 20 70 61 72 61 6d 5f 69 6e 64 65 78 2c 20 69 74 65 6d 20 29 3b 20 28 2a   ┆tal, 21, param_index, item ); (*┆
0x054b00…054b20             20 79 65 73 20 6f 72 20 6e 6f 20 65 78 63 70 65 63 74 65 64 20 2a 29 0a 20 20 70 61 72 61 6d 5f   ┆ yes or no excpected *)   param_┆
0x054b20…054b40             69 6e 64 65 78 20 3a 3d 20 70 61 72 61 6d 5f 69 6e 64 65 78 20 2b 20 32 3b 0a 20 20 65 6e 64 20   ┆index := param_index + 2;   end ┆
0x054b40…054b60             20 20 28 2a 20 61 20 3d 20 27 62 69 6e 64 27 20 2a 29 0a 0a 20 20 65 6c 73 65 0a 20 20 2d 2d 2d   ┆  (* a = 'bind' *)    else   ---┆
0x054b60…054b80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 69 66 20 70   ┆-----------------------}    if p┆
0x054b80…054ba0             6f 73 20 28 20 27 2d 27 2c 20 70 61 72 61 6d 74 78 74 20 29 20 3e 20 30 20 74 68 65 6e 0a 20 20   ┆os ( '-', paramtxt ) > 0 then   ┆
0x054ba0…054bc0             20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 31 36 2c 20 70 61 72 61 6d 5f   ┆  call_error ( fatal, 16, param_┆
0x054bc0…054be0             69 6e 64 65 78 2c 20 27 27 29 20 28 2a 20 75 6e 6b 6e 6f 77 6e 20 6f 70 74 69 6f 6e 2d 6e 61 6d   ┆index, '') (* unknown option-nam┆
0x054be0…054c00             65 20 2a 29 0a 20 20 65 6c 73 65 0a 20 20 20 20 73 6f 75 72 63 65 5f 66 69 6c 65 3a 3d 20 74 72   ┆e *)   else     source_file:= tr┆
0x054c00…054c20 (22, 1, 4)  75 65 3b 0a 0a 0a 20 20 69 66 20 73 6f 75 72 63 65 5f 66 69 6c 65 20 74 68 65 6e 0a 20 20 62 65   ┆ue;     if source_file then   be┆
0x054c20…054c40             67 69 6e 0a 0a 20 20 28 2a 20 20 27 70 61 72 61 6d 74 78 74 27 20 6d 75 73 74 20 63 6f 6e 74 61   ┆gin    (*  'paramtxt' must conta┆
0x054c40…054c60             69 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 6e 20 6f 62 6a 65 63 74 20 70 72 6f 67 72 61 6d   ┆in the name of an object program┆
0x054c60…054c80             20 28 20 66 69 6c 65 20 29 2c 0a 20 20 77 68 69 63 68 20 68 61 73 20 74 6f 20 62 65 20 69 6e 63   ┆ ( file ),   which has to be inc┆
0x054c80…054ca0             6c 75 64 65 64 20 69 6e 20 74 68 65 20 62 69 6e 61 72 79 20 70 72 6f 67 61 6d 20 28 20 66 69 6c   ┆luded in the binary progam ( fil┆
0x054ca0…054cc0             65 20 29 20 2e 20 20 2a 29 0a 0a 20 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 20 3a 3d 20 70 61   ┆e ) .  *)    obj_file_name := pa┆
0x054cc0…054ce0             72 61 6d 74 78 74 3b 0a 20 20 73 65 74 5f 65 78 74 65 6e 73 69 6f 6e 20 28 20 6f 62 6a 5f 66 69   ┆ramtxt;   set_extension ( obj_fi┆
0x054ce0…054d00             6c 65 5f 6e 61 6d 65 29 3b 0a 20 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 3a 3d 20 6e   ┆le_name);   no_of_obj_files := n┆
0x054d00…054d20             6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65 73 20 2b 20 31 3b 0a 0a 20 20 28 2a 20 6f 70 74 69 6d 69   ┆o_of_obj_files + 1;    (* optimi┆
0x054d20…054d40             7a 61 74 69 6f 6e 3a 20 6f 6d 69 74 20 73 63 61 6e 6e 69 6e 67 20 74 68 65 20 28 6e 6f 72 6d 61   ┆zation: omit scanning the (norma┆
0x054d40…054d60             6c 29 20 73 6f 75 72 63 65 66 69 6c 65 73 20 65 78 63 65 70 74 20 20 20 2a 29 0a 20 20 28 2a 20   ┆l) sourcefiles except   *)   (* ┆
0x054d60…054d80             20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 75 72 69 6e 67 20 74 68 65 20 76 65 72 79 20 66 69   ┆              during the very fi┆
0x054d80…054da0             72 73 74 20 61 6e 64 20 6c 61 73 74 20 73 63 61 6e 73 2c 20 61 6e 64 20 61 66 74 65 72 20 2a 29   ┆rst and last scans, and after *)┆
0x054da0…054dc0             0a 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 79 20 6c 69 62 72 61 72 79 2d   ┆   (*               any library-┆
0x054dc0…054de0             66 69 6c 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆files                           ┆
0x054de0…054e00             20 20 20 20 2a 29 0a 0a 20 20 61 66 74 65 72 5f 6c 69 62 20 3a 3d 20 61 66 74 65 72 5f 6c 69 62   ┆    *)    after_lib := after_lib┆
0x054e00…054e20 (22, 1, 5)  20 6f 72 20 6c 69 62 72 61 72 79 3b 0a 20 20 69 66 20 6e 6f 5f 6f 66 5f 6f 62 6a 5f 66 69 6c 65   ┆ or library;   if no_of_obj_file┆
0x054e20…054e40             73 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 28 73 63 61   ┆s = 1 then     begin     if (sca┆
0x054e40…054e60             6e 20 3d 20 31 29 20 6f 72 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 6d 61 70   ┆n = 1) or last_scan then     map┆
0x054e60…054e80             5f 6c 61 64 64 72 20 28 20 73 74 61 72 74 5f 6d 6f 64 75 6c 65 2c 20 73 74 61 72 74 5f 64 69 73   ┆_laddr ( start_module, start_dis┆
0x054e80…054ea0             70 6c 2c 20 73 74 61 72 74 5f 61 64 64 72 29 3b 0a 20 20 20 20 74 6f 70 5f 6f 66 5f 62 69 6e 20   ┆pl, start_addr);     top_of_bin ┆
0x054ea0…054ec0             3a 3d 20 73 74 61 72 74 5f 61 64 64 72 3b 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 28 73   ┆:= start_addr;     end;    if (s┆
0x054ec0…054ee0             63 61 6e 20 3d 20 31 29 20 6f 72 20 6c 61 73 74 5f 73 63 61 6e 20 6f 72 20 61 66 74 65 72 5f 6c   ┆can = 1) or last_scan or after_l┆
0x054ee0…054f00             69 62 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 09 09 28 2a 20 20 72 65 61 64 20 6f 62 6a 65   ┆ib then     begin  (*  read obje┆
0x054f00…054f20             63 74 20 66 69 6c 65 20 20 2a 29 0a 0a 20 20 6f 70 65 6e 5f 66 69 6c 65 20 28 20 69 6e 5f 6f 62   ┆ct file  *)    open_file ( in_ob┆
0x054f20…054f40             6a 5f 66 69 6c 65 2c 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 2c 20 66 6d 5f 72 65 61 64 20 29   ┆j_file, obj_file_name, fm_read )┆
0x054f40…054f60             3b 0a 20 20 69 66 20 73 63 61 6e 20 3d 20 31 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆;   if scan = 1 then  writeln ( ┆
0x054f60…054f80             6f 75 74 70 75 74 2c 20 27 27 3a 6d 61 72 67 69 6e 2c 20 27 20 20 72 65 61 64 20 66 69 6c 65 20   ┆output, '':margin, '  read file ┆
0x054f80…054fa0             3a 20 27 2c 20 6f 62 6a 5f 66 69 6c 65 5f 6e 61 6d 65 29 3b 0a 0a 20 20 28 2a 20 20 72 65 61 64   ┆: ', obj_file_name);    (*  read┆
0x054fa0…054fc0             20 73 65 67 6d 65 6e 74 20 64 65 73 63 72 69 70 74 6f 72 2c 20 70 61 72 74 20 31 20 3a 20 20 2a   ┆ segment descriptor, part 1 :  *┆
0x054fc0…054fe0             29 0a 0a 20 20 72 65 61 64 68 65 61 64 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 68 65 61   ┆)    readhead ( in_obj_file, hea┆
0x054fe0…055000             64 20 29 3b 0a 0a 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆d );    {-----------------------┆
0x055000…055020 (22, 1, 6)  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 6f 6c 64 0a 20 20 28 2a 20 69 66 20 63 6f 6d 70   ┆--------------  old   (* if comp┆
0x055020…055040             69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 69 73 20 75 6e 64 65 66 69 6e 65 64   ┆iler_version number is undefined┆
0x055040…055060             20 73 6b 69 70 20 74 68 65 20 64 65 73 63 72 69 70 74 6f 72 20 2a 29 0a 20 20 28 2a 20 73 65 67   ┆ skip the descriptor *)   (* seg┆
0x055060…055080             6d 65 6e 74 20 61 6e 64 20 70 69 63 6b 75 70 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62   ┆ment and pickup the version numb┆
0x055080…0550a0             65 72 20 66 72 6f 6d 20 74 68 65 20 73 65 63 6f 6e 64 20 2a 29 0a 20 20 28 2a 20 77 6f 72 64 20   ┆er from the second *)   (* word ┆
0x0550a0…0550c0             6f 6e 20 74 68 65 20 66 69 72 73 74 20 63 6f 64 65 70 61 67 65 20 77 68 65 72 65 61 66 74 65 72   ┆on the first codepage whereafter┆
0x0550c0…0550e0             20 74 68 65 20 66 69 6c 65 20 69 73 20 72 65 77 6f 75 6e 64 65 64 20 2a 29 0a 20 20 69 66 20 64   ┆ the file is rewounded *)   if d┆
0x0550e0…055100             65 73 63 72 5f 79 65 73 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 69 66 20 63 75 72 72 65   ┆escr_yes then   begin   if curre┆
0x055100…055120             6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 30 20 74 68 65 6e 0a 20 20 62 65 67   ┆nt_version_number = 0 then   beg┆
0x055120…055140             69 6e 0a 20 20 66 6f 72 20 69 20 3a 3d 20 32 20 74 6f 20 64 65 73 63 72 5f 6c 65 6e 67 74 68 20   ┆in   for i := 2 to descr_length ┆
0x055140…055160             64 69 76 20 32 20 64 6f 0a 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 20 28 69 6e 5f 6f 62   ┆div 2 do   lf_readinteger (in_ob┆
0x055160…055180             6a 5f 66 69 6c 65 2c 64 75 6d 6d 79 29 3b 0a 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 20   ┆j_file,dummy);   lf_readinteger ┆
0x055180…0551a0             28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 64 75 6d 6d 79 29 3b 20 28 2a 20 72 65 61 64 20 63 6f 6d   ┆(in_obj_file,dummy); (* read com┆
0x0551a0…0551c0             70 69 6c 65 20 64 61 74 65 20 2a 29 0a 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 69 6e   ┆pile date *)   lf_readinteger(in┆
0x0551c0…0551e0             5f 6f 62 6a 5f 66 69 6c 65 2c 69 29 3b 0a 20 20 77 69 74 68 20 69 20 61 73 20 74 69 6d 65 20 3a   ┆_obj_file,i);   with i as time :┆
0x0551e0…055200             20 63 6f 64 65 64 5f 74 69 6d 65 20 64 6f 0a 20 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e   ┆ coded_time do   current_version┆
0x055200…055220 (22, 1, 7)  5f 6e 75 6d 62 65 72 20 3a 3d 20 74 69 6d 65 2e 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e   ┆_number := time.compiler_version┆
0x055220…055240             3b 0a 20 20 6c 66 5f 72 65 73 65 74 20 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 6c 66   ┆;   lf_reset (in_obj_file);   lf┆
0x055240…055260             5f 72 65 61 64 69 6e 74 65 67 65 72 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 64 65 73 63 72 5f   ┆_readinteger(in_obj_file, descr_┆
0x055260…055280             6c 65 6e 67 74 68 29 3b 0a 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75   ┆length);   if current_version_nu┆
0x055280…0552a0             6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 63 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72   ┆mber = compiler_c_version_number┆
0x0552a0…0552c0             20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 66 69 78 65 64 5f 64 5f 6c 65 6e 67 74 68 20 3a   ┆ then   begin   fixed_d_length :┆
0x0552c0…0552e0             3d 20 66 69 78 65 64 5f 63 5f 64 5f 6c 65 6e 67 74 68 3b 0a 20 20 62 69 6e 64 5f 79 65 73 20 20   ┆= fixed_c_d_length;   bind_yes  ┆
0x0552e0…055300             20 20 20 20 20 3a 3d 20 74 72 75 65 3b 0a 20 20 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 20 3a   ┆     := true;   no_of_not_used :┆
0x055300…055320             3d 20 63 5f 6e 6f 5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 3b 0a 20 20 65 6e 64 3b 0a 20 20 65 6e 64   ┆= c_no_of_not_used;   end;   end┆
0x055320…055340             3b 0a 20 20 65 6e 64 0a 20 20 65 6c 73 65 0a 20 20 28 2a 20 6e 6f 74 65 20 3a 20 6e 6f 20 64 65   ┆;   end   else   (* note : no de┆
0x055340…055360             73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 69 73 20 6f 6e 6c 79 20 70 6f 73 73 69 62 6c   ┆scriptor segment is only possibl┆
0x055360…055380             65 20 69 6e 20 72 65 76 20 35 20 21 21 21 21 21 21 20 2a 29 0a 20 20 63 75 72 72 65 6e 74 5f 76   ┆e in rev 5 !!!!!! *)   current_v┆
0x055380…0553a0             65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3a 3d 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f   ┆ersion_number := compiler_versio┆
0x0553a0…0553c0             6e 5f 6e 75 6d 62 65 72 3b 0a 20 20 70 72 65 6f 63 63 75 70 69 65 64 3a 3d 20 70 72 65 6f 63 63   ┆n_number;   preoccupied:= preocc┆
0x0553c0…0553e0             75 70 69 65 64 20 2b 20 73 75 6d 5f 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2b 20   ┆upied + sum_descriptor_length + ┆
0x0553e0…055400             34 20 2b 20 32 2a 6e 6f 5f 6f 66 5f 73 75 6d 73 3b 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆4 + 2*no_of_sums;   ------------┆
0x055400…055420 (22, 1, 8)  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x055420…055440             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 70   ┆--------------------------}    p┆
0x055440…055460             72 65 6f 63 63 75 70 69 65 64 3a 3d 20 32 20 2b 20 73 75 6d 5f 64 65 73 63 72 69 70 74 6f 72 5f   ┆reoccupied:= 2 + sum_descriptor_┆
0x055460…055480             6c 65 6e 67 74 68 20 2b 20 34 20 2b 20 32 2a 6e 6f 5f 6f 66 5f 73 75 6d 73 3b 0a 20 20 74 6f 70   ┆length + 4 + 2*no_of_sums;   top┆
0x055480…0554a0             5f 6f 66 5f 6d 6f 64 75 6c 65 3a 3d 20 20 24 46 46 46 46 20 2d 20 70 72 65 6f 63 63 75 70 69 65   ┆_of_module:=  $FFFF - preoccupie┆
0x0554a0…0554c0             64 20 2b 20 31 3b 0a 0a 20 20 77 68 69 6c 65 20 68 65 61 64 2e 64 65 73 63 72 69 70 74 6f 72 5f   ┆d + 1;    while head.descriptor_┆
0x0554c0…0554e0             6c 65 6e 67 74 68 20 3c 3e 20 73 74 6f 70 5f 6d 61 72 6b 20 64 6f 0a 20 20 20 77 69 74 68 20 68   ┆length <> stop_mark do    with h┆
0x0554e0…055500             65 61 64 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 0a 20 20 20 20 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ead do     begin      {---------┆
0x055500…055520             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 64 6f 6e 65 20 69 6e 20 72 65 61 64 68 65 61 64 0a 20   ┆------------  done in readhead  ┆
0x055520…055540             20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20   ┆   lf_readinteger( in_obj_file, ┆
0x055540…055560             20 6e 6f 5f 6f 66 5f 70 61 67 65 73 20 29 3b 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67   ┆ no_of_pages );     lf_readinteg┆
0x055560…055580             65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 73 69 7a 65 5f 6f 66 5f 70 61 67 65 20 29   ┆er( in_obj_file,  size_of_page )┆
0x055580…0555a0             3b 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c   ┆;     lf_readinteger( in_obj_fil┆
0x0555a0…0555c0             65 2c 20 20 62 79 74 65 73 5f 6f 6e 5f 6c 61 73 74 5f 70 61 67 65 20 29 3b 0a 0a 20 20 20 20 6c   ┆e,  bytes_on_last_page );      l┆
0x0555c0…0555e0             66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 6b 69 6e   ┆f_readinteger( in_obj_file,  kin┆
0x0555e0…055600             64 5f 6f 66 5f 6f 62 6a 20 29 3b 0a 0a 20 20 20 20 69 6e 5f 69 64 65 6e 74 69 66 69 65 72 28 20   ┆d_of_obj );      in_identifier( ┆
0x055600…055620 (22, 1, 9)  6e 61 6d 65 5f 6f 66 5f 6f 62 6a 20 29 3b 0a 0a 20 20 20 20 69 6e 5f 70 6f 69 6e 74 28 20 65 6e   ┆name_of_obj );      in_point( en┆
0x055620…055640             74 72 79 5f 70 6f 69 6e 74 20 29 3b 0a 20 20 20 20 69 6e 5f 70 6f 69 6e 74 28 20 65 78 63 65 70   ┆try_point );     in_point( excep┆
0x055640…055660             74 69 6f 6e 5f 70 6f 69 6e 74 20 29 3b 0a 20 20 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72   ┆tion_point );     if current_ver┆
0x055660…055680             73 69 6f 6e 5f 6e 75 6d 62 65 72 20 3d 20 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 5f 6e   ┆sion_number = compiler_version_n┆
0x055680…0556a0             75 6d 62 65 72 20 74 68 65 6e 0a 20 20 20 20 69 6e 5f 70 6f 69 6e 74 28 20 65 78 69 74 5f 70 6f   ┆umber then     in_point( exit_po┆
0x0556a0…0556c0             69 6e 74 20 29 3b 0a 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f   ┆int );      lf_readinteger( in_o┆
0x0556c0…0556e0             62 6a 5f 66 69 6c 65 2c 20 20 64 65 66 61 75 6c 74 5f 61 70 70 65 74 69 74 65 20 29 3b 0a 20 20   ┆bj_file,  default_appetite );   ┆
0x0556e0…055700             20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67 65 72 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20   ┆  lf_readinteger( in_obj_file,  ┆
0x055700…055720             61 70 70 65 74 69 74 65 20 29 3b 0a 20 20 20 20 66 6f 72 20 69 20 3a 3d 20 31 20 74 6f 20 6e 6f   ┆appetite );     for i := 1 to no┆
0x055720…055740             5f 6f 66 5f 6e 6f 74 5f 75 73 65 64 20 64 6f 0a 20 20 20 20 6c 66 5f 72 65 61 64 69 6e 74 65 67   ┆_of_not_used do     lf_readinteg┆
0x055740…055760             65 72 28 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 6e 6f 74 5f 75 73 65 64 20 28 69 29 29 3b 0a 20   ┆er(in_obj_file, not_used (i));  ┆
0x055760…055780             20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆   -----------------------------┆
0x055780…0557a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 7d 0a 0a 20 20   ┆-------------------------- }    ┆
0x0557a0…0557c0             20 20 77 61 6e 74 65 64 3a 3d 20 6b 69 6e 64 20 3c 3d 20 33 3b 09 09 28 2a 20 73 6b 69 70 20 6f   ┆  wanted:= kind <= 3;  (* skip o┆
0x0557c0…0557e0             70 65 6e 20 72 6f 75 74 69 6e 65 73 20 69 6e 20 6c 69 62 72 61 72 79 20 2a 29 0a 20 20 20 20 69   ┆pen routines in library *)     i┆
0x0557e0…055800             6e 5f 70 61 72 61 6d 73 20 28 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 2c 20 6f 62 6a 5f 70 61 72   ┆n_params ( no_of_params, obj_par┆
0x055800…055820 (22, 1, 10) 61 6d 73 2c 20 68 65 61 64 2e 6e 61 6d 65 29 3b 0a 0a 0a 20 20 20 20 77 72 6b 3a 3d 20 20 6c 65   ┆ams, head.name);       wrk:=  le┆
0x055820…055840             6e 67 74 68 5f 6f 66 5f 66 69 78 65 64 5f 70 61 72 74 31 20 2b 20 6f 62 6a 5f 70 61 72 61 6d 73   ┆ngth_of_fixed_part1 + obj_params┆
0x055840…055860             2e 70 61 72 61 6d 63 6f 75 6e 74 20 2a 20 32 20 2a 20 73 69 7a 65 6f 66 20 28 20 77 6f 72 64 29   ┆.paramcount * 2 * sizeof ( word)┆
0x055860…055880             3b 0a 20 20 20 20 69 66 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 3c 3e 20 77 72   ┆;     if descriptor_length <> wr┆
0x055880…0558a0             6b 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 74 72 75 65   ┆k then       begin       if true┆
0x0558a0…0558c0             20 74 68 65 6e 0a 09 77 69 74 68 20 6f 62 6a 5f 70 61 72 61 6d 73 20 64 6f 0a 09 62 65 67 69 6e   ┆ then  with obj_params do  begin┆
0x0558c0…0558e0             0a 09 69 66 20 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 20 3d 20 30 20 74 68 65 6e 0a 09 20 20 62 65   ┆  if no_of_params = 0 then    be┆
0x0558e0…055900             67 69 6e 0a 09 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65   ┆gin    readinteger ( in_obj_file┆
0x055900…055920             2c 20 70 61 72 61 6d 5b 31 5d 2e 70 61 72 61 6d 5f 74 79 70 65 29 3b 0a 09 20 20 72 65 61 64 69   ┆, param[1].param_type);    readi┆
0x055920…055940             6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 70 61 72 61 6d 5b 31 5d 2e 70   ┆nteger ( in_obj_file, param[1].p┆
0x055940…055960             61 72 61 6d 5f 73 69 7a 65 29 3b 0a 09 20 20 65 6e 64 3b 0a 09 77 72 69 74 65 6c 6e 20 28 20 6f   ┆aram_size);    end;  writeln ( o┆
0x055960…055980             75 74 70 75 74 2c 20 27 20 64 20 6c 65 6e 67 74 2c 20 70 61 72 61 6d 73 2c 20 78 31 2c 20 78 32   ┆utput, ' d lengt, params, x1, x2┆
0x055980…0559a0             20 3a 20 27 2c 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 3a 36 2c 0a 09 20 20 6e 6f   ┆ : ', descriptor_length:6,    no┆
0x0559a0…0559c0             5f 6f 66 5f 70 61 72 61 6d 73 3a 36 2c 20 70 61 72 61 6d 5b 31 5d 2e 70 61 72 61 6d 5f 74 79 70   ┆_of_params:6, param[1].param_typ┆
0x0559c0…0559e0             65 3a 36 2c 20 70 61 72 61 6d 5b 31 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 3a 36 29 3b 0a 09 65 6e   ┆e:6, param[1].param_size:6);  en┆
0x0559e0…055a00             64 3b 0a 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 31 31   ┆d;        call_error ( fatal, 11┆
0x055a00…055a20 (22, 1, 11) 2c 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 2c 0a 20 20 20 20 20 20 20 73 74 72 61   ┆, descriptor_length,        stra┆
0x055a20…055a40             6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 20 2b 20 27 20 20 27 20 2b 20 73 74 72 69 6e 74   ┆lfa ( head.name) + '  ' + strint┆
0x055a40…055a60             20 28 77 72 6b 29 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 72 6f 6e 67 20 6e   ┆ (wrk));       end;  (*  wrong n┆
0x055a60…055a80             6f 20 6f 66 20 70 61 72 61 6d 73 20 20 2a 29 0a 0a 20 20 20 20 28 2a 2d 20 20 69 66 20 64 65 73   ┆o of params  *)      (*-  if des┆
0x055a80…055aa0             63 72 5f 79 65 73 20 74 68 65 6e 20 20 20 20 20 2d 2a 29 0a 20 20 20 20 28 2a 2d 20 20 64 5f 6c   ┆cr_yes then     -*)     (*-  d_l┆
0x055aa0…055ac0             65 6e 67 74 68 20 3a 3d 20 64 65 73 63 72 5f 6c 65 6e 67 74 68 3b 20 20 2d 2a 29 0a 20 20 20 20   ┆ength := descr_length;  -*)     ┆
0x055ac0…055ae0             28 2a 2d 20 20 65 6c 73 65 20 20 20 20 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 30 3b 20 20 2d 2a 29   ┆(*-  else    d_length := 0;  -*)┆
0x055ae0…055b00             0a 0a 20 20 20 20 63 6f 64 65 5f 62 79 74 65 73 20 3a 3d 20 20 6c 61 73 74 5f 70 61 67 65 5f 6c   ┆      code_bytes :=  last_page_l┆
0x055b00…055b20             65 6e 67 74 68 3b 0a 20 20 20 20 63 6f 64 65 5f 62 79 74 65 73 20 3a 3d 20 20 63 6f 64 65 5f 62   ┆ength;     code_bytes :=  code_b┆
0x055b20…055b40             79 74 65 73 20 2b 20 28 6e 6f 5f 6f 66 5f 70 61 67 65 73 20 2d 20 31 20 29 20 2a 20 70 61 67 65   ┆ytes + (no_of_pages - 1 ) * page┆
0x055b40…055b60             73 69 7a 65 3b 0a 20 20 20 20 63 6f 64 65 5f 77 6f 72 64 73 20 3a 3d 20 28 63 6f 64 65 5f 62 79   ┆size;     code_words := (code_by┆
0x055b60…055b80             74 65 73 20 2b 20 31 29 20 64 69 76 20 32 3b 0a 20 20 20 20 6f 63 74 65 74 73 20 20 20 20 20 3a   ┆tes + 1) div 2;     octets     :┆
0x055b80…055ba0             3d 20 63 6f 64 65 5f 77 6f 72 64 73 20 2a 20 32 3b 0a 0a 0a 20 20 20 20 6b 65 79 3a 3d 20 73 74   ┆= code_words * 2;       key:= st┆
0x055ba0…055bc0             72 61 6c 66 61 20 28 20 6e 61 6d 65 29 20 2b 20 27 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a   ┆ralfa ( name) + '            '; ┆
0x055bc0…055be0             20 20 20 20 69 66 20 64 65 62 75 67 32 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆    if debug2 then writeln ( out┆
0x055be0…055c00             70 75 74 2c 20 27 20 69 74 65 6d 20 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 20 77 6f 72 64 73 20 3a   ┆put, ' item : ', key, ', words :┆
0x055c00…055c20 (22, 1, 12) 20 27 2c 20 63 6f 64 65 5f 77 6f 72 64 73 2c 0a 20 20 20 20 20 20 27 20 20 62 79 74 65 73 20 3a   ┆ ', code_words,       '  bytes :┆
0x055c20…055c40             20 27 2c 20 63 6f 64 65 5f 62 79 74 65 73 29 3b 0a 20 20 20 20 73 65 61 72 63 68 20 28 20 69 74   ┆ ', code_bytes);     search ( it┆
0x055c40…055c60             65 6d 2c 20 69 74 65 6d 6e 6f 2c 20 6b 65 79 2c 20 6f 62 6a 5f 70 61 72 61 6d 73 29 3b 0a 20 20   ┆em, itemno, key, obj_params);   ┆
0x055c60…055c80             20 20 69 66 20 64 65 62 75 67 63 61 74 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75   ┆  if debugcat then  writeln ( ou┆
0x055c80…055ca0             74 70 75 74 2c 20 27 20 20 20 73 65 61 72 63 68 20 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 27 2c 20   ┆tput, '   search : ', key, ',', ┆
0x055ca0…055cc0             69 74 65 6d 6e 6f 3a 34 2c 20 73 75 63 63 65 73 73 3a 38 29 3b 0a 0a 20 20 20 20 69 66 20 73 75   ┆itemno:4, success:8);      if su┆
0x055cc0…055ce0             63 63 65 73 73 20 74 68 65 6e 20 20 28 2a 20 20 66 6f 75 6e 64 20 20 2a 29 0a 20 20 20 20 65 6c   ┆ccess then  (*  found  *)     el┆
0x055ce0…055d00             73 65 09 28 2a 20 6e 6f 74 20 69 6e 20 74 61 62 6c 65 20 2a 29 0a 20 20 20 20 20 20 69 66 20 6c   ┆se (* not in table *)       if l┆
0x055d00…055d20             69 62 72 61 72 79 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 77 61 6e 74 65 64 20 3a 3d 20 66 61   ┆ibrary then         wanted := fa┆
0x055d20…055d40             6c 73 65 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 69 6e 69 74 5f 69 74 65 6d 20 28 20 69 74 65 6d   ┆lse       else  init_item ( item┆
0x055d40…055d60             2c 20 69 74 65 6d 6e 6f 2c 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 2c 20   ┆, itemno, stralfa ( head.name), ┆
0x055d60…055d80             74 72 75 65 29 3b 0a 0a 0a 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 74 68 65 6e 0a 20 20 20 20   ┆true);       if wanted then     ┆
0x055d80…055da0             62 65 67 69 6e 0a 20 20 20 20 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 20 20 20 20 62 65 67 69 6e   ┆begin     with item do     begin┆
0x055da0…055dc0             0a 20 20 20 20 64 5f 61 64 64 72 20 3a 3d 20 74 6f 70 5f 6f 66 5f 62 69 6e 3b 0a 0a 20 20 20 20   ┆     d_addr := top_of_bin;      ┆
0x055dc0…055de0             28 2a 2d 20 20 20 69 66 20 62 69 6e 64 5f 79 65 73 20 74 68 65 6e 20 20 20 2d 2a 29 0a 20 20 20   ┆(*-   if bind_yes then   -*)    ┆
0x055de0…055e00             20 28 2a 20 66 6f 72 63 65 20 6e 65 77 20 6d 6f 64 75 6c 65 20 69 66 20 28 64 65 73 63 72 2d 6c   ┆ (* force new module if (descr-l┆
0x055e00…055e20 (22, 1, 13) 65 6e 67 74 68 20 2b 20 63 6f 64 65 2d 6c 65 6e 67 74 68 29 20 65 78 63 65 65 64 73 0a 20 20 20   ┆ength + code-length) exceeds    ┆
0x055e20…055e40             20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 70 61 72 74 20 6f 66 20 63 75 72 72 65 6e 74 20 6d   ┆ the remaining part of current m┆
0x055e40…055e60             6f 64 75 6c 65 20 2a 29 0a 0a 20 20 20 20 72 65 73 65 72 76 65 5f 61 72 65 61 20 28 20 64 65 73   ┆odule *)      reserve_area ( des┆
0x055e60…055e80             63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 2b 20 6f 63 74 65 74 73 2c 20 64 5f 61 64 64 72 29   ┆criptor_length + octets, d_addr)┆
0x055e80…055ea0             3b 0a 0a 20 20 20 20 28 2a 2d 20 20 65 6c 73 65 20 20 20 72 65 73 65 72 76 65 5f 61 72 65 61 20   ┆;      (*-  else   reserve_area ┆
0x055ea0…055ec0             28 64 5f 6c 65 6e 67 74 68 2c 20 64 5f 61 64 64 72 29 3b 20 20 20 2d 2a 29 0a 0a 20 20 20 20 69   ┆(d_length, d_addr);   -*)      i┆
0x055ec0…055ee0             66 20 6e 6f 74 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 73 61 76 65 64   ┆f not last_scan then       saved┆
0x055ee0…055f00             5f 64 5f 61 64 64 72 20 3a 3d 20 64 5f 61 64 64 72 0a 20 20 20 20 65 6c 73 65 20 28 2a 20 74 65   ┆_d_addr := d_addr     else (* te┆
0x055f00…055f20             73 74 20 74 68 61 74 20 74 68 65 20 73 74 61 72 74 2d 61 64 64 72 65 73 73 20 68 61 73 27 6e 74   ┆st that the start-address has'nt┆
0x055f20…055f40             20 63 68 61 6e 67 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 76 65 72 79 20 6c 61 73 74 20 73 63   ┆ changed during the very last sc┆
0x055f40…055f60             61 6e 20 2a 29 0a 20 20 20 20 69 66 20 20 28 20 73 61 76 65 64 5f 64 5f 61 64 64 72 2e 62 61 73   ┆an *)     if  ( saved_d_addr.bas┆
0x055f60…055f80             65 20 3c 3e 20 64 5f 61 64 64 72 2e 62 61 73 65 20 29 0a 20 20 20 20 6f 72 20 20 28 20 73 61 76   ┆e <> d_addr.base )     or  ( sav┆
0x055f80…055fa0             65 64 5f 64 5f 61 64 64 72 2e 64 69 73 70 20 3c 3e 20 64 5f 61 64 64 72 2e 64 69 73 70 20 29 20   ┆ed_d_addr.disp <> d_addr.disp ) ┆
0x055fa0…055fc0             74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 63 61 6c 6c 5f 65 72 72 6f   ┆then       begin       call_erro┆
0x055fc0…055fe0             72 20 28 20 77 61 72 6e 2c 20 31 38 2c 20 30 2c 20 27 27 29 3b 0a 20 20 20 20 20 20 6c 6f 61 64   ┆r ( warn, 18, 0, '');       load┆
0x055fe0…056000             65 72 6d 61 70 5f 65 72 72 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 6d 61   ┆ermap_err:= true;       print_ma┆
0x056000…056020 (22, 1, 14) 70 20 28 20 69 74 65 6d 29 3b 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75   ┆p ( item);       writeln ( outpu┆
0x056020…056040             74 2c 20 27 20 20 20 73 61 76 65 64 5f 64 5f 61 64 64 72 20 77 61 73 3a 20 27 2c 20 73 74 72 5f   ┆t, '   saved_d_addr was: ', str_┆
0x056040…056060             61 64 64 72 20 28 20 73 61 76 65 64 5f 64 5f 61 64 64 72 29 29 3b 0a 20 20 20 20 20 20 65 6e 64   ┆addr ( saved_d_addr));       end┆
0x056060…056080             3b 0a 0a 20 20 20 20 6d 61 70 5f 69 6e 63 72 20 28 20 64 5f 61 64 64 72 2c 20 64 65 73 63 72 69   ┆;      map_incr ( d_addr, descri┆
0x056080…0560a0             70 74 6f 72 5f 6c 65 6e 67 74 68 2c 20 63 6f 64 65 5f 61 64 64 72 29 3b 0a 20 20 20 20 72 65 73   ┆ptor_length, code_addr);     res┆
0x0560a0…0560c0             65 72 76 65 5f 61 72 65 61 20 28 20 6f 63 74 65 74 73 2c 20 63 6f 64 65 5f 61 64 64 72 29 3b 0a   ┆erve_area ( octets, code_addr); ┆
0x0560c0…0560e0             20 20 20 20 6d 61 70 5f 69 6e 63 72 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 6f 63 74 65 74 73   ┆    map_incr ( code_addr, octets┆
0x0560e0…056100             2c 20 74 6f 70 5f 6f 66 5f 62 69 6e 29 3b 0a 20 20 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63   ┆, top_of_bin);     map_point ( c┆
0x056100…056120             6f 64 65 5f 61 64 64 72 2c 20 70 61 67 65 73 69 7a 65 2c 20 65 6e 74 72 79 5f 70 6f 69 6e 74 2c   ┆ode_addr, pagesize, entry_point,┆
0x056120…056140             20 65 6e 74 72 79 5f 61 64 64 72 29 3b 0a 0a 20 20 20 20 20 69 66 20 63 6f 6d 70 69 6c 65 5f 64   ┆ entry_addr);       if compile_d┆
0x056140…056160             61 74 65 20 3d 20 30 20 74 68 65 6e 20 67 65 74 5f 64 61 74 65 20 28 20 63 6f 6d 70 69 6c 65 5f   ┆ate = 0 then get_date ( compile_┆
0x056160…056180             64 61 74 65 2c 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 29 3b 0a 20 20 20 20 28 2a 20 64 65 63 72   ┆date, compile_time);     (* decr┆
0x056180…0561a0             65 6d 65 6e 74 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 69 66 20 74 68 65 20 6d 6f 64 75 6c 65 20   ┆ement undef_count if the module ┆
0x0561a0…0561c0             68 61 73 20 6e 6f 74 20 62 65 65 6e 20 64 65 66 69 6e 65 64 20 62 65 66 6f 72 65 20 2a 29 0a 20   ┆has not been defined before *)  ┆
0x0561c0…0561e0             20 20 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 3a 3d 20 75 6e 64 65 66 5f 63 6f 75 6e 74 20 2d 20   ┆   undef_count := undef_count - ┆
0x0561e0…056200             31 20 2a 20 6f 72 64 28 73 74 61 74 65 20 3d 20 75 6e 64 65 66 29 3b 0a 20 20 20 20 73 74 61 74   ┆1 * ord(state = undef);     stat┆
0x056200…056220 (22, 1, 15) 65 20 3a 3d 20 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 69 74 68   ┆e := defined;     end;  (*  with┆
0x056220…056240             20 69 74 65 6d 20 20 2a 29 0a 0a 20 20 20 20 70 75 74 72 65 63 20 28 20 64 61 74 66 2c 20 69 74   ┆ item  *)      putrec ( datf, it┆
0x056240…056260             65 6d 6e 6f 2c 20 69 74 65 6d 29 3b 0a 0a 20 20 20 20 69 66 20 64 65 62 75 67 63 61 74 20 74 68   ┆emno, item);      if debugcat th┆
0x056260…056280             65 6e 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 20 20 70 75 74 72 65 63 20   ┆en writeln ( output, '   putrec ┆
0x056280…0562a0             3a 20 27 2c 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65 29 2c 20 69 74 65 6d 6e   ┆: ', stralfa ( head.name), itemn┆
0x0562a0…0562c0             6f 3a 34 29 3b 0a 0a 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 69 66 20 77 61 6e 74 65 64 20 20   ┆o:4);      end;  (*  if wanted  ┆
0x0562c0…0562e0             2a 29 0a 0a 0a 20 20 20 20 69 66 20 64 65 73 63 72 5f 79 65 73 20 61 6e 64 20 77 61 6e 74 65 64   ┆*)       if descr_yes and wanted┆
0x0562e0…056300             20 61 6e 64 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a   ┆ and last_scan then       begin ┆
0x056300…056320             0a 20 20 20 20 20 20 28 2a 20 20 6f 75 74 70 75 74 20 74 68 65 20 72 65 64 75 63 65 64 20 64 65   ┆       (*  output the reduced de┆
0x056320…056340             73 63 72 69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 3a 20 20 2a 29 0a 0a 20 20 20 20 20 20 6f 75   ┆scriptor segment :  *)        ou┆
0x056340…056360             74 5f 69 6e 74 65 67 65 72 20 28 20 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 20 29 3b   ┆t_integer ( descriptor_length );┆
0x056360…056380             0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 6e 6f 5f 6f 66 5f 70 61 67 65 73   ┆       out_integer ( no_of_pages┆
0x056380…0563a0             20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 70 61 67 65 73 69 7a 65   ┆ );       out_integer ( pagesize┆
0x0563a0…0563c0             20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 6c 61 73 74 5f 70 61 67   ┆ );       out_integer ( last_pag┆
0x0563c0…0563e0             65 5f 6c 65 6e 67 74 68 20 29 3b 0a 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28   ┆e_length );        out_integer (┆
0x0563e0…056400             20 6b 69 6e 64 20 29 3b 0a 0a 20 20 20 20 20 20 6f 75 74 5f 69 64 65 6e 74 69 66 69 65 72 20 28   ┆ kind );        out_identifier (┆
0x056400…056420 (23, 0, 1)  20 6e 61 6d 65 20 29 3b 0a 0a 20 20 20 20 20 20 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65   ┆ name );        map_point ( code┆
0x056420…056440             5f 61 64 64 72 2c 20 70 61 67 65 73 69 7a 65 2c 20 65 6e 74 72 79 5f 70 6f 69 6e 74 2c 20 6d 61   ┆_addr, pagesize, entry_point, ma┆
0x056440…056460             70 5f 61 64 64 72 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 61 64 64 72 20 28 20 6d 61 70 5f 61   ┆p_addr );       out_addr ( map_a┆
0x056460…056480             64 64 72 20 29 3b 0a 0a 20 20 20 20 20 20 69 66 20 6b 69 6e 64 20 3d 20 70 72 6f 67 72 61 6d 6b   ┆ddr );        if kind = programk┆
0x056480…0564a0             69 6e 64 20 74 68 65 6e 0a 09 6d 61 70 5f 70 6f 69 6e 74 20 28 20 63 6f 64 65 5f 61 64 64 72 2c   ┆ind then  map_point ( code_addr,┆
0x0564a0…0564c0             20 70 61 67 65 73 69 7a 65 2c 20 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 2c 20 6d 61 70 5f   ┆ pagesize, exception_point, map_┆
0x0564c0…0564e0             61 64 64 72 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 61 64 64 72 20 28 20 6d 61 70 5f 61 64 64   ┆addr );       out_addr ( map_add┆
0x0564e0…056500             72 20 29 3b 0a 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 64 65 66 61 75 6c   ┆r );        out_integer ( defaul┆
0x056500…056520             74 5f 61 70 70 65 74 69 74 65 20 29 3b 0a 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20   ┆t_appetite );       out_integer ┆
0x056520…056540             28 20 6c 61 73 74 5f 70 61 72 61 6d 5f 6f 66 66 73 65 74 20 29 3b 0a 20 20 20 20 20 20 6f 75 74   ┆( last_param_offset );       out┆
0x056540…056560             5f 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 5f 64 61 74 65 20 29 3b 0a 20 20 20 20 20 20   ┆_integer ( source_date );       ┆
0x056560…056580             6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 73 6f 75 72 63 65 5f 74 69 6d 65 29 3b 0a 20 20 20 20   ┆out_integer ( source_time);     ┆
0x056580…0565a0             20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 76 65 72 73 69 6f 6e 29 3b 0a 20 20 20 20 20 20   ┆  out_integer ( version);       ┆
0x0565a0…0565c0             6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 65 78 74 72 61 20 29 3b 0a 0a 20 20 20 20 20 20 77 69   ┆out_integer ( extra );        wi┆
0x0565c0…0565e0             74 68 20 6f 62 6a 5f 70 61 72 61 6d 73 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09   ┆th obj_params do         begin  ┆
0x0565e0…056600             6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 70 61 72 61 6d 63 6f 75 6e 74 29 3b 0a 09 66 6f 72 20   ┆out_integer ( paramcount);  for ┆
0x056600…056620 (23, 0, 2)  70 20 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20   ┆p := 1 to paramcount do         ┆
0x056620…056640             20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 6f 75 74 5f 69 6e 74 65 67 65 72 20 28 20 70 61   ┆ begin          out_integer ( pa┆
0x056640…056660             72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 74 79 70 65 20 29 3b 0a 20 20 20 20 20 20 20 20 20 6f 75   ┆ram[p].param_type );          ou┆
0x056660…056680             74 5f 69 6e 74 65 67 65 72 20 28 20 70 61 72 61 6d 5b 70 5d 2e 70 61 72 61 6d 5f 73 69 7a 65 20   ┆t_integer ( param[p].param_size ┆
0x056680…0566a0             29 3b 0a 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 0a 20 20 20   ┆);          end         end     ┆
0x0566a0…0566c0             20 20 20 65 6e 64 3b 20 20 28 2a 20 20 6f 75 74 70 75 74 20 64 65 73 63 72 69 70 74 6f 72 20 20   ┆   end;  (*  output descriptor  ┆
0x0566c0…0566e0             73 65 67 6d 20 20 2a 29 0a 0a 20 20 20 20 69 66 20 6e 6f 74 20 6c 61 73 74 5f 73 63 61 6e 20 74   ┆segm  *)      if not last_scan t┆
0x0566e0…056700             68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 09 09 09 20 28 2a 20 73 6b 69 70 20 74 68 65 20 63   ┆hen       begin    (* skip the c┆
0x056700…056720             6f 64 65 20 70 61 72 74 20 2a 29 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e   ┆ode part *)       if debug4 then┆
0x056720…056740             20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 73 65 65 6b 20 74 6f 20 20 70 6f   ┆  writeln ( output, 'seek to  po┆
0x056740…056760             73 20 2b 20 20 20 27 2c 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20 20 66 70 6f 73 3a 3d 20 66   ┆s +   ', octets);       fpos:= f┆
0x056760…056780             69 6c 65 70 6f 73 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 20 2b 20 6f 63 74 65 74 73 3b 0a   ┆ilepos ( in_obj_file) + octets; ┆
0x056780…0567a0             20 20 20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆      if debug4 then  writeln ( ┆
0x0567a0…0567c0             6f 75 74 70 75 74 2c 20 27 73 65 65 6b 20 66 72 6f 6d 20 3a 20 20 27 2c 20 66 70 6f 73 20 2d 20   ┆output, 'seek from :  ', fpos - ┆
0x0567c0…0567e0             6f 63 74 65 74 73 29 3b 0a 0a 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a   ┆octets);        iocheck ( in_obj┆
0x0567e0…056800             5f 66 69 6c 65 20 29 3b 0a 20 20 20 20 20 20 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c   ┆_file );       seek ( in_obj_fil┆
0x056800…056820 (23, 0, 3)  65 2c 20 66 70 6f 73 29 3b 0a 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a   ┆e, fpos);       iocheck ( in_obj┆
0x056820…056840             5f 66 69 6c 65 20 29 3b 0a 20 20 20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 77 72   ┆_file );       if debug4 then wr┆
0x056840…056860             69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27 20 73 65 65 6b 20 6f 6b 20 20 27 29 3b 0a 20   ┆iteln ( output, ' seek ok  ');  ┆
0x056860…056880             20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20   ┆     end     else       begin   ┆
0x056880…0568a0             20 20 20 20 67 65 74 62 6c 6f 63 6b 20 28 20 6f 63 74 65 74 73 29 3b 0a 20 20 20 20 20 20 7b 2d   ┆    getblock ( octets);       {-┆
0x0568a0…0568c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 73 65 65 20 69 6e 69 74 20 69   ┆--------------------- see init i┆
0x0568c0…0568e0             74 65 6d 20 2d 2d 0a 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 61 6e 64 20 64 65 73 63 72   ┆tem --       if wanted and descr┆
0x0568e0…056900             5f 79 65 73 20 74 68 65 6e 0a 09 62 65 67 69 6e 0a 09 77 69 74 68 20 69 74 65 6d 20 64 6f 0a 09   ┆_yes then  begin  with item do  ┆
0x056900…056920             20 20 62 65 67 69 6e 0a 09 20 20 63 6f 6d 70 69 6c 65 5f 64 61 74 65 3a 3d 20 63 6f 72 65 77 5e   ┆  begin    compile_date:= corew^┆
0x056920…056940             5b 30 5d 3b 0a 09 20 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 3a 3d 20 63 6f 72 65 77 5e 5b 31 5d   ┆[0];    compile_time:= corew^[1]┆
0x056940…056960             3b 0a 0a 09 20 20 69 66 20 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20   ┆;     if current_version_number ┆
0x056960…056980             3c 3e 20 63 6f 6d 70 69 6c 65 5f 74 69 6d 65 20 73 68 72 20 31 31 20 74 68 65 6e 0a 09 20 20 20   ┆<> compile_time shr 11 then     ┆
0x056980…0569a0             20 63 61 6c 6c 5f 65 72 72 6f 72 20 28 20 66 61 74 61 6c 2c 20 35 2c 20 63 6f 6d 70 69 6c 65 5f   ┆ call_error ( fatal, 5, compile_┆
0x0569a0…0569c0             74 69 6d 65 20 73 68 72 20 31 31 2c 20 73 74 72 61 6c 66 61 20 28 20 68 65 61 64 2e 6e 61 6d 65   ┆time shr 11, stralfa ( head.name┆
0x0569c0…0569e0             29 29 3b 0a 09 20 20 65 6e 64 3b 20 20 28 2a 20 20 77 69 74 68 20 20 2a 29 0a 09 70 75 74 72 65   ┆));    end;  (*  with  *)  putre┆
0x0569e0…056a00             63 20 28 20 64 61 74 66 2c 20 69 74 65 6d 6e 6f 2c 20 69 74 65 6d 29 0a 09 65 6e 64 3b 0a 20 20   ┆c ( datf, itemno, item)  end;   ┆
0x056a00…056a20 (23, 0, 4)  20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆    ----------------------------┆
0x056a20…056a40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 0a 0a 20 20 20 20 20 20 69 66 20 77 61   ┆------------------}        if wa┆
0x056a40…056a60             6e 74 65 64 20 61 6e 64 20 28 6d 61 70 5f 79 65 73 20 6f 72 20 70 72 69 6e 74 5f 63 6f 64 65 29   ┆nted and (map_yes or print_code)┆
0x056a60…056a80             20 74 68 65 6e 20 20 70 72 69 6e 74 5f 6d 61 70 20 28 20 69 74 65 6d 20 29 3b 0a 20 20 20 20 20   ┆ then  print_map ( item );      ┆
0x056a80…056aa0             20 65 6e 64 3b 20 20 28 2a 20 20 6c 61 73 74 20 73 63 61 6e 20 20 2a 29 0a 0a 20 20 20 20 69 66   ┆ end;  (*  last scan  *)      if┆
0x056aa0…056ac0             20 66 61 6c 73 65 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆ false then  writeln ( output, '┆
0x056ac0…056ae0             20 20 72 65 61 64 79 20 66 6f 72 20 65 78 74 65 72 6e 20 27 29 3b 0a 20 20 20 20 72 65 61 64 69   ┆  ready for extern ');     readi┆
0x056ae0…056b00             6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 6e 6f 5f 6f 66 5f 65 78 74 29   ┆nteger ( in_obj_file, no_of_ext)┆
0x056b00…056b20             3b 0a 0a 20 20 20 20 69 66 20 64 65 62 75 67 31 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28   ┆;      if debug1 then  writeln (┆
0x056b20…056b40             20 6f 75 74 70 75 74 2c 20 27 6e 6f 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 3a 20 27 2c 20 6e 6f   ┆ output, 'no of external : ', no┆
0x056b40…056b60             5f 6f 66 5f 65 78 74 29 3b 0a 0a 20 20 20 20 66 6f 72 20 73 74 65 70 20 3a 3d 20 31 20 74 6f 20   ┆_of_ext);      for step := 1 to ┆
0x056b60…056b80             6e 6f 5f 6f 66 5f 65 78 74 20 64 6f 09 28 2a 20 20 70 72 6f 63 65 73 73 20 65 78 74 65 72 6e 61   ┆no_of_ext do (*  process externa┆
0x056b80…056ba0             6c 20 6c 69 6e 6b 73 20 20 2a 29 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 6e   ┆l links  *)       begin       in┆
0x056ba0…056bc0             5f 69 64 65 6e 74 69 66 69 65 72 20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 29 3b 0a 20 20 20 20   ┆_identifier ( name_of_ext);     ┆
0x056bc0…056be0             20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 77 72 6b   ┆  readinteger ( in_obj_file, wrk┆
0x056be0…056c00             29 3b 0a 20 20 20 20 20 20 69 6e 5f 70 61 72 61 6d 73 20 28 20 77 72 6b 2c 20 6f 62 6a 5f 70 61   ┆);       in_params ( wrk, obj_pa┆
0x056c00…056c20 (23, 0, 5)  72 61 6d 73 2c 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 29 3b 0a 0a 20 20 20 20 20 20 69 66 20 77 61   ┆rams, name_of_ext);        if wa┆
0x056c20…056c40             6e 74 65 64 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20   ┆nted then         begin         ┆
0x056c40…056c60             6b 65 79 3a 3d 20 73 74 72 61 6c 66 61 20 28 20 6e 61 6d 65 5f 6f 66 5f 65 78 74 29 20 2b 20 27   ┆key:= stralfa ( name_of_ext) + '┆
0x056c60…056c80             20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0a 09 73 65 61 72 63 68 20 28 20 65 78 74 5f 69 74 65   ┆            ';  search ( ext_ite┆
0x056c80…056ca0             6d 2c 20 64 72 6e 2c 20 6b 65 79 2c 20 6f 62 6a 5f 70 61 72 61 6d 73 20 29 3b 0a 09 69 66 20 64   ┆m, drn, key, obj_params );  if d┆
0x056ca0…056cc0             65 62 75 67 63 61 74 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆ebugcat then  writeln ( output, ┆
0x056cc0…056ce0             27 73 65 61 72 63 68 20 65 78 74 3a 20 27 2c 20 6b 65 79 2c 20 27 2c 27 2c 20 64 72 6e 3a 34 2c   ┆'search ext: ', key, ',', drn:4,┆
0x056ce0…056d00             20 73 75 63 63 65 73 73 3a 38 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 75 63 63   ┆ success:8);         if not succ┆
0x056d00…056d20             65 73 73 20 74 68 65 6e 0a 09 20 20 69 6e 69 74 5f 69 74 65 6d 20 28 20 65 78 74 5f 69 74 65 6d   ┆ess then    init_item ( ext_item┆
0x056d20…056d40             2c 20 64 72 6e 2c 20 6b 65 79 2c 20 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 6d 61 70 5f   ┆, drn, key, false);         map_┆
0x056d40…056d60             61 64 64 72 20 3a 3d 20 65 78 74 5f 69 74 65 6d 2e 65 6e 74 72 79 5f 61 64 64 72 3b 0a 20 20 20   ┆addr := ext_item.entry_addr;    ┆
0x056d60…056d80             20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69   ┆     end;        readinteger ( i┆
0x056d80…056da0             6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 6e 6f 5f 6f 66 5f 75 73 65 73 29 3b 0a 20 20 20 20 20 20 69   ┆n_obj_file, no_of_uses);       i┆
0x056da0…056dc0             66 20 77 61 6e 74 65 64 20 61 6e 64 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 09 66 6f 72   ┆f wanted and last_scan then  for┆
0x056dc0…056de0             20 70 20 3a 3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f 75 73 65 73 20 64 6f 0a 20 20 20 20 20 20 20   ┆ p := 1 to no_of_uses do        ┆
0x056de0…056e00             20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 69 6e 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72   ┆ begin         in_addr ( to_addr┆
0x056e00…056e20 (23, 0, 6)  29 3b 0a 20 20 20 20 20 20 20 20 73 74 6f 72 65 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 2c   ┆);         store_addr ( to_addr,┆
0x056e20…056e40             20 6d 61 70 5f 61 64 64 72 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c   ┆ map_addr);         end       el┆
0x056e40…056e60             73 65 09 09 28 2a 20 20 73 6b 69 70 20 20 2a 29 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 09   ┆se  (*  skip  *)         begin  ┆
0x056e60…056e80             66 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 20 2b 20   ┆fpos:= filepos ( in_obj_file) + ┆
0x056e80…056ea0             6e 6f 5f 6f 66 5f 75 73 65 73 20 2a 20 73 69 7a 65 6f 66 20 28 20 61 64 64 72 65 73 73 29 3b 0a   ┆no_of_uses * sizeof ( address); ┆
0x056ea0…056ec0             20 20 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a   ┆        iocheck ( in_obj_file); ┆
0x056ec0…056ee0             09 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 66 70 6f 73 29 3b 0a 20 20 20 20   ┆ seek ( in_obj_file, fpos);     ┆
0x056ee0…056f00             20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 20 20 20 20   ┆    iocheck ( in_obj_file);     ┆
0x056f00…056f20             20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 65 6e 64 3b 20 28 2a 20 70 72 6f 63 65 73 73 20 65   ┆    end;       end; (* process e┆
0x056f20…056f40             78 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 0a 20 20 20 20 20 20 28 2a 20 70 72 6f 63 65   ┆xternal links *)        (* proce┆
0x056f40…056f60             73 73 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 20 6c 69 73 74 20 2a 29 0a 20 20 20   ┆ss the internal link list *)    ┆
0x056f60…056f80             20 20 20 72 65 61 64 69 6e 74 65 67 65 72 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 20 6e   ┆   readinteger ( in_obj_file,  n┆
0x056f80…056fa0             6f 5f 6f 66 5f 69 6e 74 20 29 3b 0a 20 20 20 20 20 20 20 69 66 20 77 61 6e 74 65 64 20 61 6e 64   ┆o_of_int );        if wanted and┆
0x056fa0…056fc0             20 6c 61 73 74 5f 73 63 61 6e 20 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 66 6f 72 20 70 20 3a   ┆ last_scan  then         for p :┆
0x056fc0…056fe0             3d 20 31 20 74 6f 20 6e 6f 5f 6f 66 5f 69 6e 74 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69   ┆= 1 to no_of_int do         begi┆
0x056fe0…057000             6e 0a 20 20 20 20 20 20 20 20 69 6e 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 29 3b 0a 20 20   ┆n         in_addr ( to_addr);   ┆
0x057000…057020 (23, 0, 7)  20 20 20 20 20 20 69 6e 5f 61 64 64 72 20 28 20 6d 61 70 5f 61 64 64 72 29 3b 0a 20 20 20 20 20   ┆      in_addr ( map_addr);      ┆
0x057020…057040             20 20 20 73 74 6f 72 65 5f 61 64 64 72 20 28 20 74 6f 5f 61 64 64 72 2c 20 6d 61 70 5f 61 64 64   ┆   store_addr ( to_addr, map_add┆
0x057040…057060             72 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 09 28 2a 20 73 6b   ┆r);         end       else (* sk┆
0x057060…057080             69 70 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 20 2a 29 0a 20 20 20 20 20 20 20   ┆ip the internal links *)        ┆
0x057080…0570a0             20 62 65 67 69 6e 0a 09 66 70 6f 73 3a 3d 20 66 69 6c 65 70 6f 73 20 28 20 69 6e 5f 6f 62 6a 5f   ┆ begin  fpos:= filepos ( in_obj_┆
0x0570a0…0570c0             66 69 6c 65 29 20 2b 20 6e 6f 5f 6f 66 5f 69 6e 74 20 2a 20 32 20 2a 20 73 69 7a 65 6f 66 20 28   ┆file) + no_of_int * 2 * sizeof (┆
0x0570c0…0570e0             20 61 64 64 72 65 73 73 29 3b 0a 20 20 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f   ┆ address);         iocheck ( in_┆
0x0570e0…057100             6f 62 6a 5f 66 69 6c 65 29 3b 0a 09 73 65 65 6b 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20   ┆obj_file);  seek ( in_obj_file, ┆
0x057100…057120             66 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 20 69 6f 63 68 65 63 6b 20 28 20 69 6e 5f 6f 62 6a 5f   ┆fpos);         iocheck ( in_obj_┆
0x057120…057140             66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 0a 20 20 20 20 20 20 69 66 20 77   ┆file);         end;         if w┆
0x057140…057160             61 6e 74 65 64 20 61 6e 64 20 6c 61 73 74 5f 73 63 61 6e 20 74 68 65 6e 0a 20 20 20 20 20 20 20   ┆anted and last_scan then        ┆
0x057160…057180             20 62 65 67 69 6e 0a 0a 0a 09 28 2a 20 70 75 74 20 62 6f 6f 74 2d 76 65 72 73 69 6f 6e 20 6e 75   ┆ begin    (* put boot-version nu┆
0x057180…0571a0             6d 62 65 72 20 69 6e 74 6f 20 63 6f 72 65 69 6d 61 67 65 20 28 32 29 20 69 66 20 63 6f 72 72 65   ┆mber into coreimage (2) if corre┆
0x0571a0…0571c0             63 74 20 63 6f 6d 70 69 6c 65 72 20 76 65 72 73 69 6f 6e 20 2a 29 0a 20 20 20 20 20 20 77 72 6b   ┆ct compiler version *)       wrk┆
0x0571c0…0571e0             3a 3d 20 73 77 61 70 20 28 20 63 6f 72 65 77 5e 5b 31 5d 29 3b 09 09 28 2a 20 20 20 73 65 74 20   ┆:= swap ( corew^[1]);  (*   set ┆
0x0571e0…057200             76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 66 6f 72 20 62 6f 6f 74 65 72 20 20 2a 29 0a 20 20   ┆version number for booter  *)   ┆
0x057200…057220 (23, 0, 8)  20 20 20 20 77 72 6b 3a 3d 20 62 6f 6f 74 65 72 5f 76 65 72 73 69 6f 6e 20 73 68 6c 20 31 31 20   ┆    wrk:= booter_version shl 11 ┆
0x057220…057240             2b 20 28 20 77 72 6b 20 61 6e 64 20 24 30 37 46 46 20 29 3b 0a 20 20 20 20 20 20 63 6f 72 65 77   ┆+ ( wrk and $07FF );       corew┆
0x057240…057260             5e 5b 31 5d 3a 3d 20 73 77 61 70 20 28 20 77 72 6b 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20   ┆^[1]:= swap ( wrk);          if ┆
0x057260…057280             64 65 62 75 67 34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20 27   ┆debug4 then  writeln ( output, '┆
0x057280…0572a0             20 62 65 66 6f 72 65 20 70 75 74 62 6c 6f 63 6b 20 20 27 2c 20 6f 63 74 65 74 73 2c 20 27 20 62   ┆ before putblock  ', octets, ' b┆
0x0572a0…0572c0             79 74 65 73 20 27 29 3b 0a 09 70 75 74 62 6c 6f 63 6b 20 28 20 6f 63 74 65 74 73 29 3b 0a 20 20   ┆ytes ');  putblock ( octets);   ┆
0x0572c0…0572e0             20 20 20 20 20 20 69 66 20 64 65 62 75 67 34 20 74 68 65 6e 20 20 77 72 69 74 65 6c 6e 20 28 20   ┆      if debug4 then  writeln ( ┆
0x0572e0…057300             6f 75 74 70 75 74 2c 20 27 20 61 66 74 65 72 20 20 70 75 74 62 6c 6f 63 6b 20 20 27 2c 20 6f 63   ┆output, ' after  putblock  ', oc┆
0x057300…057320             74 65 74 73 2c 20 27 20 62 79 74 65 73 20 27 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 70 72   ┆tets, ' bytes ');          if pr┆
0x057320…057340             69 6e 74 5f 63 6f 64 65 20 74 68 65 6e 0a 09 20 20 62 65 67 69 6e 0a 09 20 20 66 6f 72 20 70 20   ┆int_code then    begin    for p ┆
0x057340…057360             3a 3d 20 31 20 74 6f 20 63 6f 64 65 5f 77 6f 72 64 73 20 64 6f 0a 09 20 20 20 20 62 65 67 69 6e   ┆:= 1 to code_words do      begin┆
0x057360…057380             0a 09 20 20 20 20 20 20 69 66 20 28 70 20 6d 6f 64 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 29   ┆        if (p mod print_pr_line)┆
0x057380…0573a0             20 3d 20 31 20 74 68 65 6e 0a 09 09 62 65 67 69 6e 0a 09 09 6d 61 70 5f 69 6e 63 72 20 28 20 63   ┆ = 1 then   begin   map_incr ( c┆
0x0573a0…0573c0             6f 64 65 5f 61 64 64 72 2c 20 32 20 2a 20 70 20 2d 20 32 2c 20 6d 61 70 5f 61 64 64 72 29 3b 0a   ┆ode_addr, 2 * p - 2, map_addr); ┆
0x0573c0…0573e0             09 09 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 73 74 72 68 65 78 20 28 20 66 69 72 73 74   ┆  write ( output, strhex ( first┆
0x0573e0…057400             5f 6d 65 6d 5f 6e 6f 20 2b 20 6d 61 70 5f 61 64 64 72 2e 62 61 73 65 20 73 68 6c 20 31 29 2c 20   ┆_mem_no + map_addr.base shl 1), ┆
0x057400…057420 (23, 0, 9)  27 2e 27 2c 20 73 74 72 68 65 78 20 28 20 6d 61 70 5f 61 64 64 72 2e 64 69 73 70 29 2c 0a 09 09   ┆'.', strhex ( map_addr.disp),   ┆
0x057420…057440             20 27 20 27 2c 20 73 74 72 68 65 78 20 28 70 2a 32 20 2d 20 32 29 2c 20 27 3a 27 29 0a 09 09 65   ┆ ' ', strhex (p*2 - 2), ':')   e┆
0x057440…057460             6e 64 3b 0a 09 20 20 20 20 20 20 77 72 69 74 65 20 28 20 6f 75 74 70 75 74 2c 20 27 27 3a 32 2c   ┆nd;        write ( output, '':2,┆
0x057460…057480             20 73 74 72 68 65 78 20 28 0a 09 20 20 20 20 20 20 20 73 77 61 70 20 28 20 67 65 74 5f 62 79 74   ┆ strhex (         swap ( get_byt┆
0x057480…0574a0             65 20 28 20 63 6f 64 65 5f 61 64 64 72 2c 20 70 2d 31 20 29 20 2b 20 67 65 74 5f 62 79 74 65 20   ┆e ( code_addr, p-1 ) + get_byte ┆
0x0574a0…0574c0             28 20 63 6f 64 65 5f 61 64 64 72 2c 70 29 20 29 29 29 3b 0a 09 20 20 20 20 20 20 69 66 20 28 20   ┆( code_addr,p) )));        if ( ┆
0x0574c0…0574e0             70 20 6d 6f 64 20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 29 20 3d 20 30 20 74 68 65 6e 0a 09 09   ┆p mod print_pr_line) = 0 then   ┆
0x0574e0…057500             77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 09 20 20 20 20 20 20 65 6e 64 3b 20 20   ┆writeln ( output);        end;  ┆
0x057500…057520             20 28 2a 20 20 66 6f 72 20 20 70 20 20 2a 29 0a 0a 09 20 20 20 20 69 66 20 28 20 70 20 6d 6f 64   ┆ (*  for  p  *)       if ( p mod┆
0x057520…057540             20 70 72 69 6e 74 5f 70 72 5f 6c 69 6e 65 29 20 3c 3e 20 30 20 74 68 65 6e 20 20 77 72 69 74 65   ┆ print_pr_line) <> 0 then  write┆
0x057540…057560             6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 09 20 20 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74   ┆ln ( output);      writeln ( out┆
0x057560…057580             70 75 74 29 0a 09 20 20 20 20 65 6e 64 3b 20 20 28 2a 20 20 69 66 20 70 72 69 6e 74 20 63 6f 64   ┆put)      end;  (*  if print cod┆
0x057580…0575a0             65 20 20 2a 29 0a 0a 0a 09 20 65 6e 64 3b 20 28 2a 20 6f 75 74 70 75 74 20 65 74 63 20 2a 29 0a   ┆e  *)     end; (* output etc *) ┆
0x0575a0…0575c0             20 20 20 20 0a 20 20 20 20 69 66 20 6c 6f 61 64 65 72 6d 61 70 5f 65 72 72 20 74 68 65 6e 20 68   ┆         if loadermap_err then h┆
0x0575c0…0575e0             61 6c 74 20 28 20 31 29 3b 09 28 2a 20 20 73 65 74 20 65 72 72 6f 72 6c 65 76 65 6c 20 31 20 20   ┆alt ( 1); (*  set errorlevel 1  ┆
0x0575e0…057600             2a 29 0a 20 20 20 20 72 65 61 64 68 65 61 64 20 28 20 69 6e 5f 6f 62 6a 5f 66 69 6c 65 2c 20 68   ┆*)     readhead ( in_obj_file, h┆
0x057600…057620 (23, 0, 10) 65 61 64 29 3b 0a 0a 20 20 20 20 65 6e 64 3b 20 28 2a 20 77 68 69 6c 65 20 64 65 73 63 72 2d 6c   ┆ead);      end; (* while descr-l┆
0x057620…057640             65 6e 67 74 68 20 3e 20 30 20 2a 29 0a 0a 0a 20 20 63 6c 6f 73 65 5f 66 69 6c 65 20 28 20 69 6e   ┆ength > 0 *)     close_file ( in┆
0x057640…057660             5f 6f 62 6a 5f 66 69 6c 65 29 3b 0a 0a 20 20 69 66 20 6e 6f 74 20 61 66 74 65 72 5f 6c 69 62 20   ┆_obj_file);    if not after_lib ┆
0x057660…057680             74 68 65 6e 20 20 73 74 61 72 74 5f 61 64 64 72 20 3a 3d 20 74 6f 70 5f 6f 66 5f 62 69 6e 3b 0a   ┆then  start_addr := top_of_bin; ┆
0x057680…0576a0             0a 20 20 65 6e 64 3b 20 20 28 2a 20 20 72 65 61 64 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 20 2a   ┆   end;  (*  read object file  *┆
0x0576a0…0576c0             29 0a 0a 20 20 65 6e 64 20 20 28 2a 20 20 69 66 20 73 6f 75 72 63 65 20 66 69 6c 65 20 20 2a 29   ┆)    end  (*  if source file  *)┆
0x0576c0…0576e0             0a 0a 20 20 65 6e 64 20 20 28 2a 20 20 77 68 69 6c 65 20 20 70 61 72 61 6d 5f 69 6e 64 65 78 20   ┆    end  (*  while  param_index ┆
0x0576e0…057700             3c 20 69 74 65 6d 73 20 20 2e 2e 2e 2e 2e 2e 20 20 2a 29 3b 0a 0a 20 75 6e 74 69 6c 20 6c 61 73   ┆< items  ......  *);   until las┆
0x057700…057720             74 5f 73 63 61 6e 3b 0a 0a 0a 28 2a 20 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74   ┆t_scan;   (*  the parameter list┆
0x057720…057740             20 69 73 20 65 78 68 61 75 73 74 65 64 2e 20 20 20 2a 29 0a 0a 0a 28 2a 20 20 74 65 72 6d 69 6e   ┆ is exhausted.   *)   (*  termin┆
0x057740…057760             61 74 65 20 74 68 65 20 6d 6f 64 75 6c 65 73 20 3a 20 20 2a 29 0a 0a 20 20 6f 75 74 5f 65 6e 64   ┆ate the modules :  *)    out_end┆
0x057760…057780             3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 6c 61 73 74 20 63 68 65   ┆;                   (*  last che┆
0x057780…0577a0             63 6b 73 75 6d 73 20 20 2a 29 0a 20 20 63 6c 6f 73 65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a   ┆cksums  *)   closefile ( datf); ┆
0x0577a0…0577c0             20 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 3b 0a 20 20 64 61 74 61 62 61 73 65   ┆  closeindex ( inxf);   database┆
0x0577c0…0577e0             5f 6f 70 65 6e 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 65 72 61 73 65 20 28 20 64 61 74 66 2e 66 29   ┆_open:= false;   erase ( datf.f)┆
0x0577e0…057800             3b 0a 20 20 65 72 61 73 65 20 28 20 69 6e 78 66 2e 64 2e 66 29 3b 0a 0a 69 66 20 74 72 75 65 7b   ┆;   erase ( inxf.d.f);  if true{┆
0x057800…057820 (23, 0, 11) 64 65 62 75 67 63 61 74 7d 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 77 72 69 74 65 6c 6e   ┆debugcat} then   begin   writeln┆
0x057820…057840             20 28 20 6f 75 74 70 75 74 29 3b 0a 20 20 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 2c 20   ┆ ( output);   writeln ( output, ┆
0x057840…057860             27 27 3a 6d 61 72 67 69 6e 2c 20 27 20 20 20 6e 6f 20 6f 66 20 65 78 74 65 72 6e 61 6c 73 20 20   ┆'':margin, '   no of externals  ┆
0x057860…057880             20 3a 20 27 2c 20 6c 61 73 74 5f 65 78 74 65 72 6e 61 6c 29 3b 0a 20 20 65 6e 64 3b 0a 0a 0a 77   ┆ : ', last_external);   end;   w┆
0x057880…0578a0             72 69 74 65 6c 6e 20 28 20 6f 75 74 70 75 74 29 3b 0a 77 72 69 74 65 6c 6e 20 28 20 6f 75 74 70   ┆riteln ( output); writeln ( outp┆
0x0578a0…0578c0             75 74 2c 20 27 2d 2d 20 20 20 65 6e 64 20 6f 66 20 6a 6f 62 2e 27 29 3b 0a 77 72 69 74 65 6c 6e   ┆ut, '--   end of job.'); writeln┆
0x0578c0…0578e0             20 28 20 6f 75 74 70 75 74 29 3b 0a 68 61 6c 74 20 28 20 6d 79 5f 65 78 63 6f 64 65 29 3b 0a 65   ┆ ( output); halt ( my_excode); e┆
0x0578e0…057900             6e 64 20 2e 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 65 6e 64 20   ┆nd . (*-------------------- end ┆
0x057900…057920             6f 66 20 43 72 6f 73 6c 69 6e 6b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆of Croslink --------------------┆
0x057920…057940             2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 0c 0a 20 20 20 2a 29 0a 0a 0a 28 2a 20 20 74 65 72 6d 69 6e   ┆---------*)      *)   (*  termin┆
0x057940…057960             61 74 65 20 74 68 65 20 6d 6f 64 75 6c 65 73 20 3a 20 20 2a 29 0a 0a 20 20 6f 75 74 5f 65 6e 64   ┆ate the modules :  *)    out_end┆
0x057960…057980             3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 6c 61 73 74 20 63 68 65   ┆;                   (*  last che┆
0x057980…0579a0             63 6b 73 75 6d 73 20 20 2a 29 0a 20 20 63 6c 6f 73 65 66 69 6c 65 20 28 20 64 61 74 66 29 3b 0a   ┆cksums  *)   closefile ( datf); ┆
0x0579a0…0579c0             20 20 63 6c 6f 73 65 69 6e 64 65 78 20 28 20 69 6e 78 66 29 3b 0a 20 20 64 61 74 61 62 61 73 65   ┆  closeindex ( inxf);   database┆
0x0579c0…0579e0             5f 6f 70 65 6e 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 65 72 61 73 65 20 28 20 64 61 74 66 2e 66 29   ┆_open:= false;   erase ( datf.f)┆
0x0579e0…057a00             3b 0a 20 20 65 72 61 73 65 20 28 20 69 6e 78 66 2e 64 2e 66 29 3b 0a 0a 69 66 20 74 72 75 65 7b   ┆;   erase ( inxf.d.f);  if true{┆
0x057a00…057a20 (23, 0, 12) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 65 6e 76 2f 72 74 70 33 35 30 32 32 2e 65 6e 76 00 00   ┆../sw2103/src/env/rtp35022.env  ┆
0x057a20…057a40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x057a60…057a80             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x057a80…057aa0             20 20 32 30 36 36 37 20 20 35 31 37 33 30 30 34 37 34 30 20 20 31 30 36 33 33 00 20 00 00 00 00   ┆  20667  5173004740  10633      ┆
0x057aa0…057ac0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x057c00…057c20 (23, 0, 13) 72 74 70 33 35 30 32 32 65 6e 76 3b 0d 0a 24 53 45 54 20 66 6c 6e 3d 31 0d 0a 63 6f 6e 73 74 0d   ┆rtp35022env;  $SET fln=1  const ┆
0x057c20…057c40             0a 61 6c 66 61 6c 65 6e 67 74 68 3d 31 32 3b 0d 0a 6d 61 78 69 6e 74 3d 33 32 37 36 37 3b 0d 0a   ┆ alfalength=12;  maxint=32767;  ┆
0x057c40…057c60             6d 69 6e 69 6e 74 3d 2d 33 32 37 36 38 3b 0d 0a 62 72 65 61 6b 5f 62 79 5f 66 61 74 68 65 72 3d   ┆minint=-32768;  break_by_father=┆
0x057c60…057c80             34 37 3b 0d 0a 6d 61 78 70 72 69 6f 72 69 74 79 3d 30 3b 0d 0a 6d 69 6e 70 72 69 6f 72 69 74 79   ┆47;  maxpriority=0;  minpriority┆
0x057c80…057ca0             3d 2d 32 3b 0d 0a 73 74 64 70 72 69 6f 72 69 74 79 3d 6d 69 6e 70 72 69 6f 72 69 74 79 3b 0d 0a   ┆=-2;  stdpriority=minpriority;  ┆
0x057ca0…057cc0             74 79 70 65 0d 0a 62 69 74 3d 30 2e 2e 31 3b 0d 0a 62 79 74 65 3d 30 2e 2e 32 35 35 3b 0d 0a 64   ┆type  bit=0..1;  byte=0..255;  d┆
0x057cc0…057ce0             6f 75 62 6c 65 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6d 73 70 2c 6c 73 70 3a 69 6e 74 65 67 65 72 3b   ┆ouble=  record  msp,lsp:integer;┆
0x057ce0…057d00             0d 0a 65 6e 64 3b 0d 0a 6d 65 6d 6e 6f 5f 74 79 70 65 3d 30 2e 2e 36 33 3b 0d 0a 61 63 74 69 76   ┆  end;  memno_type=0..63;  activ┆
0x057d00…057d20             61 74 69 6f 6e 3d 28 61 5f 69 6e 74 65 72 72 75 70 74 2c 61 5f 73 65 6d 61 70 68 6f 72 65 2c 61   ┆ation=(a_interrupt,a_semaphore,a┆
0x057d20…057d40             5f 64 65 6c 61 79 29 3b 0d 0a 62 61 73 65 5f 74 79 70 65 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f   ┆_delay);  base_type=packed  reco┆
0x057d40…057d60             72 64 0d 0a 6f 6e 65 62 69 74 3a 62 69 74 3b 0d 0a 6d 65 6d 5f 6e 6f 3a 6d 65 6d 6e 6f 5f 74 79   ┆rd  onebit:bit;  mem_no:memno_ty┆
0x057d60…057d80             70 65 3b 0d 0a 6e 69 6c 62 69 74 3a 62 69 74 0d 0a 65 6e 64 3b 0d 0a 61 64 72 3d 0d 0a 72 65 63   ┆pe;  nilbit:bit  end;  adr=  rec┆
0x057d80…057da0             6f 72 64 0d 0a 62 61 73 65 3a 62 61 73 65 5f 74 79 70 65 3b 0d 0a 64 69 73 70 3a 69 6e 74 65 67   ┆ord  base:base_type;  disp:integ┆
0x057da0…057dc0             65 72 0d 0a 65 6e 64 3b 0d 0a 61 64 64 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e 75 6c 62 79 74 65   ┆er  end;  addr=  record  nulbyte┆
0x057dc0…057de0             3a 62 79 74 65 3b 0d 0a 62 61 73 65 3a 62 61 73 65 5f 74 79 70 65 3b 0d 0a 64 69 73 70 3a 69 6e   ┆:byte;  base:base_type;  disp:in┆
0x057de0…057e00             74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 62 6f 6f 6c 65 61 6e 3d 28 66 61 6c 73 65 2c 74 72 75   ┆teger;  end;  boolean=(false,tru┆
0x057e00…057e20 (23, 0, 14) 65 29 3b 0d 0a 63 68 61 72 3d 0d 0a 28 0d 0a 6e 75 6c 2c 73 6f 68 2c 73 74 78 2c 65 74 78 2c 65   ┆e);  char=  (  nul,soh,stx,etx,e┆
0x057e20…057e40             6f 74 2c 65 6e 71 2c 61 63 6b 2c 62 65 6c 2c 62 73 2c 68 74 2c 0d 0a 6e 6c 2c 76 74 2c 66 66 2c   ┆ot,enq,ack,bel,bs,ht,  nl,vt,ff,┆
0x057e40…057e60             63 72 2c 73 6f 2c 73 69 2c 64 6c 65 2c 64 63 31 2c 64 63 32 2c 64 63 33 2c 0d 0a 64 63 34 2c 6e   ┆cr,so,si,dle,dc1,dc2,dc3,  dc4,n┆
0x057e60…057e80             61 6b 2c 73 79 6e 2c 65 74 62 2c 63 61 6e 2c 65 6d 2c 73 75 62 2c 65 73 63 2c 66 73 2c 67 73 2c   ┆ak,syn,etb,can,em,sub,esc,fs,gs,┆
0x057e80…057ea0             0d 0a 72 73 2c 75 73 2c 73 70 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f   ┆  rs,us,sp,?,?,?,?,?,?,?,  ?,?,?┆
0x057ea0…057ec0             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆,?,?,?,?,?,?,?,  ?,?,?,?,?,?,?,?┆
0x057ec0…057ee0             2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f   ┆,?,?,  ?,?,?,?,?,?,?,?,?,?,  ?,?┆
0x057ee0…057f00             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆,?,?,?,?,?,?,?,?,  ?,?,?,?,?,?,?┆
0x057f00…057f20             2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f   ┆,?,?,?,  ?,?,?,?,?,?,?,?,?,?,  ?┆
0x057f20…057f40             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆,?,?,?,?,?,?,?,?,?,  ?,?,?,?,?,?┆
0x057f40…057f60             2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 64 65 6c 29 3b 0d 0a   ┆,?,?,?,?,  ?,?,?,?,?,?,?,del);  ┆
0x057f60…057f80             61 6c 66 61 3d 61 72 72 61 79 28 31 2e 2e 61 6c 66 61 6c 65 6e 67 74 68 29 6f 66 20 63 68 61 72   ┆alfa=array(1..alfalength)of char┆
0x057f80…057fa0             3b 0d 0a 63 6f 64 65 64 5f 64 61 74 65 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f 72 64 0d 0a 79 65   ┆;  coded_date=packed  record  ye┆
0x057fa0…057fc0             61 72 5f 61 66 74 65 72 5f 31 39 30 30 3a 30 2e 2e 31 32 37 3b 0d 0a 6d 6f 6e 74 68 3a 30 2e 2e   ┆ar_after_1900:0..127;  month:0..┆
0x057fc0…057fe0             31 32 3b 0d 0a 64 61 79 3a 30 2e 2e 33 31 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 64 65 64 5f 74 69 6d   ┆12;  day:0..31;  end;  coded_tim┆
0x057fe0…058000             65 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f 72 64 0d 0a 63 6f 6d 70 69 6c 65 72 5f 76 65 72 73 69   ┆e=packed  record  compiler_versi┆
0x058000…058020 (23, 0, 15) 6f 6e 3a 30 2e 2e 33 31 3b 0d 0a 68 6f 75 72 3a 30 2e 2e 32 33 3b 0d 0a 6d 69 6e 75 74 65 3a 30   ┆on:0..31;  hour:0..23;  minute:0┆
0x058020…058040             2e 2e 35 39 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 64 65 64 5f 73 65 63 73 3d 70 61 63 6b 65 64 0d 0a   ┆..59;  end;  coded_secs=packed  ┆
0x058040…058060             72 65 63 6f 72 64 0d 0a 73 65 63 3a 30 2e 2e 35 39 3b 0d 0a 6d 73 65 63 3a 30 2e 2e 39 39 39 3b   ┆record  sec:0..59;  msec:0..999;┆
0x058060…058080             0d 0a 65 6e 64 3b 0d 0a 63 6f 64 65 64 5f 69 6e 63 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f 72 64   ┆  end;  coded_inc=packed  record┆
0x058080…0580a0             0d 0a 64 61 79 73 3a 30 2e 2e 33 31 3b 0d 0a 68 6f 75 72 73 3a 30 2e 2e 32 33 3b 0d 0a 6d 69 6e   ┆  days:0..31;  hours:0..23;  min┆
0x0580a0…0580c0             73 3a 30 2e 2e 35 39 3b 0d 0a 73 65 63 73 3a 30 2e 2e 35 39 3b 0d 0a 6d 73 65 63 73 3a 30 2e 2e   ┆s:0..59;  secs:0..59;  msecs:0..┆
0x0580c0…0580e0             39 39 39 3b 0d 0a 65 6e 64 3b 0d 0a 64 65 6c 61 79 74 79 70 65 3d 0d 0a 72 65 63 6f 72 64 0d 0a   ┆999;  end;  delaytype=  record  ┆
0x0580e0…058100             70 72 65 76 5f 64 61 74 65 3a 63 6f 64 65 64 5f 64 61 74 65 3b 0d 0a 70 72 65 76 5f 74 69 6d 65   ┆prev_date:coded_date;  prev_time┆
0x058100…058120             3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 70 72 65 76 5f 73 65 63 73 3a 63 6f 64 65 64 5f 73 65   ┆:coded_time;  prev_secs:coded_se┆
0x058120…058140             63 73 3b 0d 0a 69 6e 63 3a 63 6f 64 65 64 5f 69 6e 63 3b 0d 0a 65 6e 64 3b 0d 0a 63 6c 6f 63 6b   ┆cs;  inc:coded_inc;  end;  clock┆
0x058140…058160             74 79 70 65 3d 0d 0a 72 65 63 6f 72 64 0d 0a 64 61 74 65 3a 63 6f 64 65 64 5f 64 61 74 65 3b 0d   ┆type=  record  date:coded_date; ┆
0x058160…058180             0a 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 73 65 63 73 3a 63 6f 64 65 64 5f 73 65   ┆ time:coded_time;  secs:coded_se┆
0x058180…0581a0             63 73 3b 0d 0a 65 6e 64 3b 0d 0a 73 65 6d 61 70 68 6f 72 65 3d 0d 0a 72 65 63 6f 72 64 0d 0a 3f   ┆cs;  end;  semaphore=  record  ?┆
0x0581a0…0581c0             3a 61 64 64 72 3b 0d 0a 3f 3a 5e 73 65 6d 61 70 68 6f 72 65 0d 0a 65 6e 64 3b 0d 0a 6d 65 73 73   ┆:addr;  ?:^semaphore  end;  mess┆
0x0581c0…0581e0             61 67 65 5f 68 65 61 64 65 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 3f 3a 62 79 74 65 3b 0d 0a 3f 3a   ┆age_header=  record  ?:byte;  ?:┆
0x0581e0…058200             5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 75 31 2c 75 32 2c 75 33 2c 75 34 3a 62 79   ┆^message_header;  u1,u2,u3,u4:by┆
0x058200…058220 (23, 1, 1)  74 65 3b 0d 0a 6d 65 73 73 61 67 65 6b 69 6e 64 3a 21 69 6e 74 65 67 65 72 3b 0d 0a 73 69 7a 65   ┆te;  messagekind:!integer;  size┆
0x058220…058240             3a 21 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a 61 64 64 72 3b 0d 0a 3f 3a 5e 73 65 6d 61 70 68 6f 72   ┆:!integer;  ?:addr;  ?:^semaphor┆
0x058240…058260             65 3b 0d 0a 3f 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 3f 3a 5e 6d 65 73 73 61 67 65 5f 68 65   ┆e;  ?:^semaphore;  ?:^message_he┆
0x058260…058280             61 64 65 72 3b 0d 0a 3f 3a 5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 3f 3a 62 79 74   ┆ader;  ?:^message_header;  ?:byt┆
0x058280…0582a0             65 3b 0d 0a 3f 3a 62 79 74 65 3b 0d 0a 3f 3a 62 79 74 65 3b 0d 0a 3f 3a 62 79 74 65 3b 0d 0a 65   ┆e;  ?:byte;  ?:byte;  ?:byte;  e┆
0x0582a0…0582c0             6e 64 3b 0d 0a 72 65 66 65 72 65 6e 63 65 3d 5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d   ┆nd;  reference=^message_header; ┆
0x0582c0…0582e0             0a 73 68 61 64 6f 77 3d 0d 0a 72 65 63 6f 72 64 0d 0a 3f 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 3f   ┆ shadow=  record  ?:^niltype;  ?┆
0x0582e0…058300             3a 5e 73 68 61 64 6f 77 3b 0d 0a 65 6e 64 3b 0d 0a 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70   ┆:^shadow;  end;  process_descrip┆
0x058300…058320             74 6f 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 3f 3a 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a 5e 6e 69 6c   ┆tor=  record  ?:integer;  ?:^nil┆
0x058320…058340             74 79 70 65 3b 0d 0a 3f 3a 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a   ┆type;  ?:integer;  ?:^niltype;  ┆
0x058340…058360             3f 3a 61 6c 66 61 3b 0d 0a 3f 3a 5e 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f 72 3b 0d   ┆?:alfa;  ?:^process_descriptor; ┆
0x058360…058380             0a 65 6e 64 3b 0d 0a 70 72 6f 63 65 73 73 72 65 63 3d 0d 0a 72 65 63 6f 72 64 0d 0a 70 72 6f 63   ┆ end;  processrec=  record  proc┆
0x058380…0583a0             65 73 73 72 65 66 3a 5e 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f 72 3b 0d 0a 3f 3a 5e   ┆essref:^process_descriptor;  ?:^┆
0x0583a0…0583c0             6e 69 6c 74 79 70 65 3b 0d 0a 3f 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 61 64 61 6d   ┆niltype;  ?:integer;  end;  adam┆
0x0583c0…0583e0             73 65 6d 74 79 70 65 3d 28 61 64 61 6d 73 65 6d 2c 6f 70 65 72 61 74 6f 72 73 65 6d 2c 6c 6f 61   ┆semtype=(adamsem,operatorsem,loa┆
0x0583e0…058400             64 65 72 73 65 6d 2c 67 6c 6f 62 61 6c 73 65 6d 2c 6c 6f 61 64 64 72 69 76 65 72 73 65 6d 2c 70   ┆dersem,globalsem,loaddriversem,p┆
0x058400…058420 (23, 1, 2)  61 78 73 65 6d 2c 72 65 73 74 61 72 74 73 65 6d 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆axsem,restartsem,?,  ?,?,?,?,?,?┆
0x058420…058440             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?┆
0x058440…058460             2c 3f 2c 3f 29 3b 0d 0a 61 64 61 6d 76 65 63 74 6f 72 3d 61 72 72 61 79 28 61 64 61 6d 73 65 6d   ┆,?,?);  adamvector=array(adamsem┆
0x058460…058480             74 79 70 65 29 6f 66 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 73 79 73 74 65 6d 5f 76 65 63 74 6f   ┆type)of^semaphore;  system_vecto┆
0x058480…0584a0             72 3d 21 61 64 61 6d 76 65 63 74 6f 72 3b 0d 0a 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63   ┆r=!adamvector;  incarnation_desc┆
0x0584a0…0584c0             72 69 70 74 6f 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 74 69 6d 65 72 3a 69 6e 74 65 67 65 72 3b 0d   ┆riptor=  record  timer:integer; ┆
0x0584c0…0584e0             0a 3f 3a 62 79 74 65 3b 0d 0a 3f 3a 5e 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70   ┆ ?:byte;  ?:^incarnation_descrip┆
0x0584e0…058500             74 6f 72 3b 0d 0a 3f 3a 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a 61 64 64 72 3b 0d 0a 3f 3a 61 64 64   ┆tor;  ?:integer;  ?:addr;  ?:add┆
0x058500…058520             72 3b 0d 0a 3f 3a 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a 69 6e   ┆r;  ?:integer;  ?:integer;  ?:in┆
0x058520…058540             74 65 67 65 72 3b 0d 0a 3f 3a 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a 5e 70 72 6f 63 65 73 73 5f 64   ┆teger;  ?:integer;  ?:^process_d┆
0x058540…058560             65 73 63 72 69 70 74 6f 72 3b 0d 0a 3f 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 3f 3a 5e 72 65   ┆escriptor;  ?:^semaphore;  ?:^re┆
0x058560…058580             66 65 72 65 6e 63 65 3b 0d 0a 3f 3a 5e 73 68 61 64 6f 77 3b 0d 0a 3f 3a 5e 6d 65 73 73 61 67 65   ┆ference;  ?:^shadow;  ?:^message┆
0x058580…0585a0             5f 68 65 61 64 65 72 3b 0d 0a 3f 3a 5e 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f 72 3b   ┆_header;  ?:^process_descriptor;┆
0x0585a0…0585c0             0d 0a 3f 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 3f 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 3f 3a 72   ┆  ?:semaphore;  ?:^niltype;  ?:r┆
0x0585c0…0585e0             65 66 65 72 65 6e 63 65 3b 0d 0a 3f 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 69 6e 63 6e 61 6d 65 3a   ┆eference;  ?:^niltype;  incname:┆
0x0585e0…058600             61 6c 66 61 3b 0d 0a 3f 3a 5e 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72   ┆alfa;  ?:^incarnation_descriptor┆
0x058600…058620 (23, 1, 3)  3b 0d 0a 3f 3a 5e 73 68 61 64 6f 77 3b 0d 0a 65 6e 64 3b 0d 0a 6c 6f 6f 6b 75 70 5f 64 65 73 63   ┆;  ?:^shadow;  end;  lookup_desc┆
0x058620…058640             72 69 70 74 6f 72 5f 73 65 67 6d 65 6e 74 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e 61 6d 65 3a 61 6c   ┆riptor_segment=  record  name:al┆
0x058640…058660             66 61 3b 0d 0a 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 2c 0d 0a 6e 6f 5f 6f 66 5f 70   ┆fa;  descriptor_length,  no_of_p┆
0x058660…058680             61 67 65 73 2c 0d 0a 70 61 67 65 73 69 7a 65 2c 0d 0a 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67   ┆ages,  pagesize,  last_page_leng┆
0x058680…0586a0             74 68 2c 0d 0a 6b 69 6e 64 3a 69 6e 74 65 67 65 72 3b 0d 0a 64 65 66 61 75 6c 74 5f 61 70 70 65   ┆th,  kind:integer;  default_appe┆
0x0586a0…0586c0             74 69 74 65 2c 0d 0a 6c 61 73 74 5f 70 61 72 61 6d 5f 6f 66 66 73 65 74 2c 0d 0a 6e 6f 5f 6f 66   ┆tite,  last_param_offset,  no_of┆
0x0586c0…0586e0             5f 70 61 72 61 6d 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 64 61 74 65 3a 63 6f 64 65 64 5f 64 61 74   ┆_params:integer;  date:coded_dat┆
0x0586e0…058700             65 3b 0d 0a 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 73 6f 75 72 63 65 5f 64 61 74   ┆e;  time:coded_time;  source_dat┆
0x058700…058720             65 3a 63 6f 64 65 64 5f 64 61 74 65 3b 0d 0a 73 6f 75 72 63 65 5f 74 69 6d 65 3a 63 6f 64 65 64   ┆e:coded_date;  source_time:coded┆
0x058720…058740             5f 74 69 6d 65 3b 0d 0a 76 65 72 73 69 6f 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a   ┆_time;  version:integer;  end;  ┆
0x058740…058760             76 61 72 0d 0a 6f 77 6e 3a 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72 3b   ┆var  own:incarnation_descriptor;┆
0x058760…058780             0d 0a 66 75 6e 63 74 69 6f 6e 20 61 62 73 28 78 3a 6e 69 6c 74 79 70 65 29 3a 6e 69 6c 74 79 70   ┆  function abs(x:niltype):niltyp┆
0x058780…0587a0             65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 61 6c 6c 6f 63 28 76 61 72   ┆e;external;  procedure alloc(var┆
0x0587a0…0587c0             20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 70 3a 70 6f 6f 6c 20 30 3b 0d 0a 76 61 72 20   ┆ r:reference;var p:pool 0;  var ┆
0x0587c0…0587e0             73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆s:semaphore);external;  function┆
0x0587e0…058800             20 61 6c 6c 6f 63 64 65 6c 61 79 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20   ┆ allocdelay(var r:reference;var ┆
0x058800…058820 (23, 1, 4)  70 3a 70 6f 6f 6c 20 30 3b 0d 0a 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 6d 73 65 63 73   ┆p:pool 0;  var s:semaphore;msecs┆
0x058820…058840             3a 69 6e 74 65 67 65 72 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b   ┆:integer):activation;  external;┆
0x058840…058860             0d 0a 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 6f 63 70 6f 6f 6c 28 76 61 72 20 70 3a 70 6f 6f 6c 20   ┆  function allocpool(var p:pool ┆
0x058860…058880             30 3b 0d 0a 6e 75 6d 62 65 72 2c 62 79 74 65 73 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65   ┆0;  number,bytes:integer):intege┆
0x058880…0588a0             72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 62 72 65 61 6b 28 76 61 72   ┆r;external;  procedure break(var┆
0x0588a0…0588c0             20 73 68 3a 73 68 61 64 6f 77 3b 65 78 63 6f 64 65 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72   ┆ sh:shadow;excode:integer);exter┆
0x0588c0…0588e0             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 75 66 63 6f 75 6e 74 28 76 61 72 20 72 3a 72 65   ┆nal;  function bufcount(var r:re┆
0x0588e0…058900             66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63   ┆ference):integer;external;  func┆
0x058900…058920             74 69 6f 6e 20 62 75 66 73 69 7a 65 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e   ┆tion bufsize(var r:reference):in┆
0x058920…058940             74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 79 74 65 63 6f   ┆teger;external;  function byteco┆
0x058940…058960             75 6e 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74   ┆unt(var r:reference):integer;ext┆
0x058960…058980             65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 68 72 28 69 6e 74 3a 30 2e 2e 31 32 37 29   ┆ernal;  function chr(int:0..127)┆
0x058980…0589a0             3a 63 68 61 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 63 6b 5f   ┆:char;external;  function clock_┆
0x0589a0…0589c0             69 6e 63 72 65 6d 65 6e 74 28 74 3a 63 6c 6f 63 6b 74 79 70 65 3b 69 6e 63 3a 63 6f 64 65 64 5f   ┆increment(t:clocktype;inc:coded_┆
0x0589c0…0589e0             69 6e 63 29 3a 63 6c 6f 63 6b 74 79 70 65 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63   ┆inc):clocktype;  external;  func┆
0x0589e0…058a00             74 69 6f 6e 20 63 6c 6f 63 6b 5f 6c 65 73 73 5f 74 68 61 6e 28 74 31 2c 74 32 3a 63 6c 6f 63 6b   ┆tion clock_less_than(t1,t2:clock┆
0x058a00…058a20 (23, 1, 5)  74 79 70 65 29 3a 62 6f 6f 6c 65 61 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74   ┆type):boolean;  external;  funct┆
0x058a20…058a40             69 6f 6e 20 63 6c 6f 63 6b 5f 64 69 66 66 65 72 65 6e 63 65 28 74 31 2c 74 32 3a 63 6c 6f 63 6b   ┆ion clock_difference(t1,t2:clock┆
0x058a40…058a60             74 79 70 65 29 3a 63 6f 64 65 64 5f 69 6e 63 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e   ┆type):coded_inc;  external;  fun┆
0x058a60…058a80             63 74 69 6f 6e 20 63 72 63 31 36 28 6f 70 31 2c 6f 70 32 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74   ┆ction crc16(op1,op2:integer):int┆
0x058a80…058aa0             65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28   ┆eger;external;  function create(┆
0x058aa0…058ac0             69 6e 63 61 72 6e 61 74 69 6f 6e 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 70 72 6f 63 65 73 3a 70 72   ┆incarnationname:alfa;  proces:pr┆
0x058ac0…058ae0             6f 63 65 73 73 72 65 63 3b 0d 0a 76 61 72 20 73 68 3a 73 68 61 64 6f 77 3b 0d 0a 73 74 6f 72 61   ┆ocessrec;  var sh:shadow;  stora┆
0x058ae0…058b00             67 65 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d   ┆ge:integer):integer;  external; ┆
0x058b00…058b20             0a 70 72 6f 63 65 64 75 72 65 20 64 65 66 69 6e 65 74 69 6d 65 72 28 6f 6e 6f 66 66 3a 62 6f 6f   ┆ procedure definetimer(onoff:boo┆
0x058b20…058b40             6c 65 61 6e 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 64 65 6c 65 74 65   ┆lean);external;  function delete┆
0x058b40…058b60             5f 73 65 6d 61 70 68 6f 72 65 28 76 61 72 20 73 5f 6e 61 6d 65 3a 21 61 6c 66 61 29 3a 69 6e 74   ┆_semaphore(var s_name:!alfa):int┆
0x058b60…058b80             65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 65 6d 70 74 79   ┆eger;  external;  function empty┆
0x058b80…058ba0             28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e   ┆(var r:reference):boolean;extern┆
0x058ba0…058bc0             61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 65 6f 69 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e   ┆al;  function eoi:boolean;extern┆
0x058bc0…058be0             61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 65 78 63 65 70 74 69 6f 6e 28 65 78 63 6f 64 65 3a   ┆al;  procedure exception(excode:┆
0x058be0…058c00             69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 69 72   ┆integer);external;  function fir┆
0x058c00…058c20 (23, 1, 6)  73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65   ┆st(var r:reference):integer;exte┆
0x058c20…058c40             72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 63 6c 6f 63 6b 3a 63 6c 6f 63 6b 74 79   ┆rnal;  function getclock:clockty┆
0x058c40…058c60             70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 62 79 74 65 62 6c   ┆pe;external;  procedure inbytebl┆
0x058c60…058c80             6f 63 6b 0d 0a 28 76 61 72 20 6e 65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c   ┆ock  (var next:integer;  first,l┆
0x058c80…058ca0             61 73 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29   ┆ast:integer;  var msg:reference)┆
0x058ca0…058cc0             3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 77 6f 72 64 62 6c   ┆;  external;  procedure inwordbl┆
0x058cc0…058ce0             6f 63 6b 0d 0a 28 76 61 72 20 6e 65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c   ┆ock  (var next:integer;  first,l┆
0x058ce0…058d00             61 73 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29   ┆ast:integer;  var msg:reference)┆
0x058d00…058d20             3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 28 76 61 72 20   ┆;  external;  function last(var ┆
0x058d20…058d40             72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆r:reference):integer;external;  ┆
0x058d40…058d60             66 75 6e 63 74 69 6f 6e 20 6c 69 6e 6b 28 65 78 74 65 72 6e 61 6c 5f 6e 61 6d 65 3a 61 6c 66 61   ┆function link(external_name:alfa┆
0x058d60…058d80             3b 0d 0a 76 61 72 20 70 72 6f 63 65 73 3a 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f 72   ┆;  var proces:process_descriptor┆
0x058d80…058da0             29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 6f   ┆):integer;external;  function lo┆
0x058da0…058dc0             63 6b 65 64 28 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78   ┆cked(var s:semaphore):boolean;ex┆
0x058dc0…058de0             74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 5f 73 65 6d 61 70 68 6f 72 65   ┆ternal;  function name_semaphore┆
0x058de0…058e00             28 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 76 61 72 20 73 5f 6e 61 6d 65 3a 21 61 6c 66   ┆(var s:semaphore;var s_name:!alf┆
0x058e00…058e20 (23, 1, 7)  61 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72   ┆a):integer;  external;  procedur┆
0x058e20…058e40             65 20 6e 65 77 28 76 61 72 20 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆e new(var p:^niltype);external; ┆
0x058e40…058e60             0a 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a   ┆ function next(var r:reference):┆
0x058e60…058e80             69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 28   ┆integer;external;  function nil(┆
0x058e80…058ea0             76 61 72 20 72 3a 5e 6e 69 6c 74 79 70 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c   ┆var r:^niltype):boolean;external┆
0x058ea0…058ec0             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 72 65 66 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e   ┆;  function nilref(var r:referen┆
0x058ec0…058ee0             63 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆ce):boolean;external;  function ┆
0x058ee0…058f00             6f 66 66 73 65 74 3d 66 69 72 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e   ┆offset=first(var r:reference):in┆
0x058f00…058f20             74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 28 76   ┆teger;external;  function open(v┆
0x058f20…058f40             61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c   ┆ar s:semaphore):boolean;external┆
0x058f40…058f60             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 70 6f 6f 6c 28 76 61 72 20 70 3a 70 6f 6f 6c 20   ┆;  function openpool(var p:pool ┆
0x058f60…058f80             31 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f   ┆1):boolean;external;  function o┆
0x058f80…058fa0             72 64 28 78 3a 6e 69 6c 74 79 70 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆rd(x:niltype):integer;external; ┆
0x058fa0…058fc0             0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 62 79 74 65 62 6c 6f 63 6b 0d 0a 28 76 61 72 20 6e 65   ┆ procedure outbyteblock  (var ne┆
0x058fc0…058fe0             78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c 61 73 74 3a 69 6e 74 65 67 65 72 3b   ┆xt:integer;  first,last:integer;┆
0x058fe0…059000             0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b   ┆  var msg:reference);  external;┆
0x059000…059020 (23, 1, 8)  0d 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 77 6f 72 64 62 6c 6f 63 6b 0d 0a 28 76 61 72 20 6e   ┆  procedure outwordblock  (var n┆
0x059020…059040             65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c 61 73 74 3a 69 6e 74 65 67 65 72   ┆ext:integer;  first,last:integer┆
0x059040…059060             3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 65 78 74 65 72 6e 61 6c   ┆;  var msg:reference);  external┆
0x059060…059080             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 77 6e 65 72 74 65 73 74 28 76 61 72 20 70 3a 70 6f 6f 6c   ┆;  function ownertest(var p:pool┆
0x059080…0590a0             20 31 3b 0d 0a 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 6f 6f 6c 65 61 6e 3b 0d 0a   ┆ 1;  var r:reference):boolean;  ┆
0x0590a0…0590c0             65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 61 73 73 69 76 65 28 76 61 72 20   ┆external;  function passive(var ┆
0x0590c0…0590e0             73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆s:semaphore):boolean;external;  ┆
0x0590e0…059100             70 72 6f 63 65 64 75 72 65 20 70 6f 70 28 76 61 72 20 72 31 2c 72 32 3a 72 65 66 65 72 65 6e 63   ┆procedure pop(var r1,r2:referenc┆
0x059100…059120             65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 72 65 64 28 78 3a 6e 69   ┆e);external;  function pred(x:ni┆
0x059120…059140             6c 74 79 70 65 29 3a 6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64   ┆ltype):niltype;external;  proced┆
0x059140…059160             75 72 65 20 70 75 73 68 28 76 61 72 20 72 31 2c 72 32 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78   ┆ure push(var r1,r2:reference);ex┆
0x059160…059180             74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 66 28 76 61 72 20 73 3a 73 65 6d 61   ┆ternal;  function ref(var s:sema┆
0x059180…0591a0             70 68 6f 72 65 29 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆phore):^semaphore;external;  pro┆
0x0591a0…0591c0             63 65 64 75 72 65 20 72 65 6c 65 61 73 65 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b   ┆cedure release(var r:reference);┆
0x0591c0…0591e0             65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 6c 65 61 73 65 70 6f 6f 6c 28   ┆external;  function releasepool(┆
0x0591e0…059200             76 61 72 20 70 3a 70 6f 6f 6c 20 30 3b 6e 6f 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72   ┆var p:pool 0;no:integer):integer┆
0x059200…059220 (23, 1, 9)  3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 6d 6f 76 65 28 76   ┆;  external;  procedure remove(v┆
0x059220…059240             61 72 20 73 68 3a 73 68 61 64 6f 77 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f   ┆ar sh:shadow);external;  functio┆
0x059240…059260             6e 20 72 65 73 65 72 76 65 63 68 28 76 61 72 20 63 68 5f 6d 73 67 3a 72 65 66 65 72 65 6e 63 65   ┆n reservech(var ch_msg:reference┆
0x059260…059280             3b 0d 0a 6c 65 76 65 6c 2c 6d 61 73 6b 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 0d   ┆;  level,mask:integer):integer; ┆
0x059280…0592a0             0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 28 76 61 72   ┆ external;  procedure return(var┆
0x0592a0…0592c0             20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f   ┆ r:reference);external;  functio┆
0x0592c0…0592e0             6e 20 73 65 61 72 63 68 5f 73 65 6d 61 70 68 6f 72 65 28 76 61 72 20 73 5f 6e 61 6d 65 3a 21 61   ┆n search_semaphore(var s_name:!a┆
0x0592e0…059300             6c 66 61 29 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆lfa):^semaphore;  external;  pro┆
0x059300…059320             63 65 64 75 72 65 20 73 65 6e 64 6c 69 6e 6b 65 72 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63   ┆cedure sendlinker(var r:referenc┆
0x059320…059340             65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 6e 64 74 69 6d 65   ┆e);external;  procedure sendtime┆
0x059340…059360             72 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72   ┆r(var r:reference);external;  pr┆
0x059360…059380             6f 63 65 64 75 72 65 20 73 65 6e 73 65 73 65 6d 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65   ┆ocedure sensesem(var r:reference┆
0x059380…0593a0             3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆;var s:semaphore);external;  pro┆
0x0593a0…0593c0             63 65 64 75 72 65 20 73 65 74 62 79 74 65 63 6f 75 6e 74 28 76 61 72 20 72 3a 72 65 66 65 72 65   ┆cedure setbytecount(var r:refere┆
0x0593c0…0593e0             6e 63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63   ┆nce;val:integer);external;  proc┆
0x0593e0…059400             65 64 75 72 65 20 73 65 74 66 69 72 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76   ┆edure setfirst(var r:reference;v┆
0x059400…059420 (23, 1, 10) 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆al:integer);external;  procedure┆
0x059420…059440             20 73 65 74 6c 61 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74   ┆ setlast(var r:reference;val:int┆
0x059440…059460             65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 6e 65   ┆eger);external;  procedure setne┆
0x059460…059480             78 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b   ┆xt(var r:reference;val:integer);┆
0x059480…0594a0             65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 6f 66 66 73 65 74 28 76   ┆external;  procedure setoffset(v┆
0x0594a0…0594c0             61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65   ┆ar r:reference;val:integer);exte┆
0x0594c0…0594e0             72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 70 72 69 6f 72 69 74 79 28 70 72 69   ┆rnal;  procedure setpriority(pri┆
0x0594e0…059500             6f 72 69 74 79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64   ┆ority:integer);external;  proced┆
0x059500…059520             75 72 65 20 73 65 74 74 6f 70 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69   ┆ure settop(var r:reference;val:i┆
0x059520…059540             6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74   ┆nteger);external;  procedure set┆
0x059540…059560             75 31 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74 65 29 3b 65 78 74   ┆u1(var r:reference;val:byte);ext┆
0x059560…059580             65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 75 32 28 76 61 72 20 72 3a 72 65   ┆ernal;  procedure setu2(var r:re┆
0x059580…0595a0             66 65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆ference;val:byte);external;  pro┆
0x0595a0…0595c0             63 65 64 75 72 65 20 73 65 74 75 33 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c   ┆cedure setu3(var r:reference;val┆
0x0595c0…0595e0             3a 62 79 74 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 75   ┆:byte);external;  procedure setu┆
0x0595e0…059600             34 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74 65 29 3b 65 78 74 65   ┆4(var r:reference;val:byte);exte┆
0x059600…059620 (23, 1, 11) 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 69 67 6e 61 6c 28 76 61 72 20 72 3a 72 65   ┆rnal;  procedure signal(var r:re┆
0x059620…059640             66 65 72 65 6e 63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61   ┆ference;var s:semaphore);externa┆
0x059640…059660             6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 74 61 63 6b 64 65 70 74 68 28 76 61 72 20 72 3a 72 65   ┆l;  function stackdepth(var r:re┆
0x059660…059680             66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63   ┆ference):integer;external;  proc┆
0x059680…0596a0             65 64 75 72 65 20 73 74 61 72 74 28 76 61 72 20 73 68 3a 73 68 61 64 6f 77 3b 70 72 69 6f 72 69   ┆edure start(var sh:shadow;priori┆
0x0596a0…0596c0             74 79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆ty:integer);external;  procedure┆
0x0596c0…0596e0             20 73 74 6f 70 28 76 61 72 20 73 68 3a 73 68 61 64 6f 77 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆ stop(var sh:shadow);external;  ┆
0x0596e0…059700             66 75 6e 63 74 69 6f 6e 20 73 75 63 63 28 78 3a 6e 69 6c 74 79 70 65 29 3a 6e 69 6c 74 79 70 65   ┆function succ(x:niltype):niltype┆
0x059700…059720             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 77 61 70 28 69 3a 69 6e 74 65   ┆;external;  function swap(i:inte┆
0x059720…059740             67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆ger):integer;external;  function┆
0x059740…059760             20 74 6f 70 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78   ┆ top(var r:reference):integer;ex┆
0x059760…059780             74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 74 72 61 63 65 3d 65 78 63 65 70 74 69   ┆ternal;  procedure trace=excepti┆
0x059780…0597a0             6f 6e 28 63 6f 64 65 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63   ┆on(code:integer);external;  proc┆
0x0597a0…0597c0             65 64 75 72 65 20 73 68 6f 72 74 74 72 61 63 65 3d 74 72 61 63 65 28 63 6f 64 65 3a 69 6e 74 65   ┆edure shorttrace=trace(code:inte┆
0x0597c0…0597e0             67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6e 6c 69 6e 6b 28   ┆ger);external;  function unlink(┆
0x0597e0…059800             76 61 72 20 70 72 6f 63 65 73 3a 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f 72 29 3a 69   ┆var proces:process_descriptor):i┆
0x059800…059820 (23, 1, 12) 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 31 28 76 61   ┆nteger;external;  function u1(va┆
0x059820…059840             72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆r r:reference):byte;external;  f┆
0x059840…059860             75 6e 63 74 69 6f 6e 20 75 32 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65   ┆unction u2(var r:reference):byte┆
0x059860…059880             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 33 28 76 61 72 20 72 3a 72 65   ┆;external;  function u3(var r:re┆
0x059880…0598a0             66 65 72 65 6e 63 65 29 3a 62 79 74 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f   ┆ference):byte;external;  functio┆
0x0598a0…0598c0             6e 20 75 34 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65 3b 65 78 74 65 72   ┆n u4(var r:reference):byte;exter┆
0x0598c0…0598e0             6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 77 61 69 74 28 76 61 72 20 72 3a 72 65 66 65 72   ┆nal;  procedure wait(var r:refer┆
0x0598e0…059900             65 6e 63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆ence;var s:semaphore);external; ┆
0x059900…059920             0a 70 72 6f 63 65 64 75 72 65 20 77 61 69 74 69 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63   ┆ procedure waiti;external;  proc┆
0x059920…059940             65 64 75 72 65 20 77 61 69 74 73 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20   ┆edure waits(var r:reference;var ┆
0x059940…059960             73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72   ┆s:semaphore);external;  procedur┆
0x059960…059980             65 20 77 61 69 74 64 28 64 65 6c 61 79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b   ┆e waitd(delay:integer);external;┆
0x059980…0599a0             0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 69 64 28 64 65 6c 61 79 3a 69 6e 74 65 67 65 72 29   ┆  function waitid(delay:integer)┆
0x0599a0…0599c0             3a 61 63 74 69 76 61 74 69 6f 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆:activation;external;  function ┆
0x0599c0…0599e0             77 61 69 74 69 73 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 73 3a 73 65 6d   ┆waitis(var r:reference;var s:sem┆
0x0599e0…059a00             61 70 68 6f 72 65 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆aphore):activation;  external;  ┆
0x059a00…059a20 (23, 1, 13) 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 73 64 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b   ┆function waitsd(var r:reference;┆
0x059a20…059a40             0d 0a 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 64 65 6c 61 79 3a 69 6e 74 65 67 65   ┆  var s:semaphore;  delay:intege┆
0x059a40…059a60             72 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74   ┆r):activation;  external;  funct┆
0x059a60…059a80             69 6f 6e 20 77 61 69 74 69 73 64 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 0d 0a 76 61   ┆ion waitisd(var r:reference;  va┆
0x059a80…059aa0             72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 64 65 6c 61 79 3a 69 6e 74 65 67 65 72 29 3a 61   ┆r s:semaphore;  delay:integer):a┆
0x059aa0…059ac0             63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆ctivation;  external;  function ┆
0x059ac0…059ae0             5f 62 75 66 73 69 7a 65 5f 5f 72 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e   ┆_bufsize__rc(var r:reference):in┆
0x059ae0…059b00             74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 65 78   ┆teger;  external;  procedure _ex┆
0x059b00…059b20             63 68 61 6e 67 65 5f 72 63 28 76 61 72 20 73 68 31 2c 73 68 32 3a 73 68 61 64 6f 77 29 3b 0d 0a   ┆change_rc(var sh1,sh2:shadow);  ┆
0x059b20…059b40             65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 5f 5f 65 78 69 74 5f 5f 5f 72   ┆external;  procedure ___exit___r┆
0x059b40…059b60             63 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 66 69 72 73 74 5f 5f 5f 5f   ┆c;external;  function _first____┆
0x059b60…059b80             72 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78   ┆rc(var r:reference):integer;  ex┆
0x059b80…059ba0             74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 68 65 61 70 72 65 66 5f 5f 72 63 28   ┆ternal;  procedure _heapref__rc(┆
0x059ba0…059bc0             70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆p:^niltype);external;  procedure┆
0x059bc0…059be0             20 5f 68 65 61 70 73 68 5f 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e   ┆ _heapsh___rc(p:^niltype);extern┆
0x059be0…059c00             61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 70 6f 6f 6c 5f 72 63 28 76 61 72 20   ┆al;  procedure _initpool_rc(var ┆
0x059c00…059c20 (23, 1, 14) 73 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 6e 75 6d 62 65 72 2c 73 69 7a 65 3a 69 6e 74 65 67 65   ┆s:semaphore;  number,size:intege┆
0x059c20…059c40             72 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 70   ┆r);  external;  procedure _initp┆
0x059c40…059c60             72 6f 63 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 3b 71 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78   ┆roc_rc(p:^niltype;q:^niltype);ex┆
0x059c60…059c80             74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 72 65 66 5f 5f 72 63 28   ┆ternal;  procedure _initref__rc(┆
0x059c80…059ca0             70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆p:^niltype);external;  procedure┆
0x059ca0…059cc0             20 5f 69 6e 69 74 73 65 6d 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e   ┆ _initsem__rc(p:^niltype);extern┆
0x059cc0…059ce0             61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 73 68 5f 5f 5f 72 63 28 70 3a 5e 6e   ┆al;  procedure _initsh___rc(p:^n┆
0x059ce0…059d00             69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 6c 61 73   ┆iltype);external;  function _las┆
0x059d00…059d20             74 5f 5f 5f 5f 5f 72 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65   ┆t_____rc(var r:reference):intege┆
0x059d20…059d40             72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 5f 5f 6e 65 77 5f 5f   ┆r;  external;  function ___new__┆
0x059d40…059d60             5f 5f 72 63 28 62 79 74 65 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 77 6f 72 64 61 6c 6c 69 67 6e 6d   ┆__rc(bytes:integer;  wordallignm┆
0x059d60…059d80             65 6e 74 3a 62 6f 6f 6c 65 61 6e 29 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 65 78 74 65 72 6e 61 6c   ┆ent:boolean):^niltype;  external┆
0x059d80…059da0             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 73 68 69 66 74 5f 5f 5f 5f 72 63 28 61 2c 62 3a 69 6e   ┆;  procedure _shift____rc(a,b:in┆
0x059da0…059dc0             74 65 67 65 72 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 2e 0d 0a 70 72 6f 63 65 64 75 72 65   ┆teger);  external;  .  procedure┆
0x059dc0…059de0             20 5f 68 65 61 70 73 68 5f 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e   ┆ _heapsh___rc(p:^niltype);extern┆
0x059de0…059e00             61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 70 6f 6f 6c 5f 72 63 28 76 61 72 20   ┆al;  procedure _initpool_rc(var ┆
0x059e00…059e20 (23, 1, 15) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 65 6e 76 2f 73 79 73 33 35 30 32 32 2e 65 6e 76 00 00   ┆../sw2103/src/env/sys35022.env  ┆
0x059e20…059e40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x059e60…059e80             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x059e80…059ea0             20 20 33 30 34 32 35 20 20 35 31 37 33 30 30 34 37 34 30 20 20 31 30 36 33 35 00 20 00 00 00 00   ┆  30425  5173004740  10635      ┆
0x059ea0…059ec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x05a000…05a020 (24, 0, 1)  73 79 73 33 35 30 32 32 65 6e 76 3b 0d 0a 24 53 45 54 20 66 6c 6e 3d 31 0d 0a 63 6f 6e 73 74 0d   ┆sys35022env;  $SET fln=1  const ┆
0x05a020…05a040             0a 61 6c 66 61 6c 65 6e 67 74 68 3d 31 32 3b 0d 0a 6d 61 78 69 6e 74 3d 33 32 37 36 37 3b 0d 0a   ┆ alfalength=12;  maxint=32767;  ┆
0x05a040…05a060             6d 69 6e 69 6e 74 3d 2d 33 32 37 36 38 3b 0d 0a 6f 6b 3d 30 3b 0d 0a 6d 70 65 78 63 66 69 72 73   ┆minint=-32768;  ok=0;  mpexcfirs┆
0x05a060…05a080             74 3d 31 3b 0d 0a 72 73 65 78 63 66 69 72 73 74 3d 6d 70 65 78 63 66 69 72 73 74 2b 32 39 3b 0d   ┆t=1;  rsexcfirst=mpexcfirst+29; ┆
0x05a080…05a0a0             0a 63 70 65 78 63 66 69 72 73 74 3d 72 73 65 78 63 66 69 72 73 74 2b 35 3b 0d 0a 64 62 6c 5f 6d   ┆ cpexcfirst=rsexcfirst+5;  dbl_m┆
0x05a0a0…05a0c0             75 6c 5f 65 78 63 3d 23 68 32 31 3b 0d 0a 64 62 6c 5f 63 6f 6e 76 5f 65 78 63 3d 23 68 32 32 3b   ┆ul_exc=#h21;  dbl_conv_exc=#h22;┆
0x05a0c0…05a0e0             0d 0a 62 72 65 61 6b 5f 62 79 5f 66 61 74 68 65 72 3d 34 37 3b 0d 0a 6d 61 78 70 72 69 6f 72 69   ┆  break_by_father=47;  maxpriori┆
0x05a0e0…05a100             74 79 3d 30 3b 0d 0a 6d 69 6e 70 72 69 6f 72 69 74 79 3d 2d 32 3b 0d 0a 73 74 64 70 72 69 6f 72   ┆ty=0;  minpriority=-2;  stdprior┆
0x05a100…05a120             69 74 79 3d 6d 69 6e 70 72 69 6f 72 69 74 79 3b 0d 0a 74 79 70 65 0d 0a 62 69 74 3d 30 2e 2e 31   ┆ity=minpriority;  type  bit=0..1┆
0x05a120…05a140             3b 0d 0a 62 79 74 65 3d 30 2e 2e 32 35 35 3b 0d 0a 64 6f 75 62 6c 65 3d 0d 0a 72 65 63 6f 72 64   ┆;  byte=0..255;  double=  record┆
0x05a140…05a160             0d 0a 6d 73 70 2c 6c 73 70 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 6d 65 6d 6e 6f 5f   ┆  msp,lsp:integer;  end;  memno_┆
0x05a160…05a180             74 79 70 65 3d 30 2e 2e 36 33 3b 0d 0a 61 63 74 69 76 61 74 69 6f 6e 3d 28 61 5f 69 6e 74 65 72   ┆type=0..63;  activation=(a_inter┆
0x05a180…05a1a0             72 75 70 74 2c 61 5f 73 65 6d 61 70 68 6f 72 65 2c 61 5f 64 65 6c 61 79 29 3b 0d 0a 62 61 73 65   ┆rupt,a_semaphore,a_delay);  base┆
0x05a1a0…05a1c0             5f 74 79 70 65 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f 72 64 0d 0a 6f 6e 65 62 69 74 3a 62 69 74   ┆_type=packed  record  onebit:bit┆
0x05a1c0…05a1e0             3b 0d 0a 6d 65 6d 5f 6e 6f 3a 6d 65 6d 6e 6f 5f 74 79 70 65 3b 0d 0a 6e 69 6c 62 69 74 3a 62 69   ┆;  mem_no:memno_type;  nilbit:bi┆
0x05a1e0…05a200             74 0d 0a 65 6e 64 3b 0d 0a 61 64 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 62 61 73 65 3a 62 61 73 65   ┆t  end;  adr=  record  base:base┆
0x05a200…05a220 (24, 0, 2)  5f 74 79 70 65 3b 0d 0a 64 69 73 70 3a 69 6e 74 65 67 65 72 0d 0a 65 6e 64 3b 0d 0a 61 64 64 72   ┆_type;  disp:integer  end;  addr┆
0x05a220…05a240             3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e 75 6c 62 79 74 65 3a 62 79 74 65 3b 0d 0a 62 61 73 65 3a 62   ┆=  record  nulbyte:byte;  base:b┆
0x05a240…05a260             61 73 65 5f 74 79 70 65 3b 0d 0a 64 69 73 70 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a   ┆ase_type;  disp:integer;  end;  ┆
0x05a260…05a280             74 79 70 65 0d 0a 78 6d 65 6d 6e 6f 5f 74 79 70 65 3d 30 2e 2e 31 32 37 3b 0d 0a 78 62 61 73 65   ┆type  xmemno_type=0..127;  xbase┆
0x05a280…05a2a0             5f 74 79 70 65 3d 70 61 63 6b 65 64 20 72 65 63 6f 72 64 0d 0a 6d 65 6d 5f 6e 6f 3a 78 6d 65 6d   ┆_type=packed record  mem_no:xmem┆
0x05a2a0…05a2c0             6e 6f 5f 74 79 70 65 3b 0d 0a 6e 69 6c 62 69 74 3a 62 69 74 3b 0d 0a 65 6e 64 3b 0d 0a 78 61 64   ┆no_type;  nilbit:bit;  end;  xad┆
0x05a2c0…05a2e0             72 3d 72 65 63 6f 72 64 0d 0a 62 61 73 65 3a 78 62 61 73 65 5f 74 79 70 65 3b 0d 0a 64 69 73 70   ┆r=record  base:xbase_type;  disp┆
0x05a2e0…05a300             3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 78 61 64 64 72 3d 72 65 63 6f 72 64 0d 0a 6e   ┆:integer;  end;  xaddr=record  n┆
0x05a300…05a320             75 6c 62 79 74 65 3a 62 79 74 65 3b 0d 0a 62 61 73 65 3a 78 62 61 73 65 5f 74 79 70 65 3b 0d 0a   ┆ulbyte:byte;  base:xbase_type;  ┆
0x05a320…05a340             64 69 73 70 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 6e 73 74 0d 0a 6e 69 6c 62   ┆disp:integer;  end;  const  nilb┆
0x05a340…05a360             61 73 65 3d 62 61 73 65 5f 74 79 70 65 28 3a 3f 2c 3f 2c 31 3a 29 3b 0d 0a 6e 69 6c 78 62 61 73   ┆ase=base_type(:?,?,1:);  nilxbas┆
0x05a360…05a380             65 3d 78 62 61 73 65 5f 74 79 70 65 28 3a 3f 2c 31 3a 29 3b 0d 0a 6e 69 6c 61 64 64 72 3d 61 64   ┆e=xbase_type(:?,1:);  niladdr=ad┆
0x05a380…05a3a0             64 72 28 3a 30 2c 6e 69 6c 62 61 73 65 2c 3f 3a 29 3b 0d 0a 6e 69 6c 78 61 64 64 72 3d 78 61 64   ┆dr(:0,nilbase,?:);  nilxaddr=xad┆
0x05a3a0…05a3c0             64 72 28 3a 30 2c 6e 69 6c 78 62 61 73 65 2c 3f 3a 29 3b 0d 0a 74 79 70 65 0d 0a 62 6f 6f 6c 65   ┆dr(:0,nilxbase,?:);  type  boole┆
0x05a3c0…05a3e0             61 6e 3d 28 66 61 6c 73 65 2c 74 72 75 65 29 3b 0d 0a 63 68 61 72 3d 0d 0a 28 0d 0a 6e 75 6c 2c   ┆an=(false,true);  char=  (  nul,┆
0x05a3e0…05a400             73 6f 68 2c 73 74 78 2c 65 74 78 2c 65 6f 74 2c 65 6e 71 2c 61 63 6b 2c 62 65 6c 2c 62 73 2c 68   ┆soh,stx,etx,eot,enq,ack,bel,bs,h┆
0x05a400…05a420 (24, 0, 3)  74 2c 0d 0a 6e 6c 2c 76 74 2c 66 66 2c 63 72 2c 73 6f 2c 73 69 2c 64 6c 65 2c 64 63 31 2c 64 63   ┆t,  nl,vt,ff,cr,so,si,dle,dc1,dc┆
0x05a420…05a440             32 2c 64 63 33 2c 0d 0a 64 63 34 2c 6e 61 6b 2c 73 79 6e 2c 65 74 62 2c 63 61 6e 2c 65 6d 2c 73   ┆2,dc3,  dc4,nak,syn,etb,can,em,s┆
0x05a440…05a460             75 62 2c 65 73 63 2c 66 73 2c 67 73 2c 0d 0a 72 73 2c 75 73 2c 73 70 2c 3f 2c 3f 2c 3f 2c 3f 2c   ┆ub,esc,fs,gs,  rs,us,sp,?,?,?,?,┆
0x05a460…05a480             3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c   ┆?,?,?,  ?,?,?,?,?,?,?,?,?,?,  ?,┆
0x05a480…05a4a0             3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c   ┆?,?,?,?,?,?,?,?,?,  ?,?,?,?,?,?,┆
0x05a4a0…05a4c0             3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a   ┆?,?,?,?,  ?,?,?,?,?,?,?,?,?,?,  ┆
0x05a4c0…05a4e0             3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c   ┆?,?,?,?,?,?,?,?,?,?,  ?,?,?,?,?,┆
0x05a4e0…05a500             3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c   ┆?,?,?,?,?,  ?,?,?,?,?,?,?,?,?,?,┆
0x05a500…05a520             0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c   ┆  ?,?,?,?,?,?,?,?,?,?,  ?,?,?,?,┆
0x05a520…05a540             3f 2c 3f 2c 3f 2c 64 65 6c 29 3b 0d 0a 61 6c 66 61 3d 61 72 72 61 79 28 31 2e 2e 61 6c 66 61 6c   ┆?,?,?,del);  alfa=array(1..alfal┆
0x05a540…05a560             65 6e 67 74 68 29 6f 66 20 63 68 61 72 3b 0d 0a 63 6f 64 65 64 5f 64 61 74 65 3d 70 61 63 6b 65   ┆ength)of char;  coded_date=packe┆
0x05a560…05a580             64 0d 0a 72 65 63 6f 72 64 0d 0a 79 65 61 72 5f 61 66 74 65 72 5f 31 39 30 30 3a 30 2e 2e 31 32   ┆d  record  year_after_1900:0..12┆
0x05a580…05a5a0             37 3b 0d 0a 6d 6f 6e 74 68 3a 30 2e 2e 31 32 3b 0d 0a 64 61 79 3a 30 2e 2e 33 31 3b 0d 0a 65 6e   ┆7;  month:0..12;  day:0..31;  en┆
0x05a5a0…05a5c0             64 3b 0d 0a 63 6f 64 65 64 5f 74 69 6d 65 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f 72 64 0d 0a 63   ┆d;  coded_time=packed  record  c┆
0x05a5c0…05a5e0             6f 6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 3a 30 2e 2e 33 31 3b 0d 0a 68 6f 75 72 3a 30 2e 2e   ┆ompiler_version:0..31;  hour:0..┆
0x05a5e0…05a600             32 33 3b 0d 0a 6d 69 6e 75 74 65 3a 30 2e 2e 35 39 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 64 65 64 5f   ┆23;  minute:0..59;  end;  coded_┆
0x05a600…05a620 (24, 0, 4)  73 65 63 73 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f 72 64 0d 0a 73 65 63 3a 30 2e 2e 35 39 3b 0d   ┆secs=packed  record  sec:0..59; ┆
0x05a620…05a640             0a 6d 73 65 63 3a 30 2e 2e 39 39 39 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 64 65 64 5f 69 6e 63 3d 70   ┆ msec:0..999;  end;  coded_inc=p┆
0x05a640…05a660             61 63 6b 65 64 0d 0a 72 65 63 6f 72 64 0d 0a 64 61 79 73 3a 30 2e 2e 33 31 3b 0d 0a 68 6f 75 72   ┆acked  record  days:0..31;  hour┆
0x05a660…05a680             73 3a 30 2e 2e 32 33 3b 0d 0a 6d 69 6e 73 3a 30 2e 2e 35 39 3b 0d 0a 73 65 63 73 3a 30 2e 2e 35   ┆s:0..23;  mins:0..59;  secs:0..5┆
0x05a680…05a6a0             39 3b 0d 0a 6d 73 65 63 73 3a 30 2e 2e 39 39 39 3b 0d 0a 65 6e 64 3b 0d 0a 64 65 6c 61 79 74 79   ┆9;  msecs:0..999;  end;  delayty┆
0x05a6a0…05a6c0             70 65 3d 0d 0a 72 65 63 6f 72 64 0d 0a 70 72 65 76 5f 64 61 74 65 3a 63 6f 64 65 64 5f 64 61 74   ┆pe=  record  prev_date:coded_dat┆
0x05a6c0…05a6e0             65 3b 0d 0a 70 72 65 76 5f 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 70 72 65 76 5f   ┆e;  prev_time:coded_time;  prev_┆
0x05a6e0…05a700             73 65 63 73 3a 63 6f 64 65 64 5f 73 65 63 73 3b 0d 0a 69 6e 63 3a 63 6f 64 65 64 5f 69 6e 63 3b   ┆secs:coded_secs;  inc:coded_inc;┆
0x05a700…05a720             0d 0a 65 6e 64 3b 0d 0a 63 6c 6f 63 6b 74 79 70 65 3d 0d 0a 72 65 63 6f 72 64 0d 0a 64 61 74 65   ┆  end;  clocktype=  record  date┆
0x05a720…05a740             3a 63 6f 64 65 64 5f 64 61 74 65 3b 0d 0a 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a   ┆:coded_date;  time:coded_time;  ┆
0x05a740…05a760             73 65 63 73 3a 63 6f 64 65 64 5f 73 65 63 73 3b 0d 0a 65 6e 64 3b 0d 0a 73 65 6d 61 70 68 6f 72   ┆secs:coded_secs;  end;  semaphor┆
0x05a760…05a780             65 3d 0d 0a 72 65 63 6f 72 64 0d 0a 63 68 61 69 6e 3a 61 64 64 72 3b 0d 0a 73 65 6d 63 68 61 69   ┆e=  record  chain:addr;  semchai┆
0x05a780…05a7a0             6e 3a 5e 73 65 6d 61 70 68 6f 72 65 0d 0a 65 6e 64 3b 0d 0a 6d 65 73 73 61 67 65 5f 68 65 61 64   ┆n:^semaphore  end;  message_head┆
0x05a7a0…05a7c0             65 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e 75 6c 62 79 74 65 3a 62 79 74 65 3b 0d 0a 63 68 61 69   ┆er=  record  nulbyte:byte;  chai┆
0x05a7c0…05a7e0             6e 3a 5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 75 31 2c 75 32 2c 75 33 2c 75 34 3a   ┆n:^message_header;  u1,u2,u3,u4:┆
0x05a7e0…05a800             62 79 74 65 3b 0d 0a 6d 65 73 73 61 67 65 6b 69 6e 64 3a 69 6e 74 65 67 65 72 3b 0d 0a 73 69 7a   ┆byte;  messagekind:integer;  siz┆
0x05a800…05a820 (24, 0, 5)  65 3a 69 6e 74 65 67 65 72 3b 0d 0a 73 74 61 72 74 3a 61 64 64 72 3b 0d 0a 6f 77 6e 65 72 3a 5e   ┆e:integer;  start:addr;  owner:^┆
0x05a820…05a840             73 65 6d 61 70 68 6f 72 65 3b 0d 0a 61 6e 73 77 65 72 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a   ┆semaphore;  answer:^semaphore;  ┆
0x05a840…05a860             6d 73 67 63 68 61 69 6e 3a 5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 73 74 61 63 6b   ┆msgchain:^message_header;  stack┆
0x05a860…05a880             63 68 61 69 6e 3a 5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 63 6f 6e 6e 65 63 74 69   ┆chain:^message_header;  connecti┆
0x05a880…05a8a0             6f 6e 5f 69 6e 64 65 78 3a 62 79 74 65 3b 0d 0a 63 72 65 64 69 74 5f 63 6f 75 6e 74 3a 62 79 74   ┆on_index:byte;  credit_count:byt┆
0x05a8a0…05a8c0             65 3b 0d 0a 72 65 61 73 6f 6e 3a 62 79 74 65 3b 0d 0a 65 76 65 6e 74 5f 6b 69 6e 64 3a 62 79 74   ┆e;  reason:byte;  event_kind:byt┆
0x05a8c0…05a8e0             65 3b 0d 0a 65 6e 64 3b 0d 0a 72 65 66 65 72 65 6e 63 65 3d 5e 6d 65 73 73 61 67 65 5f 68 65 61   ┆e;  end;  reference=^message_hea┆
0x05a8e0…05a900             64 65 72 3b 0d 0a 73 68 61 64 6f 77 3d 0d 0a 72 65 63 6f 72 64 0d 0a 69 6e 63 3a 5e 6e 69 6c 74   ┆der;  shadow=  record  inc:^nilt┆
0x05a900…05a920             79 70 65 3b 0d 0a 73 68 61 64 6f 77 63 68 61 69 6e 3a 5e 73 68 61 64 6f 77 3b 0d 0a 65 6e 64 3b   ┆ype;  shadowchain:^shadow;  end;┆
0x05a920…05a940             0d 0a 70 72 6f 63 65 73 73 5f 69 6e 66 3d 0d 0a 72 65 63 6f 72 64 0d 0a 65 6e 74 72 79 5f 70 6f   ┆  process_inf=  record  entry_po┆
0x05a940…05a960             69 6e 74 3a 61 64 72 3b 0d 0a 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 3a 61 64 72 3b 0d 0a   ┆int:adr;  exception_point:adr;  ┆
0x05a960…05a980             64 65 66 61 75 6c 74 5f 61 70 70 65 74 69 74 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 6c 61 73 74 5f   ┆default_appetite:integer;  last_┆
0x05a980…05a9a0             70 61 72 61 6d 5f 6f 66 66 73 65 74 3a 69 6e 74 65 67 65 72 0d 0a 65 6e 64 3b 0d 0a 63 6f 6e 73   ┆param_offset:integer  end;  cons┆
0x05a9a0…05a9c0             74 0d 0a 6d 61 78 70 61 72 61 6d 73 3d 33 30 3b 0d 0a 72 65 67 73 65 74 73 69 7a 65 3d 38 3b 0d   ┆t  maxparams=30;  regsetsize=8; ┆
0x05a9c0…05a9e0             0a 70 73 3d 2d 37 3b 0d 0a 73 62 3d 2d 36 3b 0d 0a 67 66 3d 2d 35 3b 0d 0a 6c 66 3d 2d 34 3b 0d   ┆ ps=-7;  sb=-6;  gf=-5;  lf=-4; ┆
0x05a9e0…05aa00             0a 6c 75 3d 2d 33 3b 0d 0a 6c 6d 3d 2d 32 3b 0d 0a 69 62 3d 2d 31 3b 0d 0a 69 63 3d 30 3b 0d 0a   ┆ lu=-3;  lm=-2;  ib=-1;  ic=0;  ┆
0x05aa00…05aa20 (24, 0, 6)  72 74 63 5f 6c 65 76 65 6c 5f 69 6e 64 65 78 3d 30 3b 0d 0a 74 74 6f 5f 6c 65 76 65 6c 5f 69 6e   ┆rtc_level_index=0;  tto_level_in┆
0x05aa20…05aa40             64 65 78 3d 31 3b 0d 0a 77 61 74 63 68 64 6f 67 68 3d 36 3b 0d 0a 6f 75 74 70 75 74 5f 69 6e 64   ┆dex=1;  watchdogh=6;  output_ind┆
0x05aa40…05aa60             65 78 3d 38 3b 0d 0a 76 65 72 73 69 6f 6e 5f 69 6e 64 65 78 3d 39 3b 0d 0a 73 77 69 74 63 68 30   ┆ex=8;  version_index=9;  switch0┆
0x05aa60…05aa80             5f 69 6e 64 65 78 3d 31 30 3b 0d 0a 73 77 69 74 63 68 31 5f 69 6e 64 65 78 3d 31 31 3b 0d 0a 66   ┆_index=10;  switch1_index=11;  f┆
0x05aa80…05aaa0             69 72 73 74 5f 69 6f 5f 69 6e 64 65 78 3d 31 32 3b 0d 0a 72 61 6d 5f 62 69 74 6d 61 70 5f 69 6e   ┆irst_io_index=12;  ram_bitmap_in┆
0x05aaa0…05aac0             64 65 78 3d 32 38 3b 0d 0a 70 72 6f 6d 5f 62 69 74 6d 61 70 5f 69 6e 64 65 78 3d 33 34 3b 0d 0a   ┆dex=28;  prom_bitmap_index=34;  ┆
0x05aac0…05aae0             69 64 5f 69 6e 64 65 78 3d 34 30 3b 0d 0a 6d 61 73 6b 5f 69 6e 64 65 78 3d 34 32 3b 0d 0a 70 61   ┆id_index=40;  mask_index=42;  pa┆
0x05aae0…05ab00             72 61 6d 5f 69 6e 64 65 78 3d 34 33 3b 0d 0a 6e 61 6d 65 5f 69 6e 64 65 78 3d 34 34 3b 0d 0a 63   ┆ram_index=43;  name_index=44;  c┆
0x05ab00…05ab20             6f 70 79 30 5f 69 6e 64 65 78 3d 35 32 3b 0d 0a 63 6f 70 79 31 5f 69 6e 64 65 78 3d 35 33 3b 0d   ┆opy0_index=52;  copy1_index=53; ┆
0x05ab20…05ab40             0a 70 72 69 6e 74 63 6f 75 6e 74 5f 69 6e 64 65 78 3d 35 34 3b 0d 0a 66 69 72 73 74 5f 6d 6f 64   ┆ printcount_index=54;  first_mod┆
0x05ab40…05ab60             75 6c 65 3d 31 36 3b 0d 0a 6c 61 73 74 5f 6d 6f 64 75 6c 65 3d 36 33 3b 0d 0a 73 74 6f 70 73 74   ┆ule=16;  last_module=63;  stopst┆
0x05ab60…05ab80             61 74 65 3d 31 3b 0d 0a 65 78 69 74 73 74 61 74 65 3d 32 3b 0d 0a 72 75 6e 73 74 61 74 65 3d 33   ┆ate=1;  exitstate=2;  runstate=3┆
0x05ab80…05aba0             3b 0d 0a 77 61 69 74 73 74 61 74 65 3d 34 3b 0d 0a 73 74 6f 70 5f 6c 65 6e 67 74 68 3d 38 3b 0d   ┆;  waitstate=4;  stop_length=8; ┆
0x05aba0…05abc0             0a 68 65 61 64 65 72 5f 73 69 7a 65 3d 74 79 70 65 73 69 7a 65 28 6d 65 73 73 61 67 65 5f 68 65   ┆ header_size=typesize(message_he┆
0x05abc0…05abe0             61 64 65 72 29 3b 0d 0a 77 6f 72 64 73 69 7a 65 3d 74 79 70 65 73 69 7a 65 28 69 6e 74 65 67 65   ┆ader);  wordsize=typesize(intege┆
0x05abe0…05ac00             72 29 3b 0d 0a 70 6f 69 6e 74 65 72 73 69 7a 65 3d 74 79 70 65 73 69 7a 65 28 61 64 72 29 3b 0d   ┆r);  pointersize=typesize(adr); ┆
0x05ac00…05ac20 (24, 0, 7)  0a 61 64 64 72 73 69 7a 65 3d 74 79 70 65 73 69 7a 65 28 61 64 64 72 29 3b 0d 0a 74 79 70 65 0d   ┆ addrsize=typesize(addr);  type ┆
0x05ac20…05ac40             0a 64 65 73 63 72 69 70 74 6f 72 5f 73 65 67 6d 65 6e 74 3d 0d 0a 72 65 63 6f 72 64 0d 0a 64 65   ┆ descriptor_segment=  record  de┆
0x05ac40…05ac60             73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 3a 69 6e 74 65 67 65 72 3b 0d 0a 6e 6f 5f 6f 66 5f   ┆scriptor_length:integer;  no_of_┆
0x05ac60…05ac80             70 61 67 65 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 70 61 67 65 73 69 7a 65 3a 69 6e 74 65 67 65 72   ┆pages:integer;  pagesize:integer┆
0x05ac80…05aca0             3b 0d 0a 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74 68 3a 69 6e 74 65 67 65 72 3b 0d 0a 6b 69   ┆;  last_page_length:integer;  ki┆
0x05aca0…05acc0             6e 64 3a 69 6e 74 65 67 65 72 3b 0d 0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 65 6e 74 72 79 5f 70   ┆nd:integer;  name:alfa;  entry_p┆
0x05acc0…05ace0             6f 69 6e 74 3a 61 64 64 72 3b 0d 0a 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 3a 61 64 64 72   ┆oint:addr;  exception_point:addr┆
0x05ace0…05ad00             3b 0d 0a 64 65 66 61 75 6c 74 5f 61 70 70 65 74 69 74 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 6c 61   ┆;  default_appetite:integer;  la┆
0x05ad00…05ad20             73 74 5f 70 61 72 61 6d 5f 6f 66 66 73 65 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 73 6f 75 72 63 65   ┆st_param_offset:integer;  source┆
0x05ad20…05ad40             5f 64 61 74 65 3a 63 6f 64 65 64 5f 64 61 74 65 3b 0d 0a 73 6f 75 72 63 65 5f 74 69 6d 65 3a 63   ┆_date:coded_date;  source_time:c┆
0x05ad40…05ad60             6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 76 65 72 73 69 6f 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a   ┆oded_time;  version:integer;  ?:┆
0x05ad60…05ad80             69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 6e 73 74 0d 0a 73 75 6d 6b 69 6e 64 3d 30   ┆integer;  end;  const  sumkind=0┆
0x05ad80…05ada0             3b 0d 0a 70 72 6f 63 65 73 73 6b 69 6e 64 3d 31 3b 0d 0a 70 72 6f 63 65 64 75 72 65 6b 69 6e 64   ┆;  processkind=1;  procedurekind┆
0x05ada0…05adc0             3d 32 3b 0d 0a 66 75 6e 63 74 69 6f 6e 6b 69 6e 64 3d 33 3b 0d 0a 64 61 74 61 6b 69 6e 64 3d 36   ┆=2;  functionkind=3;  datakind=6┆
0x05adc0…05ade0             3b 0d 0a 74 79 70 65 0d 0a 70 61 72 61 6d 5f 64 65 73 63 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6b   ┆;  type  param_descr=  record  k┆
0x05ade0…05ae00             69 6e 64 2c 0d 0a 73 69 7a 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 70 61 72 61 6d   ┆ind,  size:integer;  end;  param┆
0x05ae00…05ae20 (24, 0, 8)  5f 61 72 72 61 79 3d 61 72 72 61 79 28 31 2e 2e 6d 61 78 70 61 72 61 6d 73 29 6f 66 20 70 61 72   ┆_array=array(1..maxparams)of par┆
0x05ae20…05ae40             61 6d 5f 64 65 73 63 72 3b 0d 0a 70 61 72 61 6d 5f 72 65 63 6f 72 64 3d 0d 0a 72 65 63 6f 72 64   ┆am_descr;  param_record=  record┆
0x05ae40…05ae60             0d 0a 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 70 61 72 61 6d 73 3a   ┆  no_of_params:integer;  params:┆
0x05ae60…05ae80             70 61 72 61 6d 5f 61 72 72 61 79 3b 0d 0a 65 6e 64 3b 0d 0a 65 78 74 5f 6c 69 6e 6b 74 61 62 6c   ┆param_array;  end;  ext_linktabl┆
0x05ae80…05aea0             65 5f 65 6e 74 72 79 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 70 61   ┆e_entry=  record  name:alfa;  pa┆
0x05aea0…05aec0             72 61 6d 73 3a 70 61 72 61 6d 5f 72 65 63 6f 72 64 3b 0d 0a 65 6e 64 3b 0d 0a 70 72 6f 63 65 73   ┆rams:param_record;  end;  proces┆
0x05aec0…05aee0             73 5f 64 65 73 63 72 69 70 74 6f 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 69 6e 63 61 72 6e 61 74 69   ┆s_descriptor=  record  incarnati┆
0x05aee0…05af00             6f 6e 63 6f 75 6e 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 70 61 72 61 6d 5f 64 65 73 63 72 5f 72 65   ┆oncount:integer;  param_descr_re┆
0x05af00…05af20             66 3a 5e 70 61 72 61 6d 5f 72 65 63 6f 72 64 3b 0d 0a 6c 69 6e 6b 5f 73 74 61 74 65 3a 69 6e 74   ┆f:^param_record;  link_state:int┆
0x05af20…05af40             65 67 65 72 3b 0d 0a 70 72 6f 63 65 73 73 5f 69 6e 66 5f 72 65 66 3a 5e 6e 69 6c 74 79 70 65 3b   ┆eger;  process_inf_ref:^niltype;┆
0x05af40…05af60             0d 0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 70 72 6f 63 65 73 73 63 68 61 69 6e 3a 5e 70 72 6f 63   ┆  name:alfa;  processchain:^proc┆
0x05af60…05af80             65 73 73 5f 64 65 73 63 72 69 70 74 6f 72 3b 0d 0a 65 6e 64 3b 0d 0a 70 72 6f 63 65 73 73 72 65   ┆ess_descriptor;  end;  processre┆
0x05af80…05afa0             63 3d 0d 0a 72 65 63 6f 72 64 0d 0a 70 72 6f 63 65 73 73 72 65 66 3a 5e 70 72 6f 63 65 73 73 5f   ┆c=  record  processref:^process_┆
0x05afa0…05afc0             64 65 73 63 72 69 70 74 6f 72 3b 0d 0a 66 69 72 73 74 70 61 72 61 6d 3a 5e 6e 69 6c 74 79 70 65   ┆descriptor;  firstparam:^niltype┆
0x05afc0…05afe0             3b 0d 0a 73 69 7a 65 5f 6f 66 5f 70 61 72 61 6d 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b   ┆;  size_of_params:integer;  end;┆
0x05afe0…05b000             0d 0a 61 64 61 6d 73 65 6d 74 79 70 65 3d 28 61 64 61 6d 73 65 6d 2c 6f 70 65 72 61 74 6f 72 73   ┆  adamsemtype=(adamsem,operators┆
0x05b000…05b020 (24, 0, 9)  65 6d 2c 6c 6f 61 64 65 72 73 65 6d 2c 67 6c 6f 62 61 6c 73 65 6d 2c 6c 6f 61 64 64 72 69 76 65   ┆em,loadersem,globalsem,loaddrive┆
0x05b020…05b040             72 73 65 6d 2c 70 61 78 73 65 6d 2c 72 65 73 74 61 72 74 73 65 6d 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f   ┆rsem,paxsem,restartsem,?,  ?,?,?┆
0x05b040…05b060             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?┆
0x05b060…05b080             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 29 3b 0d 0a 61 64 61 6d 76 65 63 74 6f 72 3d 61 72 72 61 79 28 61   ┆,?,?,?,?,?);  adamvector=array(a┆
0x05b080…05b0a0             64 61 6d 73 65 6d 74 79 70 65 29 6f 66 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 73 79 73 74 65 6d   ┆damsemtype)of^semaphore;  system┆
0x05b0a0…05b0c0             5f 76 65 63 74 6f 72 3d 21 61 64 61 6d 76 65 63 74 6f 72 3b 0d 0a 73 65 6d 74 79 70 65 3d 28 64   ┆_vector=!adamvector;  semtype=(d┆
0x05b0c0…05b0e0             65 61 6c 6c 6f 63 61 74 6f 72 73 65 6d 2c 6c 69 6e 6b 65 72 73 65 6d 2c 73 74 6f 70 73 65 6d 2c   ┆eallocatorsem,linkersem,stopsem,┆
0x05b0e0…05b100             61 6c 6c 6f 63 73 65 6d 2c 65 78 63 65 70 74 69 6f 6e 73 65 6d 2c 0d 0a 6f 70 73 65 6d 2c 72 65   ┆allocsem,exceptionsem,  opsem,re┆
0x05b100…05b120             73 74 61 72 74 5f 73 65 6d 2c 73 74 6f 70 5f 6d 73 67 2c 77 72 69 74 65 72 61 6d 73 65 6d 2c 61   ┆start_sem,stop_msg,writeramsem,a┆
0x05b120…05b140             64 64 72 73 65 6d 2c 74 65 73 74 6f 75 74 70 75 74 73 65 6d 2c 63 6f 6d 6d 6f 6e 70 6f 6f 6c 2c   ┆ddrsem,testoutputsem,commonpool,┆
0x05b140…05b160             0d 0a 6d 6f 6e 69 74 6f 72 73 65 6d 2c 70 72 69 6e 74 73 74 61 74 73 65 6d 2c 74 69 6d 65 72 73   ┆  monitorsem,printstatsem,timers┆
0x05b160…05b180             65 6d 2c 69 6f 74 69 6d 65 72 73 65 6d 2c 5f 61 64 61 6d 73 65 6d 2c 0d 0a 74 69 6d 65 72 62 61   ┆em,iotimersem,_adamsem,  timerba┆
0x05b180…05b1a0             73 65 2c 65 78 63 65 70 74 69 6f 6e 73 74 61 63 6b 2c 6d 6f 6e 69 74 6f 72 73 74 61 63 6b 2c 0d   ┆se,exceptionstack,monitorstack, ┆
0x05b1a0…05b1c0             0a 74 69 6d 65 72 73 74 61 63 6b 2c 61 6c 6c 6f 63 61 74 6f 72 73 74 61 63 6b 2c 6c 69 6e 6b 65   ┆ timerstack,allocatorstack,linke┆
0x05b1c0…05b1e0             72 73 74 61 63 6b 2c 6f 70 65 72 61 74 6f 72 73 74 61 63 6b 29 3b 0d 0a 73 65 63 72 65 74 5f 76   ┆rstack,operatorstack);  secret_v┆
0x05b1e0…05b200             65 63 74 6f 72 3d 61 72 72 61 79 28 73 65 6d 74 79 70 65 29 6f 66 0d 0a 72 65 63 6f 72 64 0d 0a   ┆ector=array(semtype)of  record  ┆
0x05b200…05b220 (24, 0, 10) 6e 75 6c 62 79 74 65 3a 62 79 74 65 3b 0d 0a 70 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 65 6e   ┆nulbyte:byte;  p:^semaphore;  en┆
0x05b220…05b240             64 3b 0d 0a 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72 3d 0d 0a 72 65 63   ┆d;  incarnation_descriptor=  rec┆
0x05b240…05b260             6f 72 64 0d 0a 74 69 6d 65 72 3a 69 6e 74 65 67 65 72 3b 0d 0a 6c 65 76 65 6c 3a 62 79 74 65 3b   ┆ord  timer:integer;  level:byte;┆
0x05b260…05b280             0d 0a 64 65 6c 61 79 63 68 61 69 6e 3a 5e 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69   ┆  delaychain:^incarnation_descri┆
0x05b280…05b2a0             70 74 6f 72 3b 0d 0a 65 78 63 65 70 74 69 6f 6e 63 6f 64 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 65   ┆ptor;  exceptioncode:integer;  e┆
0x05b2a0…05b2c0             78 69 63 3a 61 64 64 72 3b 0d 0a 65 78 63 65 70 74 69 6f 6e 70 6f 69 6e 74 3a 61 64 64 72 3b 0d   ┆xic:addr;  exceptionpoint:addr; ┆
0x05b2c0…05b2e0             0a 6d 61 78 73 74 61 63 6b 3a 69 6e 74 65 67 65 72 3b 0d 0a 72 65 67 73 65 74 3a 69 6e 74 65 67   ┆ maxstack:integer;  regset:integ┆
0x05b2e0…05b300             65 72 3b 0d 0a 6d 72 65 67 73 65 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 69 6e 63 73 74 61 74 65 3a   ┆er;  mregset:integer;  incstate:┆
0x05b300…05b320             69 6e 74 65 67 65 72 3b 0d 0a 70 72 6f 63 65 73 73 72 65 66 3a 5e 70 72 6f 63 65 73 73 5f 64 65   ┆integer;  processref:^process_de┆
0x05b320…05b340             73 63 72 69 70 74 6f 72 3b 0d 0a 73 65 6d 63 68 61 69 6e 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d   ┆scriptor;  semchain:^semaphore; ┆
0x05b340…05b360             0a 72 65 66 63 68 61 69 6e 3a 5e 72 65 66 65 72 65 6e 63 65 3b 0d 0a 73 68 61 64 6f 77 63 68 61   ┆ refchain:^reference;  shadowcha┆
0x05b360…05b380             69 6e 3a 5e 73 68 61 64 6f 77 3b 0d 0a 6d 73 67 63 68 61 69 6e 3a 5e 6d 65 73 73 61 67 65 5f 68   ┆in:^shadow;  msgchain:^message_h┆
0x05b380…05b3a0             65 61 64 65 72 3b 0d 0a 70 72 6f 63 65 73 73 63 68 61 69 6e 3a 5e 70 72 6f 63 65 73 73 5f 64 65   ┆eader;  processchain:^process_de┆
0x05b3a0…05b3c0             73 63 72 69 70 74 6f 72 3b 0d 0a 77 6f 72 6b 73 65 6d 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 73   ┆scriptor;  worksem:semaphore;  s┆
0x05b3c0…05b3e0             65 63 72 65 74 70 6f 69 6e 74 65 72 3a 5e 73 65 63 72 65 74 5f 76 65 63 74 6f 72 3b 0d 0a 77 6f   ┆ecretpointer:^secret_vector;  wo┆
0x05b3e0…05b400             72 6b 72 65 66 3a 72 65 66 65 72 65 6e 63 65 3b 0d 0a 70 6c 69 6e 65 74 61 62 6c 65 3a 5e 6e 69   ┆rkref:reference;  plinetable:^ni┆
0x05b400…05b420 (24, 0, 11) 6c 74 79 70 65 3b 0d 0a 69 6e 63 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 66 61 74 68 65 72 3a 5e 69   ┆ltype;  incname:alfa;  father:^i┆
0x05b420…05b440             6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72 3b 0d 0a 73 68 61 64 6f 77 72 65   ┆ncarnation_descriptor;  shadowre┆
0x05b440…05b460             66 3a 5e 73 68 61 64 6f 77 3b 0d 0a 65 6e 64 3b 0d 0a 65 78 74 5f 69 6e 63 61 72 6e 61 74 69 6f   ┆f:^shadow;  end;  ext_incarnatio┆
0x05b460…05b480             6e 5f 64 65 73 63 72 69 70 74 6f 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 74 69 6d 65 72 3a 69 6e 74   ┆n_descriptor=  record  timer:int┆
0x05b480…05b4a0             65 67 65 72 3b 0d 0a 6c 65 76 65 6c 3a 62 79 74 65 3b 0d 0a 64 65 6c 61 79 63 68 61 69 6e 3a 61   ┆eger;  level:byte;  delaychain:a┆
0x05b4a0…05b4c0             64 72 3b 0d 0a 65 78 63 65 70 74 69 6f 6e 63 6f 64 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 69   ┆dr;  exceptioncode:integer;  exi┆
0x05b4c0…05b4e0             63 3a 61 64 64 72 3b 0d 0a 65 78 63 65 70 74 69 6f 6e 70 6f 69 6e 74 3a 61 64 64 72 3b 0d 0a 6d   ┆c:addr;  exceptionpoint:addr;  m┆
0x05b4e0…05b500             61 78 73 74 61 63 6b 3a 69 6e 74 65 67 65 72 3b 0d 0a 72 65 67 73 65 74 3a 69 6e 74 65 67 65 72   ┆axstack:integer;  regset:integer┆
0x05b500…05b520             3b 0d 0a 6d 72 65 67 73 65 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 69 6e 63 73 74 61 74 65 3a 69 6e   ┆;  mregset:integer;  incstate:in┆
0x05b520…05b540             74 65 67 65 72 3b 0d 0a 70 72 6f 63 65 73 73 72 65 66 3a 61 64 72 3b 0d 0a 73 65 6d 63 68 61 69   ┆teger;  processref:adr;  semchai┆
0x05b540…05b560             6e 3a 61 64 72 3b 0d 0a 72 65 66 63 68 61 69 6e 3a 61 64 72 3b 0d 0a 73 68 61 64 6f 77 63 68 61   ┆n:adr;  refchain:adr;  shadowcha┆
0x05b560…05b580             69 6e 3a 61 64 72 3b 0d 0a 6d 73 67 63 68 61 69 6e 3a 61 64 72 3b 0d 0a 70 72 6f 63 65 73 73 63   ┆in:adr;  msgchain:adr;  processc┆
0x05b580…05b5a0             68 61 69 6e 3a 61 64 72 3b 0d 0a 77 6f 72 6b 73 65 6d 3a 61 64 64 72 3b 0d 0a 73 74 61 74 69 73   ┆hain:adr;  worksem:addr;  statis┆
0x05b5a0…05b5c0             74 69 63 3a 61 64 72 3b 0d 0a 73 65 63 72 65 74 70 6f 69 6e 74 65 72 3a 61 64 72 3b 0d 0a 77 6f   ┆tic:adr;  secretpointer:adr;  wo┆
0x05b5c0…05b5e0             72 6b 72 65 66 3a 61 64 64 72 3b 0d 0a 68 65 61 70 3a 61 64 72 3b 0d 0a 70 6c 69 6e 65 74 61 62   ┆rkref:addr;  heap:adr;  plinetab┆
0x05b5e0…05b600             6c 65 3a 61 64 72 3b 0d 0a 69 6e 63 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 66 61 74 68 65 72 3a 61   ┆le:adr;  incname:alfa;  father:a┆
0x05b600…05b620 (24, 0, 12) 64 72 3b 0d 0a 73 68 61 64 6f 77 72 65 66 3a 61 64 72 3b 0d 0a 65 6e 64 3b 0d 0a 6c 6f 6f 6b 75   ┆dr;  shadowref:adr;  end;  looku┆
0x05b620…05b640             70 5f 64 65 73 63 72 69 70 74 6f 72 5f 73 65 67 6d 65 6e 74 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e   ┆p_descriptor_segment=  record  n┆
0x05b640…05b660             61 6d 65 3a 61 6c 66 61 3b 0d 0a 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 2c 0d 0a 6e   ┆ame:alfa;  descriptor_length,  n┆
0x05b660…05b680             6f 5f 6f 66 5f 70 61 67 65 73 2c 0d 0a 70 61 67 65 73 69 7a 65 2c 0d 0a 6c 61 73 74 5f 70 61 67   ┆o_of_pages,  pagesize,  last_pag┆
0x05b680…05b6a0             65 5f 6c 65 6e 67 74 68 2c 0d 0a 6b 69 6e 64 3a 69 6e 74 65 67 65 72 3b 0d 0a 64 65 66 61 75 6c   ┆e_length,  kind:integer;  defaul┆
0x05b6a0…05b6c0             74 5f 61 70 70 65 74 69 74 65 2c 0d 0a 6c 61 73 74 5f 70 61 72 61 6d 5f 6f 66 66 73 65 74 2c 0d   ┆t_appetite,  last_param_offset, ┆
0x05b6c0…05b6e0             0a 6e 6f 5f 6f 66 5f 70 61 72 61 6d 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 64 61 74 65 3a 63 6f 64   ┆ no_of_params:integer;  date:cod┆
0x05b6e0…05b700             65 64 5f 64 61 74 65 3b 0d 0a 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 73 6f 75 72   ┆ed_date;  time:coded_time;  sour┆
0x05b700…05b720             63 65 5f 64 61 74 65 3a 63 6f 64 65 64 5f 64 61 74 65 3b 0d 0a 73 6f 75 72 63 65 5f 74 69 6d 65   ┆ce_date:coded_date;  source_time┆
0x05b720…05b740             3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 76 65 72 73 69 6f 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a   ┆:coded_time;  version:integer;  ┆
0x05b740…05b760             65 6e 64 3b 0d 0a 76 61 72 0d 0a 6f 77 6e 3a 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72   ┆end;  var  own:incarnation_descr┆
0x05b760…05b780             69 70 74 6f 72 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 62 73 28 78 3a 6e 69 6c 74 79 70 65 29 3a   ┆iptor;  function abs(x:niltype):┆
0x05b780…05b7a0             6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 61 6c 6c   ┆niltype;external;  procedure all┆
0x05b7a0…05b7c0             6f 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 70 3a 70 6f 6f 6c 20 30 3b   ┆oc(var r:reference;var p:pool 0;┆
0x05b7c0…05b7e0             0d 0a 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75   ┆  var s:semaphore);external;  fu┆
0x05b7e0…05b800             6e 63 74 69 6f 6e 20 61 6c 6c 6f 63 64 65 6c 61 79 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63   ┆nction allocdelay(var r:referenc┆
0x05b800…05b820 (24, 0, 13) 65 3b 76 61 72 20 70 3a 70 6f 6f 6c 20 30 3b 0d 0a 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65   ┆e;var p:pool 0;  var s:semaphore┆
0x05b820…05b840             3b 6d 73 65 63 73 3a 69 6e 74 65 67 65 72 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74   ┆;msecs:integer):activation;  ext┆
0x05b840…05b860             65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 6f 63 70 6f 6f 6c 28 76 61 72 20 70   ┆ernal;  function allocpool(var p┆
0x05b860…05b880             3a 70 6f 6f 6c 20 30 3b 0d 0a 6e 75 6d 62 65 72 2c 62 79 74 65 73 3a 69 6e 74 65 67 65 72 29 3a   ┆:pool 0;  number,bytes:integer):┆
0x05b880…05b8a0             69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 62 72 65   ┆integer;external;  procedure bre┆
0x05b8a0…05b8c0             61 6b 28 76 61 72 20 73 68 3a 73 68 61 64 6f 77 3b 65 78 63 6f 64 65 3a 69 6e 74 65 67 65 72 29   ┆ak(var sh:shadow;excode:integer)┆
0x05b8c0…05b8e0             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 75 66 63 6f 75 6e 74 28 76 61   ┆;external;  function bufcount(va┆
0x05b8e0…05b900             72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b   ┆r r:reference):integer;external;┆
0x05b900…05b920             0d 0a 66 75 6e 63 74 69 6f 6e 20 62 75 66 73 69 7a 65 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e   ┆  function bufsize(var r:referen┆
0x05b920…05b940             63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆ce):integer;external;  function ┆
0x05b940…05b960             62 79 74 65 63 6f 75 6e 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67   ┆bytecount(var r:reference):integ┆
0x05b960…05b980             65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 68 72 28 69 6e 74 3a 30   ┆er;external;  function chr(int:0┆
0x05b980…05b9a0             2e 2e 31 32 37 29 3a 63 68 61 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆..127):char;external;  function ┆
0x05b9a0…05b9c0             63 6c 6f 63 6b 5f 69 6e 63 72 65 6d 65 6e 74 28 74 3a 63 6c 6f 63 6b 74 79 70 65 3b 69 6e 63 3a   ┆clock_increment(t:clocktype;inc:┆
0x05b9c0…05b9e0             63 6f 64 65 64 5f 69 6e 63 29 3a 63 6c 6f 63 6b 74 79 70 65 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b   ┆coded_inc):clocktype;  external;┆
0x05b9e0…05ba00             0d 0a 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 63 6b 5f 6c 65 73 73 5f 74 68 61 6e 28 74 31 2c 74 32   ┆  function clock_less_than(t1,t2┆
0x05ba00…05ba20 (24, 0, 14) 3a 63 6c 6f 63 6b 74 79 70 65 29 3a 62 6f 6f 6c 65 61 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d   ┆:clocktype):boolean;  external; ┆
0x05ba20…05ba40             0a 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 63 6b 5f 64 69 66 66 65 72 65 6e 63 65 28 74 31 2c 74 32   ┆ function clock_difference(t1,t2┆
0x05ba40…05ba60             3a 63 6c 6f 63 6b 74 79 70 65 29 3a 63 6f 64 65 64 5f 69 6e 63 3b 0d 0a 65 78 74 65 72 6e 61 6c   ┆:clocktype):coded_inc;  external┆
0x05ba60…05ba80             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 72 63 31 36 28 6f 70 31 2c 6f 70 32 3a 69 6e 74 65 67 65   ┆;  function crc16(op1,op2:intege┆
0x05ba80…05baa0             72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63   ┆r):integer;external;  function c┆
0x05baa0…05bac0             72 65 61 74 65 28 69 6e 63 61 72 6e 61 74 69 6f 6e 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 70 72 6f   ┆reate(incarnationname:alfa;  pro┆
0x05bac0…05bae0             63 65 73 3a 70 72 6f 63 65 73 73 72 65 63 3b 0d 0a 76 61 72 20 73 68 3a 73 68 61 64 6f 77 3b 0d   ┆ces:processrec;  var sh:shadow; ┆
0x05bae0…05bb00             0a 73 74 6f 72 61 67 65 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65   ┆ storage:integer):integer;  exte┆
0x05bb00…05bb20             72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 64 65 66 69 6e 65 74 69 6d 65 72 28 6f 6e 6f   ┆rnal;  procedure definetimer(ono┆
0x05bb20…05bb40             66 66 3a 62 6f 6f 6c 65 61 6e 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆ff:boolean);external;  function ┆
0x05bb40…05bb60             64 65 6c 65 74 65 5f 73 65 6d 61 70 68 6f 72 65 28 76 61 72 20 73 5f 6e 61 6d 65 3a 21 61 6c 66   ┆delete_semaphore(var s_name:!alf┆
0x05bb60…05bb80             61 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆a):integer;  external;  function┆
0x05bb80…05bba0             20 65 6d 70 74 79 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 6f 6f 6c 65 61 6e 3b   ┆ empty(var r:reference):boolean;┆
0x05bba0…05bbc0             65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 65 6f 69 3a 62 6f 6f 6c 65 61 6e 3b   ┆external;  function eoi:boolean;┆
0x05bbc0…05bbe0             65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 65 78 63 65 70 74 69 6f 6e 28 65   ┆external;  procedure exception(e┆
0x05bbe0…05bc00             78 63 6f 64 65 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69   ┆xcode:integer);external;  functi┆
0x05bc00…05bc20 (24, 0, 15) 6f 6e 20 66 69 72 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65   ┆on first(var r:reference):intege┆
0x05bc20…05bc40             72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 63 6c 6f 63 6b 3a 63   ┆r;external;  function getclock:c┆
0x05bc40…05bc60             6c 6f 63 6b 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e   ┆locktype;external;  procedure in┆
0x05bc60…05bc80             62 79 74 65 62 6c 6f 63 6b 0d 0a 28 76 61 72 20 6e 65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66   ┆byteblock  (var next:integer;  f┆
0x05bc80…05bca0             69 72 73 74 2c 6c 61 73 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65   ┆irst,last:integer;  var msg:refe┆
0x05bca0…05bcc0             72 65 6e 63 65 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e   ┆rence);  external;  procedure in┆
0x05bcc0…05bce0             77 6f 72 64 62 6c 6f 63 6b 0d 0a 28 76 61 72 20 6e 65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66   ┆wordblock  (var next:integer;  f┆
0x05bce0…05bd00             69 72 73 74 2c 6c 61 73 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65   ┆irst,last:integer;  var msg:refe┆
0x05bd00…05bd20             72 65 6e 63 65 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 61 73   ┆rence);  external;  function las┆
0x05bd20…05bd40             74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72   ┆t(var r:reference):integer;exter┆
0x05bd40…05bd60             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 69 6e 6b 28 65 78 74 65 72 6e 61 6c 5f 6e 61 6d   ┆nal;  function link(external_nam┆
0x05bd60…05bd80             65 3a 61 6c 66 61 3b 0d 0a 76 61 72 20 70 72 6f 63 65 73 3a 70 72 6f 63 65 73 73 5f 64 65 73 63   ┆e:alfa;  var proces:process_desc┆
0x05bd80…05bda0             72 69 70 74 6f 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74   ┆riptor):integer;external;  funct┆
0x05bda0…05bdc0             69 6f 6e 20 6c 6f 63 6b 65 64 28 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c   ┆ion locked(var s:semaphore):bool┆
0x05bdc0…05bde0             65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 5f 73 65 6d   ┆ean;external;  function name_sem┆
0x05bde0…05be00             61 70 68 6f 72 65 28 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 76 61 72 20 73 5f 6e 61 6d   ┆aphore(var s:semaphore;var s_nam┆
0x05be00…05be20 (24, 1, 1)  65 3a 21 61 6c 66 61 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72   ┆e:!alfa):integer;  external;  pr┆
0x05be20…05be40             6f 63 65 64 75 72 65 20 6e 65 77 28 76 61 72 20 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65   ┆ocedure new(var p:^niltype);exte┆
0x05be40…05be60             72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 76 61 72 20 72 3a 72 65 66 65 72   ┆rnal;  function next(var r:refer┆
0x05be60…05be80             65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f   ┆ence):integer;external;  functio┆
0x05be80…05bea0             6e 20 6e 69 6c 28 76 61 72 20 72 3a 5e 6e 69 6c 74 79 70 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78   ┆n nil(var r:^niltype):boolean;ex┆
0x05bea0…05bec0             74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 72 65 66 28 76 61 72 20 72 3a 72   ┆ternal;  function nilref(var r:r┆
0x05bec0…05bee0             65 66 65 72 65 6e 63 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e   ┆eference):boolean;external;  fun┆
0x05bee0…05bf00             63 74 69 6f 6e 20 6f 66 66 73 65 74 3d 66 69 72 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e   ┆ction offset=first(var r:referen┆
0x05bf00…05bf20             63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆ce):integer;external;  function ┆
0x05bf20…05bf40             6f 70 65 6e 28 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78   ┆open(var s:semaphore):boolean;ex┆
0x05bf40…05bf60             74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 70 6f 6f 6c 28 76 61 72 20 70   ┆ternal;  function openpool(var p┆
0x05bf60…05bf80             3a 70 6f 6f 6c 20 31 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63   ┆:pool 1):boolean;external;  func┆
0x05bf80…05bfa0             74 69 6f 6e 20 6f 72 64 28 78 3a 6e 69 6c 74 79 70 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65   ┆tion ord(x:niltype):integer;exte┆
0x05bfa0…05bfc0             72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 62 79 74 65 62 6c 6f 63 6b 0d 0a 28   ┆rnal;  procedure outbyteblock  (┆
0x05bfc0…05bfe0             76 61 72 20 6e 65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c 61 73 74 3a 69 6e   ┆var next:integer;  first,last:in┆
0x05bfe0…05c000             74 65 67 65 72 3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 65 78 74   ┆teger;  var msg:reference);  ext┆
0x05c000…05c020 (24, 1, 2)  65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 77 6f 72 64 62 6c 6f 63 6b 0d 0a   ┆ernal;  procedure outwordblock  ┆
0x05c020…05c040             28 76 61 72 20 6e 65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c 61 73 74 3a 69   ┆(var next:integer;  first,last:i┆
0x05c040…05c060             6e 74 65 67 65 72 3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 65 78   ┆nteger;  var msg:reference);  ex┆
0x05c060…05c080             74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 77 6e 65 72 74 65 73 74 28 76 61 72 20   ┆ternal;  function ownertest(var ┆
0x05c080…05c0a0             70 3a 70 6f 6f 6c 20 31 3b 0d 0a 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 6f 6f 6c   ┆p:pool 1;  var r:reference):bool┆
0x05c0a0…05c0c0             65 61 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 61 73 73 69 76   ┆ean;  external;  function passiv┆
0x05c0c0…05c0e0             65 28 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72   ┆e(var s:semaphore):boolean;exter┆
0x05c0e0…05c100             6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 6f 70 28 76 61 72 20 72 31 2c 72 32 3a 72 65   ┆nal;  procedure pop(var r1,r2:re┆
0x05c100…05c120             66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 72 65   ┆ference);external;  function pre┆
0x05c120…05c140             64 28 78 3a 6e 69 6c 74 79 70 65 29 3a 6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆d(x:niltype):niltype;external;  ┆
0x05c140…05c160             70 72 6f 63 65 64 75 72 65 20 70 75 73 68 28 76 61 72 20 72 31 2c 72 32 3a 72 65 66 65 72 65 6e   ┆procedure push(var r1,r2:referen┆
0x05c160…05c180             63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 66 28 76 61 72 20   ┆ce);external;  function ref(var ┆
0x05c180…05c1a0             73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 65 78 74 65 72 6e 61 6c   ┆s:semaphore):^semaphore;external┆
0x05c1a0…05c1c0             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 6c 65 61 73 65 28 76 61 72 20 72 3a 72 65 66 65 72   ┆;  procedure release(var r:refer┆
0x05c1c0…05c1e0             65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 6c 65 61 73   ┆ence);external;  function releas┆
0x05c1e0…05c200             65 70 6f 6f 6c 28 76 61 72 20 70 3a 70 6f 6f 6c 20 30 3b 6e 6f 3a 69 6e 74 65 67 65 72 29 3a 69   ┆epool(var p:pool 0;no:integer):i┆
0x05c200…05c220 (24, 1, 3)  6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65   ┆nteger;  external;  procedure re┆
0x05c220…05c240             6d 6f 76 65 28 76 61 72 20 73 68 3a 73 68 61 64 6f 77 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆move(var sh:shadow);external;  f┆
0x05c240…05c260             75 6e 63 74 69 6f 6e 20 72 65 73 65 72 76 65 63 68 28 76 61 72 20 63 68 5f 6d 73 67 3a 72 65 66   ┆unction reservech(var ch_msg:ref┆
0x05c260…05c280             65 72 65 6e 63 65 3b 0d 0a 6c 65 76 65 6c 2c 6d 61 73 6b 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74   ┆erence;  level,mask:integer):int┆
0x05c280…05c2a0             65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 74 75   ┆eger;  external;  procedure retu┆
0x05c2a0…05c2c0             72 6e 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆rn(var r:reference);external;  f┆
0x05c2c0…05c2e0             75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 5f 73 65 6d 61 70 68 6f 72 65 28 76 61 72 20 73 5f 6e   ┆unction search_semaphore(var s_n┆
0x05c2e0…05c300             61 6d 65 3a 21 61 6c 66 61 29 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 65 78 74 65 72 6e 61 6c   ┆ame:!alfa):^semaphore;  external┆
0x05c300…05c320             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 6e 64 6c 69 6e 6b 65 72 28 76 61 72 20 72 3a 72 65   ┆;  procedure sendlinker(var r:re┆
0x05c320…05c340             66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65   ┆ference);external;  procedure se┆
0x05c340…05c360             6e 64 74 69 6d 65 72 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61   ┆ndtimer(var r:reference);externa┆
0x05c360…05c380             6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 6e 73 65 73 65 6d 28 76 61 72 20 72 3a 72 65 66   ┆l;  procedure sensesem(var r:ref┆
0x05c380…05c3a0             65 72 65 6e 63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c   ┆erence;var s:semaphore);external┆
0x05c3a0…05c3c0             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 62 79 74 65 63 6f 75 6e 74 28 76 61 72 20 72 3a   ┆;  procedure setbytecount(var r:┆
0x05c3c0…05c3e0             72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b   ┆reference;val:integer);external;┆
0x05c3e0…05c400             0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 66 69 72 73 74 28 76 61 72 20 72 3a 72 65 66 65 72   ┆  procedure setfirst(var r:refer┆
0x05c400…05c420 (24, 1, 4)  65 6e 63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆ence;val:integer);external;  pro┆
0x05c420…05c440             63 65 64 75 72 65 20 73 65 74 6c 61 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76   ┆cedure setlast(var r:reference;v┆
0x05c440…05c460             61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆al:integer);external;  procedure┆
0x05c460…05c480             20 73 65 74 6e 65 78 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74   ┆ setnext(var r:reference;val:int┆
0x05c480…05c4a0             65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 6f 66   ┆eger);external;  procedure setof┆
0x05c4a0…05c4c0             66 73 65 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72   ┆fset(var r:reference;val:integer┆
0x05c4c0…05c4e0             29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 70 72 69 6f 72 69   ┆);external;  procedure setpriori┆
0x05c4e0…05c500             74 79 28 70 72 69 6f 72 69 74 79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆ty(priority:integer);external;  ┆
0x05c500…05c520             70 72 6f 63 65 64 75 72 65 20 73 65 74 74 6f 70 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65   ┆procedure settop(var r:reference┆
0x05c520…05c540             3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75   ┆;val:integer);external;  procedu┆
0x05c540…05c560             72 65 20 73 65 74 75 31 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74   ┆re setu1(var r:reference;val:byt┆
0x05c560…05c580             65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 75 32 28 76 61   ┆e);external;  procedure setu2(va┆
0x05c580…05c5a0             72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74 65 29 3b 65 78 74 65 72 6e 61 6c   ┆r r:reference;val:byte);external┆
0x05c5a0…05c5c0             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 75 33 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e   ┆;  procedure setu3(var r:referen┆
0x05c5c0…05c5e0             63 65 3b 76 61 6c 3a 62 79 74 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72   ┆ce;val:byte);external;  procedur┆
0x05c5e0…05c600             65 20 73 65 74 75 34 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74 65   ┆e setu4(var r:reference;val:byte┆
0x05c600…05c620 (24, 1, 5)  29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 69 67 6e 61 6c 28 76 61   ┆);external;  procedure signal(va┆
0x05c620…05c640             72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65   ┆r r:reference;var s:semaphore);e┆
0x05c640…05c660             78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 74 61 63 6b 64 65 70 74 68 28 76 61   ┆xternal;  function stackdepth(va┆
0x05c660…05c680             72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b   ┆r r:reference):integer;external;┆
0x05c680…05c6a0             0d 0a 70 72 6f 63 65 64 75 72 65 20 73 74 61 72 74 28 76 61 72 20 73 68 3a 73 68 61 64 6f 77 3b   ┆  procedure start(var sh:shadow;┆
0x05c6a0…05c6c0             70 72 69 6f 72 69 74 79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆priority:integer);external;  pro┆
0x05c6c0…05c6e0             63 65 64 75 72 65 20 73 74 6f 70 28 76 61 72 20 73 68 3a 73 68 61 64 6f 77 29 3b 65 78 74 65 72   ┆cedure stop(var sh:shadow);exter┆
0x05c6e0…05c700             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 75 63 63 28 78 3a 6e 69 6c 74 79 70 65 29 3a 6e   ┆nal;  function succ(x:niltype):n┆
0x05c700…05c720             69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 77 61 70 28   ┆iltype;external;  function swap(┆
0x05c720…05c740             69 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75   ┆i:integer):integer;external;  fu┆
0x05c740…05c760             6e 63 74 69 6f 6e 20 74 6f 70 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65   ┆nction top(var r:reference):inte┆
0x05c760…05c780             67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 74 72 61 63 65 3d 65   ┆ger;external;  procedure trace=e┆
0x05c780…05c7a0             78 63 65 70 74 69 6f 6e 28 63 6f 64 65 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b   ┆xception(code:integer);external;┆
0x05c7a0…05c7c0             0d 0a 70 72 6f 63 65 64 75 72 65 20 73 68 6f 72 74 74 72 61 63 65 3d 74 72 61 63 65 28 63 6f 64   ┆  procedure shorttrace=trace(cod┆
0x05c7c0…05c7e0             65 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75   ┆e:integer);external;  function u┆
0x05c7e0…05c800             6e 6c 69 6e 6b 28 76 61 72 20 70 72 6f 63 65 73 3a 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70   ┆nlink(var proces:process_descrip┆
0x05c800…05c820 (24, 1, 6)  74 6f 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆tor):integer;external;  function┆
0x05c820…05c840             20 75 31 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65 3b 65 78 74 65 72 6e   ┆ u1(var r:reference):byte;extern┆
0x05c840…05c860             61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 32 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65   ┆al;  function u2(var r:reference┆
0x05c860…05c880             29 3a 62 79 74 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 33 28 76 61   ┆):byte;external;  function u3(va┆
0x05c880…05c8a0             72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆r r:reference):byte;external;  f┆
0x05c8a0…05c8c0             75 6e 63 74 69 6f 6e 20 75 34 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65   ┆unction u4(var r:reference):byte┆
0x05c8c0…05c8e0             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 77 61 69 74 28 76 61 72 20 72   ┆;external;  procedure wait(var r┆
0x05c8e0…05c900             3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65   ┆:reference;var s:semaphore);exte┆
0x05c900…05c920             72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 77 61 69 74 69 3b 65 78 74 65 72 6e 61 6c 3b   ┆rnal;  procedure waiti;external;┆
0x05c920…05c940             0d 0a 70 72 6f 63 65 64 75 72 65 20 77 61 69 74 73 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63   ┆  procedure waits(var r:referenc┆
0x05c940…05c960             65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72   ┆e;var s:semaphore);external;  pr┆
0x05c960…05c980             6f 63 65 64 75 72 65 20 77 61 69 74 64 28 64 65 6c 61 79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74   ┆ocedure waitd(delay:integer);ext┆
0x05c980…05c9a0             65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 69 64 28 64 65 6c 61 79 3a 69 6e   ┆ernal;  function waitid(delay:in┆
0x05c9a0…05c9c0             74 65 67 65 72 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e   ┆teger):activation;external;  fun┆
0x05c9c0…05c9e0             63 74 69 6f 6e 20 77 61 69 74 69 73 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72   ┆ction waitis(var r:reference;var┆
0x05c9e0…05ca00             20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72   ┆ s:semaphore):activation;  exter┆
0x05ca00…05ca20 (24, 1, 7)  6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 73 64 28 76 61 72 20 72 3a 72 65 66 65   ┆nal;  function waitsd(var r:refe┆
0x05ca20…05ca40             72 65 6e 63 65 3b 0d 0a 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 64 65 6c 61 79 3a   ┆rence;  var s:semaphore;  delay:┆
0x05ca40…05ca60             69 6e 74 65 67 65 72 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d   ┆integer):activation;  external; ┆
0x05ca60…05ca80             0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 69 73 64 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63   ┆ function waitisd(var r:referenc┆
0x05ca80…05caa0             65 3b 0d 0a 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 64 65 6c 61 79 3a 69 6e 74 65   ┆e;  var s:semaphore;  delay:inte┆
0x05caa0…05cac0             67 65 72 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e   ┆ger):activation;  external;  fun┆
0x05cac0…05cae0             63 74 69 6f 6e 20 5f 62 75 66 73 69 7a 65 5f 5f 72 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e   ┆ction _bufsize__rc(var r:referen┆
0x05cae0…05cb00             63 65 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75   ┆ce):integer;  external;  procedu┆
0x05cb00…05cb20             72 65 20 5f 65 78 63 68 61 6e 67 65 5f 72 63 28 76 61 72 20 73 68 31 2c 73 68 32 3a 73 68 61 64   ┆re _exchange_rc(var sh1,sh2:shad┆
0x05cb20…05cb40             6f 77 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 5f 5f 65 78   ┆ow);  external;  procedure ___ex┆
0x05cb40…05cb60             69 74 5f 5f 5f 72 63 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 66 69 72   ┆it___rc;external;  function _fir┆
0x05cb60…05cb80             73 74 5f 5f 5f 5f 72 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65   ┆st____rc(var r:reference):intege┆
0x05cb80…05cba0             72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 68 65 61 70 72 65   ┆r;  external;  procedure _heapre┆
0x05cba0…05cbc0             66 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆f__rc(p:^niltype);external;  pro┆
0x05cbc0…05cbe0             63 65 64 75 72 65 20 5f 68 65 61 70 73 68 5f 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b   ┆cedure _heapsh___rc(p:^niltype);┆
0x05cbe0…05cc00             65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 70 6f 6f 6c 5f 72   ┆external;  procedure _initpool_r┆
0x05cc00…05cc20 (24, 1, 8)  63 28 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 6e 75 6d 62 65 72 2c 73 69 7a 65 3a   ┆c(var s:semaphore;  number,size:┆
0x05cc20…05cc40             69 6e 74 65 67 65 72 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆integer);  external;  procedure ┆
0x05cc40…05cc60             5f 69 6e 69 74 70 72 6f 63 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 3b 71 3a 5e 6e 69 6c 74 79   ┆_initproc_rc(p:^niltype;q:^nilty┆
0x05cc60…05cc80             70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 72 65   ┆pe);external;  procedure _initre┆
0x05cc80…05cca0             66 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆f__rc(p:^niltype);external;  pro┆
0x05cca0…05ccc0             63 65 64 75 72 65 20 5f 69 6e 69 74 73 65 6d 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b   ┆cedure _initsem__rc(p:^niltype);┆
0x05ccc0…05cce0             65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 73 68 5f 5f 5f 72   ┆external;  procedure _initsh___r┆
0x05cce0…05cd00             63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f   ┆c(p:^niltype);external;  functio┆
0x05cd00…05cd20             6e 20 5f 6c 61 73 74 5f 5f 5f 5f 5f 72 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a   ┆n _last_____rc(var r:reference):┆
0x05cd20…05cd40             69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 5f   ┆integer;  external;  function __┆
0x05cd40…05cd60             5f 6e 65 77 5f 5f 5f 5f 72 63 28 62 79 74 65 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 77 6f 72 64 61   ┆_new____rc(bytes:integer;  worda┆
0x05cd60…05cd80             6c 6c 69 67 6e 6d 65 6e 74 3a 62 6f 6f 6c 65 61 6e 29 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 65 78   ┆llignment:boolean):^niltype;  ex┆
0x05cd80…05cda0             74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 73 68 69 66 74 5f 5f 5f 5f 72 63 28   ┆ternal;  procedure _shift____rc(┆
0x05cda0…05cdc0             61 2c 62 3a 69 6e 74 65 67 65 72 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69   ┆a,b:integer);  external;  functi┆
0x05cdc0…05cde0             6f 6e 20 61 64 64 70 74 72 28 70 3a 5e 6e 69 6c 74 79 70 65 3b 69 6e 63 3a 69 6e 74 65 67 65 72   ┆on addptr(p:^niltype;inc:integer┆
0x05cde0…05ce00             29 3a 5e 6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 61   ┆):^niltype;external;  function a┆
0x05ce00…05ce20 (24, 1, 9)  64 64 72 70 74 72 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3a 61 64 64 72 3b 65 78 74 65 72 6e 61 6c   ┆ddrptr(p:^niltype):addr;external┆
0x05ce20…05ce40             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 75 66 73 74 61 72 74 28 76 61 72 20 72 3a 72 65 66 65 72   ┆;  function bufstart(var r:refer┆
0x05ce40…05ce60             65 6e 63 65 29 3a 5e 6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64   ┆ence):^niltype;external;  proced┆
0x05ce60…05ce80             75 72 65 20 63 68 65 63 6b 73 74 61 63 6b 28 61 70 70 65 74 69 74 65 3a 69 6e 74 65 67 65 72 29   ┆ure checkstack(appetite:integer)┆
0x05ce80…05cea0             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 63 68 65 63 6b 65 76 61 6c 3b   ┆;external;  procedure checkeval;┆
0x05cea0…05cec0             65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 65 78 63 70 74 63 61 6c 6c 28 65   ┆external;  procedure excptcall(e┆
0x05cec0…05cee0             78 63 6f 64 65 3a 69 6e 74 65 67 65 72 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63   ┆xcode:integer);  external;  func┆
0x05cee0…05cf00             74 69 6f 6e 20 6d 61 64 64 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65   ┆tion madd(a,b:integer):integer;e┆
0x05cf00…05cf20             78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 6d 75 6c 28 61 2c 62 3a 69 6e 74 65   ┆xternal;  function mmul(a,b:inte┆
0x05cf20…05cf40             67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆ger):integer;external;  function┆
0x05cf40…05cf60             20 6d 73 75 62 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72   ┆ msub(a,b:integer):integer;exter┆
0x05cf60…05cf80             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 74 72 61 64 64 72 28 61 3a 61 64 64 72 29 3a 5e   ┆nal;  function ptraddr(a:addr):^┆
0x05cf80…05cfa0             6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 74   ┆niltype;external;  procedure ret┆
0x05cfa0…05cfc0             75 72 6e 78 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆urnx(var r:reference);external; ┆
0x05cfc0…05cfe0             0a 70 72 6f 63 65 64 75 72 65 20 73 69 67 6e 61 6c 78 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e   ┆ procedure signalx(var r:referen┆
0x05cfe0…05d000             63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆ce;var s:semaphore);external;  f┆
0x05d000…05d020 (24, 1, 10) 75 6e 63 74 69 6f 6e 20 75 61 64 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65   ┆unction uadd(i,j:integer):intege┆
0x05d020…05d040             72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 64 69 76 28 69 2c 6a 3a 69   ┆r;external;  function udiv(i,j:i┆
0x05d040…05d060             6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74   ┆nteger):integer;external;  funct┆
0x05d060…05d080             69 6f 6e 20 75 6c 74 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74   ┆ion ult(i,j:integer):boolean;ext┆
0x05d080…05d0a0             65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6d 6f 64 28 69 2c 6a 3a 69 6e 74 65 67 65   ┆ernal;  function umod(i,j:intege┆
0x05d0a0…05d0c0             72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75   ┆r):integer;external;  function u┆
0x05d0c0…05d0e0             6d 75 6c 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61   ┆mul(i,j:integer):integer;externa┆
0x05d0e0…05d100             6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 73 75 62 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69   ┆l;  function usub(i,j:integer):i┆
0x05d100…05d120             6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 2e 0d 0a 75 6c 28 61 2c 62 3a 69 6e 74 65   ┆nteger;external;  .  ul(a,b:inte┆
0x05d120…05d140             67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆ger):integer;external;  function┆
0x05d140…05d160             20 6d 73 75 62 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72   ┆ msub(a,b:integer):integer;exter┆
0x05d160…05d180             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 74 72 61 64 64 72 28 61 3a 61 64 64 72 29 3a 5e   ┆nal;  function ptraddr(a:addr):^┆
0x05d180…05d1a0             6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 74   ┆niltype;external;  procedure ret┆
0x05d1a0…05d1c0             75 72 6e 78 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆urnx(var r:reference);external; ┆
0x05d1c0…05d1e0             0a 70 72 6f 63 65 64 75 72 65 20 73 69 67 6e 61 6c 78 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e   ┆ procedure signalx(var r:referen┆
0x05d1e0…05d200             63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆ce;var s:semaphore);external;  f┆
0x05d200…05d220 (24, 1, 11) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 6c 69 62 2f 69 6d 63 33 35 30 32 2e 65 6e 76 00 00 00   ┆../sw2103/src/lib/imc3502.env   ┆
0x05d220…05d240             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x05d260…05d280             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x05d280…05d2a0             20 20 20 35 33 30 31 20 20 35 31 34 32 32 36 32 31 36 30 20 20 31 30 34 33 34 00 20 00 00 00 00   ┆   5301  5142262160  10434      ┆
0x05d2a0…05d2c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x05d400…05d420 (24, 1, 12) 0d 0a 69 6d 63 33 35 30 32 65 6e 76 3b 0d 0a 54 79 70 65 0d 0a 73 63 6f 70 65 5f 74 79 70 65 3d   ┆  imc3502env;  Type  scope_type=┆
0x05d420…05d440             28 61 6e 6f 6e 79 6d 6f 75 73 2c 6c 6f 63 61 6c 2c 72 65 67 69 6f 6e 61 6c 2c 67 6c 6f 62 61 6c   ┆(anonymous,local,regional,global┆
0x05d440…05d460             29 3b 0d 0a 63 6f 6e 6e 5f 73 65 72 76 69 63 65 3d 28 63 73 5f 6e 6f 72 6d 61 6c 2c 63 73 5f 68   ┆);  conn_service=(cs_normal,cs_h┆
0x05d460…05d480             69 67 68 29 3b 0d 0a 63 6f 6e 74 72 6f 6c 5f 74 79 70 65 3d 70 61 63 6b 65 64 20 72 65 63 6f 72   ┆igh);  control_type=packed recor┆
0x05d480…05d4a0             64 0d 0a 72 63 76 5f 61 6c 6c 2c 67 65 74 5f 63 72 65 64 69 74 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c   ┆d  rcv_all,get_credit,?,?,?,?,?,┆
0x05d4a0…05d4c0             3f 3a 62 6f 6f 6c 65 61 6e 0d 0a 65 6e 64 3b 0d 0a 65 76 65 6e 74 5f 74 79 70 65 3d 0d 0a 28 6e   ┆?:boolean  end;  event_type=  (n┆
0x05d4c0…05d4e0             6f 74 5f 65 76 65 6e 74 2c 6d 65 73 73 61 67 65 5f 65 76 65 6e 74 2c 61 6e 73 77 65 72 5f 65 76   ┆ot_event,message_event,answer_ev┆
0x05d4e0…05d500             65 6e 74 2c 70 72 6f 63 65 73 73 5f 72 65 6d 6f 76 65 64 2c 0d 0a 70 6f 72 74 5f 63 6c 6f 73 65   ┆ent,process_removed,  port_close┆
0x05d500…05d520             64 2c 64 69 73 63 6f 6e 6e 65 63 74 65 64 2c 6c 65 74 74 65 72 5f 73 65 6e 74 2c 0d 0a 6c 65 74   ┆d,disconnected,letter_sent,  let┆
0x05d520…05d540             74 65 72 5f 61 72 72 69 76 65 64 2c 6c 6f 63 61 6c 5f 63 6f 6e 6e 65 63 74 2c 72 65 6d 6f 74 65   ┆ter_arrived,local_connect,remote┆
0x05d540…05d560             5f 63 6f 6e 6e 65 63 74 2c 0d 0a 72 65 73 65 74 5f 69 6e 64 69 63 61 74 69 6f 6e 2c 72 65 73 65   ┆_connect,  reset_indication,rese┆
0x05d560…05d580             74 5f 63 6f 6d 70 6c 65 74 69 6f 6e 2c 63 72 65 64 69 74 2c 0d 0a 64 61 74 61 5f 73 65 6e 74 2c   ┆t_completion,credit,  data_sent,┆
0x05d580…05d5a0             64 61 74 61 5f 61 72 72 69 76 65 64 2c 64 61 74 61 5f 6f 76 65 72 72 75 6e 2c 0d 0a 64 75 6d 6d   ┆data_arrived,data_overrun,  dumm┆
0x05d5a0…05d5c0             79 5f 6c 65 74 74 65 72 2c 64 75 6d 6d 79 5f 6c 63 6e 63 74 2c 64 75 6d 6d 79 5f 72 63 6e 63 74   ┆y_letter,dummy_lcnct,dummy_rcnct┆
0x05d5c0…05d5e0             2c 0d 0a 64 75 6d 6d 79 5f 72 69 6e 64 69 63 2c 64 75 6d 6d 79 5f 72 63 6d 70 6c 2c 64 75 6d 6d   ┆,  dummy_rindic,dummy_rcmpl,dumm┆
0x05d5e0…05d600             79 5f 63 72 65 64 69 74 2c 0d 0a 64 75 6d 6d 79 5f 73 65 6e 74 2c 64 75 6d 6d 79 5f 61 72 72 69   ┆y_credit,  dummy_sent,dummy_arri┆
0x05d600…05d620 (24, 1, 13) 76 65 64 2c 0d 0a 6d 73 6c 5f 6d 65 73 73 61 67 65 2c 6d 73 6c 5f 61 6e 73 77 65 72 2c 74 65 73   ┆ved,  msl_message,msl_answer,tes┆
0x05d620…05d640             74 5f 65 76 65 6e 74 29 3b 0d 0a 72 65 61 73 6f 6e 5f 74 79 70 65 3d 0d 0a 28 72 65 61 73 6f 6e   ┆t_event);  reason_type=  (reason┆
0x05d640…05d660             5f 6f 6b 2c 72 65 61 73 6f 6e 5f 6e 61 6d 65 2c 72 65 61 73 6f 6e 5f 72 65 73 6f 75 72 63 65 2c   ┆_ok,reason_name,reason_resource,┆
0x05d660…05d680             0d 0a 72 65 61 73 6f 6e 5f 63 6c 6f 73 65 64 2c 72 65 61 73 6f 6e 5f 6e 65 74 77 6f 72 6b 29 3b   ┆  reason_closed,reason_network);┆
0x05d680…05d6a0             0d 0a 43 6f 6e 73 74 0d 0a 72 65 63 65 69 76 65 61 6c 6c 5f 6e 6f 3d 0d 0a 63 6f 6e 74 72 6f 6c   ┆  Const  receiveall_no=  control┆
0x05d6a0…05d6c0             5f 74 79 70 65 28 3a 66 61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c 73 65 2c 66   ┆_type(:false,false,false,false,f┆
0x05d6c0…05d6e0             61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c 73 65 3a 29 3b 0d 0a 72 65 63 65 69   ┆alse,false,false,false:);  recei┆
0x05d6e0…05d700             76 65 61 6c 6c 5f 79 65 73 3d 0d 0a 63 6f 6e 74 72 6f 6c 5f 74 79 70 65 28 3a 74 72 75 65 2c 66   ┆veall_yes=  control_type(:true,f┆
0x05d700…05d720             61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c   ┆alse,false,false,false,false,fal┆
0x05d720…05d740             73 65 2c 66 61 6c 73 65 3a 29 3b 0d 0a 54 79 70 65 0d 0a 70 6f 72 74 3d 0d 0a 52 45 43 4f 52 44   ┆se,false:);  Type  port=  RECORD┆
0x05d740…05d760             0d 0a 3f 3a 62 79 74 65 3b 0d 0a 24 49 46 20 6c 61 6e 67 75 61 67 65 3d 72 74 70 33 35 30 32 0d   ┆  ?:byte;  $IF language=rtp3502 ┆
0x05d760…05d780             0a 3f 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 3f 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 3f 3a   ┆ ?:^semaphore;  ?:semaphore;  ?:┆
0x05d780…05d7a0             73 65 6d 61 70 68 6f 72 65 3b 0d 0a 3f 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 24 45 4c 53 45 0d   ┆semaphore;  ?:semaphore;  $ELSE ┆
0x05d7a0…05d7c0             0a 3f 3a 5e 6d 61 69 6c 62 6f 78 3b 0d 0a 3f 3a 6d 61 69 6c 62 6f 78 3b 0d 0a 3f 3a 6d 61 69 6c   ┆ ?:^mailbox;  ?:mailbox;  ?:mail┆
0x05d7c0…05d7e0             62 6f 78 3b 0d 0a 3f 3a 6d 61 69 6c 62 6f 78 3b 0d 0a 24 45 4e 44 49 46 0d 0a 45 4e 44 3b 0d 0a   ┆box;  ?:mailbox;  $ENDIF  END;  ┆
0x05d7e0…05d800             61 6c 66 61 33 3d 41 52 52 41 59 28 31 2e 2e 33 29 4f 46 20 63 68 61 72 3b 0d 0a 61 6c 66 61 39   ┆alfa3=ARRAY(1..3)OF char;  alfa9┆
0x05d800…05d820 (24, 1, 14) 3d 41 52 52 41 59 28 31 2e 2e 39 29 4f 46 20 63 68 61 72 3b 0d 0a 6d 61 73 6b 6e 61 6d 65 73 5f   ┆=ARRAY(1..9)OF char;  masknames_┆
0x05d820…05d840             74 3d 52 45 43 4f 52 44 0d 0a 6c 69 6e 6b 6e 6f 3a 69 6e 74 65 67 65 72 3b 0d 0a 6c 65 6e 67 74   ┆t=RECORD  linkno:integer;  lengt┆
0x05d840…05d860             68 3a 62 79 74 65 3b 0d 0a 6e 61 6d 65 3a 61 6c 66 61 39 3b 0d 0a 45 4e 44 3b 0d 0a 46 55 4e 43   ┆h:byte;  name:alfa9;  END;  FUNC┆
0x05d860…05d880             54 49 4f 4e 20 61 6c 69 61 73 28 56 41 52 20 70 3a 70 6f 72 74 3b 0d 0a 24 49 46 20 6c 61 6e 67   ┆TION alias(VAR p:port;  $IF lang┆
0x05d880…05d8a0             75 61 67 65 3d 72 74 70 32 31 31 31 0d 0a 6e 61 6d 65 3a 61 6c 66 61 0d 0a 24 45 4c 53 45 49 46   ┆uage=rtp2111  name:alfa  $ELSEIF┆
0x05d8a0…05d8c0             20 6c 61 6e 67 75 61 67 65 3d 72 74 70 33 35 30 32 0d 0a 6e 61 6d 65 3a 61 6c 66 61 0d 0a 24 45   ┆ language=rtp3502  name:alfa  $E┆
0x05d8c0…05d8e0             4c 53 45 0d 0a 6e 61 6d 65 3a 73 74 72 69 6e 67 0d 0a 24 45 4e 44 49 46 0d 0a 29 3a 62 6f 6f 6c   ┆LSE  name:string  $ENDIF  ):bool┆
0x05d8e0…05d900             65 61 6e 3b 0d 0a 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 63 6c 6f 73 65   ┆ean;  EXTERNAL;  PROCEDURE close┆
0x05d900…05d920             70 6f 72 74 28 56 41 52 20 70 3a 70 6f 72 74 29 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43   ┆port(VAR p:port);EXTERNAL;  PROC┆
0x05d920…05d940             45 44 55 52 45 20 63 6f 6e 6e 65 63 74 28 56 41 52 20 70 3a 70 6f 72 74 3b 69 6e 64 65 78 3a 31   ┆EDURE connect(VAR p:port;index:1┆
0x05d940…05d960             2e 2e 6d 61 78 69 6e 74 3b 0d 0a 56 41 52 20 63 6f 6d 70 6c 2c 64 69 73 63 3a 72 65 66 65 72 65   ┆..maxint;  VAR compl,disc:refere┆
0x05d960…05d980             6e 63 65 3b 0d 0a 24 49 46 20 6c 61 6e 67 75 61 67 65 3d 72 74 70 32 31 31 31 0d 0a 72 65 6d 6f   ┆nce;  $IF language=rtp2111  remo┆
0x05d980…05d9a0             74 65 5f 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 24 45 4c 53 45 49 46 20 6c 61 6e 67 75 61 67 65 3d   ┆te_name:alfa;  $ELSEIF language=┆
0x05d9a0…05d9c0             72 74 70 33 35 30 32 0d 0a 72 65 6d 6f 74 65 5f 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 24 45 4c 53   ┆rtp3502  remote_name:alfa;  $ELS┆
0x05d9c0…05d9e0             45 0d 0a 72 65 6d 6f 74 65 5f 6e 61 6d 65 3a 73 74 72 69 6e 67 3b 0d 0a 24 45 4e 44 49 46 0d 0a   ┆E  remote_name:string;  $ENDIF  ┆
0x05d9e0…05da00             73 65 72 76 69 63 65 3a 63 6f 6e 6e 5f 73 65 72 76 69 63 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d   ┆service:conn_service);EXTERNAL; ┆
0x05da00…05da20 (24, 1, 15) 0a 46 55 4e 43 54 49 4f 4e 20 63 72 65 64 69 74 63 6f 75 6e 74 28 56 41 52 20 72 3a 72 65 66 65   ┆ FUNCTION creditcount(VAR r:refe┆
0x05da20…05da40             72 65 6e 63 65 29 3a 30 2e 2e 6d 61 78 69 6e 74 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43   ┆rence):0..maxint;EXTERNAL;  PROC┆
0x05da40…05da60             45 44 55 52 45 20 64 69 73 63 6f 6e 6e 65 63 74 28 56 41 52 20 70 3a 70 6f 72 74 3b 69 6e 64 65   ┆EDURE disconnect(VAR p:port;inde┆
0x05da60…05da80             78 3a 31 2e 2e 6d 61 78 69 6e 74 29 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 46 55 4e 43 54 49 4f 4e   ┆x:1..maxint);EXTERNAL;  FUNCTION┆
0x05da80…05daa0             20 65 76 65 6e 74 6b 69 6e 64 28 56 41 52 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 65 76 65 6e   ┆ eventkind(VAR r:reference):even┆
0x05daa0…05dac0             74 5f 74 79 70 65 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 67 65 74 63   ┆t_type;EXTERNAL;  PROCEDURE getc┆
0x05dac0…05dae0             6f 6e 6e 65 63 74 69 6f 6e 28 56 41 52 20 70 3a 70 6f 72 74 3b 69 6e 64 65 78 3a 31 2e 2e 6d 61   ┆onnection(VAR p:port;index:1..ma┆
0x05dae0…05db00             78 69 6e 74 3b 0d 0a 56 41 52 20 63 6f 6d 70 6c 2c 64 69 73 63 3a 72 65 66 65 72 65 6e 63 65 29   ┆xint;  VAR compl,disc:reference)┆
0x05db00…05db20             3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 67 65 74 63 72 65 64 69 74 28   ┆;EXTERNAL;  PROCEDURE getcredit(┆
0x05db20…05db40             56 41 52 20 70 3a 70 6f 72 74 3b 69 6e 64 65 78 3a 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 56 41 52   ┆VAR p:port;index:1..maxint;  VAR┆
0x05db40…05db60             20 63 72 65 64 62 75 66 3a 72 65 66 65 72 65 6e 63 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50   ┆ credbuf:reference);EXTERNAL;  P┆
0x05db60…05db80             52 4f 43 45 44 55 52 45 20 67 65 74 72 65 73 65 74 28 56 41 52 20 70 3a 70 6f 72 74 3b 69 6e 64   ┆ROCEDURE getreset(VAR p:port;ind┆
0x05db80…05dba0             65 78 3a 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 56 41 52 20 69 6e 64 69 63 3a 72 65 66 65 72 65 6e   ┆ex:1..maxint;  VAR indic:referen┆
0x05dba0…05dbc0             63 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 46 55 4e 43 54 49 4f 4e 20 69 6d 63 70 72 65 73 65   ┆ce);EXTERNAL;  FUNCTION imcprese┆
0x05dbc0…05dbe0             6e 74 3a 62 6f 6f 6c 65 61 6e 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 46 55 4e 43 54 49 4f 4e 20 69   ┆nt:boolean;EXTERNAL;  FUNCTION i┆
0x05dbe0…05dc00             6e 64 65 78 28 56 41 52 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 30 2e 2e 6d 61 78 69 6e 74 3b   ┆ndex(VAR r:reference):0..maxint;┆
0x05dc00…05dc20 (25, 0, 1)  45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 67 65 74 73 65 72 76 65 72 73 28   ┆EXTERNAL;  PROCEDURE getservers(┆
0x05dc20…05dc40             56 41 52 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 6d 61 73 6b 3a 61 6c 66 61 33 29 3b 45 58 54 45   ┆VAR r:reference;mask:alfa3);EXTE┆
0x05dc40…05dc60             52 4e 41 4c 3b 0d 0a 46 55 4e 43 54 49 4f 4e 20 6d 61 78 63 6f 6e 6e 65 63 74 69 6f 6e 73 3a 30   ┆RNAL;  FUNCTION maxconnections:0┆
0x05dc60…05dc80             2e 2e 6d 61 78 69 6e 74 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 6f 70   ┆..maxint;EXTERNAL;  PROCEDURE op┆
0x05dc80…05dca0             65 6e 70 6f 72 74 28 56 41 52 20 70 3a 70 6f 72 74 3b 56 41 52 20 63 6c 6f 73 65 6d 65 73 3a 72   ┆enport(VAR p:port;VAR closemes:r┆
0x05dca0…05dcc0             65 66 65 72 65 6e 63 65 3b 0d 0a 24 49 46 20 6c 61 6e 67 75 61 67 65 3d 72 74 70 32 31 31 31 0d   ┆eference;  $IF language=rtp2111 ┆
0x05dcc0…05dce0             0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 24 45 4c 53 45 49 46 20 6c 61 6e 67 75 61 67 65 3d 72 74   ┆ name:alfa;  $ELSEIF language=rt┆
0x05dce0…05dd00             70 33 35 30 32 0d 0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 24 45 4c 53 45 0d 0a 6e 61 6d 65 3a 73   ┆p3502  name:alfa;  $ELSE  name:s┆
0x05dd00…05dd20             74 72 69 6e 67 3b 0d 0a 24 45 4e 44 49 46 0d 0a 73 63 6f 70 65 3a 73 63 6f 70 65 5f 74 79 70 65   ┆tring;  $ENDIF  scope:scope_type┆
0x05dd20…05dd40             3b 0d 0a 6e 6f 5f 6f 66 5f 63 6f 6e 6e 73 3a 30 2e 2e 6d 61 78 69 6e 74 3b 63 6e 74 72 6c 3a 63   ┆;  no_of_conns:0..maxint;cntrl:c┆
0x05dd40…05dd60             6f 6e 74 72 6f 6c 5f 74 79 70 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 46 55 4e 43 54 49 4f 4e   ┆ontrol_type);EXTERNAL;  FUNCTION┆
0x05dd60…05dd80             20 72 65 61 73 6f 6e 28 56 41 52 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 72 65 61 73 6f 6e 5f   ┆ reason(VAR r:reference):reason_┆
0x05dd80…05dda0             74 79 70 65 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 72 65 63 65 69 76   ┆type;EXTERNAL;  PROCEDURE receiv┆
0x05dda0…05ddc0             65 28 56 41 52 20 70 3a 70 6f 72 74 3b 69 6e 64 65 78 3a 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 56   ┆e(VAR p:port;index:1..maxint;  V┆
0x05ddc0…05dde0             41 52 20 64 61 74 61 62 75 66 3a 72 65 66 65 72 65 6e 63 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d   ┆AR databuf:reference);EXTERNAL; ┆
0x05dde0…05de00             0a 50 52 4f 43 45 44 55 52 45 20 72 65 63 65 69 76 65 61 6c 6c 28 56 41 52 20 70 3a 70 6f 72 74   ┆ PROCEDURE receiveall(VAR p:port┆
0x05de00…05de20 (25, 0, 2)  3b 56 41 52 20 64 61 74 61 62 75 66 3a 72 65 66 65 72 65 6e 63 65 29 3b 45 58 54 45 52 4e 41 4c   ┆;VAR databuf:reference);EXTERNAL┆
0x05de20…05de40             3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 72 65 73 65 74 28 56 41 52 20 70 3a 70 6f 72 74 3b 69 6e   ┆;  PROCEDURE reset(VAR p:port;in┆
0x05de40…05de60             64 65 78 3a 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 56 41 52 20 63 6f 6d 70 6c 3a 72 65 66 65 72 65   ┆dex:1..maxint;  VAR compl:refere┆
0x05de60…05de80             6e 63 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6e 64 28 56   ┆nce);EXTERNAL;  PROCEDURE send(V┆
0x05de80…05dea0             41 52 20 70 3a 70 6f 72 74 3b 69 6e 64 65 78 3a 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 56 41 52 20   ┆AR p:port;index:1..maxint;  VAR ┆
0x05dea0…05dec0             64 61 74 61 62 75 66 3a 72 65 66 65 72 65 6e 63 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 2e 0d   ┆databuf:reference);EXTERNAL;  . ┆
0x05dec0…05dee0             0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 24 45 4c 53 45 49 46 20 6c 61 6e 67 75 61 67 65 3d 72 74   ┆ name:alfa;  $ELSEIF language=rt┆
0x05dee0…05df00             70 33 35 30 32 0d 0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 24 45 4c 53 45 0d 0a 6e 61 6d 65 3a 73   ┆p3502  name:alfa;  $ELSE  name:s┆
0x05df00…05df20             74 72 69 6e 67 3b 0d 0a 24 45 4e 44 49 46 0d 0a 73 63 6f 70 65 3a 73 63 6f 70 65 5f 74 79 70 65   ┆tring;  $ENDIF  scope:scope_type┆
0x05df20…05df40             3b 0d 0a 6e 6f 5f 6f 66 5f 63 6f 6e 6e 73 3a 30 2e 2e 6d 61 78 69 6e 74 3b 63 6e 74 72 6c 3a 63   ┆;  no_of_conns:0..maxint;cntrl:c┆
0x05df40…05df60             6f 6e 74 72 6f 6c 5f 74 79 70 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 46 55 4e 43 54 49 4f 4e   ┆ontrol_type);EXTERNAL;  FUNCTION┆
0x05df60…05df80             20 72 65 61 73 6f 6e 28 56 41 52 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 72 65 61 73 6f 6e 5f   ┆ reason(VAR r:reference):reason_┆
0x05df80…05dfa0             74 79 70 65 3b 45 58 54 45 52 4e 41 4c 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 72 65 63 65 69 76   ┆type;EXTERNAL;  PROCEDURE receiv┆
0x05dfa0…05dfc0             65 28 56 41 52 20 70 3a 70 6f 72 74 3b 69 6e 64 65 78 3a 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 56   ┆e(VAR p:port;index:1..maxint;  V┆
0x05dfc0…05dfe0             41 52 20 64 61 74 61 62 75 66 3a 72 65 66 65 72 65 6e 63 65 29 3b 45 58 54 45 52 4e 41 4c 3b 0d   ┆AR databuf:reference);EXTERNAL; ┆
0x05dfe0…05e000             0a 50 52 4f 43 45 44 55 52 45 20 72 65 63 65 69 76 65 61 6c 6c 28 56 41 52 20 70 3a 70 6f 72 74   ┆ PROCEDURE receiveall(VAR p:port┆
0x05e000…05e020 (25, 0, 3)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 6c 69 62 2f 72 74 70 33 35 30 32 32 2e 65 6e 76 00 00   ┆../sw2103/src/lib/rtp35022.env  ┆
0x05e020…05e040             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x05e060…05e080             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x05e080…05e0a0             20 20 32 37 36 35 36 20 20 35 31 34 32 32 36 32 31 36 30 20 20 31 30 36 31 34 00 20 00 00 00 00   ┆  27656  5142262160  10614      ┆
0x05e0a0…05e0c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x05e200…05e220 (25, 0, 4)  73 79 73 33 35 30 32 32 65 6e 76 3b 0d 0a 63 6f 6e 73 74 0d 0a 61 6c 66 61 6c 65 6e 67 74 68 3d   ┆sys35022env;  const  alfalength=┆
0x05e220…05e240             31 32 3b 0d 0a 6d 61 78 69 6e 74 3d 33 32 37 36 37 3b 0d 0a 6d 69 6e 69 6e 74 3d 2d 33 32 37 36   ┆12;  maxint=32767;  minint=-3276┆
0x05e240…05e260             38 3b 0d 0a 6f 6b 3d 30 3b 0d 0a 6d 70 65 78 63 66 69 72 73 74 3d 31 3b 0d 0a 72 73 65 78 63 66   ┆8;  ok=0;  mpexcfirst=1;  rsexcf┆
0x05e260…05e280             69 72 73 74 3d 6d 70 65 78 63 66 69 72 73 74 2b 32 39 3b 0d 0a 63 70 65 78 63 66 69 72 73 74 3d   ┆irst=mpexcfirst+29;  cpexcfirst=┆
0x05e280…05e2a0             72 73 65 78 63 66 69 72 73 74 2b 35 3b 0d 0a 64 62 6c 5f 6d 75 6c 5f 65 78 63 3d 23 68 32 31 3b   ┆rsexcfirst+5;  dbl_mul_exc=#h21;┆
0x05e2a0…05e2c0             0d 0a 64 62 6c 5f 63 6f 6e 76 5f 65 78 63 3d 23 68 32 32 3b 0d 0a 62 72 65 61 6b 5f 62 79 5f 66   ┆  dbl_conv_exc=#h22;  break_by_f┆
0x05e2c0…05e2e0             61 74 68 65 72 3d 34 37 3b 0d 0a 6d 61 78 70 72 69 6f 72 69 74 79 3d 30 3b 0d 0a 6d 69 6e 70 72   ┆ather=47;  maxpriority=0;  minpr┆
0x05e2e0…05e300             69 6f 72 69 74 79 3d 2d 32 3b 0d 0a 73 74 64 70 72 69 6f 72 69 74 79 3d 6d 69 6e 70 72 69 6f 72   ┆iority=-2;  stdpriority=minprior┆
0x05e300…05e320             69 74 79 3b 0d 0a 74 79 70 65 0d 0a 62 69 74 3d 30 2e 2e 31 3b 0d 0a 62 79 74 65 3d 30 2e 2e 32   ┆ity;  type  bit=0..1;  byte=0..2┆
0x05e320…05e340             35 35 3b 0d 0a 64 6f 75 62 6c 65 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6d 73 70 2c 6c 73 70 3a 69 6e   ┆55;  double=  record  msp,lsp:in┆
0x05e340…05e360             74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 6d 65 6d 6e 6f 5f 74 79 70 65 3d 30 2e 2e 36 33 3b 0d   ┆teger;  end;  memno_type=0..63; ┆
0x05e360…05e380             0a 61 63 74 69 76 61 74 69 6f 6e 3d 28 61 5f 69 6e 74 65 72 72 75 70 74 2c 61 5f 73 65 6d 61 70   ┆ activation=(a_interrupt,a_semap┆
0x05e380…05e3a0             68 6f 72 65 2c 61 5f 64 65 6c 61 79 29 3b 0d 0a 62 61 73 65 5f 74 79 70 65 3d 70 61 63 6b 65 64   ┆hore,a_delay);  base_type=packed┆
0x05e3a0…05e3c0             0d 0a 72 65 63 6f 72 64 0d 0a 6f 6e 65 62 69 74 3a 62 69 74 3b 0d 0a 6d 65 6d 5f 6e 6f 3a 6d 65   ┆  record  onebit:bit;  mem_no:me┆
0x05e3c0…05e3e0             6d 6e 6f 5f 74 79 70 65 3b 0d 0a 6e 69 6c 62 69 74 3a 62 69 74 0d 0a 65 6e 64 3b 0d 0a 61 64 72   ┆mno_type;  nilbit:bit  end;  adr┆
0x05e3e0…05e400             3d 0d 0a 72 65 63 6f 72 64 0d 0a 62 61 73 65 3a 62 61 73 65 5f 74 79 70 65 3b 0d 0a 64 69 73 70   ┆=  record  base:base_type;  disp┆
0x05e400…05e420 (25, 0, 5)  3a 69 6e 74 65 67 65 72 0d 0a 65 6e 64 3b 0d 0a 61 64 64 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e   ┆:integer  end;  addr=  record  n┆
0x05e420…05e440             75 6c 62 79 74 65 3a 62 79 74 65 3b 0d 0a 62 61 73 65 3a 62 61 73 65 5f 74 79 70 65 3b 0d 0a 64   ┆ulbyte:byte;  base:base_type;  d┆
0x05e440…05e460             69 73 70 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 62 6f 6f 6c 65 61 6e 3d 28 66 61 6c   ┆isp:integer;  end;  boolean=(fal┆
0x05e460…05e480             73 65 2c 74 72 75 65 29 3b 0d 0a 63 68 61 72 3d 0d 0a 28 0d 0a 6e 75 6c 2c 73 6f 68 2c 73 74 78   ┆se,true);  char=  (  nul,soh,stx┆
0x05e480…05e4a0             2c 65 74 78 2c 65 6f 74 2c 65 6e 71 2c 61 63 6b 2c 62 65 6c 2c 62 73 2c 68 74 2c 0d 0a 6e 6c 2c   ┆,etx,eot,enq,ack,bel,bs,ht,  nl,┆
0x05e4a0…05e4c0             76 74 2c 66 66 2c 63 72 2c 73 6f 2c 73 69 2c 64 6c 65 2c 64 63 31 2c 64 63 32 2c 64 63 33 2c 0d   ┆vt,ff,cr,so,si,dle,dc1,dc2,dc3, ┆
0x05e4c0…05e4e0             0a 64 63 34 2c 6e 61 6b 2c 73 79 6e 2c 65 74 62 2c 63 61 6e 2c 65 6d 2c 73 75 62 2c 65 73 63 2c   ┆ dc4,nak,syn,etb,can,em,sub,esc,┆
0x05e4e0…05e500             66 73 2c 67 73 2c 0d 0a 72 73 2c 75 73 2c 73 70 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d   ┆fs,gs,  rs,us,sp,?,?,?,?,?,?,?, ┆
0x05e500…05e520             0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆ ?,?,?,?,?,?,?,?,?,?,  ?,?,?,?,?┆
0x05e520…05e540             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆,?,?,?,?,?,  ?,?,?,?,?,?,?,?,?,?┆
0x05e540…05e560             2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f   ┆,  ?,?,?,?,?,?,?,?,?,?,  ?,?,?,?┆
0x05e560…05e580             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f   ┆,?,?,?,?,?,?,  ?,?,?,?,?,?,?,?,?┆
0x05e580…05e5a0             2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f   ┆,?,  ?,?,?,?,?,?,?,?,?,?,  ?,?,?┆
0x05e5a0…05e5c0             2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 64   ┆,?,?,?,?,?,?,?,  ?,?,?,?,?,?,?,d┆
0x05e5c0…05e5e0             65 6c 29 3b 0d 0a 61 6c 66 61 3d 61 72 72 61 79 28 31 2e 2e 61 6c 66 61 6c 65 6e 67 74 68 29 6f   ┆el);  alfa=array(1..alfalength)o┆
0x05e5e0…05e600             66 20 63 68 61 72 3b 0d 0a 63 6f 64 65 64 5f 64 61 74 65 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f   ┆f char;  coded_date=packed  reco┆
0x05e600…05e620 (25, 0, 6)  72 64 0d 0a 79 65 61 72 5f 61 66 74 65 72 5f 31 39 30 30 3a 30 2e 2e 31 32 37 3b 0d 0a 6d 6f 6e   ┆rd  year_after_1900:0..127;  mon┆
0x05e620…05e640             74 68 3a 30 2e 2e 31 32 3b 0d 0a 64 61 79 3a 30 2e 2e 33 31 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 64   ┆th:0..12;  day:0..31;  end;  cod┆
0x05e640…05e660             65 64 5f 74 69 6d 65 3d 70 61 63 6b 65 64 0d 0a 72 65 63 6f 72 64 0d 0a 63 6f 6d 70 69 6c 65 72   ┆ed_time=packed  record  compiler┆
0x05e660…05e680             5f 76 65 72 73 69 6f 6e 3a 30 2e 2e 33 31 3b 0d 0a 68 6f 75 72 3a 30 2e 2e 32 33 3b 0d 0a 6d 69   ┆_version:0..31;  hour:0..23;  mi┆
0x05e680…05e6a0             6e 75 74 65 3a 30 2e 2e 35 39 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 64 65 64 5f 73 65 63 73 3d 70 61   ┆nute:0..59;  end;  coded_secs=pa┆
0x05e6a0…05e6c0             63 6b 65 64 0d 0a 72 65 63 6f 72 64 0d 0a 73 65 63 3a 30 2e 2e 35 39 3b 0d 0a 6d 73 65 63 3a 30   ┆cked  record  sec:0..59;  msec:0┆
0x05e6c0…05e6e0             2e 2e 39 39 39 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 64 65 64 5f 69 6e 63 3d 70 61 63 6b 65 64 0d 0a   ┆..999;  end;  coded_inc=packed  ┆
0x05e6e0…05e700             72 65 63 6f 72 64 0d 0a 64 61 79 73 3a 30 2e 2e 33 31 3b 0d 0a 68 6f 75 72 73 3a 30 2e 2e 32 33   ┆record  days:0..31;  hours:0..23┆
0x05e700…05e720             3b 0d 0a 6d 69 6e 73 3a 30 2e 2e 35 39 3b 0d 0a 73 65 63 73 3a 30 2e 2e 35 39 3b 0d 0a 6d 73 65   ┆;  mins:0..59;  secs:0..59;  mse┆
0x05e720…05e740             63 73 3a 30 2e 2e 39 39 39 3b 0d 0a 65 6e 64 3b 0d 0a 64 65 6c 61 79 74 79 70 65 3d 0d 0a 72 65   ┆cs:0..999;  end;  delaytype=  re┆
0x05e740…05e760             63 6f 72 64 0d 0a 70 72 65 76 5f 64 61 74 65 3a 63 6f 64 65 64 5f 64 61 74 65 3b 0d 0a 70 72 65   ┆cord  prev_date:coded_date;  pre┆
0x05e760…05e780             76 5f 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 70 72 65 76 5f 73 65 63 73 3a 63 6f   ┆v_time:coded_time;  prev_secs:co┆
0x05e780…05e7a0             64 65 64 5f 73 65 63 73 3b 0d 0a 69 6e 63 3a 63 6f 64 65 64 5f 69 6e 63 3b 0d 0a 65 6e 64 3b 0d   ┆ded_secs;  inc:coded_inc;  end; ┆
0x05e7a0…05e7c0             0a 63 6c 6f 63 6b 74 79 70 65 3d 0d 0a 72 65 63 6f 72 64 0d 0a 64 61 74 65 3a 63 6f 64 65 64 5f   ┆ clocktype=  record  date:coded_┆
0x05e7c0…05e7e0             64 61 74 65 3b 0d 0a 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 73 65 63 73 3a 63 6f   ┆date;  time:coded_time;  secs:co┆
0x05e7e0…05e800             64 65 64 5f 73 65 63 73 3b 0d 0a 65 6e 64 3b 0d 0a 73 65 6d 61 70 68 6f 72 65 3d 0d 0a 72 65 63   ┆ded_secs;  end;  semaphore=  rec┆
0x05e800…05e820 (25, 0, 7)  6f 72 64 0d 0a 63 68 61 69 6e 3a 61 64 64 72 3b 0d 0a 73 65 6d 63 68 61 69 6e 3a 5e 73 65 6d 61   ┆ord  chain:addr;  semchain:^sema┆
0x05e820…05e840             70 68 6f 72 65 0d 0a 65 6e 64 3b 0d 0a 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3d 0d 0a 72 65   ┆phore  end;  message_header=  re┆
0x05e840…05e860             63 6f 72 64 0d 0a 6e 75 6c 62 79 74 65 3a 62 79 74 65 3b 0d 0a 63 68 61 69 6e 3a 5e 6d 65 73 73   ┆cord  nulbyte:byte;  chain:^mess┆
0x05e860…05e880             61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 75 31 2c 75 32 2c 75 33 2c 75 34 3a 62 79 74 65 3b 0d 0a   ┆age_header;  u1,u2,u3,u4:byte;  ┆
0x05e880…05e8a0             6d 65 73 73 61 67 65 6b 69 6e 64 3a 69 6e 74 65 67 65 72 3b 0d 0a 73 69 7a 65 3a 69 6e 74 65 67   ┆messagekind:integer;  size:integ┆
0x05e8a0…05e8c0             65 72 3b 0d 0a 73 74 61 72 74 3a 61 64 64 72 3b 0d 0a 6f 77 6e 65 72 3a 5e 73 65 6d 61 70 68 6f   ┆er;  start:addr;  owner:^semapho┆
0x05e8c0…05e8e0             72 65 3b 0d 0a 61 6e 73 77 65 72 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 6d 73 67 63 68 61 69   ┆re;  answer:^semaphore;  msgchai┆
0x05e8e0…05e900             6e 3a 5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 73 74 61 63 6b 63 68 61 69 6e 3a 5e   ┆n:^message_header;  stackchain:^┆
0x05e900…05e920             6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 63 6f 6e 6e 65 63 74 69 6f 6e 5f 69 6e 64 65   ┆message_header;  connection_inde┆
0x05e920…05e940             78 3a 62 79 74 65 3b 0d 0a 63 72 65 64 69 74 5f 63 6f 75 6e 74 3a 62 79 74 65 3b 0d 0a 72 65 61   ┆x:byte;  credit_count:byte;  rea┆
0x05e940…05e960             73 6f 6e 3a 62 79 74 65 3b 0d 0a 65 76 65 6e 74 5f 6b 69 6e 64 3a 62 79 74 65 3b 0d 0a 65 6e 64   ┆son:byte;  event_kind:byte;  end┆
0x05e960…05e980             3b 0d 0a 72 65 66 65 72 65 6e 63 65 3d 5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d 0a 73   ┆;  reference=^message_header;  s┆
0x05e980…05e9a0             68 61 64 6f 77 3d 0d 0a 72 65 63 6f 72 64 0d 0a 69 6e 63 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 73   ┆hadow=  record  inc:^niltype;  s┆
0x05e9a0…05e9c0             68 61 64 6f 77 63 68 61 69 6e 3a 5e 73 68 61 64 6f 77 3b 0d 0a 65 6e 64 3b 0d 0a 70 72 6f 63 65   ┆hadowchain:^shadow;  end;  proce┆
0x05e9c0…05e9e0             73 73 5f 69 6e 66 3d 0d 0a 72 65 63 6f 72 64 0d 0a 65 6e 74 72 79 5f 70 6f 69 6e 74 3a 61 64 72   ┆ss_inf=  record  entry_point:adr┆
0x05e9e0…05ea00             3b 0d 0a 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 3a 61 64 72 3b 0d 0a 64 65 66 61 75 6c 74   ┆;  exception_point:adr;  default┆
0x05ea00…05ea20 (25, 0, 8)  5f 61 70 70 65 74 69 74 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 6c 61 73 74 5f 70 61 72 61 6d 5f 6f   ┆_appetite:integer;  last_param_o┆
0x05ea20…05ea40             66 66 73 65 74 3a 69 6e 74 65 67 65 72 0d 0a 65 6e 64 3b 0d 0a 63 6f 6e 73 74 0d 0a 6d 61 78 70   ┆ffset:integer  end;  const  maxp┆
0x05ea40…05ea60             61 72 61 6d 73 3d 33 30 3b 0d 0a 72 65 67 73 65 74 73 69 7a 65 3d 38 3b 0d 0a 70 73 3d 2d 37 3b   ┆arams=30;  regsetsize=8;  ps=-7;┆
0x05ea60…05ea80             0d 0a 73 62 3d 2d 36 3b 0d 0a 67 66 3d 2d 35 3b 0d 0a 6c 66 3d 2d 34 3b 0d 0a 6c 75 3d 2d 33 3b   ┆  sb=-6;  gf=-5;  lf=-4;  lu=-3;┆
0x05ea80…05eaa0             0d 0a 6c 6d 3d 2d 32 3b 0d 0a 69 62 3d 2d 31 3b 0d 0a 69 63 3d 30 3b 0d 0a 72 74 63 5f 6c 65 76   ┆  lm=-2;  ib=-1;  ic=0;  rtc_lev┆
0x05eaa0…05eac0             65 6c 5f 69 6e 64 65 78 3d 30 3b 0d 0a 74 74 6f 5f 6c 65 76 65 6c 5f 69 6e 64 65 78 3d 31 3b 0d   ┆el_index=0;  tto_level_index=1; ┆
0x05eac0…05eae0             0a 77 61 74 63 68 64 6f 67 68 3d 36 3b 0d 0a 6f 75 74 70 75 74 5f 69 6e 64 65 78 3d 38 3b 0d 0a   ┆ watchdogh=6;  output_index=8;  ┆
0x05eae0…05eb00             76 65 72 73 69 6f 6e 5f 69 6e 64 65 78 3d 39 3b 0d 0a 73 77 69 74 63 68 30 5f 69 6e 64 65 78 3d   ┆version_index=9;  switch0_index=┆
0x05eb00…05eb20             31 30 3b 0d 0a 73 77 69 74 63 68 31 5f 69 6e 64 65 78 3d 31 31 3b 0d 0a 66 69 72 73 74 5f 69 6f   ┆10;  switch1_index=11;  first_io┆
0x05eb20…05eb40             5f 69 6e 64 65 78 3d 31 32 3b 0d 0a 72 61 6d 5f 62 69 74 6d 61 70 5f 69 6e 64 65 78 3d 32 38 3b   ┆_index=12;  ram_bitmap_index=28;┆
0x05eb40…05eb60             0d 0a 70 72 6f 6d 5f 62 69 74 6d 61 70 5f 69 6e 64 65 78 3d 33 34 3b 0d 0a 69 64 5f 69 6e 64 65   ┆  prom_bitmap_index=34;  id_inde┆
0x05eb60…05eb80             78 3d 34 30 3b 0d 0a 6d 61 73 6b 5f 69 6e 64 65 78 3d 34 32 3b 0d 0a 70 61 72 61 6d 5f 69 6e 64   ┆x=40;  mask_index=42;  param_ind┆
0x05eb80…05eba0             65 78 3d 34 33 3b 0d 0a 6e 61 6d 65 5f 69 6e 64 65 78 3d 34 34 3b 0d 0a 63 6f 70 79 30 5f 69 6e   ┆ex=43;  name_index=44;  copy0_in┆
0x05eba0…05ebc0             64 65 78 3d 35 32 3b 0d 0a 63 6f 70 79 31 5f 69 6e 64 65 78 3d 35 33 3b 0d 0a 70 72 69 6e 74 63   ┆dex=52;  copy1_index=53;  printc┆
0x05ebc0…05ebe0             6f 75 6e 74 5f 69 6e 64 65 78 3d 35 34 3b 0d 0a 66 69 72 73 74 5f 6d 6f 64 75 6c 65 3d 31 36 3b   ┆ount_index=54;  first_module=16;┆
0x05ebe0…05ec00             0d 0a 6c 61 73 74 5f 6d 6f 64 75 6c 65 3d 36 33 3b 0d 0a 73 74 6f 70 73 74 61 74 65 3d 31 3b 0d   ┆  last_module=63;  stopstate=1; ┆
0x05ec00…05ec20 (25, 0, 9)  0a 65 78 69 74 73 74 61 74 65 3d 32 3b 0d 0a 72 75 6e 73 74 61 74 65 3d 33 3b 0d 0a 77 61 69 74   ┆ exitstate=2;  runstate=3;  wait┆
0x05ec20…05ec40             73 74 61 74 65 3d 34 3b 0d 0a 73 74 6f 70 5f 6c 65 6e 67 74 68 3d 38 3b 0d 0a 68 65 61 64 65 72   ┆state=4;  stop_length=8;  header┆
0x05ec40…05ec60             5f 73 69 7a 65 3d 74 79 70 65 73 69 7a 65 28 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 29 3b 0d   ┆_size=typesize(message_header); ┆
0x05ec60…05ec80             0a 77 6f 72 64 73 69 7a 65 3d 74 79 70 65 73 69 7a 65 28 69 6e 74 65 67 65 72 29 3b 0d 0a 70 6f   ┆ wordsize=typesize(integer);  po┆
0x05ec80…05eca0             69 6e 74 65 72 73 69 7a 65 3d 74 79 70 65 73 69 7a 65 28 61 64 72 29 3b 0d 0a 61 64 64 72 73 69   ┆intersize=typesize(adr);  addrsi┆
0x05eca0…05ecc0             7a 65 3d 74 79 70 65 73 69 7a 65 28 61 64 64 72 29 3b 0d 0a 74 79 70 65 0d 0a 64 65 73 63 72 69   ┆ze=typesize(addr);  type  descri┆
0x05ecc0…05ece0             70 74 6f 72 5f 73 65 67 6d 65 6e 74 3d 0d 0a 72 65 63 6f 72 64 0d 0a 64 65 73 63 72 69 70 74 6f   ┆ptor_segment=  record  descripto┆
0x05ece0…05ed00             72 5f 6c 65 6e 67 74 68 3a 69 6e 74 65 67 65 72 3b 0d 0a 6e 6f 5f 6f 66 5f 70 61 67 65 73 3a 69   ┆r_length:integer;  no_of_pages:i┆
0x05ed00…05ed20             6e 74 65 67 65 72 3b 0d 0a 70 61 67 65 73 69 7a 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 6c 61 73 74   ┆nteger;  pagesize:integer;  last┆
0x05ed20…05ed40             5f 70 61 67 65 5f 6c 65 6e 67 74 68 3a 69 6e 74 65 67 65 72 3b 0d 0a 6b 69 6e 64 3a 69 6e 74 65   ┆_page_length:integer;  kind:inte┆
0x05ed40…05ed60             67 65 72 3b 0d 0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 65 6e 74 72 79 5f 70 6f 69 6e 74 3a 61 64   ┆ger;  name:alfa;  entry_point:ad┆
0x05ed60…05ed80             64 72 3b 0d 0a 65 78 63 65 70 74 69 6f 6e 5f 70 6f 69 6e 74 3a 61 64 64 72 3b 0d 0a 64 65 66 61   ┆dr;  exception_point:addr;  defa┆
0x05ed80…05eda0             75 6c 74 5f 61 70 70 65 74 69 74 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 6c 61 73 74 5f 70 61 72 61   ┆ult_appetite:integer;  last_para┆
0x05eda0…05edc0             6d 5f 6f 66 66 73 65 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 73 6f 75 72 63 65 5f 64 61 74 65 3a 63   ┆m_offset:integer;  source_date:c┆
0x05edc0…05ede0             6f 64 65 64 5f 64 61 74 65 3b 0d 0a 73 6f 75 72 63 65 5f 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69   ┆oded_date;  source_time:coded_ti┆
0x05ede0…05ee00             6d 65 3b 0d 0a 76 65 72 73 69 6f 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a 3f 3a 69 6e 74 65 67 65 72   ┆me;  version:integer;  ?:integer┆
0x05ee00…05ee20 (25, 0, 10) 3b 0d 0a 65 6e 64 3b 0d 0a 63 6f 6e 73 74 0d 0a 73 75 6d 6b 69 6e 64 3d 30 3b 0d 0a 70 72 6f 63   ┆;  end;  const  sumkind=0;  proc┆
0x05ee20…05ee40             65 73 73 6b 69 6e 64 3d 31 3b 0d 0a 70 72 6f 63 65 64 75 72 65 6b 69 6e 64 3d 32 3b 0d 0a 66 75   ┆esskind=1;  procedurekind=2;  fu┆
0x05ee40…05ee60             6e 63 74 69 6f 6e 6b 69 6e 64 3d 33 3b 0d 0a 64 61 74 61 6b 69 6e 64 3d 36 3b 0d 0a 74 79 70 65   ┆nctionkind=3;  datakind=6;  type┆
0x05ee60…05ee80             0d 0a 70 61 72 61 6d 5f 64 65 73 63 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6b 69 6e 64 2c 0d 0a 73   ┆  param_descr=  record  kind,  s┆
0x05ee80…05eea0             69 7a 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 70 61 72 61 6d 5f 61 72 72 61 79 3d   ┆ize:integer;  end;  param_array=┆
0x05eea0…05eec0             61 72 72 61 79 28 31 2e 2e 6d 61 78 70 61 72 61 6d 73 29 6f 66 20 70 61 72 61 6d 5f 64 65 73 63   ┆array(1..maxparams)of param_desc┆
0x05eec0…05eee0             72 3b 0d 0a 70 61 72 61 6d 5f 72 65 63 6f 72 64 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e 6f 5f 6f 66   ┆r;  param_record=  record  no_of┆
0x05eee0…05ef00             5f 70 61 72 61 6d 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 70 61 72 61 6d 73 3a 70 61 72 61 6d 5f 61   ┆_params:integer;  params:param_a┆
0x05ef00…05ef20             72 72 61 79 3b 0d 0a 65 6e 64 3b 0d 0a 65 78 74 5f 6c 69 6e 6b 74 61 62 6c 65 5f 65 6e 74 72 79   ┆rray;  end;  ext_linktable_entry┆
0x05ef20…05ef40             3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 70 61 72 61 6d 73 3a 70 61   ┆=  record  name:alfa;  params:pa┆
0x05ef40…05ef60             72 61 6d 5f 72 65 63 6f 72 64 3b 0d 0a 65 6e 64 3b 0d 0a 70 72 6f 63 65 73 73 5f 64 65 73 63 72   ┆ram_record;  end;  process_descr┆
0x05ef60…05ef80             69 70 74 6f 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 69 6e 63 61 72 6e 61 74 69 6f 6e 63 6f 75 6e 74   ┆iptor=  record  incarnationcount┆
0x05ef80…05efa0             3a 69 6e 74 65 67 65 72 3b 0d 0a 70 61 72 61 6d 5f 64 65 73 63 72 5f 72 65 66 3a 5e 70 61 72 61   ┆:integer;  param_descr_ref:^para┆
0x05efa0…05efc0             6d 5f 72 65 63 6f 72 64 3b 0d 0a 6c 69 6e 6b 5f 73 74 61 74 65 3a 69 6e 74 65 67 65 72 3b 0d 0a   ┆m_record;  link_state:integer;  ┆
0x05efc0…05efe0             70 72 6f 63 65 73 73 5f 69 6e 66 5f 72 65 66 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 6e 61 6d 65 3a   ┆process_inf_ref:^niltype;  name:┆
0x05efe0…05f000             61 6c 66 61 3b 0d 0a 70 72 6f 63 65 73 73 63 68 61 69 6e 3a 5e 70 72 6f 63 65 73 73 5f 64 65 73   ┆alfa;  processchain:^process_des┆
0x05f000…05f020 (25, 0, 11) 63 72 69 70 74 6f 72 3b 0d 0a 65 6e 64 3b 0d 0a 70 72 6f 63 65 73 73 72 65 63 3d 0d 0a 72 65 63   ┆criptor;  end;  processrec=  rec┆
0x05f020…05f040             6f 72 64 0d 0a 70 72 6f 63 65 73 73 72 65 66 3a 5e 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70   ┆ord  processref:^process_descrip┆
0x05f040…05f060             74 6f 72 3b 0d 0a 66 69 72 73 74 70 61 72 61 6d 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 73 69 7a 65   ┆tor;  firstparam:^niltype;  size┆
0x05f060…05f080             5f 6f 66 5f 70 61 72 61 6d 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 61 64 61 6d 73   ┆_of_params:integer;  end;  adams┆
0x05f080…05f0a0             65 6d 74 79 70 65 3d 28 61 64 61 6d 73 65 6d 2c 6f 70 65 72 61 74 6f 72 73 65 6d 2c 6c 6f 61 64   ┆emtype=(adamsem,operatorsem,load┆
0x05f0a0…05f0c0             65 72 73 65 6d 2c 67 6c 6f 62 61 6c 73 65 6d 2c 6c 6f 61 64 64 72 69 76 65 72 73 65 6d 2c 70 61   ┆ersem,globalsem,loaddriversem,pa┆
0x05f0c0…05f0e0             78 73 65 6d 2c 72 65 73 74 61 72 74 73 65 6d 2c 3f 2c 0d 0a 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c   ┆xsem,restartsem,?,  ?,?,?,?,?,?,┆
0x05f0e0…05f100             3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c 3f 2c   ┆?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,┆
0x05f100…05f120             3f 2c 3f 29 3b 0d 0a 61 64 61 6d 76 65 63 74 6f 72 3d 61 72 72 61 79 28 61 64 61 6d 73 65 6d 74   ┆?,?);  adamvector=array(adamsemt┆
0x05f120…05f140             79 70 65 29 6f 66 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 73 79 73 74 65 6d 5f 76 65 63 74 6f 72   ┆ype)of^semaphore;  system_vector┆
0x05f140…05f160             3d 21 61 64 61 6d 76 65 63 74 6f 72 3b 0d 0a 73 65 6d 74 79 70 65 3d 28 64 65 61 6c 6c 6f 63 61   ┆=!adamvector;  semtype=(dealloca┆
0x05f160…05f180             74 6f 72 73 65 6d 2c 6c 69 6e 6b 65 72 73 65 6d 2c 73 74 6f 70 73 65 6d 2c 61 6c 6c 6f 63 73 65   ┆torsem,linkersem,stopsem,allocse┆
0x05f180…05f1a0             6d 2c 65 78 63 65 70 74 69 6f 6e 73 65 6d 2c 0d 0a 6f 70 73 65 6d 2c 72 65 73 74 61 72 74 5f 73   ┆m,exceptionsem,  opsem,restart_s┆
0x05f1a0…05f1c0             65 6d 2c 73 74 6f 70 5f 6d 73 67 2c 77 72 69 74 65 72 61 6d 73 65 6d 2c 61 64 64 72 73 65 6d 2c   ┆em,stop_msg,writeramsem,addrsem,┆
0x05f1c0…05f1e0             74 65 73 74 6f 75 74 70 75 74 73 65 6d 2c 63 6f 6d 6d 6f 6e 70 6f 6f 6c 2c 0d 0a 6d 6f 6e 69 74   ┆testoutputsem,commonpool,  monit┆
0x05f1e0…05f200             6f 72 73 65 6d 2c 70 72 69 6e 74 73 74 61 74 73 65 6d 2c 74 69 6d 65 72 73 65 6d 2c 69 6f 74 69   ┆orsem,printstatsem,timersem,ioti┆
0x05f200…05f220 (25, 0, 12) 6d 65 72 73 65 6d 2c 5f 61 64 61 6d 73 65 6d 2c 0d 0a 74 69 6d 65 72 62 61 73 65 2c 65 78 63 65   ┆mersem,_adamsem,  timerbase,exce┆
0x05f220…05f240             70 74 69 6f 6e 73 74 61 63 6b 2c 6d 6f 6e 69 74 6f 72 73 74 61 63 6b 2c 0d 0a 74 69 6d 65 72 73   ┆ptionstack,monitorstack,  timers┆
0x05f240…05f260             74 61 63 6b 2c 61 6c 6c 6f 63 61 74 6f 72 73 74 61 63 6b 2c 6c 69 6e 6b 65 72 73 74 61 63 6b 2c   ┆tack,allocatorstack,linkerstack,┆
0x05f260…05f280             6f 70 65 72 61 74 6f 72 73 74 61 63 6b 29 3b 0d 0a 73 65 63 72 65 74 5f 76 65 63 74 6f 72 3d 61   ┆operatorstack);  secret_vector=a┆
0x05f280…05f2a0             72 72 61 79 28 73 65 6d 74 79 70 65 29 6f 66 0d 0a 72 65 63 6f 72 64 0d 0a 6e 75 6c 62 79 74 65   ┆rray(semtype)of  record  nulbyte┆
0x05f2a0…05f2c0             3a 62 79 74 65 3b 0d 0a 70 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 65 6e 64 3b 0d 0a 69 6e 63   ┆:byte;  p:^semaphore;  end;  inc┆
0x05f2c0…05f2e0             61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 74 69   ┆arnation_descriptor=  record  ti┆
0x05f2e0…05f300             6d 65 72 3a 69 6e 74 65 67 65 72 3b 0d 0a 6c 65 76 65 6c 3a 62 79 74 65 3b 0d 0a 64 65 6c 61 79   ┆mer:integer;  level:byte;  delay┆
0x05f300…05f320             63 68 61 69 6e 3a 5e 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72 3b 0d 0a   ┆chain:^incarnation_descriptor;  ┆
0x05f320…05f340             65 78 63 65 70 74 69 6f 6e 63 6f 64 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 69 63 3a 61 64 64   ┆exceptioncode:integer;  exic:add┆
0x05f340…05f360             72 3b 0d 0a 65 78 63 65 70 74 69 6f 6e 70 6f 69 6e 74 3a 61 64 64 72 3b 0d 0a 6d 61 78 73 74 61   ┆r;  exceptionpoint:addr;  maxsta┆
0x05f360…05f380             63 6b 3a 69 6e 74 65 67 65 72 3b 0d 0a 72 65 67 73 65 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 6d 72   ┆ck:integer;  regset:integer;  mr┆
0x05f380…05f3a0             65 67 73 65 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 69 6e 63 73 74 61 74 65 3a 69 6e 74 65 67 65 72   ┆egset:integer;  incstate:integer┆
0x05f3a0…05f3c0             3b 0d 0a 70 72 6f 63 65 73 73 72 65 66 3a 5e 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f   ┆;  processref:^process_descripto┆
0x05f3c0…05f3e0             72 3b 0d 0a 73 65 6d 63 68 61 69 6e 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 72 65 66 63 68 61   ┆r;  semchain:^semaphore;  refcha┆
0x05f3e0…05f400             69 6e 3a 5e 72 65 66 65 72 65 6e 63 65 3b 0d 0a 73 68 61 64 6f 77 63 68 61 69 6e 3a 5e 73 68 61   ┆in:^reference;  shadowchain:^sha┆
0x05f400…05f420 (25, 0, 13) 64 6f 77 3b 0d 0a 6d 73 67 63 68 61 69 6e 3a 5e 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 3b 0d   ┆dow;  msgchain:^message_header; ┆
0x05f420…05f440             0a 70 72 6f 63 65 73 73 63 68 61 69 6e 3a 5e 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f   ┆ processchain:^process_descripto┆
0x05f440…05f460             72 3b 0d 0a 77 6f 72 6b 73 65 6d 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 73 65 63 72 65 74 70 6f   ┆r;  worksem:semaphore;  secretpo┆
0x05f460…05f480             69 6e 74 65 72 3a 5e 73 65 63 72 65 74 5f 76 65 63 74 6f 72 3b 0d 0a 77 6f 72 6b 72 65 66 3a 72   ┆inter:^secret_vector;  workref:r┆
0x05f480…05f4a0             65 66 65 72 65 6e 63 65 3b 0d 0a 70 6c 69 6e 65 74 61 62 6c 65 3a 5e 6e 69 6c 74 79 70 65 3b 0d   ┆eference;  plinetable:^niltype; ┆
0x05f4a0…05f4c0             0a 69 6e 63 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 66 61 74 68 65 72 3a 5e 69 6e 63 61 72 6e 61 74   ┆ incname:alfa;  father:^incarnat┆
0x05f4c0…05f4e0             69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72 3b 0d 0a 73 68 61 64 6f 77 72 65 66 3a 5e 73 68 61 64   ┆ion_descriptor;  shadowref:^shad┆
0x05f4e0…05f500             6f 77 3b 0d 0a 65 6e 64 3b 0d 0a 65 78 74 5f 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72   ┆ow;  end;  ext_incarnation_descr┆
0x05f500…05f520             69 70 74 6f 72 3d 0d 0a 72 65 63 6f 72 64 0d 0a 74 69 6d 65 72 3a 69 6e 74 65 67 65 72 3b 0d 0a   ┆iptor=  record  timer:integer;  ┆
0x05f520…05f540             6c 65 76 65 6c 3a 62 79 74 65 3b 0d 0a 64 65 6c 61 79 63 68 61 69 6e 3a 61 64 72 3b 0d 0a 65 78   ┆level:byte;  delaychain:adr;  ex┆
0x05f540…05f560             63 65 70 74 69 6f 6e 63 6f 64 65 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 69 63 3a 61 64 64 72 3b   ┆ceptioncode:integer;  exic:addr;┆
0x05f560…05f580             0d 0a 65 78 63 65 70 74 69 6f 6e 70 6f 69 6e 74 3a 61 64 64 72 3b 0d 0a 6d 61 78 73 74 61 63 6b   ┆  exceptionpoint:addr;  maxstack┆
0x05f580…05f5a0             3a 69 6e 74 65 67 65 72 3b 0d 0a 72 65 67 73 65 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 6d 72 65 67   ┆:integer;  regset:integer;  mreg┆
0x05f5a0…05f5c0             73 65 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 69 6e 63 73 74 61 74 65 3a 69 6e 74 65 67 65 72 3b 0d   ┆set:integer;  incstate:integer; ┆
0x05f5c0…05f5e0             0a 70 72 6f 63 65 73 73 72 65 66 3a 61 64 72 3b 0d 0a 73 65 6d 63 68 61 69 6e 3a 61 64 72 3b 0d   ┆ processref:adr;  semchain:adr; ┆
0x05f5e0…05f600             0a 72 65 66 63 68 61 69 6e 3a 61 64 72 3b 0d 0a 73 68 61 64 6f 77 63 68 61 69 6e 3a 61 64 72 3b   ┆ refchain:adr;  shadowchain:adr;┆
0x05f600…05f620 (25, 0, 14) 0d 0a 6d 73 67 63 68 61 69 6e 3a 61 64 72 3b 0d 0a 70 72 6f 63 65 73 73 63 68 61 69 6e 3a 61 64   ┆  msgchain:adr;  processchain:ad┆
0x05f620…05f640             72 3b 0d 0a 77 6f 72 6b 73 65 6d 3a 61 64 64 72 3b 0d 0a 73 74 61 74 69 73 74 69 63 3a 61 64 72   ┆r;  worksem:addr;  statistic:adr┆
0x05f640…05f660             3b 0d 0a 73 65 63 72 65 74 70 6f 69 6e 74 65 72 3a 61 64 72 3b 0d 0a 77 6f 72 6b 72 65 66 3a 61   ┆;  secretpointer:adr;  workref:a┆
0x05f660…05f680             64 64 72 3b 0d 0a 68 65 61 70 3a 61 64 72 3b 0d 0a 70 6c 69 6e 65 74 61 62 6c 65 3a 61 64 72 3b   ┆ddr;  heap:adr;  plinetable:adr;┆
0x05f680…05f6a0             0d 0a 69 6e 63 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 66 61 74 68 65 72 3a 61 64 72 3b 0d 0a 73 68   ┆  incname:alfa;  father:adr;  sh┆
0x05f6a0…05f6c0             61 64 6f 77 72 65 66 3a 61 64 72 3b 0d 0a 65 6e 64 3b 0d 0a 6c 6f 6f 6b 75 70 5f 64 65 73 63 72   ┆adowref:adr;  end;  lookup_descr┆
0x05f6c0…05f6e0             69 70 74 6f 72 5f 73 65 67 6d 65 6e 74 3d 0d 0a 72 65 63 6f 72 64 0d 0a 6e 61 6d 65 3a 61 6c 66   ┆iptor_segment=  record  name:alf┆
0x05f6e0…05f700             61 3b 0d 0a 64 65 73 63 72 69 70 74 6f 72 5f 6c 65 6e 67 74 68 2c 0d 0a 6e 6f 5f 6f 66 5f 70 61   ┆a;  descriptor_length,  no_of_pa┆
0x05f700…05f720             67 65 73 2c 0d 0a 70 61 67 65 73 69 7a 65 2c 0d 0a 6c 61 73 74 5f 70 61 67 65 5f 6c 65 6e 67 74   ┆ges,  pagesize,  last_page_lengt┆
0x05f720…05f740             68 2c 0d 0a 6b 69 6e 64 3a 69 6e 74 65 67 65 72 3b 0d 0a 64 65 66 61 75 6c 74 5f 61 70 70 65 74   ┆h,  kind:integer;  default_appet┆
0x05f740…05f760             69 74 65 2c 0d 0a 6c 61 73 74 5f 70 61 72 61 6d 5f 6f 66 66 73 65 74 2c 0d 0a 6e 6f 5f 6f 66 5f   ┆ite,  last_param_offset,  no_of_┆
0x05f760…05f780             70 61 72 61 6d 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 64 61 74 65 3a 63 6f 64 65 64 5f 64 61 74 65   ┆params:integer;  date:coded_date┆
0x05f780…05f7a0             3b 0d 0a 74 69 6d 65 3a 63 6f 64 65 64 5f 74 69 6d 65 3b 0d 0a 73 6f 75 72 63 65 5f 64 61 74 65   ┆;  time:coded_time;  source_date┆
0x05f7a0…05f7c0             3a 63 6f 64 65 64 5f 64 61 74 65 3b 0d 0a 73 6f 75 72 63 65 5f 74 69 6d 65 3a 63 6f 64 65 64 5f   ┆:coded_date;  source_time:coded_┆
0x05f7c0…05f7e0             74 69 6d 65 3b 0d 0a 76 65 72 73 69 6f 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 6e 64 3b 0d 0a 76   ┆time;  version:integer;  end;  v┆
0x05f7e0…05f800             61 72 0d 0a 6f 77 6e 3a 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72 3b 0d   ┆ar  own:incarnation_descriptor; ┆
0x05f800…05f820 (25, 0, 15) 0a 66 75 6e 63 74 69 6f 6e 20 61 62 73 28 78 3a 6e 69 6c 74 79 70 65 29 3a 6e 69 6c 74 79 70 65   ┆ function abs(x:niltype):niltype┆
0x05f820…05f840             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 61 6c 6c 6f 63 28 76 61 72 20   ┆;external;  procedure alloc(var ┆
0x05f840…05f860             72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 70 3a 70 6f 6f 6c 20 30 3b 0d 0a 76 61 72 20 73   ┆r:reference;var p:pool 0;  var s┆
0x05f860…05f880             3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆:semaphore);external;  function ┆
0x05f880…05f8a0             61 6c 6c 6f 63 64 65 6c 61 79 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 70   ┆allocdelay(var r:reference;var p┆
0x05f8a0…05f8c0             3a 70 6f 6f 6c 20 30 3b 0d 0a 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 6d 73 65 63 73 3a   ┆:pool 0;  var s:semaphore;msecs:┆
0x05f8c0…05f8e0             69 6e 74 65 67 65 72 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d   ┆integer):activation;  external; ┆
0x05f8e0…05f900             0a 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 6f 63 70 6f 6f 6c 28 76 61 72 20 70 3a 70 6f 6f 6c 20 30   ┆ function allocpool(var p:pool 0┆
0x05f900…05f920             3b 0d 0a 6e 75 6d 62 65 72 2c 62 79 74 65 73 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72   ┆;  number,bytes:integer):integer┆
0x05f920…05f940             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 62 72 65 61 6b 28 76 61 72 20   ┆;external;  procedure break(var ┆
0x05f940…05f960             73 68 3a 73 68 61 64 6f 77 3b 65 78 63 6f 64 65 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e   ┆sh:shadow;excode:integer);extern┆
0x05f960…05f980             61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 75 66 63 6f 75 6e 74 28 76 61 72 20 72 3a 72 65 66   ┆al;  function bufcount(var r:ref┆
0x05f980…05f9a0             65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74   ┆erence):integer;external;  funct┆
0x05f9a0…05f9c0             69 6f 6e 20 62 75 66 73 69 7a 65 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74   ┆ion bufsize(var r:reference):int┆
0x05f9c0…05f9e0             65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 79 74 65 63 6f 75   ┆eger;external;  function bytecou┆
0x05f9e0…05fa00             6e 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65   ┆nt(var r:reference):integer;exte┆
0x05fa00…05fa20 (25, 1, 1)  72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 68 72 28 69 6e 74 3a 30 2e 2e 31 32 37 29 3a   ┆rnal;  function chr(int:0..127):┆
0x05fa20…05fa40             63 68 61 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 63 6b 5f 69   ┆char;external;  function clock_i┆
0x05fa40…05fa60             6e 63 72 65 6d 65 6e 74 28 74 3a 63 6c 6f 63 6b 74 79 70 65 3b 69 6e 63 3a 63 6f 64 65 64 5f 69   ┆ncrement(t:clocktype;inc:coded_i┆
0x05fa60…05fa80             6e 63 29 3a 63 6c 6f 63 6b 74 79 70 65 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74   ┆nc):clocktype;  external;  funct┆
0x05fa80…05faa0             69 6f 6e 20 63 6c 6f 63 6b 5f 6c 65 73 73 5f 74 68 61 6e 28 74 31 2c 74 32 3a 63 6c 6f 63 6b 74   ┆ion clock_less_than(t1,t2:clockt┆
0x05faa0…05fac0             79 70 65 29 3a 62 6f 6f 6c 65 61 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69   ┆ype):boolean;  external;  functi┆
0x05fac0…05fae0             6f 6e 20 63 6c 6f 63 6b 5f 64 69 66 66 65 72 65 6e 63 65 28 74 31 2c 74 32 3a 63 6c 6f 63 6b 74   ┆on clock_difference(t1,t2:clockt┆
0x05fae0…05fb00             79 70 65 29 3a 63 6f 64 65 64 5f 69 6e 63 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63   ┆ype):coded_inc;  external;  func┆
0x05fb00…05fb20             74 69 6f 6e 20 63 72 63 31 36 28 6f 70 31 2c 6f 70 32 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65   ┆tion crc16(op1,op2:integer):inte┆
0x05fb20…05fb40             67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 69   ┆ger;external;  function create(i┆
0x05fb40…05fb60             6e 63 61 72 6e 61 74 69 6f 6e 6e 61 6d 65 3a 61 6c 66 61 3b 0d 0a 70 72 6f 63 65 73 3a 70 72 6f   ┆ncarnationname:alfa;  proces:pro┆
0x05fb60…05fb80             63 65 73 73 72 65 63 3b 0d 0a 76 61 72 20 73 68 3a 73 68 61 64 6f 77 3b 0d 0a 73 74 6f 72 61 67   ┆cessrec;  var sh:shadow;  storag┆
0x05fb80…05fba0             65 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆e:integer):integer;  external;  ┆
0x05fba0…05fbc0             70 72 6f 63 65 64 75 72 65 20 64 65 66 69 6e 65 74 69 6d 65 72 28 6f 6e 6f 66 66 3a 62 6f 6f 6c   ┆procedure definetimer(onoff:bool┆
0x05fbc0…05fbe0             65 61 6e 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 64 65 6c 65 74 65 5f   ┆ean);external;  function delete_┆
0x05fbe0…05fc00             73 65 6d 61 70 68 6f 72 65 28 76 61 72 20 73 5f 6e 61 6d 65 3a 21 61 6c 66 61 29 3a 69 6e 74 65   ┆semaphore(var s_name:!alfa):inte┆
0x05fc00…05fc20 (25, 1, 2)  67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 65 6d 70 74 79 28   ┆ger;  external;  function empty(┆
0x05fc20…05fc40             76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61   ┆var r:reference):boolean;externa┆
0x05fc40…05fc60             6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 65 6f 69 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61   ┆l;  function eoi:boolean;externa┆
0x05fc60…05fc80             6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 65 78 63 65 70 74 69 6f 6e 28 65 78 63 6f 64 65 3a 69   ┆l;  procedure exception(excode:i┆
0x05fc80…05fca0             6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 69 72 73   ┆nteger);external;  function firs┆
0x05fca0…05fcc0             74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72   ┆t(var r:reference):integer;exter┆
0x05fcc0…05fce0             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 63 6c 6f 63 6b 3a 63 6c 6f 63 6b 74 79 70   ┆nal;  function getclock:clocktyp┆
0x05fce0…05fd00             65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 62 79 74 65 62 6c 6f   ┆e;external;  procedure inbyteblo┆
0x05fd00…05fd20             63 6b 0d 0a 28 76 61 72 20 6e 65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c 61   ┆ck  (var next:integer;  first,la┆
0x05fd20…05fd40             73 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29 3b   ┆st:integer;  var msg:reference);┆
0x05fd40…05fd60             0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 77 6f 72 64 62 6c 6f   ┆  external;  procedure inwordblo┆
0x05fd60…05fd80             63 6b 0d 0a 28 76 61 72 20 6e 65 78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c 61   ┆ck  (var next:integer;  first,la┆
0x05fd80…05fda0             73 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29 3b   ┆st:integer;  var msg:reference);┆
0x05fda0…05fdc0             0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 28 76 61 72 20 72   ┆  external;  function last(var r┆
0x05fdc0…05fde0             3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆:reference):integer;external;  f┆
0x05fde0…05fe00             75 6e 63 74 69 6f 6e 20 6c 69 6e 6b 28 65 78 74 65 72 6e 61 6c 5f 6e 61 6d 65 3a 61 6c 66 61 3b   ┆unction link(external_name:alfa;┆
0x05fe00…05fe20 (25, 1, 3)  0d 0a 76 61 72 20 70 72 6f 63 65 73 3a 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f 72 29   ┆  var proces:process_descriptor)┆
0x05fe20…05fe40             3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 6f 63   ┆:integer;external;  function loc┆
0x05fe40…05fe60             6b 65 64 28 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74   ┆ked(var s:semaphore):boolean;ext┆
0x05fe60…05fe80             65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 5f 73 65 6d 61 70 68 6f 72 65 28   ┆ernal;  function name_semaphore(┆
0x05fe80…05fea0             76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 76 61 72 20 73 5f 6e 61 6d 65 3a 21 61 6c 66 61   ┆var s:semaphore;var s_name:!alfa┆
0x05fea0…05fec0             29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆):integer;  external;  procedure┆
0x05fec0…05fee0             20 6e 65 77 28 76 61 72 20 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆ new(var p:^niltype);external;  ┆
0x05fee0…05ff00             66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69   ┆function next(var r:reference):i┆
0x05ff00…05ff20             6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 28 76   ┆nteger;external;  function nil(v┆
0x05ff20…05ff40             61 72 20 72 3a 5e 6e 69 6c 74 79 70 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b   ┆ar r:^niltype):boolean;external;┆
0x05ff40…05ff60             0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 72 65 66 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63   ┆  function nilref(var r:referenc┆
0x05ff60…05ff80             65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f   ┆e):boolean;external;  function o┆
0x05ff80…05ffa0             66 66 73 65 74 3d 66 69 72 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74   ┆ffset=first(var r:reference):int┆
0x05ffa0…05ffc0             65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 28 76 61   ┆eger;external;  function open(va┆
0x05ffc0…05ffe0             72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b   ┆r s:semaphore):boolean;external;┆
0x05ffe0…060000             0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 70 6f 6f 6c 28 76 61 72 20 70 3a 70 6f 6f 6c 20 31   ┆  function openpool(var p:pool 1┆
0x060000…060020 (25, 1, 4)  29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 72   ┆):boolean;external;  function or┆
0x060020…060040             64 28 78 3a 6e 69 6c 74 79 70 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆d(x:niltype):integer;external;  ┆
0x060040…060060             70 72 6f 63 65 64 75 72 65 20 6f 75 74 62 79 74 65 62 6c 6f 63 6b 0d 0a 28 76 61 72 20 6e 65 78   ┆procedure outbyteblock  (var nex┆
0x060060…060080             74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c 61 73 74 3a 69 6e 74 65 67 65 72 3b 0d   ┆t:integer;  first,last:integer; ┆
0x060080…0600a0             0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d   ┆ var msg:reference);  external; ┆
0x0600a0…0600c0             0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 77 6f 72 64 62 6c 6f 63 6b 0d 0a 28 76 61 72 20 6e 65   ┆ procedure outwordblock  (var ne┆
0x0600c0…0600e0             78 74 3a 69 6e 74 65 67 65 72 3b 0d 0a 66 69 72 73 74 2c 6c 61 73 74 3a 69 6e 74 65 67 65 72 3b   ┆xt:integer;  first,last:integer;┆
0x0600e0…060100             0d 0a 76 61 72 20 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b   ┆  var msg:reference);  external;┆
0x060100…060120             0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 77 6e 65 72 74 65 73 74 28 76 61 72 20 70 3a 70 6f 6f 6c 20   ┆  function ownertest(var p:pool ┆
0x060120…060140             31 3b 0d 0a 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 6f 6f 6c 65 61 6e 3b 0d 0a 65   ┆1;  var r:reference):boolean;  e┆
0x060140…060160             78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 61 73 73 69 76 65 28 76 61 72 20 73   ┆xternal;  function passive(var s┆
0x060160…060180             3a 73 65 6d 61 70 68 6f 72 65 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70   ┆:semaphore):boolean;external;  p┆
0x060180…0601a0             72 6f 63 65 64 75 72 65 20 70 6f 70 28 76 61 72 20 72 31 2c 72 32 3a 72 65 66 65 72 65 6e 63 65   ┆rocedure pop(var r1,r2:reference┆
0x0601a0…0601c0             29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 72 65 64 28 78 3a 6e 69 6c   ┆);external;  function pred(x:nil┆
0x0601c0…0601e0             74 79 70 65 29 3a 6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75   ┆type):niltype;external;  procedu┆
0x0601e0…060200             72 65 20 70 75 73 68 28 76 61 72 20 72 31 2c 72 32 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74   ┆re push(var r1,r2:reference);ext┆
0x060200…060220 (25, 1, 5)  65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 66 28 76 61 72 20 73 3a 73 65 6d 61 70   ┆ernal;  function ref(var s:semap┆
0x060220…060240             68 6f 72 65 29 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63   ┆hore):^semaphore;external;  proc┆
0x060240…060260             65 64 75 72 65 20 72 65 6c 65 61 73 65 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65   ┆edure release(var r:reference);e┆
0x060260…060280             78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 6c 65 61 73 65 70 6f 6f 6c 28 76   ┆xternal;  function releasepool(v┆
0x060280…0602a0             61 72 20 70 3a 70 6f 6f 6c 20 30 3b 6e 6f 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b   ┆ar p:pool 0;no:integer):integer;┆
0x0602a0…0602c0             0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 6d 6f 76 65 28 76 61   ┆  external;  procedure remove(va┆
0x0602c0…0602e0             72 20 73 68 3a 73 68 61 64 6f 77 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆r sh:shadow);external;  function┆
0x0602e0…060300             20 72 65 73 65 72 76 65 63 68 28 76 61 72 20 63 68 5f 6d 73 67 3a 72 65 66 65 72 65 6e 63 65 3b   ┆ reservech(var ch_msg:reference;┆
0x060300…060320             0d 0a 6c 65 76 65 6c 2c 6d 61 73 6b 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 0d 0a   ┆  level,mask:integer):integer;  ┆
0x060320…060340             65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 28 76 61 72 20   ┆external;  procedure return(var ┆
0x060340…060360             72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆r:reference);external;  function┆
0x060360…060380             20 73 65 61 72 63 68 5f 73 65 6d 61 70 68 6f 72 65 28 76 61 72 20 73 5f 6e 61 6d 65 3a 21 61 6c   ┆ search_semaphore(var s_name:!al┆
0x060380…0603a0             66 61 29 3a 5e 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63   ┆fa):^semaphore;  external;  proc┆
0x0603a0…0603c0             65 64 75 72 65 20 73 65 6e 64 6c 69 6e 6b 65 72 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65   ┆edure sendlinker(var r:reference┆
0x0603c0…0603e0             29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 6e 64 74 69 6d 65 72   ┆);external;  procedure sendtimer┆
0x0603e0…060400             28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f   ┆(var r:reference);external;  pro┆
0x060400…060420 (25, 1, 6)  63 65 64 75 72 65 20 73 65 6e 73 65 73 65 6d 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b   ┆cedure sensesem(var r:reference;┆
0x060420…060440             76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63   ┆var s:semaphore);external;  proc┆
0x060440…060460             65 64 75 72 65 20 73 65 74 62 79 74 65 63 6f 75 6e 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e   ┆edure setbytecount(var r:referen┆
0x060460…060480             63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65   ┆ce;val:integer);external;  proce┆
0x060480…0604a0             64 75 72 65 20 73 65 74 66 69 72 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61   ┆dure setfirst(var r:reference;va┆
0x0604a0…0604c0             6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆l:integer);external;  procedure ┆
0x0604c0…0604e0             73 65 74 6c 61 73 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74 65   ┆setlast(var r:reference;val:inte┆
0x0604e0…060500             67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 6e 65 78   ┆ger);external;  procedure setnex┆
0x060500…060520             74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65   ┆t(var r:reference;val:integer);e┆
0x060520…060540             78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 6f 66 66 73 65 74 28 76 61   ┆xternal;  procedure setoffset(va┆
0x060540…060560             72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72   ┆r r:reference;val:integer);exter┆
0x060560…060580             6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 70 72 69 6f 72 69 74 79 28 70 72 69 6f   ┆nal;  procedure setpriority(prio┆
0x060580…0605a0             72 69 74 79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75   ┆rity:integer);external;  procedu┆
0x0605a0…0605c0             72 65 20 73 65 74 74 6f 70 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 69 6e   ┆re settop(var r:reference;val:in┆
0x0605c0…0605e0             74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 75   ┆teger);external;  procedure setu┆
0x0605e0…060600             31 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74 65 29 3b 65 78 74 65   ┆1(var r:reference;val:byte);exte┆
0x060600…060620 (25, 1, 7)  72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 75 32 28 76 61 72 20 72 3a 72 65 66   ┆rnal;  procedure setu2(var r:ref┆
0x060620…060640             65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63   ┆erence;val:byte);external;  proc┆
0x060640…060660             65 64 75 72 65 20 73 65 74 75 33 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a   ┆edure setu3(var r:reference;val:┆
0x060660…060680             62 79 74 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 75 34   ┆byte);external;  procedure setu4┆
0x060680…0606a0             28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 6c 3a 62 79 74 65 29 3b 65 78 74 65 72   ┆(var r:reference;val:byte);exter┆
0x0606a0…0606c0             6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 69 67 6e 61 6c 28 76 61 72 20 72 3a 72 65 66   ┆nal;  procedure signal(var r:ref┆
0x0606c0…0606e0             65 72 65 6e 63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c   ┆erence;var s:semaphore);external┆
0x0606e0…060700             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 74 61 63 6b 64 65 70 74 68 28 76 61 72 20 72 3a 72 65 66   ┆;  function stackdepth(var r:ref┆
0x060700…060720             65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65   ┆erence):integer;external;  proce┆
0x060720…060740             64 75 72 65 20 73 74 61 72 74 28 76 61 72 20 73 68 3a 73 68 61 64 6f 77 3b 70 72 69 6f 72 69 74   ┆dure start(var sh:shadow;priorit┆
0x060740…060760             79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆y:integer);external;  procedure ┆
0x060760…060780             73 74 6f 70 28 76 61 72 20 73 68 3a 73 68 61 64 6f 77 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆stop(var sh:shadow);external;  f┆
0x060780…0607a0             75 6e 63 74 69 6f 6e 20 73 75 63 63 28 78 3a 6e 69 6c 74 79 70 65 29 3a 6e 69 6c 74 79 70 65 3b   ┆unction succ(x:niltype):niltype;┆
0x0607a0…0607c0             65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 77 61 70 28 69 3a 69 6e 74 65 67   ┆external;  function swap(i:integ┆
0x0607c0…0607e0             65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆er):integer;external;  function ┆
0x0607e0…060800             74 6f 70 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 65 78 74   ┆top(var r:reference):integer;ext┆
0x060800…060820 (25, 1, 8)  65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 74 72 61 63 65 3d 65 78 63 65 70 74 69 6f   ┆ernal;  procedure trace=exceptio┆
0x060820…060840             6e 28 63 6f 64 65 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65   ┆n(code:integer);external;  proce┆
0x060840…060860             64 75 72 65 20 73 68 6f 72 74 74 72 61 63 65 3d 74 72 61 63 65 28 63 6f 64 65 3a 69 6e 74 65 67   ┆dure shorttrace=trace(code:integ┆
0x060860…060880             65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6e 6c 69 6e 6b 28 76   ┆er);external;  function unlink(v┆
0x060880…0608a0             61 72 20 70 72 6f 63 65 73 3a 70 72 6f 63 65 73 73 5f 64 65 73 63 72 69 70 74 6f 72 29 3a 69 6e   ┆ar proces:process_descriptor):in┆
0x0608a0…0608c0             74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 31 28 76 61 72   ┆teger;external;  function u1(var┆
0x0608c0…0608e0             20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75   ┆ r:reference):byte;external;  fu┆
0x0608e0…060900             6e 63 74 69 6f 6e 20 75 32 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65 3b   ┆nction u2(var r:reference):byte;┆
0x060900…060920             65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 33 28 76 61 72 20 72 3a 72 65 66   ┆external;  function u3(var r:ref┆
0x060920…060940             65 72 65 6e 63 65 29 3a 62 79 74 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆erence):byte;external;  function┆
0x060940…060960             20 75 34 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 62 79 74 65 3b 65 78 74 65 72 6e   ┆ u4(var r:reference):byte;extern┆
0x060960…060980             61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 77 61 69 74 28 76 61 72 20 72 3a 72 65 66 65 72 65   ┆al;  procedure wait(var r:refere┆
0x060980…0609a0             6e 63 65 3b 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a   ┆nce;var s:semaphore);external;  ┆
0x0609a0…0609c0             70 72 6f 63 65 64 75 72 65 20 77 61 69 74 69 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65   ┆procedure waiti;external;  proce┆
0x0609c0…0609e0             64 75 72 65 20 77 61 69 74 73 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 73   ┆dure waits(var r:reference;var s┆
0x0609e0…060a00             3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆:semaphore);external;  procedure┆
0x060a00…060a20 (25, 1, 9)  20 77 61 69 74 64 28 64 65 6c 61 79 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆ waitd(delay:integer);external; ┆
0x060a20…060a40             0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 69 64 28 64 65 6c 61 79 3a 69 6e 74 65 67 65 72 29 3a   ┆ function waitid(delay:integer):┆
0x060a40…060a60             61 63 74 69 76 61 74 69 6f 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77   ┆activation;external;  function w┆
0x060a60…060a80             61 69 74 69 73 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20 73 3a 73 65 6d 61   ┆aitis(var r:reference;var s:sema┆
0x060a80…060aa0             70 68 6f 72 65 29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆phore):activation;  external;  f┆
0x060aa0…060ac0             75 6e 63 74 69 6f 6e 20 77 61 69 74 73 64 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 0d   ┆unction waitsd(var r:reference; ┆
0x060ac0…060ae0             0a 76 61 72 20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 64 65 6c 61 79 3a 69 6e 74 65 67 65 72   ┆ var s:semaphore;  delay:integer┆
0x060ae0…060b00             29 3a 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69   ┆):activation;  external;  functi┆
0x060b00…060b20             6f 6e 20 77 61 69 74 69 73 64 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 0d 0a 76 61 72   ┆on waitisd(var r:reference;  var┆
0x060b20…060b40             20 73 3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 64 65 6c 61 79 3a 69 6e 74 65 67 65 72 29 3a 61 63   ┆ s:semaphore;  delay:integer):ac┆
0x060b40…060b60             74 69 76 61 74 69 6f 6e 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f   ┆tivation;  external;  function _┆
0x060b60…060b80             62 75 66 73 69 7a 65 5f 5f 72 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74   ┆bufsize__rc(var r:reference):int┆
0x060b80…060ba0             65 67 65 72 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 65 78 63   ┆eger;  external;  procedure _exc┆
0x060ba0…060bc0             68 61 6e 67 65 5f 72 63 28 76 61 72 20 73 68 31 2c 73 68 32 3a 73 68 61 64 6f 77 29 3b 0d 0a 65   ┆hange_rc(var sh1,sh2:shadow);  e┆
0x060bc0…060be0             78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 5f 5f 65 78 69 74 5f 5f 5f 72 63   ┆xternal;  procedure ___exit___rc┆
0x060be0…060c00             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 66 69 72 73 74 5f 5f 5f 5f 72   ┆;external;  function _first____r┆
0x060c00…060c20 (25, 1, 10) 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72 3b 0d 0a 65 78 74   ┆c(var r:reference):integer;  ext┆
0x060c20…060c40             65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 68 65 61 70 72 65 66 5f 5f 72 63 28 70   ┆ernal;  procedure _heapref__rc(p┆
0x060c40…060c60             3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆:^niltype);external;  procedure ┆
0x060c60…060c80             5f 68 65 61 70 73 68 5f 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61   ┆_heapsh___rc(p:^niltype);externa┆
0x060c80…060ca0             6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 70 6f 6f 6c 5f 72 63 28 76 61 72 20 73   ┆l;  procedure _initpool_rc(var s┆
0x060ca0…060cc0             3a 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 6e 75 6d 62 65 72 2c 73 69 7a 65 3a 69 6e 74 65 67 65 72   ┆:semaphore;  number,size:integer┆
0x060cc0…060ce0             29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 70 72   ┆);  external;  procedure _initpr┆
0x060ce0…060d00             6f 63 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 3b 71 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74   ┆oc_rc(p:^niltype;q:^niltype);ext┆
0x060d00…060d20             65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 72 65 66 5f 5f 72 63 28 70   ┆ernal;  procedure _initref__rc(p┆
0x060d20…060d40             3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆:^niltype);external;  procedure ┆
0x060d40…060d60             5f 69 6e 69 74 73 65 6d 5f 5f 72 63 28 70 3a 5e 6e 69 6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61   ┆_initsem__rc(p:^niltype);externa┆
0x060d60…060d80             6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 69 6e 69 74 73 68 5f 5f 5f 72 63 28 70 3a 5e 6e 69   ┆l;  procedure _initsh___rc(p:^ni┆
0x060d80…060da0             6c 74 79 70 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 6c 61 73 74   ┆ltype);external;  function _last┆
0x060da0…060dc0             5f 5f 5f 5f 5f 72 63 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 69 6e 74 65 67 65 72   ┆_____rc(var r:reference):integer┆
0x060dc0…060de0             3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 5f 5f 6e 65 77 5f 5f 5f   ┆;  external;  function ___new___┆
0x060de0…060e00             5f 72 63 28 62 79 74 65 73 3a 69 6e 74 65 67 65 72 3b 0d 0a 77 6f 72 64 61 6c 6c 69 67 6e 6d 65   ┆_rc(bytes:integer;  wordallignme┆
0x060e00…060e20 (25, 1, 11) 6e 74 3a 62 6f 6f 6c 65 61 6e 29 3a 5e 6e 69 6c 74 79 70 65 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b   ┆nt:boolean):^niltype;  external;┆
0x060e20…060e40             0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 73 68 69 66 74 5f 5f 5f 5f 72 63 28 61 2c 62 3a 69 6e 74   ┆  procedure _shift____rc(a,b:int┆
0x060e40…060e60             65 67 65 72 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 64 64 70   ┆eger);  external;  function addp┆
0x060e60…060e80             74 72 28 70 3a 5e 6e 69 6c 74 79 70 65 3b 69 6e 63 3a 69 6e 74 65 67 65 72 29 3a 5e 6e 69 6c 74   ┆tr(p:^niltype;inc:integer):^nilt┆
0x060e80…060ea0             79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 70 74 72 28   ┆ype;external;  function addrptr(┆
0x060ea0…060ec0             70 3a 5e 6e 69 6c 74 79 70 65 29 3a 61 64 64 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63   ┆p:^niltype):addr;external;  func┆
0x060ec0…060ee0             74 69 6f 6e 20 62 75 66 73 74 61 72 74 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3a 5e   ┆tion bufstart(var r:reference):^┆
0x060ee0…060f00             6e 69 6c 74 79 70 65 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 63 68 65   ┆niltype;external;  procedure che┆
0x060f00…060f20             63 6b 73 74 61 63 6b 28 61 70 70 65 74 69 74 65 3a 69 6e 74 65 67 65 72 29 3b 65 78 74 65 72 6e   ┆ckstack(appetite:integer);extern┆
0x060f20…060f40             61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 63 68 65 63 6b 65 76 61 6c 3b 65 78 74 65 72 6e 61   ┆al;  procedure checkeval;externa┆
0x060f40…060f60             6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 65 78 63 70 74 63 61 6c 6c 28 65 78 63 6f 64 65 3a 69   ┆l;  procedure excptcall(excode:i┆
0x060f60…060f80             6e 74 65 67 65 72 29 3b 0d 0a 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61   ┆nteger);  external;  function ma┆
0x060f80…060fa0             64 64 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c   ┆dd(a,b:integer):integer;external┆
0x060fa0…060fc0             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 6d 75 6c 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e   ┆;  function mmul(a,b:integer):in┆
0x060fc0…060fe0             74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 73 75 62 28 61   ┆teger;external;  function msub(a┆
0x060fe0…061000             2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆,b:integer):integer;external;  f┆
0x061000…061020 (25, 1, 12) 75 6e 63 74 69 6f 6e 20 70 74 72 61 64 64 72 28 61 3a 61 64 64 72 29 3a 5e 6e 69 6c 74 79 70 65   ┆unction ptraddr(a:addr):^niltype┆
0x061020…061040             3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 78 28 76 61   ┆;external;  procedure returnx(va┆
0x061040…061060             72 20 72 3a 72 65 66 65 72 65 6e 63 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 70 72 6f 63 65 64   ┆r r:reference);external;  proced┆
0x061060…061080             75 72 65 20 73 69 67 6e 61 6c 78 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20   ┆ure signalx(var r:reference;var ┆
0x061080…0610a0             73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆s:semaphore);external;  function┆
0x0610a0…0610c0             20 75 61 64 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72   ┆ uadd(i,j:integer):integer;exter┆
0x0610c0…0610e0             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 64 69 76 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29   ┆nal;  function udiv(i,j:integer)┆
0x0610e0…061100             3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6c 74   ┆:integer;external;  function ult┆
0x061100…061120             28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆(i,j:integer):boolean;external; ┆
0x061120…061140             0a 66 75 6e 63 74 69 6f 6e 20 75 6d 6f 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65   ┆ function umod(i,j:integer):inte┆
0x061140…061160             67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6d 75 6c 28 69 2c 6a   ┆ger;external;  function umul(i,j┆
0x061160…061180             3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e   ┆:integer):integer;external;  fun┆
0x061180…0611a0             63 74 69 6f 6e 20 75 73 75 62 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b   ┆ction usub(i,j:integer):integer;┆
0x0611a0…0611c0             65 78 74 65 72 6e 61 6c 3b 0d 0a 2e 0d 0a 75 6c 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e   ┆external;  .  ul(a,b:integer):in┆
0x0611c0…0611e0             74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 73 75 62 28 61   ┆teger;external;  function msub(a┆
0x0611e0…061200             2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66   ┆,b:integer):integer;external;  f┆
0x061200…061220 (25, 1, 13) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 6c 69 62 2f 64 61 73 35 35 30 2e 69 33 35 00 00 00 00   ┆../sw2103/src/lib/das550.i35    ┆
0x061220…061240             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x061260…061280             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x061280…0612a0             20 20 20 20 31 34 33 20 20 35 32 30 36 35 36 35 33 32 30 20 20 31 30 31 34 37 00 20 00 00 00 00   ┆    143  5206565320  10147      ┆
0x0612a0…0612c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x061400…061420 (25, 1, 14) 73 75 72 76 65 79 2d 79 65 73 20 63 6f 64 65 73 69 7a 65 2d 35 31 32 20 73 6f 75 72 63 65 70 61   ┆survey-yes codesize-512 sourcepa┆
0x061420…061440             74 68 2d 63 3a 5c 72 74 70 33 35 5c 65 62 6b 0d 0a 65 6d 2e 65 6e 76 20 73 2e 65 6e 76 20 64 61   ┆th-c:\rtp35\ebk  em.env s.env da┆
0x061440…061460             73 66 69 65 6c 64 2e 65 6e 76 20 64 61 73 62 75 66 2e 65 6e 76 20 64 61 73 66 74 73 2e 65 6e 76   ┆sfield.env dasbuf.env dasfts.env┆
0x061460…061480             0d 0a 1a 20 73 69 67 6e 61 6c 78 28 76 61 72 20 72 3a 72 65 66 65 72 65 6e 63 65 3b 76 61 72 20   ┆    signalx(var r:reference;var ┆
0x061480…0614a0             73 3a 73 65 6d 61 70 68 6f 72 65 29 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆s:semaphore);external;  function┆
0x0614a0…0614c0             20 75 61 64 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72   ┆ uadd(i,j:integer):integer;exter┆
0x0614c0…0614e0             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 64 69 76 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29   ┆nal;  function udiv(i,j:integer)┆
0x0614e0…061500             3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6c 74   ┆:integer;external;  function ult┆
0x061500…061520             28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆(i,j:integer):boolean;external; ┆
0x061520…061540             0a 66 75 6e 63 74 69 6f 6e 20 75 6d 6f 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65   ┆ function umod(i,j:integer):inte┆
0x061540…061560             67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6d 75 6c 28 69 2c 6a   ┆ger;external;  function umul(i,j┆
0x061560…061580             3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e   ┆:integer):integer;external;  fun┆
0x061580…0615a0             63 74 69 6f 6e 20 75 73 75 62 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b   ┆ction usub(i,j:integer):integer;┆
0x0615a0…0615c0             65 78 74 65 72 6e 61 6c 3b 0d 0a 2e 0d 0a 75 6c 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e   ┆external;  .  ul(a,b:integer):in┆
0x0615c0…0615e0             74 65 67 65 72 3b 65 78 12 00 00 00 04 00 00 00 e0 6d 40 00 63 74 69 6f 00 00 00 00 00 00 00 00   ┆teger;ex        Яm@ ctio        ┆
0x0615e0…061600             34 f4 ff 7f 57 48 00 00 04 00 00 00 00 00 00 00 01 00 00 00 2d 3b 00 00 04 00 00 00 84 f4 ff 7f   ┆4З  WH              -;      ёЗ  ┆
0x061600…061620 (25, 1, 15) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 6c 69 62 2f 73 79 73 33 35 30 32 32 2e 62 61 74 00 00   ┆../sw2103/src/lib/sys35022.bat  ┆
0x061620…061640             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x061660…061680             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x061680…0616a0             20 20 20 20 32 33 36 20 20 35 31 34 32 32 36 32 31 36 30 20 20 31 30 35 32 34 00 20 00 00 00 00   ┆    236  5142262160  10524      ┆
0x0616a0…0616c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x061800…061820 (26, 0, 1)  70 6c 69 62 6c 6f 6f 6b 20 73 79 73 33 35 30 32 32 2e 74 32 32 20 20 3e 73 79 73 33 35 30 32 32   ┆pliblook sys35022.t22  >sys35022┆
0x061820…061840             2e 6c 6f 67 0d 0a 70 6c 69 62 20 2f 65 78 74 72 61 63 74 20 3d 72 74 70 33 35 30 32 32 2e 74 32   ┆.log  plib /extract =rtp35022.t2┆
0x061840…061860             32 20 70 61 72 61 6d 69 6e 2d 73 79 73 33 35 30 32 32 2e 70 61 72 20 6c 69 62 2d 73 79 73 33 35   ┆2 paramin-sys35022.par lib-sys35┆
0x061860…061880             30 32 32 2e 74 32 32 20 3e 3e 73 79 73 33 35 30 32 32 2e 6c 6f 67 0d 0a 70 6c 69 62 6c 6f 6f 6b   ┆022.t22 >>sys35022.log  pliblook┆
0x061880…0618a0             20 72 74 70 33 35 30 32 32 2e 74 32 32 20 3e 3e 73 79 73 33 35 30 32 32 2e 6c 6f 67 0d 0a 6f 6e   ┆ rtp35022.t22 >>sys35022.log  on┆
0x0618a0…0618c0             20 75 61 64 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72   ┆ uadd(i,j:integer):integer;exter┆
0x0618c0…0618e0             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 64 69 76 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29   ┆nal;  function udiv(i,j:integer)┆
0x0618e0…061900             3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6c 74   ┆:integer;external;  function ult┆
0x061900…061920             28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆(i,j:integer):boolean;external; ┆
0x061920…061940             0a 66 75 6e 63 74 69 6f 6e 20 75 6d 6f 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65   ┆ function umod(i,j:integer):inte┆
0x061940…061960             67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6d 75 6c 28 69 2c 6a   ┆ger;external;  function umul(i,j┆
0x061960…061980             3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e   ┆:integer):integer;external;  fun┆
0x061980…0619a0             63 74 69 6f 6e 20 75 73 75 62 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b   ┆ction usub(i,j:integer):integer;┆
0x0619a0…0619c0             65 78 74 65 72 6e 61 6c 3b 0d 0a 2e 0d 0a 75 6c 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e   ┆external;  .  ul(a,b:integer):in┆
0x0619c0…0619e0             74 65 67 65 72 3b 65 78 12 00 00 00 04 00 00 00 e0 6d 40 00 63 74 69 6f 00 00 00 00 00 00 00 00   ┆teger;ex        Яm@ ctio        ┆
0x0619e0…061a00             34 f4 ff 7f 57 48 00 00 04 00 00 00 00 00 00 00 01 00 00 00 2d 3b 00 00 04 00 00 00 86 f4 ff 7f   ┆4З  WH              -;      єЗ  ┆
0x061a00…061a20 (26, 0, 2)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 6c 69 62 2f 73 79 73 33 35 30 32 32 2e 69 33 35 00 00   ┆../sw2103/src/lib/sys35022.i35  ┆
0x061a20…061a40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x061a60…061a80             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x061a80…061aa0             20 20 20 20 20 36 32 20 20 35 31 37 31 30 32 31 36 36 30 20 20 31 30 33 33 33 00 20 00 00 00 00   ┆     62  5171021660  10333      ┆
0x061aa0…061ac0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x061c00…061c20 (26, 0, 3)  63 6f 64 65 73 69 7a 65 2d 31 36 30 30 30 20 63 6f 64 65 6c 69 73 74 2d 6e 6f 20 6c 69 73 74 2d   ┆codesize-16000 codelist-no list-┆
0x061c20…061c40             6e 6f 0d 0a 69 6d 63 33 35 30 32 2e 65 6e 76 0d 0a 1a 74 20 3d 72 74 70 33 35 30 32 32 2e 74 32   ┆no  imc3502.env   t =rtp35022.t2┆
0x061c40…061c60             32 20 70 61 72 61 6d 69 6e 2d 73 79 73 33 35 30 32 32 2e 70 61 72 20 6c 69 62 2d 73 79 73 33 35   ┆2 paramin-sys35022.par lib-sys35┆
0x061c60…061c80             30 32 32 2e 74 32 32 20 3e 3e 73 79 73 33 35 30 32 32 2e 6c 6f 67 0d 0a 70 6c 69 62 6c 6f 6f 6b   ┆022.t22 >>sys35022.log  pliblook┆
0x061c80…061ca0             20 72 74 70 33 35 30 32 32 2e 74 32 32 20 3e 3e 73 79 73 33 35 30 32 32 2e 6c 6f 67 0d 0a 6f 6e   ┆ rtp35022.t22 >>sys35022.log  on┆
0x061ca0…061cc0             20 75 61 64 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72   ┆ uadd(i,j:integer):integer;exter┆
0x061cc0…061ce0             6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 64 69 76 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29   ┆nal;  function udiv(i,j:integer)┆
0x061ce0…061d00             3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6c 74   ┆:integer;external;  function ult┆
0x061d00…061d20             28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 62 6f 6f 6c 65 61 6e 3b 65 78 74 65 72 6e 61 6c 3b 0d   ┆(i,j:integer):boolean;external; ┆
0x061d20…061d40             0a 66 75 6e 63 74 69 6f 6e 20 75 6d 6f 64 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65   ┆ function umod(i,j:integer):inte┆
0x061d40…061d60             67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6d 75 6c 28 69 2c 6a   ┆ger;external;  function umul(i,j┆
0x061d60…061d80             3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b 65 78 74 65 72 6e 61 6c 3b 0d 0a 66 75 6e   ┆:integer):integer;external;  fun┆
0x061d80…061da0             63 74 69 6f 6e 20 75 73 75 62 28 69 2c 6a 3a 69 6e 74 65 67 65 72 29 3a 69 6e 74 65 67 65 72 3b   ┆ction usub(i,j:integer):integer;┆
0x061da0…061dc0             65 78 74 65 72 6e 61 6c 3b 0d 0a 2e 0d 0a 75 6c 28 61 2c 62 3a 69 6e 74 65 67 65 72 29 3a 69 6e   ┆external;  .  ul(a,b:integer):in┆
0x061dc0…061de0             74 65 67 65 72 3b 65 78 12 00 00 00 04 00 00 00 e0 6d 40 00 63 74 69 6f 00 00 00 00 00 00 00 00   ┆teger;ex        Яm@ ctio        ┆
0x061de0…061e00             34 f4 ff 7f 57 48 00 00 04 00 00 00 00 00 00 00 01 00 00 00 2d 3b 00 00 04 00 00 00 86 f4 ff 7f   ┆4З  WH              -;      єЗ  ┆
0x061e00…061e20 (26, 0, 4)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 6c 69 62 2f 73 79 73 33 35 30 32 32 2e 70 61 72 00 00   ┆../sw2103/src/lib/sys35022.par  ┆
0x061e20…061e40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x061e60…061e80             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x061e80…061ea0             20 20 20 31 36 34 37 20 20 35 31 34 32 32 36 32 31 36 30 20 20 31 30 35 36 37 00 20 00 00 00 00   ┆   1647  5142262160  10567      ┆
0x061ea0…061ec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x062000…062020 (26, 0, 5)  20 20 65 6e 74 72 79 2d 31 0d 0a 20 20 65 6e 74 72 79 2d 32 20 0d 0a 20 20 65 6e 74 72 79 2d 33   ┆  entry-1    entry-2     entry-3┆
0x062020…062040             20 0d 0a 20 20 65 6e 74 72 79 2d 34 20 0d 0a 20 20 65 6e 74 72 79 2d 35 20 0d 0a 20 20 65 6e 74   ┆     entry-4     entry-5     ent┆
0x062040…062060             72 79 2d 36 20 0d 0a 20 20 65 6e 74 72 79 2d 37 20 0d 0a 20 20 65 6e 74 72 79 2d 38 20 0d 0a 20   ┆ry-6     entry-7     entry-8    ┆
0x062060…062080             20 65 6e 74 72 79 2d 39 20 0d 0a 20 20 61 62 73 20 0d 0a 20 20 62 75 66 73 69 7a 65 20 0d 0a 20   ┆ entry-9     abs     bufsize    ┆
0x062080…0620a0             20 63 61 72 72 79 20 0d 0a 20 20 63 6f 6e 74 72 6f 6c 20 0d 0a 20 20 63 6f 6e 74 72 6f 6c 63 6c   ┆ carry     control     controlcl┆
0x0620a0…0620c0             72 20 0d 0a 20 20 63 72 63 31 36 20 0d 0a 20 20 63 72 65 64 69 74 63 6f 75 6e 74 20 0d 0a 20 20   ┆r     crc16     creditcount     ┆
0x0620c0…0620e0             63 74 72 77 61 69 74 69 64 20 0d 0a 20 20 63 74 72 77 61 69 74 69 73 20 0d 0a 20 20 63 74 72 77   ┆ctrwaitid     ctrwaitis     ctrw┆
0x0620e0…062100             61 69 74 69 73 64 20 0d 0a 20 20 65 6f 69 20 0d 0a 20 20 65 76 65 6e 74 6b 69 6e 64 20 0d 0a 20   ┆aitisd     eoi     eventkind    ┆
0x062100…062120             20 66 69 72 73 74 20 0d 0a 20 20 67 65 74 62 75 66 70 61 72 61 6d 20 0d 0a 20 20 67 65 74 69 64   ┆ first     getbufparam     getid┆
0x062120…062140             20 0d 0a 20 20 67 65 74 6c 66 67 66 20 0d 0a 20 20 67 65 74 72 65 67 69 73 74 65 72 20 0d 0a 20   ┆     getlfgf     getregister    ┆
0x062140…062160             20 69 6e 62 79 74 65 62 6c 6f 63 6b 20 0d 0a 20 20 69 6e 64 65 78 20 0d 0a 20 20 69 6e 74 65 6c   ┆ inbyteblock     index     intel┆
0x062160…062180             20 0d 0a 20 20 69 6e 77 6f 72 64 20 0d 0a 20 20 69 6e 77 6f 72 64 62 6c 6f 63 6b 20 0d 0a 20 20   ┆     inword     inwordblock     ┆
0x062180…0621a0             69 6e 77 6f 72 64 63 6c 72 20 0d 0a 20 20 69 6f 77 62 77 63 20 0d 0a 20 20 6c 61 6d 62 64 61 20   ┆inwordclr     iowbwc     lambda ┆
0x0621a0…0621c0             0d 0a 20 20 6c 61 73 74 20 0d 0a 20 20 6c 6f 63 6b 65 64 20 0d 0a 20 20 6c 6f 63 6b 74 65 73 74   ┆    last     locked     locktest┆
0x0621c0…0621e0             20 0d 0a 20 20 6d 61 64 64 20 0d 0a 20 20 6d 6d 75 6c 20 0d 0a 20 20 6d 6f 76 65 67 20 0d 0a 20   ┆     madd     mmul     moveg    ┆
0x0621e0…062200             20 6d 73 75 62 20 0d 0a 20 20 6e 65 78 74 20 0d 0a 20 20 6f 70 65 6e 20 0d 0a 20 20 6f 70 65 6e   ┆ msub     next     open     open┆
0x062200…062220 (26, 0, 6)  70 6f 6f 6c 20 0d 0a 20 20 6f 75 74 77 6f 72 64 20 0d 0a 20 20 6f 75 74 77 6f 72 64 63 6c 72 20   ┆pool     outword     outwordclr ┆
0x062220…062240             0d 0a 20 20 6f 77 6e 65 72 74 65 73 74 20 0d 0a 20 20 70 61 73 73 69 76 65 20 0d 0a 20 20 70 6f   ┆    ownertest     passive     po┆
0x062240…062260             70 20 0d 0a 20 20 70 75 73 68 20 0d 0a 20 20 72 65 61 64 72 61 6d 20 0d 0a 20 20 72 65 61 73 6f   ┆p     push     readram     reaso┆
0x062260…062280             6e 20 0d 0a 20 20 72 65 66 20 0d 0a 20 20 72 65 6c 65 61 73 65 20 0d 0a 20 20 72 65 73 65 74 65   ┆n     ref     release     resete┆
0x062280…0622a0             76 65 6e 74 20 0d 0a 20 20 72 65 74 75 72 6e 20 0d 0a 20 20 72 65 74 75 72 6e 78 20 0d 0a 20 20   ┆vent     return     returnx     ┆
0x0622a0…0622c0             72 6f 74 61 74 65 20 0d 0a 20 20 73 65 6e 73 65 20 0d 0a 20 20 73 65 6e 73 65 63 6c 72 20 0d 0a   ┆rotate     sense     senseclr   ┆
0x0622c0…0622e0             20 20 73 65 6e 73 65 73 65 6d 20 0d 0a 20 20 73 69 67 6e 61 6c 20 0d 0a 20 20 73 69 67 6e 61 6c   ┆  sensesem     signal     signal┆
0x0622e0…062300             78 20 0d 0a 20 20 73 77 61 70 20 0d 0a 20 20 74 69 6d 65 64 6f 75 74 20 0d 0a 20 20 74 6f 70 20   ┆x     swap     timedout     top ┆
0x062300…062320             0d 0a 20 20 75 61 64 64 20 0d 0a 20 20 75 64 69 76 20 0d 0a 20 20 75 6c 74 20 0d 0a 20 20 75 6d   ┆    uadd     udiv     ult     um┆
0x062320…062340             6f 64 20 0d 0a 20 20 75 6d 75 6c 20 0d 0a 20 20 75 73 75 62 20 0d 0a 20 20 75 31 20 0d 0a 20 20   ┆od     umul     usub     u1     ┆
0x062340…062360             75 32 20 0d 0a 20 20 75 33 20 0d 0a 20 20 75 34 20 0d 0a 20 20 77 61 69 74 20 0d 0a 20 20 77 61   ┆u2     u3     u4     wait     wa┆
0x062360…062380             69 74 64 20 0d 0a 20 20 77 61 69 74 69 20 0d 0a 20 20 77 61 69 74 69 64 20 0d 0a 20 20 77 61 69   ┆itd     waiti     waitid     wai┆
0x062380…0623a0             74 69 73 20 0d 0a 20 20 77 61 69 74 69 73 64 20 0d 0a 20 20 77 61 69 74 73 20 0d 0a 20 20 77 61   ┆tis     waitisd     waits     wa┆
0x0623a0…0623c0             69 74 73 64 20 0d 0a 74 20 0d 0a 20 20 6c 6f 63 6b 65 64 20 0d 0a 20 20 6c 6f 63 6b 74 65 73 74   ┆itsd   t     locked     locktest┆
0x0623c0…0623e0             20 0d 0a 20 20 6d 61 64 64 20 0d 0a 20 20 6d 6d 75 6c 20 0d 0a 20 20 6d 6f 76 65 67 20 0d 0a 20   ┆     madd     mmul     moveg    ┆
0x0623e0…062400             20 6d 73 75 62 20 0d 0a 20 20 6e 65 78 74 20 0d 0a 20 20 6f 70 65 6e 20 0d 0a 20 20 6f 70 65 6e   ┆ msub     next     open     open┆
0x062400…062420 (26, 0, 7)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 6c 69 62 2f 73 79 73 33 35 30 32 32 2e 73 33 35 00 00   ┆../sw2103/src/lib/sys35022.s35  ┆
0x062420…062440             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x062460…062480             00 00 00 00 20 20 20 36 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       644     255     146      ┆
0x062480…0624a0             20 31 30 34 34 31 31 20 20 35 31 34 32 32 36 32 31 36 30 20 20 31 30 34 35 30 00 20 00 00 00 00   ┆ 104411  5142262160  10450      ┆
0x0624a0…0624c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x062600…062620 (26, 0, 8)  73 79 73 33 35 30 32 32 6c 69 62 65 6e 76 3b 0d 0a 0d 0a 2d 2d 20 38 37 30 33 30 33 20 62 62 20   ┆sys35022libenv;    -- 870303 bb ┆
0x062620…062640             33 2e 32 20 63 68 65 63 6b 20 6f 6e 20 70 6f 73 69 74 69 76 65 20 69 6e 64 69 63 65 73 20 61 6e   ┆3.2 check on positive indices an┆
0x062640…062660             64 20 62 79 74 65 73 20 70 61 72 61 6d 73 0d 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆d bytes params  --              ┆
0x062660…062680             20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 62 74 6f 66 72 6f 6d 0d 0a 2d 2d 20 38 37 30 33 30 35   ┆ removed from btofrom  -- 870305┆
0x062680…0626a0             20 62 62 20 33 2e 33 20 6f 70 65 6e 20 72 6f 75 74 69 6e 65 20 66 6f 72 20 72 74 70 38 36 20 74   ┆ bb 3.3 open routine for rtp86 t┆
0x0626a0…0626c0             6f 70 20 66 75 6e 63 74 69 6f 6e 0d 0a 2d 2d 20 38 37 31 30 32 32 20 62 62 20 33 2e 34 20 65 76   ┆op function  -- 871022 bb 3.4 ev┆
0x0626c0…0626e0             65 6e 74 6b 69 6e 64 20 63 68 61 6e 67 65 64 20 74 6f 20 62 65 76 65 6e 74 6b 69 6e 64 20 28 65   ┆entkind changed to beventkind (e┆
0x0626e0…062700             76 65 6e 74 6b 69 6e 64 20 69 73 0d 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f   ┆ventkind is  --               no┆
0x062700…062720             77 20 61 20 63 6c 6f 73 65 64 20 72 6f 75 74 69 6e 65 0d 0a 2d 2d 20 38 37 31 31 31 30 20 62 62   ┆w a closed routine  -- 871110 bb┆
0x062720…062740             20 33 2e 35 20 74 68 65 20 61 62 6f 76 65 20 63 68 61 6e 67 65 20 74 65 6d 70 6f 72 61 72 79 20   ┆ 3.5 the above change temporary ┆
0x062740…062760             72 65 6d 6f 76 65 64 0d 0a 2d 2d 20 38 37 31 32 32 38 20 62 62 20 33 2e 36 20 62 61 6c 6c 6f 63   ┆removed  -- 871228 bb 3.6 balloc┆
0x062760…062780             20 69 6e 69 74 69 61 6c 69 7a 65 73 20 75 31 20 74 6f 20 75 34 2c 20 69 6d 63 61 74 74 72 69 62   ┆ initializes u1 to u4, imcattrib┆
0x062780…0627a0             75 74 65 73 20 74 6f 20 7a 65 72 6f 0d 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61   ┆utes to zero  --               a┆
0x0627a0…0627c0             6e 64 20 66 69 72 73 74 2c 20 6c 61 73 74 20 61 6e 64 20 6e 65 78 74 20 74 6f 20 36 2c 20 62 75   ┆nd first, last and next to 6, bu┆
0x0627c0…0627e0             66 73 69 7a 65 2d 31 20 61 6e 64 20 36 2e 0d 0a 2d 2d 20 38 38 30 33 30 34 20 62 62 20 33 2e 37   ┆fsize-1 and 6.  -- 880304 bb 3.7┆
0x0627e0…062800             20 65 76 65 6e 74 6b 69 6e 64 20 63 68 61 6e 67 65 64 20 74 6f 20 62 65 76 65 6e 74 6b 69 6e 64   ┆ eventkind changed to beventkind┆
0x062800…062820 (26, 0, 9)  0d 0a 2d 2d 20 38 38 30 33 32 33 20 62 62 20 33 2e 38 20 73 65 74 65 76 65 6e 74 6b 69 6e 64 20   ┆  -- 880323 bb 3.8 seteventkind ┆
0x062820…062840             75 70 64 61 74 65 73 20 75 32 20 74 6f 20 36 20 74 6f 20 63 6f 6f 70 65 72 61 74 65 20 77 69 74   ┆updates u2 to 6 to cooperate wit┆
0x062840…062860             68 20 65 76 65 6e 74 6b 69 6e 64 2e 0d 0a 2d 2d 20 38 38 30 33 32 39 20 62 62 20 33 2e 39 20 62   ┆h eventkind.  -- 880329 bb 3.9 b┆
0x062860…062880             65 76 65 6e 74 6b 69 6e 64 20 63 68 61 6e 67 65 64 20 74 6f 20 65 76 65 6e 74 6b 69 6e 64 20 61   ┆eventkind changed to eventkind a┆
0x062880…0628a0             67 61 69 6e 2e 0d 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 70 64 61 74 65 20 6f   ┆gain.  --               Update o┆
0x0628a0…0628c0             66 20 75 32 20 69 6e 20 73 65 74 65 76 65 6e 74 6b 69 6e 64 20 72 65 6d 6f 76 65 64 20 61 67 61   ┆f u2 in seteventkind removed aga┆
0x0628c0…0628e0             69 6e 2e 0d 0a 2d 2d 20 38 39 30 31 32 33 20 62 62 20 33 2e 31 30 20 42 63 72 63 31 36 62 75 66   ┆in.  -- 890123 bb 3.10 Bcrc16buf┆
0x0628e0…062900             20 68 61 6e 64 65 64 20 6f 76 65 72 20 62 79 20 4a 4b 4b 2e 0d 0a 2d 2d 20 38 39 30 39 31 33 20   ┆ handed over by JKK.  -- 890913 ┆
0x062900…062920             62 62 20 33 2e 31 31 20 53 65 74 61 62 73 69 6e 64 65 78 20 63 68 61 6e 67 65 64 20 66 72 6f 6d   ┆bb 3.11 Setabsindex changed from┆
0x062920…062940             20 62 79 74 65 20 73 61 76 65 20 74 6f 20 77 6f 72 64 20 73 61 76 65 2e 0d 0a 2d 2d 20 39 30 30   ┆ byte save to word save.  -- 900┆
0x062940…062960             33 32 34 20 62 62 20 33 2e 31 32 20 53 69 67 6e 61 6c 20 61 6e 64 20 52 65 74 75 72 6e 20 75 70   ┆324 bb 3.12 Signal and Return up┆
0x062960…062980             64 61 74 65 73 20 65 76 65 6e 74 6b 69 6e 64 2e 0d 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20   ┆dates eventkind.  --            ┆
0x062980…0629a0             20 20 20 20 53 69 67 6e 61 6c 78 20 61 6e 64 20 52 65 74 75 72 6e 78 20 69 6e 74 72 6f 64 75 73   ┆    Signalx and Returnx introdus┆
0x0629a0…0629c0             65 64 20 61 73 20 74 68 65 20 6f 6c 64 20 72 6f 75 74 69 6e 65 73 0d 0a 2d 2d 20 20 20 20 20 20   ┆ed as the old routines  --      ┆
0x0629c0…0629e0             20 20 20 20 20 20 20 20 20 20 53 69 67 6e 61 6c 20 61 6e 64 20 52 65 74 75 72 6e 20 77 69 74 68   ┆          Signal and Return with┆
0x0629e0…062a00             20 6e 6f 20 75 70 64 61 74 65 20 6f 66 20 65 76 65 6e 74 6b 69 6e 64 2e 0d 0a 2d 2d 20 39 30 30   ┆ no update of eventkind.  -- 900┆
0x062a00…062a20 (26, 0, 10) 35 31 37 20 62 62 20 33 2e 31 33 20 43 6f 6e 74 72 6f 6c 30 20 74 6f 20 6f 75 74 70 75 74 20 63   ┆517 bb 3.13 Control0 to output c┆
0x062a20…062a40             6f 6e 74 72 6f 6c 77 6f 72 64 20 74 6f 20 64 65 76 69 63 65 20 30 20 66 6f 72 20 52 43 39 33 33   ┆ontrolword to device 0 for RC933┆
0x062a40…062a60             30 0d 0a 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 6d 70 20 63 6f 6e 74 72 6f   ┆0  --                lamp contro┆
0x062a60…062a80             6c 2e 0d 0a 0d 0a 24 76 65 72 73 69 6f 6e 20 33 2e 31 33 0d 0a 0d 0a 2e 0d 0a 0d 0a 70 72 65 66   ┆l.    $version 3.13    .    pref┆
0x062a80…062aa0             69 78 20 63 6c 65 61 72 69 6e 74 65 72 72 75 70 74 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 63 6c   ┆ix clearinterrupt;  procedure cl┆
0x062aa0…062ac0             65 61 72 69 6e 74 65 72 72 75 70 74 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69   ┆earinterrupt;  beginbody 0:    i┆
0x062ac0…062ae0             6f 63 63 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 6c 65 61   ┆occi                      ; clea┆
0x062ae0…062b00             72 20 69 6e 74 65 72 72 75 70 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69   ┆r interrupt  endbody;      prefi┆
0x062b00…062b20             78 20 5f 5f 5f 65 78 69 74 5f 5f 5f 72 63 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 5f 5f 5f 65 78   ┆x ___exit___rc;  procedure ___ex┆
0x062b20…062b40             69 74 5f 5f 5f 72 63 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 62 2e 20 6c 6f 6f 70 2e   ┆it___rc;  beginbody 2:  b. loop.┆
0x062b40…062b60             0d 0a 6c 6f 6f 70 3a 0d 0a 20 20 6d 68 61 6c 74 20 20 20 20 20 20 3b 20 68 61 6c 74 0d 0a 20 20   ┆  loop:    mhalt      ; halt    ┆
0x062b60…062b80             6a 6d 70 72 77 20 6c 6f 6f 70 20 3b 0d 0a 65 2e 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a   ┆jmprw loop ;  e.  endbody;      ┆
0x062b80…062ba0             70 72 65 66 69 78 20 69 6e 63 72 65 6d 65 6e 74 5f 6d 6f 64 5f 36 34 6b 3b 0d 0a 70 72 6f 63 65   ┆prefix increment_mod_64k;  proce┆
0x062ba0…062bc0             64 75 72 65 20 69 6e 63 72 65 6d 65 6e 74 5f 6d 6f 64 5f 36 34 6b 28 20 76 61 72 20 69 6e 74 20   ┆dure increment_mod_64k( var int ┆
0x062bc0…062be0             3a 20 69 6e 74 65 67 65 72 20 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 34 3a 0d 0a 20 20 72 65   ┆: integer );  beginbody 4:    re┆
0x062be0…062c00             76 70 64 20 20 20 3b 20 6c 6f 61 64 20 69 6e 74 0d 0a 20 20 72 65 76 73 77 20 30 0d 0a 20 20 75   ┆vpd   ; load int    revsw 0    u┆
0x062c00…062c20 (26, 0, 11) 61 64 68 77 20 31 20 3b 20 69 6e 63 72 65 6d 65 6e 74 0d 0a 20 20 73 74 76 73 77 20 30 20 3b 20   ┆adhw 1 ; increment    stvsw 0 ; ┆
0x062c20…062c40             72 65 73 74 6f 72 65 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6f 75   ┆restore  endbody;      prefix ou┆
0x062c40…062c60             74 62 79 74 65 62 6c 6f 63 6b 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 62 79 74 65 62 6c   ┆tbyteblock;  procedure outbytebl┆
0x062c60…062c80             6f 63 6b 0d 0a 20 20 28 76 61 72 20 6e 65 78 74 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20   ┆ock    (var next : integer;     ┆
0x062c80…062ca0             66 69 72 73 74 2c 20 6c 61 73 74 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 76 61 72 20 6d   ┆first, last : integer;     var m┆
0x062ca0…062cc0             73 67 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a   ┆sg : reference);  beginbody 0:  ┆
0x062cc0…062ce0             20 20 69 6f 69 62 78 20 20 20 20 3b 20 69 6e 69 74 62 6c 6f 63 6b 5f 69 6f 0d 0a 20 20 69 6f 77   ┆  ioibx    ; initblock_io    iow┆
0x062ce0…062d00             62 62 63 20 20 20 3b 20 77 72 69 74 65 5f 62 6c 6f 63 6b 5f 6f 66 5f 62 79 74 65 73 0d 0a 20 20   ┆bbc   ; write_block_of_bytes    ┆
0x062d00…062d20             73 74 76 73 77 20 30 20 20 3b 20 70 6f 70 20 6e 65 78 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d   ┆stvsw 0  ; pop next  endbody;   ┆
0x062d20…062d40             0a 0d 0a 70 72 65 66 69 78 20 6f 75 74 77 6f 72 64 62 6c 6f 63 6b 3b 0d 0a 70 72 6f 63 65 64 75   ┆   prefix outwordblock;  procedu┆
0x062d40…062d60             72 65 20 6f 75 74 77 6f 72 64 62 6c 6f 63 6b 0d 0a 20 20 28 76 61 72 20 6e 65 78 74 20 20 3a 20   ┆re outwordblock    (var next  : ┆
0x062d60…062d80             69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 66 69 72 73 74 2c 20 6c 61 73 74 20 3a 20 69 6e 74 65 67   ┆integer;     first, last : integ┆
0x062d80…062da0             65 72 3b 0d 0a 20 20 20 76 61 72 20 6d 73 67 20 3a 20 72 65 66 65 72 65 6e 63 65 20 29 3b 0d 0a   ┆er;     var msg : reference );  ┆
0x062da0…062dc0             62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69 6f 69 62 78 20 20 20 20 20 20 3b 20 69 6e 69   ┆beginbody 0:    ioibx      ; ini┆
0x062dc0…062de0             74 62 6c 6f 63 6b 5f 69 6f 0d 0a 20 20 69 6f 77 62 77 63 20 20 20 20 20 3b 77 72 69 74 65 5f 62   ┆tblock_io    iowbwc     ;write_b┆
0x062de0…062e00             6c 6f 63 6b 5f 6f 66 5f 77 6f 72 64 73 0d 0a 20 20 73 74 76 73 77 20 30 20 20 20 20 3b 20 70 6f   ┆lock_of_words    stvsw 0    ; po┆
0x062e00…062e20 (26, 0, 12) 70 20 6e 65 78 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 74   ┆p next  endbody;      prefix set┆
0x062e20…062e40             69 6e 74 65 72 72 75 70 74 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 69 6e 74 65 72 72 75   ┆interrupt;  procedure setinterru┆
0x062e40…062e60             70 74 28 20 76 61 72 20 63 68 20 3a 20 72 65 66 65 72 65 6e 63 65 20 29 3b 0d 0a 62 65 67 69 6e   ┆pt( var ch : reference );  begin┆
0x062e60…062e80             62 6f 64 79 20 30 3a 0d 0a 20 20 69 6f 63 64 61 20 3b 20 67 65 74 20 64 65 76 69 63 65 20 61 64   ┆body 0:    iocda ; get device ad┆
0x062e80…062ea0             64 72 0d 0a 20 20 63 73 6c 65 76 20 3b 20 73 65 74 20 69 6e 74 65 72 72 75 70 74 0d 0a 65 6e 64   ┆dr    cslev ; set interrupt  end┆
0x062ea0…062ec0             62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 5f 62 75 66 73 69 7a 65 5f 5f 72 63 3b 0d   ┆body;      prefix _bufsize__rc; ┆
0x062ec0…062ee0             0a 66 75 6e 63 74 69 6f 6e 20 5f 62 75 66 73 69 7a 65 5f 5f 72 63 20 28 76 61 72 20 72 3a 20 72   ┆ function _bufsize__rc (var r: r┆
0x062ee0…062f00             65 66 65 72 65 6e 63 65 29 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30   ┆eference): integer;  beginbody 0┆
0x062f00…062f20             3a 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 73 77 20 20 20 20 20 6d 73   ┆:    revsa     1    revsw     ms┆
0x062f20…062f40             69 7a 65 20 20 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 5f 66   ┆ize    endbody;        prefix _f┆
0x062f40…062f60             69 72 73 74 5f 5f 5f 5f 72 63 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 66 69 72 73 74 5f 5f 5f 5f   ┆irst____rc;  function _first____┆
0x062f60…062f80             72 63 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 69 6e 74 65 67 65 72 3b 0d   ┆rc (var r: reference): integer; ┆
0x062f80…062fa0             0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20   ┆ beginbody 0:    revsa     1    ┆
0x062fa0…062fc0             72 65 76 73 64 20 20 20 20 20 6d 73 74 61 72 74 0d 0a 20 20 72 65 76 73 77 20 20 20 20 20 6d 66   ┆revsd     mstart    revsw     mf┆
0x062fc0…062fe0             69 72 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 5f 6c 61 73 74   ┆irst  endbody;      prefix _last┆
0x062fe0…063000             5f 5f 5f 5f 5f 72 63 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 5f 6c 61 73 74 5f 5f 5f 5f 5f 72 63 20   ┆_____rc;  function _last_____rc ┆
0x063000…063020 (26, 0, 13) 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65   ┆(var r: reference): integer;  be┆
0x063020…063040             67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76   ┆ginbody 0:    revsa     1    rev┆
0x063040…063060             73 64 20 20 20 20 20 6d 73 74 61 72 74 0d 0a 20 20 72 65 76 73 77 20 20 20 20 20 6d 6c 61 73 74   ┆sd     mstart    revsw     mlast┆
0x063060…063080             0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 67 65 74 5f 68 65 61 70 3b   ┆  endbody;      prefix get_heap;┆
0x063080…0630a0             0d 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 5f 68 65 61 70 20 28 76 61 72 20 69 6e 63 20 3a 20 69   ┆  function get_heap (var inc : i┆
0x0630a0…0630c0             6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f 72 29 20 3a 20 5e 20 6e 69 6c 74 79   ┆ncarnation_descriptor) : ^ nilty┆
0x0630c0…0630e0             70 65 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 68 65 61 70 3b   ┆pe;  beginbody 0:    revsa heap;┆
0x0630e0…063100             0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 74 5f 68 65 61 70 3b   ┆  endbody;      prefix set_heap;┆
0x063100…063120             0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 5f 68 65 61 70 20 28 70 20 3a 20 5e 20 6e 69 6c 74   ┆  procedure set_heap (p : ^ nilt┆
0x063120…063140             79 70 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 67 61 20 68 65 61   ┆ype);  beginbody 0:    stvga hea┆
0x063140…063160             70 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 61 62 73 3b 0d 0a   ┆p  endbody;        prefix abs;  ┆
0x063160…063180             66 75 6e 63 74 69 6f 6e 20 61 62 73 28 78 20 3a 20 6e 69 6c 74 79 70 65 29 20 3a 20 6e 69 6c 74   ┆function abs(x : niltype) : nilt┆
0x063180…0631a0             79 70 65 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 61 62 73 20 20 20 20 20 20 20   ┆ype;  beginbody 0:    abs       ┆
0x0631a0…0631c0             3b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 61 62 73 69 6e 64 65 78   ┆;  endbody;      prefix absindex┆
0x0631c0…0631e0             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 62 73 69 6e 64 65 78 28 76 61 72 20 72 20 3a 20 72 65 66   ┆;  function absindex(var r : ref┆
0x0631e0…063200             65 72 65 6e 63 65 29 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d   ┆erence): integer;  beginbody 2: ┆
0x063200…063220 (26, 0, 14) 0a 20 20 72 65 76 73 61 20 20 20 31 0d 0a 20 20 72 65 76 73 77 20 20 20 63 6f 6e 6e 69 78 0d 0a   ┆   revsa   1    revsw   connix  ┆
0x063220…063240             65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 61 64 64 70 74 72 3b 0d 0a 66 75   ┆endbody;      prefix addptr;  fu┆
0x063240…063260             6e 63 74 69 6f 6e 20 61 64 64 70 74 72 20 28 70 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 20 69 6e   ┆nction addptr (p : ^ niltype; in┆
0x063260…063280             63 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 0d 0a 62 65 67 69 6e   ┆c : integer) : ^ niltype;  begin┆
0x063280…0632a0             62 6f 64 79 20 30 3a 0d 0a 20 20 6d 61 64 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70   ┆body 0:    madd  endbody;      p┆
0x0632a0…0632c0             72 65 66 69 78 20 61 64 64 72 70 74 72 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 70 74 72   ┆refix addrptr;  function addrptr┆
0x0632c0…0632e0             28 70 20 3a 20 5e 6e 69 6c 74 79 70 65 29 20 3a 20 61 64 64 72 3b 0d 0a 62 65 67 69 6e 62 6f 64   ┆(p : ^niltype) : addr;  beginbod┆
0x0632e0…063300             79 20 30 3a 0d 0a 20 20 73 74 76 73 64 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70   ┆y 0:    stvsd 0  endbody;      p┆
0x063300…063320             72 65 66 69 78 20 62 61 6c 6c 6f 63 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 62 61 6c 6c 6f 63 3b   ┆refix balloc;  procedure balloc;┆
0x063320…063340             0d 0a 62 65 67 69 6e 62 6f 64 79 20 38 3a 0d 0a 62 2e 20 64 23 2c 20 6c 23 2c 20 66 69 72 73 74   ┆  beginbody 8:  b. d#, l#, first┆
0x063340…063360             70 61 72 61 6d 2e 0d 0a 20 20 66 69 72 73 74 70 61 72 61 6d 20 3d 20 6c 61 73 74 70 61 72 61 6d   ┆param.    firstparam = lastparam┆
0x063360…063380             20 2d 20 31 31 20 3b 20 0d 0a 20 20 64 23 31 20 3d 20 66 69 72 73 74 70 61 72 61 6d 20 2b 20 31   ┆ - 11 ;     d#1 = firstparam + 1┆
0x063380…0633a0             3b 20 5e 20 72 0d 0a 20 20 64 23 32 20 3d 20 64 23 31 20 2b 20 34 20 20 20 20 20 20 20 3b 20 5e   ┆; ^ r    d#2 = d#1 + 4       ; ^┆
0x0633a0…0633c0             20 70 0d 0a 20 20 64 23 33 20 3d 20 64 23 32 20 2b 20 34 20 20 20 20 20 20 20 3b 20 5e 20 73 65   ┆ p    d#3 = d#2 + 4       ; ^ se┆
0x0633c0…0633e0             6d 0d 0a 0d 0a 20 20 72 65 76 6c 61 20 64 23 31 20 20 20 20 20 20 20 20 20 20 20 3b 20 70 75 73   ┆m      revla d#1           ; pus┆
0x0633e0…063400             68 20 5e 20 72 0d 0a 20 20 72 65 76 6c 61 20 64 23 32 20 20 20 20 20 20 20 20 20 20 20 3b 20 70   ┆h ^ r    revla d#2           ; p┆
0x063400…063420 (26, 0, 15) 75 73 68 20 5e 20 70 0d 0a 20 20 63 77 61 69 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b   ┆ush ^ p    cwait               ;┆
0x063420…063440             20 77 61 69 74 0d 0a 20 20 72 65 76 6c 61 20 64 23 31 20 20 20 20 20 20 20 20 20 20 20 3b 20 70   ┆ wait    revla d#1           ; p┆
0x063440…063460             75 73 68 20 5e 20 72 0d 0a 20 20 72 65 76 73 61 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 3b   ┆ush ^ r    revsa 1             ;┆
0x063460…063480             20 70 75 73 68 20 72 0d 0a 20 20 72 65 76 6c 61 20 64 23 33 20 20 20 20 20 20 20 20 20 20 20 3b   ┆ push r    revla d#3           ;┆
0x063480…0634a0             20 70 75 73 68 20 5e 20 73 65 6d 0d 0a 20 20 72 65 76 73 64 20 30 20 20 20 20 20 20 20 20 20 20   ┆ push ^ sem    revsd 0          ┆
0x0634a0…0634c0             20 20 20 3b 20 64 75 6d 6d 79 20 72 65 74 72 69 65 76 65 20 74 6f 20 66 6f 72 63 65 20 65 78 63   ┆   ; dummy retrieve to force exc┆
0x0634c0…0634e0             65 70 74 69 6f 6e 20 69 66 20 6e 69 6c 0d 0a 20 20 73 74 6e 68 62 20 34 20 20 20 20 20 20 20 20   ┆eption if nil    stnhb 4        ┆
0x0634e0…063500             20 20 20 20 20 3b 20 70 6f 70 20 64 75 6d 6d 79 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 73 65 6d   ┆     ; pop dummy contents of sem┆
0x063500…063520             61 70 68 6f 72 65 0d 0a 20 20 72 65 73 74 61 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20   ┆aphore    resta 4             ; ┆
0x063520…063540             5e 20 6d 65 73 73 61 67 65 5f 68 65 61 64 65 72 0d 0a 20 20 72 65 76 70 64 20 20 20 20 20 20 20   ┆^ message_header    revpd       ┆
0x063540…063560             20 20 20 20 20 20 20 20 3b 20 69 6e 69 74 20 75 73 65 72 20 66 69 65 6c 64 73 0d 0a 20 20 72 65   ┆        ; init user fields    re┆
0x063560…063580             63 68 77 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 70 77 20 20 20 20   ┆chw 0             ;    revpw    ┆
0x063580…0635a0             20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 73 74 76 73 64 20 75 31 20 20 20 20 20 20 20 20   ┆           ;    stvsd u1        ┆
0x0635a0…0635c0             20 20 20 20 3b 20 75 31 2c 75 32 2c 75 33 2c 75 34 20 3a 3d 20 30 0d 0a 20 20 72 65 76 70 64 20   ┆    ; u1,u2,u3,u4 := 0    revpd ┆
0x0635c0…0635e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 69 74 20 69 6d 63 20 66 69 65 6c 64 73 0d   ┆              ; init imc fields ┆
0x0635e0…063600             0a 20 20 72 65 63 68 77 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 70   ┆   rechw 0             ;    revp┆
0x063600…063620 (26, 1, 1)  77 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 73 74 76 73 64 20 63 6f 6e 6e 69   ┆w               ;    stvsd conni┆
0x063620…063640             78 20 20 20 20 20 20 20 20 3b 20 63 6f 6e 69 78 2c 20 63 72 65 64 69 74 2c 20 72 65 61 73 6f 6e   ┆x        ; conix, credit, reason┆
0x063640…063660             2c 20 65 76 65 6e 74 20 3a 3d 20 30 0d 0a 20 20 72 65 76 70 64 20 20 20 20 20 20 20 20 20 20 20   ┆, event := 0    revpd           ┆
0x063660…063680             20 20 20 20 3b 20 74 65 73 74 20 62 75 66 66 65 72 20 73 74 61 72 74 20 69 73 20 6e 6f 74 20 6e   ┆    ; test buffer start is not n┆
0x063680…0636a0             69 6c 0d 0a 20 20 72 65 61 73 64 20 6d 73 74 61 72 74 2b 31 20 20 20 20 20 20 3b 0d 0a 20 20 74   ┆il    reasd mstart+1      ;    t┆
0x0636a0…0636c0             6e 69 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 6a 6d 7a 6e 65 20 6c 23   ┆nill               ;    jmzne l#┆
0x0636c0…0636e0             30 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 20 6e 69 6c 0d 0a 20 20 72 65 76 70   ┆0           ; if not nil    revp┆
0x0636e0…063700             64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 73 64 20 6d 73 74 61 72   ┆d               ;    revsd mstar┆
0x063700…063720             74 20 20 20 20 20 20 20 20 3b 20 0d 0a 20 20 72 65 76 70 64 20 20 20 20 20 20 20 20 20 20 20 20   ┆t        ;     revpd            ┆
0x063720…063740             20 20 20 3b 20 69 6e 69 74 20 66 69 72 73 74 0d 0a 20 20 72 65 63 68 77 20 36 20 20 20 20 20 20   ┆   ; init first    rechw 6      ┆
0x063740…063760             20 20 20 20 20 20 20 3b 0d 0a 20 20 73 74 76 73 77 20 6d 66 69 72 73 74 20 20 20 20 20 20 20 20   ┆       ;    stvsw mfirst        ┆
0x063760…063780             3b 0d 0a 20 20 72 65 76 70 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 69 74 20   ┆;    revpd               ; init ┆
0x063780…0637a0             6e 65 78 74 0d 0a 20 20 72 65 63 68 77 20 36 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20   ┆next    rechw 6             ;   ┆
0x0637a0…0637c0             20 73 74 76 73 77 20 6d 6e 65 78 74 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 61 20   ┆ stvsw mnext         ;    revla ┆
0x0637c0…0637e0             64 23 31 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 69 74 20 6c 61 73 74 0d 0a 20 20 72 65 76   ┆d#1           ; init last    rev┆
0x0637e0…063800             73 61 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 73 77 20 6d 73 69 7a   ┆sa 1             ;    revsw msiz┆
0x063800…063820 (26, 1, 2)  65 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 63 68 77 20 32 20 20 20 20 20 20 20 20 20 20   ┆e         ;    rechw 2          ┆
0x063820…063840             20 20 20 3b 0d 0a 20 20 6d 6d 75 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20   ┆   ;    mmul                ;   ┆
0x063840…063860             20 72 65 63 68 77 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 6d 73 75 62 20 20   ┆ rechw 1             ;    msub  ┆
0x063860…063880             20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 73 74 76 73 77 20 6d 6c 61 73 74 20 20   ┆              ;    stvsw mlast  ┆
0x063880…0638a0             20 20 20 20 20 20 20 3b 20 62 75 66 73 69 7a 65 2a 32 20 2d 20 31 0d 0a 6c 23 30 3a 0d 0a 20 20   ┆       ; bufsize*2 - 1  l#0:    ┆
0x0638a0…0638c0             72 65 76 6c 61 20 64 23 33 20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 5e 20 73 65 6d 20   ┆revla d#3           ; get ^ sem ┆
0x0638c0…0638e0             20 6f 6e 63 65 20 61 67 61 69 6e 0d 0a 20 20 73 74 76 73 61 20 61 6e 73 77 65 72 20 20 20 20 20   ┆ once again    stvsa answer     ┆
0x0638e0…063900             20 20 20 3b 0d 0a 65 2e 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 61   ┆   ;  e.  endbody;      prefix a┆
0x063900…063920             73 67 6e 61 64 64 72 72 65 66 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 61 73 67 6e 61 64 64 72 72   ┆sgnaddrref;  procedure asgnaddrr┆
0x063920…063940             65 66 28 76 61 72 20 61 3a 61 64 64 72 3b 20 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29   ┆ef(var a:addr; var r: reference)┆
0x063940…063960             3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 64 20 30 0d 0a 20 20 73 74   ┆;  beginbody 0:    revsd 0    st┆
0x063960…063980             76 73 64 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 61 73 67 6e   ┆vsd 0  endbody;      prefix asgn┆
0x063980…0639a0             72 65 66 61 64 64 72 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 61 73 67 6e 72 65 66 61 64 64 72 28   ┆refaddr;  procedure asgnrefaddr(┆
0x0639a0…0639c0             76 61 72 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 61 3a 20 61 64 64 72 29 3b 0d 0a 62   ┆var ref: reference; a: addr);  b┆
0x0639c0…0639e0             65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 73 64 20 30 0d 0a 65 6e 64 62 6f 64 79 3b   ┆eginbody 0:    stvsd 0  endbody;┆
0x0639e0…063a00             0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 61 73 65 69 6e 74 65 67 65 72 3b 0d 0a 66 75 6e 63 74   ┆      prefix baseinteger;  funct┆
0x063a00…063a20 (26, 1, 3)  69 6f 6e 20 62 61 73 65 69 6e 74 65 67 65 72 20 28 69 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20   ┆ion baseinteger (i : integer) : ┆
0x063a20…063a40             61 64 64 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 63 68 77 20 31 32 38   ┆addr;  beginbody 2:    rechw 128┆
0x063a40…063a60             0d 0a 20 20 6f 72 0d 0a 20 20 72 65 63 68 77 20 32 35 34 0d 0a 20 20 61 6e 64 0d 0a 20 20 72 65   ┆    or    rechw 254    and    re┆
0x063a60…063a80             63 68 77 20 30 0d 0a 20 20 73 74 76 73 64 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a   ┆chw 0    stvsd 0  endbody;      ┆
0x063a80…063aa0             70 72 65 66 69 78 20 62 75 66 73 69 7a 65 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 75 66 73 69 7a   ┆prefix bufsize;  function bufsiz┆
0x063aa0…063ac0             65 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 69 6e 74 65 67 65 72 3b 0d 0a   ┆e (var r: reference): integer;  ┆
0x063ac0…063ae0             62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72   ┆beginbody 0:    revsa     1    r┆
0x063ae0…063b00             65 76 73 77 20 20 20 20 20 6d 73 69 7a 65 20 20 0d 0a 20 20 72 65 63 68 77 20 20 20 20 20 32 0d   ┆evsw     msize      rechw     2 ┆
0x063b00…063b20             0a 20 20 75 6d 75 6c 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 75   ┆   umul  endbody;      prefix bu┆
0x063b20…063b40             66 73 74 61 72 74 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 75 66 73 74 61 72 74 20 28 76 61 72 20   ┆fstart;  function bufstart (var ┆
0x063b40…063b60             72 20 3a 20 72 65 66 65 72 65 6e 63 65 29 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 0d 0a 62 65 67   ┆r : reference) : ^ niltype;  beg┆
0x063b60…063b80             69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 31 0d 0a 20 20 72 65 76 73 64 20 6d 73   ┆inbody 0:    revsa 1    revsd ms┆
0x063b80…063ba0             74 61 72 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 79 74 65 63   ┆tart  endbody;      prefix bytec┆
0x063ba0…063bc0             6c 65 61 72 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 62 79 74 65 63 6c 65 61 72 20 28 76 61 72 20   ┆lear;  procedure byteclear (var ┆
0x063bc0…063be0             62 20 3a 20 62 79 74 65 3b 20 69 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f   ┆b : byte; i : integer);  beginbo┆
0x063be0…063c00             64 79 20 30 3a 0d 0a 20 20 69 6f 6e 63 69 0d 0a 20 20 73 74 76 73 62 20 30 0d 0a 65 6e 64 62 6f   ┆dy 0:    ionci    stvsb 0  endbo┆
0x063c00…063c20 (26, 1, 4)  64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 63 61 72 72 79 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆dy;      prefix carry;  function┆
0x063c20…063c40             20 63 61 72 72 79 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d   ┆ carry : boolean;  beginbody 2: ┆
0x063c40…063c60             0a 20 20 6d 62 74 65 73 20 20 34 20 20 20 20 3b 20 63 61 72 72 79 20 62 69 74 0d 0a 20 20 72 65   ┆   mbtes  4    ; carry bit    re┆
0x063c60…063c80             63 68 77 20 20 30 20 0d 0a 20 20 6d 62 73 65 74 20 20 34 20 20 20 20 3b 20 63 6c 65 61 72 20 63   ┆chw  0     mbset  4    ; clear c┆
0x063c80…063ca0             61 72 72 79 20 62 69 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62   ┆arry bit  endbody;      prefix b┆
0x063ca0…063cc0             63 68 65 63 6b 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 62 63 68 65 63 6b 3b 0d 0a 62 65 67 69 6e   ┆check;  procedure bcheck;  begin┆
0x063cc0…063ce0             62 6f 64 79 20 34 3a 0d 0a 62 2e 20 77 61 70 70 65 74 69 74 65 2c 20 69 66 65 6c 73 65 2e 0d 0a   ┆body 4:  b. wappetite, ifelse.  ┆
0x063ce0…063d00             20 20 20 77 61 70 70 65 74 69 74 65 20 3d 20 6c 61 73 74 70 61 72 61 6d 20 2d 20 31 3b 0d 0a 20   ┆   wappetite = lastparam - 1;   ┆
0x063d00…063d20             20 20 3b 20 61 70 70 65 74 69 74 65 20 69 6e 20 77 6f 72 64 73 20 69 6e 20 77 61 70 70 65 74 69   ┆  ; appetite in words in wappeti┆
0x063d20…063d40             74 65 0d 0a 20 20 20 3b 20 2a 2a 2a 20 6d 69 6e 69 6d 75 6d 20 31 20 2b 20 38 20 2b 20 32 20 3d   ┆te     ; *** minimum 1 + 8 + 2 =┆
0x063d40…063d60             20 31 31 20 77 6f 72 64 73 20 61 72 65 20 63 68 65 63 6b 65 64 20 2a 2a 2a 0d 0a 0d 0a 20 20 20   ┆ 11 words are checked ***       ┆
0x063d60…063d80             72 65 76 6c 77 20 20 20 77 61 70 70 65 74 69 74 65 20 20 20 3b 20 2b 32 20 20 32 20 20 67 65 74   ┆revlw   wappetite   ; +2  2  get┆
0x063d80…063da0             20 61 63 74 75 61 6c 20 70 61 72 61 6d 0d 0a 20 20 20 72 65 76 70 77 20 20 20 20 20 20 20 20 20   ┆ actual param     revpw         ┆
0x063da0…063dc0             20 20 20 20 20 20 3b 20 2b 32 20 20 34 20 0d 0a 20 20 20 75 61 64 64 20 20 20 20 20 20 20 20 20   ┆      ; +2  4      uadd         ┆
0x063dc0…063de0             20 20 20 20 20 20 20 3b 20 2d 32 20 20 32 20 20 62 61 70 70 65 74 69 74 65 20 3a 3d 20 32 2a 77   ┆       ; -2  2  bappetite := 2*w┆
0x063de0…063e00             61 70 70 65 74 69 74 65 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆appetite                        ┆
0x063e00…063e20 (26, 1, 5)  20 20 3b 20 6e 6f 74 65 3a 20 62 61 70 70 65 74 69 74 65 20 6c 65 66 74 20 6f 6e 20 74 6f 70 20   ┆  ; note: bappetite left on top ┆
0x063e20…063e40             6f 66 20 73 74 61 63 6b 0d 0a 20 20 20 72 65 63 68 77 20 20 20 31 30 20 20 20 20 20 20 20 20 20   ┆of stack     rechw   10         ┆
0x063e40…063e60             20 3b 20 2b 32 20 20 34 20 20 61 63 74 75 61 6c 20 61 6e 64 20 61 6e 6f 6e 79 6d 6f 75 73 20 70   ┆ ; +2  4  actual and anonymous p┆
0x063e60…063e80             61 72 61 6d 20 6c 65 6e 67 74 68 0d 0a 20 20 20 73 75 62 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆aram length     sub             ┆
0x063e80…063ea0             20 20 20 20 3b 20 2d 32 20 20 32 20 20 62 61 70 70 65 74 69 74 65 20 3a 3d 20 62 61 70 70 65 74   ┆    ; -2  2  bappetite := bappet┆
0x063ea0…063ec0             69 74 65 20 2d 20 64 65 6c 74 61 0d 0a 20 20 20 72 65 76 70 77 20 20 20 20 20 20 20 20 20 20 20   ┆ite - delta     revpw           ┆
0x063ec0…063ee0             20 20 20 20 3b 20 2b 32 20 20 34 20 20 69 66 20 62 61 70 70 65 74 69 74 65 20 3e 20 30 20 74 68   ┆    ; +2  4  if bappetite > 0 th┆
0x063ee0…063f00             65 6e 0d 0a 20 20 20 6a 6d 7a 6c 65 20 20 20 69 66 65 6c 73 65 20 20 20 20 20 20 3b 20 2d 32 20   ┆en     jmzle   ifelse      ; -2 ┆
0x063f00…063f20             20 32 0d 0a 20 20 20 72 65 6e 70 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20   ┆ 2     renpb               ;    ┆
0x063f20…063f40             20 20 20 20 63 68 65 63 6b 20 73 74 61 63 6b 0d 0a 69 66 65 6c 73 65 3a 0d 0a 20 20 20 73 74 6e   ┆    check stack  ifelse:     stn┆
0x063f40…063f60             68 62 20 32 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 65 2e 0d 0a 65 6e 64 62 6f 64 79 3b   ┆hb 2             ;  e.  endbody;┆
0x063f60…063f80             0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 63 68 65 63 6b 65 76 61 6c 3b 0d 0a 70 72 6f 63 65 64 75   ┆      prefix checkeval;  procedu┆
0x063f80…063fa0             72 65 20 63 68 65 63 6b 65 76 61 6c 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72   ┆re checkeval;  beginbody 0:    r┆
0x063fa0…063fc0             65 6e 68 62 20 61 70 70 65 76 61 6c 20 20 20 20 3b 20 63 68 65 63 6b 20 72 6f 6f 6d 20 66 6f 72   ┆enhb appeval    ; check room for┆
0x063fc0…063fe0             20 65 76 61 6c 75 61 74 69 6f 6e 20 73 74 61 63 6b 20 69 6e 20 74 68 69 73 20 62 6c 6f 63 6b 0d   ┆ evaluation stack in this block ┆
0x063fe0…064000             0a 20 20 73 74 6e 68 62 20 61 70 70 65 76 61 6c 20 20 20 20 3b 20 72 65 70 61 69 72 0d 0a 65 6e   ┆   stnhb appeval    ; repair  en┆
0x064000…064020 (26, 1, 6)  64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 63 6f 6e 74 72 6f 6c 3b 0d 0a 70 72 6f   ┆dbody;      prefix control;  pro┆
0x064020…064040             63 65 64 75 72 65 20 63 6f 6e 74 72 6f 6c 28 63 6f 6e 74 72 6f 6c 5f 77 6f 72 64 20 3a 20 69 6e   ┆cedure control(control_word : in┆
0x064040…064060             74 65 67 65 72 3b 20 76 61 72 20 63 68 5f 6d 73 67 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d   ┆teger; var ch_msg : reference); ┆
0x064060…064080             0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69 6f 63 64 61 20 20 20 20 20 20 20 20 20 20   ┆ beginbody 0:    iocda          ┆
0x064080…0640a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 64 65 76 69 63 65 20 61 64 64 72 65   ┆              ; get device addre┆
0x0640a0…0640c0             73 73 0d 0a 20 20 69 6f 77 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ss    iowc                      ┆
0x0640c0…0640e0             20 20 20 3b 20 77 72 69 74 65 20 63 6f 6e 74 72 6f 6c 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a   ┆   ; write control  endbody;    ┆
0x0640e0…064100             0d 0a 70 72 65 66 69 78 20 63 6f 6e 74 72 6f 6c 30 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 63 6f   ┆  prefix control0;  procedure co┆
0x064100…064120             6e 74 72 6f 6c 30 20 28 63 6f 6e 74 72 6f 6c 5f 77 6f 72 64 20 3a 20 69 6e 74 65 67 65 72 29 3b   ┆ntrol0 (control_word : integer);┆
0x064120…064140             0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 63 68 77 20 30 20 20 20 20 20 20 20   ┆  beginbody 2:    rechw 0       ┆
0x064140…064160             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 64 65 76 69 63 65 20 61 64 64 72   ┆               ; get device addr┆
0x064160…064180             65 73 73 0d 0a 20 20 69 6f 77 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ess    iowc                     ┆
0x064180…0641a0             20 20 20 20 3b 20 77 72 69 74 65 20 63 6f 6e 74 72 6f 6c 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d   ┆    ; write control  endbody;   ┆
0x0641a0…0641c0             0a 0d 0a 70 72 65 66 69 78 20 63 6f 6e 74 72 6f 6c 63 6c 72 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆   prefix controlclr;  procedure┆
0x0641c0…0641e0             20 63 6f 6e 74 72 6f 6c 63 6c 72 28 63 6f 6e 74 72 6f 6c 5f 77 6f 72 64 20 3a 20 69 6e 74 65 67   ┆ controlclr(control_word : integ┆
0x0641e0…064200             65 72 20 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 67 62 20 6c 65 76   ┆er );  beginbody 0:    revgb lev┆
0x064200…064220 (26, 1, 7)  65 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 64 65 76 69 63 65   ┆el                  ; get device┆
0x064220…064240             20 61 64 64 72 65 73 73 0d 0a 20 20 69 6f 6e 63 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ address    ionci               ┆
0x064240…064260             20 20 20 20 20 20 20 20 20 3b 20 6e 65 78 74 20 63 6c 65 61 72 20 69 6e 74 65 72 72 75 70 74 0d   ┆         ; next clear interrupt ┆
0x064260…064280             0a 20 20 69 6f 77 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆   iowc                         ┆
0x064280…0642a0             3b 20 77 72 69 74 65 20 63 6f 6e 74 72 6f 6c 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70   ┆; write control  endbody;      p┆
0x0642a0…0642c0             72 65 66 69 78 20 63 72 63 31 36 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 72 63 31 36 20 28 20 61   ┆refix crc16;  function crc16 ( a┆
0x0642c0…0642e0             2c 62 20 3a 20 69 6e 74 65 67 65 72 20 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e   ┆,b : integer ) : integer;  begin┆
0x0642e0…064300             62 6f 64 79 20 30 3a 0d 0a 20 20 63 72 63 31 36 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a   ┆body 0:    crc16  endbody;      ┆
0x064300…064320             70 72 65 66 69 78 20 62 63 72 63 31 36 62 75 66 66 65 72 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62   ┆prefix bcrc16buffer;  function b┆
0x064320…064340             63 72 63 31 36 62 75 66 66 65 72 28 20 66 72 6f 6d 62 79 74 65 2c 20 74 6f 62 79 74 65 3a 20 69   ┆crc16buffer( frombyte, tobyte: i┆
0x064340…064360             6e 74 65 67 65 72 3b 20 20 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 20 29 3a 20 69 6e 74   ┆nteger;  var r: reference ): int┆
0x064360…064380             65 67 65 72 3b 0d 0a 28 2a 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 72 63 31 36 62 75 66 66 65 72 28   ┆eger;  (*  function crc16buffer(┆
0x064380…0643a0             20 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 66 72 6f 6d 62 79 74 65 2c 20 74 6f 62   ┆ var r: reference; frombyte, tob┆
0x0643a0…0643c0             79 74 65 3a 20 69 6e 74 65 67 65 72 3b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆yte: integer;                   ┆
0x0643c0…0643e0             20 20 20 20 20 71 75 6f 74 69 65 6e 74 2c 20 73 74 61 72 74 76 61 6c 75 65 3a 20 69 6e 74 65 67   ┆     quotient, startvalue: integ┆
0x0643e0…064400             65 72 20 29 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 76 61 72 0d 0a 20 20 63 6f 75 6e 74 3a 20 69 6e   ┆er ): integer;  var    count: in┆
0x064400…064420 (26, 1, 8)  74 65 67 65 72 3b 0d 0a 20 20 64 75 6d 6d 79 3a 20 62 79 74 65 3b 0d 0a 20 20 73 74 61 72 74 3a   ┆teger;    dummy: byte;    start:┆
0x064420…064440             20 5e 64 75 6d 6d 79 3b 0d 0a 2a 29 0d 0a 62 65 67 69 6e 62 6f 64 79 20 38 3a 0d 0a 20 20 62 2e   ┆ ^dummy;  *)  beginbody 8:    b.┆
0x064440…064460             20 71 75 6f 74 69 65 6e 74 2c 20 73 74 61 72 74 76 61 6c 75 65 2c 20 66 69 72 73 74 70 61 72 61   ┆ quotient, startvalue, firstpara┆
0x064460…064480             6d 2e 0d 0a 20 20 62 2e 20 73 74 61 72 74 2c 20 73 74 61 72 74 64 69 73 70 2c 20 63 6f 75 6e 74   ┆m.    b. start, startdisp, count┆
0x064480…0644a0             2c 20 63 61 72 72 79 2e 0d 0a 20 20 62 2e 20 65 6e 74 31 36 2c 20 6c 6f 6f 70 31 36 2c 20 73 74   ┆, carry.    b. ent16, loop16, st┆
0x0644a0…0644c0             61 72 74 34 2c 20 6c 6f 6f 70 34 2c 20 73 74 61 72 74 31 2c 20 6c 6f 6f 70 31 2c 20 65 6e 64 63   ┆art4, loop4, start1, loop1, endc┆
0x0644c0…0644e0             72 63 2e 0d 0a 0d 0a 20 20 66 69 72 73 74 70 61 72 61 6d 20 3d 20 6c 61 73 74 70 61 72 61 6d 20   ┆rc.      firstparam = lastparam ┆
0x0644e0…064500             2d 20 31 33 0d 0a 20 20 71 75 6f 74 69 65 6e 74 20 20 20 3d 20 66 69 72 73 74 70 61 72 61 6d 20   ┆- 13    quotient   = firstparam ┆
0x064500…064520             2b 20 31 30 0d 0a 20 20 73 74 61 72 74 76 61 6c 75 65 20 3d 20 66 69 72 73 74 70 61 72 61 6d 20   ┆+ 10    startvalue = firstparam ┆
0x064520…064540             2b 20 31 32 0d 0a 0d 0a 20 20 63 61 72 72 79 20 20 20 20 20 20 3d 20 20 34 0d 0a 20 20 63 6f 75   ┆+ 12      carry      =  4    cou┆
0x064540…064560             6e 74 20 20 20 20 20 20 3d 20 20 38 0d 0a 20 20 73 74 61 72 74 20 20 20 20 20 20 3d 20 31 30 0d   ┆nt      =  8    start      = 10 ┆
0x064560…064580             0a 20 20 73 74 61 72 74 64 69 73 70 20 20 3d 20 31 32 0d 0a 0d 0a 20 20 69 6f 69 62 78 20 20 20   ┆   startdisp  = 12      ioibx   ┆
0x064580…0645a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 68 65 63 6b 20 62 75 66 66 65 72   ┆                  ; check buffer┆
0x0645a0…0645c0             20 61 6e 64 20 63 61 6c 63 75 6c 61 74 65 20 73 74 61 72 74 61 64 64 72 65 73 73 0d 0a 20 20 73   ┆ and calculate startaddress    s┆
0x0645c0…0645e0             74 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 61 76 65 20   ┆tvld     start           ; save ┆
0x0645e0…064600             73 74 61 72 74 61 64 64 72 65 73 73 0d 0a 20 20 73 74 76 6c 77 20 20 20 20 20 63 6f 75 6e 74 20   ┆startaddress    stvlw     count ┆
0x064600…064620 (26, 1, 9)  20 20 20 20 20 20 20 20 20 20 3b 20 73 61 76 65 20 63 6f 75 6e 74 0d 0a 20 20 73 74 6e 68 62 20   ┆          ; save count    stnhb ┆
0x064620…064640             20 20 20 20 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 6d 6f 76 65 20 74 6f 70   ┆    2               ; remove top┆
0x064640…064660             0d 0a 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 73 74 61 72 74 76 61 6c 75 65 20 20 20 20 20 20   ┆      revlw     startvalue      ┆
0x064660…064680             3b 20 63 61 6c 63 75 6c 61 74 65 64 20 63 72 63 20 69 73 20 73 74 6f 72 65 64 20 6f 6e 20 73 74   ┆; calculated crc is stored on st┆
0x064680…0646a0             61 63 6b 0d 0a 20 20 6a 6d 70 72 77 20 20 20 20 20 65 6e 74 31 36 20 20 20 20 20 20 20 20 20 20   ┆ack    jmprw     ent16          ┆
0x0646a0…0646c0             20 3b 20 6a 75 6d 70 20 74 6f 20 65 6e 74 72 79 20 70 6f 69 6e 74 0d 0a 0d 0a 6c 6f 6f 70 31 36   ┆ ; jump to entry point    loop16┆
0x0646c0…0646e0             3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 70 65 61 74 20 20   ┆:                     ; repeat  ┆
0x0646e0…064700             20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 73 74 76 6c 77 20 20 20 20 20 63 6f 75 6e   ┆                  stvlw     coun┆
0x064700…064720             74 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 61 76 65 20 63 6f 75 6e 74 0d 0a 20 20 0d 0a 20 20   ┆t           ; save count        ┆
0x064720…064740             72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20   ┆revld     start           ; get ┆
0x064740…064760             61 64 64 72 65 73 73 20 6f 66 20 6e 65 78 74 20 62 79 74 65 0d 0a 20 20 72 65 76 73 62 20 20 20   ┆address of next byte    revsb   ┆
0x064760…064780             20 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 62 79 74 65 0d 0a 20 20   ┆  0               ; get byte    ┆
0x064780…0647a0             78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72   ┆xor                       ;    r┆
0x0647a0…0647c0             65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 71   ┆evlw     quotient        ; get q┆
0x0647c0…0647e0             75 6f 74 69 65 6e 74 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆uotient    crc16                ┆
0x0647e0…064800             20 20 20 20 20 3b 20 63 61 6c 63 75 6c 61 74 65 20 63 72 63 0d 0a 0d 0a 20 20 72 65 76 6c 64 20   ┆     ; calculate crc      revld ┆
0x064800…064820 (26, 1, 10) 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61   ┆    start           ; and the sa┆
0x064820…064840             6d 65 20 66 6f 72 20 62 79 74 65 20 31 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 31 20 20 20 20   ┆me for byte 1    revsb     1    ┆
0x064840…064860             20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆           ;    xor             ┆
0x064860…064880             20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e   ┆          ;    revlw     quotien┆
0x064880…0648a0             74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆t        ;    crc16             ┆
0x0648a0…0648c0             20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20   ┆        ;      revld     start  ┆
0x0648c0…0648e0             20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65   ┆         ; and the same for byte┆
0x0648e0…064900             20 32 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ 2    revsb     2               ┆
0x064900…064920             3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b   ┆;    xor                       ;┆
0x064920…064940             0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d   ┆    revlw     quotient        ; ┆
0x064940…064960             0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a   ┆   crc16                     ;  ┆
0x064960…064980             0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20   ┆    revld     start           ; ┆
0x064980…0649a0             61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 33 0d 0a 20 20 72 65 76 73 62   ┆and the same for byte 3    revsb┆
0x0649a0…0649c0             20 20 20 20 20 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20   ┆     3               ;    xor   ┆
0x0649c0…0649e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20   ┆                    ;    revlw  ┆
0x0649e0…064a00             20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20   ┆   quotient        ;    crc16   ┆
0x064a00…064a20 (26, 1, 11) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20   ┆                  ;      revld  ┆
0x064a20…064a40             20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d   ┆   start           ; and the sam┆
0x064a40…064a60             65 20 66 6f 72 20 62 79 74 65 20 34 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 34 20 20 20 20 20   ┆e for byte 4    revsb     4     ┆
0x064a60…064a80             20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆          ;    xor              ┆
0x064a80…064aa0             20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74   ┆         ;    revlw     quotient┆
0x064aa0…064ac0             20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆        ;    crc16              ┆
0x064ac0…064ae0             20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20   ┆       ;      revld     start   ┆
0x064ae0…064b00             20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20   ┆        ; and the same for byte ┆
0x064b00…064b20             35 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b   ┆5    revsb     5               ;┆
0x064b20…064b40             0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d   ┆    xor                       ; ┆
0x064b40…064b60             0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a   ┆   revlw     quotient        ;  ┆
0x064b60…064b80             20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d   ┆  crc16                     ;   ┆
0x064b80…064ba0             0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61   ┆   revld     start           ; a┆
0x064ba0…064bc0             6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 36 0d 0a 20 20 72 65 76 73 62 20   ┆nd the same for byte 6    revsb ┆
0x064bc0…064be0             20 20 20 20 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20   ┆    6               ;    xor    ┆
0x064be0…064c00             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20   ┆                   ;    revlw   ┆
0x064c00…064c20 (26, 1, 12) 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20   ┆  quotient        ;    crc16    ┆
0x064c20…064c40             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20   ┆                 ;      revld   ┆
0x064c40…064c60             20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65   ┆  start           ; and the same┆
0x064c60…064c80             20 66 6f 72 20 62 79 74 65 20 37 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 37 20 20 20 20 20 20   ┆ for byte 7    revsb     7      ┆
0x064c80…064ca0             20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆         ;    xor               ┆
0x064ca0…064cc0             20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20   ┆        ;    revlw     quotient ┆
0x064cc0…064ce0             20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆       ;    crc16               ┆
0x064ce0…064d00             20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20   ┆      ;      revld     start    ┆
0x064d00…064d20             20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 38   ┆       ; and the same for byte 8┆
0x064d20…064d40             0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d   ┆    revsb     8               ; ┆
0x064d40…064d60             0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a   ┆   xor                       ;  ┆
0x064d60…064d80             20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a 20   ┆  revlw     quotient        ;   ┆
0x064d80…064da0             20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a   ┆ crc16                     ;    ┆
0x064da0…064dc0             20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e   ┆  revld     start           ; an┆
0x064dc0…064de0             64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 39 0d 0a 20 20 72 65 76 73 62 20 20   ┆d the same for byte 9    revsb  ┆
0x064de0…064e00             20 20 20 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20   ┆   9               ;    xor     ┆
0x064e00…064e20 (26, 1, 13) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20   ┆                  ;    revlw    ┆
0x064e20…064e40             20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20   ┆ quotient        ;    crc16     ┆
0x064e40…064e60             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20   ┆                ;      revld    ┆
0x064e60…064e80             20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20   ┆ start           ; and the same ┆
0x064e80…064ea0             66 6f 72 20 62 79 74 65 20 31 30 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 31 30 20 20 20 20 20   ┆for byte 10    revsb     10     ┆
0x064ea0…064ec0             20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆         ;    xor               ┆
0x064ec0…064ee0             20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20   ┆        ;    revlw     quotient ┆
0x064ee0…064f00             20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆       ;    crc16               ┆
0x064f00…064f20             20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20   ┆      ;      revld     start    ┆
0x064f20…064f40             20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 31   ┆       ; and the same for byte 1┆
0x064f40…064f60             31 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 31 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b   ┆1    revsb     11              ;┆
0x064f60…064f80             0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d   ┆    xor                       ; ┆
0x064f80…064fa0             0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a   ┆   revlw     quotient        ;  ┆
0x064fa0…064fc0             20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d   ┆  crc16                     ;   ┆
0x064fc0…064fe0             0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61   ┆   revld     start           ; a┆
0x064fe0…065000             6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 31 32 0d 0a 20 20 72 65 76 73 62   ┆nd the same for byte 12    revsb┆
0x065000…065020 (26, 1, 14) 20 20 20 20 20 31 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20   ┆     12              ;    xor   ┆
0x065020…065040             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20   ┆                    ;    revlw  ┆
0x065040…065060             20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20   ┆   quotient        ;    crc16   ┆
0x065060…065080             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20   ┆                  ;      revld  ┆
0x065080…0650a0             20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d   ┆   start           ; and the sam┆
0x0650a0…0650c0             65 20 66 6f 72 20 62 79 74 65 20 31 33 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 31 33 20 20 20   ┆e for byte 13    revsb     13   ┆
0x0650c0…0650e0             20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆           ;    xor             ┆
0x0650e0…065100             20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e   ┆          ;    revlw     quotien┆
0x065100…065120             74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆t        ;    crc16             ┆
0x065120…065140             20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20   ┆        ;      revld     start  ┆
0x065140…065160             20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65   ┆         ; and the same for byte┆
0x065160…065180             20 31 34 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 31 34 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ 14    revsb     14             ┆
0x065180…0651a0             20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ ;    xor                       ┆
0x0651a0…0651c0             3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b   ┆;    revlw     quotient        ;┆
0x0651c0…0651e0             0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d   ┆    crc16                     ; ┆
0x0651e0…065200             0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b   ┆     revld     start           ;┆
0x065200…065220 (26, 1, 15) 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 31 35 0d 0a 20 20 72 65 76   ┆ and the same for byte 15    rev┆
0x065220…065240             73 62 20 20 20 20 20 31 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20   ┆sb     15              ;    xor ┆
0x065240…065260             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77   ┆                      ;    revlw┆
0x065260…065280             20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20   ┆     quotient        ;    crc16 ┆
0x065280…0652a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 77   ┆                    ;      revlw┆
0x0652a0…0652c0             20 20 20 20 20 73 74 61 72 74 64 69 73 70 20 20 20 20 20 20 20 3b 20 69 6e 63 72 65 61 73 65 20   ┆     startdisp       ; increase ┆
0x0652c0…0652e0             64 69 73 70 6c 61 63 65 6d 65 6e 74 20 6f 66 20 73 74 61 72 74 20 20 20 20 20 20 20 20 77 69 74   ┆displacement of start        wit┆
0x0652e0…065300             68 20 31 36 0d 0a 20 20 75 61 64 68 77 20 20 20 20 20 31 36 20 20 20 20 20 20 20 20 20 20 20 20   ┆h 16    uadhw     16            ┆
0x065300…065320             20 20 3b 20 0d 0a 20 20 73 74 76 6c 77 20 20 20 20 20 73 74 61 72 74 64 69 73 70 20 20 20 20 20   ┆  ;     stvlw     startdisp     ┆
0x065320…065340             20 20 3b 0d 0a 0d 0a 65 6e 74 31 36 3a 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 63 6f 75 6e 74   ┆  ;    ent16:    revlw     count┆
0x065340…065360             20 20 20 20 20 20 20 20 20 20 20 3b 20 64 65 63 72 65 61 73 65 20 63 6f 75 6e 74 0d 0a 20 20 72   ┆           ; decrease count    r┆
0x065360…065380             65 63 68 77 20 20 20 20 20 2d 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 6d 61   ┆echw     -16             ;    ma┆
0x065380…0653a0             64 64 0d 0a 20 20 6d 62 74 65 73 20 20 20 20 20 63 61 72 72 79 20 20 20 20 20 20 20 20 20 20 20   ┆dd    mbtes     carry           ┆
0x0653a0…0653c0             3b 20 75 6e 74 69 6c 20 63 6f 75 6e 74 20 3c 20 30 0d 0a 20 20 6a 6d 7a 67 74 20 20 20 20 20 6c   ┆; until count < 0    jmzgt     l┆
0x0653c0…0653e0             6f 6f 70 31 36 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 73 74 61 72 74 34 3a 20 20 20 20 20   ┆oop16          ;    start4:     ┆
0x0653e0…065400             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 74 72 79 20 77 69 74 68 20 34 20 62 79 74   ┆                ; try with 4 byt┆
0x065400…065420 (27, 0, 1)  65 73 20 70 61 72 74 0d 0a 20 20 75 61 64 68 77 20 20 20 20 20 31 32 20 20 20 20 20 20 20 20 20   ┆es part    uadhw     12         ┆
0x065420…065440             20 20 20 20 20 3b 20 61 64 6a 75 73 74 20 63 6f 75 6e 74 20 77 69 74 68 20 31 36 20 2d 20 34 0d   ┆     ; adjust count with 16 - 4 ┆
0x065440…065460             0a 20 20 72 65 76 70 77 0d 0a 20 20 6a 6d 7a 6c 74 20 20 20 20 20 73 74 61 72 74 31 20 20 20 20   ┆   revpw    jmzlt     start1    ┆
0x065460…065480             20 20 20 20 20 20 3b 20 69 66 20 63 6f 75 6e 74 20 3e 3d 20 30 0d 0a 0d 0a 6c 6f 6f 70 34 3a 20   ┆      ; if count >= 0    loop4: ┆
0x065480…0654a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 70 65 61 74 0d 0a 20   ┆                     ; repeat   ┆
0x0654a0…0654c0             20 73 74 76 6c 77 20 20 20 20 20 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 61 76   ┆ stvlw     count           ; sav┆
0x0654c0…0654e0             65 20 63 6f 75 6e 74 0d 0a 20 20 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20   ┆e count        revld     start  ┆
0x0654e0…065500             20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 61 64 64 72 65 73 73 20 6f 66 20 6e 65 78 74 20 62   ┆         ; get address of next b┆
0x065500…065520             79 74 65 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆yte    revsb     0              ┆
0x065520…065540             20 3b 20 67 65 74 20 62 79 74 65 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ ; get byte    xor              ┆
0x065540…065560             20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74   ┆         ;    revlw     quotient┆
0x065560…065580             20 20 20 20 20 20 20 20 3b 20 67 65 74 20 71 75 6f 74 69 65 6e 74 0d 0a 20 20 63 72 63 31 36 20   ┆        ; get quotient    crc16 ┆
0x065580…0655a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 61 6c 63 75 6c 61 74 65 20   ┆                    ; calculate ┆
0x0655a0…0655c0             63 72 63 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20   ┆crc      revld     start        ┆
0x0655c0…0655e0             20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 31 0d 0a 20 20   ┆   ; and the same for byte 1    ┆
0x0655e0…065600             72 65 76 73 62 20 20 20 20 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78   ┆revsb     1               ;    x┆
0x065600…065620 (27, 0, 2)  6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65   ┆or                       ;    re┆
0x065620…065640             76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63   ┆vlw     quotient        ;    crc┆
0x065640…065660             31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65   ┆16                     ;      re┆
0x065660…065680             76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68   ┆vld     start           ; and th┆
0x065680…0656a0             65 20 73 61 6d 65 20 66 6f 72 20 62 79 74 65 20 32 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 32   ┆e same for byte 2    revsb     2┆
0x0656a0…0656c0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20   ┆               ;    xor         ┆
0x0656c0…0656e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f   ┆              ;    revlw     quo┆
0x0656e0…065700             74 69 65 6e 74 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20   ┆tient        ;    crc16         ┆
0x065700…065720             20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61   ┆            ;      revld     sta┆
0x065720…065740             72 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e 64 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20   ┆rt           ; and the same for ┆
0x065740…065760             62 79 74 65 20 33 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 33 20 20 20 20 20 20 20 20 20 20 20   ┆byte 3    revsb     3           ┆
0x065760…065780             20 20 20 20 3b 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆    ;    xor                    ┆
0x065780…0657a0             20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20 20 20 20   ┆   ;    revlw     quotient      ┆
0x0657a0…0657c0             20 20 3b 0d 0a 20 20 63 72 63 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆  ;    crc16                    ┆
0x0657c0…0657e0             20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 73 74 61 72 74 64 69 73 70 20 20 20 20 20   ┆ ;      revlw     startdisp     ┆
0x0657e0…065800             20 20 3b 20 69 6e 63 72 65 61 73 65 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 20 6f 66 20 73 74 61   ┆  ; increase displacement of sta┆
0x065800…065820 (27, 0, 3)  72 74 61 64 64 72 65 73 73 20 77 69 74 68 20 34 0d 0a 20 20 75 61 64 68 77 20 20 20 20 20 34 20   ┆rtaddress with 4    uadhw     4 ┆
0x065820…065840             20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 0d 0a 20 20 73 74 76 6c 77 20 20 20 20 20 73 74   ┆              ;     stvlw     st┆
0x065840…065860             61 72 74 64 69 73 70 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 63   ┆artdisp       ;      revlw     c┆
0x065860…065880             6f 75 6e 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 65 63 72 65 61 73 65 20 63 6f 75 6e 74 0d   ┆ount           ; decrease count ┆
0x065880…0658a0             0a 20 20 75 61 64 68 77 20 20 20 20 20 2d 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a   ┆   uadhw     -4              ;  ┆
0x0658a0…0658c0             0d 0a 20 20 72 65 76 70 77 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20   ┆    revpw                     ; ┆
0x0658c0…0658e0             75 6e 74 69 6c 20 63 6f 75 6e 74 20 3c 20 30 0d 0a 20 20 6a 6d 7a 67 65 20 20 20 20 20 6c 6f 6f   ┆until count < 0    jmzge     loo┆
0x0658e0…065900             70 34 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 73 74 61 72 74 31 3a 20 20 20 20 20 20 20   ┆p4           ;    start1:       ┆
0x065900…065920             20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 74 72 79 20 77 69 74 68 20 31 20 62 79 74 65 73   ┆              ; try with 1 bytes┆
0x065920…065940             20 70 61 72 74 0d 0a 20 20 75 61 64 68 77 20 20 20 20 20 33 20 20 20 20 20 20 20 20 20 20 20 20   ┆ part    uadhw     3            ┆
0x065940…065960             20 20 20 3b 20 61 64 6a 75 73 74 20 63 6f 75 6e 74 20 77 69 74 68 20 34 20 2d 20 31 0d 0a 20 20   ┆   ; adjust count with 4 - 1    ┆
0x065960…065980             72 65 76 70 77 0d 0a 20 20 6a 6d 7a 6c 74 20 20 20 20 20 65 6e 64 63 72 63 20 20 20 20 20 20 20   ┆revpw    jmzlt     endcrc       ┆
0x065980…0659a0             20 20 20 3b 20 69 66 20 63 6f 75 6e 74 20 3e 3d 20 30 0d 0a 0d 0a 6c 6f 6f 70 31 3a 20 20 20 20   ┆   ; if count >= 0    loop1:    ┆
0x0659a0…0659c0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 70 65 61 74 0d 0a 20 20 73 74   ┆                  ; repeat    st┆
0x0659c0…0659e0             76 6c 77 20 20 20 20 20 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 61 76 65 20 63   ┆vlw     count           ; save c┆
0x0659e0…065a00             6f 75 6e 74 0d 0a 20 20 0d 0a 20 20 72 65 76 6c 64 20 20 20 20 20 73 74 61 72 74 20 20 20 20 20   ┆ount        revld     start     ┆
0x065a00…065a20 (27, 0, 4)  20 20 20 20 20 20 3b 20 67 65 74 20 61 64 64 72 65 73 73 20 6f 66 20 6e 65 78 74 20 62 79 74 65   ┆      ; get address of next byte┆
0x065a20…065a40             0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20   ┆    revsb     0               ; ┆
0x065a40…065a60             67 65 74 20 62 79 74 65 0d 0a 20 20 78 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆get byte    xor                 ┆
0x065a60…065a80             20 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 71 75 6f 74 69 65 6e 74 20 20 20   ┆      ;    revlw     quotient   ┆
0x065a80…065aa0             20 20 20 20 20 3b 20 67 65 74 20 71 75 6f 74 69 65 6e 74 0d 0a 20 20 63 72 63 31 36 20 20 20 20   ┆     ; get quotient    crc16    ┆
0x065aa0…065ac0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 61 6c 63 75 6c 61 74 65 20 63 72 63   ┆                 ; calculate crc┆
0x065ac0…065ae0             0d 0a 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 73 74 61 72 74 64 69 73 70 20 20 20 20 20 20 20   ┆      revlw     startdisp       ┆
0x065ae0…065b00             3b 20 69 6e 63 72 65 61 73 65 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 20 6f 66 20 73 74 61 72 74   ┆; increase displacement of start┆
0x065b00…065b20             61 64 64 72 65 73 73 20 77 69 74 68 20 31 0d 0a 20 20 75 61 64 68 77 20 20 20 20 20 31 20 20 20   ┆address with 1    uadhw     1   ┆
0x065b20…065b40             20 20 20 20 20 20 20 20 20 20 20 20 3b 20 0d 0a 20 20 73 74 76 6c 77 20 20 20 20 20 73 74 61 72   ┆            ;     stvlw     star┆
0x065b40…065b60             74 64 69 73 70 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 20 20 72 65 76 6c 77 20 20 20 20 20 63 6f 75   ┆tdisp       ;      revlw     cou┆
0x065b60…065b80             6e 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 65 63 72 65 61 73 65 20 63 6f 75 6e 74 0d 0a 20   ┆nt           ; decrease count   ┆
0x065b80…065ba0             20 75 61 64 68 77 20 20 20 20 20 2d 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a   ┆ uadhw     -1              ;    ┆
0x065ba0…065bc0             20 20 72 65 76 70 77 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 75 6e   ┆  revpw                     ; un┆
0x065bc0…065be0             74 69 6c 20 63 6f 75 6e 74 20 3c 20 30 0d 0a 20 20 6a 6d 7a 67 65 20 20 20 20 20 6c 6f 6f 70 31   ┆til count < 0    jmzge     loop1┆
0x065be0…065c00             20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 0d 0a 65 6e 64 63 72 63 3a 0d 0a 20 20 73 74 76 6c 77   ┆           ;    endcrc:    stvlw┆
0x065c00…065c20 (27, 0, 5)  20 20 20 20 20 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 6d 6f 76 65 20 63 6f   ┆     count           ; remove co┆
0x065c20…065c40             75 6e 74 20 66 72 6f 6d 20 73 74 61 63 6b 0d 0a 65 2e 0d 0a 65 2e 0d 0a 65 2e 0d 0a 65 6e 64 62   ┆unt from stack  e.  e.  e.  endb┆
0x065c40…065c60             6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 63 72 65 64 69 74 63 6f 75 6e 74 3b 0d 0a 66   ┆ody;      prefix creditcount;  f┆
0x065c60…065c80             75 6e 63 74 69 6f 6e 20 63 72 65 64 69 74 63 6f 75 6e 74 28 76 61 72 20 72 20 3a 20 72 65 66 65   ┆unction creditcount(var r : refe┆
0x065c80…065ca0             72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a   ┆rence): 0..maxint;  beginbody 0:┆
0x065ca0…065cc0             0d 0a 20 20 72 65 76 73 61 20 20 20 31 0d 0a 20 20 72 65 76 73 62 20 20 20 63 72 65 64 69 74 0d   ┆    revsa   1    revsb   credit ┆
0x065cc0…065ce0             0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 63 74 72 77 61 69 74 69 64 3b   ┆ endbody;      prefix ctrwaitid;┆
0x065ce0…065d00             0d 0a 66 75 6e 63 74 69 6f 6e 20 63 74 72 77 61 69 74 69 64 20 28 63 3a 20 69 6e 74 65 67 65 72   ┆  function ctrwaitid (c: integer┆
0x065d00…065d20             3b 20 64 65 6c 61 79 20 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 63 74 69 76 61 74 69 6f 6e 3b 0d   ┆; delay : integer): activation; ┆
0x065d20…065d40             0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 67 77 20 74 69 6d 65 72 20 3b 20 6f   ┆ beginbody 0:    stvgw timer ; o┆
0x065d40…065d60             77 6e 2e 74 69 6d 65 72 20 3a 3d 20 64 65 6c 61 79 0d 0a 20 20 6d 63 69 74 0d 0a 65 6e 64 62 6f   ┆wn.timer := delay    mcit  endbo┆
0x065d60…065d80             64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 63 74 72 77 61 69 74 69 73 3b 0d 0a 66 75 6e 63   ┆dy;      prefix ctrwaitis;  func┆
0x065d80…065da0             74 69 6f 6e 20 63 74 72 77 61 69 74 69 73 20 28 63 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72 20   ┆tion ctrwaitis (c: integer; var ┆
0x065da0…065dc0             72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 72 20 73 3a 20 73 65 6d 61 70 68 6f 72 65 29 3a   ┆r: reference; var s: semaphore):┆
0x065dc0…065de0             20 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 63   ┆ activation;  beginbody 0:    mc┆
0x065de0…065e00             69 73 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 63 74 72 77 61 69 74   ┆is  endbody;      prefix ctrwait┆
0x065e00…065e20 (27, 0, 6)  69 73 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 74 72 77 61 69 74 69 73 64 20 28 63 3a 20 69 6e   ┆isd;  function ctrwaitisd (c: in┆
0x065e20…065e40             74 65 67 65 72 3b 20 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 72 20 73 3a 20   ┆teger; var r: reference; var s: ┆
0x065e40…065e60             73 65 6d 61 70 68 6f 72 65 3b 20 64 65 6c 61 79 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 63 74 69   ┆semaphore; delay: integer): acti┆
0x065e60…065e80             76 61 74 69 6f 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 67 77 20 74   ┆vation;  beginbody 0:    stvgw t┆
0x065e80…065ea0             69 6d 65 72 20 3b 20 6f 77 6e 2e 74 69 6d 65 72 20 3a 3d 20 64 65 6c 61 79 0d 0a 20 20 6d 63 69   ┆imer ; own.timer := delay    mci┆
0x065ea0…065ec0             73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 63 74 72 77 61 69 74   ┆st  endbody;      prefix ctrwait┆
0x065ec0…065ee0             69 73 74 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 74 72 77 61 69 74 69 73 74 20 28 63 3a 20 69 6e   ┆ist;  function ctrwaitist (c: in┆
0x065ee0…065f00             74 65 67 65 72 3b 20 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 72 20 73 3a 20   ┆teger; var r: reference; var s: ┆
0x065f00…065f20             73 65 6d 61 70 68 6f 72 65 29 3a 20 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 62 65 67 69 6e 62 6f   ┆semaphore): activation;  beginbo┆
0x065f20…065f40             64 79 20 30 3a 0d 0a 20 20 6d 63 69 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72   ┆dy 0:    mcist  endbody;      pr┆
0x065f40…065f60             65 66 69 78 20 63 74 72 77 61 69 74 69 74 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 74 72 77 61 69   ┆efix ctrwaitit;  function ctrwai┆
0x065f60…065f80             74 69 74 20 28 63 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 62   ┆tit (c: integer): activation;  b┆
0x065f80…065fa0             65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 63 69 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d   ┆eginbody 0:    mcit  endbody;   ┆
0x065fa0…065fc0             0a 0d 0a 70 72 65 66 69 78 20 64 75 6d 70 5f 68 77 73 74 61 63 6b 3b 0d 0a 70 72 6f 63 65 64 75   ┆   prefix dump_hwstack;  procedu┆
0x065fc0…065fe0             72 65 20 64 75 6d 70 5f 68 77 73 74 61 63 6b 20 28 72 65 67 73 65 74 20 3a 20 69 6e 74 65 67 65   ┆re dump_hwstack (regset : intege┆
0x065fe0…066000             72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 73 74 73 74 0d 0a 65 6e 64 62   ┆r);  beginbody 0:    mstst  endb┆
0x066000…066020 (27, 0, 7)  6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 65 6f 69 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆ody;      prefix eoi;  function ┆
0x066020…066040             65 6f 69 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 62 2e   ┆eoi : boolean;  beginbody 2:  b.┆
0x066040…066060             20 66 23 2e 0d 0a 20 20 6d 62 74 65 73 20 32 20 20 20 20 20 20 20 20 3b 20 70 75 73 68 20 65 6f   ┆ f#.    mbtes 2        ; push eo┆
0x066060…066080             69 0d 0a 65 2e 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 65 76 65   ┆i  e.  endbody;      prefix beve┆
0x066080…0660a0             6e 74 6b 69 6e 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 65 76 65 6e 74 6b 69 6e 64 28 76 61 72   ┆ntkind;  function beventkind(var┆
0x0660a0…0660c0             20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 65 76 65 6e 74 5f 74 79 70 65 3b 0d 0a 62 65   ┆ r : reference): event_type;  be┆
0x0660c0…0660e0             67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 31 0d 0a 20 20 72 65 76 73 62   ┆ginbody 0:    revsa   1    revsb┆
0x0660e0…066100             20 20 20 65 76 65 6e 74 6b 69 6e 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66   ┆   eventkind  endbody;      pref┆
0x066100…066120             69 78 20 65 76 65 6e 74 6b 69 6e 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 65 76 65 6e 74 6b 69 6e   ┆ix eventkind;  function eventkin┆
0x066120…066140             64 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 65 76 65 6e 74 5f 74 79 70 65   ┆d(var r : reference): event_type┆
0x066140…066160             3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 31 0d 0a 20 20   ┆;  beginbody 0:    revsa   1    ┆
0x066160…066180             72 65 76 73 62 20 20 20 65 76 65 6e 74 6b 69 6e 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d   ┆revsb   eventkind  endbody;     ┆
0x066180…0661a0             0a 70 72 65 66 69 78 20 65 78 63 70 74 63 61 6c 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 65 78   ┆ prefix excptcall;  procedure ex┆
0x0661a0…0661c0             63 70 74 63 61 6c 6c 20 28 65 78 63 6f 64 65 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67   ┆cptcall (excode : integer);  beg┆
0x0661c0…0661e0             69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 74 72 73 20 20 20 3b 20 74 72 61 70 20 73 74 61 63 6b   ┆inbody 0:    mtrs   ; trap stack┆
0x0661e0…066200             0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 66 69 72 73 74 3b 0d 0a 66   ┆  endbody;      prefix first;  f┆
0x066200…066220 (27, 0, 8)  75 6e 63 74 69 6f 6e 20 66 69 72 73 74 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a   ┆unction first(var r: reference):┆
0x066220…066240             20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61   ┆ integer;  beginbody 0:    revsa┆
0x066240…066260             20 20 20 20 20 31 0d 0a 20 20 72 65 76 73 64 20 20 20 20 20 6d 73 74 61 72 74 0d 0a 20 20 72 65   ┆     1    revsd     mstart    re┆
0x066260…066280             76 73 77 20 20 20 20 20 6d 66 69 72 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72   ┆vsw     mfirst  endbody;      pr┆
0x066280…0662a0             65 66 69 78 20 67 65 74 61 64 64 72 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65 74 61 64 64 72   ┆efix getaddr;  procedure getaddr┆
0x0662a0…0662c0             28 76 61 72 20 64 65 73 74 20 3a 20 61 64 64 72 3b 20 73 6f 75 72 63 65 20 3a 20 61 64 64 72 29   ┆(var dest : addr; source : addr)┆
0x0662c0…0662e0             3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 64 20 30 0d 0a 20 20 73 74   ┆;  beginbody 0:    revsd 0    st┆
0x0662e0…066300             76 73 64 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 67 65 74 62   ┆vsd 0  endbody;      prefix getb┆
0x066300…066320             61 73 65 72 65 67 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65 74 62 61 73 65 72 65 67 20 28 76   ┆asereg;  procedure getbasereg (v┆
0x066320…066340             61 72 20 62 20 3a 20 62 79 74 65 3b 20 69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a   ┆ar b : byte; index : integer);  ┆
0x066340…066360             62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63 72 67 65 74 20 20 20 20 3b 20 67 65 74 72 65   ┆beginbody 0:    crget    ; getre┆
0x066360…066380             67 69 73 74 65 72 0d 0a 20 20 73 74 76 73 62 20 30 20 20 3b 20 70 6f 70 20 72 65 73 75 6c 74 0d   ┆gister    stvsb 0  ; pop result ┆
0x066380…0663a0             0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 67 65 74 62 75 66 70 61 72 61   ┆ endbody;      prefix getbufpara┆
0x0663a0…0663c0             6d 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65 74 62 75 66 70 61 72 61 6d 0d 0a 20 28 76 61 72   ┆m;  procedure getbufparam   (var┆
0x0663c0…0663e0             20 69 20 3a 20 72 65 63 6f 72 64 0d 0a 20 20 20 20 73 61 64 64 72 20 3a 20 61 64 64 72 3b 0d 0a   ┆ i : record      saddr : addr;  ┆
0x0663e0…066400             20 20 20 20 63 6f 75 6e 74 2c 74 6f 70 20 3a 20 69 6e 74 65 67 65 72 0d 0a 20 20 65 6e 64 3b 0d   ┆    count,top : integer    end; ┆
0x066400…066420 (27, 0, 9)  0a 20 20 66 69 72 73 74 2c 6c 61 73 74 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 76 61 72 20   ┆   first,last : integer;    var ┆
0x066420…066440             6d 73 67 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d   ┆msg : reference);  beginbody 2: ┆
0x066440…066460             0a 20 20 69 6f 69 62 78 0d 0a 20 20 72 65 63 68 77 20 38 20 20 20 3b 20 70 75 73 68 20 6c 65 6e   ┆   ioibx    rechw 8   ; push len┆
0x066460…066480             67 74 68 20 74 6f 20 73 65 74 73 74 0d 0a 20 20 72 65 73 74 61 20 30 20 20 20 3b 20 64 75 6d 70   ┆gth to setst    resta 0   ; dump┆
0x066480…0664a0             20 68 77 20 73 74 61 63 6b 0d 0a 20 20 73 65 74 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a   ┆ hw stack    setst  endbody;    ┆
0x0664a0…0664c0             0d 0a 70 72 65 66 69 78 20 67 65 74 62 79 74 65 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65 74   ┆  prefix getbyte;  procedure get┆
0x0664c0…0664e0             62 79 74 65 20 28 76 61 72 20 72 65 73 75 6c 74 3a 20 62 79 74 65 3b 20 70 6f 69 6e 74 65 72 3a   ┆byte (var result: byte; pointer:┆
0x0664e0…066500             20 61 64 64 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 62 20 30   ┆ addr);  beginbody 0:    revsb 0┆
0x066500…066520             0d 0a 20 20 73 74 76 73 62 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69   ┆    stvsb 0  endbody;      prefi┆
0x066520…066540             78 20 67 65 74 69 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 69 64 20 3a 20 69 6e 74 65 67   ┆x getid;  function getid : integ┆
0x066540…066560             65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 63 68 77 20 30 3b 20 20 72   ┆er;  beginbody 2:    rechw 0;  r┆
0x066560…066580             65 61 64 20 66 72 6f 6d 20 64 65 76 69 63 65 20 30 0d 0a 20 20 69 6f 72 77 20 20 20 3b 0d 0a 65   ┆ead from device 0    iorw   ;  e┆
0x066580…0665a0             6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 67 65 74 69 6e 74 65 67 65 72 3b 0d   ┆ndbody;      prefix getinteger; ┆
0x0665a0…0665c0             0a 70 72 6f 63 65 64 75 72 65 20 67 65 74 69 6e 74 65 67 65 72 28 76 61 72 20 72 65 73 75 6c 74   ┆ procedure getinteger(var result┆
0x0665c0…0665e0             20 3a 20 69 6e 74 65 67 65 72 3b 20 70 6f 69 6e 74 65 72 20 3a 20 61 64 64 72 29 3b 0d 0a 62 65   ┆ : integer; pointer : addr);  be┆
0x0665e0…066600             67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 77 20 30 20 20 20 20 20 20 20 20 20 20 20   ┆ginbody 0:    revsw 0           ┆
0x066600…066620 (27, 0, 10) 20 20 20 20 20 20 20 20 20 20 3b 20 70 75 73 68 20 6f 70 65 72 61 6e 64 0d 0a 20 20 73 74 76 73   ┆          ; push operand    stvs┆
0x066620…066640             77 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 70 6f 70 20 72 65   ┆w 0                     ; pop re┆
0x066640…066660             73 75 6c 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 67 65 74 6c 66   ┆sult  endbody;      prefix getlf┆
0x066660…066680             67 66 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65 74 6c 66 67 66 20 28 76 61 72 20 6c 66 2c 20   ┆gf;  procedure getlfgf (var lf, ┆
0x066680…0666a0             67 66 3a 20 61 64 64 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 34 3a 0d 0a 20 20 72 65 61 67   ┆gf: addr);  beginbody 4:    reag┆
0x0666a0…0666c0             64 20 30 0d 0a 20 20 73 74 76 73 64 20 30 20 3b 20 67 65 74 20 67 6c 6f 62 61 6c 20 66 72 61 6d   ┆d 0    stvsd 0 ; get global fram┆
0x0666c0…0666e0             65 20 28 20 65 76 65 6e 20 64 69 73 70 20 29 0d 0a 20 20 72 65 61 6c 64 20 30 0d 0a 20 20 73 74   ┆e ( even disp )    reald 0    st┆
0x0666e0…066700             76 73 64 20 30 20 3b 20 67 65 74 20 6c 6f 63 61 6c 20 66 72 61 6d 65 0d 0a 65 6e 64 62 6f 64 79   ┆vsd 0 ; get local frame  endbody┆
0x066700…066720             3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 67 65 74 72 65 67 69 73 74 65 72 3b 0d 0a 70 72 6f 63   ┆;      prefix getregister;  proc┆
0x066720…066740             65 64 75 72 65 20 67 65 74 72 65 67 69 73 74 65 72 20 28 76 61 72 20 72 65 73 75 6c 74 20 3a 20   ┆edure getregister (var result : ┆
0x066740…066760             69 6e 74 65 67 65 72 3b 20 69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69   ┆integer; index : integer);  begi┆
0x066760…066780             6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63 72 67 65 74 20 20 20 20 20 3b 20 67 65 74 72 65 67 69 73   ┆nbody 0:    crget     ; getregis┆
0x066780…0667a0             74 65 72 0d 0a 20 20 73 74 76 73 77 20 30 20 20 20 3b 20 70 6f 70 20 72 65 73 75 6c 74 0d 0a 65   ┆ter    stvsw 0   ; pop result  e┆
0x0667a0…0667c0             6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6e 62 79 74 65 62 6c 6f 63 6b 3b   ┆ndbody;      prefix inbyteblock;┆
0x0667c0…0667e0             0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 62 79 74 65 62 6c 6f 63 6b 0d 0a 20 20 28 76 61 72 20   ┆  procedure inbyteblock    (var ┆
0x0667e0…066800             6e 65 78 74 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 66 69 72 73 74 2c 20 6c 61 73 74 20   ┆next : integer;     first, last ┆
0x066800…066820 (27, 0, 11) 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 76 61 72 20 6d 73 67 20 3a 20 72 65 66 65 72 65 6e   ┆: integer;     var msg : referen┆
0x066820…066840             63 65 20 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69 6f 69 62 78 20 20 20 20   ┆ce );  beginbody 0:    ioibx    ┆
0x066840…066860             20 20 20 20 3b 20 69 6e 69 74 62 6c 6f 63 6b 5f 69 6f 0d 0a 20 20 69 6f 72 62 62 20 20 20 20 20   ┆    ; initblock_io    iorbb     ┆
0x066860…066880             20 20 20 3b 20 72 62 62 0d 0a 20 20 73 74 76 73 77 20 30 20 20 20 20 20 20 3b 20 70 6f 70 20 6e   ┆   ; rbb    stvsw 0      ; pop n┆
0x066880…0668a0             65 78 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6e 64 65 78 3b   ┆ext  endbody;      prefix index;┆
0x0668a0…0668c0             0d 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 64 65 78 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65   ┆  function index (var r : refere┆
0x0668c0…0668e0             6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a   ┆nce): 0..maxint;  beginbody 0:  ┆
0x0668e0…066900             20 20 72 65 76 73 61 20 20 20 31 0d 0a 20 20 72 65 76 73 62 20 20 20 63 6f 6e 6e 69 78 0d 0a 65   ┆  revsa   1    revsb   connix  e┆
0x066900…066920             6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6e 69 74 72 65 66 3b 0d 0a 70 72   ┆ndbody;      prefix initref;  pr┆
0x066920…066940             6f 63 65 64 75 72 65 20 69 6e 69 74 72 65 66 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e   ┆ocedure initref (var r : referen┆
0x066940…066960             63 65 3b 0d 0a 20 20 76 61 72 20 6d 73 67 5f 68 65 61 64 65 72 20 3a 20 6d 65 73 73 61 67 65 5f   ┆ce;    var msg_header : message_┆
0x066960…066980             68 65 61 64 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 73 64 20   ┆header);  beginbody 0:    stvsd ┆
0x066980…0669a0             30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 65 6e 64 62 6f 64 79   ┆0                     ;  endbody┆
0x0669a0…0669c0             3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6e 74 65 67 65 72 63 6c 65 61 72 3b 0d 0a 70 72 6f   ┆;      prefix integerclear;  pro┆
0x0669c0…0669e0             63 65 64 75 72 65 20 69 6e 74 65 67 65 72 63 6c 65 61 72 20 28 76 61 72 20 69 20 3a 20 69 6e 74   ┆cedure integerclear (var i : int┆
0x0669e0…066a00             65 67 65 72 3b 20 6a 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30   ┆eger; j : integer);  beginbody 0┆
0x066a00…066a20 (27, 0, 12) 3a 0d 0a 20 20 69 6f 6e 63 69 0d 0a 20 20 73 74 76 73 77 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d   ┆:    ionci    stvsw 0  endbody; ┆
0x066a20…066a40             0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6e 74 65 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 74   ┆     prefix intel;  function int┆
0x066a40…066a60             65 6c 28 69 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 72 65 63 6f 72 64 0d 0a 20 20 6c 6f 77 2c   ┆el(i : integer) : record    low,┆
0x066a60…066a80             68 69 67 68 20 3a 20 62 79 74 65 0d 0a 65 6e 64 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d   ┆high : byte  end;  beginbody 0: ┆
0x066a80…066aa0             0a 20 20 73 68 63 38 0d 0a 20 20 73 74 76 73 77 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a   ┆   shc8    stvsw 0  endbody;    ┆
0x066aa0…066ac0             0d 0a 70 72 65 66 69 78 20 69 6e 77 61 69 74 71 75 65 75 65 3b 0d 0a 70 72 6f 63 65 64 75 72 65   ┆  prefix inwaitqueue;  procedure┆
0x066ac0…066ae0             20 69 6e 77 61 69 74 71 75 65 75 65 20 28 6d 72 65 67 73 65 74 20 3a 20 69 6e 74 65 67 65 72 29   ┆ inwaitqueue (mregset : integer)┆
0x066ae0…066b00             3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63 69 6e 77 71 0d 0a 65 6e 64 62 6f 64   ┆;  beginbody 0:    cinwq  endbod┆
0x066b00…066b20             79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6e 77 6f 72 64 3b 0d 0a 70 72 6f 63 65 64 75 72   ┆y;      prefix inword;  procedur┆
0x066b20…066b40             65 20 69 6e 77 6f 72 64 28 76 61 72 20 77 6f 72 64 20 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72   ┆e inword(var word : integer; var┆
0x066b40…066b60             20 63 68 5f 6d 73 67 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79   ┆ ch_msg : reference);  beginbody┆
0x066b60…066b80             20 30 3a 0d 0a 20 20 69 6f 63 64 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ 0:    iocda                    ┆
0x066b80…066ba0             20 20 20 3b 20 67 65 74 20 64 65 76 69 63 65 20 61 64 64 72 65 73 73 0d 0a 20 20 69 6f 72 77 20   ┆   ; get device address    iorw ┆
0x066ba0…066bc0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 61 64 77 6f 72   ┆                       ; readwor┆
0x066bc0…066be0             64 0d 0a 20 20 73 74 76 73 77 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆d    stvsw 0                    ┆
0x066be0…066c00             20 3b 20 70 6f 70 20 77 6f 72 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69   ┆ ; pop word  endbody;      prefi┆
0x066c00…066c20 (27, 0, 13) 78 20 69 6e 77 6f 72 64 62 6c 6f 63 6b 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 77 6f 72 64   ┆x inwordblock;  procedure inword┆
0x066c20…066c40             62 6c 6f 63 6b 0d 0a 20 20 28 76 61 72 20 6e 65 78 74 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20   ┆block    (var next : integer;   ┆
0x066c40…066c60             20 20 66 69 72 73 74 2c 20 6c 61 73 74 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 76 61 72   ┆  first, last : integer;     var┆
0x066c60…066c80             20 6d 73 67 20 3a 20 72 65 66 65 72 65 6e 63 65 20 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30   ┆ msg : reference );  beginbody 0┆
0x066c80…066ca0             3a 0d 0a 20 20 69 6f 69 62 78 20 20 20 20 20 20 20 20 3b 20 69 6e 69 74 62 6c 6f 63 6b 5f 69 6f   ┆:    ioibx        ; initblock_io┆
0x066ca0…066cc0             0d 0a 20 20 69 6f 72 62 77 20 20 20 20 20 20 20 20 3b 20 72 65 61 64 5f 62 6c 6f 63 6b 5f 6f 66   ┆    iorbw        ; read_block_of┆
0x066cc0…066ce0             5f 77 6f 72 64 73 0d 0a 20 20 73 74 76 73 77 20 30 20 20 20 20 20 20 3b 20 70 6f 70 20 6e 65 78   ┆_words    stvsw 0      ; pop nex┆
0x066ce0…066d00             74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6e 77 6f 72 64 63 6c   ┆t  endbody;      prefix inwordcl┆
0x066d00…066d20             72 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 77 6f 72 64 63 6c 72 20 28 76 61 72 20 77 6f 72   ┆r;  procedure inwordclr (var wor┆
0x066d20…066d40             64 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72   ┆d : integer);  beginbody 2:    r┆
0x066d40…066d60             65 76 67 62 20 20 6c 65 76 65 6c 20 20 3b 20 67 65 74 20 64 65 76 69 63 65 20 61 64 64 72 65 73   ┆evgb  level  ; get device addres┆
0x066d60…066d80             73 0d 0a 20 20 69 6f 6e 63 69 20 20 20 20 20 20 20 20 20 3b 20 6e 65 78 74 20 63 6c 65 61 72 20   ┆s    ionci         ; next clear ┆
0x066d80…066da0             69 6e 74 65 72 72 75 70 74 0d 0a 20 20 69 6f 72 77 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 61   ┆interrupt    iorw          ; rea┆
0x066da0…066dc0             64 20 77 6f 72 64 0d 0a 20 20 73 74 76 73 77 20 20 30 20 20 20 20 20 20 3b 20 73 74 6f 72 65 20   ┆d word    stvsw  0      ; store ┆
0x066dc0…066de0             77 6f 72 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6f 67 69 3b   ┆word  endbody;      prefix iogi;┆
0x066de0…066e00             0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6f 67 69 20 28 76 61 72 20 72 65 73 20 3a 20 69 6e 74 65   ┆  procedure iogi (var res : inte┆
0x066e00…066e20 (27, 0, 14) 67 65 72 3b 20 64 61 74 61 2c 66 75 6e 63 20 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72 20 72 20   ┆ger; data,func : integer; var r ┆
0x066e20…066e40             3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69   ┆: reference);  beginbody 0:    i┆
0x066e40…066e60             6f 63 64 61 0d 0a 20 20 69 6f 67 69 0d 0a 20 20 73 74 76 73 77 20 30 0d 0a 65 6e 64 62 6f 64 79   ┆ocda    iogi    stvsw 0  endbody┆
0x066e60…066e80             3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 69 6f 67 6f 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69   ┆;      prefix iogo;  procedure i┆
0x066e80…066ea0             6f 67 6f 20 28 64 61 74 61 2c 20 66 75 6e 63 20 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72 20 72   ┆ogo (data, func : integer; var r┆
0x066ea0…066ec0             20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20   ┆ : reference);  beginbody 0:    ┆
0x066ec0…066ee0             69 6f 63 64 61 0d 0a 20 20 69 6f 67 6f 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65   ┆iocda    iogo  endbody;      pre┆
0x066ee0…066f00             66 69 78 20 69 6f 77 62 77 63 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6f 77 62 77 63 20 28 62   ┆fix iowbwc;  procedure iowbwc (b┆
0x066f00…066f20             75 66 70 61 72 61 6d 20 3a 20 72 65 63 6f 72 64 20 0d 0a 20 20 74 6f 70 2c 20 63 6f 75 6e 74 20   ┆ufparam : record     top, count ┆
0x066f20…066f40             3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 64 61 74 61 73 74 61 72 74 20 20 3a 20 61 64 64 72 3b   ┆: integer;    datastart  : addr;┆
0x066f40…066f60             0d 0a 65 6e 64 20 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69 6f 77 62 77 63   ┆  end );  beginbody 0:    iowbwc┆
0x066f60…066f80             0d 0a 20 20 73 74 6e 68 62 20 20 20 32 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65   ┆    stnhb   2  endbody;      pre┆
0x066f80…066fa0             66 69 78 20 6a 75 6d 70 74 6f 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6a 75 6d 70 74 6f 28 61 64   ┆fix jumpto;  procedure jumpto(ad┆
0x066fa0…066fc0             64 72 65 73 73 20 3a 20 61 64 64 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20   ┆dress : addr);  beginbody 0:    ┆
0x066fc0…066fe0             73 74 76 67 61 20 65 78 69 63 0d 0a 20 20 6a 6d 70 67 61 20 65 78 69 63 0d 0a 65 6e 64 62 6f 64   ┆stvga exic    jmpga exic  endbod┆
0x066fe0…067000             79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6c 61 6d 62 64 61 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆y;      prefix lambda;  function┆
0x067000…067020 (27, 0, 15) 20 6c 61 6d 62 64 61 28 20 69 69 20 3a 20 72 65 63 6f 72 64 20 6c 6f 77 2c 68 69 67 68 20 3a 20   ┆ lambda( ii : record low,high : ┆
0x067020…067040             62 79 74 65 20 65 6e 64 20 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79   ┆byte end ) : integer;  beginbody┆
0x067040…067060             20 30 3a 0d 0a 20 20 73 68 63 38 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69   ┆ 0:    shc8  endbody;      prefi┆
0x067060…067080             78 20 6c 61 73 74 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 20 28 76 61 72 20 72 3a 20 72   ┆x last;  function last (var r: r┆
0x067080…0670a0             65 66 65 72 65 6e 63 65 29 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30   ┆eference): integer;  beginbody 0┆
0x0670a0…0670c0             3a 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 73 64 20 20 20 20 20 6d 73   ┆:    revsa     1    revsd     ms┆
0x0670c0…0670e0             74 61 72 74 0d 0a 20 20 72 65 76 73 77 20 20 20 20 20 6d 6c 61 73 74 0d 0a 65 6e 64 62 6f 64 79   ┆tart    revsw     mlast  endbody┆
0x0670e0…067100             3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6c 69 6e 6b 6d 65 73 73 61 67 65 3b 0d 0a 70 72 6f 63   ┆;      prefix linkmessage;  proc┆
0x067100…067120             65 64 75 72 65 20 6c 69 6e 6b 6d 65 73 73 61 67 65 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72   ┆edure linkmessage (var r : refer┆
0x067120…067140             65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 38 3a 0d 0a 20 20 72 65 76 73 61 20 31 0d   ┆ence);  beginbody 8:    revsa 1 ┆
0x067140…067160             0a 20 20 72 65 76 70 64 0d 0a 20 20 72 65 76 67 61 20 6d 73 67 63 68 61 69 6e 0d 0a 20 20 73 74   ┆   revpd    revga msgchain    st┆
0x067160…067180             76 73 61 20 6d 6d 73 67 63 68 61 69 6e 0d 0a 20 20 73 74 76 67 61 20 6d 73 67 63 68 61 69 6e 0d   ┆vsa mmsgchain    stvga msgchain ┆
0x067180…0671a0             0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6c 6f 61 64 5f 68 77 73 74 61   ┆ endbody;      prefix load_hwsta┆
0x0671a0…0671c0             63 6b 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6c 6f 61 64 5f 68 77 73 74 61 63 6b 20 28 20 72 65   ┆ck;  procedure load_hwstack ( re┆
0x0671c0…0671e0             67 73 65 74 20 3a 20 69 6e 74 65 67 65 72 20 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d   ┆gset : integer );  beginbody 0: ┆
0x0671e0…067200             0a 20 20 6d 72 65 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6c   ┆   mrest  endbody;      prefix l┆
0x067200…067220 (27, 1, 1)  6f 63 6b 65 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 65 64 20 28 76 61 72 20 73 65 6d   ┆ocked;  function locked (var sem┆
0x067220…067240             20 3a 20 73 65 6d 61 70 68 6f 72 65 29 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69 6e 62   ┆ : semaphore) : boolean;  beginb┆
0x067240…067260             6f 64 79 20 30 3a 0d 0a 20 20 74 6c 6f 63 6b 20 20 20 20 20 3b 74 65 73 74 20 6c 6f 63 6b 65 64   ┆ody 0:    tlock     ;test locked┆
0x067260…067280             0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6c 6f 63 6b 74 65 73 74 3b   ┆  endbody;      prefix locktest;┆
0x067280…0672a0             0d 0a 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 74 65 73 74 20 28 76 61 72 20 72 20 3a 20 72 65 66   ┆  function locktest (var r : ref┆
0x0672a0…0672c0             65 72 65 6e 63 65 29 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a   ┆erence) : boolean;  beginbody 0:┆
0x0672c0…0672e0             0d 0a 20 20 72 65 76 73 62 20 30 20 20 20 3b 20 67 65 74 20 63 6f 75 6e 74 20 62 79 74 65 0d 0a   ┆    revsb 0   ; get count byte  ┆
0x0672e0…067300             20 20 72 65 63 68 77 20 30 20 20 20 3b 0d 0a 20 20 67 74 20 20 20 20 20 20 20 20 3b 20 74 72 75   ┆  rechw 0   ;    gt        ; tru┆
0x067300…067320             65 20 69 66 20 63 6f 75 6e 74 20 3e 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72   ┆e if count > 0  endbody;      pr┆
0x067320…067340             65 66 69 78 20 6d 61 64 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 64 64 20 28 61 2c 62 20 3a   ┆efix madd;  function madd (a,b :┆
0x067340…067360             20 69 6e 74 65 67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20   ┆ integer) : integer;  beginbody ┆
0x067360…067380             30 3a 0d 0a 20 20 6d 61 64 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78   ┆0:    madd  endbody;      prefix┆
0x067380…0673a0             20 6d 6d 75 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 6d 75 6c 20 28 61 2c 62 20 3a 20 69 6e 74   ┆ mmul;  function mmul (a,b : int┆
0x0673a0…0673c0             65 67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a   ┆eger) : integer;  beginbody 0:  ┆
0x0673c0…0673e0             20 20 6d 6d 75 6c 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6d 6f 76   ┆  mmul  endbody;      prefix mov┆
0x0673e0…067400             65 62 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 6f 76 65 62 28 20 63 6f 75 6e 74 20 3a 20 69 6e   ┆eb;  procedure moveb( count : in┆
0x067400…067420 (27, 1, 2)  74 65 67 65 72 3b 20 76 61 72 20 66 72 6f 6d 62 79 74 65 20 3a 20 62 79 74 65 3b 20 66 72 6f 6d   ┆teger; var frombyte : byte; from┆
0x067420…067440             69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆index : integer;                ┆
0x067440…067460             20 20 20 20 76 61 72 20 74 6f 62 79 74 65 20 3a 20 62 79 74 65 3b 20 74 6f 69 6e 64 65 78 20 3a   ┆    var tobyte : byte; toindex :┆
0x067460…067480             20 69 6e 74 65 67 65 72 29 3b 0d 0a 28 2a 20 6d 6f 76 65 20 27 63 6f 75 6e 74 27 20 62 79 74 65   ┆ integer);  (* move 'count' byte┆
0x067480…0674a0             73 20 73 74 61 72 74 69 6e 67 20 61 74 20 27 66 72 6f 6d 62 79 74 65 28 66 72 6f 6d 69 6e 64 65   ┆s starting at 'frombyte(frominde┆
0x0674a0…0674c0             78 29 27 20 74 6f 0d 0a 27 74 6f 62 79 74 65 28 74 6f 69 6e 64 65 78 29 27 2e 20 6e 62 20 6e 62   ┆x)' to  'tobyte(toindex)'. nb nb┆
0x0674c0…0674e0             20 6e 62 20 20 6e 6f 20 63 68 65 63 6b 20 61 74 20 61 6c 6c 20 21 21 21 21 21 21 21 21 21 21 20   ┆ nb  no check at all !!!!!!!!!! ┆
0x0674e0…067500             2a 29 0d 0a 28 2a 20 38 31 20 30 33 20 30 33 20 20 20 6a 61 62 61 20 2a 29 0d 0a 28 2a 20 63 6f   ┆*)  (* 81 03 03   jaba *)  (* co┆
0x067500…067520             72 72 65 63 74 65 64 20 75 61 64 64 20 74 6f 20 6d 61 64 64 20 38 31 20 31 30 20 31 35 20 20 62   ┆rrected uadd to madd 81 10 15  b┆
0x067520…067540             62 6c 20 2a 29 0d 0a 62 65 67 69 6e 62 6f 64 79 20 36 20 3a 0d 0a 20 20 6d 61 64 64 20 20 20 20   ┆bl *)  beginbody 6 :    madd    ┆
0x067540…067560             20 3b 20 69 6e 64 65 78 0d 0a 20 20 72 65 61 78 64 20 20 20 20 3b 20 67 65 74 20 74 6f 70 20 2d   ┆ ; index    reaxd    ; get top -┆
0x067560…067580             20 74 68 65 20 68 77 20 73 74 61 63 6b 20 69 73 20 64 75 6d 70 65 64 20 0d 0a 20 20 72 65 61 73   ┆ the hw stack is dumped     reas┆
0x067580…0675a0             64 20 2d 39 20 3b 20 61 64 64 72 20 6f 66 20 66 72 6f 6d 62 79 74 65 0d 0a 20 20 72 65 63 68 77   ┆d -9 ; addr of frombyte    rechw┆
0x0675a0…0675c0             20 36 20 20 3b 20 70 72 65 70 61 72 65 20 6d 6f 76 65 0d 0a 20 20 72 65 76 73 6d 20 20 20 20 3b   ┆ 6  ; prepare move    revsm    ;┆
0x0675c0…0675e0             20 70 75 73 68 20 66 72 6f 6d 62 79 74 65 20 61 6e 64 20 66 72 6f 6d 69 6e 64 65 78 0d 0a 20 20   ┆ push frombyte and fromindex    ┆
0x0675e0…067600             72 65 73 74 61 20 34 20 20 3b 0d 0a 20 20 6d 61 64 64 20 20 20 20 20 3b 20 69 6e 64 65 78 0d 0a   ┆resta 4  ;    madd     ; index  ┆
0x067600…067620 (27, 1, 3)  20 20 72 65 61 78 64 20 20 20 20 3b 20 67 65 74 20 74 6f 70 0d 0a 20 20 72 65 76 73 77 20 2d 31   ┆  reaxd    ; get top    revsw -1┆
0x067620…067640             35 3b 20 63 6f 75 6e 74 0d 0a 20 20 72 65 73 74 61 20 31 30 20 3b 0d 0a 20 20 6d 6f 76 65 62 20   ┆5; count    resta 10 ;    moveb ┆
0x067640…067660             20 20 20 3b 20 6d 6f 76 65 20 69 6e 20 62 79 74 65 6d 6f 64 65 0d 0a 20 20 73 74 6e 68 62 20 38   ┆   ; move in bytemode    stnhb 8┆
0x067660…067680             20 20 3b 20 75 6e 73 74 61 63 6b 20 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66   ┆  ; unstack   endbody;      pref┆
0x067680…0676a0             69 78 20 6d 6f 76 65 5f 62 79 74 65 73 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 6f 76 65 5f 62   ┆ix move_bytes;  procedure move_b┆
0x0676a0…0676c0             79 74 65 73 20 28 64 65 73 74 2c 73 6f 75 72 63 65 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 20 62   ┆ytes (dest,source : ^ niltype; b┆
0x0676c0…0676e0             79 74 65 73 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a   ┆ytes : integer);  beginbody 0:  ┆
0x0676e0…067700             20 20 6d 6f 76 65 67 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6d 6f   ┆  moveg  endbody;      prefix mo┆
0x067700…067720             76 65 67 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 6f 76 65 67 28 20 63 6f 75 6e 74 20 3a 20 69   ┆veg;  procedure moveg( count : i┆
0x067720…067740             6e 74 65 67 65 72 3b 20 76 61 72 20 66 72 6f 6d 62 79 74 65 20 3a 20 62 79 74 65 3b 20 66 72 6f   ┆nteger; var frombyte : byte; fro┆
0x067740…067760             6d 69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆mindex : integer;               ┆
0x067760…067780             20 20 20 20 20 76 61 72 20 74 6f 62 79 74 65 20 3a 20 62 79 74 65 3b 20 74 6f 69 6e 64 65 78 20   ┆     var tobyte : byte; toindex ┆
0x067780…0677a0             3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 28 2a 20 6d 6f 76 65 20 27 63 6f 75 6e 74 27 20 62 79 74   ┆: integer);  (* move 'count' byt┆
0x0677a0…0677c0             65 73 20 73 74 61 72 74 69 6e 67 20 61 74 20 27 66 72 6f 6d 62 79 74 65 28 66 72 6f 6d 69 6e 64   ┆es starting at 'frombyte(fromind┆
0x0677c0…0677e0             65 78 29 27 20 74 6f 0d 0a 27 74 6f 62 79 74 65 28 74 6f 69 6e 64 65 78 29 27 2e 20 6e 62 20 6e   ┆ex)' to  'tobyte(toindex)'. nb n┆
0x0677e0…067800             62 20 6e 62 20 20 6e 6f 20 63 68 65 63 6b 20 61 74 20 61 6c 6c 20 21 21 21 21 21 21 21 21 21 21   ┆b nb  no check at all !!!!!!!!!!┆
0x067800…067820 (27, 1, 4)  20 2a 29 0d 0a 28 2a 20 38 31 20 30 33 20 30 33 20 20 20 6a 61 62 61 20 2a 29 0d 0a 28 2a 20 63   ┆ *)  (* 81 03 03   jaba *)  (* c┆
0x067820…067840             6f 72 72 65 63 74 65 64 20 75 61 64 64 20 74 6f 20 6d 61 64 64 20 38 31 20 31 30 20 31 35 20 20   ┆orrected uadd to madd 81 10 15  ┆
0x067840…067860             62 62 6c 20 2a 29 0d 0a 62 65 67 69 6e 62 6f 64 79 20 36 20 3a 0d 0a 20 20 6d 61 64 64 20 20 20   ┆bbl *)  beginbody 6 :    madd   ┆
0x067860…067880             20 20 3b 20 69 6e 64 65 78 0d 0a 20 20 72 65 61 78 64 20 20 20 20 3b 20 67 65 74 20 74 6f 70 20   ┆  ; index    reaxd    ; get top ┆
0x067880…0678a0             2d 20 74 68 65 20 68 77 20 73 74 61 63 6b 20 69 73 20 61 6c 73 6f 20 64 75 6d 70 65 64 0d 0a 20   ┆- the hw stack is also dumped   ┆
0x0678a0…0678c0             20 72 65 61 73 64 20 2d 39 20 3b 20 61 64 64 72 20 6f 66 20 66 72 6f 6d 62 79 74 65 0d 0a 20 20   ┆ reasd -9 ; addr of frombyte    ┆
0x0678c0…0678e0             72 65 63 68 77 20 36 20 20 3b 20 70 72 65 70 61 72 65 20 6d 6f 76 65 0d 0a 20 20 72 65 76 73 6d   ┆rechw 6  ; prepare move    revsm┆
0x0678e0…067900             20 20 20 20 3b 20 70 75 73 68 20 66 72 6f 6d 62 79 74 65 20 61 6e 64 20 66 72 6f 6d 69 6e 64 65   ┆    ; push frombyte and frominde┆
0x067900…067920             78 0d 0a 20 20 72 65 73 74 61 20 34 20 20 3b 0d 0a 20 20 6d 61 64 64 20 20 20 20 20 3b 20 69 6e   ┆x    resta 4  ;    madd     ; in┆
0x067920…067940             64 65 78 0d 0a 20 20 72 65 61 78 64 20 20 20 20 3b 20 67 65 74 20 74 6f 70 0d 0a 20 20 72 65 76   ┆dex    reaxd    ; get top    rev┆
0x067940…067960             73 77 20 2d 31 35 3b 20 63 6f 75 6e 74 0d 0a 20 20 72 65 73 74 61 20 31 30 20 3b 0d 0a 20 20 6d   ┆sw -15; count    resta 10 ;    m┆
0x067960…067980             6f 76 65 67 20 20 20 20 3b 20 6d 6f 76 65 20 6d 61 69 6e 6c 79 20 69 6e 20 77 6f 72 64 6d 6f 64   ┆oveg    ; move mainly in wordmod┆
0x067980…0679a0             65 0d 0a 20 20 73 74 6e 68 62 20 38 20 20 3b 20 75 6e 73 74 61 63 6b 20 0d 0a 65 6e 64 62 6f 64   ┆e    stnhb 8  ; unstack   endbod┆
0x0679a0…0679c0             79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6d 73 75 62 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d   ┆y;      prefix msub;  function m┆
0x0679c0…0679e0             73 75 62 20 28 61 2c 62 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a   ┆sub (a,b : integer) : integer;  ┆
0x0679e0…067a00             62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 73 75 62 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a   ┆beginbody 0:    msub  endbody;  ┆
0x067a00…067a20 (27, 1, 5)  0d 0a 0d 0a 70 72 65 66 69 78 20 6d 74 69 6d 65 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 74 69   ┆    prefix mtime;  procedure mti┆
0x067a20…067a40             6d 65 20 28 76 61 72 20 70 20 3a 20 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74   ┆me (var p : incarnation_descript┆
0x067a40…067a60             6f 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 74 69 6d 65 0d 0a 65 6e 64   ┆or);  beginbody 0:    mtime  end┆
0x067a60…067a80             62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6e 65 78 74 3b 0d 0a 66 75 6e 63 74 69 6f   ┆body;      prefix next;  functio┆
0x067a80…067aa0             6e 20 6e 65 78 74 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 69 6e 74 65 67   ┆n next (var r: reference): integ┆
0x067aa0…067ac0             65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31   ┆er;  beginbody 0:    revsa     1┆
0x067ac0…067ae0             0d 0a 20 20 72 65 76 73 64 20 20 20 20 20 6d 73 74 61 72 74 0d 0a 20 20 72 65 76 73 77 20 20 20   ┆    revsd     mstart    revsw   ┆
0x067ae0…067b00             20 20 6d 6e 65 78 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6e 65   ┆  mnext  endbody;      prefix ne┆
0x067b00…067b20             78 74 72 65 66 70 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6e 65 78 74 72 65 66 70 20 28 76 61 72   ┆xtrefp;  procedure nextrefp (var┆
0x067b20…067b40             20 72 65 66 70 20 3a 20 5e 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79   ┆ refp : ^ reference);  beginbody┆
0x067b40…067b60             20 34 3a 0d 0a 20 20 72 65 76 70 64 20 20 20 20 20 20 3b 20 64 6f 75 62 6c 65 20 74 6f 73 0d 0a   ┆ 4:    revpd      ; double tos  ┆
0x067b60…067b80             20 20 72 65 76 73 61 20 30 20 20 20 20 3b 20 70 75 73 68 20 72 65 66 70 0d 0a 20 20 72 65 76 73   ┆  revsa 0    ; push refp    revs┆
0x067b80…067ba0             61 20 34 20 20 20 20 3b 20 70 75 73 68 20 72 65 66 70 5e 2e 6e 65 78 74 0d 0a 20 20 73 74 76 73   ┆a 4    ; push refp^.next    stvs┆
0x067ba0…067bc0             61 20 30 20 20 20 20 3b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6f   ┆a 0    ;  endbody;      prefix o┆
0x067bc0…067be0             70 65 6e 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 20 28 76 61 72 20 73 65 6d 20 3a 20 73   ┆pen;  function open (var sem : s┆
0x067be0…067c00             65 6d 61 70 68 6f 72 65 29 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20   ┆emaphore) : boolean;  beginbody ┆
0x067c00…067c20 (27, 1, 6)  30 3a 0d 0a 20 20 74 6f 70 65 6e 20 20 20 20 20 3b 74 65 73 74 20 6f 70 65 6e 65 64 0d 0a 65 6e   ┆0:    topen     ;test opened  en┆
0x067c20…067c40             64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6f 70 65 6e 70 6f 6f 6c 3b 0d 0a 66 75   ┆dbody;      prefix openpool;  fu┆
0x067c40…067c60             6e 63 74 69 6f 6e 20 6f 70 65 6e 70 6f 6f 6c 20 28 76 61 72 20 70 3a 20 70 6f 6f 6c 20 31 29 3a   ┆nction openpool (var p: pool 1):┆
0x067c60…067c80             20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 74 6f 70 65 6e   ┆ boolean;  beginbody 0:    topen┆
0x067c80…067ca0             20 20 20 20 20 3b 74 65 73 74 20 6f 70 65 6e 65 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d   ┆     ;test opened  endbody;     ┆
0x067ca0…067cc0             0a 70 72 65 66 69 78 20 6f 75 74 77 6f 72 64 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 77   ┆ prefix outword;  procedure outw┆
0x067cc0…067ce0             6f 72 64 20 28 77 6f 72 64 20 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72 20 63 68 5f 6d 73 67 20   ┆ord (word : integer; var ch_msg ┆
0x067ce0…067d00             3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69   ┆: reference);  beginbody 0:    i┆
0x067d00…067d20             6f 63 64 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20   ┆ocda                      ; get ┆
0x067d20…067d40             64 65 76 69 63 65 20 61 64 64 72 65 73 73 0d 0a 20 20 69 6f 77 77 20 20 20 20 20 20 20 20 20 20   ┆device address    ioww          ┆
0x067d40…067d60             20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 77 72 69 74 65 20 77 6f 72 64 0d 0a 65 6e 64 62 6f   ┆             ; write word  endbo┆
0x067d60…067d80             64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6f 75 74 77 6f 72 64 63 6c 72 3b 0d 0a 70 72 6f   ┆dy;      prefix outwordclr;  pro┆
0x067d80…067da0             63 65 64 75 72 65 20 6f 75 74 77 6f 72 64 63 6c 72 20 28 77 6f 72 64 20 3a 20 69 6e 74 65 67 65   ┆cedure outwordclr (word : intege┆
0x067da0…067dc0             72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 76 67 62 20 6c 65 76 65 6c   ┆r);  beginbody 2:    revgb level┆
0x067dc0…067de0             20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 64 65 76 69 63 65 20 61 64 64 72 65 73 73 0d   ┆           ; get device address ┆
0x067de0…067e00             0a 20 20 69 6f 6e 63 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 65 78 74 20   ┆   ionci                 ; next ┆
0x067e00…067e20 (27, 1, 7)  63 6c 65 61 72 20 69 6e 74 65 72 72 75 70 74 0d 0a 20 20 69 6f 77 77 20 20 20 20 20 20 20 20 20   ┆clear interrupt    ioww         ┆
0x067e20…067e40             20 20 20 20 20 20 20 20 20 3b 20 77 72 69 74 65 20 77 6f 72 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d   ┆         ; write word  endbody; ┆
0x067e40…067e60             0a 0d 0a 0d 0a 70 72 65 66 69 78 20 6f 77 6e 65 72 74 65 73 74 3b 0d 0a 66 75 6e 63 74 69 6f 6e   ┆     prefix ownertest;  function┆
0x067e60…067e80             20 6f 77 6e 65 72 74 65 73 74 20 28 76 61 72 20 70 20 3a 20 70 6f 6f 6c 20 31 3b 20 76 61 72 20   ┆ ownertest (var p : pool 1; var ┆
0x067e80…067ea0             72 20 3a 20 72 65 66 65 72 65 6e 63 65 29 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69 6e   ┆r : reference) : boolean;  begin┆
0x067ea0…067ec0             62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 31 0d 0a 20 20 72 65 76 73 61 20 6f 77 6e 65   ┆body 0:    revsa 1    revsa owne┆
0x067ec0…067ee0             72 0d 0a 20 20 74 65 71 61 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78   ┆r    teqad  endbody;      prefix┆
0x067ee0…067f00             20 70 61 73 73 69 76 65 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 61 73 73 69 76 65 20 28 76 61 72   ┆ passive;  function passive (var┆
0x067f00…067f20             20 73 65 6d 20 3a 20 73 65 6d 61 70 68 6f 72 65 29 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65   ┆ sem : semaphore) : boolean;  be┆
0x067f20…067f40             67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 75 61 64 68 77 20 31 20 20 20 3b 20 61 64 6a 75 73 74   ┆ginbody 0:    uadhw 1   ; adjust┆
0x067f40…067f60             20 61 64 64 72 65 73 73 20 74 6f 20 62 61 73 65 20 62 79 74 65 0d 0a 20 20 74 6e 69 6c 6c 20 20   ┆ address to base byte    tnill  ┆
0x067f60…067f80             20 20 20 3b 74 65 73 74 20 6e 69 6c 6c 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65   ┆   ;test nill  endbody;      pre┆
0x067f80…067fa0             66 69 78 20 70 65 78 69 74 33 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 65 78 69 74 33 3b 0d 0a   ┆fix pexit3;  procedure pexit3;  ┆
0x067fa0…067fc0             62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 70 65 78 69 74 20 33 0d 0a 65 6e 64 62 6f 64 79   ┆beginbody 0:    pexit 3  endbody┆
0x067fc0…067fe0             3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 70 6f 70 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 6f   ┆;      prefix pop;  procedure po┆
0x067fe0…068000             70 20 28 76 61 72 20 72 31 2c 20 72 32 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67   ┆p (var r1, r2 : reference);  beg┆
0x068000…068020 (27, 1, 8)  69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6c 70 6f 70 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d   ┆inbody 0:    lpop  endbody;     ┆
0x068020…068040             0a 70 72 65 66 69 78 20 70 74 72 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 74 72 20 28 76 61 72 20   ┆ prefix ptr;  function ptr (var ┆
0x068040…068060             69 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 0d 0a 62 65 67 69 6e   ┆i : integer) : ^ niltype;  begin┆
0x068060…068080             62 6f 64 79 20 30 3a 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 70 74   ┆body 0:  endbody;      prefix pt┆
0x068080…0680a0             72 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 74 72 20 28 76 61 72 20 62 20 3a 20 62 79 74 65 29 20   ┆r;  function ptr (var b : byte) ┆
0x0680a0…0680c0             3a 20 5e 20 6e 69 6c 74 79 70 65 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 65 6e 64 62   ┆: ^ niltype;  beginbody 0:  endb┆
0x0680c0…0680e0             6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 70 74 72 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆ody;      prefix ptr;  function ┆
0x0680e0…068100             70 74 72 20 28 76 61 72 20 70 20 3a 20 5e 20 6e 69 6c 74 79 70 65 29 20 3a 20 5e 20 6e 69 6c 74   ┆ptr (var p : ^ niltype) : ^ nilt┆
0x068100…068120             79 70 65 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a   ┆ype;  beginbody 0:  endbody;    ┆
0x068120…068140             0d 0a 70 72 65 66 69 78 20 70 74 72 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 74 72 20 28 76 61 72   ┆  prefix ptr;  function ptr (var┆
0x068140…068160             20 61 20 3a 20 61 64 64 72 29 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 0d 0a 62 65 67 69 6e 62 6f   ┆ a : addr) : ^ niltype;  beginbo┆
0x068160…068180             64 79 20 30 3a 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 70 74 72 61   ┆dy 0:  endbody;      prefix ptra┆
0x068180…0681a0             64 64 72 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 70 74 72 61 64 64 72 20 28 61 20 3a 20 61 64 64 72   ┆ddr;  function ptraddr (a : addr┆
0x0681a0…0681c0             29 20 3a 20 5e 6e 69 6c 74 79 70 65 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 65 6e 64   ┆) : ^niltype;  beginbody 0:  end┆
0x0681c0…0681e0             62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 70 75 73 68 3b 0d 0a 70 72 6f 63 65 64 75   ┆body;      prefix push;  procedu┆
0x0681e0…068200             72 65 20 70 75 73 68 20 28 76 61 72 20 72 31 2c 20 72 32 20 3a 20 72 65 66 65 72 65 6e 63 65 29   ┆re push (var r1, r2 : reference)┆
0x068200…068220 (27, 1, 9)  3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6c 70 75 73 68 0d 0a 65 6e 64 62 6f 64   ┆;  beginbody 0:    lpush  endbod┆
0x068220…068240             79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 70 75 74 61 64 64 72 3b 0d 0a 70 72 6f 63 65 64 75   ┆y;      prefix putaddr;  procedu┆
0x068240…068260             72 65 20 70 75 74 61 64 64 72 20 28 64 65 73 74 2c 73 6f 75 72 63 65 20 3a 20 61 64 64 72 29 3b   ┆re putaddr (dest,source : addr);┆
0x068260…068280             0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 73 64 20 30 20 20 20 20 20 20 20   ┆  beginbody 0:    stvsd 0       ┆
0x068280…0682a0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70   ┆              ;  endbody;      p┆
0x0682a0…0682c0             72 65 66 69 78 20 72 65 61 64 62 79 74 65 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 61 64 62   ┆refix readbyte;  procedure readb┆
0x0682c0…0682e0             79 74 65 20 28 76 61 72 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 73 6f 75 72 63 65 20 3a 20 62   ┆yte (var destination, source : b┆
0x0682e0…068300             79 74 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 61 64 62 20 20 20 20   ┆yte);  beginbody 0:    readb    ┆
0x068300…068320             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 76 73 62 20 77 69 74 68 6f 75 74   ┆                 ; revsb without┆
0x068320…068340             20 70 61 72 69 74 79 20 63 68 65 63 6b 0d 0a 20 20 73 74 76 73 62 20 30 20 20 20 20 20 20 20 20   ┆ parity check    stvsb 0        ┆
0x068340…068360             20 20 20 20 20 20 20 20 20 20 20 3b 20 73 74 6f 72 65 20 72 65 73 75 6c 74 0d 0a 65 6e 64 62 6f   ┆           ; store result  endbo┆
0x068360…068380             64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 72 65 61 64 72 61 6d 3b 0d 0a 70 72 6f 63 65 64   ┆dy;      prefix readram;  proced┆
0x068380…0683a0             75 72 65 20 72 65 61 64 72 61 6d 20 28 76 61 72 20 72 65 73 75 6c 74 20 3a 20 62 79 74 65 3b 20   ┆ure readram (var result : byte; ┆
0x0683a0…0683c0             69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d   ┆index : integer);  beginbody 0: ┆
0x0683c0…0683e0             0a 20 20 63 72 72 61 6d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65   ┆   crram                    ; re┆
0x0683e0…068400             61 64 5f 63 6f 6e 74 72 6f 6c 65 70 72 6f 63 65 73 73 6f 72 5f 72 61 6d 0d 0a 20 20 73 74 76 73   ┆ad_controleprocessor_ram    stvs┆
0x068400…068420 (27, 1, 10) 62 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 70 6f 70 20 62 79 74 65 0d   ┆b 0                  ; pop byte ┆
0x068420…068440             0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 72 65 61 64 77 6f 72 64 3b 0d   ┆ endbody;      prefix readword; ┆
0x068440…068460             0a 70 72 6f 63 65 64 75 72 65 20 72 65 61 64 77 6f 72 64 20 28 76 61 72 20 64 65 73 74 69 6e 61   ┆ procedure readword (var destina┆
0x068460…068480             74 69 6f 6e 2c 20 73 6f 75 72 63 65 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62   ┆tion, source : integer);  beginb┆
0x068480…0684a0             6f 64 79 20 30 3a 0d 0a 20 20 72 65 61 64 77 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ody 0:    readw                 ┆
0x0684a0…0684c0             20 20 20 20 3b 20 72 65 76 73 77 20 77 69 74 68 6f 75 74 20 70 61 72 69 74 79 20 63 68 65 63 6b   ┆    ; revsw without parity check┆
0x0684c0…0684e0             0d 0a 20 20 73 74 76 73 77 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20   ┆    stvsw 0                   ; ┆
0x0684e0…068500             73 74 6f 72 65 20 72 65 73 75 6c 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66   ┆store result  endbody;      pref┆
0x068500…068520             69 78 20 72 65 61 73 6f 6e 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 61 73 6f 6e 20 28 76 61 72   ┆ix reason;  function reason (var┆
0x068520…068540             20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 72 65 61 73 6f 6e 5f 74 79 70 65 3b 0d 0a 62   ┆ r : reference): reason_type;  b┆
0x068540…068560             65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 31 0d 0a 20 20 72 65 76 73   ┆eginbody 0:    revsa   1    revs┆
0x068560…068580             62 20 20 20 72 65 61 73 6f 6e 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78   ┆b   reason  endbody;      prefix┆
0x068580…0685a0             20 72 65 63 68 61 69 6e 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 63 68 61 69 6e 20 28 72 65 67   ┆ rechain;  function rechain (reg┆
0x0685a0…0685c0             73 65 74 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e   ┆set : integer) : integer;  begin┆
0x0685c0…0685e0             62 6f 64 79 20 30 3a 0d 0a 20 20 6d 72 65 63 68 61 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d   ┆body 0:    mrecha  endbody;     ┆
0x0685e0…068600             0a 70 72 65 66 69 78 20 72 65 66 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 66 20 28 76 61 72 20   ┆ prefix ref;  function ref (var ┆
0x068600…068620 (27, 1, 11) 73 65 6d 20 3a 20 73 65 6d 61 70 68 6f 72 65 29 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 0d 0a 62   ┆sem : semaphore) : ^ niltype;  b┆
0x068620…068640             65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69   ┆eginbody 0:  endbody;      prefi┆
0x068640…068660             78 20 72 65 66 70 6f 6f 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 66 70 6f 6f 6c 20 28 76 61   ┆x refpool;  function refpool (va┆
0x068660…068680             72 20 70 20 3a 20 70 6f 6f 6c 20 31 29 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 0d 0a 62 65 67 69   ┆r p : pool 1) : ^ niltype;  begi┆
0x068680…0686a0             6e 62 6f 64 79 20 30 3a 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 72   ┆nbody 0:  endbody;      prefix r┆
0x0686a0…0686c0             65 66 73 68 61 64 6f 77 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 72 65 66 73 68 61 64 6f 77 20 28 76   ┆efshadow;  function refshadow (v┆
0x0686c0…0686e0             61 72 20 73 68 20 3a 20 73 68 61 64 6f 77 29 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 0d 0a 62 65   ┆ar sh : shadow) : ^ niltype;  be┆
0x0686e0…068700             67 69 6e 62 6f 64 79 20 30 3a 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78   ┆ginbody 0:  endbody;      prefix┆
0x068700…068720             20 72 65 6c 65 61 73 65 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 65 6c 65 61 73 65 20 28 76 61   ┆ release;  procedure release (va┆
0x068720…068740             72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d   ┆r r : reference);  beginbody 0: ┆
0x068740…068760             0a 20 20 63 72 65 6c 65 20 6f 77 6e 65 72 20 20 20 3b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a   ┆   crele owner   ;  endbody;    ┆
0x068760…068780             0d 0a 70 72 65 66 69 78 20 72 65 73 65 74 65 76 65 6e 74 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆  prefix resetevent;  procedure ┆
0x068780…0687a0             72 65 73 65 74 65 76 65 6e 74 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d   ┆resetevent (var r : reference); ┆
0x0687a0…0687c0             0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 31 0d 0a 20 20 72 65   ┆ beginbody 2:    revsa   1    re┆
0x0687c0…0687e0             63 68 77 20 20 20 30 0d 0a 20 20 73 74 76 73 62 20 20 20 65 76 65 6e 74 6b 69 6e 64 0d 0a 65 6e   ┆chw   0    stvsb   eventkind  en┆
0x0687e0…068800             64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 72 65 74 75 72 6e 3b 0d 0a 70 72 6f 63   ┆dbody;      prefix return;  proc┆
0x068800…068820 (27, 1, 12) 65 64 75 72 65 20 72 65 74 75 72 6e 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 29   ┆edure return (var r : reference)┆
0x068820…068840             3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 36 3a 0d 0a 20 20 72 65 76 70 64 20 20 20 20 20 20 20 20   ┆;  beginbody 6:    revpd        ┆
0x068840…068860             20 20 20 3b 20 64 6f 75 62 6c 65 20 73 74 61 63 6b 74 6f 70 0d 0a 20 20 72 65 76 73 61 20 31 20   ┆   ; double stacktop    revsa 1 ┆
0x068860…068880             20 20 20 20 20 20 20 20 3b 20 70 75 73 68 20 61 64 64 72 65 73 73 20 6f 66 20 6d 65 73 73 61 67   ┆        ; push address of messag┆
0x068880…0688a0             65 20 68 65 61 64 65 72 0d 0a 20 20 72 65 63 68 77 20 32 20 20 20 20 20 20 20 20 20 3b 20 61 6e   ┆e header    rechw 2         ; an┆
0x0688a0…0688c0             73 77 65 72 20 65 76 65 6e 74 0d 0a 20 20 73 74 76 73 62 20 65 76 65 6e 74 6b 69 6e 64 20 3b 0d   ┆swer event    stvsb eventkind ; ┆
0x0688c0…0688e0             0a 20 20 63 72 65 6c 65 20 61 6e 73 77 65 72 20 20 20 20 3b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a   ┆   crele answer    ;  endbody;  ┆
0x0688e0…068900             0d 0a 0d 0a 70 72 65 66 69 78 20 72 65 74 75 72 6e 78 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 72   ┆    prefix returnx;  procedure r┆
0x068900…068920             65 74 75 72 6e 78 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 29 3b 0d 0a 62 65 67   ┆eturnx (var r : reference);  beg┆
0x068920…068940             69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63 72 65 6c 65 20 61 6e 73 77 65 72 20 20 20 3b 0d 0a 65   ┆inbody 0:    crele answer   ;  e┆
0x068940…068960             6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 72 6f 74 61 74 65 3b 0d 0a 66 75 6e   ┆ndbody;      prefix rotate;  fun┆
0x068960…068980             63 74 69 6f 6e 20 72 6f 74 61 74 65 20 28 61 2c 62 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 69   ┆ction rotate (a,b : integer) : i┆
0x068980…0689a0             6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 68 63 0d 0a 65 6e   ┆nteger;  beginbody 0:    shc  en┆
0x0689a0…0689c0             64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 6c 65 63 74 6c 65 76 65 6c 3b 0d   ┆dbody;      prefix selectlevel; ┆
0x0689c0…0689e0             0a 70 72 6f 63 65 64 75 72 65 20 73 65 6c 65 63 74 6c 65 76 65 6c 20 28 6c 65 76 65 6c 20 3a 20   ┆ procedure selectlevel (level : ┆
0x0689e0…068a00             69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63 73 65 6c 6c   ┆integer);  beginbody 0:    csell┆
0x068a00…068a20 (27, 1, 13) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 65 6c 65 63 74 20 6c   ┆                      ; select l┆
0x068a20…068a40             65 76 65 6c 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 6e 73 65   ┆evel  endbody;      prefix sense┆
0x068a40…068a60             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 6e 73 65 0d 0a 20 28 76 61 72 20 73 74 61 74 75 73   ┆;  procedure sense   (var status┆
0x068a60…068a80             5f 69 6e 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 73 74 61 74 75 73 5f 6f 75 74 20 3a 20 69   ┆_in : integer;    status_out : i┆
0x068a80…068aa0             6e 74 65 67 65 72 3b 0d 0a 20 20 76 61 72 20 63 68 5f 6d 73 67 20 3a 20 72 65 66 65 72 65 6e 63   ┆nteger;    var ch_msg : referenc┆
0x068aa0…068ac0             65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69 6f 63 64 61 20 20 20 20 20 20   ┆e);  beginbody 0:    iocda      ┆
0x068ac0…068ae0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 64 65 76 69 63 65 20 61 64 64   ┆                ; get device add┆
0x068ae0…068b00             72 65 73 73 0d 0a 20 20 69 6f 72 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ress    iors                    ┆
0x068b00…068b20             20 20 20 3b 20 72 65 61 64 20 73 74 61 74 75 73 0d 0a 20 20 73 74 76 73 77 20 30 20 20 20 20 20   ┆   ; read status    stvsw 0     ┆
0x068b20…068b40             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 70 6f 70 20 72 65 73 75 6c 74 0d 0a 65 6e 64   ┆               ; pop result  end┆
0x068b40…068b60             62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 6e 73 65 63 6c 72 3b 0d 0a 70 72 6f   ┆body;      prefix senseclr;  pro┆
0x068b60…068b80             63 65 64 75 72 65 20 73 65 6e 73 65 63 6c 72 20 28 76 61 72 20 73 74 61 74 75 73 5f 69 6e 20 3a   ┆cedure senseclr (var status_in :┆
0x068b80…068ba0             20 69 6e 74 65 67 65 72 3b 20 73 74 61 74 75 73 5f 6f 75 74 2c 63 6f 6d 70 2c 6d 61 73 6b 20 3a   ┆ integer; status_out,comp,mask :┆
0x068ba0…068bc0             20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 69 6f 72 73   ┆ integer);  beginbody 0:    iors┆
0x068bc0…068be0             63 0d 0a 20 20 73 74 76 73 77 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66   ┆c    stvsw 0  endbody;      pref┆
0x068be0…068c00             69 78 20 73 65 6e 73 65 73 65 6d 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 6e 73 65 73 65 6d   ┆ix sensesem;  procedure sensesem┆
0x068c00…068c20 (27, 1, 14) 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 72 20 73 65 6d 20 3a 20 73   ┆ (var r : reference; var sem : s┆
0x068c20…068c40             65 6d 61 70 68 6f 72 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63 73 65 6e   ┆emaphore);  beginbody 0:    csen┆
0x068c40…068c60             73 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 74 61 62 73 69 6e   ┆s  endbody;      prefix setabsin┆
0x068c60…068c80             64 65 78 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 61 62 73 69 6e 64 65 78 20 28 76 61 72   ┆dex;  procedure setabsindex (var┆
0x068c80…068ca0             20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 29   ┆ r : reference; index : integer)┆
0x068ca0…068cc0             3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 63 68 77 20 20 20 20 20 31 3b 0d   ┆;  beginbody 2:    rechw     1; ┆
0x068cc0…068ce0             0a 20 20 73 74 76 67 62 20 20 20 20 20 65 78 6f 70 63 6f 64 65 3b 0d 0a 20 20 73 74 76 67 77 20   ┆   stvgb     exopcode;    stvgw ┆
0x068ce0…068d00             20 20 65 78 63 6f 64 65 0d 0a 20 20 72 65 76 73 61 20 20 20 31 0d 0a 20 20 72 65 76 67 77 20 20   ┆  excode    revsa   1    revgw  ┆
0x068d00…068d20             20 65 78 63 6f 64 65 0d 0a 20 20 73 74 76 73 77 20 20 20 63 6f 6e 6e 69 78 0d 0a 20 20 72 65 63   ┆ excode    stvsw   connix    rec┆
0x068d20…068d40             68 77 20 20 20 20 20 30 3b 0d 0a 20 20 73 74 76 67 62 20 20 20 20 20 65 78 6f 70 63 6f 64 65 0d   ┆hw     0;    stvgb     exopcode ┆
0x068d40…068d60             0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 74 62 61 73 65 72 65 67   ┆ endbody;      prefix setbasereg┆
0x068d60…068d80             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 62 61 73 65 72 65 67 20 28 72 20 3a 20 62 79 74   ┆;  procedure setbasereg (r : byt┆
0x068d80…068da0             65 3b 20 69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20   ┆e; index : integer);  beginbody ┆
0x068da0…068dc0             30 3a 0d 0a 20 20 63 72 70 75 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69   ┆0:    crput  endbody;      prefi┆
0x068dc0…068de0             78 20 73 65 74 63 72 65 64 69 74 63 6f 75 6e 74 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74   ┆x setcreditcount;  procedure set┆
0x068de0…068e00             63 72 65 64 69 74 63 6f 75 6e 74 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 3b 20   ┆creditcount (var r : reference; ┆
0x068e00…068e20 (27, 1, 15) 63 72 65 64 69 74 20 3a 20 62 79 74 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20   ┆credit : byte);  beginbody 2:   ┆
0x068e20…068e40             20 72 65 63 68 77 20 20 20 20 20 31 3b 0d 0a 20 20 73 74 76 67 62 20 20 20 20 20 65 78 6f 70 63   ┆ rechw     1;    stvgb     exopc┆
0x068e40…068e60             6f 64 65 3b 0d 0a 20 20 73 74 76 67 62 20 20 20 20 20 65 78 63 6f 64 65 0d 0a 20 20 72 65 76 73   ┆ode;    stvgb     excode    revs┆
0x068e60…068e80             61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 67 62 20 20 20 20 20 65 78 63 6f 64 65 0d 0a 20 20 73   ┆a     1    revgb     excode    s┆
0x068e80…068ea0             74 76 73 62 20 20 20 20 20 63 72 65 64 69 74 0d 0a 20 20 72 65 63 68 77 20 20 20 20 20 30 3b 0d   ┆tvsb     credit    rechw     0; ┆
0x068ea0…068ec0             0a 20 20 73 74 76 67 62 20 20 20 20 20 65 78 6f 70 63 6f 64 65 0d 0a 65 6e 64 62 6f 64 79 3b 0d   ┆   stvgb     exopcode  endbody; ┆
0x068ec0…068ee0             0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 74 65 76 65 6e 74 6b 69 6e 64 3b 0d 0a 70 72 6f 63 65   ┆     prefix seteventkind;  proce┆
0x068ee0…068f00             64 75 72 65 20 73 65 74 65 76 65 6e 74 6b 69 6e 64 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72   ┆dure seteventkind (var r : refer┆
0x068f00…068f20             65 6e 63 65 3b 20 65 76 65 6e 74 20 3a 20 65 76 65 6e 74 5f 74 79 70 65 29 3b 0d 0a 62 65 67 69   ┆ence; event : event_type);  begi┆
0x068f20…068f40             6e 62 6f 64 79 20 36 3a 0d 0a 20 20 72 65 63 68 77 20 20 20 20 20 31 3b 0d 0a 20 20 73 74 76 67   ┆nbody 6:    rechw     1;    stvg┆
0x068f40…068f60             62 20 20 20 20 20 65 78 6f 70 63 6f 64 65 3b 0d 0a 20 20 73 74 76 67 62 20 20 20 65 78 63 6f 64   ┆b     exopcode;    stvgb   excod┆
0x068f60…068f80             65 3b 20 73 61 76 65 20 61 63 74 75 61 6c 20 65 76 65 6e 74 20 76 61 6c 75 65 0d 0a 20 20 72 65   ┆e; save actual event value    re┆
0x068f80…068fa0             76 73 61 20 20 20 31 0d 0a 3b 20 72 65 76 70 64 0d 0a 3b 20 72 65 76 70 64 0d 0a 3b 20 72 65 76   ┆vsa   1  ; revpd  ; revpd  ; rev┆
0x068fa0…068fc0             73 62 20 20 20 75 32 0d 0a 3b 20 72 65 63 68 77 20 20 20 32 34 38 0d 0a 3b 20 61 6e 64 0d 0a 3b   ┆sb   u2  ; rechw   248  ; and  ;┆
0x068fc0…068fe0             20 72 65 63 68 77 20 20 20 36 0d 0a 3b 20 6f 72 0d 0a 3b 20 73 74 76 73 62 20 20 20 75 32 0d 0a   ┆ rechw   6  ; or  ; stvsb   u2  ┆
0x068fe0…069000             20 20 72 65 76 67 62 20 20 20 65 78 63 6f 64 65 0d 0a 20 20 73 74 76 73 62 20 20 20 65 76 65 6e   ┆  revgb   excode    stvsb   even┆
0x069000…069020 (28, 0, 1)  74 6b 69 6e 64 0d 0a 20 20 72 65 63 68 77 20 20 20 20 20 30 3b 0d 0a 20 20 73 74 76 67 62 20 20   ┆tkind    rechw     0;    stvgb  ┆
0x069020…069040             20 20 20 65 78 6f 70 63 6f 64 65 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69   ┆   exopcode  endbody;      prefi┆
0x069040…069060             78 20 73 65 74 65 78 63 65 70 74 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 65 78 63 65 70   ┆x setexcept;  procedure setexcep┆
0x069060…069080             74 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 34 3a 0d 0a 62 2e 20 65 78 70 6e 74 2e 0d 0a 20 20 72   ┆t;  beginbody 4:  b. expnt.    r┆
0x069080…0690a0             65 61 61 64 20 65 78 70 6e 74 20 20 20 20 3b 20 67 66 2e 65 78 63 65 70 74 69 6f 6e 2d 72 6f 75   ┆eaad expnt    ; gf.exception-rou┆
0x0690a0…0690c0             74 69 6e 65 20 3a 3d 20 6a 75 73 74 20 61 66 74 65 72 20 68 65 72 65 0d 0a 20 20 73 74 76 67 61   ┆tine := just after here    stvga┆
0x0690c0…0690e0             20 65 78 70 6f 69 6e 74 0d 0a 20 20 70 65 78 69 74 20 31 0d 0a 65 78 70 6e 74 3a 0d 0a 65 2e 0d   ┆ expoint    pexit 1  expnt:  e. ┆
0x0690e0…069100             0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 73 65 74 66 69 72 73 74 3b   ┆ endbody;      prefix bsetfirst;┆
0x069100…069120             0d 0a 70 72 6f 63 65 64 75 72 65 20 62 73 65 74 66 69 72 73 74 3b 0d 0a 28 2a 20 76 61 72 20 72   ┆  procedure bsetfirst;  (* var r┆
0x069120…069140             3a 20 72 65 66 65 72 65 6e 63 65 3b 20 66 69 72 73 74 3a 20 69 6e 74 65 67 65 72 20 2a 29 0d 0a   ┆: reference; first: integer *)  ┆
0x069140…069160             62 65 67 69 6e 62 6f 64 79 20 36 3a 0d 0a 20 20 72 65 76 6c 61 20 20 20 20 20 2d 35 0d 0a 20 20   ┆beginbody 6:    revla     -5    ┆
0x069160…069180             72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 73 64 20 20 20 20 20 6d 73 74 61 72 74 0d   ┆revsa     1    revsd     mstart ┆
0x069180…0691a0             0a 20 20 72 65 76 6c 77 20 20 20 20 20 2d 32 0d 0a 20 20 73 74 76 73 77 20 20 20 20 20 6d 66 69   ┆   revlw     -2    stvsw     mfi┆
0x0691a0…0691c0             72 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 74 69 6e 64   ┆rst  endbody;      prefix setind┆
0x0691c0…0691e0             65 78 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 69 6e 64 65 78 20 28 76 61 72 20 72 20 3a   ┆ex;  procedure setindex (var r :┆
0x0691e0…069200             20 72 65 66 65 72 65 6e 63 65 3b 20 69 6e 64 65 78 20 3a 20 62 79 74 65 29 3b 0d 0a 62 65 67 69   ┆ reference; index : byte);  begi┆
0x069200…069220 (28, 0, 2)  6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 63 68 77 20 20 20 20 20 31 3b 0d 0a 20 20 73 74 76 67   ┆nbody 2:    rechw     1;    stvg┆
0x069220…069240             62 20 20 20 20 20 65 78 6f 70 63 6f 64 65 3b 0d 0a 20 20 73 74 76 67 62 20 20 20 20 20 65 78 63   ┆b     exopcode;    stvgb     exc┆
0x069240…069260             6f 64 65 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 67 62 20 20 20 20 20   ┆ode    revsa     1    revgb     ┆
0x069260…069280             65 78 63 6f 64 65 0d 0a 20 20 73 74 76 73 62 20 20 20 20 20 63 6f 6e 6e 69 78 0d 0a 20 20 72 65   ┆excode    stvsb     connix    re┆
0x069280…0692a0             63 68 77 20 20 20 20 20 30 3b 0d 0a 20 20 73 74 76 67 62 20 20 20 20 20 65 78 6f 70 63 6f 64 65   ┆chw     0;    stvgb     exopcode┆
0x0692a0…0692c0             0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 73 65 74 6c 61 73 74 3b   ┆  endbody;      prefix bsetlast;┆
0x0692c0…0692e0             0d 0a 70 72 6f 63 65 64 75 72 65 20 62 73 65 74 6c 61 73 74 3b 0d 0a 28 2a 20 76 61 72 20 72 3a   ┆  procedure bsetlast;  (* var r:┆
0x0692e0…069300             20 72 65 66 65 72 65 6e 63 65 3b 20 6c 61 73 74 3a 20 69 6e 74 65 67 65 72 20 2a 29 0d 0a 62 65   ┆ reference; last: integer *)  be┆
0x069300…069320             67 69 6e 62 6f 64 79 20 36 3a 0d 0a 20 20 72 65 76 6c 61 20 20 20 20 20 2d 35 0d 0a 20 20 72 65   ┆ginbody 6:    revla     -5    re┆
0x069320…069340             76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 73 64 20 20 20 20 20 6d 73 74 61 72 74 0d 0a 20   ┆vsa     1    revsd     mstart   ┆
0x069340…069360             20 72 65 76 6c 77 20 20 20 20 20 2d 32 0d 0a 20 20 73 74 76 73 77 20 20 20 20 20 6d 6c 61 73 74   ┆ revlw     -2    stvsw     mlast┆
0x069360…069380             0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 73 65 74 6e 65 78 74 3b   ┆  endbody;      prefix bsetnext;┆
0x069380…0693a0             0d 0a 70 72 6f 63 65 64 75 72 65 20 62 73 65 74 6e 65 78 74 3b 0d 0a 28 2a 20 76 61 72 20 72 3a   ┆  procedure bsetnext;  (* var r:┆
0x0693a0…0693c0             20 72 65 66 65 72 65 6e 63 65 3b 20 6e 65 78 74 3a 20 69 6e 74 65 67 65 72 20 2a 29 0d 0a 62 65   ┆ reference; next: integer *)  be┆
0x0693c0…0693e0             67 69 6e 62 6f 64 79 20 36 3a 0d 0a 20 20 72 65 76 6c 61 20 20 20 20 20 2d 35 0d 0a 20 20 72 65   ┆ginbody 6:    revla     -5    re┆
0x0693e0…069400             76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 73 64 20 20 20 20 20 6d 73 74 61 72 74 0d 0a 20   ┆vsa     1    revsd     mstart   ┆
0x069400…069420 (28, 0, 3)  20 72 65 76 6c 77 20 20 20 20 20 2d 32 0d 0a 20 20 73 74 76 73 77 20 20 20 20 20 6d 6e 65 78 74   ┆ revlw     -2    stvsw     mnext┆
0x069420…069440             0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65 74 72 65 61 73 6f 6e   ┆  endbody;      prefix setreason┆
0x069440…069460             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 72 65 61 73 6f 6e 20 28 76 61 72 20 72 20 3a 20   ┆;  procedure setreason (var r : ┆
0x069460…069480             72 65 66 65 72 65 6e 63 65 3b 20 72 65 61 73 6f 6e 20 3a 20 72 65 61 73 6f 6e 5f 74 79 70 65 29   ┆reference; reason : reason_type)┆
0x069480…0694a0             3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 63 68 77 20 20 20 20 20 31 3b 0d   ┆;  beginbody 2:    rechw     1; ┆
0x0694a0…0694c0             0a 20 20 73 74 76 67 62 20 20 20 20 20 65 78 6f 70 63 6f 64 65 3b 0d 0a 20 20 73 74 76 67 62 20   ┆   stvgb     exopcode;    stvgb ┆
0x0694c0…0694e0             20 20 20 20 65 78 63 6f 64 65 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76   ┆    excode    revsa     1    rev┆
0x0694e0…069500             67 62 20 20 20 20 20 65 78 63 6f 64 65 0d 0a 20 20 73 74 76 73 62 20 20 20 20 20 72 65 61 73 6f   ┆gb     excode    stvsb     reaso┆
0x069500…069520             6e 0d 0a 20 20 72 65 63 68 77 20 20 20 20 20 30 3b 0d 0a 20 20 73 74 76 67 62 20 20 20 20 20 65   ┆n    rechw     0;    stvgb     e┆
0x069520…069540             78 6f 70 63 6f 64 65 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 65   ┆xopcode  endbody;      prefix se┆
0x069540…069560             74 72 65 67 69 73 74 65 72 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 72 65 67 69 73 74 65   ┆tregister;  procedure setregiste┆
0x069560…069580             72 20 28 77 61 6c 75 65 2c 69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69   ┆r (walue,index : integer);  begi┆
0x069580…0695a0             6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63 72 70 75 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆nbody 0:    crput               ┆
0x0695a0…0695c0             20 20 20 20 20 20 20 20 3b 20 70 75 74 72 65 67 69 73 74 65 72 0d 0a 65 6e 64 62 6f 64 79 3b 0d   ┆        ; putregister  endbody; ┆
0x0695c0…0695e0             0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 73 65 74 75 31 3b 20 20 20 0d 0a 70 72 6f 63 65 64 75 72   ┆     prefix bsetu1;     procedur┆
0x0695e0…069600             65 20 62 73 65 74 75 31 3b 0d 0a 28 2a 20 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20   ┆e bsetu1;  (* var r: reference; ┆
0x069600…069620 (28, 0, 4)  76 61 6c 3a 20 62 79 74 65 20 2a 29 0d 0a 62 65 67 69 6e 62 6f 64 79 20 36 3a 0d 0a 20 20 72 65   ┆val: byte *)  beginbody 6:    re┆
0x069620…069640             76 6c 61 20 20 20 20 20 2d 35 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76   ┆vla     -5    revsa     1    rev┆
0x069640…069660             6c 62 20 20 20 20 20 2d 31 0d 0a 20 20 73 74 76 73 62 20 20 20 20 20 75 31 0d 0a 65 6e 64 62 6f   ┆lb     -1    stvsb     u1  endbo┆
0x069660…069680             64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 73 65 74 75 32 3b 20 20 20 0d 0a 70 72 6f 63   ┆dy;      prefix bsetu2;     proc┆
0x069680…0696a0             65 64 75 72 65 20 62 73 65 74 75 32 3b 0d 0a 28 2a 20 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e   ┆edure bsetu2;  (* var r: referen┆
0x0696a0…0696c0             63 65 3b 20 76 61 6c 3a 20 62 79 74 65 20 2a 29 0d 0a 62 65 67 69 6e 62 6f 64 79 20 36 3a 0d 0a   ┆ce; val: byte *)  beginbody 6:  ┆
0x0696c0…0696e0             20 20 72 65 76 6c 61 20 20 20 20 20 2d 35 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20   ┆  revla     -5    revsa     1   ┆
0x0696e0…069700             20 72 65 76 6c 62 20 20 20 20 20 2d 31 0d 0a 20 20 73 74 76 73 62 20 20 20 20 20 75 32 0d 0a 65   ┆ revlb     -1    stvsb     u2  e┆
0x069700…069720             6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 73 65 74 75 33 3b 20 20 20 0d 0a   ┆ndbody;      prefix bsetu3;     ┆
0x069720…069740             70 72 6f 63 65 64 75 72 65 20 62 73 65 74 75 33 3b 0d 0a 28 2a 20 76 61 72 20 72 3a 20 72 65 66   ┆procedure bsetu3;  (* var r: ref┆
0x069740…069760             65 72 65 6e 63 65 3b 20 76 61 6c 3a 20 62 79 74 65 20 2a 29 0d 0a 62 65 67 69 6e 62 6f 64 79 20   ┆erence; val: byte *)  beginbody ┆
0x069760…069780             36 3a 0d 0a 20 20 72 65 76 6c 61 20 20 20 20 20 2d 35 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20   ┆6:    revla     -5    revsa     ┆
0x069780…0697a0             31 0d 0a 20 20 72 65 76 6c 62 20 20 20 20 20 2d 31 0d 0a 20 20 73 74 76 73 62 20 20 20 20 20 75   ┆1    revlb     -1    stvsb     u┆
0x0697a0…0697c0             33 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 73 65 74 75 34 3b 20   ┆3  endbody;      prefix bsetu4; ┆
0x0697c0…0697e0             20 20 0d 0a 70 72 6f 63 65 64 75 72 65 20 62 73 65 74 75 34 3b 0d 0a 28 2a 20 76 61 72 20 72 3a   ┆    procedure bsetu4;  (* var r:┆
0x0697e0…069800             20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 6c 3a 20 62 79 74 65 20 2a 29 0d 0a 62 65 67 69 6e 62   ┆ reference; val: byte *)  beginb┆
0x069800…069820 (28, 0, 5)  6f 64 79 20 36 3a 0d 0a 20 20 72 65 76 6c 61 20 20 20 20 20 2d 35 0d 0a 20 20 72 65 76 73 61 20   ┆ody 6:    revla     -5    revsa ┆
0x069820…069840             20 20 20 20 31 0d 0a 20 20 72 65 76 6c 62 20 20 20 20 20 2d 31 0d 0a 20 20 73 74 76 73 62 20 20   ┆    1    revlb     -1    stvsb  ┆
0x069840…069860             20 20 20 75 34 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 69 67 6e   ┆   u4  endbody;      prefix sign┆
0x069860…069880             61 6c 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 69 67 6e 61 6c 20 28 76 61 72 20 72 20 3a 20 72   ┆al;  procedure signal (var r : r┆
0x069880…0698a0             65 66 65 72 65 6e 63 65 3b 20 76 61 72 20 6d 62 78 20 3a 20 73 65 6d 61 70 68 6f 72 65 29 3b 0d   ┆eference; var mbx : semaphore); ┆
0x0698a0…0698c0             0a 62 65 67 69 6e 62 6f 64 79 20 36 3a 0d 0a 20 20 72 65 61 78 64 20 20 20 20 3b 20 70 75 73 68   ┆ beginbody 6:    reaxd    ; push┆
0x0698c0…0698e0             20 4c 55 0d 0a 20 20 72 65 76 73 61 20 2d 36 20 3b 20 61 64 64 72 65 73 73 20 6f 66 20 72 0d 0a   ┆ LU    revsa -6 ; address of r  ┆
0x0698e0…069900             20 20 72 65 76 73 61 20 31 20 20 3b 20 5e 20 6d 65 73 73 61 67 65 20 68 65 61 64 65 72 0d 0a 20   ┆  revsa 1  ; ^ message header   ┆
0x069900…069920             20 72 65 63 68 77 20 31 20 20 3b 20 6d 65 73 73 61 67 65 20 65 76 65 6e 74 0d 0a 20 20 73 74 76   ┆ rechw 1  ; message event    stv┆
0x069920…069940             73 62 20 65 76 65 6e 74 6b 69 6e 64 20 3b 0d 0a 20 20 72 65 73 74 61 20 38 20 20 3b 0d 0a 20 20   ┆sb eventkind ;    resta 8  ;    ┆
0x069940…069960             63 73 69 67 6e 20 20 20 20 3b 20 73 69 67 6e 61 6c 3b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a   ┆csign    ; signal;  endbody;    ┆
0x069960…069980             0d 0a 70 72 65 66 69 78 20 73 69 67 6e 61 6c 78 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 69 67   ┆  prefix signalx;  procedure sig┆
0x069980…0699a0             6e 61 6c 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 72 20 6d 62 78 20   ┆nal (var r : reference; var mbx ┆
0x0699a0…0699c0             3a 20 73 65 6d 61 70 68 6f 72 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63   ┆: semaphore);  beginbody 0:    c┆
0x0699c0…0699e0             73 69 67 6e 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 74 61 72 74   ┆sign  endbody;      prefix start┆
0x0699e0…069a00             3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 74 61 72 74 20 28 72 65 67 73 65 74 2c 20 6c 65 76 65   ┆;  procedure start (regset, leve┆
0x069a00…069a20 (28, 0, 6)  6c 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63   ┆l : integer);  beginbody 0:    c┆
0x069a20…069a40             73 74 61 72 74 3b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 74 63   ┆start;  endbody;      prefix stc┆
0x069a40…069a60             65 61 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 74 63 65 61 0d 0a 20 20 28 63 6f 75 6e 74 20 3a 20   ┆ea;  function stcea    (count : ┆
0x069a60…069a80             69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 76 61 72 20 66 72 6f 6d 62 79 74 65 20 3a 20 62 79 74 65   ┆integer;     var frombyte : byte┆
0x069a80…069aa0             3b 20 66 72 6f 6d 69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 76 61 72 20 74   ┆; fromindex : integer;     var t┆
0x069aa0…069ac0             6f 62 79 74 65 20 20 20 3a 20 62 79 74 65 3b 20 74 6f 69 6e 64 65 78 20 20 20 3a 20 69 6e 74 65   ┆obyte   : byte; toindex   : inte┆
0x069ac0…069ae0             67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 28 2a 20 63 6f 6d 70 61 72 65 73 20 27 63 6f   ┆ger) : integer;  (* compares 'co┆
0x069ae0…069b00             75 6e 74 27 20 62 79 74 65 73 20 73 74 61 72 74 69 6e 67 20 61 74 20 27 66 72 6f 6d 62 79 74 65   ┆unt' bytes starting at 'frombyte┆
0x069b00…069b20             28 66 72 6f 6d 69 6e 64 65 78 29 27 20 77 69 74 68 20 2a 29 0d 0a 28 2a 20 27 63 6f 75 6e 74 27   ┆(fromindex)' with *)  (* 'count'┆
0x069b20…069b40             20 62 79 74 65 73 20 73 74 61 72 74 69 6e 67 20 61 74 20 27 74 6f 62 79 74 65 28 74 6f 69 6e 64   ┆ bytes starting at 'tobyte(toind┆
0x069b40…069b60             65 78 29 27 2e 20 2a 29 0d 0a 62 65 67 69 6e 62 6f 64 79 20 36 20 3a 0d 0a 20 20 6d 61 64 64 20   ┆ex)'. *)  beginbody 6 :    madd ┆
0x069b60…069b80             20 20 20 20 3b 20 69 6e 64 65 78 0d 0a 20 20 72 65 61 78 64 20 20 20 20 3b 20 67 65 74 20 74 6f   ┆    ; index    reaxd    ; get to┆
0x069b80…069ba0             70 20 2d 20 74 68 65 20 68 77 20 73 74 61 63 6b 20 69 73 20 64 75 6d 70 65 64 20 0d 0a 20 20 72   ┆p - the hw stack is dumped     r┆
0x069ba0…069bc0             65 61 73 64 20 2d 39 20 3b 20 61 64 64 72 20 6f 66 20 66 72 6f 6d 62 79 74 65 0d 0a 20 20 72 65   ┆easd -9 ; addr of frombyte    re┆
0x069bc0…069be0             63 68 77 20 36 20 20 3b 20 70 72 65 70 61 72 65 20 6d 6f 76 65 0d 0a 20 20 72 65 76 73 6d 20 20   ┆chw 6  ; prepare move    revsm  ┆
0x069be0…069c00             20 20 3b 20 70 75 73 68 20 66 72 6f 6d 62 79 74 65 20 61 6e 64 20 66 72 6f 6d 69 6e 64 65 78 0d   ┆  ; push frombyte and fromindex ┆
0x069c00…069c20 (28, 0, 7)  0a 20 20 72 65 73 74 61 20 34 20 20 3b 0d 0a 20 20 6d 61 64 64 20 20 20 20 20 3b 20 69 6e 64 65   ┆   resta 4  ;    madd     ; inde┆
0x069c20…069c40             78 0d 0a 20 20 72 65 61 78 64 20 20 20 20 3b 20 67 65 74 20 74 6f 70 0d 0a 20 20 72 65 76 73 77   ┆x    reaxd    ; get top    revsw┆
0x069c40…069c60             20 2d 31 35 3b 20 63 6f 75 6e 74 0d 0a 20 20 72 65 73 74 61 20 31 30 20 3b 0d 0a 20 20 73 74 63   ┆ -15; count    resta 10 ;    stc┆
0x069c60…069c80             65 61 20 20 20 20 3b 0d 0a 20 20 72 65 61 78 64 20 20 20 20 3b 20 67 65 74 20 74 6f 70 20 2d 20   ┆ea    ;    reaxd    ; get top - ┆
0x069c80…069ca0             74 68 65 20 68 77 20 73 74 61 63 6b 20 69 73 20 64 75 6d 70 65 64 0d 0a 20 20 72 65 76 70 64 20   ┆the hw stack is dumped    revpd ┆
0x069ca0…069cc0             20 20 20 3b 20 6f 6e 65 20 6d 6f 72 65 0d 0a 20 20 72 65 76 73 77 20 2d 31 20 3b 20 67 65 74 20   ┆   ; one more    revsw -1 ; get ┆
0x069cc0…069ce0             72 65 73 75 6c 74 0d 0a 20 20 73 74 76 73 77 20 2d 39 20 3b 20 70 75 74 20 72 65 73 75 6c 74 20   ┆result    stvsw -9 ; put result ┆
0x069ce0…069d00             69 6e 20 74 68 65 20 63 6f 75 6e 74 20 70 61 72 61 6d 65 74 65 72 0d 0a 20 20 73 74 6e 68 62 20   ┆in the count parameter    stnhb ┆
0x069d00…069d20             38 20 20 3b 20 70 6f 70 20 70 61 72 61 6d 65 74 65 72 73 0d 0a 20 20 72 65 73 74 61 20 32 20 20   ┆8  ; pop parameters    resta 2  ┆
0x069d20…069d40             3b 20 72 65 73 75 6c 74 20 69 6e 20 68 77 20 73 74 61 63 6b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a   ┆; result in hw stack  endbody;  ┆
0x069d40…069d60             0d 0a 0d 0a 70 72 65 66 69 78 20 73 74 6f 70 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 20   ┆    prefix stop;  function stop ┆
0x069d60…069d80             28 76 61 72 20 69 6e 63 20 3a 20 69 6e 63 61 72 6e 61 74 69 6f 6e 5f 64 65 73 63 72 69 70 74 6f   ┆(var inc : incarnation_descripto┆
0x069d80…069da0             72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63   ┆r) : integer;  beginbody 0:    c┆
0x069da0…069dc0             73 74 6f 70 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 74 76 73 62   ┆stop  endbody;      prefix stvsb┆
0x069dc0…069de0             30 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 74 76 73 62 30 20 28 76 61 72 20 64 2c 73 3a 20 62   ┆0;  procedure stvsb0 (var d,s: b┆
0x069de0…069e00             79 74 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 62 20 30 0d 0a   ┆yte);  beginbody 0:    revsb 0  ┆
0x069e00…069e20 (28, 0, 8)  20 20 73 74 76 73 62 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20   ┆  stvsb 0  endbody;      prefix ┆
0x069e20…069e40             73 74 76 73 64 30 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 74 76 73 64 30 20 28 76 61 72 20 61   ┆stvsd0;  procedure stvsd0 (var a┆
0x069e40…069e60             20 3a 20 61 64 64 72 3b 20 62 20 3a 20 5e 20 6e 69 6c 74 79 70 65 29 3b 0d 0a 62 65 67 69 6e 62   ┆ : addr; b : ^ niltype);  beginb┆
0x069e60…069e80             6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 73 64 20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d   ┆ody 0:    stvsd 0  endbody;     ┆
0x069e80…069ea0             0a 70 72 65 66 69 78 20 73 74 76 73 64 30 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 74 76 73 64   ┆ prefix stvsd0;  procedure stvsd┆
0x069ea0…069ec0             30 20 28 76 61 72 20 61 20 3a 20 5e 20 6e 69 6c 74 79 70 65 3b 20 62 20 3a 20 61 64 64 72 29 3b   ┆0 (var a : ^ niltype; b : addr);┆
0x069ec0…069ee0             0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 73 64 20 30 0d 0a 65 6e 64 62 6f   ┆  beginbody 0:    stvsd 0  endbo┆
0x069ee0…069f00             64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 74 76 73 77 30 3b 0d 0a 70 72 6f 63 65 64 75   ┆dy;      prefix stvsw0;  procedu┆
0x069f00…069f20             72 65 20 73 74 76 73 77 30 20 28 76 61 72 20 61 20 3a 20 69 6e 74 65 67 65 72 3b 20 62 20 3a 20   ┆re stvsw0 (var a : integer; b : ┆
0x069f20…069f40             69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 73 77   ┆integer);  beginbody 0:    stvsw┆
0x069f40…069f60             20 30 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 73 77 61 70 3b 0d 0a   ┆ 0  endbody;      prefix swap;  ┆
0x069f60…069f80             66 75 6e 63 74 69 6f 6e 20 73 77 61 70 20 28 69 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 69 6e   ┆function swap (i : integer) : in┆
0x069f80…069fa0             74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 68 63 38 0d 0a 65 6e   ┆teger;  beginbody 0:    shc8  en┆
0x069fa0…069fc0             64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 74 69 6d 65 64 6f 75 74 3b 0d 0a 66 75   ┆dbody;      prefix timedout;  fu┆
0x069fc0…069fe0             6e 63 74 69 6f 6e 20 74 69 6d 65 64 6f 75 74 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69   ┆nction timedout : boolean;  begi┆
0x069fe0…06a000             6e 62 6f 64 79 20 32 3a 0d 0a 20 20 72 65 63 68 77 20 20 30 0d 0a 20 20 73 74 76 67 77 20 20 74   ┆nbody 2:    rechw  0    stvgw  t┆
0x06a000…06a020 (28, 0, 9)  69 6d 65 72 3b 20 6f 77 6e 2e 74 69 6d 65 72 20 3a 3d 20 30 3b 0d 0a 20 20 6d 62 74 65 73 20 20   ┆imer; own.timer := 0;    mbtes  ┆
0x06a020…06a040             31 20 20 20 20 3b 20 74 69 6d 65 6f 75 74 20 62 69 74 0d 0a 20 20 72 65 63 68 77 20 20 30 20 0d   ┆1    ; timeout bit    rechw  0  ┆
0x06a040…06a060             0a 20 20 6d 62 73 65 74 20 20 31 20 20 20 20 3b 20 63 6c 65 61 72 20 74 69 6d 65 20 6f 75 74 20   ┆   mbset  1    ; clear time out ┆
0x06a060…06a080             62 69 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 62 74 6f 66 72 6f   ┆bit  endbody;      prefix btofro┆
0x06a080…06a0a0             6d 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 62 74 6f 66 72 6f 6d 3b 0d 0a 28 2a 20 76 61 72 20 74   ┆m;  procedure btofrom;  (* var t┆
0x06a0a0…06a0c0             6f 5f 72 65 66 20 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 74 6f 5f 69 6e 64 65 78 20 3a 20 69 6e   ┆o_ref : reference; to_index : in┆
0x06a0c0…06a0e0             74 65 67 65 72 3b 0d 0a 20 20 20 76 61 72 20 66 72 6f 6d 5f 72 65 66 20 3a 20 72 65 66 65 72 65   ┆teger;     var from_ref : refere┆
0x06a0e0…06a100             6e 63 65 3b 20 66 72 6f 6d 5f 69 6e 64 65 78 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 62   ┆nce; from_index : integer;     b┆
0x06a100…06a120             79 74 65 73 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 2a 29 0d 0a 62 65 67 69 6e 62 6f 64 79 20 31   ┆ytes : integer;  *)  beginbody 1┆
0x06a120…06a140             30 3a 0d 0a 20 20 72 65 76 6c 61 20 20 2d 31 33 0d 0a 20 20 72 65 76 6c 77 20 20 2d 31 30 0d 0a   ┆0:    revla  -13    revlw  -10  ┆
0x06a140…06a160             20 20 72 65 76 6c 77 20 20 20 2d 32 0d 0a 20 20 75 61 64 64 20 20 0d 0a 20 20 75 61 64 68 77 20   ┆  revlw   -2    uadd      uadhw ┆
0x06a160…06a180             20 20 20 31 3b 20 0d 0a 20 20 72 65 63 68 77 20 20 20 20 32 0d 0a 20 20 75 64 69 76 20 20 0d 0a   ┆   1;     rechw    2    udiv    ┆
0x06a180…06a1a0             20 20 6c 6c 6f 63 6b 20 20 20 38 0d 0a 20 20 72 65 76 70 64 20 0d 0a 20 20 6c 72 65 73 65 20 0d   ┆  llock   8    revpd     lrese  ┆
0x06a1a0…06a1c0             0a 72 65 73 74 61 20 20 20 30 0d 0a 20 20 72 65 76 6c 61 20 20 20 2d 37 0d 0a 20 20 72 65 76 6c   ┆ resta   0    revla   -7    revl┆
0x06a1c0…06a1e0             77 20 20 20 2d 34 0d 0a 20 20 72 65 76 6c 77 20 20 20 2d 32 0d 0a 20 20 75 61 64 64 20 20 0d 0a   ┆w   -4    revlw   -2    uadd    ┆
0x06a1e0…06a200             20 20 75 61 64 68 77 20 20 20 20 31 3b 20 0d 0a 20 20 72 65 63 68 77 20 20 20 20 32 0d 0a 20 20   ┆  uadhw    1;     rechw    2    ┆
0x06a200…06a220 (28, 0, 10) 75 64 69 76 20 20 0d 0a 20 20 6c 6c 6f 63 6b 20 20 20 31 31 0d 0a 20 20 72 65 76 70 64 20 0d 0a   ┆udiv      llock   11    revpd   ┆
0x06a220…06a240             20 20 6c 72 65 73 65 20 0d 0a 72 65 73 74 61 20 20 20 30 0d 0a 20 20 72 65 76 6c 61 20 20 20 20   ┆  lrese   resta   0    revla    ┆
0x06a240…06a260             38 0d 0a 20 20 72 65 76 6c 77 20 20 2d 31 30 0d 0a 20 20 75 61 64 64 20 20 0d 0a 20 20 72 65 76   ┆8    revlw  -10    uadd      rev┆
0x06a260…06a280             6c 61 20 20 20 31 31 0d 0a 20 20 72 65 76 6c 77 20 20 20 2d 34 0d 0a 20 20 75 61 64 64 20 20 0d   ┆la   11    revlw   -4    uadd   ┆
0x06a280…06a2a0             0a 20 20 72 65 76 6c 77 20 20 20 2d 32 0d 0a 20 20 6d 6f 76 65 67 20 0d 0a 72 65 73 74 61 20 20   ┆   revlw   -2    moveg   resta  ┆
0x06a2a0…06a2c0             20 34 0d 0a 20 20 6c 72 65 6c 65 20 3b 20 0d 0a 72 65 73 74 61 20 20 20 34 0d 0a 20 20 6c 72 65   ┆ 4    lrele ;   resta   4    lre┆
0x06a2c0…06a2e0             6c 65 20 3b 20 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 74 6f 70 3b   ┆le ;   endbody;      prefix top;┆
0x06a2e0…06a300             0d 0a 66 75 6e 63 74 69 6f 6e 20 74 6f 70 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63   ┆  function top (var r : referenc┆
0x06a300…06a320             65 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72   ┆e) : integer;  beginbody 0:    r┆
0x06a320…06a340             65 76 73 61 20 20 20 20 31 20 20 20 20 20 3b 0d 0a 20 20 72 65 76 73 64 20 20 20 20 6d 73 74 61   ┆evsa    1     ;    revsd    msta┆
0x06a340…06a360             72 74 3b 0d 0a 20 20 72 65 76 73 77 20 20 20 20 6d 6c 61 73 74 20 3b 0d 0a 20 20 75 61 64 68 77   ┆rt;    revsw    mlast ;    uadhw┆
0x06a360…06a380             20 20 20 20 31 20 20 20 20 20 3b 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69   ┆    1     ;  endbody;      prefi┆
0x06a380…06a3a0             78 20 75 61 64 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 61 64 64 20 28 61 2c 20 62 20 3a 20 69   ┆x uadd;  function uadd (a, b : i┆
0x06a3a0…06a3c0             6e 74 65 67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a   ┆nteger) : integer;  beginbody 0:┆
0x06a3c0…06a3e0             0d 0a 20 20 75 61 64 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 75   ┆    uadd  endbody;      prefix u┆
0x06a3e0…06a400             64 69 76 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 64 69 76 20 28 61 2c 62 20 3a 20 69 6e 74 65 67   ┆div;  function udiv (a,b : integ┆
0x06a400…06a420 (28, 0, 11) 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20   ┆er) : integer;  beginbody 0:    ┆
0x06a420…06a440             75 64 69 76 20 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 75 6c 74 3b   ┆udiv   endbody;      prefix ult;┆
0x06a440…06a460             0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6c 74 20 28 69 2c 6a 20 3a 20 69 6e 74 65 67 65 72 29 3a 20   ┆  function ult (i,j : integer): ┆
0x06a460…06a480             62 6f 6f 6c 65 61 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 75 6c 74 3b 20 20   ┆boolean;  beginbody 0:    ult;  ┆
0x06a480…06a4a0             75 6e 73 69 67 6e 65 64 20 6c 65 73 73 2d 74 68 61 6e 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a   ┆unsigned less-than  endbody;    ┆
0x06a4a0…06a4c0             0d 0a 70 72 65 66 69 78 20 75 6d 6f 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6d 6f 64 20 28 61   ┆  prefix umod;  function umod (a┆
0x06a4c0…06a4e0             2c 62 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62   ┆,b : integer) : integer;  beginb┆
0x06a4e0…06a500             6f 64 79 20 30 3a 0d 0a 20 20 75 6d 6f 64 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72   ┆ody 0:    umod  endbody;      pr┆
0x06a500…06a520             65 66 69 78 20 75 6d 75 6c 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 6d 75 6c 20 28 61 2c 62 20 3a   ┆efix umul;  function umul (a,b :┆
0x06a520…06a540             20 69 6e 74 65 67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20   ┆ integer) : integer;  beginbody ┆
0x06a540…06a560             30 3a 0d 0a 20 20 75 6d 75 6c 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78   ┆0:    umul  endbody;      prefix┆
0x06a560…06a580             20 75 73 75 62 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 73 75 62 20 28 61 2c 20 62 20 3a 20 69 6e   ┆ usub;  function usub (a, b : in┆
0x06a580…06a5a0             74 65 67 65 72 29 20 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d   ┆teger) : integer;  beginbody 0: ┆
0x06a5a0…06a5c0             0a 20 20 75 73 75 62 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 75 31   ┆   usub  endbody;      prefix u1┆
0x06a5c0…06a5e0             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 31 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65   ┆;  function u1 (var r: reference┆
0x06a5e0…06a600             29 3a 20 62 79 74 65 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20   ┆): byte;  beginbody 0:    revsa ┆
0x06a600…06a620 (28, 0, 12) 20 20 20 20 31 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 75 31 0d 0a 65 6e 64 62 6f 64 79 3b 0d   ┆    1    revsb     u1  endbody; ┆
0x06a620…06a640             0a 0d 0a 0d 0a 70 72 65 66 69 78 20 75 32 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 32 20 28 76 61   ┆     prefix u2;  function u2 (va┆
0x06a640…06a660             72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 62 79 74 65 3b 0d 0a 62 65 67 69 6e 62 6f 64   ┆r r: reference): byte;  beginbod┆
0x06a660…06a680             79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 73 62 20 20 20 20   ┆y 0:    revsa     1    revsb    ┆
0x06a680…06a6a0             20 75 32 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 75 33 3b 0d 0a 66   ┆ u2  endbody;      prefix u3;  f┆
0x06a6a0…06a6c0             75 6e 63 74 69 6f 6e 20 75 33 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 62   ┆unction u3 (var r: reference): b┆
0x06a6c0…06a6e0             79 74 65 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 72 65 76 73 61 20 20 20 20 20   ┆yte;  beginbody 0:    revsa     ┆
0x06a6e0…06a700             31 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 75 33 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d   ┆1    revsb     u3  endbody;     ┆
0x06a700…06a720             0a 70 72 65 66 69 78 20 75 34 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 75 34 20 28 76 61 72 20 72 3a   ┆ prefix u4;  function u4 (var r:┆
0x06a720…06a740             20 72 65 66 65 72 65 6e 63 65 29 3a 20 62 79 74 65 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a   ┆ reference): byte;  beginbody 0:┆
0x06a740…06a760             0d 0a 20 20 72 65 76 73 61 20 20 20 20 20 31 0d 0a 20 20 72 65 76 73 62 20 20 20 20 20 75 34 0d   ┆    revsa     1    revsb     u4 ┆
0x06a760…06a780             0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 3b 0d 0a 70 72 6f   ┆ endbody;      prefix wait;  pro┆
0x06a780…06a7a0             63 65 64 75 72 65 20 77 61 69 74 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76   ┆cedure wait(var r : reference; v┆
0x06a7a0…06a7c0             61 72 20 73 65 6d 20 3a 20 73 65 6d 61 70 68 6f 72 65 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20   ┆ar sem : semaphore);  beginbody ┆
0x06a7c0…06a7e0             30 3a 0d 0a 20 20 63 77 61 69 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 77 61   ┆0:    cwait                 ; wa┆
0x06a7e0…06a800             69 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 64 3b 0d   ┆it  endbody;      prefix waitd; ┆
0x06a800…06a820 (28, 0, 13) 0a 70 72 6f 63 65 64 75 72 65 20 77 61 69 74 64 20 28 64 65 6c 61 79 20 3a 20 69 6e 74 65 67 65   ┆ procedure waitd (delay : intege┆
0x06a820…06a840             72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 67 77 20 74 69 6d 65 72   ┆r);  beginbody 0:    stvgw timer┆
0x06a840…06a860             20 3b 20 6f 77 6e 2e 74 69 6d 65 72 20 3a 3d 20 64 65 6c 61 79 0d 0a 20 20 6d 77 74 0d 0a 20 20   ┆ ; own.timer := delay    mwt    ┆
0x06a860…06a880             73 74 6e 68 62 20 32 20 20 3b 20 73 6b 69 70 20 72 65 73 75 6c 74 0d 0a 65 6e 64 62 6f 64 79 3b   ┆stnhb 2  ; skip result  endbody;┆
0x06a880…06a8a0             0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 69 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 77   ┆      prefix waiti;  procedure w┆
0x06a8a0…06a8c0             61 69 74 69 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 77 69 0d 0a 20 20 73 74   ┆aiti;  beginbody 0:    mwi    st┆
0x06a8c0…06a8e0             6e 68 62 20 32 20 20 3b 20 73 6b 69 70 20 72 65 73 75 6c 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a   ┆nhb 2  ; skip result  endbody;  ┆
0x06a8e0…06a900             0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 69 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69   ┆    prefix waitid;  function wai┆
0x06a900…06a920             74 69 64 20 28 64 65 6c 61 79 20 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 63 74 69 76 61 74 69 6f   ┆tid (delay : integer): activatio┆
0x06a920…06a940             6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 67 77 20 74 69 6d 65 72 20   ┆n;  beginbody 0:    stvgw timer ┆
0x06a940…06a960             3b 20 6f 77 6e 2e 74 69 6d 65 72 20 3a 3d 20 64 65 61 6c 79 0d 0a 20 20 6d 77 69 74 0d 0a 65 6e   ┆; own.timer := dealy    mwit  en┆
0x06a960…06a980             64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 69 73 3b 0d 0a 66 75 6e 63   ┆dbody;      prefix waitis;  func┆
0x06a980…06a9a0             74 69 6f 6e 20 77 61 69 74 69 73 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76   ┆tion waitis (var r: reference; v┆
0x06a9a0…06a9c0             61 72 20 73 3a 20 73 65 6d 61 70 68 6f 72 65 29 3a 20 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 62   ┆ar s: semaphore): activation;  b┆
0x06a9c0…06a9e0             65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 77 69 73 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d   ┆eginbody 0:    mwis  endbody;   ┆
0x06a9e0…06aa00             0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 69 73 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69   ┆   prefix waitisd;  function wai┆
0x06aa00…06aa20 (28, 0, 14) 74 69 73 64 0d 0a 20 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 0d 0a 20 20 20 76   ┆tisd    (var r: reference;     v┆
0x06aa20…06aa40             61 72 20 73 3a 20 73 65 6d 61 70 68 6f 72 65 3b 0d 0a 20 20 20 64 65 6c 61 79 20 3a 20 69 6e 74   ┆ar s: semaphore;     delay : int┆
0x06aa40…06aa60             65 67 65 72 29 3a 20 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a   ┆eger): activation;  beginbody 0:┆
0x06aa60…06aa80             0d 0a 20 20 73 74 76 67 77 20 74 69 6d 65 72 20 3b 20 6f 77 6e 2e 74 69 6d 65 72 20 3a 3d 20 64   ┆    stvgw timer ; own.timer := d┆
0x06aa80…06aaa0             65 6c 61 79 0d 0a 20 20 6d 77 69 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65   ┆elay    mwist  endbody;      pre┆
0x06aaa0…06aac0             66 69 78 20 77 61 69 74 69 73 64 77 71 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 69 73 64   ┆fix waitisdwq;  function waitisd┆
0x06aac0…06aae0             77 71 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 72 20 73 20 3a 20 73   ┆wq (var r : reference; var s : s┆
0x06aae0…06ab00             65 6d 61 70 68 6f 72 65 3b 20 64 65 6c 61 79 20 3a 20 69 6e 74 65 67 65 72 29 20 3a 20 69 6e 74   ┆emaphore; delay : integer) : int┆
0x06ab00…06ab20             65 67 65 72 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 67 77 20 20 74 69   ┆eger;  beginbody 0:    stvgw  ti┆
0x06ab20…06ab40             6d 65 72 0d 0a 20 20 63 6f 75 74 77 71 0d 0a 20 20 6d 77 69 73 74 0d 0a 65 6e 64 62 6f 64 79 3b   ┆mer    coutwq    mwist  endbody;┆
0x06ab40…06ab60             0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 69 73 74 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆      prefix waitist;  function ┆
0x06ab60…06ab80             77 61 69 74 69 73 74 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 72 20 73   ┆waitist (var r: reference; var s┆
0x06ab80…06aba0             3a 20 73 65 6d 61 70 68 6f 72 65 29 3a 20 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 62 65 67 69 6e   ┆: semaphore): activation;  begin┆
0x06aba0…06abc0             62 6f 64 79 20 30 3a 0d 0a 20 20 6d 77 69 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a   ┆body 0:    mwist  endbody;      ┆
0x06abc0…06abe0             70 72 65 66 69 78 20 77 61 69 74 69 74 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 69 74 3a   ┆prefix waitit;  function waitit:┆
0x06abe0…06ac00             20 61 63 74 69 76 61 74 69 6f 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 77   ┆ activation;  beginbody 0:    mw┆
0x06ac00…06ac20 (28, 0, 15) 69 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 73 3b 0d   ┆it  endbody;      prefix waits; ┆
0x06ac20…06ac40             0a 70 72 6f 63 65 64 75 72 65 20 77 61 69 74 73 20 28 76 61 72 20 72 20 3a 20 72 65 66 65 72 65   ┆ procedure waits (var r : refere┆
0x06ac40…06ac60             6e 63 65 3b 20 76 61 72 20 73 20 3a 20 73 65 6d 61 70 68 6f 72 65 29 3b 0d 0a 62 65 67 69 6e 62   ┆nce; var s : semaphore);  beginb┆
0x06ac60…06ac80             6f 64 79 20 30 3a 0d 0a 20 20 20 63 77 61 69 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a   ┆ody 0:     cwait  endbody;      ┆
0x06ac80…06aca0             70 72 65 66 69 78 20 77 61 69 74 73 64 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 73 64 0d   ┆prefix waitsd;  function waitsd ┆
0x06aca0…06acc0             0a 20 20 28 76 61 72 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 0d 0a 20 20 20 76 61 72 20 73 3a   ┆   (var r: reference;     var s:┆
0x06acc0…06ace0             20 73 65 6d 61 70 68 6f 72 65 3b 20 64 65 6c 61 79 20 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 63   ┆ semaphore; delay : integer): ac┆
0x06ace0…06ad00             74 69 76 61 74 69 6f 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 73 74 76 67 77   ┆tivation;  beginbody 0:    stvgw┆
0x06ad00…06ad20             20 74 69 6d 65 72 20 3b 20 6f 77 6e 2e 74 69 6d 65 72 20 3a 3d 20 64 65 6c 61 79 0d 0a 20 20 6d   ┆ timer ; own.timer := delay    m┆
0x06ad20…06ad40             77 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 73 74   ┆wst  endbody;      prefix waitst┆
0x06ad40…06ad60             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 73 74 20 28 76 61 72 20 72 3a 20 72 65 66 65 72   ┆;  function waitst (var r: refer┆
0x06ad60…06ad80             65 6e 63 65 3b 20 76 61 72 20 73 3a 20 73 65 6d 61 70 68 6f 72 65 29 3a 20 61 63 74 69 76 61 74   ┆ence; var s: semaphore): activat┆
0x06ad80…06ada0             69 6f 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 77 73 74 0d 0a 65 6e 64 62   ┆ion;  beginbody 0:    mwst  endb┆
0x06ada0…06adc0             6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 74 3b 0d 0a 70 72 6f 63 65 64 75   ┆ody;      prefix waitt;  procedu┆
0x06adc0…06ade0             72 65 20 77 61 69 74 74 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 6d 77 74 0d 0a   ┆re waitt;  beginbody 2:    mwt  ┆
0x06ade0…06ae00             20 20 73 74 6e 68 62 20 32 20 20 3b 20 73 6b 69 70 20 72 65 73 75 6c 74 0d 0a 65 6e 64 62 6f 64   ┆  stnhb 2  ; skip result  endbod┆
0x06ae00…06ae20 (28, 1, 1)  79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 72 69 74 65 72 61 6d 3b 0d 0a 70 72 6f 63 65 64   ┆y;      prefix writeram;  proced┆
0x06ae20…06ae40             75 72 65 20 77 72 69 74 65 72 61 6d 20 28 69 6e 64 65 78 2c 77 61 6c 75 65 20 3a 20 69 6e 74 65   ┆ure writeram (index,walue : inte┆
0x06ae40…06ae60             67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 63 77 72 61 6d 0d 0a 65 6e   ┆ger);  beginbody 0:    cwram  en┆
0x06ae60…06ae80             64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 72 69 74 65 72 61 6d 63 6c 72 3b 0d   ┆dbody;      prefix writeramclr; ┆
0x06ae80…06aea0             0a 70 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 72 61 6d 63 6c 72 20 28 69 6e 64 65 78 2c 77 61   ┆ procedure writeramclr (index,wa┆
0x06aea0…06aec0             6c 75 65 20 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20   ┆lue : integer);  beginbody 0:   ┆
0x06aec0…06aee0             20 69 6f 6e 63 69 20 20 20 20 3b 20 6e 65 78 74 20 63 6c 65 61 72 20 69 6e 74 65 72 72 75 70 74   ┆ ionci    ; next clear interrupt┆
0x06aee0…06af00             0d 0a 20 20 63 77 72 61 6d 20 20 20 20 3b 20 77 72 69 74 65 20 72 61 6d 0d 0a 65 6e 64 62 6f 64   ┆    cwram    ; write ram  endbod┆
0x06af00…06af20             79 3b 0d 0a 0d 0a 2e 0d 0a 6f 77 6e 2e 74 69 6d 65 72 20 3a 3d 20 64 65 6c 61 79 0d 0a 20 20 6d   ┆y;    .  own.timer := delay    m┆
0x06af20…06af40             77 73 74 0d 0a 65 6e 64 62 6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 73 74   ┆wst  endbody;      prefix waitst┆
0x06af40…06af60             3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 73 74 20 28 76 61 72 20 72 3a 20 72 65 66 65 72   ┆;  function waitst (var r: refer┆
0x06af60…06af80             65 6e 63 65 3b 20 76 61 72 20 73 3a 20 73 65 6d 61 70 68 6f 72 65 29 3a 20 61 63 74 69 76 61 74   ┆ence; var s: semaphore): activat┆
0x06af80…06afa0             69 6f 6e 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 30 3a 0d 0a 20 20 6d 77 73 74 0d 0a 65 6e 64 62   ┆ion;  beginbody 0:    mwst  endb┆
0x06afa0…06afc0             6f 64 79 3b 0d 0a 0d 0a 0d 0a 70 72 65 66 69 78 20 77 61 69 74 74 3b 0d 0a 70 72 6f 63 65 64 75   ┆ody;      prefix waitt;  procedu┆
0x06afc0…06afe0             72 65 20 77 61 69 74 74 3b 0d 0a 62 65 67 69 6e 62 6f 64 79 20 32 3a 0d 0a 20 20 6d 77 74 0d 0a   ┆re waitt;  beginbody 2:    mwt  ┆
0x06afe0…06b000             20 20 73 74 6e 68 62 20 32 20 20 3b 20 73 6b 69 70 20 72 65 73 75 6c 74 0d 0a 65 6e 64 62 6f 64   ┆  stnhb 2  ; skip result  endbod┆
0x06b000…06b020 (28, 1, 2)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 72 74 70 2f 78 32 31 00 00 00 00 00 00 00 00 00 00 00   ┆../sw2103/src/rtp/x21           ┆
0x06b020…06b040             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x06b060…06b080             00 00 00 00 20 20 20 37 35 35 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       755     255     146      ┆
0x06b080…06b0a0             20 20 20 32 34 32 37 20 20 35 32 36 36 37 35 33 35 32 36 20 20 20 37 32 36 37 00 20 00 00 00 00   ┆   2427  5266753526   7267      ┆
0x06b0a0…06b0c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x06b200…06b220 (28, 1, 3)  70 72 6f 67 72 61 6d 20 72 74 70 33 35 30 32 28 69 6e 70 75 74 2c 6f 75 74 70 75 74 2c 73 70 69   ┆program rtp3502(input,output,spi┆
0x06b220…06b240             78 74 61 62 6c 65 2c 63 6f 64 65 66 69 6c 65 2c 73 79 6d 62 66 69 6c 65 29 3b 0a 0a 28 2a 2d 2d   ┆xtable,codefile,symbfile);  (*--┆
0x06b240…06b260             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x06b260…06b280             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a   ┆------------------------------- ┆
0x06b280…06b2a0             2d 2d 0a 2d 2d 20 28 43 29 20 43 6f 70 79 72 69 67 74 68 20 31 39 39 32 20 20 44 41 4e 4f 53 49   ┆-- -- (C) Copyrigth 1992  DANOSI┆
0x06b2a0…06b2c0             0a 2d 2d 0a 2d 2d 09 52 54 50 33 35 30 32 20 50 61 73 73 20 31 2e 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d   ┆ -- -- RTP3502 Pass 1. -- ------┆
0x06b2c0…06b2e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x06b2e0…06b300             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d   ┆----------------------------- --┆
0x06b300…06b320             0a 2d 2d 09 52 65 76 69 73 69 6f 6e 73 0a 2d 2d 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ -- Revisions -- ---------------┆
0x06b320…06b340             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 20 20 20 20 20 20 20 39 31 2e 31   ┆----------------- --        91.1┆
0x06b340…06b360             30 2e 31 35 20 20 45 42 4b 20 20 20 55 73 65 64 20 69 6e 20 72 65 6c 65 61 73 65 20 31 2e 31 32   ┆0.15  EBK   Used in release 1.12┆
0x06b360…06b380             0a 2d 2d 20 20 31 2e 31 32 20 20 39 32 2e 31 30 2e 31 34 20 20 48 45 4a 20 20 20 53 43 43 53 20   ┆ --  1.12  92.10.14  HEJ   SCCS ┆
0x06b380…06b3a0             61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆and UNIX used. -- --------------┆
0x06b3a0…06b3c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x06b3c0…06b3e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e   ┆--------------------- -- SCCS in┆
0x06b3e0…06b400             66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f   ┆formation -- File   :  %P% -- Mo┆
0x06b400…06b420 (28, 1, 4)  64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09   ┆dule :  %M% -- Version:  %I% -- ┆
0x06b420…06b440             44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆Date   :  %E%  %U% -------------┆
0x06b440…06b460             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x06b460…06b480             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 75 73 65 73 20   ┆---------------------- *)  uses ┆
0x06b480…06b4a0             72 74 70 75 6e 69 74 2c 20 64 6f 73 3b 0a 0a 28 2a 20 56 65 72 73 69 6f 6e 20 63 6f 6e 74 72 6f   ┆rtpunit, dos;  (* Version contro┆
0x06b4a0…06b4c0             6c 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 73 74 61 74 65 64 20 69 6e 20 70 31 69 6e 69 74 2e   ┆l comments are stated in p1init.┆
0x06b4c0…06b4e0             70 61 73 20 20 20 2a 29 0a 0a 28 2a 24 4d 20 36 35 30 30 30 2c 30 2c 36 35 35 33 36 30 2a 29 0a   ┆pas   *)  (*$M 65000,0,655360*) ┆
0x06b4e0…06b500             28 2a 24 52 2b 2a 29 0a 0a 28 2a 24 49 20 70 31 69 6e 69 74 20 2a 29 0a 28 2a 24 49 20 70 31 63   ┆(*$R+*)  (*$I p1init *) (*$I p1c┆
0x06b500…06b520             6f 64 65 20 2a 29 0a 28 2a 24 49 20 70 31 70 61 72 73 20 2a 29 0a 0a 28 2a 24 46 2b 2a 29 70 72   ┆ode *) (*$I p1pars *)  (*$F+*)pr┆
0x06b520…06b540             6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29 0a 62 65 67 69 6e 0a 0a 65   ┆ocedure myexit; (*$F-*) begin  e┆
0x06b540…06b560             78 69 74 70 72 6f 63 20 3a 3d 20 65 78 69 74 73 61 76 65 3b 0a 0a 69 66 20 65 78 69 74 63 6f 64   ┆xitproc := exitsave;  if exitcod┆
0x06b560…06b580             65 20 3d 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 0a 74 65 72 6d 69 6e 61 74 65 28 65 72 72 6f   ┆e = 0 then begin  terminate(erro┆
0x06b580…06b5a0             72 63 6f 75 6e 74 3e 30 29 3b 0a 69 66 20 77 61 72 6e 69 6e 67 63 6f 75 6e 74 3e 30 20 74 68 65   ┆rcount>0); if warningcount>0 the┆
0x06b5a0…06b5c0             6e 20 28 2a 20 6e 6f 20 65 72 72 6f 72 73 20 62 75 74 20 77 61 72 6e 69 6e 67 73 20 2a 29 20 70   ┆n (* no errors but warnings *) p┆
0x06b5c0…06b5e0             72 69 6e 74 65 72 72 6f 72 73 3b 0a 69 66 20 63 61 6c 6c 5f 70 61 73 73 5f 33 20 74 68 65 6e 0a   ┆rinterrors; if call_pass_3 then ┆
0x06b5e0…06b600             69 66 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 3c 3e 27 72 74 70 33 35 30 32 32 27 20 74 68 65 6e   ┆if program_name<>'rtp35022' then┆
0x06b600…06b620 (28, 1, 5)  20 28 2a 20 33 35 30 32 20 6f 72 20 7a 38 30 20 2a 29 0a 72 65 70 6c 61 63 65 28 27 72 74 70 33   ┆ (* 3502 or z80 *) replace('rtp3┆
0x06b620…06b640             35 31 33 2e 65 78 65 27 29 0a 65 6c 73 65 20 28 2a 20 33 35 30 32 20 6d 6f 64 65 6c 20 32 20 2a   ┆513.exe') else (* 3502 model 2 *┆
0x06b640…06b660             29 0a 72 65 70 6c 61 63 65 28 27 72 74 70 33 35 32 33 2e 65 78 65 27 29 3b 0a 0a 65 6e 64 3b 0a   ┆) replace('rtp3523.exe');  end; ┆
0x06b660…06b680             0a 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 28 20 27 2a 2a 2a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e   ┆ runtime_error( '*** compilation┆
0x06b680…06b6a0             20 74 65 72 6d 69 6e 61 74 65 64 20 61 66 74 65 72 20 70 61 73 73 31 20 27 29 3b 0a 0a 65 6e 64   ┆ terminated after pass1 ');  end┆
0x06b6a0…06b6c0             3b 0a 0a 62 65 67 69 6e 0a 0a 65 78 69 74 73 61 76 65 20 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a   ┆;  begin  exitsave := exitproc; ┆
0x06b6c0…06b6e0             65 78 69 74 70 72 6f 63 20 3a 3d 20 40 20 6d 79 65 78 69 74 3b 0a 0a 6e 65 77 28 69 6e 5f 62 75   ┆exitproc := @ myexit;  new(in_bu┆
0x06b6e0…06b700             66 5f 70 74 72 29 3b 0a 6e 65 77 28 73 70 69 78 5f 62 75 66 5f 70 74 72 29 3b 0a 0a 69 6e 69 74   ┆f_ptr); new(spix_buf_ptr);  init┆
0x06b700…06b720             69 61 6c 69 7a 65 3b 0a 0a 70 61 72 73 65 72 3b 0a 0a 65 6e 64 2e 0a 28 2a 24 46 2b 2a 29 70 72   ┆ialize;  parser;  end. (*$F+*)pr┆
0x06b720…06b740             6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29 0a 62 65 67 69 6e 0a 0a 65   ┆ocedure myexit; (*$F-*) begin  e┆
0x06b740…06b760             78 69 74 70 72 6f 63 20 3a 3d 20 65 78 69 74 73 61 76 65 3b 0a 0a 69 66 20 65 78 69 74 63 6f 64   ┆xitproc := exitsave;  if exitcod┆
0x06b760…06b780             65 20 3d 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 0a 74 65 72 6d 69 6e 61 74 65 28 65 72 72 6f   ┆e = 0 then begin  terminate(erro┆
0x06b780…06b7a0             72 63 6f 75 6e 74 3e 30 29 3b 0a 69 66 20 77 61 72 6e 69 6e 67 63 6f 75 6e 74 3e 30 20 74 68 65   ┆rcount>0); if warningcount>0 the┆
0x06b7a0…06b7c0             6e 20 28 2a 20 6e 6f 20 65 72 72 6f 72 73 20 62 75 74 20 77 61 72 6e 69 6e 67 73 20 2a 29 20 70   ┆n (* no errors but warnings *) p┆
0x06b7c0…06b7e0             72 69 6e 74 65 72 72 6f 72 73 3b 0a 69 66 20 63 61 6c 6c 5f 70 61 73 73 5f 33 20 74 68 65 6e 0a   ┆rinterrors; if call_pass_3 then ┆
0x06b7e0…06b800             69 66 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 3c 3e 27 72 74 70 33 35 30 32 32 27 20 74 68 65 6e   ┆if program_name<>'rtp35022' then┆
0x06b800…06b820 (28, 1, 6)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 72 74 70 2f 78 32 33 00 00 00 00 00 00 00 00 00 00 00   ┆../sw2103/src/rtp/x23           ┆
0x06b820…06b840             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x06b860…06b880             00 00 00 00 20 20 20 37 35 35 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       755     255     146      ┆
0x06b880…06b8a0             20 31 31 33 36 35 36 20 20 35 32 36 36 37 35 34 35 35 37 20 20 20 37 33 34 35 00 20 00 00 00 00   ┆ 113656  5266754557   7345      ┆
0x06b8a0…06b8c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x06ba00…06ba20 (28, 1, 7)  70 72 6f 67 72 61 6d 20 72 74 70 70 61 73 73 33 20 28 0a 69 6e 70 75 74 2c 20 20 28 2a 20 75 73   ┆program rtppass3 ( input,  (* us┆
0x06ba20…06ba40             65 64 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 70 61 73 73 33 65 72 72 6f 72 73 20 2a 29 0a 6f   ┆ed when reading pass3errors *) o┆
0x06ba40…06ba60             75 74 70 75 74 2c 20 28 2a 20 75 73 65 64 20 66 6f 72 20 74 65 73 74 6f 75 74 70 75 74 20 2a 29   ┆utput, (* used for testoutput *)┆
0x06ba60…06ba80             0a 70 61 73 73 31 66 69 6c 65 2c 20 28 2a 20 63 6f 6e 74 61 69 6e 73 20 70 61 73 73 31 2d 6f 75   ┆ pass1file, (* contains pass1-ou┆
0x06ba80…06baa0             74 70 75 74 20 2a 29 0a 70 61 73 73 31 6c 61 62 65 6c 73 20 2c 20 28 2a 20 63 6f 6e 74 61 69 6e   ┆tput *) pass1labels , (* contain┆
0x06baa0…06bac0             73 20 6c 61 62 65 6c 64 65 66 73 20 66 72 6f 6d 20 70 61 73 73 31 20 2a 29 0a 70 61 73 73 33 66   ┆s labeldefs from pass1 *) pass3f┆
0x06bac0…06bae0             69 6c 65 20 28 2a 20 63 6f 6e 74 61 69 6e 73 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 70 61 73 73   ┆ile (* contains output from pass┆
0x06bae0…06bb00             33 20 2a 29 0a 29 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆3 *) );  (*---------------------┆
0x06bb00…06bb20             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x06bb20…06bb40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 28 43 29 20 43 6f 70 79 72 69 67 74 68   ┆------------ -- -- (C) Copyrigth┆
0x06bb40…06bb60             20 31 39 39 32 20 20 44 41 4e 4f 53 49 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ 1992  DANOSI -- ---------------┆
0x06bb60…06bb80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x06bb80…06bba0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 09 52 65 76 69 73   ┆-------------------- -- -- Revis┆
0x06bba0…06bbc0             69 6f 6e 73 0a 2d 2d 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ions -- ------------------------┆
0x06bbc0…06bbe0             2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 20 20 20 20 20 20 20 39 32 2e 30 31 2e 32 32 20 20 45 42 4b   ┆-------- --        92.01.22  EBK┆
0x06bbe0…06bc00             20 20 20 55 73 65 64 20 69 6e 20 72 65 6c 65 61 73 65 20 31 2e 31 32 0a 2d 2d 20 20 31 2e 31 20   ┆   Used in release 1.12 --  1.1 ┆
0x06bc00…06bc20 (28, 1, 8)  20 20 39 32 2e 31 30 2e 31 34 20 20 48 45 4a 20 20 20 53 43 43 53 20 61 6e 64 20 55 4e 49 58 20   ┆  92.10.14  HEJ   SCCS and UNIX ┆
0x06bc20…06bc40             75 73 65 64 2e 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆used. -- -----------------------┆
0x06bc40…06bc60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x06bc60…06bc80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e   ┆------------ -- SCCS information┆
0x06bc80…06bca0             0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25   ┆ -- File   :  %P% -- Module :  %┆
0x06bca0…06bcc0             4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a 20   ┆M% -- Version:  %I% -- Date   : ┆
0x06bcc0…06bce0             20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ %E%  %U% ----------------------┆
0x06bce0…06bd00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x06bd00…06bd20             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 75 73 65 73 20 72 74 70 75 6e 69 74 2c 20   ┆------------- *)  uses rtpunit, ┆
0x06bd20…06bd40             64 6f 73 3b 0a 28 2a 24 4d 20 32 35 30 30 30 2c 30 2c 36 35 35 33 36 30 20 2a 29 0a 28 2a 24 52   ┆dos; (*$M 25000,0,655360 *) (*$R┆
0x06bd40…06bd60             2b 2a 29 0a 0a 76 61 72 20 65 78 69 74 73 61 76 65 3a 20 70 6f 69 6e 74 65 72 3b 0a 0a 28 2a 24   ┆+*)  var exitsave: pointer;  (*$┆
0x06bd60…06bd80             49 20 70 33 69 6e 69 74 2a 29 0a 28 2a 24 49 20 70 33 65 78 70 72 2a 29 0a 28 2a 24 49 20 70 33   ┆I p3init*) (*$I p3expr*) (*$I p3┆
0x06bd80…06bda0             70 72 6f 63 2a 29 0a 0a 0a 28 2a 24 46 2b 2a 29 70 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74   ┆proc*)   (*$F+*)procedure myexit┆
0x06bda0…06bdc0             3b 20 28 2a 24 46 2d 2a 29 0a 62 65 67 69 6e 0a 0a 65 78 69 74 70 72 6f 63 20 3a 3d 20 65 78 69   ┆; (*$F-*) begin  exitproc := exi┆
0x06bdc0…06bde0             74 73 61 76 65 3b 0a 0a 69 66 20 65 78 69 74 63 6f 64 65 20 3d 20 30 20 74 68 65 6e 0a 62 65 67   ┆tsave;  if exitcode = 0 then beg┆
0x06bde0…06be00             69 6e 0a 74 65 72 6d 69 6e 61 74 65 3b 0a 0a 69 66 20 63 61 6c 6c 5f 70 61 73 73 34 20 74 68 65   ┆in terminate;  if call_pass4 the┆
0x06be00…06be20 (28, 1, 9)  6e 0a 63 61 73 65 20 74 61 72 67 65 74 5f 6d 61 63 68 69 6e 65 20 6f 66 0a 74 61 72 67 65 74 7a   ┆n case target_machine of targetz┆
0x06be20…06be40             38 30 3a 20 72 65 70 6c 61 63 65 28 27 70 61 73 73 34 7a 38 30 2e 65 78 65 27 29 3b 0a 74 61 72   ┆80: replace('pass4z80.exe'); tar┆
0x06be40…06be60             67 65 74 33 35 30 32 31 3a 20 72 65 70 6c 61 63 65 28 27 72 74 70 33 35 31 34 2e 65 78 65 27 29   ┆get35021: replace('rtp3514.exe')┆
0x06be60…06be80             3b 0a 74 61 72 67 65 74 33 35 30 32 32 3a 20 72 65 70 6c 61 63 65 28 27 72 74 70 33 35 32 34 2e   ┆; target35022: replace('rtp3524.┆
0x06be80…06bea0             65 78 65 27 29 3b 0a 65 6c 73 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 72 75 6e 74 69 6d 65   ┆exe'); else; end;  end;  runtime┆
0x06bea0…06bec0             5f 65 72 72 6f 72 28 27 2a 2a 2a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 74 65 72 6d 69 6e 61 74   ┆_error('*** compilation terminat┆
0x06bec0…06bee0             65 64 20 61 66 74 65 72 20 70 61 73 73 33 20 27 29 3b 0a 0a 65 6e 64 3b 0a 0a 62 65 67 69 6e 0a   ┆ed after pass3 ');  end;  begin ┆
0x06bee0…06bf00             0a 65 78 69 74 73 61 76 65 20 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a 65 78 69 74 70 72 6f 63 20   ┆ exitsave := exitproc; exitproc ┆
0x06bf00…06bf20             3a 3d 20 40 6d 79 65 78 69 74 3b 0a 0a 0a 69 6e 69 74 69 61 6c 69 7a 65 3b 0a 0a 65 6e 64 70 61   ┆:= @myexit;   initialize;  endpa┆
0x06bf20…06bf40             73 73 31 3a 3d 20 66 61 6c 73 65 3b 0a 0a 28 2a 20 74 68 65 20 6d 61 69 6e 6c 6f 6f 70 20 72 65   ┆ss1:= false;  (* the mainloop re┆
0x06bf40…06bf60             61 64 73 20 74 68 65 20 6e 65 78 74 20 72 65 63 6f 72 64 2d 6b 65 79 77 6f 72 64 20 2a 29 0a 0a   ┆ads the next record-keyword *)  ┆
0x06bf60…06bf80             72 65 70 65 61 74 20 28 2a 20 75 6e 74 69 6c 20 65 6e 64 70 61 73 73 31 2c 20 69 2e 65 2e 20 65   ┆repeat (* until endpass1, i.e. e┆
0x06bf80…06bfa0             6f 6d 2d 72 65 63 6f 72 64 20 66 72 6f 6d 20 70 61 73 73 31 20 2a 29 0a 0a 69 66 20 74 65 73 74   ┆om-record from pass1 *)  if test┆
0x06bfa0…06bfc0             69 6e 67 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 0a 72 65 63 74 79   ┆ing then writeln(output);  recty┆
0x06bfc0…06bfe0             70 65 3a 3d 20 70 61 73 73 77 6f 72 64 3b 0a 0a 28 2a 20 73 77 69 74 63 68 20 6f 75 74 2c 20 64   ┆pe:= password;  (* switch out, d┆
0x06bfe0…06c000             65 70 65 6e 64 69 6e 67 20 6f 6e 20 72 65 63 74 79 70 65 20 2a 29 0a 0a 63 61 73 65 20 72 65 63   ┆epending on rectype *)  case rec┆
0x06c000…06c020 (28, 1, 10) 74 79 70 65 20 6f 66 0a 0a 63 6e 65 77 6c 69 6e 65 3a 0a 62 65 67 69 6e 0a 6c 69 6e 65 6e 6f 3a   ┆type of  cnewline: begin lineno:┆
0x06c020…06c040             3d 20 70 61 73 73 69 6e 3b 0a 69 66 20 6c 69 6e 65 6e 6f 20 3c 3e 20 63 75 72 5f 6c 69 6e 65 6e   ┆= passin; if lineno <> cur_linen┆
0x06c040…06c060             6f 20 74 68 65 6e 0a 62 65 67 69 6e 0a 63 75 72 5f 6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f   ┆o then begin cur_lineno:= lineno┆
0x06c060…06c080             3b 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 30 3b 20 20 28 2a 20 6c 65 74 20 6f 70 61 6e 64   ┆; cur_opandno:= 0;  (* let opand┆
0x06c080…06c0a0             73 20 62 65 20 63 6f 75 6e 74 65 64 20 66 72 6f 6d 20 7a 65 72 6f 20 2a 29 0a 65 6d 69 74 20 28   ┆s be counted from zero *) emit (┆
0x06c0a0…06c0c0             78 6e 65 77 6c 69 6e 65 29 3b 0a 65 6d 69 74 69 6e 20 28 63 75 72 5f 6c 69 6e 65 6e 6f 29 3b 0a   ┆xnewline); emitin (cur_lineno); ┆
0x06c0c0…06c0e0             65 6d 69 74 5f 6c 69 6e 65 6e 6f 3a 3d 20 63 75 72 5f 6c 69 6e 65 6e 6f 3b 0a 65 6e 64 3b 0a 65   ┆emit_lineno:= cur_lineno; end; e┆
0x06c0e0…06c100             6e 64 3b 0a 0a 63 6f 70 74 69 6f 6e 3a 0a 72 65 61 64 6f 70 74 69 6f 6e 3b 0a 0a 0c 0a 63 73 74   ┆nd;  coption: readoption;    cst┆
0x06c100…06c120             61 6e 64 61 72 64 6e 61 6d 65 3a 0a 73 74 61 6e 64 61 72 64 6e 61 6d 65 3b 20 28 2a 20 6d 65 72   ┆andardname: standardname; (* mer┆
0x06c120…06c140             65 6c 79 20 74 6f 20 73 6b 69 70 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 2e 2e 2e 20 2a 29   ┆ely to skip the parameters... *)┆
0x06c140…06c160             0a 0a 63 65 6e 64 70 72 65 66 69 78 3a 20 0a 72 65 6c 65 61 73 65 6e 61 6d 65 73 28 6e 61 6d 65   ┆  cendprefix:  releasenames(name┆
0x06c160…06c180             6c 65 76 65 6c 20 5e 2e 20 66 69 72 73 74 6e 61 6d 65 29 3b 0a 0a 0a 63 69 6e 63 6c 75 64 65 2c   ┆level ^. firstname);   cinclude,┆
0x06c180…06c1a0             0a 63 63 6f 6e 74 65 78 74 3a 0a 62 65 67 69 6e 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63   ┆ ccontext: begin cur_opandno:= c┆
0x06c1a0…06c1c0             75 72 5f 6f 70 61 6e 64 6e 6f 20 2b 20 31 3b 0a 65 6e 76 69 72 5f 73 70 69 78 3a 3d 20 70 61 73   ┆ur_opandno + 1; envir_spix:= pas┆
0x06c1c0…06c1e0             73 69 6e 3b 20 20 28 2a 20 73 6b 69 70 20 74 68 65 20 73 70 69 78 20 2a 29 0a 63 75 72 5f 63 6f   ┆sin;  (* skip the spix *) cur_co┆
0x06c1e0…06c200             6e 74 65 78 74 5f 6e 6f 3a 3d 20 63 75 72 5f 63 6f 6e 74 65 78 74 5f 6e 6f 20 2b 20 31 3b 0a 65   ┆ntext_no:= cur_context_no + 1; e┆
0x06c200…06c220 (28, 1, 11) 6e 64 3b 0a 0a 63 65 72 72 63 6f 6e 74 65 78 74 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a   ┆nd;  cerrcontext: ; (* blind *) ┆
0x06c220…06c240             0a 63 65 6e 64 63 6f 6e 74 65 78 74 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 63 65 6e   ┆ cendcontext: ; (* blind *)  cen┆
0x06c240…06c260             64 69 6e 63 6c 75 64 65 3a 0a 62 65 67 69 6e 0a 6c 61 73 74 67 6c 6f 62 61 6c 6c 65 76 65 6c 3a   ┆dinclude: begin lastgloballevel:┆
0x06c260…06c280             3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6d 69 74 20 28 78 65 6e 64 70 72 65 6c 75 64 65 29 3b   ┆= namelevel; emit (xendprelude);┆
0x06c280…06c2a0             0a 63 75 72 5f 63 6f 6e 74 65 78 74 5f 6e 6f 3a 3d 20 2d 31 3b 20 28 2a 20 65 6e 64 20 6f 66 20   ┆ cur_context_no:= -1; (* end of ┆
0x06c2a0…06c2c0             63 6f 6e 74 65 78 74 73 2c 20 69 2e 65 2e 20 63 68 61 6e 67 65 20 66 6f 72 6d 61 74 20 6f 66 20   ┆contexts, i.e. change format of ┆
0x06c2c0…06c2e0             65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 2a 29 0a 65 6e 64 3b 0a 0a 63 62 65 67 69 6e 6c 65   ┆error messages *) end;  cbeginle┆
0x06c2e0…06c300             76 65 6c 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 6e 61 6d 65 6c   ┆vel: begin (* increase the namel┆
0x06c300…06c320             65 76 65 6c 2c 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 6e 65 77 20 6e 61 6d 65 6c   ┆evel, and initialize a new namel┆
0x06c320…06c340             69 73 74 20 2a 29 0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 61 6d 65 6c   ┆ist *) cur_dyn_var_level:= namel┆
0x06c340…06c360             65 76 65 6c 3b 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 63 65 6e 64 6c 65   ┆evel; newnamelevel; end;  cendle┆
0x06c360…06c380             76 65 6c 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 66 20 61 6e 79 20 67 6c 6f 62 61 6c 20 6e 61 6d 65   ┆vel: begin (* if any global name┆
0x06c380…06c3a0             73 20 68 61 76 65 20 62 65 65 6e 20 75 73 65 64 20 61 74 20 74 68 69 73 20 6c 65 76 65 6c 2c 20   ┆s have been used at this level, ┆
0x06c3a0…06c3c0             2a 29 0a 28 2a 20 20 20 74 68 65 6e 20 70 72 65 74 65 6e 64 20 74 68 61 74 20 74 68 65 79 20 77   ┆*) (*   then pretend that they w┆
0x06c3c0…06c3e0             65 72 65 20 75 73 65 64 20 61 74 20 74 68 65 20 6e 65 78 74 2c 20 6f 75 74 65 72 2c 20 6c 65 76   ┆ere used at the next, outer, lev┆
0x06c3e0…06c400             65 6c 20 2a 29 0a 65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b 0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f   ┆el *) endnamelevel; cur_dyn_var_┆
0x06c400…06c420 (28, 1, 12) 6c 65 76 65 6c 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 0c 0a 63 64 65 63 6c   ┆level:= namelevel; end;    cdecl┆
0x06c420…06c440             61 72 61 74 69 6f 6e 3a 0a 62 65 67 69 6e 0a 69 66 20 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63   ┆aration: begin if expecting_bloc┆
0x06c440…06c460             6b 20 74 68 65 6e 0a 62 65 67 69 6e 5f 62 6c 6f 63 6b 3b 0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64   ┆k then begin_block; cur_namekind┆
0x06c460…06c480             3a 3d 20 70 61 73 73 77 6f 72 64 3b 0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 27 70 72 6f 63   ┆:= password;  (* test that 'proc┆
0x06c480…06c4a0             65 73 73 27 20 6f 6e 6c 79 20 6f 63 63 75 72 73 20 61 74 20 70 72 6f 63 65 73 73 2d 6c 65 76 65   ┆ess' only occurs at process-leve┆
0x06c4a0…06c4c0             6c 20 2a 29 0a 28 2a 20 2e 2e 2e 20 65 6c 73 65 20 62 68 61 6e 67 65 20 69 74 20 74 6f 3a 20 27   ┆l *) (* ... else bhange it to: '┆
0x06c4c0…06c4e0             70 72 6f 63 65 64 75 72 65 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29 0a 0a 69 66 20   ┆procedure'               *)  if ┆
0x06c4e0…06c500             63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 70 72 6f 63 65 73 73 20 74 68 65 6e 0a 69 66 20   ┆cur_namekind = cprocess then if ┆
0x06c500…06c520             63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 3c 3e 20 70 72 6f 63 65 73 73 5f 62 6c 6f 63 6b 20 74 68 65   ┆cur_blockno <> process_block the┆
0x06c520…06c540             6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 70 72 6f 63 65 73 73 5f 6f 6e 6c 79 5f 61 6c 6c 6f   ┆n begin error (process_only_allo┆
0x06c540…06c560             77 65 64 5f 61 74 5f 70 72 6f 63 65 73 73 6c 65 76 65 6c 29 3b 0a 63 75 72 5f 6e 61 6d 65 6b 69   ┆wed_at_processlevel); cur_nameki┆
0x06c560…06c580             6e 64 3a 3d 20 63 70 72 6f 63 65 64 75 72 65 3b 0a 65 6e 64 3b 0a 0a 69 66 20 63 6f 6d 70 69 6c   ┆nd:= cprocedure; end;  if compil┆
0x06c580…06c5a0             65 72 74 65 73 74 20 74 68 65 6e 0a 28 2a 20 74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20   ┆ertest then (* test legality of ┆
0x06c5a0…06c5c0             6e 61 6d 65 6b 69 6e 64 20 2a 29 0a 63 61 73 65 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 6f 66   ┆namekind *) case cur_namekind of┆
0x06c5c0…06c5e0             0a 63 70 72 6f 63 65 73 73 2c 20 63 70 72 6f 63 65 64 75 72 65 2c 20 63 66 75 6e 63 74 69 6f 6e   ┆ cprocess, cprocedure, cfunction┆
0x06c5e0…06c600             2c 20 63 74 79 70 65 2c 0a 63 73 63 61 6c 61 72 65 6c 65 6d 2c 20 63 72 65 63 66 69 65 6c 64 2c   ┆, ctype, cscalarelem, crecfield,┆
0x06c600…06c620 (28, 1, 13) 20 63 63 6f 6e 73 74 61 6e 74 2c 20 63 76 61 72 2c 0a 63 76 61 72 70 2c 20 63 76 61 6c 75 65 70   ┆ cconstant, cvar, cvarp, cvaluep┆
0x06c620…06c640             2c 0a 63 6c 61 62 65 6c 2c 0a 63 70 72 65 66 69 78 3a 20 3b 20 28 2a 20 6f 6b 20 2a 29 0a 65 6c   ┆, clabel, cprefix: ; (* ok *) el┆
0x06c640…06c660             73 65 0a 63 6f 6d 70 5f 65 72 72 6f 72 20 28 75 6e 6b 6e 6f 77 6e 5f 6e 61 6d 65 6b 69 6e 64 29   ┆se comp_error (unknown_namekind)┆
0x06c660…06c680             3b 0a 65 6e 64 3b 0a 0a 28 2a 20 63 65 72 74 61 69 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20   ┆; end;  (* certain declarations ┆
0x06c680…06c6a0             61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 6c 69 74 65 72 61 6c 20 77 69 74 68 20 74   ┆are followed by a literal with t┆
0x06c6a0…06c6c0             68 65 20 65 78 74 65 72 6e 61 6c 20 6e 61 6d 65 20 2a 29 0a 28 2a 20 61 64 6a 75 73 74 20 74 68   ┆he external name *) (* adjust th┆
0x06c6c0…06c6e0             65 20 6f 70 61 6e 64 2d 6e 75 6d 62 65 72 20 69 6e 20 61 64 76 61 6e 63 65 2e 2e 2e 20 2a 29 0a   ┆e opand-number in advance... *) ┆
0x06c6e0…06c700             63 61 73 65 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 6f 66 0a 63 76 61 72 3a 20 76 61 72 5f 69   ┆case cur_namekind of cvar: var_i┆
0x06c700…06c720             6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 3a 3d 20 66 61 6c 73 65 3b 0a 63 70 72 6f 63 65 73 73   ┆nitialization := false; cprocess┆
0x06c720…06c740             2c 0a 63 70 72 6f 63 65 64 75 72 65 2c 0a 63 66 75 6e 63 74 69 6f 6e 2c 0a 63 70 72 65 66 69 78   ┆, cprocedure, cfunction, cprefix┆
0x06c740…06c760             3a 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f 20 2d 20 31 3b   ┆: cur_opandno:= cur_opandno - 1;┆
0x06c760…06c780             0a 65 6c 73 65 20 28 2a 20 64 6f 6e 27 74 20 63 61 72 65 20 2a 29 3b 0a 65 6e 64 3b 0a 0a 28 2a   ┆ else (* don't care *); end;  (*┆
0x06c780…06c7a0             20 70 72 65 70 61 72 65 20 65 6e 64 6c 69 73 74 2d 61 63 74 69 6f 6e 73 2c 20 62 79 20 69 6e 69   ┆ prepare endlist-actions, by ini┆
0x06c7a0…06c7c0             74 69 61 6c 69 7a 69 6e 67 20 6c 69 73 74 2d 70 6f 69 6e 74 65 72 73 20 2a 29 0a 6c 69 73 74 66   ┆tializing list-pointers *) listf┆
0x06c7c0…06c7e0             69 72 73 74 3a 3d 20 6e 69 6c 6e 61 6d 65 3b 0a 6c 69 73 74 6c 61 73 74 20 3a 3d 20 6e 69 6c 6e   ┆irst:= nilname; listlast := niln┆
0x06c7e0…06c800             61 6d 65 3b 0a 0a 65 6e 64 3b 0a 0a 63 64 65 63 6c 61 72 65 2c 0a 63 64 65 63 6c 61 72 65 6c 69   ┆ame;  end;  cdeclare, cdeclareli┆
0x06c800…06c820 (28, 1, 14) 73 74 3a 0a 62 65 67 69 6e 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e   ┆st: begin cur_opandno:= cur_opan┆
0x06c820…06c840             64 6e 6f 20 2b 20 31 3b 0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 20 70 61 73   ┆dno + 1; curname:= newname ( pas┆
0x06c840…06c860             73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20 2a 29 20 29 3b 0a 0a 28 2a 20 69 6e 73 65 72 74 20 74   ┆sin (* = spix *) );  (* insert t┆
0x06c860…06c880             68 65 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 6c 69 73 74 20 2a 29 0a 69 66 20 6c 69 73 74 66 69   ┆he name in the list *) if listfi┆
0x06c880…06c8a0             72 73 74 20 3d 20 6e 69 6c 6e 61 6d 65 20 74 68 65 6e 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 63   ┆rst = nilname then listfirst:= c┆
0x06c8a0…06c8c0             75 72 6e 61 6d 65 3b 0a 6c 69 73 74 6c 61 73 74 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 0a 63 61 73   ┆urname; listlast:= curname;  cas┆
0x06c8c0…06c8e0             65 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 6f 66 0a 63 70 72 6f 63 65 73 73 2c 0a 63 70 72 6f   ┆e cur_namekind of cprocess, cpro┆
0x06c8e0…06c900             63 65 64 75 72 65 2c 0a 63 66 75 6e 63 74 69 6f 6e 3a 0a 62 65 67 69 6e 0a 28 2a 20 74 68 65 20   ┆cedure, cfunction: begin (* the ┆
0x06c900…06c920             6e 61 6d 65 20 77 69 6c 6c 20 62 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 66 6f 72 6d 61   ┆name will be followed by a forma┆
0x06c920…06c940             6c 20 6c 69 73 74 20 2a 29 0a 28 2a 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 72 6f 75 74 69 6e   ┆l list *) (* remember the routin┆
0x06c940…06c960             65 20 6e 61 6d 65 20 2a 29 0a 63 75 72 5f 72 6f 75 74 69 6e 65 3a 3d 20 63 75 72 6e 61 6d 65 3b   ┆e name *) cur_routine:= curname;┆
0x06c960…06c980             0a 28 2a 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 72 6f 75 74 69 6e 65 20 77 61 73 20   ┆ (* the name of the routine was ┆
0x06c980…06c9a0             70 72 65 63 65 64 65 64 20 62 79 20 61 20 6c 69 74 65 72 61 6c 20 6e 61 6d 65 20 2a 29 0a 28 2a   ┆preceded by a literal name *) (*┆
0x06c9a0…06c9c0             20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 20 6f 70 61 6e 64 20 68 6f 6c 64 69 6e 67 20 74 68 69   ┆ remember the  opand holding thi┆
0x06c9c0…06c9e0             73 20 6e 61 6d 65 20 2a 29 0a 6f 70 61 6e 64 5f 70 72 6f 63 6e 61 6d 65 3a 3d 20 74 61 6b 65 5f   ┆s name *) opand_procname:= take_┆
0x06c9e0…06ca00             73 74 61 63 6b 74 6f 70 3b 0a 0a 28 2a 20 70 72 65 70 61 72 65 20 66 6f 72 20 27 62 65 67 69 6e   ┆stacktop;  (* prepare for 'begin┆
0x06ca00…06ca20 (28, 1, 15) 6c 65 76 65 6c 27 3a 20 70 72 6f 63 65 73 73 2d 6c 65 76 65 6c 20 69 73 20 73 70 65 63 69 61 6c   ┆level': process-level is special┆
0x06ca20…06ca40             20 2a 29 0a 69 66 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 70 72 6f 63 65 73 73 20 74   ┆ *) if cur_namekind = cprocess t┆
0x06ca40…06ca60             68 65 6e 0a 62 65 67 69 6e 0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 76 61 72 3b 20 20   ┆hen begin cur_namekind:= cvar;  ┆
0x06ca60…06ca80             28 2a 20 73 65 74 20 75 70 20 66 6f 72 20 76 61 72 69 61 62 6c 65 20 2a 29 0a 63 75 72 6e 61 6d   ┆(* set up for variable *) curnam┆
0x06ca80…06caa0             65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 29 3b 20 28 2a   ┆e:= newname (anonymous_spix); (*┆
0x06caa0…06cac0             20 75 73 65 64 20 66 6f 72 20 27 73 6f 6e 2d 76 61 72 69 61 62 6c 65 20 2a 29 0a 77 69 74 68 20   ┆ used for 'son-variable *) with ┆
0x06cac0…06cae0             20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 73 6f 6e 5f 74 79 70   ┆ curname ^ do typename:= son_typ┆
0x06cae0…06cb00             65 6e 61 6d 65 3b 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 70 72 6f 63 65 73 73 6c 65 76 65 6c 3b   ┆ename; levelkind:= processlevel;┆
0x06cb00…06cb20             0a 65 6e 64 0a 65 6c 73 65 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 69 72 72 65 6c 6c 5f 6c 65 76   ┆ end else levelkind:= irrell_lev┆
0x06cb20…06cb40             65 6c 3b 0a 0a 65 6e 64 3b 0a 0a 63 70 72 65 66 69 78 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20 28   ┆el;  end;  cprefix: begin emit (┆
0x06cb40…06cb60             78 70 72 65 66 69 78 29 3b 0a 65 6d 69 74 5f 65 78 74 6e 61 6d 65 20 28 74 61 6b 65 5f 73 74 61   ┆xprefix); emit_extname (take_sta┆
0x06cb60…06cb80             63 6b 74 6f 70 29 3b 0a 65 6e 64 3b 0a 0a 63 63 6f 6e 73 74 61 6e 74 3a 20 73 65 74 5f 65 72 72   ┆cktop); end;  cconstant: set_err┆
0x06cb80…06cba0             6f 72 5f 74 79 70 65 3b 20 28 2a 20 69 6e 20 63 61 73 65 20 6f 66 20 6d 69 73 73 69 6e 67 20 74   ┆or_type; (* in case of missing t┆
0x06cba0…06cbc0             79 70 65 6e 61 6d 65 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 73 74 72 75 63 74 75 72 65 64 20 63   ┆ypename in front of structured c┆
0x06cbc0…06cbe0             6f 6e 73 74 20 2a 29 0a 0a 63 6c 61 62 65 6c 3a 0a 65 6d 69 74 69 64 20 28 78 6c 61 62 65 6c 69   ┆onst *)  clabel: emitid (xlabeli┆
0x06cbe0…06cc00             64 2c 20 63 75 72 6e 61 6d 65 29 3b 0a 0a 65 6c 73 65 3b 20 28 2a 20 6e 6f 74 68 69 6e 67 20 2a   ┆d, curname);  else; (* nothing *┆
0x06cc00…06cc20 (29, 0, 1)  29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 63 65 6e 64 65 78 74 70 72 6f 63 65 73 73 3a 0a 62 65   ┆) end;  end;  cendextprocess: be┆
0x06cc20…06cc40             67 69 6e 0a 77 69 74 68 20 63 75 72 5f 72 6f 75 74 69 6e 65 5e 20 64 6f 0a 62 65 67 69 6e 0a 77   ┆gin with cur_routine^ do begin w┆
0x06cc40…06cc60             69 74 68 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 70 61 72 61 6d 73 20 28 2a 20 6f 66 20 65   ┆ith namelevel^ do params (* of e┆
0x06cc60…06cc80             78 74 65 72 6e 61 6c 20 70 72 6f 63 65 73 73 20 2a 29 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 20   ┆xternal process *):= firstname; ┆
0x06cc80…06cca0             28 2a 20 6f 66 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 0a 65 6d 69 74 69 64 28 78 65 78 74 70   ┆(* of namelevel *)  emitid(xextp┆
0x06cca0…06ccc0             72 6f 63 65 73 73 2c 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 28 2a 20 6d 61 79 20 62 65 20 61 6e   ┆rocess, cur_routine (* may be an┆
0x06ccc0…06cce0             6f 6e 79 6d 6f 75 73 20 2a 29 29 3b 0a 65 6d 69 74 69 6e 28 73 6f 6e 5f 74 79 70 65 6e 61 6d 65   ┆onymous *)); emitin(son_typename┆
0x06cce0…06cd00             5e 2e 6e 69 78 20 28 2a 20 74 68 65 20 74 79 70 65 20 2a 29 29 3b 0a 0a 65 6d 69 74 66 6f 72 6d   ┆^.nix (* the type *));  emitform┆
0x06cd00…06cd20             61 6c 28 70 61 72 61 6d 73 29 3b 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75 72 20 72 6f 75   ┆al(params); end; (* with cur rou┆
0x06cd20…06cd40             74 69 6e 65 20 2a 29 0a 0a 65 6d 69 74 69 64 28 78 65 78 74 70 72 6f 63 64 65 66 2c 20 63 75 72   ┆tine *)  emitid(xextprocdef, cur┆
0x06cd40…06cd60             5f 72 6f 75 74 69 6e 65 29 3b 0a 0a 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 3a 3d 20 66 61   ┆_routine);  expecting_block:= fa┆
0x06cd60…06cd80             6c 73 65 3b 0a 65 6e 64 3b 20 28 2a 20 65 6e 64 65 78 74 70 72 6f 63 65 73 73 20 2a 29 0a 0a 0c   ┆lse; end; (* endextprocess *)   ┆
0x06cd80…06cda0             0a 63 65 78 74 65 72 6e 61 6c 2c 0a 63 66 6f 72 77 61 72 64 3a 0a 62 65 67 69 6e 0a 0a 0a 77 69   ┆ cexternal, cforward: begin   wi┆
0x06cda0…06cdc0             74 68 20 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 66 6f   ┆th  cur_routine ^ do begin if fo┆
0x06cdc0…06cde0             72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a   ┆rward_decl then begin errorspix:┆
0x06cde0…06ce00             3d 20 73 70 69 78 3b 20 28 2a 20 6f 66 20 63 75 72 20 72 6f 75 74 69 6e 65 20 2a 29 0a 65 72 72   ┆= spix; (* of cur routine *) err┆
0x06ce00…06ce20 (29, 0, 2)  6f 72 20 28 64 6f 75 62 6c 65 5f 64 65 63 6c 61 72 61 74 69 6f 6e 29 20 28 2a 20 69 2e 65 2e 20   ┆or (double_declaration) (* i.e. ┆
0x06ce20…06ce40             69 74 20 77 61 73 20 61 6c 72 65 61 64 79 20 66 6f 72 77 61 72 64 20 64 65 63 6c 61 72 65 64 20   ┆it was already forward declared ┆
0x06ce40…06ce60             2a 29 0a 65 6e 64 0a 65 6c 73 65 0a 0a 28 2a 20 73 65 74 20 74 68 65 20 70 72 6f 70 65 72 20 66   ┆*) end else  (* set the proper f┆
0x06ce60…06ce80             6c 61 67 20 61 6e 64 20 65 6d 69 74 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 72   ┆lag and emit the corresponding r┆
0x06ce80…06cea0             65 63 6f 72 64 20 2a 29 0a 63 61 73 65 20 72 65 63 74 79 70 65 20 6f 66 0a 0a 63 65 78 74 65 72   ┆ecord *) case rectype of  cexter┆
0x06cea0…06cec0             6e 61 6c 3a 0a 62 65 67 69 6e 0a 65 78 74 65 72 6e 61 6c 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b   ┆nal: begin external_decl:= true;┆
0x06cec0…06cee0             0a 65 6d 69 74 20 28 78 65 78 74 65 72 6e 61 6c 29 3b 0a 65 6e 64 3b 0a 0a 63 66 6f 72 77 61 72   ┆ emit (xexternal); end;  cforwar┆
0x06cee0…06cf00             64 3a 0a 62 65 67 69 6e 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 70 72 6f 63 65 73 73 20   ┆d: begin if namekind = cprocess ┆
0x06cf00…06cf20             74 68 65 6e 0a 65 72 72 6f 72 28 66 6f 72 77 61 72 64 5f 70 72 6f 63 65 73 73 5f 6e 6f 74 5f 61   ┆then error(forward_process_not_a┆
0x06cf20…06cf40             6c 6c 6f 77 65 64 29 3b 0a 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b 0a 65 6d   ┆llowed); forward_decl:= true; em┆
0x06cf40…06cf60             69 74 20 28 78 66 6f 72 77 61 72 64 29 3b 0a 65 6e 64 3b 0a 0a 65 6c 73 65 3b 20 28 2a 20 63 61   ┆it (xforward); end;  else; (* ca┆
0x06cf60…06cf80             73 65 20 72 65 63 74 79 70 65 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68   ┆se rectype *) end;  end; (* with┆
0x06cf80…06cfa0             20 6e 61 6d 65 73 20 2a 29 0a 0a 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 3a 3d 20 66 61 6c   ┆ names *)  expecting_block:= fal┆
0x06cfa0…06cfc0             73 65 3b 20 28 2a 20 66 6c 61 67 20 74 6f 20 6f 6d 69 74 20 27 62 6c 6f 63 6b 6e 6f 27 20 2a 29   ┆se; (* flag to omit 'blockno' *)┆
0x06cfc0…06cfe0             0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 66 6f 72 6d 61 6c 6c 69 73 74 3a 0a 0a 62 65 67 69 6e   ┆  end;    cendformallist:  begin┆
0x06cfe0…06d000             0a 0a 28 2a 20 27 63 75 72 5f 72 6f 75 74 69 6e 65 27 20 20 69 73 20 74 68 65 20 6e 61 6d 65 20   ┆  (* 'cur_routine'  is the name ┆
0x06d000…06d020 (29, 0, 3)  6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 2f 70 72 6f 63 65 64 75 72 65 2f 66 75 6e 63 74 69 6f   ┆of the process/procedure/functio┆
0x06d020…06d040             6e 20 2a 29 0a 28 2a 20 27 63 75 72 5f 74 79 70 65 6e 61 6d 65 27 20 69 73 20 74 68 65 20 6e 61   ┆n *) (* 'cur_typename' is the na┆
0x06d040…06d060             6d 65 20 6f 66 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 20 2a 29 0a 28 2a 20 27 63 75 72   ┆me of the common type *) (* 'cur┆
0x06d060…06d080             5f 74 79 70 65 6e 6f 64 65 27 20 69 73 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20   ┆_typenode' is the corresponding ┆
0x06d080…06d0a0             74 79 70 65 6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 27 6c 69 73 74 66 69 72 73 74 27 20 61 6e 64 20   ┆typenode *)  (* 'listfirst' and ┆
0x06d0a0…06d0c0             27 6c 69 73 74 6c 61 73 74 27 20 6f 75 74 70 6f 69 6e 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20   ┆'listlast' outpoint the list of ┆
0x06d0c0…06d0e0             66 6f 72 6d 61 6c 20 70 61 72 61 6d 73 20 2a 29 0a 0a 70 61 72 61 6d 6b 69 6e 64 3a 3d 20 20 6c   ┆formal params *)  paramkind:=  l┆
0x06d0e0…06d100             69 73 74 66 69 72 73 74 20 5e 20 2e 20 6e 61 6d 65 6b 69 6e 64 3b 0a 28 2a 20 6d 61 79 20 62 65   ┆istfirst ^ . namekind; (* may be┆
0x06d100…06d120             20 76 61 6c 75 65 2f 76 61 72 20 70 61 72 61 6d 20 2a 29 0a 0a 28 2a 20 63 68 65 63 6b 20 70 61   ┆ value/var param *)  (* check pa┆
0x06d120…06d140             72 61 6d 6b 69 6e 64 20 76 65 72 73 75 73 20 72 6f 75 74 69 6e 65 6b 69 6e 64 20 74 6f 20 74 65   ┆ramkind versus routinekind to te┆
0x06d140…06d160             73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20 70 61 72 61 6d 65 74 65 72 2d 74 79 70 65 20 2a 29   ┆st legality of parameter-type *)┆
0x06d160…06d180             0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 77 69 74 68 20 20 63   ┆ with  cur_typenode ^ do with  c┆
0x06d180…06d1a0             75 72 5f 72 6f 75 74 69 6e 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 0a 6e 6f 74 5f 61 6c 6c 6f 77   ┆ur_routine ^ do begin  not_allow┆
0x06d1a0…06d1c0             65 64 3a 3d 20 5b 5d 3b 0a 0a 63 61 73 65 20 6e 61 6d 65 6b 69 6e 64 20 28 2a 20 6f 66 20 72 6f   ┆ed:= [];  case namekind (* of ro┆
0x06d1c0…06d1e0             75 74 69 6e 65 20 2a 29 20 6f 66 0a 0a 63 74 79 70 65 3a 20 3b 20 28 2a 20 6e 6f 74 20 69 6d 70   ┆utine *) of  ctype: ; (* not imp┆
0x06d1e0…06d200             6c 65 6d 65 6e 74 65 64 20 2a 29 0a 0a 63 66 75 6e 63 74 69 6f 6e 2c 0a 63 70 72 6f 63 65 64 75   ┆lemented *)  cfunction, cprocedu┆
0x06d200…06d220 (29, 0, 4)  72 65 3a 0a 28 2a 20 73 65 6d 61 70 68 6f 72 65 2c 20 72 65 66 65 72 65 6e 63 65 2c 20 65 78 74   ┆re: (* semaphore, reference, ext┆
0x06d220…06d240             20 70 72 6f 63 65 73 73 2c 20 73 68 61 64 6f 77 2c 20 70 6f 6f 6c 20 6e 6f 74 20 61 6c 6c 6f 77   ┆ process, shadow, pool not allow┆
0x06d240…06d260             65 64 20 61 73 20 76 61 6c 75 65 20 70 61 72 61 6d 20 2a 29 0a 69 66 20 70 61 72 61 6d 6b 69 6e   ┆ed as value param *) if paramkin┆
0x06d260…06d280             64 20 3d 20 63 76 61 6c 75 65 70 20 74 68 65 6e 0a 6e 6f 74 5f 61 6c 6c 6f 77 65 64 3a 3d 20 5b   ┆d = cvaluep then not_allowed:= [┆
0x06d280…06d2a0             20 74 5f 73 65 6d 61 70 68 6f 72 65 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74   ┆ t_semaphore, t_reference, t_ext┆
0x06d2a0…06d2c0             70 72 6f 63 65 73 73 2c 20 74 5f 73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 20 5d 3b 0a 0a 63 65   ┆process, t_shadow, t_pool ];  ce┆
0x06d2c0…06d2e0             78 74 70 72 6f 63 65 73 73 2c 0a 63 70 72 6f 63 65 73 73 3a 0a 28 2a 20 72 65 66 65 72 65 6e 63   ┆xtprocess, cprocess: (* referenc┆
0x06d2e0…06d300             65 2c 20 73 68 61 64 6f 77 2c 20 65 78 74 20 70 72 6f 63 65 73 73 2c 20 70 6f 6f 6c 20 6e 6f 74   ┆e, shadow, ext process, pool not┆
0x06d300…06d320             20 61 6c 6c 6f 77 65 64 20 61 74 20 61 6c 6c 20 2a 29 0a 28 2a 20 73 65 6d 61 70 68 6f 72 65 20   ┆ allowed at all *) (* semaphore ┆
0x06d320…06d340             6e 6f 74 20 61 6c 6c 6f 77 65 64 20 61 73 20 76 61 6c 75 65 20 70 61 72 61 6d 20 2a 29 0a 28 2a   ┆not allowed as value param *) (*┆
0x06d340…06d360             20 70 6f 69 6e 74 65 72 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 6d 6f 64 69 66 69 65 64 20 62 79   ┆ pointers may not be modified by┆
0x06d360…06d380             20 63 68 69 6c 64 20 2a 29 0a 69 66 20 74 65 73 74 70 72 6f 63 65 73 73 70 61 72 61 6d 20 28 63   ┆ child *) if testprocessparam (c┆
0x06d380…06d3a0             75 72 5f 74 79 70 65 6e 61 6d 65 2c 20 70 61 72 61 6d 6b 69 6e 64 20 3d 20 63 76 61 72 70 29 20   ┆ur_typename, paramkind = cvarp) ┆
0x06d3a0…06d3c0             74 68 65 6e 0a 6e 6f 74 5f 61 6c 6c 6f 77 65 64 3a 3d 20 63 6f 6e 74 65 6e 74 73 20 28 2a 20 69   ┆then not_allowed:= contents (* i┆
0x06d3c0…06d3e0             2e 65 2e 20 70 72 6f 76 6f 6b 65 20 65 72 72 6f 72 20 62 65 6c 6f 77 20 2a 29 0a 65 6c 73 65 0a   ┆.e. provoke error below *) else ┆
0x06d3e0…06d400             69 66 20 70 61 72 61 6d 6b 69 6e 64 20 3d 20 63 76 61 6c 75 65 70 20 74 68 65 6e 0a 6e 6f 74 5f   ┆if paramkind = cvaluep then not_┆
0x06d400…06d420 (29, 0, 5)  61 6c 6c 6f 77 65 64 3a 3d 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 20 5d 3b 0a 0a 65 6c 73 65   ┆allowed:= [ t_semaphore ];  else┆
0x06d420…06d440             3b 20 28 2a 20 63 61 73 65 20 6e 61 6d 65 6b 69 6e 64 20 2a 29 0a 65 6e 64 3b 0a 0a 69 66 20 6e   ┆; (* case namekind *) end;  if n┆
0x06d440…06d460             6f 74 5f 61 6c 6c 6f 77 65 64 20 2a 20 63 6f 6e 74 65 6e 74 73 20 28 2a 20 6f 66 20 70 61 72 61   ┆ot_allowed * contents (* of para┆
0x06d460…06d480             6d 20 74 79 70 65 20 2a 29 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 74 68   ┆m type *) <> [] then begin (* th┆
0x06d480…06d4a0             65 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 77 61 73 20 69 6c 6c 65 67 61 6c 2c 20 72 65   ┆e parameter type was illegal, re┆
0x06d4a0…06d4c0             70 6c 61 63 65 20 69 74 20 2a 29 0a 65 72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f 66 6f 72 6d 61   ┆place it *) error (illegal_forma┆
0x06d4c0…06d4e0             6c 5f 74 79 70 65 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 65   ┆l_type); set_error_type; end;  e┆
0x06d4e0…06d500             6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 2a 29 20 28 2a 20 77 69   ┆nd; (* with cur_routine *) (* wi┆
0x06d500…06d520             74 68 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 70 61 73 73 20 74 68 65 20   ┆th cur_typenode *)  (* pass the ┆
0x06d520…06d540             74 79 70 65 20 74 6f 20 61 6c 6c 20 66 6f 72 6d 61 6c 73 20 69 6e 20 74 68 65 20 6c 69 73 74 20   ┆type to all formals in the list ┆
0x06d540…06d560             2a 29 0a 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69 73 74 74 6f 70 3a   ┆*)  with  listlast ^ do listtop:┆
0x06d560…06d580             3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72 73 74 20 3c 3e 20   ┆= nextname;  while listfirst <> ┆
0x06d580…06d5a0             6c 69 73 74 74 6f 70 20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f 0a   ┆listtop do with  listfirst ^ do ┆
0x06d5a0…06d5c0             62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 6c   ┆begin typename:= cur_typename; l┆
0x06d5c0…06d5e0             69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 70 6f 70 74 79   ┆istfirst:= nextname; end;  popty┆
0x06d5e0…06d600             70 65 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 66 6f 72 6d 61 6c 3a 20 3b 20 28 2a 20 62 6c   ┆pe;  end;    cendformal: ; (* bl┆
0x06d600…06d620 (29, 0, 6)  69 6e 64 2c 20 74 68 65 20 61 63 74 69 6f 6e 20 69 73 20 64 65 6c 61 79 65 64 20 75 6e 74 69 6c   ┆ind, the action is delayed until┆
0x06d620…06d640             20 65 6e 64 2d 72 6f 75 74 69 6e 65 2d 64 65 63 6c 20 2a 29 0a 0a 0a 0c 0a 63 65 6e 64 70 72 6f   ┆ end-routine-decl *)     cendpro┆
0x06d640…06d660             63 64 65 63 6c 2c 0a 63 65 6e 64 66 75 6e 63 64 65 63 6c 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20   ┆cdecl, cendfuncdecl:  begin  (* ┆
0x06d660…06d680             69 6e 20 63 61 73 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 2c 20 61 64 64 20 74 68 65 20 74 79 70   ┆in case of function, add the typ┆
0x06d680…06d6a0             65 20 2a 29 0a 0a 28 2a 20 65 6d 69 74 20 74 68 65 20 72 6f 75 74 69 6e 65 68 65 61 64 20 2a 29   ┆e *)  (* emit the routinehead *)┆
0x06d6a0…06d6c0             0a 0a 77 69 74 68 20 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 0a   ┆  with  cur_routine ^ do begin  ┆
0x06d6c0…06d6e0             69 66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 66 75 6e 63 64 65 63 6c 20 74 68 65 6e 0a 62   ┆if rectype = cendfuncdecl then b┆
0x06d6e0…06d700             65 67 69 6e 0a 28 2a 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 65 20 6d 61 79 20 6e 6f 74 20 63 6f   ┆egin (* function type may not co┆
0x06d700…06d720             6e 74 61 69 6e 20 2e 2e 2e 20 2a 29 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20   ┆ntain ... *) with  cur_typenode ┆
0x06d720…06d740             5e 20 64 6f 20 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 74 79   ┆^ do  (* typenode of function ty┆
0x06d740…06d760             70 65 20 2a 29 0a 69 66 20 63 6f 6e 74 65 6e 74 73 20 2a 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72   ┆pe *) if contents * [ t_semaphor┆
0x06d760…06d780             65 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 20 74 5f   ┆e, t_reference, t_extprocess, t_┆
0x06d780…06d7a0             73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 20 5d 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67 69   ┆shadow, t_pool ] <> [] then begi┆
0x06d7a0…06d7c0             6e 0a 65 72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70 65 29 3b   ┆n error (illegal_function_type);┆
0x06d7c0…06d7e0             0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 74 79 70 65 6e 61 6d 65 20   ┆ set_error_type; end;  typename ┆
0x06d7e0…06d800             28 2a 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 2a 29 3a 3d 20 63 75 72 5f 74 79 70   ┆(* of function name *):= cur_typ┆
0x06d800…06d820 (29, 0, 7)  65 6e 61 6d 65 3b 0a 0a 28 2a 20 61 6c 6c 6f 63 61 74 65 20 61 20 6e 61 6d 65 6e 6f 64 65 20 66   ┆ename;  (* allocate a namenode f┆
0x06d820…06d840             6f 72 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 75 65 20 2a 29   ┆or holding the function value *)┆
0x06d840…06d860             0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 66 75 6e 63 76 61 6c 3b 0a 69 6e 73 65 72 74   ┆ cur_namekind:= cfuncval; insert┆
0x06d860…06d880             5f 69 6e 5f 66 72 6f 6e 74 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 6e 6f 74 65 3a 20 69 74 20 6d   ┆_in_front:= true;  (* note: it m┆
0x06d880…06d8a0             75 73 74 20 62 65 20 74 68 65 20 76 65 72 79 20 66 69 72 73 74 20 69 6e 20 66 6f 72 6d 61 6c 20   ┆ust be the very first in formal ┆
0x06d8a0…06d8c0             6c 69 73 74 20 2a 29 0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 61 6e 6f 6e 79   ┆list *) curname:= newname (anony┆
0x06d8c0…06d8e0             6d 6f 75 73 5f 73 70 69 78 29 3b 0a 69 6e 73 65 72 74 5f 69 6e 5f 66 72 6f 6e 74 3a 3d 20 66 61   ┆mous_spix); insert_in_front:= fa┆
0x06d8e0…06d900             6c 73 65 3b 20 28 2a 20 61 6c 6c 20 6f 74 68 65 72 20 6e 61 6d 65 73 20 65 74 63 20 61 72 65 20   ┆lse; (* all other names etc are ┆
0x06d900…06d920             69 6e 73 65 72 74 65 64 20 69 6e 20 72 65 61 72 20 2a 29 0a 77 69 74 68 20 20 63 75 72 6e 61 6d   ┆inserted in rear *) with  curnam┆
0x06d920…06d940             65 20 5e 20 64 6f 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a   ┆e ^ do typename:= cur_typename; ┆
0x06d940…06d960             0a 70 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 20 28 2a 20 69 66 20 66 75 6e 63 74 69 6f 6e 20 64   ┆ poptype;  end; (* if function d┆
0x06d960…06d980             65 63 6c 61 72 61 74 69 6f 6e 20 2a 29 0a 0a 28 2a 20 74 68 65 20 77 68 6f 6c 65 20 70 61 72 61   ┆eclaration *)  (* the whole para┆
0x06d980…06d9a0             6d 6c 69 73 74 20 28 69 6e 63 6c 75 64 69 6e 67 20 69 6d 70 6c 69 63 69 74 20 74 79 70 65 73 29   ┆mlist (including implicit types)┆
0x06d9a0…06d9c0             20 61 72 65 20 69 6e 20 74 68 65 20 2a 29 0a 28 2a 20 20 20 63 75 72 72 65 6e 74 20 6e 61 6d 65   ┆ are in the *) (*   current name┆
0x06d9c0…06d9e0             6c 65 76 65 6c 20 69 6e 20 6e 61 6d 65 73 74 61 63 6b 20 2a 29 0a 0a 28 2a 20 74 72 61 6e 73 66   ┆level in namestack *)  (* transf┆
0x06d9e0…06da00             65 72 20 74 68 65 20 70 61 72 61 6d 6c 69 73 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 69 73   ┆er the paramlist pointer to this┆
0x06da00…06da20 (29, 0, 8)  20 72 6f 75 74 69 6e 65 20 2a 29 0a 0a 28 2a 20 62 75 74 20 66 69 72 73 74 20 63 6f 6d 70 61 72   ┆ routine *)  (* but first compar┆
0x06da20…06da40             65 20 74 68 65 20 6e 65 77 20 70 61 72 61 6d 6c 69 73 74 20 61 67 61 69 6e 73 74 20 74 68 65 20   ┆e the new paramlist against the ┆
0x06da40…06da60             6f 6c 64 20 70 61 72 61 6d 6c 69 73 74 20 2a 29 0a 28 2a 20 28 69 6e 20 63 61 73 65 20 6f 66 20   ┆old paramlist *) (* (in case of ┆
0x06da60…06da80             65 61 72 6c 69 65 72 20 66 6f 72 77 61 72 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 29 20 2a 29 0a   ┆earlier forward declaration) *) ┆
0x06da80…06daa0             69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 63 6f 6d 70 61 72 65 5f 70 61 72   ┆if forward_decl then compare_par┆
0x06daa0…06dac0             61 6d 6c 69 73 74 73 3b 20 28 2a 20 74 68 65 20 6e 65 77 20 6c 69 73 74 20 6d 75 73 74 20 62 65   ┆amlists; (* the new list must be┆
0x06dac0…06dae0             20 65 6d 70 74 79 20 6f 72 20 6d 61 74 63 68 20 65 78 61 63 74 6c 79 20 2a 29 0a 0a 77 69 74 68   ┆ empty or match exactly *)  with┆
0x06dae0…06db00             20 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 70 61 72 61 6d 73 20 28 2a 20 6f 66 20 63 75 72   ┆  namelevel^ do params (* of cur┆
0x06db00…06db20             5f 72 6f 75 74 69 6e 65 20 2a 29 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 20 28 2a 20 6f 66 20 6e   ┆_routine *):= firstname; (* of n┆
0x06db20…06db40             61 6d 65 6c 65 76 65 6c 20 2a 29 0a 0a 65 6d 69 74 72 6f 75 74 69 6e 65 68 65 61 64 20 28 63 75   ┆amelevel *)  emitroutinehead (cu┆
0x06db40…06db60             72 5f 72 6f 75 74 69 6e 65 29 3b 0a 0a 28 2a 20 74 68 65 20 72 6f 75 74 69 6e 65 20 69 73 20 6f   ┆r_routine);  (* the routine is o┆
0x06db60…06db80             66 20 73 70 65 63 69 61 6c 20 69 6e 74 65 72 72 65 73 74 2c 20 69 66 20 69 74 20 69 73 3a 20 27   ┆f special interrest, if it is: '┆
0x06db80…06dba0             6f 72 64 27 2c 20 27 73 75 63 63 27 2c 20 65 74 63 20 2a 29 0a 69 66 20 73 70 69 78 20 3c 3d 20   ┆ord', 'succ', etc *) if spix <= ┆
0x06dba0…06dbc0             6d 61 78 73 74 64 73 70 69 78 20 74 68 65 6e 0a 73 70 65 63 69 61 6c 73 70 69 78 20 28 63 75 72   ┆maxstdspix then specialspix (cur┆
0x06dbc0…06dbe0             5f 72 6f 75 74 69 6e 65 29 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75 72 5f 72 6f 75   ┆_routine);  end; (* with cur_rou┆
0x06dbe0…06dc00             74 69 6e 65 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 63 6f 6e 73 74 61 6e 74 64 65 63   ┆tine *)  end;    cendconstantdec┆
0x06dc00…06dc20 (29, 0, 9)  6c 3a 0a 0a 62 65 67 69 6e 0a 0a 74 65 73 74 76 61 6c 75 65 20 28 73 74 61 63 6b 74 6f 70 29 3b   ┆l:  begin  testvalue (stacktop);┆
0x06dc20…06dc40             0a 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f 20 28 2a 20 6e 62 20 6a 75 73   ┆  with  listfirst ^ do (* nb jus┆
0x06dc40…06dc60             74 20 6f 6e 65 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 6c 69 73 74 20 2a 29 0a 62 65 67 69 6e 0a   ┆t one name in the list *) begin ┆
0x06dc60…06dc80             75 73 65 64 6c 65 76 65 6c 3a 3d 20 6c 6f 77 65 73 74 6c 65 76 65 6c 3b 20 20 28 2a 20 6c 65 74   ┆usedlevel:= lowestlevel;  (* let┆
0x06dc80…06dca0             20 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 20 62 65 20 64 65 66 69 6e 65 64 20 6e 6f 77 2e 2e   ┆ the identifier be defined now..┆
0x06dca0…06dcc0             2e 20 2a 29 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 74 79 70 65 6e 61 6d   ┆. *) with  stacktop ^ do typenam┆
0x06dcc0…06dce0             65 20 28 2a 20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 2a 29 3a 3d 20 6f 70 5f 74 79 70 65 6e 61 6d   ┆e (* of constant *):= op_typenam┆
0x06dce0…06dd00             65 3b 20 20 28 2a 69 2e 65 2e 20 63 6f 70 79 20 66 72 6f 6d 20 65 78 70 72 65 73 73 69 6f 6e 20   ┆e;  (*i.e. copy from expression ┆
0x06dd00…06dd20             74 79 70 65 20 2a 29 0a 65 6e 64 3b 0a 0a 63 6f 6e 73 74 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b   ┆type *) end;  const_decl:= true;┆
0x06dd20…06dd40             0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 63 6f   ┆ emit_and_release (stacktop); co┆
0x06dd40…06dd60             6e 73 74 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 0a 65 6d 69 74 69 64 20 28 78 63 6f 6e 73   ┆nst_decl:= false;  emitid (xcons┆
0x06dd60…06dd80             74 69 64 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 74 79   ┆tid, listfirst);  end;    cendty┆
0x06dd80…06dda0             70 65 64 65 63 6c 3a 0a 0a 62 65 67 69 6e 0a 65 6d 69 74 74 79 70 65 20 28 63 75 72 5f 74 79 70   ┆pedecl:  begin emittype (cur_typ┆
0x06dda0…06ddc0             65 6e 61 6d 65 29 3b 0a 65 6d 69 74 20 28 78 74 79 70 65 64 65 66 29 3b 0a 0a 28 2a 20 74 68 65   ┆ename); emit (xtypedef);  (* the┆
0x06ddc0…06dde0             20 74 79 70 65 20 69 73 20 6f 66 20 73 70 65 63 69 61 6c 20 69 6e 74 65 72 72 65 73 74 20 69 6e   ┆ type is of special interrest in┆
0x06dde0…06de00             20 63 61 73 65 20 6f 66 20 27 72 65 66 65 72 65 6e 63 65 27 20 65 74 63 20 2a 29 0a 77 69 74 68   ┆ case of 'reference' etc *) with┆
0x06de00…06de20 (29, 0, 10) 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78 20 3c 3d 20 6d   ┆  cur_typename ^ do if spix <= m┆
0x06de20…06de40             61 78 73 74 64 73 70 69 78 20 74 68 65 6e 0a 73 70 65 63 69 61 6c 73 70 69 78 20 28 63 75 72 5f   ┆axstdspix then specialspix (cur_┆
0x06de40…06de60             74 79 70 65 6e 61 6d 65 29 3b 0a 0a 70 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 6e   ┆typename);  poptype;  end;    cn┆
0x06de60…06de80             6f 69 6e 69 74 2c 0a 63 69 6e 69 74 3a 0a 62 65 67 69 6e 0a 69 66 20 28 72 65 63 74 79 70 65 20   ┆oinit, cinit: begin if (rectype ┆
0x06de80…06dea0             3d 20 63 6e 6f 69 6e 69 74 29 20 61 6e 64 20 28 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69   ┆= cnoinit) and (var_initializati┆
0x06dea0…06dec0             6f 6e 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 20 20 77 61 72 6e 69 6e 67 28 61 73 73 69 67 6e 5f   ┆on) then begin   warning(assign_┆
0x06dec0…06dee0             6d 69 73 73 69 6e 67 29 3b 0a 20 20 72 65 63 74 79 70 65 20 3a 3d 20 63 69 6e 69 74 3b 0a 65 6e   ┆missing);   rectype := cinit; en┆
0x06dee0…06df00             64 3b 0a 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 3a 3d 20 72 65 63 74 79 70 65 20   ┆d; var_initialization:= rectype ┆
0x06df00…06df20             3d 20 63 69 6e 69 74 3b 0a 65 6e 64 3b 0a 0a 0a 63 65 6e 64 76 61 72 64 65 63 6c 3a 0a 0a 62 65   ┆= cinit; end;   cendvardecl:  be┆
0x06df20…06df40             67 69 6e 0a 0a 28 2a 20 73 65 6d 61 70 68 6f 72 65 20 61 6e 64 20 70 6f 6f 6c 20 6d 61 79 20 6f   ┆gin  (* semaphore and pool may o┆
0x06df40…06df60             6e 6c 79 20 2a 29 0a 28 2a 20 20 20 62 65 20 64 65 63 6c 61 72 65 64 20 6f 6e 20 70 72 6f 63 65   ┆nly *) (*   be declared on proce┆
0x06df60…06df80             73 73 2d 6c 65 76 65 6c 20 2a 29 0a 0a 69 66 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 3c 3e 20 70   ┆ss-level *)  if cur_blockno <> p┆
0x06df80…06dfa0             72 6f 63 65 73 73 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 69 74 68 20 20 63 75   ┆rocess_block then begin with  cu┆
0x06dfa0…06dfc0             72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 69 66 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65   ┆r_typenode ^ do if [ t_semaphore┆
0x06dfc0…06dfe0             2c 20 74 5f 70 6f 6f 6c 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 20 5d 20 2a 20 63 6f 6e 74 65   ┆, t_pool, t_extprocess ] * conte┆
0x06dfe0…06e000             6e 74 73 20 28 2a 20 6f 66 20 74 79 70 65 20 2a 29 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67   ┆nts (* of type *) <> [] then beg┆
0x06e000…06e020 (29, 0, 11) 69 6e 0a 65 72 72 6f 72 20 28 74 79 70 65 5f 6d 61 79 5f 6f 6e 6c 79 5f 62 65 5f 75 73 65 64 5f   ┆in error (type_may_only_be_used_┆
0x06e020…06e040             61 74 5f 70 72 6f 63 65 73 73 5f 6c 65 76 65 6c 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70   ┆at_process_level); set_error_typ┆
0x06e040…06e060             65 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 74 68 65 20 74 79   ┆e; end; end;  (* transfer the ty┆
0x06e060…06e080             70 65 20 74 6f 20 61 6c 6c 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20 74 68 65 20 6e 61 6d 65 6c   ┆pe to all variables in the namel┆
0x06e080…06e0a0             69 73 74 20 2a 29 0a 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69 73 74   ┆ist *)  with  listlast ^ do list┆
0x06e0a0…06e0c0             74 6f 70 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72 73 74   ┆top:= nextname;  while listfirst┆
0x06e0c0…06e0e0             20 3c 3e 20 6c 69 73 74 74 6f 70 20 64 6f 0a 62 65 67 69 6e 0a 65 6d 69 74 69 64 20 28 78 76 61   ┆ <> listtop do begin emitid (xva┆
0x06e0e0…06e100             72 69 64 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74   ┆rid, listfirst); with  listfirst┆
0x06e100…06e120             20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e   ┆ ^ do begin typename:= cur_typen┆
0x06e120…06e140             61 6d 65 3b 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a   ┆ame; listfirst:= nextname; end; ┆
0x06e140…06e160             65 6e 64 3b 0a 0a 65 6d 69 74 74 79 70 65 20 28 63 75 72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 0a   ┆end;  emittype (cur_typename);  ┆
0x06e160…06e180             69 66 20 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 74 68 65 6e 0a 62 65 67 69 6e   ┆if var_initialization then begin┆
0x06e180…06e1a0             0a 74 65 73 74 69 6e 69 74 69 61 6c 69 7a 65 20 28 63 75 72 5f 74 79 70 65 6e 61 6d 65 2c 20 76   ┆ testinitialize (cur_typename, v┆
0x06e1a0…06e1c0             61 72 5f 69 6e 69 74 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f   ┆ar_init_incompatible); emit_and_┆
0x06e1c0…06e1e0             72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6d 69 74 20 28 78 69 6e 69 74 63   ┆release (stacktop); emit (xinitc┆
0x06e1e0…06e200             6f 6e 73 74 29 3b 0a 65 6e 64 3b 0a 0a 65 6d 69 74 20 28 78 76 61 72 6c 69 73 74 29 3b 0a 0a 70   ┆onst); end;  emit (xvarlist);  p┆
0x06e200…06e220 (29, 0, 12) 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 0a 63 65 78 70 6f 72 74 2c 0a 63 65 78 70 6f   ┆optype;  end;     cexport, cexpo┆
0x06e220…06e240             72 74 76 61 6c 75 65 2c 0a 63 65 78 70 6f 72 74 73 69 7a 65 2c 0a 63 65 78 70 6f 72 74 64 69 73   ┆rtvalue, cexportsize, cexportdis┆
0x06e240…06e260             70 2c 0a 63 65 78 70 6f 72 74 6f 66 66 73 65 74 2c 0a 63 65 78 70 6f 72 74 61 64 64 72 3a 0a 65   ┆p, cexportoffset, cexportaddr: e┆
0x06e260…06e280             78 70 6f 72 74 5f 70 72 6f 63 65 64 75 72 65 3b 0a 0a 63 65 6e 64 64 65 63 6c 61 72 61 74 69 6f   ┆xport_procedure;  cenddeclaratio┆
0x06e280…06e2a0             6e 73 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68 69 73 20 72 65 63 6f 72 64 20 63 6f 6d 65 73   ┆ns:  begin  (* this record comes┆
0x06e2a0…06e2c0             20 61 74 20 65 6e 64 20 6f 66 20 65 61 63 68 20 63 6f 6e 74 65 78 74 20 2a 29 0a 28 2a 20 20 20   ┆ at end of each context *) (*   ┆
0x06e2c0…06e2e0             61 6e 64 20 61 74 20 74 68 65 20 66 69 72 73 74 20 27 62 65 67 69 6e 27 20 69 6e 20 61 20 72 6f   ┆and at the first 'begin' in a ro┆
0x06e2e0…06e300             75 74 69 6e 65 20 2a 29 0a 0a 28 2a 20 74 68 65 20 73 65 70 61 72 61 74 69 6f 6e 20 6f 66 20 74   ┆utine *)  (* the separation of t┆
0x06e300…06e320             68 65 73 65 20 74 77 6f 20 77 69 6c 6c 20 62 65 20 64 6f 6e 65 20 62 79 20 27 73 74 61 72 74 6c   ┆hese two will be done by 'startl┆
0x06e320…06e340             61 62 65 6c 73 63 6f 70 65 27 20 2a 29 0a 0a 61 66 74 65 72 64 65 63 6c 3a 3d 20 74 72 75 65 3b   ┆abelscope' *)  afterdecl:= true;┆
0x06e340…06e360             0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 61 6c 6c 20 66 6f 72 77 61 72 64 2d 64 65 63 6c 61   ┆  (* test that all forward-decla┆
0x06e360…06e380             72 65 64 20 72 6f 75 74 69 6e 65 73 20 68 61 76 65 20 62 65 65 6e 20 73 6f 6c 76 65 64 20 2a 29   ┆red routines have been solved *)┆
0x06e380…06e3a0             0a 77 69 74 68 20 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 63 75 72 6e 61 6d 65 3a 3d 20 66   ┆ with  namelevel^ do curname:= f┆
0x06e3a0…06e3c0             69 72 73 74 6e 61 6d 65 3b 20 20 20 28 2a 20 66 69 72 73 74 20 6e 61 6d 65 20 69 6e 20 6e 61 6d   ┆irstname;   (* first name in nam┆
0x06e3c0…06e3e0             65 20 6c 69 73 74 20 2a 29 0a 77 68 69 6c 65 20 63 75 72 6e 61 6d 65 20 3c 3e 20 6e 69 6c 6e 61   ┆e list *) while curname <> nilna┆
0x06e3e0…06e400             6d 65 20 64 6f 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 69   ┆me do with  curname ^ do begin i┆
0x06e400…06e420 (29, 0, 13) 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73   ┆f forward_decl then begin errors┆
0x06e420…06e440             70 69 78 3a 3d 20 73 70 69 78 3b 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 2a 29 0a 65 72 72   ┆pix:= spix; (* of curname *) err┆
0x06e440…06e460             6f 72 20 28 66 6f 72 77 61 72 64 5f 6e 6f 74 5f 73 6f 6c 76 65 64 29 3b 0a 65 6e 64 3b 0a 63 75   ┆or (forward_not_solved); end; cu┆
0x06e460…06e480             72 6e 61 6d 65 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 63 75 72 5f 64 79 6e 5f   ┆rname:= nextname; end;  cur_dyn_┆
0x06e480…06e4a0             76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 69 6c 5f 6e 61 6d 65 73 74 61 63 6b 5f 70 74 72 3b 20 28   ┆var_level:= nil_namestack_ptr; (┆
0x06e4a0…06e4c0             2a 20 61 6c 6c 20 76 61 72 69 61 62 6c 65 20 6c 65 76 65 6c 73 20 61 72 65 20 6c 65 67 61 6c 20   ┆* all variable levels are legal ┆
0x06e4c0…06e4e0             2a 29 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 73 74 61 72 74 6c 61 62 65 6c 73 63 6f 70 65 2c 0a 63 65   ┆*)  end;    cstartlabelscope, ce┆
0x06e4e0…06e500             6e 64 6c 61 62 65 6c 73 63 6f 70 65 3a 0a 0a 62 65 67 69 6e 0a 0a 63 75 72 5f 6c 61 62 65 6c 73   ┆ndlabelscope:  begin  cur_labels┆
0x06e500…06e520             63 6f 70 65 3a 3d 20 70 61 73 73 69 6e 3b 0a 0a 69 66 20 61 66 74 65 72 64 65 63 6c 20 74 68 65   ┆cope:= passin;  if afterdecl the┆
0x06e520…06e540             6e 0a 62 65 67 69 6e 0a 28 2a 20 74 68 69 73 20 69 73 20 74 68 65 20 27 62 65 67 69 6e 27 20 6f   ┆n begin (* this is the 'begin' o┆
0x06e540…06e560             66 20 61 20 72 6f 75 74 69 6e 65 20 2a 29 0a 61 66 74 65 72 64 65 63 6c 3a 3d 20 66 61 6c 73 65   ┆f a routine *) afterdecl:= false┆
0x06e560…06e580             3b 0a 0a 69 66 20 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e   ┆;  if expecting_block then begin┆
0x06e580…06e5a0             5f 62 6c 6f 63 6b 3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 68 65 72 65 20 77 65 72 65 20 6e 6f   ┆_block; (* because there were no┆
0x06e5a0…06e5c0             20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 74 20 61 6c 6c 20 2a 29 0a 0a 69 66 20 63 75 72 5f   ┆ declarations at all *)  if cur_┆
0x06e5c0…06e5e0             62 6c 6f 63 6b 6e 6f 20 3d 20 70 72 6f 63 65 73 73 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67   ┆blockno = process_block then beg┆
0x06e5e0…06e600             69 6e 0a 28 2a 20 70 72 6f 63 65 73 73 20 6c 65 76 65 6c 20 2a 29 0a 28 2a 20 66 69 6e 64 20 74   ┆in (* process level *) (* find t┆
0x06e600…06e620 (29, 0, 14) 68 65 20 72 65 6c 65 76 61 6e 74 20 65 78 63 65 70 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 20   ┆he relevant exception procedure ┆
0x06e620…06e640             2a 29 0a 0a 63 75 72 6e 61 6d 65 3a 3d 20 66 69 6e 64 6e 61 6d 65 20 28 65 78 63 65 70 74 69 6f   ┆*)  curname:= findname (exceptio┆
0x06e640…06e660             6e 5f 73 70 69 78 29 3b 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 20 28 2a 20 6e   ┆n_spix); with  curname ^ do (* n┆
0x06e660…06e680             61 6d 65 6e 6f 64 65 20 6f 66 20 65 78 63 65 70 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 20 2a   ┆amenode of exception procedure *┆
0x06e680…06e6a0             29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3c 3e 20 63 70 72 6f 63 65 64 75 72 65 20 74 68 65 6e   ┆) if namekind <> cprocedure then┆
0x06e6a0…06e6c0             0a 63 75 72 6e 61 6d 65 3a 3d 20 65 78 63 65 70 74 69 6f 6e 5f 70 72 6f 63 6e 61 6d 65 3b 0a 28   ┆ curname:= exception_procname; (┆
0x06e6c0…06e6e0             2a 20 6e 62 20 6e 62 20 6e 62 20 6e 62 3a 20 74 65 73 74 20 6b 6f 72 72 65 6b 74 20 70 61 72 61   ┆* nb nb nb nb: test korrekt para┆
0x06e6e0…06e700             6d 6c 69 73 74 65 20 2a 29 0a 0a 65 6d 69 74 69 64 20 28 78 65 78 63 65 70 74 69 6f 6e 2c 20 63   ┆mliste *)  emitid (xexception, c┆
0x06e700…06e720             75 72 6e 61 6d 65 29 3b 0a 65 6e 64 3b 0a 0a 65 6d 69 74 20 28 78 69 6e 69 74 62 6c 6f 63 6b 29   ┆urname); end;  emit (xinitblock)┆
0x06e720…06e740             3b 0a 0a 69 6e 69 74 6c 61 62 65 6c 73 3b 0a 0a 65 6e 64 3b 0a 0a 73 65 74 5f 6c 61 62 65 6c 5f   ┆;  initlabels;  end;  set_label_┆
0x06e740…06e760             73 74 61 74 65 20 28 72 65 63 74 79 70 65 20 3d 20 63 73 74 61 72 74 6c 61 62 65 6c 73 63 6f 70   ┆state (rectype = cstartlabelscop┆
0x06e760…06e780             65 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 62 65 67 69 6e 63 6f 64 65 3a 0a 62 65 67 69 6e 0a 62   ┆e);  end;    cbegincode: begin b┆
0x06e780…06e7a0             65 67 69 6e 5f 62 6c 6f 63 6b 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74   ┆egin_block; emit_and_release (st┆
0x06e7a0…06e7c0             61 63 6b 74 6f 70 29 3b 20 20 28 2a 20 6c 69 74 65 72 61 6c 20 3d 3d 20 73 74 61 63 6b 20 61 70   ┆acktop);  (* literal == stack ap┆
0x06e7c0…06e7e0             70 65 74 69 74 65 20 2a 29 0a 65 6d 69 74 20 28 78 62 65 67 69 6e 63 6f 64 65 29 3b 0a 65 6e 64   ┆petite *) emit (xbegincode); end┆
0x06e7e0…06e800             3b 0a 0a 0a 0a 63 63 6f 64 65 6c 69 6e 65 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20 28 78 63 6f 64   ┆;    ccodeline: begin emit (xcod┆
0x06e800…06e820 (29, 0, 15) 65 6c 69 6e 65 29 3b 0a 6c 69 6e 65 6e 6f 3a 3d 20 70 61 73 73 69 6e 3b 20 20 28 2a 20 6e 75 6d   ┆eline); lineno:= passin;  (* num┆
0x06e820…06e840             62 65 72 20 6f 66 20 63 68 61 72 73 20 69 6e 20 6c 69 6e 65 20 2a 29 0a 65 6d 69 74 69 6e 20 28   ┆ber of chars in line *) emitin (┆
0x06e840…06e860             6c 69 6e 65 6e 6f 29 3b 0a 66 6f 72 20 6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f 20 64 6f 77   ┆lineno); for lineno:= lineno dow┆
0x06e860…06e880             6e 74 6f 20 31 20 64 6f 20 65 6d 69 74 69 6e 20 28 70 61 73 73 69 6e 29 3b 0a 65 6e 64 3b 0a 0a   ┆nto 1 do emitin (passin); end;  ┆
0x06e880…06e8a0             0c 0a 63 65 6e 64 63 6f 64 65 2c 0a 63 65 6e 64 62 6c 6f 63 6b 3a 0a 0a 62 65 67 69 6e 0a 0a 28   ┆  cendcode, cendblock:  begin  (┆
0x06e8a0…06e8c0             2a 20 72 65 6c 65 61 73 65 20 61 6c 6c 20 6c 6f 63 61 6c 20 6e 61 6d 65 6e 6f 64 65 73 20 61 6e   ┆* release all local namenodes an┆
0x06e8c0…06e8e0             64 20 74 68 65 69 72 20 74 79 70 65 6e 6f 64 65 73 20 2a 29 0a 0a 28 2a 20 6e 6f 74 69 63 65 3a   ┆d their typenodes *)  (* notice:┆
0x06e8e0…06e900             20 74 68 65 20 6e 61 6d 65 6e 6f 64 65 73 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73   ┆ the namenodes of the parameters┆
0x06e900…06e920             20 74 6f 20 61 20 62 6c 6f 63 6b 20 2a 29 0a 28 2a 20 20 20 20 20 20 20 20 20 61 72 65 20 72 65   ┆ to a block *) (*         are re┆
0x06e920…06e940             6c 65 61 73 65 64 20 62 79 20 74 68 65 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 62 6c 6f 63 6b 20   ┆leased by the surrounding block ┆
0x06e940…06e960             2a 29 0a 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 63 6f 64 65 20 74 68 65 6e 0a 65   ┆*)  if rectype = cendcode then e┆
0x06e960…06e980             6d 69 74 20 28 78 65 6e 64 63 6f 64 65 29 0a 65 6c 73 65 0a 65 6d 69 74 20 28 78 65 6e 64 62 6c   ┆mit (xendcode) else emit (xendbl┆
0x06e980…06e9a0             6f 63 6b 29 3b 0a 69 66 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 3c 3e 20 70 72 6f 63 65 73 73 5f   ┆ock); if cur_blockno <> process_┆
0x06e9a0…06e9c0             62 6c 6f 63 6b 20 74 68 65 6e 0a 63 75 72 5f 62 6c 6f 63 6b 6e 6f 3a 3d 20 63 75 72 5f 62 6c 6f   ┆block then cur_blockno:= cur_blo┆
0x06e9c0…06e9e0             63 6b 6e 6f 20 2d 20 31 3b 0a 28 2a 20 72 65 6c 65 61 73 65 20 6c 6f 63 61 6c 20 64 65 63 6c 61   ┆ckno - 1; (* release local decla┆
0x06e9e0…06ea00             72 65 64 20 76 61 72 69 61 62 6c 65 73 2c 20 6e 62 20 21 20 6f 6e 6c 79 20 70 72 65 63 65 6e 74   ┆red variables, nb ! only precent┆
0x06ea00…06ea20 (29, 1, 1)  20 69 66 20 22 65 6e 64 62 6c 6f 63 6b 22 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63   ┆ if "endblock" *) if rectype = c┆
0x06ea20…06ea40             65 6e 64 62 6c 6f 63 6b 20 74 68 65 6e 0a 0a 72 65 6c 65 61 73 65 6e 61 6d 65 73 20 28 20 6e 61   ┆endblock then  releasenames ( na┆
0x06ea40…06ea60             6d 65 6c 65 76 65 6c 5e 20 2e 20 66 69 72 73 74 6e 61 6d 65 29 3b 0a 0a 28 2a 20 74 65 73 74 20   ┆melevel^ . firstname);  (* test ┆
0x06ea60…06ea80             74 68 61 74 20 66 75 6e 63 74 69 6f 6e 73 20 68 61 76 65 20 68 61 64 20 61 20 63 68 61 6e 63 65   ┆that functions have had a chance┆
0x06ea80…06eaa0             20 66 6f 72 20 61 73 73 69 67 6e 69 6e 67 20 61 20 76 61 6c 75 65 20 2a 29 0a 69 66 20 72 65 63   ┆ for assigning a value *) if rec┆
0x06eaa0…06eac0             74 79 70 65 20 3d 20 63 65 6e 64 62 6c 6f 63 6b 20 74 68 65 6e 0a 77 69 74 68 20 20 6e 61 6d 65   ┆type = cendblock then with  name┆
0x06eac0…06eae0             6c 65 76 65 6c 5e 2e 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 5e 20 64 6f 20 20 28 2a 20 70 61 72 61   ┆level^.former_level^ do  (* para┆
0x06eae0…06eb00             6d 65 74 65 72 2d 6c 65 76 65 6c 20 2a 29 0a 77 69 74 68 20 20 66 69 72 73 74 6e 61 6d 65 20 5e   ┆meter-level *) with  firstname ^┆
0x06eb00…06eb20             20 64 6f 20 20 20 20 20 20 20 20 28 2a 20 66 69 72 73 74 20 66 6f 72 6d 61 6c 20 6e 61 6d 65 20   ┆ do        (* first formal name ┆
0x06eb20…06eb40             2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 66 75 6e 63 76 61 6c 20 74 68 65 6e 20 20   ┆*) if namekind = cfuncval then  ┆
0x06eb40…06eb60             20 20 20 20 28 2a 20 69 74 20 6d 75 73 74 20 68 61 76 65 20 62 65 65 6e 20 61 20 66 75 6e 63 74   ┆    (* it must have been a funct┆
0x06eb60…06eb80             69 6f 6e 20 2a 29 0a 69 66 20 6e 6f 74 20 66 75 6e 63 5f 61 73 73 69 67 6e 65 64 20 74 68 65 6e   ┆ion *) if not func_assigned then┆
0x06eb80…06eba0             0a 65 72 72 6f 72 20 28 66 75 6e 63 76 61 6c 5f 6e 6f 74 5f 75 73 65 64 29 3b 0a 0a 65 6e 64 3b   ┆ error (funcval_not_used);  end;┆
0x06eba0…06ebc0             0a 0a 0c 0a 63 74 79 70 65 69 64 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 6e 20 65 78 69 73 74   ┆    ctypeid:  begin  (* an exist┆
0x06ebc0…06ebe0             69 6e 67 20 74 79 70 65 6e 6f 64 65 20 77 69 6c 6c 20 62 65 20 72 65 75 73 65 64 20 2a 29 0a 0a   ┆ing typenode will be reused *)  ┆
0x06ebe0…06ec00             70 75 73 68 74 79 70 65 3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 79 70 65 73 20 6d 61 79 20 62   ┆pushtype; (* because types may b┆
0x06ec00…06ec20 (29, 1, 2)  65 20 6e 65 73 74 65 64 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 75 73 65 6e   ┆e nested *)  cur_typename:= usen┆
0x06ec20…06ec40             61 6d 65 20 28 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20 2a 29 20 29 3b 0a 0a 77 69 74   ┆ame (passin (* = spix *) );  wit┆
0x06ec40…06ec60             68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 0a 62 65 67 69 6e 0a 0a 63 75 72   ┆h  cur_typename ^ do  begin  cur┆
0x06ec60…06ec80             5f 74 79 70 65 6e 6f 64 65 3a 3d 20 74 79 70 3b 0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 74   ┆_typenode:= typ;  (* test that t┆
0x06ec80…06eca0             68 65 20 6e 61 6d 65 6e 6f 64 65 20 72 65 61 6c 6c 79 20 77 61 73 20 61 20 74 79 70 65 6e 61 6d   ┆he namenode really was a typenam┆
0x06eca0…06ecc0             65 20 6e 6f 64 65 20 2a 29 0a 69 66 20 28 6e 61 6d 65 6b 69 6e 64 3c 3e 63 74 79 70 65 29 20 61   ┆e node *) if (namekind<>ctype) a┆
0x06ecc0…06ece0             6e 64 20 28 6e 61 6d 65 6b 69 6e 64 3c 3e 63 65 78 74 70 72 6f 63 65 73 73 29 20 74 68 65 6e 0a   ┆nd (namekind<>cextprocess) then ┆
0x06ece0…06ed00             62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 0a 65 72 72 6f 72 20 28 6e   ┆begin errorspix:= spix; error (n┆
0x06ed00…06ed20             6f 74 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e   ┆ot_typename); set_error_type; en┆
0x06ed20…06ed40             64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 2a 29   ┆d;  end; (* with cur_typename *)┆
0x06ed40…06ed60             0a 0a 69 66 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 74 79 70 65 20 74 68 65 6e 0a 62   ┆  if cur_namekind = ctype then b┆
0x06ed60…06ed80             65 67 69 6e 0a 28 2a 20 74 68 69 73 20 69 73 3a 20 20 20 3c 6e 61 6d 65 3e 20 3d 20 3c 74 79 70   ┆egin (* this is:   <name> = <typ┆
0x06ed80…06eda0             65 6e 61 6d 65 3e 3b 20 20 2a 29 0a 28 2a 20 73 65 74 75 70 20 61 6e 20 27 61 6c 69 61 73 27 20   ┆ename>;  *) (* setup an 'alias' ┆
0x06eda0…06edc0             6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 69 74 20 69 73 20 6e 6f 74 20 6e 65 73 63 65 73 73 61 72 79   ┆node *)  (* it is not nescessary┆
0x06edc0…06ede0             20 74 6f 20 74 65 73 74 20 66 6f 72 20 72 65 63 75 72 73 69 76 65 20 75 73 65 2c 20 62 65 63 61   ┆ to test for recursive use, beca┆
0x06ede0…06ee00             75 73 65 20 69 74 20 2a 29 0a 28 2a 20 68 61 73 20 62 65 65 6e 20 74 65 73 74 65 64 20 74 68 61   ┆use it *) (* has been tested tha┆
0x06ee00…06ee20 (29, 1, 3)  74 20 72 69 67 74 68 68 61 6e 64 20 6e 61 6d 65 20 77 61 73 20 74 68 65 20 6e 61 6d 65 20 6f 66   ┆t rigthhand name was the name of┆
0x06ee20…06ee40             20 61 20 64 65 66 69 6e 65 64 20 74 79 70 65 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65   ┆ a defined type *)  cur_typenode┆
0x06ee40…06ee60             3a 3d 20 61 6c 6c 6f 63 5f 74 79 70 65 6e 6f 64 65 3b 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70   ┆:= alloc_typenode; with  cur_typ┆
0x06ee60…06ee80             65 6e 6f 64 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6b 69 6e 64 3a 3d 20 63 61 6c 69   ┆enode ^ do begin typekind:= cali┆
0x06ee80…06eea0             61 73 3b 0a 65 6c 65 6d 65 6e 74 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 69 6e 64 65   ┆as; element:= cur_typename; inde┆
0x06eea0…06eec0             78 20 20 20 3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 69 6e 64   ┆x   :=   element ^ . typ ^ . ind┆
0x06eec0…06eee0             65 78 3b 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79 70   ┆ex; contents:=   element ^ . typ┆
0x06eee0…06ef00             20 5e 20 2e 20 63 6f 6e 74 65 6e 74 73 3b 0a 70 61 63 6b 66 6c 61 67 3a 3d 20 20 20 65 6c 65 6d   ┆ ^ . contents; packflag:=   elem┆
0x06ef00…06ef20             65 6e 74 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 70 61 63 6b 66 6c 61 67 3b 0a 65 6e 64 3b 0a 0a   ┆ent ^ . typ ^ . packflag; end;  ┆
0x06ef20…06ef40             63 75 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 0a 77 69 74 68 20 20 63   ┆cur_typename:= curname;  with  c┆
0x06ef40…06ef60             75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 3a 3d 20 63 75 72   ┆ur_typename ^ do begin typ:= cur┆
0x06ef60…06ef80             5f 74 79 70 65 6e 6f 64 65 3b 0a 69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 61 6e 64 20 28   ┆_typenode; if forward_decl and (┆
0x06ef80…06efa0             74 79 70 5e 2e 65 6c 65 6d 65 6e 74 5e 2e 74 79 70 5e 2e 74 79 70 65 6b 69 6e 64 3c 3e 63 70 6f   ┆typ^.element^.typ^.typekind<>cpo┆
0x06efa0…06efc0             69 6e 74 65 72 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 73 70   ┆inter) then begin errorspix:= sp┆
0x06efc0…06efe0             69 78 3b 0a 65 72 72 6f 72 28 66 6f 72 77 61 72 64 5f 6d 75 73 74 5f 62 65 5f 70 6f 69 6e 74 65   ┆ix; error(forward_must_be_pointe┆
0x06efe0…06f000             72 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 66 6f 72 77 61 72 64   ┆r); set_error_type; end; forward┆
0x06f000…06f020 (29, 1, 4)  5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 65 6e 64 3b 0a 0a 0a 65 6e 64 3b 20 28 2a 20 69 66   ┆_decl:= false; end;   end; (* if┆
0x06f020…06f040             20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 74 79 70 65 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0a 0a 0a 63   ┆ namekind = ctype *)  end;     c┆
0x06f040…06f060             65 6e 64 74 79 70 65 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 0c 0a 63 77 69 74 68 6f   ┆endtype: ; (* blind *)    cwitho┆
0x06f060…06f080             75 74 5f 64 61 74 61 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68 69 73 20 73 70 65 63 69 61 6c   ┆ut_data:  begin  (* this special┆
0x06f080…06f0a0             20 74 79 70 65 20 69 73 20 75 73 65 64 20 62 79 20 27 70 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f   ┆ type is used by 'pool definitio┆
0x06f0a0…06f0c0             6e 27 20 74 6f 20 73 69 6d 75 6c 61 74 65 20 6e 6f 74 79 70 65 20 2a 29 0a 0a 70 75 73 68 74 79   ┆n' to simulate notype *)  pushty┆
0x06f0c0…06f0e0             70 65 3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 68 69 73 20 74 79 70 65 20 69 73 20 6e 65 73 74   ┆pe; (* because this type is nest┆
0x06f0e0…06f100             65 64 20 69 6e 20 27 70 6f 6f 6c 2d 64 65 66 27 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d   ┆ed in 'pool-def' *)  cur_typenam┆
0x06f100…06f120             65 3a 3d 20 6e 69 6c 5f 74 79 70 65 6e 61 6d 65 3b 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d   ┆e:= nil_typename; cur_typenode:=┆
0x06f120…06f140             20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 2e 20 74 79 70 3b 0a 0a 65 6e 64 3b 0a 0a 0c   ┆  cur_typename ^ . typ;  end;   ┆
0x06f140…06f160             0a 63 6e 65 77 74 79 70 65 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 20 6e 65 77 20 74 79 70 65   ┆ cnewtype:  begin  (* a new type┆
0x06f160…06f180             20 77 69 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 2a 29 0a 0a 70 75 73 68 74 79 70   ┆ will be constructed *)  pushtyp┆
0x06f180…06f1a0             65 3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 79 70 65 73 20 6d 61 79 20 62 65 20 6e 65 73 74 65   ┆e; (* because types may be neste┆
0x06f1a0…06f1c0             64 20 2a 29 0a 0a 69 66 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3c 3e 20 63 74 79 70 65 20 74   ┆d *)  if cur_namekind <> ctype t┆
0x06f1c0…06f1e0             68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 69 6d 70 6c 69 63 69 74 20 74 79 70 65 2c 20 69 6e 73 65   ┆hen begin (* implicit type, inse┆
0x06f1e0…06f200             72 74 20 70 73 65 75 64 6f 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e   ┆rt pseudo typename *)  cur_typen┆
0x06f200…06f220 (29, 1, 5)  61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 29 3b 0a   ┆ame:= newname (anonymous_spix); ┆
0x06f220…06f240             0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 6e 61 6d 65 6b 69 6e   ┆ with  cur_typename ^ do namekin┆
0x06f240…06f260             64 3a 3d 20 63 74 79 70 65 3b 0a 0a 65 6e 64 0a 0a 65 6c 73 65 0a 0a 62 65 67 69 6e 0a 28 2a 20   ┆d:= ctype;  end  else  begin (* ┆
0x06f260…06f280             65 78 70 6c 69 63 69 74 20 74 79 70 65 2c 20 75 73 65 20 27 63 75 72 6e 61 6d 65 27 20 61 73 20   ┆explicit type, use 'curname' as ┆
0x06f280…06f2a0             27 63 75 72 5f 74 79 70 65 6e 61 6d 65 27 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 3a   ┆'cur_typename' *)  cur_typename:┆
0x06f2a0…06f2c0             3d 20 63 75 72 6e 61 6d 65 3b 0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 6e 6f 63 6f 64   ┆= curname; cur_namekind:= cnocod┆
0x06f2c0…06f2e0             65 3b 20 28 2a 20 6f 6e 6c 79 20 74 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 6e 65 77 74 79 70 65   ┆e; (* only the outermost newtype┆
0x06f2e0…06f300             20 69 73 20 65 78 70 6c 69 63 69 74 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 28 2a 20 70 72 65 70 61 72   ┆ is explicit *)  end;  (* prepar┆
0x06f300…06f320             65 20 74 68 65 20 73 75 63 63 65 64 69 6e 67 20 74 79 70 65 64 65 66 69 6e 69 74 69 6f 6e 73 20   ┆e the succeding typedefinitions ┆
0x06f320…06f340             2a 29 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d 20 61 6c 6c 6f 63 5f 74 79 70 65 6e 6f 64 65   ┆*) cur_typenode:= alloc_typenode┆
0x06f340…06f360             3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 74 79 70 3a 3d   ┆;  with  cur_typename ^ do typ:=┆
0x06f360…06f380             20 63 75 72 5f 74 79 70 65 6e 6f 64 65 3b 0a 0a 65 6e 64 3b 0a 0a 63 65 78 74 70 72 6f 63 65 73   ┆ cur_typenode;  end;  cextproces┆
0x06f380…06f3a0             73 3a 0a 62 65 67 69 6e 0a 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 5e 20 64 6f 0a 62   ┆s: begin with cur_typename^ do b┆
0x06f3a0…06f3c0             65 67 69 6e 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 65 78 74 70 72 6f 63 65 73 73 3b 20 28 2a 20   ┆egin namekind:= cextprocess; (* ┆
0x06f3c0…06f3e0             63 68 61 6e 67 65 20 66 72 6f 6d 20 63 74 79 70 65 20 74 6f 20 63 65 78 74 70 72 6f 63 65 73 73   ┆change from ctype to cextprocess┆
0x06f3e0…06f400             20 2a 29 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 73 6f 6e 5f 74 79 70 65 6e 61 6d 65 3b 0a 72 65 6c   ┆ *) typename:= son_typename; rel┆
0x06f400…06f420 (29, 1, 6)  65 61 73 65 5f 74 79 70 65 6e 6f 64 65 28 74 79 70 29 3b 0a 74 79 70 3a 3d 20 73 6f 6e 5f 74 79   ┆ease_typenode(typ); typ:= son_ty┆
0x06f420…06f440             70 65 6e 61 6d 65 5e 2e 74 79 70 3b 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d 20 74 79 70 3b   ┆pename^.typ; cur_typenode:= typ;┆
0x06f440…06f460             0a 65 6e 64 3b 0a 63 75 72 5f 72 6f 75 74 69 6e 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65   ┆ end; cur_routine:= cur_typename┆
0x06f460…06f480             3b 20 28 2a 20 70 72 65 70 61 72 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 2a   ┆; (* prepare formal parameters *┆
0x06f480…06f4a0             29 0a 65 6e 64 3b 0a 0a 0c 0a 63 73 63 61 6c 61 72 2c 0a 63 73 75 62 72 61 6e 67 65 2c 0a 63 61   ┆) end;    cscalar, csubrange, ca┆
0x06f4a0…06f4c0             72 72 61 79 2c 0a 63 72 65 63 6f 72 64 2c 0a 63 73 65 74 2c 0a 63 70 6f 6f 6c 2c 0a 63 70 6f 69   ┆rray, crecord, cset, cpool, cpoi┆
0x06f4c0…06f4e0             6e 74 65 72 2c 0a 63 72 65 61 64 6f 6e 6c 79 2c 0a 63 69 6e 74 65 67 65 72 2c 0a 63 72 65 61 6c   ┆nter, creadonly, cinteger, creal┆
0x06f4e0…06f500             2c 0a 63 6e 69 6c 74 79 70 65 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 6e 73 65 72 74 20 74 68 65 20   ┆, cniltype: begin (* insert the ┆
0x06f500…06f520             72 65 63 74 79 70 65 20 69 6e 20 74 68 65 20 27 63 75 72 5f 74 79 70 65 6e 6f 64 65 27 20 2a 29   ┆rectype in the 'cur_typenode' *)┆
0x06f520…06f540             0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 74 79 70 65 6b 69 6e   ┆ with  cur_typenode ^ do typekin┆
0x06f540…06f560             64 3a 3d 20 72 65 63 74 79 70 65 3b 0a 0a 28 2a 20 6d 61 79 62 65 20 70 75 73 68 20 74 68 65 20   ┆d:= rectype;  (* maybe push the ┆
0x06f560…06f580             63 75 72 72 65 6e 74 20 6e 61 6d 65 6c 69 73 74 2c 20 69 6e 20 63 61 73 65 20 6f 66 20 69 6e 6e   ┆current namelist, in case of inn┆
0x06f580…06f5a0             65 72 20 6e 61 6d 65 6c 69 73 74 73 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 72 65   ┆er namelists *) if rectype = cre┆
0x06f5a0…06f5c0             63 6f 72 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 70 75 73 68 6c 69 73 74 3b 0a 6e 65 77 6e 61 6d   ┆cord then begin pushlist; newnam┆
0x06f5c0…06f5e0             65 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 73 63 61 6c   ┆elevel; end;  if rectype = cscal┆
0x06f5e0…06f600             61 72 20 74 68 65 6e 0a 62 65 67 69 6e 0a 70 75 73 68 6c 69 73 74 3b 0a 77 69 74 68 20 20 63 75   ┆ar then begin pushlist; with  cu┆
0x06f600…06f620 (29, 1, 7)  72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78 20 3c 3e 20 61 6e 6f 6e 79   ┆r_typename ^ do if spix <> anony┆
0x06f620…06f640             6d 6f 75 73 5f 73 70 69 78 20 74 68 65 6e 20 20 20 28 2a 20 6b 65 65 70 20 73 63 61 6c 61 72 65   ┆mous_spix then   (* keep scalare┆
0x06f640…06f660             6c 65 6d 73 20 6f 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29   ┆lems on the correct namelevel *)┆
0x06f660…06f680             0a 65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 0a 77 69 74 68 20 20 63 75 72 5f   ┆ endnamelevel; end;   with  cur_┆
0x06f680…06f6a0             74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 28 72 65 63 74 79 70 65 3c 3e 63 70 6f 69 6e   ┆typename ^ do if (rectype<>cpoin┆
0x06f6a0…06f6c0             74 65 72 29 20 61 6e 64 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 62 65 67 69 6e   ┆ter) and forward_decl then begin┆
0x06f6c0…06f6e0             0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 0a 65 72 72 6f 72 28 66 6f 72 77 61 72 64   ┆ errorspix:= spix; error(forward┆
0x06f6e0…06f700             5f 6d 75 73 74 5f 62 65 5f 70 6f 69 6e 74 65 72 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70   ┆_must_be_pointer); set_error_typ┆
0x06f700…06f720             65 3b 0a 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 65 6e 64 3b 0a 0a 69   ┆e; forward_decl:= false; end;  i┆
0x06f720…06f740             66 20 72 65 63 74 79 70 65 3d 63 70 6f 69 6e 74 65 72 20 74 68 65 6e 0a 63 75 72 5f 74 79 70 65   ┆f rectype=cpointer then cur_type┆
0x06f740…06f760             6e 61 6d 65 5e 2e 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 0a 65 6c 73 65 0a   ┆name^.forward_decl:= false else ┆
0x06f760…06f780             69 66 20 72 65 63 74 79 70 65 20 3d 20 63 69 6e 74 65 67 65 72 20 74 68 65 6e 0a 69 6e 74 65 67   ┆if rectype = cinteger then integ┆
0x06f780…06f7a0             65 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 0a 65 6c 73 65 0a   ┆er_typename:= cur_typename else ┆
0x06f7a0…06f7c0             69 66 20 72 65 63 74 79 70 65 20 3d 20 63 6e 69 6c 74 79 70 65 20 74 68 65 6e 0a 6e 69 6c 5f 74   ┆if rectype = cniltype then nil_t┆
0x06f7c0…06f7e0             79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 63 66   ┆ypename:= cur_typename; end;  cf┆
0x06f7e0…06f800             6f 72 77 61 72 64 70 6f 69 6e 74 65 72 3a 0a 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 61 6d 65   ┆orwardpointer: with cur_typename┆
0x06f800…06f820 (29, 1, 8)  5e 20 64 6f 0a 62 65 67 69 6e 0a 72 65 6c 65 61 73 65 5f 74 79 70 65 6e 6f 64 65 28 74 79 70 29   ┆^ do begin release_typenode(typ)┆
0x06f820…06f840             3b 20 28 2a 20 6e 6f 74 20 75 73 65 64 2c 20 61 20 6e 65 77 20 6e 6f 64 65 20 77 69 6c 6c 20 62   ┆; (* not used, a new node will b┆
0x06f840…06f860             65 20 61 6c 6c 6f 63 61 74 65 64 20 77 68 65 6e 20 74 68 65 20 72 65 61 6c 20 64 65 63 6c 61 72   ┆e allocated when the real declar┆
0x06f860…06f880             61 74 69 6f 6e 20 69 73 20 6d 65 74 20 2a 29 0a 74 79 70 3a 3d 20 64 75 6d 6d 79 5f 74 79 70 65   ┆ation is met *) typ:= dummy_type┆
0x06f880…06f8a0             6e 6f 64 65 3b 0a 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b 0a 65 6e 64 3b 20   ┆node; forward_decl:= true; end; ┆
0x06f8a0…06f8c0             28 2a 20 66 6f 72 77 61 72 64 20 70 6f 69 6e 74 65 72 20 2a 29 0a 0c 0a 63 65 6e 64 73 63 61 6c   ┆(* forward pointer *)   cendscal┆
0x06f8c0…06f8e0             61 72 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 64 64 20 74 68 65 20 73 63 61 6c 61 72 2d 6c 69   ┆ar:  begin  (* add the scalar-li┆
0x06f8e0…06f900             73 74 20 74 6f 20 74 68 65 20 73 63 61 6c 61 72 20 74 79 70 65 20 6e 6f 64 65 20 2a 29 0a 0a 77   ┆st to the scalar type node *)  w┆
0x06f900…06f920             69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f   ┆ith  cur_typenode ^ do (* typeno┆
0x06f920…06f940             64 65 20 6f 66 20 73 63 61 6c 61 72 20 74 79 70 65 20 2a 29 0a 62 65 67 69 6e 0a 65 6c 65 6d 65   ┆de of scalar type *) begin eleme┆
0x06f940…06f960             6e 74 3a 3d 20 6c 69 73 74 66 69 72 73 74 3b 0a 28 2a 20 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20   ┆nt:= listfirst; (* contents:= [ ┆
0x06f960…06f980             74 5f 73 69 6d 70 6c 65 20 5d 3b 20 20 2a 29 0a 65 6e 64 3b 0a 0a 28 2a 20 69 6e 73 65 72 74 20   ┆t_simple ];  *) end;  (* insert ┆
0x06f980…06f9a0             74 79 70 65 6e 61 6d 65 20 69 6e 20 74 68 65 20 77 68 6f 6c 65 20 73 63 61 6c 61 72 2d 6c 69 73   ┆typename in the whole scalar-lis┆
0x06f9a0…06f9c0             74 20 2a 29 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69 73 74 74 6f 70   ┆t *) with  listlast ^ do listtop┆
0x06f9c0…06f9e0             3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72 73 74 20 3c 3e   ┆:= nextname;  while listfirst <>┆
0x06f9e0…06fa00             20 6c 69 73 74 74 6f 70 20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f   ┆ listtop do with  listfirst ^ do┆
0x06fa00…06fa20 (29, 1, 9)  0a 62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a   ┆ begin typename:= cur_typename; ┆
0x06fa20…06fa40             6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 77 69 74 68   ┆listfirst:= nextname; end;  with┆
0x06fa40…06fa60             20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78 20 3c 3e 20 61   ┆  cur_typename ^ do if spix <> a┆
0x06fa60…06fa80             6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 20 74 68 65 6e 20 20 28 2a 20 6b 65 65 70 20 73 63 61 6c   ┆nonymous_spix then  (* keep scal┆
0x06fa80…06faa0             61 72 65 6c 65 6d 73 20 6f 6e 20 63 6f 72 72 65 63 74 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a   ┆arelems on correct namelevel *) ┆
0x06faa0…06fac0             6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 70 6f 70 6c 69 73 74 3b 20 28 2a 20 72 65 74 75 72   ┆newnamelevel;  poplist; (* retur┆
0x06fac0…06fae0             6e 20 74 6f 20 6f 75 74 65 72 20 6e 61 6d 65 6c 69 73 74 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0c 0a   ┆n to outer namelist *)  end;    ┆
0x06fae0…06fb00             63 65 6e 64 73 75 62 72 61 6e 67 65 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68 65 20 74 77 6f   ┆cendsubrange:  begin  (* the two┆
0x06fb00…06fb20             20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 69 6e 20 27 73 74 61 63 6b 74 6f 70 27 20 61   ┆ expressions are in 'stacktop' a┆
0x06fb20…06fb40             6e 64 20 27 6e 65 78 74 74 6f 70 27 20 2a 29 0a 0a 28 2a 20 74 68 65 20 74 77 6f 20 65 78 70 72   ┆nd 'nexttop' *)  (* the two expr┆
0x06fb40…06fb60             65 73 73 69 6f 6e 73 20 6d 75 73 74 20 62 65 20 3c 73 61 6d 65 3e 20 65 6e 75 6d 65 72 61 74 69   ┆essions must be <same> enumerati┆
0x06fb60…06fb80             6f 6e 20 74 79 70 65 20 2a 29 0a 6c 65 66 74 74 79 70 65 6e 61 6d 65 20 28 2a 20 64 75 6d 6d 79   ┆on type *) lefttypename (* dummy┆
0x06fb80…06fba0             20 61 73 73 69 67 6e 6d 65 6e 74 20 2a 29 3a 3d 20 74 65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e   ┆ assignment *):= testenumeration┆
0x06fba0…06fbc0             20 28 6e 65 78 74 74 6f 70 29 3b 20 28 2a 20 6e 62 3a 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20   ┆ (nexttop); (* nb: exprtypename ┆
0x06fbc0…06fbe0             3d 20 73 69 6d 70 6c 69 66 69 65 64 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 72 65 73 6f 6c 76 65   ┆= simplified typename *) resolve┆
0x06fbe0…06fc00             74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 72 69 67 74 68 74 79 70 65 6e 61 6d 65 2c 20 72   ┆type (stacktop, rigthtypename, r┆
0x06fc00…06fc20 (29, 1, 10) 69 67 74 68 65 6c 65 6d 65 6e 74 2c 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20   ┆igthelement, rigthbasekind); if ┆
0x06fc20…06fc40             65 78 70 72 74 79 70 65 6e 61 6d 65 20 3c 3e 20 72 69 67 74 68 74 79 70 65 6e 61 6d 65 20 74 68   ┆exprtypename <> rigthtypename th┆
0x06fc40…06fc60             65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 73 75 62 72 61 6e 67 65 5f 65 6c 65 6d 73 5f 6d   ┆en begin error (subrange_elems_m┆
0x06fc60…06fc80             75 73 74 5f 62 65 5f 65 6e 75 6d 65 72 61 74 69 6f 6e 29 3b 0a 65 78 70 72 74 79 70 65 6e 61 6d   ┆ust_be_enumeration); exprtypenam┆
0x06fc80…06fca0             65 3a 3d 20 65 72 72 6f 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 28 2a 20 62 69 6e   ┆e:= error_typename; end;  (* bin┆
0x06fca0…06fcc0             64 20 74 68 65 20 74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 20 61 20 73 69 6e 67 6c   ┆d the two expressions to a singl┆
0x06fcc0…06fce0             65 20 6f 6e 65 20 2a 29 0a 6f 70 65 72 20 28 62 69 6e 61 72 79 2c 20 63 72 61 6e 67 65 66 69 72   ┆e one *) oper (binary, crangefir┆
0x06fce0…06fd00             73 74 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 29 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79   ┆st, exprtypename);  with  cur_ty┆
0x06fd00…06fd20             70 65 6e 6f 64 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 73 75 62 65 78 70 72 3a 3d 20 74 61 6b 65   ┆penode ^ do begin subexpr:= take┆
0x06fd20…06fd40             5f 73 74 61 63 6b 74 6f 70 3b 20 28 2a 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 74 77 6f 20 65   ┆_stacktop; (* remember the two e┆
0x06fd40…06fd60             78 70 72 65 73 73 69 6f 6e 73 20 2a 29 0a 69 6e 64 65 78 20 20 3a 3d 20 65 78 70 72 74 79 70 65   ┆xpressions *) index  := exprtype┆
0x06fd60…06fd80             6e 61 6d 65 3b 0a 28 2a 20 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 73 69 6d 70 6c 65 20 5d   ┆name; (* contents:= [ t_simple ]┆
0x06fd80…06fda0             3b 20 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 61 72 72 61 79 3a 0a 0a   ┆;  *) end;  end;    cendarray:  ┆
0x06fda0…06fdc0             62 65 67 69 6e 0a 0a 74 65 73 74 5f 72 65 63 75 72 73 69 76 65 5f 74 79 70 65 3b 0a 0a 65 6c 65   ┆begin  test_recursive_type;  ele┆
0x06fdc0…06fde0             6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 20 70 6f 70 74 79 70 65 3b 0a 69   ┆mname:= cur_typename; poptype; i┆
0x06fde0…06fe00             6e 64 65 78 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 20 70 6f 70 74 79 70 65   ┆ndexname:= cur_typename; poptype┆
0x06fe00…06fe20 (29, 1, 11) 3b 0a 0a 74 65 73 74 69 6e 64 65 78 20 28 69 6e 64 65 78 6e 61 6d 65 29 3b 0a 0a 77 69 74 68 20   ┆;  testindex (indexname);  with ┆
0x06fe20…06fe40             20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f   ┆ cur_typenode ^ do (* typenode o┆
0x06fe40…06fe60             66 20 61 72 72 61 79 20 2a 29 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 65 6c 65 6d 6e   ┆f array *) begin element:= elemn┆
0x06fe60…06fe80             61 6d 65 3b 0a 69 6e 64 65 78 20 20 3a 3d 20 69 6e 64 65 78 6e 61 6d 65 3b 0a 63 6f 6e 74 65 6e   ┆ame; index  := indexname; conten┆
0x06fe80…06fea0             74 73 3a 3d 20 20 20 65 6c 65 6d 6e 61 6d 65 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 63 6f 6e 74   ┆ts:=   elemname ^ . typ ^ . cont┆
0x06fea0…06fec0             65 6e 74 73 3b 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 63 6f 6e 74 65 6e 74 73 20 66 72 6f 6d 20   ┆ents; (* transfer contents from ┆
0x06fec0…06fee0             65 6c 65 6d 65 6e 74 20 74 79 70 65 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65   ┆element type *) end;  end;    ce┆
0x06fee0…06ff00             6e 64 66 69 65 6c 64 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 79 70 65 73 20 6d 61 79 20 6e 6f   ┆ndfield:  begin  (* types may no┆
0x06ff00…06ff20             74 20 62 65 20 72 65 63 75 72 73 69 76 65 20 2a 29 0a 74 65 73 74 5f 72 65 63 75 72 73 69 76 65   ┆t be recursive *) test_recursive┆
0x06ff20…06ff40             5f 74 79 70 65 3b 0a 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69 73 74   ┆_type;  with  listlast ^ do list┆
0x06ff40…06ff60             74 6f 70 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72 73 74 20   ┆top:= nextname; while listfirst ┆
0x06ff60…06ff80             3c 3e 20 6c 69 73 74 74 6f 70 20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20   ┆<> listtop do with  listfirst ^ ┆
0x06ff80…06ffa0             64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65   ┆do begin typename:= cur_typename┆
0x06ffa0…06ffc0             3b 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 65 6c   ┆; listfirst:= nextname; end;  el┆
0x06ffc0…06ffe0             65 6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 70 6f 70 74 79 70 65 3b 20   ┆emname:= cur_typename; poptype; ┆
0x06ffe0…070000             28 2a 20 72 65 74 75 72 6e 20 74 6f 20 72 65 63 6f 72 64 20 74 79 70 65 6e 61 6d 65 2f 74 79 70   ┆(* return to record typename/typ┆
0x070000…070020 (29, 1, 12) 65 6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 66 69 65 6c 64 2d 63 6f 6e 74   ┆enode *)  (* transfer field-cont┆
0x070020…070040             65 6e 74 73 20 74 6f 20 72 65 63 6f 72 64 2d 63 6f 6e 74 65 6e 74 73 20 2a 29 0a 77 69 74 68 20   ┆ents to record-contents *) with ┆
0x070040…070060             20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f   ┆ cur_typenode ^ do (* typenode o┆
0x070060…070080             66 20 72 65 63 6f 72 64 20 2a 29 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 63 6f 6e 74 65 6e 74 73 20   ┆f record *) contents:= contents ┆
0x070080…0700a0             2b 20 20 20 65 6c 65 6d 6e 61 6d 65 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 63 6f 6e 74 65 6e 74   ┆+   elemname ^ . typ ^ . content┆
0x0700a0…0700c0             73 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 72 65 63 6f 72 64 3a 0a 0a 62 65 67 69 6e 0a 0a   ┆s;  end;    cendrecord:  begin  ┆
0x0700c0…0700e0             65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 74 68 65 20 77   ┆endnamelevel;  (* transfer the w┆
0x0700e0…070100             68 6f 6c 65 20 63 75 72 72 65 6e 74 20 6e 61 6d 65 6c 69 73 74 2c 20 69 2e 65 2e 20 74 68 65 20   ┆hole current namelist, i.e. the ┆
0x070100…070120             6c 69 73 74 20 6f 66 20 66 69 65 6c 64 2d 6e 61 6d 65 73 20 2a 29 0a 28 2a 20 20 20 61 6e 64 20   ┆list of field-names *) (*   and ┆
0x070120…070140             74 68 65 69 72 20 69 6d 70 6c 69 63 69 74 20 74 79 70 65 73 2c 20 74 6f 20 74 68 65 20 72 65 63   ┆their implicit types, to the rec┆
0x070140…070160             6f 72 64 2d 74 79 70 65 6e 6f 64 65 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e   ┆ord-typenode *)  with  cur_typen┆
0x070160…070180             6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 72 65 63 6f 72 64 20 2a   ┆ode ^ do (* typenode of record *┆
0x070180…0701a0             29 0a 77 69 74 68 20 20 6e 61 6d 65 6c 65 76 65 6c 5e 2e 6e 65 78 74 5f 6c 65 76 65 6c 5e 20 64   ┆) with  namelevel^.next_level^ d┆
0x0701a0…0701c0             6f 20 28 2a 20 6a 75 73 74 20 74 65 72 6d 69 6e 61 74 65 64 20 66 69 65 6c 64 20 6c 69 73 74 20   ┆o (* just terminated field list ┆
0x0701c0…0701e0             2a 29 0a 65 6c 65 6d 65 6e 74 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 0a 0a 70 6f 70 6c 69 73 74   ┆*) element:= firstname;  poplist┆
0x0701e0…070200             3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 6f 75 74 65 72 20 6e 61 6d 65 6c 69 73 74 20 2a 29   ┆; (* return to outer namelist *)┆
0x070200…070220 (29, 1, 13) 0a 0a 65 6e 64 3b 0a 0c 63 65 6e 64 73 65 74 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 69 6e 64 65   ┆  end;  cendset:  begin  (* inde┆
0x070220…070240             78 6e 61 6d 65 20 6d 75 73 74 20 62 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74 79 70 65 20 2a   ┆xname must be enumeration type *┆
0x070240…070260             29 0a 0a 69 6e 64 65 78 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 70 6f 70   ┆)  indexname:= cur_typename; pop┆
0x070260…070280             74 79 70 65 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 73 65 74 2d 74 79 70 65 20 2a 29 0a 0a   ┆type; (* return to set-type *)  ┆
0x070280…0702a0             74 65 73 74 69 6e 64 65 78 20 28 69 6e 64 65 78 6e 61 6d 65 29 3b 0a 0a 77 69 74 68 20 20 63 75   ┆testindex (indexname);  with  cu┆
0x0702a0…0702c0             72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 73   ┆r_typenode ^ do (* typenode of s┆
0x0702c0…0702e0             65 74 20 2a 29 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 69 6e 64 65 78 6e 61 6d 65 3b   ┆et *) begin element:= indexname;┆
0x0702e0…070300             0a 28 2a 20 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 73 69 6d 70 6c 65 20 5d 3b 20 20 2a 29   ┆ (* contents:= [ t_simple ];  *)┆
0x070300…070320             0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 70 6f 6f 6c 3a 0a 0a 62 65 67 69 6e 0a   ┆ end;  end;    cendpool:  begin ┆
0x070320…070340             0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 3c 63 61 72 64 69 6e 61 6c 69 74 79 3e 20 69 73 20 3c   ┆ (* test that <cardinality> is <┆
0x070340…070360             69 6e 74 65 67 65 72 3e 20 2a 29 0a 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74   ┆integer> *)  resolvetype (stackt┆
0x070360…070380             6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 2c 20 65   ┆op, exprtypename, exprelement, e┆
0x070380…0703a0             78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3c 3e   ┆xprbasekind); if exprbasekind <>┆
0x0703a0…0703c0             20 63 69 6e 74 65 67 65 72 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 70 6f 6f 6c   ┆ cinteger then begin error (pool┆
0x0703c0…0703e0             5f 63 61 72 64 69 6e 61 6c 69 74 79 5f 6d 75 73 74 5f 62 65 5f 69 6e 74 65 67 65 72 29 3b 0a 65   ┆_cardinality_must_be_integer); e┆
0x0703e0…070400             6e 64 3b 0a 0a 28 2a 20 74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20 74 79 70 65 20 2a 29   ┆nd;  (* test legality of type *)┆
0x070400…070420 (29, 1, 14) 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70   ┆  with  cur_typenode ^ do (* typ┆
0x070420…070440             65 6e 6f 64 65 20 6f 66 20 70 6f 6f 6c 2d 73 69 7a 65 74 79 70 65 20 2a 29 0a 28 2a 20 69 74 20   ┆enode of pool-sizetype *) (* it ┆
0x070440…070460             6d 61 79 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 3a 20 73 65 6d 61 70 68 6f 72 65 2c 20 73 68 61 64   ┆may not contain: semaphore, shad┆
0x070460…070480             6f 77 2c 20 72 65 66 65 72 65 6e 63 65 2c 20 70 6f 6f 6c 2c 20 70 6f 69 6e 74 65 72 20 2a 29 0a   ┆ow, reference, pool, pointer *) ┆
0x070480…0704a0             69 66 20 63 6f 6e 74 65 6e 74 73 20 2a 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 2c 20 74 5f 72   ┆if contents * [ t_semaphore, t_r┆
0x0704a0…0704c0             65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 20 74 5f 73 68 61 64 6f 77   ┆eference, t_extprocess, t_shadow┆
0x0704c0…0704e0             2c 20 74 5f 70 6f 6f 6c 2c 20 74 5f 70 6f 69 6e 74 65 72 20 5d 20 3c 3e 20 5b 5d 20 74 68 65 6e   ┆, t_pool, t_pointer ] <> [] then┆
0x0704e0…070500             0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f 70 6f 6f 6c 5f 74 79 70 65 29   ┆ begin error (illegal_pool_type)┆
0x070500…070520             3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 65 6c 65 6d 6e 61 6d 65   ┆; set_error_type; end;  elemname┆
0x070520…070540             3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 70 6f 70 74 79 70 65 3b 20 28 2a 20 72 65 74   ┆:= cur_typename; poptype; (* ret┆
0x070540…070560             75 72 6e 20 74 6f 20 70 6f 6f 6c 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f   ┆urn to pool *)  with  cur_typeno┆
0x070560…070580             64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 70 6f 6f 6c 20 2a 29 0a 62   ┆de ^ do (* typenode of pool *) b┆
0x070580…0705a0             65 67 69 6e 0a 73 75 62 65 78 70 72 3a 3d 20 74 61 6b 65 5f 73 74 61 63 6b 74 6f 70 3b 0a 65 6c   ┆egin subexpr:= take_stacktop; el┆
0x0705a0…0705c0             65 6d 65 6e 74 3a 3d 20 65 6c 65 6d 6e 61 6d 65 3b 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74   ┆ement:= elemname; contents:= [ t┆
0x0705c0…0705e0             5f 70 6f 6f 6c 20 5d 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 72 65 61 64 6f   ┆_pool ]; end;  end;    cendreado┆
0x0705e0…070600             6e 6c 79 2c 0a 63 65 6e 64 70 6f 69 6e 74 65 72 3a 0a 0a 62 65 67 69 6e 0a 0a 69 66 20 72 65 63   ┆nly, cendpointer:  begin  if rec┆
0x070600…070620 (29, 1, 15) 74 79 70 65 20 3d 20 63 65 6e 64 72 65 61 64 6f 6e 6c 79 20 74 68 65 6e 0a 74 65 73 74 5f 72 65   ┆type = cendreadonly then test_re┆
0x070620…070640             63 75 72 73 69 76 65 5f 74 79 70 65 3b 0a 28 2a 20 6e 6f 74 69 63 65 3a 20 70 6f 69 6e 74 65 72   ┆cursive_type; (* notice: pointer┆
0x070640…070660             2d 74 6f 2d 74 79 70 65 20 69 73 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72 65 64 20 72 65 63 75 72   ┆-to-type is not considered recur┆
0x070660…070680             73 69 6f 6e 20 2a 29 0a 0a 65 6c 65 6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65   ┆sion *)  elemname:= cur_typename┆
0x070680…0706a0             3b 0a 70 6f 70 74 79 70 65 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 72 65 61 64 6f 6e 6c 79   ┆; poptype; (* return to readonly┆
0x0706a0…0706c0             2f 70 6f 69 6e 74 65 72 20 74 79 70 65 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65   ┆/pointer type *)  with  cur_type┆
0x0706c0…0706e0             6e 6f 64 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 65 6c 65 6d 6e 61   ┆node ^ do begin element:= elemna┆
0x0706e0…070700             6d 65 3b 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 70 6f 69 6e 74 65 72 20 74 68 65   ┆me; if rectype = cendpointer the┆
0x070700…070720             6e 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 70 6f 69 6e 74 65 72 20 5d 0a 65 6c 73 65 0a   ┆n contents:= [ t_pointer ] else ┆
0x070720…070740             63 6f 6e 74 65 6e 74 73 3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79 70 20 5e 20 2e   ┆contents:=   element ^ . typ ^ .┆
0x070740…070760             20 63 6f 6e 74 65 6e 74 73 20 2b 20 5b 20 74 5f 72 65 61 64 6f 6e 6c 79 20 5d 3b 0a 65 6e 64 3b   ┆ contents + [ t_readonly ]; end;┆
0x070760…070780             0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 70 61 63 6b 65 64 3a 0a 0a 62 65 67 69 6e 0a 28 2a 20 27 63 75   ┆  end;    cpacked:  begin (* 'cu┆
0x070780…0707a0             72 5f 74 79 70 65 6e 61 6d 65 2f 6e 6f 64 65 27 20 61 72 65 20 6e 6f 64 65 73 20 6f 66 20 72 65   ┆r_typename/node' are nodes of re┆
0x0707a0…0707c0             63 6f 72 64 2f 61 72 72 61 79 20 28 6f 72 20 73 65 74 29 20 2a 29 0a 0a 77 69 74 68 20 20 63 75   ┆cord/array (or set) *)  with  cu┆
0x0707c0…0707e0             72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 70 61 63 6b 66 6c 61 67 3a 3d 20 74 72 75 65 3b   ┆r_typenode ^ do packflag:= true;┆
0x0707e0…070800             0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 62 65 67 69 6e 3a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d   ┆  end;    cbegin: prepare_statem┆
0x070800…070820 (30, 0, 1)  65 6e 74 3b 0a 0a 63 65 6e 64 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 63 6c 61 62 65   ┆ent;  cend: ; (* blind *)  clabe┆
0x070820…070840             6c 64 65 66 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 6c 61 62 65 6c 20 64 65 66 20 73 74 61 74 65   ┆ldef:  begin  (* label def state┆
0x070840…070860             6d 65 6e 74 20 2a 29 0a 64 65 66 69 6e 65 6c 61 62 65 6c 20 28 20 70 61 73 73 69 6e 20 28 2a 20   ┆ment *) definelabel ( passin (* ┆
0x070860…070880             3d 20 73 63 6f 70 65 6e 6f 20 2a 29 20 2c 20 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20   ┆= scopeno *) , passin (* = spix ┆
0x070880…0708a0             2a 29 20 29 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 63 61 73 65 73 74 61 74 3a 0a 70 72 65 70 61 72   ┆*) );  end;    ccasestat: prepar┆
0x0708a0…0708c0             65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 63 63 61 73 65 65 78 70 72 3a 0a 62 65 67 69 6e 0a   ┆e_expression;  ccaseexpr: begin ┆
0x0708c0…0708e0             70 75 73 68 6e 61 6d 65 20 28 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 29 3b 20 28 2a 20 62 65 63   ┆pushname (case_typename); (* bec┆
0x0708e0…070900             61 75 73 65 20 63 61 73 65 20 6d 61 79 20 62 65 20 6e 65 73 74 65 64 20 2a 29 0a 63 61 73 65 5f   ┆ause case may be nested *) case_┆
0x070900…070920             74 79 70 65 6e 61 6d 65 3a 3d 20 74 65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e 20 28 73 74 61 63   ┆typename:= testenumeration (stac┆
0x070920…070940             6b 74 6f 70 29 3b 0a 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 65 78 70 72 74 79 70 65 6e   ┆ktop); case_typename:= exprtypen┆
0x070940…070960             61 6d 65 3b 20 20 28 2a 20 6e 62 6e 62 6e 62 6e 62 3a 20 67 65 74 20 73 69 6d 70 6c 69 66 69 65   ┆ame;  (* nbnbnbnb: get simplifie┆
0x070960…070980             64 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 0a 65 6d 69 74 20 28 78 63 61 73 65 73 74 61 74 29 3b   ┆d typename *)  emit (xcasestat);┆
0x070980…0709a0             0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a   ┆  emit_and_release (stacktop);  ┆
0x0709a0…0709c0             65 6d 69 74 20 28 78 63 61 73 65 29 3b 0a 65 6e 64 3b 0a 0a 0a 63 63 61 73 65 6c 61 62 65 6c 3a   ┆emit (xcase); end;   ccaselabel:┆
0x0709c0…0709e0             0a 62 65 67 69 6e 0a 28 2a 20 74 68 65 20 63 61 73 65 6c 61 62 65 6c 20 6d 75 73 74 20 68 61 76   ┆ begin (* the caselabel must hav┆
0x0709e0…070a00             65 20 73 61 6d 65 20 74 79 70 65 20 61 73 20 74 68 65 20 63 61 73 65 2d 65 78 70 72 65 73 73 69   ┆e same type as the case-expressi┆
0x070a00…070a20 (30, 0, 2)  6f 6e 20 2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70   ┆on *) resolvetype (stacktop, exp┆
0x070a20…070a40             72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65   ┆rtypename, exprelement, exprbase┆
0x070a40…070a60             6b 69 6e 64 29 3b 0a 69 66 20 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20 65 78 70 72 74   ┆kind); if case_typename <> exprt┆
0x070a60…070a80             79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 20 20 65 72 72 6f 72 20 28 63 61 73 65 5f 69 6e 63 6f 6d   ┆ypename then   error (case_incom┆
0x070a80…070aa0             70 61 74 69 62 6c 65 29 3b 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61   ┆patible);  emit_and_release (sta┆
0x070aa0…070ac0             63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74 20 28 78 63 61 73 65 6c 61 62 65 6c 29 3b 0a 0a 65 6e 64   ┆cktop);  emit (xcaselabel);  end┆
0x070ac0…070ae0             3b 0a 0a 0a 0a 63 63 61 73 65 6c 61 62 65 6c 72 61 6e 67 65 3a 0a 62 65 67 69 6e 0a 28 2a 20 62   ┆;    ccaselabelrange: begin (* b┆
0x070ae0…070b00             6f 74 68 20 63 61 73 65 6c 61 62 65 6c 73 20 6d 75 73 74 20 6d 61 74 63 68 20 74 68 65 20 63 61   ┆oth caselabels must match the ca┆
0x070b00…070b20             73 65 2d 65 78 70 72 65 73 73 69 6f 6e 20 2a 29 0a 65 71 75 61 6c 74 79 70 65 73 20 28 6e 65 78   ┆se-expression *) equaltypes (nex┆
0x070b20…070b40             74 74 6f 70 2c 20 73 74 61 63 6b 74 6f 70 2c 20 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 2c 20 63   ┆ttop, stacktop, case_typename, c┆
0x070b40…070b60             61 73 65 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 0a 28 2a 20 62 69 6e 64 20 74 68 65 20   ┆ase_incompatible);  (* bind the ┆
0x070b60…070b80             74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 67 65 74 68 65 72 20 2a 29 0a 6f 70 65 72   ┆two expressions together *) oper┆
0x070b80…070ba0             20 28 62 69 6e 61 72 79 2c 20 63 72 61 6e 67 65 66 69 72 73 74 2c 20 6e 69 6c 6e 61 6d 65 20 28   ┆ (binary, crangefirst, nilname (┆
0x070ba0…070bc0             2a 20 69 72 72 65 6c 6c 20 74 79 70 65 6e 61 6d 65 20 2a 29 20 29 3b 0a 65 6d 69 74 5f 61 6e 64   ┆* irrell typename *) ); emit_and┆
0x070bc0…070be0             5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74 20 28 78 63 61 73   ┆_release (stacktop);  emit (xcas┆
0x070be0…070c00             65 72 61 6e 67 65 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 6f 74 68 65 72 77 69 73 65 3a 0a 65 6d   ┆erange);  end;    cotherwise: em┆
0x070c00…070c20 (30, 0, 3)  69 74 20 28 78 6f 74 68 65 72 77 69 73 65 29 3b 0a 0a 0a 0a 63 63 61 73 65 6c 69 73 74 3a 0a 62   ┆it (xotherwise);    ccaselist: b┆
0x070c20…070c40             65 67 69 6e 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 65 6d 69 74 20 28 78 65   ┆egin prepare_statement; emit (xe┆
0x070c40…070c60             6e 64 63 61 73 65 6c 69 73 74 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 61 73 65 65 6c 65 6d 65 6e   ┆ndcaselist); end;    ccaseelemen┆
0x070c60…070c80             74 3a 0a 62 65 67 69 6e 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 65 6d 69   ┆t: begin prepare_expression; emi┆
0x070c80…070ca0             74 20 28 78 65 6e 64 63 61 73 65 73 74 61 74 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 63 61   ┆t (xendcasestat); end;    cendca┆
0x070ca0…070cc0             73 65 3a 0a 62 65 67 69 6e 0a 0a 65 6d 69 74 20 28 78 65 6e 64 63 61 73 65 29 3b 0a 0a 28 2a 20   ┆se: begin  emit (xendcase);  (* ┆
0x070cc0…070ce0             75 6e 73 74 61 63 6b 20 63 61 73 65 20 74 79 70 65 20 6e 61 6d 65 20 2a 29 0a 63 61 73 65 5f 74   ┆unstack case type name *) case_t┆
0x070ce0…070d00             79 70 65 6e 61 6d 65 3a 3d 20 70 6f 70 6e 61 6d 65 3b 0a 0a 70 72 65 70 61 72 65 5f 73 74 61 74   ┆ypename:= popname;  prepare_stat┆
0x070d00…070d20             65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 66 6f 72 73 74 61 74 3a 0a 70 72 65 70 61 72   ┆ement;  end;    cforstat: prepar┆
0x070d20…070d40             65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 63 66 6f 72 76 61 72 3a 0a 62 65 67 69 6e 0a 28 2a   ┆e_expression;  cforvar: begin (*┆
0x070d40…070d60             20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62   ┆ the controlling variable must b┆
0x070d60…070d80             65 3a 20 61 73 73 69 67 6e 61 62 6c 65 2c 20 75 6e 70 61 63 6b 65 64 20 76 61 72 69 61 62 6c 65   ┆e: assignable, unpacked variable┆
0x070d80…070da0             20 2a 29 0a 74 65 73 74 61 73 73 69 67 6e 61 62 6c 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 74   ┆ *) testassignable (stacktop); t┆
0x070da0…070dc0             65 73 74 75 6e 70 61 63 6b 65 64 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 66 6f 72 5f 74 79 70 65   ┆estunpacked (stacktop); for_type┆
0x070dc0…070de0             6e 61 6d 65 3a 3d 20 74 65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e 20 28 73 74 61 63 6b 74 6f 70   ┆name:= testenumeration (stacktop┆
0x070de0…070e00             29 3b 0a 66 6f 72 5f 62 61 73 65 74 79 70 65 6e 61 6d 65 3a 3d 20 65 78 70 72 74 79 70 65 6e 61   ┆); for_basetypename:= exprtypena┆
0x070e00…070e20 (30, 0, 4)  6d 65 3b 20 20 28 2a 20 6e 62 6e 62 6e 62 6e 62 3a 20 67 65 74 20 73 69 6d 70 6c 69 66 69 65 64   ┆me;  (* nbnbnbnb: get simplified┆
0x070e20…070e40             20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 0a 65 6d 69 74 20 28 78 66 6f 72 73 74 61 74 29 3b 0a 65   ┆ typename *)  emit (xforstat); e┆
0x070e40…070e60             6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6d 69 74   ┆mit_and_release (stacktop); emit┆
0x070e60…070e80             20 28 78 66 6f 72 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 75 70 2c 0a 63 64 6f 77 6e 3a 0a 62 65   ┆ (xfor);  end;    cup, cdown: be┆
0x070e80…070ea0             67 69 6e 0a 65 71 75 61 6c 74 79 70 65 73 20 28 6e 65 78 74 74 6f 70 2c 20 73 74 61 63 6b 74 6f   ┆gin equaltypes (nexttop, stackto┆
0x070ea0…070ec0             70 2c 20 66 6f 72 5f 62 61 73 65 74 79 70 65 6e 61 6d 65 2c 20 66 6f 72 5f 69 6e 63 6f 6d 70 61   ┆p, for_basetypename, for_incompa┆
0x070ec0…070ee0             74 69 62 6c 65 29 3b 0a 0a 28 2a 20 69 6e 73 65 72 74 20 61 20 70 6f 73 73 69 62 6c 65 20 72 61   ┆tible);  (* insert a possible ra┆
0x070ee0…070f00             6e 67 65 2d 74 65 73 74 20 61 66 74 65 72 20 65 61 63 68 20 6f 66 20 74 68 65 20 74 77 6f 20 65   ┆nge-test after each of the two e┆
0x070f00…070f20             78 70 72 65 73 73 69 6f 6e 73 20 2a 29 0a 74 65 73 74 72 61 6e 67 65 20 28 66 6f 72 5f 74 79 70   ┆xpressions *) testrange (for_typ┆
0x070f20…070f40             65 6e 61 6d 65 29 3b 0a 66 6f 72 5f 65 78 70 72 3a 3d 20 74 61 6b 65 5f 73 74 61 63 6b 74 6f 70   ┆ename); for_expr:= take_stacktop┆
0x070f40…070f60             3b 0a 74 65 73 74 72 61 6e 67 65 20 28 66 6f 72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 0a 65 6d 69   ┆; testrange (for_typename);  emi┆
0x070f60…070f80             74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 20 28 2a 20 73 74 61   ┆t_and_release (stacktop); (* sta┆
0x070f80…070fa0             72 74 2d 76 61 6c 75 65 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 75 70 20 74 68 65   ┆rt-value *) if rectype = cup the┆
0x070fa0…070fc0             6e 0a 65 6d 69 74 20 28 78 75 70 29 0a 65 6c 73 65 0a 65 6d 69 74 20 28 78 64 6f 77 6e 29 3b 0a   ┆n emit (xup) else emit (xdown); ┆
0x070fc0…070fe0             65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 66 6f 72 5f 65 78 70 72 29 3b 20 28 2a 20   ┆emit_and_release (for_expr); (* ┆
0x070fe0…071000             65 6e 64 2d 76 61 6c 75 65 20 2a 29 0a 0a 65 6d 69 74 20 28 78 64 6f 29 3b 0a 0a 70 72 65 70 61   ┆end-value *)  emit (xdo);  prepa┆
0x071000…071020 (30, 0, 5)  72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0a 63 65 6e 64 66 6f 72 3a 0a 65 6d   ┆re_statement;  end;  cendfor: em┆
0x071020…071040             69 74 20 28 78 65 6e 64 66 6f 72 29 3b 0a 0c 63 69 66 73 74 61 74 3a 0a 70 72 65 70 61 72 65 5f   ┆it (xendfor);  cifstat: prepare_┆
0x071040…071060             65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 63 69 66 65 78 70 72 3a 0a 62 65 67 69 6e 0a 0a 61   ┆expression;    cifexpr: begin  a┆
0x071060…071080             73 73 75 72 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e 61 6d   ┆ssure (stacktop, boolean_typenam┆
0x071080…0710a0             65 2c 20 69 66 5f 74 79 70 65 29 3b 0a 0a 65 6d 69 74 20 28 78 69 66 73 74 61 74 29 3b 0a 0a 65   ┆e, if_type);  emit (xifstat);  e┆
0x0710a0…0710c0             6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69   ┆mit_and_release (stacktop);  emi┆
0x0710c0…0710e0             74 20 28 78 69 66 65 78 70 72 29 3b 0a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b   ┆t (xifexpr);  prepare_statement;┆
0x0710e0…071100             0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6c 73 65 3a 0a 65 6d 69 74 20 28 78 65 6c 73 65 29 3b 0a 0a   ┆  end;    celse: emit (xelse);  ┆
0x071100…071120             0a 0a 63 65 6e 64 69 66 3a 0a 65 6d 69 74 20 28 78 69 66 29 3b 0a 0a 0c 63 72 65 70 65 61 74 73   ┆  cendif: emit (xif);   crepeats┆
0x071120…071140             74 61 74 3a 0a 65 6d 69 74 20 28 78 72 65 70 65 61 74 29 3b 0a 0a 0a 0a 63 75 6e 74 69 6c 3a 0a   ┆tat: emit (xrepeat);    cuntil: ┆
0x071140…071160             70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 63 65 6e 64 72 65 70 65 61   ┆prepare_expression;    cendrepea┆
0x071160…071180             74 3a 0a 62 65 67 69 6e 0a 0a 61 73 73 75 72 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 62 6f 6f 6c   ┆t: begin  assure (stacktop, bool┆
0x071180…0711a0             65 61 6e 5f 74 79 70 65 6e 61 6d 65 2c 20 72 65 70 65 61 74 5f 74 79 70 65 29 3b 0a 0a 65 6d 69   ┆ean_typename, repeat_type);  emi┆
0x0711a0…0711c0             74 20 28 78 75 6e 74 69 6c 29 3b 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73   ┆t (xuntil);  emit_and_release (s┆
0x0711c0…0711e0             74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74 20 28 78 65 6e 64 72 65 70 65 61 74 29 3b 0a 0a 70   ┆tacktop);  emit (xendrepeat);  p┆
0x0711e0…071200             72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0c 63 6c 6f 6f 70 73 74   ┆repare_statement;  end;  cloopst┆
0x071200…071220 (30, 0, 6)  61 74 3a 0a 65 6d 69 74 28 78 6c 6f 6f 70 73 74 61 74 29 3b 0a 0a 63 65 6e 64 6c 6f 6f 70 73 74   ┆at: emit(xloopstat);  cendloopst┆
0x071220…071240             61 74 3a 0a 65 6d 69 74 28 78 65 6e 64 6c 6f 6f 70 73 74 61 74 29 3b 0a 0a 63 63 6f 6e 74 6c 6f   ┆at: emit(xendloopstat);  ccontlo┆
0x071240…071260             6f 70 73 74 61 74 2c 0a 63 65 78 69 74 6c 6f 6f 70 73 74 61 74 3a 0a 62 65 67 69 6e 0a 69 66 20   ┆opstat, cexitloopstat: begin if ┆
0x071260…071280             72 65 63 74 79 70 65 3d 63 63 6f 6e 74 6c 6f 6f 70 73 74 61 74 20 74 68 65 6e 0a 65 6d 69 74 28   ┆rectype=ccontloopstat then emit(┆
0x071280…0712a0             78 63 6f 6e 74 6c 6f 6f 70 73 74 61 74 29 0a 65 6c 73 65 0a 65 6d 69 74 28 78 65 78 69 74 6c 6f   ┆xcontloopstat) else emit(xexitlo┆
0x0712a0…0712c0             6f 70 73 74 61 74 29 3b 0a 63 61 73 65 20 70 61 73 73 77 6f 72 64 20 28 2a 20 6b 69 6e 64 20 6f   ┆opstat); case password (* kind o┆
0x0712c0…0712e0             66 20 72 65 70 65 74 69 74 69 76 65 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 20 6f 66 0a 63 6c 6f   ┆f repetitive statement *) of clo┆
0x0712e0…071300             6f 70 73 74 61 74 3a 20 65 6d 69 74 28 78 6c 6f 6f 70 73 74 61 74 29 3b 0a 63 72 65 70 65 61 74   ┆opstat: emit(xloopstat); crepeat┆
0x071300…071320             73 74 61 74 3a 20 65 6d 69 74 28 78 72 65 70 65 61 74 29 3b 0a 63 66 6f 72 73 74 61 74 3a 20 65   ┆stat: emit(xrepeat); cforstat: e┆
0x071320…071340             6d 69 74 28 78 66 6f 72 73 74 61 74 29 3b 0a 63 77 68 69 6c 65 73 74 61 74 3a 20 65 6d 69 74 28   ┆mit(xforstat); cwhilestat: emit(┆
0x071340…071360             78 77 68 69 6c 65 29 3b 0a 65 6c 73 65 0a 63 6f 6d 70 5f 65 72 72 6f 72 28 75 6e 6b 6e 6f 77 6e   ┆xwhile); else comp_error(unknown┆
0x071360…071380             5f 72 65 63 74 79 70 65 29 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 63 6f 6e 74 6c 6f 6f 70   ┆_rectype); end; end; (* contloop┆
0x071380…0713a0             73 74 61 74 2f 65 78 69 74 6c 6f 6f 70 73 74 61 74 20 2a 29 0a 0a 63 65 78 69 74 6c 6f 63 6b 3a   ┆stat/exitloopstat *)  cexitlock:┆
0x0713a0…0713c0             0a 62 65 67 69 6e 0a 65 6d 69 74 28 78 65 78 69 74 6c 6f 63 6b 29 3b 0a 63 61 73 65 20 70 61 73   ┆ begin emit(xexitlock); case pas┆
0x0713c0…0713e0             73 77 6f 72 64 20 28 2a 20 6b 69 6e 64 3a 6c 6f 63 6b 20 6f 72 20 63 68 61 6e 6e 65 6c 20 2a 29   ┆sword (* kind:lock or channel *)┆
0x0713e0…071400             20 6f 66 0a 63 6c 6f 63 6b 73 74 61 74 3a 20 28 2a 20 62 6f 74 68 20 6b 69 6e 64 73 20 6f 66 20   ┆ of clockstat: (* both kinds of ┆
0x071400…071420 (30, 0, 7)  6c 6f 63 6b 20 2a 29 20 65 6d 69 74 28 78 6c 6f 63 6b 73 74 61 74 29 3b 0a 63 63 68 61 6e 6e 65   ┆lock *) emit(xlockstat); cchanne┆
0x071420…071440             6c 73 74 61 74 3a 20 65 6d 69 74 28 78 63 68 61 6e 6e 65 6c 29 3b 0a 65 6c 73 65 0a 63 6f 6d 70   ┆lstat: emit(xchannel); else comp┆
0x071440…071460             5f 65 72 72 6f 72 28 75 6e 6b 6e 6f 77 6e 5f 72 65 63 74 79 70 65 29 3b 0a 65 6e 64 3b 0a 65 6e   ┆_error(unknown_rectype); end; en┆
0x071460…071480             64 3b 20 28 2a 20 65 78 69 74 6c 6f 63 6b 20 2a 29 0a 0a 63 65 78 69 74 73 74 61 74 3a 0a 62 65   ┆d; (* exitlock *)  cexitstat: be┆
0x071480…0714a0             67 69 6e 0a 65 6d 69 74 28 78 65 78 69 74 73 74 61 74 29 3b 0a 65 6e 64 3b 0a 0c 0a 63 77 68 69   ┆gin emit(xexitstat); end;   cwhi┆
0x0714a0…0714c0             6c 65 73 74 61 74 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20 28 78 77 68 69 6c 65 29 3b 0a 70 72 65   ┆lestat: begin emit (xwhile); pre┆
0x0714c0…0714e0             70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 77 68 69 6c 65 65   ┆pare_expression; end;    cwhilee┆
0x0714e0…071500             78 70 72 3a 0a 62 65 67 69 6e 0a 0a 61 73 73 75 72 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 62 6f   ┆xpr: begin  assure (stacktop, bo┆
0x071500…071520             6f 6c 65 61 6e 5f 74 79 70 65 6e 61 6d 65 2c 20 77 68 69 6c 65 5f 74 79 70 65 29 3b 0a 0a 65 6d   ┆olean_typename, while_type);  em┆
0x071520…071540             69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74   ┆it_and_release (stacktop);  emit┆
0x071540…071560             20 28 78 77 68 69 6c 65 65 78 70 72 29 3b 0a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e   ┆ (xwhileexpr);  prepare_statemen┆
0x071560…071580             74 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 77 68 69 6c 65 3a 0a 65 6d 69 74 20 28 78 65 6e   ┆t;  end;    cendwhile: emit (xen┆
0x071580…0715a0             64 77 68 69 6c 65 29 3b 0a 0a 0c 0a 63 6c 6f 63 6b 73 74 61 74 2c 0a 63 6c 6f 63 6b 6d 65 73 73   ┆dwhile);    clockstat, clockmess┆
0x0715a0…0715c0             74 61 74 2c 0a 63 77 69 74 68 63 6f 6d 6d 61 2c 0a 63 77 69 74 68 73 74 61 74 3a 0a 0a 62 65 67   ┆tat, cwithcomma, cwithstat:  beg┆
0x0715c0…0715e0             69 6e 0a 0a 63 61 73 65 20 72 65 63 74 79 70 65 20 6f 66 0a 63 6c 6f 63 6b 73 74 61 74 3a 0a 62   ┆in  case rectype of clockstat: b┆
0x0715e0…071600             65 67 69 6e 0a 73 74 61 72 74 5f 6f 66 5f 70 72 6f 74 65 63 74 65 64 3a 3d 20 74 72 75 65 3b 20   ┆egin start_of_protected:= true; ┆
0x071600…071620 (30, 0, 8)  20 28 2a 20 70 72 65 70 61 72 65 3a 20 67 6f 74 6f 20 6e 6f 74 20 6f 75 74 20 6f 66 20 6c 6f 63   ┆ (* prepare: goto not out of loc┆
0x071620…071640             6b 2d 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 65 6d 69 74 20 28 78 6c 6f 63 6b 73 74 61 74 29 3b   ┆k-statement *) emit (xlockstat);┆
0x071640…071660             0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 66 69 72 73 74 6c 6f 63 6b 3b 0a 65 6e 64 3b 0a 63 6c 6f   ┆ levelkind:= firstlock; end; clo┆
0x071660…071680             63 6b 6d 65 73 73 74 61 74 3a 0a 62 65 67 69 6e 0a 73 74 61 72 74 5f 6f 66 5f 70 72 6f 74 65 63   ┆ckmesstat: begin start_of_protec┆
0x071680…0716a0             74 65 64 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 70 72 65 70 61 72 65 3a 20 67 6f 74 6f 20 6e 6f   ┆ted:= true;  (* prepare: goto no┆
0x0716a0…0716c0             74 20 6f 75 74 20 6f 66 20 6c 6f 63 6b 2d 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 65 6d 69 74 20   ┆t out of lock-statement *) emit ┆
0x0716c0…0716e0             28 78 6c 6f 63 6b 6d 65 73 73 74 61 74 29 3b 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 66 69 72 73   ┆(xlockmesstat); levelkind:= firs┆
0x0716e0…071700             74 6c 6f 63 6b 3b 0a 65 6e 64 3b 0a 63 77 69 74 68 63 6f 6d 6d 61 2c 0a 63 77 69 74 68 73 74 61   ┆tlock; end; cwithcomma, cwithsta┆
0x071700…071720             74 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20 28 78 77 69 74 68 29 3b 0a 69 66 20 72 65 63 74 79 70   ┆t: begin emit (xwith); if rectyp┆
0x071720…071740             65 20 3d 20 63 77 69 74 68 73 74 61 74 20 74 68 65 6e 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 66   ┆e = cwithstat then levelkind:= f┆
0x071740…071760             69 72 73 74 77 69 74 68 0a 65 6c 73 65 0a 69 66 20 6c 65 76 65 6c 6b 69 6e 64 3d 6e 65 78 74 6c   ┆irstwith else if levelkind=nextl┆
0x071760…071780             6f 63 6b 20 74 68 65 6e 20 28 2a 20 77 69 74 68 63 6f 6d 6d 61 20 6f 6e 6c 79 20 61 6c 6c 6f 77   ┆ock then (* withcomma only allow┆
0x071780…0717a0             65 64 20 69 6e 20 57 49 54 48 20 73 74 61 74 65 6d 65 6e 74 73 20 2a 29 0a 65 72 72 6f 72 28 73   ┆ed in WITH statements *) error(s┆
0x0717a0…0717c0             68 6f 72 74 5f 66 6f 72 6d 5f 6f 66 5f 6d 75 6c 74 69 70 6c 65 5f 6c 6f 63 6b 73 5f 6e 6f 74 5f   ┆hort_form_of_multiple_locks_not_┆
0x0717c0…0717e0             61 6c 6c 6f 77 65 64 29 3b 0a 65 6e 64 3b 0a 65 6c 73 65 3b 0a 65 6e 64 3b 20 28 2a 20 63 61 73   ┆allowed); end; else; end; (* cas┆
0x0717e0…071800             65 20 2a 29 0a 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 65 6e 64 3b 0a   ┆e *)  prepare_expression;  end; ┆
0x071800…071820 (30, 0, 9)  0a 0a 0a 63 77 69 74 68 76 61 72 3a 0a 0a 62 65 67 69 6e 0a 28 2a 20 6d 6f 73 74 20 6f 66 20 74   ┆   cwithvar:  begin (* most of t┆
0x071820…071840             68 69 73 20 61 63 74 69 6f 6e 20 69 73 20 63 6f 6d 6d 6f 6e 20 66 6f 72 20 6c 6f 63 6b 2d 20 61   ┆his action is common for lock- a┆
0x071840…071860             6e 64 20 77 69 74 68 2d 73 74 61 74 65 6d 65 6e 74 73 20 2a 29 0a 0a 72 65 73 6f 6c 76 65 74 79   ┆nd with-statements *)  resolvety┆
0x071860…071880             70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72   ┆pe (stacktop, exprtypename, expr┆
0x071880…0718a0             65 6c 65 6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 77 69 74 68 20 20 73 74   ┆element, exprbasekind); with  st┆
0x0718a0…0718c0             61 63 6b 74 6f 70 20 5e 20 64 6f 0a 77 69 74 68 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 6f 70 5f 74   ┆acktop ^ do with_typename:= op_t┆
0x0718c0…0718e0             79 70 65 6e 61 6d 65 3b 0a 0a 66 69 6e 64 5f 77 69 74 68 5f 6e 61 6d 65 6b 69 6e 64 28 73 74 61   ┆ypename;  find_with_namekind(sta┆
0x0718e0…071900             63 6b 74 6f 70 29 3b 20 28 2a 20 77 69 74 68 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 6f 6e 73 74   ┆cktop); (* with_namekind:= const┆
0x071900…071920             61 6e 74 20 6f 72 20 76 61 72 2c 0a 77 69 74 68 76 61 72 5f 73 70 69 78 3a 3d 20 73 70 69 78 20   ┆ant or var, withvar_spix:= spix ┆
0x071920…071940             6f 66 20 77 69 74 68 20 76 61 72 69 61 62 6c 65 20 28 20 66 6f 72 20 65 72 72 6f 72 72 65 70 6f   ┆of with variable ( for errorrepo┆
0x071940…071960             72 74 69 6e 67 20 29 20 2a 29 0a 74 65 73 74 75 6e 70 61 63 6b 65 64 28 73 74 61 63 6b 74 6f 70   ┆rting ) *) testunpacked(stacktop┆
0x071960…071980             29 3b 20 28 2a 20 77 69 74 68 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 72 65 67 75   ┆); (* with variable must be regu┆
0x071980…0719a0             6c 61 72 20 2a 29 0a 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 63 75 72 5f 64 79 6e 5f 76   ┆lar *)  newnamelevel;  cur_dyn_v┆
0x0719a0…0719c0             61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 77 69 74 68 20 6e 61 6d 65   ┆ar_level:= namelevel;  with name┆
0x0719c0…0719e0             6c 65 76 65 6c 5e 20 64 6f 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 65 73 74 20 74 68 65 20 6c 6f   ┆level^ do  begin  (* test the lo┆
0x0719e0…071a00             63 6b 76 61 72 2f 77 69 74 68 76 61 72 20 2a 29 0a 0a 63 61 73 65 20 6e 61 6d 65 6c 69 73 74 6b   ┆ckvar/withvar *)  case namelistk┆
0x071a00…071a20 (30, 0, 10) 69 6e 64 20 6f 66 0a 0a 66 69 72 73 74 6c 6f 63 6b 2c 0a 6e 65 78 74 6c 6f 63 6b 3a 0a 62 65 67   ┆ind of  firstlock, nextlock: beg┆
0x071a20…071a40             69 6e 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 6e 65 78 74 6c 6f 63 6b 3b 0a 28 2a 20 76 61 72 69   ┆in levelkind:= nextlock; (* vari┆
0x071a40…071a60             61 62 6c 65 20 6d 75 73 74 20 62 65 20 6f 66 20 74 79 70 65 20 72 65 66 65 72 65 6e 63 65 20 2a   ┆able must be of type reference *┆
0x071a60…071a80             29 0a 69 66 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 3c 3e 20 72 65 66 65 72 65 6e 63 65 5f 74   ┆) if exprtypename <> reference_t┆
0x071a80…071aa0             79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 69 66 20 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3c 3e 20   ┆ypename then if exprbasekind <> ┆
0x071aa0…071ac0             63 65 72 72 6f 72 6b 69 6e 64 20 74 68 65 6e 20 20 28 2a 20 73 75 70 70 72 65 73 73 20 69 66 20   ┆cerrorkind then  (* suppress if ┆
0x071ac0…071ae0             61 6c 72 65 61 64 79 20 69 6e 20 65 72 72 6f 72 20 2a 29 0a 65 72 72 6f 72 20 28 6c 6f 63 6b 5f   ┆already in error *) error (lock_┆
0x071ae0…071b00             74 79 70 65 29 3b 0a 65 6e 64 3b 0a 0a 66 69 72 73 74 77 69 74 68 2c 0a 6e 65 78 74 77 69 74 68   ┆type); end;  firstwith, nextwith┆
0x071b00…071b20             3a 0a 62 65 67 69 6e 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 6e 65 78 74 77 69 74 68 3b 0a 28 2a   ┆: begin levelkind:= nextwith; (*┆
0x071b20…071b40             20 69 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 6f 66 20 61 20 72 65 63 6f 72 64 20   ┆ if the variable is of a record ┆
0x071b40…071b60             74 79 70 65 20 74 68 65 6e 20 6f 70 65 6e 20 66 6f 72 20 74 68 65 20 66 69 65 6c 64 20 6e 61 6d   ┆type then open for the field nam┆
0x071b60…071b80             65 73 20 2a 29 0a 69 66 20 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3d 20 63 72 65 63 6f 72 64 20   ┆es *) if exprbasekind = crecord ┆
0x071b80…071ba0             74 68 65 6e 0a 69 6e 73 65 72 74 5f 6e 61 6d 65 6c 69 73 74 20 28 65 78 70 72 65 6c 65 6d 65 6e   ┆then insert_namelist (exprelemen┆
0x071ba0…071bc0             74 20 28 2a 20 3d 20 66 69 65 6c 64 20 6e 61 6d 65 20 6c 69 73 74 20 6f 66 20 72 65 63 6f 72 64   ┆t (* = field name list of record┆
0x071bc0…071be0             20 2a 29 20 29 3b 0a 65 6e 64 3b 0a 0a 65 6c 73 65 3b 0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20   ┆ *) ); end;  else; end; (* case ┆
0x071be0…071c00             6e 61 6d 65 6c 69 73 74 6b 69 6e 64 20 2a 29 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73   ┆namelistkind *)  emit_and_releas┆
0x071c00…071c20 (30, 0, 11) 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 20 28 2a 20 76 61 72 69 61 62 6c 65 20 2a 29 0a 0a 69 66   ┆e (stacktop); (* variable *)  if┆
0x071c20…071c40             20 6c 65 76 65 6c 6b 69 6e 64 20 3d 20 6e 65 78 74 77 69 74 68 20 74 68 65 6e 0a 62 65 67 69 6e   ┆ levelkind = nextwith then begin┆
0x071c40…071c60             0a 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 77 69 74 68   ┆ (* initialize namelevel *) with┆
0x071c60…071c80             6e 61 6d 65 3a 3d 20 61 6c 6c 6f 63 5f 6e 61 6d 65 6e 6f 64 65 3b 0a 77 69 74 68 20 20 77 69 74   ┆name:= alloc_namenode; with  wit┆
0x071c80…071ca0             68 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 73 70 69 78 3a 3d 20 77 69 74 68 76 61 72 5f   ┆hname ^ do begin spix:= withvar_┆
0x071ca0…071cc0             73 70 69 78 3b 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 77 69 74 68 5f 6e 61 6d 65 6b 69 6e 64 3b 20   ┆spix; namekind:= with_namekind; ┆
0x071cc0…071ce0             28 2a 20 63 6f 6e 73 74 61 6e 74 20 6f 72 20 76 61 72 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e   ┆(* constant or var, depending on┆
0x071ce0…071d00             20 6e 61 6d 65 6b 69 6e 64 20 6f 66 20 77 69 74 68 76 61 72 20 2a 29 0a 74 79 70 65 6e 61 6d 65   ┆ namekind of withvar *) typename┆
0x071d00…071d20             3a 3d 20 77 69 74 68 5f 74 79 70 65 6e 61 6d 65 3b 20 20 28 2a 20 69 6e 73 65 72 74 20 74 79 70   ┆:= with_typename;  (* insert typ┆
0x071d20…071d40             65 6e 61 6d 65 20 2a 29 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 69 66 20 77 69 74 68 20 73 74   ┆ename *) end; end; (* if with st┆
0x071d40…071d60             61 74 65 6d 65 6e 74 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 6e 61 6d 65 6c 65 76 65   ┆atement *) end; (* with nameleve┆
0x071d60…071d80             6c 20 2a 29 0a 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 20 28 2a 20 77 69 74 68 2f 6c 6f 63 6b   ┆l *)  newnamelevel; (* with/lock┆
0x071d80…071da0             20 73 74 61 74 65 6d 65 6e 74 73 20 68 61 73 20 61 20 6e 61 6d 65 20 6c 65 76 65 6c 20 66 6f 72   ┆ statements has a name level for┆
0x071da0…071dc0             20 74 68 65 20 77 69 74 68 2d 6f 62 6a 65 63 74 20 61 6e 64 0a 6f 6e 65 20 66 6f 72 20 74 68 65   ┆ the with-object and one for the┆
0x071dc0…071de0             20 6e 65 77 20 6e 61 6d 65 2c 20 65 76 65 6e 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 72   ┆ new name, even if there is no r┆
0x071de0…071e00             65 6e 61 6d 69 6e 67 20 69 6e 76 6f 6c 76 65 64 20 2a 29 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20   ┆enaming involved *) levelkind:= ┆
0x071e00…071e20 (30, 0, 12) 6e 61 6d 65 6c 65 76 65 6c 5e 2e 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 3b 20 28 2a 20 72 65 73 65   ┆namelevel^.namelistkind; (* rese┆
0x071e20…071e40             74 20 6c 65 76 65 6c 6b 69 6e 64 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 76 61 72 20 2a   ┆t levelkind *) end; (* withvar *┆
0x071e40…071e60             29 0a 0a 0a 63 6e 6f 6c 6f 63 61 6c 64 65 63 6c 3a 0a 62 65 67 69 6e 0a 77 69 74 68 20 6e 61 6d   ┆)   cnolocaldecl: begin with nam┆
0x071e60…071e80             65 6c 65 76 65 6c 20 5e 20 2e 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 20 5e 20 28 2a 20 77 69 74 68   ┆elevel ^ .former_level ^ (* with┆
0x071e80…071ea0             2f 6c 6f 63 6b 2d 6f 62 6a 65 63 74 20 6c 65 76 65 6c 20 2a 29 20 64 6f 0a 69 66 20 28 6e 61 6d   ┆/lock-object level *) do if (nam┆
0x071ea0…071ec0             65 6c 69 73 74 6b 69 6e 64 3d 66 69 72 73 74 6c 6f 63 6b 29 20 6f 72 20 28 6e 61 6d 65 6c 69 73   ┆elistkind=firstlock) or (namelis┆
0x071ec0…071ee0             74 6b 69 6e 64 3d 6e 65 78 74 6c 6f 63 6b 29 20 74 68 65 6e 0a 65 72 72 6f 72 28 6c 6f 63 6b 5f   ┆tkind=nextlock) then error(lock_┆
0x071ee0…071f00             6e 61 6d 65 5f 6d 69 73 73 69 6e 67 29 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 65 6d 69 74 69 64 20   ┆name_missing) else begin emitid ┆
0x071f00…071f20             28 78 77 69 74 68 76 61 72 2c 20 77 69 74 68 6e 61 6d 65 29 3b 0a 65 6d 69 74 28 78 6e 6f 72 65   ┆(xwithvar, withname); emit(xnore┆
0x071f20…071f40             74 79 70 65 29 3b 0a 65 6e 64 3b 20 28 2a 20 69 66 20 77 69 74 68 2d 73 74 61 74 65 6d 65 6e 74   ┆type); end; (* if with-statement┆
0x071f40…071f60             20 2a 29 0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 69 6c 5f 6e 61 6d 65   ┆ *) cur_dyn_var_level:= nil_name┆
0x071f60…071f80             73 74 61 63 6b 5f 70 74 72 3b 20 28 2a 20 61 6c 6c 20 6c 65 76 65 6c 73 20 61 72 65 20 6c 65 67   ┆stack_ptr; (* all levels are leg┆
0x071f80…071fa0             61 6c 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 6e 6f 6c 6f 63 61 6c 64 65 63 6c 20 2a 29 0a 0a 0a 63   ┆al *) end; (* nolocaldecl *)   c┆
0x071fa0…071fc0             6e 6f 6c 6f 63 61 6c 74 79 70 65 3a 20 62 65 67 69 6e 0a 77 69 74 68 20 6c 69 73 74 66 69 72 73   ┆nolocaltype: begin with listfirs┆
0x071fc0…071fe0             74 5e 20 64 6f 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 6c 6f 63 61 6c 20 76 61 72 20 2a   ┆t^ do (* namenode of local var *┆
0x071fe0…072000             29 0a 62 65 67 69 6e 0a 69 66 20 6c 65 76 65 6c 6b 69 6e 64 3d 6e 65 78 74 77 69 74 68 20 74 68   ┆) begin if levelkind=nextwith th┆
0x072000…072020 (30, 0, 13) 65 6e 0a 62 65 67 69 6e 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 77 69 74 68 5f 6e 61 6d 65 6b 69 6e   ┆en begin namekind:= with_namekin┆
0x072020…072040             64 3b 20 28 2a 20 63 6f 6e 73 74 61 6e 74 20 6f 72 20 76 61 72 2c 20 64 65 70 65 6e 64 69 6e 67   ┆d; (* constant or var, depending┆
0x072040…072060             20 6f 6e 20 6e 61 6d 65 6b 69 6e 64 20 6f 66 20 77 69 74 68 76 61 72 20 2a 29 0a 75 73 65 64 6c   ┆ on namekind of withvar *) usedl┆
0x072060…072080             65 76 65 6c 3a 3d 20 6c 6f 77 65 73 74 6c 65 76 65 6c 3b 20 28 2a 20 69 6e 20 63 61 73 65 20 6f   ┆evel:= lowestlevel; (* in case o┆
0x072080…0720a0             66 20 63 6f 6e 73 74 61 6e 74 20 2a 29 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 77 69 74 68 5f 74 79   ┆f constant *) typename:= with_ty┆
0x0720a0…0720c0             70 65 6e 61 6d 65 3b 20 28 2a 20 73 61 6d 65 20 74 79 70 65 20 61 73 20 74 68 65 20 77 69 74 68   ┆pename; (* same type as the with┆
0x0720c0…0720e0             2d 6f 62 6a 65 63 74 20 2a 29 0a 65 6d 69 74 69 64 20 28 78 77 69 74 68 76 61 72 2c 20 6c 69 73   ┆-object *) emitid (xwithvar, lis┆
0x0720e0…072100             74 66 69 72 73 74 29 3b 0a 65 6d 69 74 28 78 6e 6f 72 65 74 79 70 65 29 3b 0a 6e 61 6d 65 6c 65   ┆tfirst); emit(xnoretype); namele┆
0x072100…072120             76 65 6c 5e 2e 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 5e 2e 66 69 72 73 74 6e 61 6d 65 3a 3d 20 6e   ┆vel^.former_level^.firstname:= n┆
0x072120…072140             69 6c 6e 61 6d 65 3b 0a 65 6e 64 0a 65 6c 73 65 0a 65 72 72 6f 72 28 62 75 66 66 65 72 5f 74 79   ┆ilname; end else error(buffer_ty┆
0x072140…072160             70 65 5f 6d 69 73 73 69 6e 67 29 3b 0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d   ┆pe_missing); cur_dyn_var_level:=┆
0x072160…072180             20 6e 69 6c 5f 6e 61 6d 65 73 74 61 63 6b 5f 70 74 72 3b 20 28 2a 20 61 6c 6c 20 6c 65 76 65 6c   ┆ nil_namestack_ptr; (* all level┆
0x072180…0721a0             73 20 61 72 65 20 6c 65 67 61 6c 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 6c 69 73 74   ┆s are legal *) end; (* with list┆
0x0721a0…0721c0             66 69 72 73 74 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 6e 6f 6c 6f 63 61 6c 74 79 70 65 2c 20 69 2e   ┆first *) end; (* nolocaltype, i.┆
0x0721c0…0721e0             65 2e 20 72 65 6e 61 6d 69 6e 67 20 2a 29 0a 0a 0a 63 65 6e 64 6c 6f 63 61 6c 64 65 63 6c 61 72   ┆e. renaming *)   cendlocaldeclar┆
0x0721e0…072200             65 3a 0a 62 65 67 69 6e 0a 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f 20 28   ┆e: begin  with  listfirst ^ do (┆
0x072200…072220 (30, 0, 14) 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 6c 6f 63 61 6c 20 76 61 72 20 2a 29 0a 62 65 67 69 6e   ┆* namenode of local var *) begin┆
0x072220…072240             0a 0a 28 2a 20 74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20 6c 6f 63 61 6c 20 74 79 70 65   ┆  (* test legality of local type┆
0x072240…072260             20 2a 29 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 69 66 20 63   ┆ *) with  cur_typenode ^ do if c┆
0x072260…072280             6f 6e 74 65 6e 74 73 20 2a 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 2c 20 74 5f 70 6f 69 6e 74   ┆ontents * [ t_semaphore, t_point┆
0x072280…0722a0             65 72 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 20 74   ┆er, t_reference, t_extprocess, t┆
0x0722a0…0722c0             5f 73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 20 5d 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67   ┆_shadow, t_pool ] <> [] then beg┆
0x0722c0…0722e0             69 6e 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 63   ┆in set_error_type; errorspix:= c┆
0x0722e0…072300             75 72 5f 74 79 70 65 6e 61 6d 65 5e 2e 73 70 69 78 3b 0a 65 72 72 6f 72 20 28 74 79 70 65 5f 68   ┆ur_typename^.spix; error (type_h┆
0x072300…072320             61 73 5f 73 79 73 74 65 6d 74 79 70 65 73 29 3b 0a 65 6e 64 3b 0a 0a 69 66 20 6e 61 6d 65 6c 65   ┆as_systemtypes); end;  if namele┆
0x072320…072340             76 65 6c 5e 2e 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 3d 6e 65 78 74 77 69 74 68 20 74 68 65 6e 0a   ┆vel^.namelistkind=nextwith then ┆
0x072340…072360             62 65 67 69 6e 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 77 69 74 68 5f 6e 61 6d 65 6b 69 6e 64 3b 20   ┆begin namekind:= with_namekind; ┆
0x072360…072380             28 2a 20 63 6f 6e 73 74 61 6e 74 20 6f 72 20 76 61 72 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e   ┆(* constant or var, depending on┆
0x072380…0723a0             20 6e 61 6d 65 6b 69 6e 64 20 6f 66 20 77 69 74 68 76 61 72 20 2a 29 0a 75 73 65 64 6c 65 76 65   ┆ namekind of withvar *) usedleve┆
0x0723a0…0723c0             6c 3a 3d 20 6c 6f 77 65 73 74 6c 65 76 65 6c 3b 20 28 2a 20 69 6e 20 63 61 73 65 20 6f 66 20 63   ┆l:= lowestlevel; (* in case of c┆
0x0723c0…0723e0             6f 6e 73 74 61 6e 74 20 2a 29 0a 77 69 74 68 20 77 69 74 68 5f 74 79 70 65 6e 61 6d 65 5e 2e 74   ┆onstant *) with with_typename^.t┆
0x0723e0…072400             79 70 5e 20 64 6f 0a 28 2a 20 74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20 6f 72 69 67 69   ┆yp^ do (* test legality of origi┆
0x072400…072420 (30, 0, 15) 6e 61 6c 20 74 79 70 65 20 2a 29 0a 69 66 20 63 6f 6e 74 65 6e 74 73 20 2a 20 5b 20 74 5f 73 65   ┆nal type *) if contents * [ t_se┆
0x072420…072440             6d 61 70 68 6f 72 65 2c 20 74 5f 70 6f 69 6e 74 65 72 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c   ┆maphore, t_pointer, t_reference,┆
0x072440…072460             20 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 0a 74 5f 73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 2c   ┆ t_extprocess, t_shadow, t_pool,┆
0x072460…072480             20 74 5f 72 65 61 64 6f 6e 6c 79 20 5d 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67 69 6e 0a 73   ┆ t_readonly ] <> [] then begin s┆
0x072480…0724a0             65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 77 69 74 68 5f   ┆et_error_type; errorspix:= with_┆
0x0724a0…0724c0             74 79 70 65 6e 61 6d 65 5e 2e 73 70 69 78 3b 0a 65 72 72 6f 72 20 28 74 79 70 65 5f 68 61 73 5f   ┆typename^.spix; error (type_has_┆
0x0724c0…0724e0             73 79 73 74 65 6d 74 79 70 65 73 29 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 74 79 70 65 6e 61 6d   ┆systemtypes); end; end;  typenam┆
0x0724e0…072500             65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 0a 65 6e 64 3b 0a 0a 63 61 73 65 20 6e 61   ┆e:= cur_typename;  end;  case na┆
0x072500…072520             6d 65 6c 65 76 65 6c 5e 2e 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 20 6f 66 0a 66 69 72 73 74 6c 6f   ┆melevel^.namelistkind of firstlo┆
0x072520…072540             63 6b 2c 0a 6e 65 78 74 6c 6f 63 6b 3a 20 62 65 67 69 6e 0a 65 6d 69 74 69 64 20 28 78 6c 6f 63   ┆ck, nextlock: begin emitid (xloc┆
0x072540…072560             6b 76 61 72 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 20 20 28 2a 20 6e 6f 74 69 63 65 3a 20 66 69   ┆kvar, listfirst);  (* notice: fi┆
0x072560…072580             72 73 74 20 6e 61 6d 65 20 69 6e 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 65 6d 69 74 74 79 70   ┆rst name in namelevel *) emittyp┆
0x072580…0725a0             65 20 28 63 75 72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 65 6d 69 74 20 28 78 6c 6f 63 6b 29 3b 0a   ┆e (cur_typename); emit (xlock); ┆
0x0725a0…0725c0             65 6e 64 3b 0a 66 69 72 73 74 77 69 74 68 2c 0a 6e 65 78 74 77 69 74 68 3a 20 62 65 67 69 6e 0a   ┆end; firstwith, nextwith: begin ┆
0x0725c0…0725e0             65 6d 69 74 69 64 20 28 78 77 69 74 68 76 61 72 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 20 20 28   ┆emitid (xwithvar, listfirst);  (┆
0x0725e0…072600             2a 20 6e 6f 74 69 63 65 3a 20 66 69 72 73 74 20 6e 61 6d 65 20 69 6e 20 6e 61 6d 65 6c 65 76 65   ┆* notice: first name in nameleve┆
0x072600…072620 (30, 1, 1)  6c 20 2a 29 0a 65 6d 69 74 74 79 70 65 20 28 63 75 72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 65 6d   ┆l *) emittype (cur_typename); em┆
0x072620…072640             69 74 20 28 78 72 65 74 79 70 65 29 3b 0a 6e 61 6d 65 6c 65 76 65 6c 5e 2e 66 6f 72 6d 65 72 5f   ┆it (xretype); namelevel^.former_┆
0x072640…072660             6c 65 76 65 6c 5e 2e 66 69 72 73 74 6e 61 6d 65 3a 3d 20 6e 69 6c 6e 61 6d 65 3b 0a 65 6e 64 3b   ┆level^.firstname:= nilname; end;┆
0x072660…072680             0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 2a 29 0a 0a 70 6f 70 74 79 70 65 3b 0a 0a 63 75 72 5f   ┆ end; (* case *)  poptype;  cur_┆
0x072680…0726a0             64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 69 6c 5f 6e 61 6d 65 73 74 61 63 6b 5f 70 74   ┆dyn_var_level:= nil_namestack_pt┆
0x0726a0…0726c0             72 3b 20 28 2a 20 61 6c 6c 20 6c 65 76 65 6c 73 20 61 72 65 20 6c 65 67 61 6c 20 2a 29 0a 0a 65   ┆r; (* all levels are legal *)  e┆
0x0726c0…0726e0             6e 64 3b 0a 0a 0a 0a 63 64 6f 3a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a   ┆nd;    cdo: prepare_statement;  ┆
0x0726e0…072700             0a 63 65 6e 64 6c 6f 63 6b 2c 0a 63 65 6e 64 77 69 74 68 3a 0a 62 65 67 69 6e 0a 0a 72 65 70 65   ┆ cendlock, cendwith: begin  repe┆
0x072700…072720             61 74 0a 0a 28 2a 20 75 6e 73 74 61 63 6b 20 74 77 6f 20 6e 61 6d 65 20 6c 65 76 65 6c 73 20 70   ┆at  (* unstack two name levels p┆
0x072720…072740             65 72 20 6c 6f 63 6b 2f 77 69 74 68 20 2a 29 0a 72 65 6c 65 61 73 65 6e 61 6d 65 73 28 6e 61 6d   ┆er lock/with *) releasenames(nam┆
0x072740…072760             65 6c 65 76 65 6c 5e 2e 66 69 72 73 74 6e 61 6d 65 29 3b 20 28 2a 20 6c 6f 63 61 6c 20 6f 62 6a   ┆elevel^.firstname); (* local obj┆
0x072760…072780             65 63 74 20 6e 61 6d 65 20 2a 29 0a 65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 77 69 74 68 20   ┆ect name *) endnamelevel;  with ┆
0x072780…0727a0             20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 20 28 2a 20 6f 66 20 77 69 74 68 2d 6f 62 6a 65 63 74   ┆ namelevel^ do (* of with-object┆
0x0727a0…0727c0             20 2a 29 0a 62 65 67 69 6e 0a 0a 63 61 73 65 20 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 20 6f 66 0a   ┆ *) begin  case namelistkind of ┆
0x0727c0…0727e0             0a 66 69 72 73 74 6c 6f 63 6b 2c 0a 6e 65 78 74 6c 6f 63 6b 3a 0a 65 6d 69 74 20 28 78 65 6e 64   ┆ firstlock, nextlock: emit (xend┆
0x0727e0…072800             6c 6f 63 6b 29 3b 0a 66 69 72 73 74 77 69 74 68 2c 0a 6e 65 78 74 77 69 74 68 3a 0a 65 6d 69 74   ┆lock); firstwith, nextwith: emit┆
0x072800…072820 (30, 1, 2)  20 28 78 65 6e 64 77 69 74 68 29 3b 0a 0a 65 6c 73 65 3b 0a 65 6e 64 3b 20 28 2a 20 63 61 73 65   ┆ (xendwith);  else; end; (* case┆
0x072820…072840             20 2a 29 0a 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 3b 0a 0a   ┆ *)  levelkind:= namelistkind;  ┆
0x072840…072860             72 65 6c 65 61 73 65 6e 61 6d 65 73 20 28 77 69 74 68 6e 61 6d 65 29 3b 0a 0a 65 6e 64 3b 20 28   ┆releasenames (withname);  end; (┆
0x072860…072880             2a 20 77 69 74 68 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 0a 65 6e 64 6e 61 6d 65 6c 65 76 65   ┆* with namelevel *)  endnameleve┆
0x072880…0728a0             6c 3b 0a 0a 75 6e 74 69 6c 20 28 6c 65 76 65 6c 6b 69 6e 64 20 3d 20 66 69 72 73 74 6c 6f 63 6b   ┆l;  until (levelkind = firstlock┆
0x0728a0…0728c0             29 20 6f 72 20 28 6c 65 76 65 6c 6b 69 6e 64 20 3d 20 66 69 72 73 74 77 69 74 68 29 3b 0a 0a 65   ┆) or (levelkind = firstwith);  e┆
0x0728c0…0728e0             6e 64 3b 0a 0a 0c 0a 63 67 6f 74 6f 73 74 61 74 3a 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73   ┆nd;    cgotostat: prepare_expres┆
0x0728e0…072900             73 69 6f 6e 3b 0a 0a 0a 0a 63 65 6e 64 67 6f 74 6f 3a 0a 0a 62 65 67 69 6e 0a 77 69 74 68 20 20   ┆sion;    cendgoto:  begin with  ┆
0x072900…072920             73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 0a 65 72 72 6f 72 63 6f 64 65 3a 3d   ┆stacktop ^ do begin  errorcode:=┆
0x072920…072940             20 63 68 65 63 6b 5f 6c 61 62 65 6c 20 28 6f 70 5f 6e 61 6d 65 29 3b 0a 0a 69 66 20 65 72 72 6f   ┆ check_label (op_name);  if erro┆
0x072940…072960             72 63 6f 64 65 20 3c 3e 20 6e 6f 65 72 72 6f 72 20 74 68 65 6e 0a 20 20 65 72 72 6f 72 20 28 65   ┆rcode <> noerror then   error (e┆
0x072960…072980             72 72 6f 72 63 6f 64 65 29 0a 65 6c 73 65 0a 65 6d 69 74 69 64 20 28 78 67 6f 74 6f 2c 20 6f 70   ┆rrorcode) else emitid (xgoto, op┆
0x072980…0729a0             5f 6e 61 6d 65 29 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 73 74 61 63 6b 74 6f 70 20 2a   ┆_name);  end; (* with stacktop *┆
0x0729a0…0729c0             29 0a 72 65 6c 65 61 73 65 5f 65 78 70 72 20 28 74 61 6b 65 5f 73 74 61 63 6b 74 6f 70 29 3b 0a   ┆) release_expr (take_stacktop); ┆
0x0729c0…0729e0             70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 65 6e 64 3b 0a 0a 0c 0a 63 63 68 61 6e   ┆prepare_statement; end;    cchan┆
0x0729e0…072a00             6e 65 6c 73 74 61 74 3a 0a 62 65 67 69 6e 0a 73 74 61 72 74 5f 6f 66 5f 70 72 6f 74 65 63 74 65   ┆nelstat: begin start_of_protecte┆
0x072a00…072a20 (30, 1, 3)  64 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 70 72 65 70 61 72 65 3a 20 67 6f 74 6f 20 6e 6f 74 20   ┆d:= true;  (* prepare: goto not ┆
0x072a20…072a40             6f 75 74 20 6f 66 20 63 68 61 6e 6e 65 6c 2d 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 70 72 65 70   ┆out of channel-statement *) prep┆
0x072a40…072a60             61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 68 61 6e 76 61 72   ┆are_expression; end;    cchanvar┆
0x072a60…072a80             3a 0a 0a 62 65 67 69 6e 0a 0a 74 65 73 74 76 61 72 69 61 62 6c 65 20 28 73 74 61 63 6b 74 6f 70   ┆:  begin  testvariable (stacktop┆
0x072a80…072aa0             29 3b 0a 61 73 73 75 72 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 72 65 66 65 72 65 6e 63 65 5f 74   ┆); assure (stacktop, reference_t┆
0x072aa0…072ac0             79 70 65 6e 61 6d 65 2c 20 63 68 61 6e 6e 65 6c 5f 74 79 70 65 29 3b 0a 0a 65 6d 69 74 20 28 78   ┆ypename, channel_type);  emit (x┆
0x072ac0…072ae0             63 68 61 6e 6e 65 6c 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63   ┆channel); emit_and_release (stac┆
0x072ae0…072b00             6b 74 6f 70 29 3b 0a 65 6d 69 74 20 28 78 63 68 61 6e 76 61 72 29 3b 0a 0a 70 72 65 70 61 72 65   ┆ktop); emit (xchanvar);  prepare┆
0x072b00…072b20             5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 63 68 61 6e 6e 65 6c   ┆_statement;  end;    cendchannel┆
0x072b20…072b40             3a 0a 65 6d 69 74 20 28 78 65 6e 64 63 68 61 6e 6e 65 6c 29 3b 0a 0a 0a 0a 63 65 6e 64 61 73 73   ┆: emit (xendchannel);    cendass┆
0x072b40…072b60             69 67 6e 3a 0a 62 65 67 69 6e 0a 28 2a 20 6c 65 66 74 68 61 6e 64 73 69 64 65 20 6d 75 73 74 20   ┆ign: begin (* lefthandside must ┆
0x072b60…072b80             62 65 20 61 73 73 69 67 6e 61 62 6c 65 20 76 61 72 69 61 62 6c 65 20 2a 29 0a 74 65 73 74 61 73   ┆be assignable variable *) testas┆
0x072b80…072ba0             73 69 67 6e 61 62 6c 65 20 28 6e 65 78 74 74 6f 70 29 3b 0a 28 2a 20 74 68 65 20 72 69 67 74 68   ┆signable (nexttop); (* the rigth┆
0x072ba0…072bc0             68 61 6e 64 73 69 64 65 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 75 65 20 2a 29 0a 28 2a 20 69   ┆handside must be a value *) (* i┆
0x072bc0…072be0             6d 70 6c 69 63 69 74 6c 79 20 74 65 73 74 65 64 20 62 79 20 72 65 73 6f 6c 76 65 74 79 70 65 20   ┆mplicitly tested by resolvetype ┆
0x072be0…072c00             2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 6e 65 78 74 74 6f 70 2c 20 6c 65 66 74 74 79 70   ┆*) resolvetype (nexttop, lefttyp┆
0x072c00…072c20 (30, 1, 4)  65 6e 61 6d 65 2c 20 6c 65 66 74 65 6c 65 6d 65 6e 74 2c 20 6c 65 66 74 62 61 73 65 6b 69 6e 64   ┆ename, leftelement, leftbasekind┆
0x072c20…072c40             29 3b 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 72 69 67 74 68 74   ┆); resolvetype (stacktop, rigtht┆
0x072c40…072c60             79 70 65 6e 61 6d 65 2c 20 72 69 67 74 68 65 6c 65 6d 65 6e 74 2c 20 72 69 67 74 68 62 61 73 65   ┆ypename, rigthelement, rigthbase┆
0x072c60…072c80             6b 69 6e 64 29 3b 0a 69 66 20 6c 65 66 74 74 79 70 65 6e 61 6d 65 20 3c 3e 20 72 69 67 74 68 74   ┆kind); if lefttypename <> rigtht┆
0x072c80…072ca0             79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 74 65 73 74 5f 76 61 6c 75 65 5f 63 6f 6d 70 61 74 69 62   ┆ypename then test_value_compatib┆
0x072ca0…072cc0             6c 65 20 28 61 73 73 69 67 6e 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 69 66 20 20 6e 65   ┆le (assign_incompatible); if  ne┆
0x072cc0…072ce0             78 74 74 6f 70 20 5e 20 2e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20 20 73 74 61 63 6b 74   ┆xttop ^ . op_typename <>  stackt┆
0x072ce0…072d00             6f 70 20 5e 20 2e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 77 69 74 68 20 20 6e 65   ┆op ^ . op_typename then with  ne┆
0x072d00…072d20             78 74 74 6f 70 20 5e 20 64 6f 0a 74 65 73 74 72 61 6e 67 65 20 28 6f 70 5f 74 79 70 65 6e 61 6d   ┆xttop ^ do testrange (op_typenam┆
0x072d20…072d40             65 29 3b 20 20 28 2a 20 6d 61 6b 65 20 72 61 6e 67 65 74 65 73 74 2c 20 77 68 65 6e 20 61 73 73   ┆e);  (* make rangetest, when ass┆
0x072d40…072d60             69 67 6e 69 6e 67 20 74 6f 20 73 75 62 72 61 6e 67 65 20 2a 29 0a 6f 70 65 72 20 28 62 69 6e 61   ┆igning to subrange *) oper (bina┆
0x072d60…072d80             72 79 2c 20 72 65 63 74 79 70 65 2c 20 6e 69 6c 6e 61 6d 65 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f   ┆ry, rectype, nilname); emit_and_┆
0x072d80…072da0             72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 70 72 65 70 61 72 65 5f 73 74 61 74   ┆release (stacktop); prepare_stat┆
0x072da0…072dc0             65 6d 65 6e 74 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 65 78 63 68 61 6e 67 65 3a 0a 62 65 67   ┆ement; end;    cendexchange: beg┆
0x072dc0…072de0             69 6e 0a 28 2a 20 62 6f 74 68 20 6c 65 66 74 2d 20 61 6e 64 20 72 69 67 74 68 68 61 6e 64 73 69   ┆in (* both left- and rigthhandsi┆
0x072de0…072e00             64 65 20 6d 75 73 74 20 62 65 20 61 73 73 69 67 6e 61 62 6c 65 20 76 61 72 69 61 62 6c 65 73 20   ┆de must be assignable variables ┆
0x072e00…072e20 (30, 1, 5)  2a 29 0a 28 2a 20 6f 66 20 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 74 79 70 65 20 2a   ┆*) (* of exactly the same type *┆
0x072e20…072e40             29 0a 74 65 73 74 65 78 63 68 61 6e 67 61 62 6c 65 20 28 6e 65 78 74 74 6f 70 29 3b 0a 74 65 73   ┆) testexchangable (nexttop); tes┆
0x072e40…072e60             74 65 78 63 68 61 6e 67 61 62 6c 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 77 69 74 68 20 20 6e   ┆texchangable (stacktop); with  n┆
0x072e60…072e80             65 78 74 74 6f 70 20 5e 20 64 6f 0a 28 2a 20 74 79 70 65 20 6d 75 73 74 20 62 65 20 72 65 66 65   ┆exttop ^ do (* type must be refe┆
0x072e80…072ea0             72 65 6e 63 65 20 6f 72 20 73 68 61 64 6f 77 20 2a 29 0a 69 66 20 28 6f 70 5f 74 79 70 65 6e 61   ┆rence or shadow *) if (op_typena┆
0x072ea0…072ec0             6d 65 20 3c 3e 20 72 65 66 65 72 65 6e 63 65 5f 74 79 70 65 6e 61 6d 65 29 20 61 6e 64 0a 28 6f   ┆me <> reference_typename) and (o┆
0x072ec0…072ee0             70 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20 73 68 61 64 6f 77 5f 74 79 70 65 6e 61 6d 65 29 20 74   ┆p_typename <> shadow_typename) t┆
0x072ee0…072f00             68 65 6e 0a 65 72 72 6f 72 20 28 65 78 63 68 61 6e 67 65 5f 74 79 70 65 29 0a 65 6c 73 65 0a 69   ┆hen error (exchange_type) else i┆
0x072f00…072f20             66 20 6f 70 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 2e 20 6f   ┆f op_typename <>  stacktop ^ . o┆
0x072f20…072f40             70 5f 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 65 72 72 6f 72 20 28 65 78 63 68 61 6e 67 65 5f   ┆p_typename then error (exchange_┆
0x072f40…072f60             69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 6f 70 65 72 20 28 62 69 6e 61 72 79 2c 20 72 65 63   ┆incompatible); oper (binary, rec┆
0x072f60…072f80             74 79 70 65 2c 20 6e 69 6c 6e 61 6d 65 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65   ┆type, nilname); emit_and_release┆
0x072f80…072fa0             20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a   ┆ (stacktop); prepare_statement; ┆
0x072fa0…072fc0             65 6e 64 3b 0a 0a 0a 0a 63 69 64 3a 0a 62 65 67 69 6e 0a 0a 63 75 72 6e 61 6d 65 3a 3d 20 75 73   ┆end;    cid: begin  curname:= us┆
0x072fc0…072fe0             65 6e 61 6d 65 20 28 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20 2a 29 20 29 3b 0a 0a 69   ┆ename (passin (* = spix *) );  i┆
0x072fe0…073000             66 20 62 65 66 6f 72 65 5f 61 73 73 69 67 6e 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 62 65   ┆f before_assign then begin (* be┆
0x073000…073020 (30, 1, 6)  20 70 72 65 70 61 72 65 64 20 66 6f 72 20 64 6f 69 6e 67 20 73 70 65 63 69 61 6c 20 77 68 65 6e   ┆ prepared for doing special when┆
0x073020…073040             20 61 73 73 69 67 6e 69 6e 67 20 74 6f 20 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 20 2a 29 0a 0a   ┆ assigning to function-name *)  ┆
0x073040…073060             70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 77 69 74 68 20 20 63 75 72 6e 61   ┆prepare_expression;  with  curna┆
0x073060…073080             6d 65 20 5e 20 64 6f 20 20 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 69 64 65 6e 74 69 66   ┆me ^ do   (* namenode of identif┆
0x073080…0730a0             69 65 72 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 66 75 6e 63 74 69 6f 6e 20 74   ┆ier *) if namekind = cfunction t┆
0x0730a0…0730c0             68 65 6e 0a 28 2a 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 77 61 73 20 75 73 65 64 20   ┆hen (* a function name was used ┆
0x0730c0…0730e0             69 6e 20 66 72 6f 6e 74 20 6f 66 20 61 6e 20 61 73 73 69 67 6e 6d 65 6e 74 20 2a 29 0a 0a 0a 69   ┆in front of an assignment *)   i┆
0x0730e0…073100             66 20 72 65 74 72 69 65 76 65 64 5f 6c 65 76 65 6c 5e 2e 6c 65 76 65 6c 5f 6e 75 6d 62 65 72 3c   ┆f retrieved_level^.level_number<┆
0x073100…073120             3d 6e 61 6d 65 6c 65 76 65 6c 5e 2e 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 5e 2e 6c 65 76 65 6c 5f   ┆=namelevel^.former_level^.level_┆
0x073120…073140             6e 75 6d 62 65 72 20 74 68 65 6e 0a 28 2a 20 74 65 73 74 20 69 66 20 72 65 74 72 69 65 76 65 64   ┆number then (* test if retrieved┆
0x073140…073160             20 6c 65 76 65 6c 20 69 73 20 6c 6f 77 65 72 20 74 68 61 6e 20 66 6f 72 6d 65 72 20 6f 66 20 63   ┆ level is lower than former of c┆
0x073160…073180             75 72 72 65 6e 74 20 6c 65 76 65 6c 20 2a 29 0a 28 2a 20 69 2e 65 2e 20 74 65 73 74 20 69 66 20   ┆urrent level *) (* i.e. test if ┆
0x073180…0731a0             77 65 20 61 72 65 20 69 6e 73 69 64 65 20 74 68 65 20 62 6f 64 79 20 6f 66 20 74 68 65 20 66 75   ┆we are inside the body of the fu┆
0x0731a0…0731c0             6e 63 74 69 6f 6e 20 2a 29 0a 77 69 74 68 20 20 72 65 74 72 69 65 76 65 64 5f 6c 65 76 65 6c 5e   ┆nction *) with  retrieved_level^┆
0x0731c0…0731e0             2e 6e 65 78 74 5f 6c 65 76 65 6c 5e 20 64 6f 20 20 28 2a 20 6c 65 76 65 6c 20 6f 66 20 70 6f 73   ┆.next_level^ do  (* level of pos┆
0x0731e0…073200             73 69 62 6c 65 20 70 61 72 61 6d 6c 69 73 74 20 2a 29 0a 69 66 20 66 69 72 73 74 6e 61 6d 65 20   ┆sible paramlist *) if firstname ┆
0x073200…073220 (30, 1, 7)  28 2a 20 6f 66 20 6e 61 6d 65 73 74 61 63 6b 20 2a 29 20 3d 20 70 61 72 61 6d 73 20 28 2a 20 6f   ┆(* of namestack *) = params (* o┆
0x073220…073240             66 20 66 75 6e 63 74 69 6f 6e 20 2a 29 20 74 68 65 6e 0a 28 2a 20 65 78 63 68 61 6e 67 65 20 74   ┆f function *) then (* exchange t┆
0x073240…073260             68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 62 79 20 74 68 65 20 72 65 74 75 72 6e 76 61   ┆he function name by the returnva┆
0x073260…073280             6c 75 65 20 6e 61 6d 65 20 2a 29 0a 62 65 67 69 6e 0a 63 75 72 6e 61 6d 65 3a 3d 20 70 61 72 61   ┆lue name *) begin curname:= para┆
0x073280…0732a0             6d 73 3b 20 20 28 2a 20 66 69 72 73 74 20 6f 66 20 70 61 72 61 6d 6c 69 73 74 20 2a 29 0a 77 69   ┆ms;  (* first of paramlist *) wi┆
0x0732a0…0732c0             74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 66 75 6e 63 5f 61 73 73 69 67 6e 65 64 3a 3d   ┆th  curname ^ do func_assigned:=┆
0x0732c0…0732e0             20 74 72 75 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 62 65 66 6f 72 65 20 61 73 73 69   ┆ true; end;  end; (* before assi┆
0x0732e0…073300             67 6e 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a   ┆gn *)  with  curname ^ do begin ┆
0x073300…073320             69 66 20 28 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3c 3e 6e 69 6c 5f 6e 61 6d 65 73   ┆if (cur_dyn_var_level<>nil_names┆
0x073320…073340             74 61 63 6b 5f 70 74 72 20 28 2a 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 6f 6e 20 6c 65 67 61   ┆tack_ptr (* restrictions on lega┆
0x073340…073360             6c 20 6c 65 76 65 6c 73 20 66 6f 72 20 64 79 6e 61 6d 69 63 20 6f 62 6a 65 63 74 73 20 2a 29 29   ┆l levels for dynamic objects *))┆
0x073360…073380             0a 20 61 6e 64 20 28 72 65 74 72 69 65 76 65 64 5f 6c 65 76 65 6c 5e 2e 6c 65 76 65 6c 5f 6e 75   ┆  and (retrieved_level^.level_nu┆
0x073380…0733a0             6d 62 65 72 3e 3d 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 5e 2e 6c 65 76 65 6c 5f 6e   ┆mber>=cur_dyn_var_level^.level_n┆
0x0733a0…0733c0             75 6d 62 65 72 29 20 74 68 65 6e 0a 0a 62 65 67 69 6e 0a 69 66 20 28 6e 61 6d 65 6b 69 6e 64 20   ┆umber) then  begin if (namekind ┆
0x0733c0…0733e0             3c 3e 20 63 63 6f 6e 73 74 61 6e 74 29 20 61 6e 64 20 28 6e 61 6d 65 6b 69 6e 64 20 3c 3e 20 63   ┆<> cconstant) and (namekind <> c┆
0x0733e0…073400             73 63 61 6c 61 72 65 6c 65 6d 29 0a 61 6e 64 20 28 6e 61 6d 65 6b 69 6e 64 20 3c 3e 20 63 74 79   ┆scalarelem) and (namekind <> cty┆
0x073400…073420 (30, 1, 8)  70 65 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b   ┆pe) then begin errorspix:= spix;┆
0x073420…073440             20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 2a 29 0a 65 72 72 6f 72 28 20 69 6c 6c 65 67 61 6c   ┆ (* of curname *) error( illegal┆
0x073440…073460             5f 73 63 6f 70 65 5f 6f 66 5f 74 79 70 65 5f 63 6f 6d 70 6f 6e 65 6e 74 20 29 3b 0a 6e 61 6d 65   ┆_scope_of_type_component ); name┆
0x073460…073480             6b 69 6e 64 3a 3d 20 63 63 6f 6e 73 74 61 6e 74 3b 20 28 2a 20 61 73 73 75 72 65 20 63 61 6c 6c   ┆kind:= cconstant; (* assure call┆
0x073480…0734a0             20 6f 66 20 6e 65 77 6f 70 61 6e 64 2c 20 65 76 65 6e 20 69 66 20 6e 61 6d 65 6b 69 6e 64 20 69   ┆ of newopand, even if namekind i┆
0x0734a0…0734c0             73 20 72 65 63 66 69 65 6c 64 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 65 72 72 6f 72 20 2a 29 0a 65   ┆s recfield *) end; (* error *) e┆
0x0734c0…0734e0             6e 64 0a 65 6c 73 65 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 72 65 63 66 69 65 6c 64 20   ┆nd else if namekind = crecfield ┆
0x0734e0…073500             74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 74 68 65 72 65 20 68 61 73 20 62 65 65 6e 20 61 20 70   ┆then begin (* there has been a p┆
0x073500…073520             72 65 76 69 6f 75 73 20 27 77 69 74 68 27 20 2a 29 0a 28 2a 20 73 69 6d 75 6c 61 74 65 3a 20 3c   ┆revious 'with' *) (* simulate: <┆
0x073520…073540             77 69 74 68 6e 61 6d 65 3e 2e 3c 66 69 65 6c 64 6e 61 6d 65 3e 20 2a 29 0a 77 69 74 68 20 72 65   ┆withname>.<fieldname> *) with re┆
0x073540…073560             74 72 69 65 76 65 64 5f 6c 65 76 65 6c 5e 20 64 6f 20 20 28 2a 20 2e 2e 2e 20 64 65 66 69 6e 65   ┆trieved_level^ do  (* ... define┆
0x073560…073580             64 20 62 79 3a 20 27 75 73 65 6e 61 6d 65 27 20 2a 29 0a 62 65 67 69 6e 0a 77 69 74 68 20 20 77   ┆d by: 'usename' *) begin with  w┆
0x073580…0735a0             69 74 68 6e 61 6d 65 20 5e 20 64 6f 0a 6e 65 77 6f 70 61 6e 64 20 28 63 69 64 2c 20 74 79 70 65   ┆ithname ^ do newopand (cid, type┆
0x0735a0…0735c0             6e 61 6d 65 20 28 2a 20 6f 66 20 77 69 74 68 6e 61 6d 65 20 2a 29 20 29 3b 0a 77 69 74 68 20 20   ┆name (* of withname *) ); with  ┆
0x0735c0…0735e0             73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 6f 70 5f 6e 61 6d 65 3a 3d 20 77 69 74 68 6e 61 6d 65   ┆stacktop ^ do op_name:= withname┆
0x0735e0…073600             3b 0a 6f 70 65 72 20 28 75 6e 61 72 79 2c 20 63 66 69 65 6c 64 2c 20 74 79 70 65 6e 61 6d 65 20   ┆; oper (unary, cfield, typename ┆
0x073600…073620 (30, 1, 9)  28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 28 20 3d 20 66 69 65 6c 64 6e 61 6d 65 20 29 20 2a 29   ┆(* of curname ( = fieldname ) *)┆
0x073620…073640             20 29 3b 0a 0a 28 2a 20 69 6e 73 65 72 74 20 74 68 65 20 70 61 63 6b 66 6c 61 67 20 66 72 6f 6d   ┆ );  (* insert the packflag from┆
0x073640…073660             20 74 68 65 20 72 65 63 6f 72 64 2d 74 79 70 65 20 6f 66 20 74 68 65 20 77 69 74 68 76 61 72 20   ┆ the record-type of the withvar ┆
0x073660…073680             2a 29 0a 77 69 74 68 20 20 77 69 74 68 6e 61 6d 65 20 5e 20 64 6f 0a 77 69 74 68 20 20 74 79 70   ┆*) with  withname ^ do with  typ┆
0x073680…0736a0             65 6e 61 6d 65 20 5e 20 64 6f 20 20 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 72 65 63 6f   ┆ename ^ do   (* namenode of reco┆
0x0736a0…0736c0             72 64 2d 74 79 70 65 20 66 6f 72 20 77 69 74 68 76 61 72 20 2a 29 0a 77 69 74 68 20 20 74 79 70   ┆rd-type for withvar *) with  typ┆
0x0736c0…0736e0             20 5e 20 64 6f 20 20 20 20 20 20 28 2a 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 79 70 65   ┆ ^ do      (* corresponding type┆
0x0736e0…073700             6e 6f 64 65 20 2a 29 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 6f 70 5f 70   ┆node *) with  stacktop ^ do op_p┆
0x073700…073720             61 63 6b 66 6c 61 67 3a 3d 20 70 61 63 6b 66 6c 61 67 3b 20 28 2a 20 66 72 6f 6d 20 74 79 70 65   ┆ackflag:= packflag; (* from type┆
0x073720…073740             6e 6f 64 65 20 6f 66 20 77 69 74 68 76 61 72 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28   ┆node of withvar *)  end;  end; (┆
0x073740…073760             2a 20 69 66 20 72 65 63 66 69 65 6c 64 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3c 3e 20   ┆* if recfield *) if namekind <> ┆
0x073760…073780             63 72 65 63 66 69 65 6c 64 20 74 68 65 6e 0a 6e 65 77 6f 70 61 6e 64 20 28 63 69 64 2c 20 74 79   ┆crecfield then newopand (cid, ty┆
0x073780…0737a0             70 65 6e 61 6d 65 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 2a 29 20 29 3b 0a 0a 65 6e 64 3b   ┆pename (* of curname *) );  end;┆
0x0737a0…0737c0             20 28 2a 20 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 2a 29 0a 0a 77 69 74 68 20 20 73 74   ┆ (* with  curname ^ *)  with  st┆
0x0737c0…0737e0             61 63 6b 74 6f 70 20 5e 20 64 6f 0a 6f 70 5f 6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 0a   ┆acktop ^ do op_name:= curname;  ┆
0x0737e0…073800             65 6e 64 3b 20 28 2a 20 63 69 64 20 2a 29 0a 0a 0a 0a 63 6c 69 74 65 72 61 6c 3a 0a 62 65 67 69   ┆end; (* cid *)    cliteral: begi┆
0x073800…073820 (30, 1, 10) 6e 0a 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f 20 2b 20 31   ┆n  cur_opandno:= cur_opandno + 1┆
0x073820…073840             3b 0a 0a 72 65 63 74 79 70 65 3a 3d 20 70 61 73 73 77 6f 72 64 3b 20 20 28 2a 20 67 65 74 20 74   ┆;  rectype:= password;  (* get t┆
0x073840…073860             79 70 65 20 6f 66 20 6c 69 74 65 72 61 6c 20 2a 29 0a 0a 6e 65 77 6f 70 61 6e 64 20 28 63 6c 69   ┆ype of literal *)  newopand (cli┆
0x073860…073880             74 65 72 61 6c 2c 20 6e 69 6c 6e 61 6d 65 20 28 2a 20 74 79 70 65 6e 61 6d 65 20 6e 6f 74 20 64   ┆teral, nilname (* typename not d┆
0x073880…0738a0             65 66 69 6e 65 64 20 79 65 74 20 2a 29 20 29 3b 0a 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70   ┆efined yet *) );  with  stacktop┆
0x0738a0…0738c0             20 5e 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 69 6e 74 65 67 65   ┆ ^ do begin if rectype = cintege┆
0x0738c0…0738e0             72 20 74 68 65 6e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 69 6e 74 65 67 65 72 5f 74 79 70   ┆r then op_typename:= integer_typ┆
0x0738e0…073900             65 6e 61 6d 65 0a 65 6c 73 65 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 72 65 61 6c 20 20 20   ┆ename else if rectype = creal   ┆
0x073900…073920             20 74 68 65 6e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 6e 69 6c 5f 74 79 70 65 6e 61 6d 65   ┆ then op_typename:= nil_typename┆
0x073920…073940             0a 65 6c 73 65 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 74 65 78 74 20 20 20 20 74 68 65 6e   ┆ else if rectype = ctext    then┆
0x073940…073960             20 6f 70 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 74 65 78 74 5f 74 79 70 65 6e 61 6d 65 0a 65 6c 73   ┆ op_typename:= text_typename els┆
0x073960…073980             65 0a 69 66 20 63 6f 6d 70 69 6c 65 72 74 65 73 74 20 74 68 65 6e 0a 63 6f 6d 70 5f 65 72 72 6f   ┆e if compilertest then comp_erro┆
0x073980…0739a0             72 20 28 75 6e 6b 6e 6f 77 6e 5f 72 65 63 74 79 70 65 29 3b 0a 0a 6f 70 5f 76 61 6c 75 65 3a 3d   ┆r (unknown_rectype);  op_value:=┆
0x0739a0…0739c0             20 72 65 61 64 73 74 72 69 6e 67 3b 0a 28 2a 20 6d 69 64 6c 65 72 74 69 64 69 67 20 73 69 6d 70   ┆ readstring; (* midlertidig simp┆
0x0739c0…0739e0             6c 69 66 69 6b 61 74 69 6f 6e 2c 20 66 6f 72 20 61 74 20 6b 75 6e 6e 65 20 6f 70 66 61 74 74 65   ┆lifikation, for at kunne opfatte┆
0x0739e0…073a00             20 6c 69 74 65 72 61 6c 2d 63 68 61 72 73 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63   ┆ literal-chars *) if rectype = c┆
0x073a00…073a20 (30, 1, 11) 74 65 78 74 20 74 68 65 6e 0a 77 69 74 68 20 20 6f 70 5f 76 61 6c 75 65 20 5e 20 64 6f 0a 69 66   ┆text then with  op_value ^ do if┆
0x073a20…073a40             20 73 74 72 69 6e 67 6c 67 74 20 3d 20 31 20 74 68 65 6e 0a 6f 70 5f 74 79 70 65 6e 61 6d 65 3a   ┆ stringlgt = 1 then op_typename:┆
0x073a40…073a60             3d 20 63 68 61 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 6c   ┆= char_typename; end;  end; (* l┆
0x073a60…073a80             69 74 65 72 61 6c 20 2a 29 0a 0a 0a 0a 63 76 61 72 73 69 7a 65 63 61 6c 6c 2c 0a 63 74 79 70 65   ┆iteral *)    cvarsizecall, ctype┆
0x073a80…073aa0             73 69 7a 65 63 61 6c 6c 3a 0a 62 65 67 69 6e 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75   ┆sizecall: begin cur_opandno:= cu┆
0x073aa0…073ac0             72 5f 6f 70 61 6e 64 6e 6f 2b 31 3b 0a 63 75 72 6e 61 6d 65 3a 3d 20 75 73 65 6e 61 6d 65 28 70   ┆r_opandno+1; curname:= usename(p┆
0x073ac0…073ae0             61 73 73 69 6e 20 28 2a 20 73 70 69 78 20 2a 29 29 3b 0a 77 69 74 68 20 63 75 72 6e 61 6d 65 5e   ┆assin (* spix *)); with curname^┆
0x073ae0…073b00             20 64 6f 0a 69 66 20 72 65 63 74 79 70 65 3d 63 76 61 72 73 69 7a 65 63 61 6c 6c 20 74 68 65 6e   ┆ do if rectype=cvarsizecall then┆
0x073b00…073b20             0a 69 66 20 28 6e 61 6d 65 6b 69 6e 64 3c 3e 63 76 61 72 29 20 61 6e 64 20 28 6e 61 6d 65 6b 69   ┆ if (namekind<>cvar) and (nameki┆
0x073b20…073b40             6e 64 3c 3e 63 72 65 63 66 69 65 6c 64 29 20 74 68 65 6e 0a 65 72 72 6f 72 28 6e 6f 74 5f 76 61   ┆nd<>crecfield) then error(not_va┆
0x073b40…073b60             72 6e 61 6d 65 29 0a 65 6c 73 65 0a 28 2a 20 63 68 61 6e 67 65 20 63 61 6c 6c 20 74 6f 20 74 79   ┆rname) else (* change call to ty┆
0x073b60…073b80             70 65 73 69 7a 65 63 61 6c 6c 20 2a 29 0a 63 75 72 6e 61 6d 65 3a 3d 20 74 79 70 65 6e 61 6d 65   ┆pesizecall *) curname:= typename┆
0x073b80…073ba0             0a 65 6c 73 65 20 28 2a 20 74 79 70 65 73 69 7a 65 63 61 6c 6c 20 2a 29 0a 69 66 20 6e 61 6d 65   ┆ else (* typesizecall *) if name┆
0x073ba0…073bc0             6b 69 6e 64 3c 3e 63 74 79 70 65 20 74 68 65 6e 0a 65 72 72 6f 72 28 6e 6f 74 5f 74 79 70 65 6e   ┆kind<>ctype then error(not_typen┆
0x073bc0…073be0             61 6d 65 29 3b 0a 0a 6e 65 77 6f 70 61 6e 64 28 63 74 79 70 65 73 69 7a 65 63 61 6c 6c 2c 20 69   ┆ame);  newopand(ctypesizecall, i┆
0x073be0…073c00             6e 74 65 67 65 72 5f 74 79 70 65 6e 61 6d 65 20 28 2a 20 72 65 73 75 6c 74 20 74 79 70 65 20 2a   ┆nteger_typename (* result type *┆
0x073c00…073c20 (30, 1, 12) 29 29 3b 0a 73 74 61 63 6b 74 6f 70 5e 2e 6f 70 5f 6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b   ┆)); stacktop^.op_name:= curname;┆
0x073c20…073c40             0a 65 6e 64 3b 20 28 2a 20 76 61 72 73 69 7a 65 63 61 6c 6c 2f 74 79 70 65 73 69 7a 65 63 61 6c   ┆ end; (* varsizecall/typesizecal┆
0x073c40…073c60             6c 20 2a 29 0a 0a 63 73 6b 69 70 70 61 72 61 6d 3a 0a 62 65 67 69 6e 0a 63 75 72 5f 6f 70 61 6e   ┆l *)  cskipparam: begin cur_opan┆
0x073c60…073c80             64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f 20 2b 20 31 3b 0a 6e 65 77 6f 70 61 6e 64 20   ┆dno:= cur_opandno + 1; newopand ┆
0x073c80…073ca0             28 63 73 6b 69 70 70 61 72 61 6d 2c 20 6e 69 6c 6e 61 6d 65 20 28 2a 20 69 72 72 65 6c 6c 20 74   ┆(cskipparam, nilname (* irrell t┆
0x073ca0…073cc0             79 70 65 6e 61 6d 65 20 2a 29 20 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 28 2a 20 70 69 63 6b 75 70 20   ┆ypename *) ); end;    (* pickup ┆
0x073cc0…073ce0             6f 66 20 73 65 74 73 20 2a 29 0a 63 73 65 74 6c 69 73 74 2c 0a 63 73 5f 65 6c 65 6d 65 6e 74 2c   ┆of sets *) csetlist, cs_element,┆
0x073ce0…073d00             0a 63 6d 5f 65 6c 65 6d 65 6e 74 2c 0a 63 65 6e 64 73 65 74 6c 69 73 74 3a 0a 73 65 74 5f 70 72   ┆ cm_element, cendsetlist: set_pr┆
0x073d00…073d20             6f 63 65 64 75 72 65 3b 0a 0a 0a 0a 63 66 69 65 6c 64 3a 0a 62 65 67 69 6e 0a 28 2a 20 73 74 61   ┆ocedure;    cfield: begin (* sta┆
0x073d20…073d40             63 6b 74 6f 70 20 63 6f 6e 74 61 69 6e 73 20 70 72 65 76 69 6f 75 73 20 27 76 61 72 69 61 62 6c   ┆cktop contains previous 'variabl┆
0x073d40…073d60             65 27 20 2a 29 0a 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f   ┆e' *)  cur_opandno:= cur_opandno┆
0x073d60…073d80             20 2b 20 31 3b 0a 0a 6e 65 77 73 70 69 78 3a 3d 20 70 61 73 73 69 6e 3b 0a 0a 28 2a 20 69 66 20   ┆ + 1;  newspix:= passin;  (* if ┆
0x073d80…073da0             74 68 65 20 70 72 65 76 69 6f 75 73 20 27 76 61 72 69 61 62 6c 65 27 20 69 73 20 70 61 72 61 6d   ┆the previous 'variable' is param┆
0x073da0…073dc0             65 74 65 72 6c 65 73 73 20 66 75 6e 63 74 69 6f 6e 63 61 6c 6c 2c 20 74 68 65 6e 2e 2e 2e 20 2a   ┆eterless functioncall, then... *┆
0x073dc0…073de0             29 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 69 66 20 6f 70 63 6f 64 65 20   ┆) with  stacktop ^ do if opcode ┆
0x073de0…073e00             3d 20 63 69 64 20 74 68 65 6e 0a 77 69 74 68 20 20 6f 70 5f 6e 61 6d 65 20 5e 20 64 6f 20 20 28   ┆= cid then with  op_name ^ do  (┆
0x073e00…073e20 (30, 1, 13) 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 28 70 6f 73 73 69 62 6c 65 29 20 66 75 6e 63 74 69 6f   ┆* namenode of (possible) functio┆
0x073e20…073e40             6e 20 6e 61 6d 65 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 66 75 6e 63 74 69 6f   ┆n name *) if namekind = cfunctio┆
0x073e40…073e60             6e 20 74 68 65 6e 0a 62 65 67 69 6e 0a 70 75 73 68 63 61 6c 6c 3b 0a 70 72 65 70 61 72 65 5f 63   ┆n then begin pushcall; prepare_c┆
0x073e60…073e80             61 6c 6c 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 74 65 72 6d 69 6e 61 74 65 5f 63 61 6c 6c 20 28   ┆all (stacktop); terminate_call (┆
0x073e80…073ea0             73 74 61 63 6b 74 6f 70 29 3b 0a 65 6e 64 3b 0a 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74   ┆stacktop); end;  resolvetype (st┆
0x073ea0…073ec0             61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e   ┆acktop, exprtypename, exprelemen┆
0x073ec0…073ee0             74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 0a 77 69 74 68 20 20 65 78 70 72 74 79 70   ┆t, exprbasekind);  with  exprtyp┆
0x073ee0…073f00             65 6e 61 6d 65 20 5e 20 64 6f 20 20 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 3c 76 61 72   ┆ename ^ do   (* namenode of <var┆
0x073f00…073f20             69 61 62 6c 65 3e 20 74 79 70 65 20 2a 29 0a 77 69 74 68 20 20 74 79 70 20 5e 20 64 6f 20 20 20   ┆iable> type *) with  typ ^ do   ┆
0x073f20…073f40             20 20 20 20 20 20 20 28 2a 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 79 70 65 6e 6f 64 65   ┆       (* corresponding typenode┆
0x073f40…073f60             20 2a 29 0a 28 2a 20 6e 6f 74 65 3a 20 69 6e 20 63 61 73 65 20 6f 66 20 61 6c 69 61 73 2d 74 79   ┆ *) (* note: in case of alias-ty┆
0x073f60…073f80             70 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 20 61 6e 64 20 65 78 70 72 62 61 73 65 6b 69 6e 64   ┆pe, exprelement and exprbasekind┆
0x073f80…073fa0             20 61 72 65 20 74 68 65 20 62 65 73 74 20 6f 6e 65 73 20 2a 29 0a 69 66 20 65 78 70 72 62 61 73   ┆ are the best ones *) if exprbas┆
0x073fa0…073fc0             65 6b 69 6e 64 20 3c 3e 20 63 72 65 63 6f 72 64 20 74 68 65 6e 0a 73 75 70 70 72 65 73 73 5f 65   ┆ekind <> crecord then suppress_e┆
0x073fc0…073fe0             72 72 6f 72 20 28 65 78 70 72 62 61 73 65 6b 69 6e 64 2c 20 66 69 65 6c 64 5f 6d 75 73 74 5f 66   ┆rror (exprbasekind, field_must_f┆
0x073fe0…074000             6f 6c 6c 6f 77 5f 72 65 63 6f 72 64 74 79 70 65 29 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 28 2a 20   ┆ollow_recordtype) else begin (* ┆
0x074000…074020 (30, 1, 14) 66 69 6e 64 20 74 68 65 20 73 70 69 78 20 61 6d 6f 6e 67 20 74 68 65 20 66 69 65 6c 64 6e 61 6d   ┆find the spix among the fieldnam┆
0x074020…074040             65 73 20 6f 66 20 74 68 65 20 72 65 63 6f 72 64 20 2a 29 0a 63 75 72 6e 61 6d 65 3a 3d 20 65 78   ┆es of the record *) curname:= ex┆
0x074040…074060             70 72 65 6c 65 6d 65 6e 74 3b 20 20 28 2a 20 66 69 72 73 74 20 6f 66 20 66 69 65 6c 64 20 6e 61   ┆prelement;  (* first of field na┆
0x074060…074080             6d 65 20 6c 69 73 74 20 2a 29 0a 77 68 69 6c 65 20 28 6e 65 77 73 70 69 78 20 3c 3e 20 61 6e 6f   ┆me list *) while (newspix <> ano┆
0x074080…0740a0             6e 79 6d 6f 75 73 5f 73 70 69 78 20 28 2a 20 69 2e 65 2e 20 6e 6f 74 20 66 6f 75 6e 64 20 79 65   ┆nymous_spix (* i.e. not found ye┆
0x0740a0…0740c0             74 20 2a 29 20 29 0a 61 6e 64 20 28 63 75 72 6e 61 6d 65 20 3c 3e 20 6e 69 6c 6e 61 6d 65 20 28   ┆t *) ) and (curname <> nilname (┆
0x0740c0…0740e0             2a 20 69 2e 65 2e 20 6d 6f 72 65 20 6e 61 6d 65 73 20 74 6f 20 63 6f 6d 70 61 72 65 20 74 6f 20   ┆* i.e. more names to compare to ┆
0x0740e0…074100             2a 29 20 29 20 64 6f 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 6e 65   ┆*) ) do with  curname ^ do if ne┆
0x074100…074120             77 73 70 69 78 20 3d 20 73 70 69 78 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 2a 29 20 74 68   ┆wspix = spix (* of curname *) th┆
0x074120…074140             65 6e 0a 62 65 67 69 6e 0a 6f 70 65 72 20 28 75 6e 61 72 79 2c 20 63 66 69 65 6c 64 2c 20 74 79   ┆en begin oper (unary, cfield, ty┆
0x074140…074160             70 65 6e 61 6d 65 20 28 2a 20 6f 66 20 66 69 65 6c 64 6e 61 6d 65 20 2a 29 20 29 3b 0a 77 69 74   ┆pename (* of fieldname *) ); wit┆
0x074160…074180             68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 6f 70 5f 6e 61 6d 65 3a 3d   ┆h  stacktop ^ do begin op_name:=┆
0x074180…0741a0             20 63 75 72 6e 61 6d 65 3b 0a 6f 70 5f 70 61 63 6b 66 6c 61 67 3a 3d 20 70 61 63 6b 66 6c 61 67   ┆ curname; op_packflag:= packflag┆
0x0741a0…0741c0             3b 20 28 2a 20 66 72 6f 6d 20 72 65 63 6f 72 64 20 74 79 70 65 6e 6f 64 65 20 2a 29 0a 65 6e 64   ┆; (* from record typenode *) end┆
0x0741c0…0741e0             3b 0a 6e 65 77 73 70 69 78 3a 3d 20 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 3b 20 28 2a 20 69   ┆; newspix:= anonymous_spix; (* i┆
0x0741e0…074200             6e 64 69 63 61 74 65 20 73 75 63 63 65 73 20 2a 29 0a 65 6e 64 20 0a 65 6c 73 65 0a 63 75 72 6e   ┆ndicate succes *) end  else curn┆
0x074200…074220 (30, 1, 15) 61 6d 65 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 20 28 2a 20 66 6f 6c 6c 6f 77 20 63 68 61 69 6e 2c   ┆ame:= nextname; (* follow chain,┆
0x074220…074240             20 61 6e 64 20 74 65 73 74 20 6e 65 78 74 20 6e 61 6d 65 20 69 6e 20 6c 69 73 74 20 2a 29 0a 0a   ┆ and test next name in list *)  ┆
0x074240…074260             69 66 20 63 75 72 6e 61 6d 65 20 3d 20 6e 69 6c 6e 61 6d 65 20 74 68 65 6e 0a 65 72 72 6f 72 20   ┆if curname = nilname then error ┆
0x074260…074280             28 6e 61 6d 65 5f 6e 6f 74 5f 66 69 65 6c 64 6e 61 6d 65 29 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77   ┆(name_not_fieldname);  end; (* w┆
0x074280…0742a0             69 74 68 20 6e 61 6d 65 73 2c 20 74 79 70 65 73 20 65 74 63 20 6f 66 20 73 74 61 63 6b 74 6f 70   ┆ith names, types etc of stacktop┆
0x0742a0…0742c0             20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 63 66 69 65 6c 64 20 2a 29 0a 0a 0a 0a 63 75 70 61 72 72   ┆ *)  end; (* cfield *)    cuparr┆
0x0742c0…0742e0             6f 77 3a 0a 62 65 67 69 6e 0a 28 2a 20 73 74 61 63 6b 74 6f 70 20 69 73 20 3c 76 61 72 69 61 62   ┆ow: begin (* stacktop is <variab┆
0x0742e0…074300             6c 65 3e 2c 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 70 6f 69 6e 74 65 72 74 79 70 65 20 2a   ┆le>, which must be pointertype *┆
0x074300…074320             29 0a 28 2a 20 69 66 20 74 68 65 20 70 72 65 76 69 6f 73 20 27 76 61 72 69 61 62 6c 65 27 20 69   ┆) (* if the previos 'variable' i┆
0x074320…074340             73 20 70 61 72 61 6d 65 74 65 72 6c 65 73 73 20 66 75 6e 63 74 69 6f 6e 63 61 6c 6c 2c 20 74 68   ┆s parameterless functioncall, th┆
0x074340…074360             65 6e 20 2e 2e 2e 20 2a 29 0a 77 69 74 68 20 73 74 61 63 6b 74 6f 70 5e 20 64 6f 0a 69 66 20 6f   ┆en ... *) with stacktop^ do if o┆
0x074360…074380             70 63 6f 64 65 3d 63 69 64 20 74 68 65 6e 0a 77 69 74 68 20 6f 70 5f 6e 61 6d 65 20 5e 20 64 6f   ┆pcode=cid then with op_name ^ do┆
0x074380…0743a0             20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 28 70 6f 73 73 69 62 6c 65 20 66 75 6e 63 74 69   ┆ (* namenode of (possible functi┆
0x0743a0…0743c0             6f 6e 20 6e 61 6d 65 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 3d 63 66 75 6e 63 74 69 6f 6e   ┆on name *) if namekind=cfunction┆
0x0743c0…0743e0             20 74 68 65 6e 0a 62 65 67 69 6e 0a 70 75 73 68 63 61 6c 6c 3b 0a 70 72 65 70 61 72 65 5f 63 61   ┆ then begin pushcall; prepare_ca┆
0x0743e0…074400             6c 6c 28 73 74 61 63 6b 74 6f 70 29 3b 0a 74 65 72 6d 69 6e 61 74 65 5f 63 61 6c 6c 28 73 74 61   ┆ll(stacktop); terminate_call(sta┆
0x074400…074420 (31, 0, 1)  63 6b 74 6f 70 29 3b 0a 65 6e 64 3b 0a 0a 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63   ┆cktop); end;   resolvetype (stac┆
0x074420…074440             6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 2c   ┆ktop, exprtypename, exprelement,┆
0x074440…074460             20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 65 78 70 72 62 61 73 65 6b 69 6e 64 20   ┆ exprbasekind); if exprbasekind ┆
0x074460…074480             3c 3e 20 63 70 6f 69 6e 74 65 72 20 74 68 65 6e 0a 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 20   ┆<> cpointer then suppress_error ┆
0x074480…0744a0             28 65 78 70 72 62 61 73 65 6b 69 6e 64 2c 20 6d 75 73 74 5f 62 65 5f 70 6f 69 6e 74 65 72 74 79   ┆(exprbasekind, must_be_pointerty┆
0x0744a0…0744c0             70 65 5f 62 65 66 6f 72 65 5f 75 70 61 72 72 6f 77 29 0a 65 6c 73 65 0a 6f 70 65 72 20 28 75 6e   ┆pe_before_uparrow) else oper (un┆
0x0744c0…0744e0             61 72 79 2c 20 63 75 70 61 72 72 6f 77 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 20 28 2a 20 66 6f   ┆ary, cuparrow, exprelement (* fo┆
0x0744e0…074500             6c 6c 6f 77 20 70 6f 69 6e 74 65 72 2d 74 79 70 65 20 2a 29 20 29 3b 0a 20 73 74 61 63 6b 74 6f   ┆llow pointer-type *) );  stackto┆
0x074500…074520             70 20 5e 20 2e 20 6f 70 5f 70 61 63 6b 66 6c 61 67 3a 3d 20 66 61 6c 73 65 3b 20 28 2a 20 70 6f   ┆p ^ . op_packflag:= false; (* po┆
0x074520…074540             69 6e 74 65 64 20 76 61 72 69 61 62 6c 65 20 6e 6f 74 20 70 61 63 6b 65 64 20 2a 29 0a 0a 65 6e   ┆inted variable not packed *)  en┆
0x074540…074560             64 3b 20 28 2a 20 63 70 6f 69 6e 74 65 72 20 2a 29 0a 0a 0a 0a 63 65 71 2c 0a 63 6e 65 2c 0a 63   ┆d; (* cpointer *)    ceq, cne, c┆
0x074560…074580             6c 74 2c 0a 63 6c 65 2c 0a 63 67 74 2c 0a 63 67 65 3a 0a 72 65 6c 61 74 69 6f 6e 20 28 72 65 63   ┆lt, cle, cgt, cge: relation (rec┆
0x074580…0745a0             74 79 70 65 29 3b 0a 0a 0a 0a 63 61 6e 64 2c 0a 63 6f 72 2c 0a 63 78 6f 72 2c 0a 63 70 6c 75 73   ┆type);    cand, cor, cxor, cplus┆
0x0745a0…0745c0             2c 0a 63 6d 69 6e 75 73 2c 0a 63 73 74 61 72 2c 0a 63 73 68 69 66 74 2c 0a 63 73 6c 61 73 68 3a   ┆, cminus, cstar, cshift, cslash:┆
0x0745c0…0745e0             0a 61 72 69 74 68 6f 70 20 28 72 65 63 74 79 70 65 29 3b 0a 0a 0a 0a 63 65 6e 64 65 78 70 72 65   ┆ arithop (rectype);    cendexpre┆
0x0745e0…074600             73 73 69 6f 6e 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 0a 0a 63 62 65 67 69 6e 61 63   ┆ssion: ; (* blind *)    cbeginac┆
0x074600…074620 (31, 0, 2)  74 75 61 6c 3a 0a 62 65 67 69 6e 61 63 74 75 61 6c 3b 0a 0a 0a 0a 63 61 63 74 75 61 6c 70 61 72   ┆tual: beginactual;    cactualpar┆
0x074620…074640             61 6d 2c 0a 63 64 6f 75 62 6c 65 70 61 72 61 6d 3a 0a 61 63 74 5f 70 61 72 61 6d 3b 0a 0a 0a 0a   ┆am, cdoubleparam: act_param;    ┆
0x074640…074660             63 65 6e 64 73 74 72 75 63 2c 0a 63 65 6e 64 61 63 74 75 61 6c 3a 0a 74 65 72 6d 69 6e 61 74 65   ┆cendstruc, cendactual: terminate┆
0x074660…074680             5f 63 61 6c 6c 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 0a 0a 63 62 65 67 69 6e 73 74 72 75 63   ┆_call (stacktop);    cbeginstruc┆
0x074680…0746a0             3a 0a 62 65 67 69 6e 20 28 2a 20 61 64 64 20 61 20 74 79 70 65 20 6e 61 6d 65 20 75 6e 6c 65 73   ┆: begin (* add a type name unles┆
0x0746a0…0746c0             73 20 65 78 70 6c 69 63 69 74 20 73 74 61 74 65 64 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 28 3a   ┆s explicit stated in front of (:┆
0x0746c0…0746e0             2c 20 61 6e 64 0a 70 72 6f 63 65 65 64 20 61 73 20 62 65 67 69 6e 61 63 74 75 61 6c 20 2a 29 0a   ┆, and proceed as beginactual *) ┆
0x0746e0…074700             77 69 74 68 20 73 74 61 63 6b 74 6f 70 5e 20 64 6f 0a 69 66 20 28 6f 70 63 6f 64 65 3c 3e 63 69   ┆with stacktop^ do if (opcode<>ci┆
0x074700…074720             64 29 20 6f 72 20 28 6f 70 5f 6e 61 6d 65 5e 2e 6e 61 6d 65 6b 69 6e 64 3c 3e 63 74 79 70 65 29   ┆d) or (op_name^.namekind<>ctype)┆
0x074720…074740             20 74 68 65 6e 0a 28 2a 20 28 3a 20 77 69 74 68 6f 75 74 20 6c 65 61 64 69 6e 67 20 74 79 70 65   ┆ then (* (: without leading type┆
0x074740…074760             20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2c 20 61 73 73 75 6d 65 20 63 75 72 5f 74 79 70 65 6e   ┆ specification, assume cur_typen┆
0x074760…074780             61 6d 65 20 69 66 20 6f 75 74 65 72 6d 6f 73 74 0a 62 65 67 69 6e 73 74 72 75 63 20 6f 74 68 65   ┆ame if outermost beginstruc othe┆
0x074780…0747a0             72 77 69 73 65 20 75 73 65 20 74 68 65 20 22 66 6f 72 6d 61 6c 22 20 74 79 70 65 20 28 74 68 65   ┆rwise use the "formal" type (the┆
0x0747a0…0747c0             20 73 74 72 75 63 74 75 72 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61 73 20 69 66 0a 69 74 20 77   ┆ structure is handled as if it w┆
0x0747c0…0747e0             65 72 65 20 61 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 29 20 2a 29 0a 62 65 67 69 6e 0a 69   ┆ere a parameter list) *) begin i┆
0x0747e0…074800             66 20 61 72 67 6b 69 6e 64 3d 63 6e 6f 63 6f 64 65 20 28 2a 20 6f 75 74 65 72 6d 6f 73 74 20 62   ┆f argkind=cnocode (* outermost b┆
0x074800…074820 (31, 0, 3)  65 67 69 6e 73 74 72 75 63 20 2a 29 20 74 68 65 6e 0a 63 75 72 6e 61 6d 65 3a 3d 20 63 75 72 5f   ┆eginstruc *) then curname:= cur_┆
0x074820…074840             74 79 70 65 6e 61 6d 65 0a 65 6c 73 65 0a 69 66 20 61 72 67 6b 69 6e 64 3d 63 73 74 72 75 63 72   ┆typename else if argkind=cstrucr┆
0x074840…074860             65 63 6f 72 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 68 69 6c 65 20 28 63 75 72 66 6f 72 6d 61   ┆ecord then begin while (curforma┆
0x074860…074880             6c 5e 2e 6e 61 6d 65 6b 69 6e 64 3c 3e 63 72 65 63 66 69 65 6c 64 29 20 61 6e 64 20 28 63 75 72   ┆l^.namekind<>crecfield) and (cur┆
0x074880…0748a0             66 6f 72 6d 61 6c 3c 3e 6e 69 6c 6e 61 6d 65 29 20 64 6f 0a 28 2a 20 62 79 70 61 73 73 20 61 6e   ┆formal<>nilname) do (* bypass an┆
0x0748a0…0748c0             6f 6e 79 6d 6f 75 73 20 74 79 70 65 73 20 69 6e 20 74 68 65 20 66 69 65 6c 64 20 6c 69 73 74 20   ┆onymous types in the field list ┆
0x0748c0…0748e0             2a 29 0a 63 75 72 66 6f 72 6d 61 6c 3a 3d 20 63 75 72 66 6f 72 6d 61 6c 5e 2e 6e 65 78 74 6e 61   ┆*) curformal:= curformal^.nextna┆
0x0748e0…074900             6d 65 3b 0a 63 75 72 6e 61 6d 65 3a 3d 20 63 75 72 66 6f 72 6d 61 6c 5e 20 28 2a 20 66 69 65 6c   ┆me; curname:= curformal^ (* fiel┆
0x074900…074920             64 20 6e 61 6d 65 20 2a 29 20 2e 20 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 0a 65 6c 73 65 0a 63   ┆d name *) . typename; end else c┆
0x074920…074940             75 72 6e 61 6d 65 3a 3d 20 63 75 72 66 6f 72 6d 61 6c 3b 20 28 2a 20 61 72 72 61 79 20 65 6c 65   ┆urname:= curformal; (* array ele┆
0x074940…074960             6d 65 6e 74 20 74 79 70 65 20 2a 29 0a 0a 6e 65 77 6f 70 61 6e 64 28 63 74 79 70 65 69 64 2c 20   ┆ment type *)  newopand(ctypeid, ┆
0x074960…074980             63 75 72 6e 61 6d 65 5e 2e 74 79 70 65 6e 61 6d 65 29 3b 0a 73 74 61 63 6b 74 6f 70 5e 2e 6f 70   ┆curname^.typename); stacktop^.op┆
0x074980…0749a0             5f 6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 65 6e 64 3b 20 28 2a 20 73 69 6d 75 6c 61 74   ┆_name:= curname; end; (* simulat┆
0x0749a0…0749c0             65 20 69 64 28 73 70 69 78 29 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 28 3a 20 20 2a 29 0a 0a 62   ┆e id(spix) in front of (:  *)  b┆
0x0749c0…0749e0             65 67 69 6e 61 63 74 75 61 6c 3b 0a 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 3a   ┆eginactual; var_initialization :┆
0x0749e0…074a00             3d 20 74 72 75 65 3b 0a 65 6e 64 3b 20 28 2a 20 62 65 67 69 6e 73 74 72 75 63 20 2a 29 0a 0a 0a   ┆= true; end; (* beginstruc *)   ┆
0x074a00…074a20 (31, 0, 4)  63 65 6e 64 76 61 72 69 61 62 6c 65 3a 0a 74 65 72 6d 69 6e 61 74 65 5f 66 75 6e 63 63 61 6c 6c   ┆cendvariable: terminate_funccall┆
0x074a20…074a40             20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 0a 0a 63 63 61 6c 6c 70 72 6f 63 65 64 75 72 65 3a 0a   ┆ (stacktop);    ccallprocedure: ┆
0x074a40…074a60             62 65 67 69 6e 0a 74 65 72 6d 69 6e 61 74 65 5f 66 75 6e 63 63 61 6c 6c 20 28 73 74 61 63 6b 74   ┆begin terminate_funccall (stackt┆
0x074a60…074a80             6f 70 29 3b 20 20 28 2a 20 74 65 72 6d 69 6e 61 74 65 20 61 6e 79 20 65 72 72 6f 6e 65 6f 75 73   ┆op);  (* terminate any erroneous┆
0x074a80…074aa0             20 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 2a 29 0a 6d 61 6b 65 5f 63 61 6c 6c 20 28 73 74 61   ┆ function-call *) make_call (sta┆
0x074aa0…074ac0             63 6b 74 6f 70 29 3b 20 28 2a 20 6d 61 6b 65 20 73 75 72 65 20 65 76 65 6e 20 61 20 70 61 72 61   ┆cktop); (* make sure even a para┆
0x074ac0…074ae0             6d 65 74 65 72 2d 6c 65 73 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 2a   ┆meter-less procedure is called *┆
0x074ae0…074b00             29 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 74 68 65 20 73 74 61 63 6b 74 6f 70 20 69 64 65 6e   ┆) (* test that the stacktop iden┆
0x074b00…074b20             74 69 66 69 65 73 20 61 20 70 72 6f 63 65 64 75 72 65 20 63 61 6c 6c 20 2a 29 0a 77 69 74 68 20   ┆tifies a procedure call *) with ┆
0x074b20…074b40             20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 69 66 20 6f 70 63 6f 64 65 20 3c 3e 20 63 65 6e 64   ┆ stacktop ^ do if opcode <> cend┆
0x074b40…074b60             70 72 6f 63 20 74 68 65 6e 0a 65 72 72 6f 72 20 28 6e 6f 74 5f 70 72 6f 63 65 64 75 72 65 5f 63   ┆proc then error (not_procedure_c┆
0x074b60…074b80             61 6c 6c 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70   ┆all); emit_and_release (stacktop┆
0x074b80…074ba0             29 3b 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 75   ┆); prepare_statement; end;    cu┆
0x074ba0…074bc0             70 6c 75 73 2c 0a 63 75 6d 69 6e 75 73 3a 0a 62 65 67 69 6e 0a 72 65 73 6f 6c 76 65 74 79 70 65   ┆plus, cuminus: begin resolvetype┆
0x074bc0…074be0             20 28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c   ┆ (stacktop, exprtypename, exprel┆
0x074be0…074c00             65 6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 28 2a 20 65 78 70 72 65 73 73   ┆ement, exprbasekind); (* express┆
0x074c00…074c20 (31, 0, 5)  69 6f 6e 20 6d 75 73 74 20 62 65 20 6f 66 20 69 6e 74 65 67 65 72 20 6f 72 20 72 65 61 6c 20 74   ┆ion must be of integer or real t┆
0x074c20…074c40             79 70 65 73 20 2a 29 0a 69 66 20 28 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3d 20 63 69 6e 74 65   ┆ypes *) if (exprbasekind = cinte┆
0x074c40…074c60             67 65 72 29 20 6f 72 20 28 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3d 20 63 72 65 61 6c 29 20 74   ┆ger) or (exprbasekind = creal) t┆
0x074c60…074c80             68 65 6e 0a 6f 70 65 72 20 28 75 6e 61 72 79 2c 20 72 65 63 74 79 70 65 2c 20 65 78 70 72 74 79   ┆hen oper (unary, rectype, exprty┆
0x074c80…074ca0             70 65 6e 61 6d 65 29 0a 65 6c 73 65 0a 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 20 28 65 78 70   ┆pename) else suppress_error (exp┆
0x074ca0…074cc0             72 62 61 73 65 6b 69 6e 64 2c 20 6d 6f 6e 61 64 69 63 5f 65 72 72 6f 72 29 3b 0a 65 6e 64 3b 0a   ┆rbasekind, monadic_error); end; ┆
0x074cc0…074ce0             0a 0a 0a 63 64 69 76 2c 0a 63 6d 6f 64 3a 0a 62 65 67 69 6e 0a 28 2a 20 62 6f 74 68 20 6f 70 65   ┆   cdiv, cmod: begin (* both ope┆
0x074ce0…074d00             72 61 6e 64 73 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 73 20 2a 29 0a 65 71 75 61 6c 74   ┆rands must be integers *) equalt┆
0x074d00…074d20             79 70 65 73 20 28 6e 65 78 74 74 6f 70 2c 20 73 74 61 63 6b 74 6f 70 2c 20 69 6e 74 65 67 65 72   ┆ypes (nexttop, stacktop, integer┆
0x074d20…074d40             5f 74 79 70 65 6e 61 6d 65 2c 20 61 72 69 74 68 6d 65 74 69 63 5f 65 72 72 6f 72 29 3b 0a 6f 70   ┆_typename, arithmetic_error); op┆
0x074d40…074d60             65 72 20 28 62 69 6e 61 72 79 2c 20 72 65 63 74 79 70 65 2c 20 69 6e 74 65 67 65 72 5f 74 79 70   ┆er (binary, rectype, integer_typ┆
0x074d60…074d80             65 6e 61 6d 65 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 6e 6f 74 3a 0a 62 65 67 69 6e 0a 28 2a 20 73   ┆ename); end;    cnot: begin (* s┆
0x074d80…074da0             74 61 63 6b 74 6f 70 20 6d 75 73 74 20 62 65 20 6f 66 20 62 6f 6f 6c 65 61 6e 20 6f 72 20 69 6e   ┆tacktop must be of boolean or in┆
0x074da0…074dc0             74 65 67 65 72 20 74 79 70 65 20 2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b   ┆teger type *) resolvetype (stack┆
0x074dc0…074de0             74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 2c 20   ┆top, exprtypename, exprelement, ┆
0x074de0…074e00             65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 0a 69 66 20 28 74 61 72 67 65 74 5f 6d 61 63 68 69   ┆exprbasekind);  if (target_machi┆
0x074e00…074e20 (31, 0, 6)  6e 65 20 3d 20 74 61 72 67 65 74 7a 38 30 29 20 61 6e 64 20 28 65 78 70 72 74 79 70 65 6e 61 6d   ┆ne = targetz80) and (exprtypenam┆
0x074e20…074e40             65 20 3c 3e 20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e 61 6d 65 29 20 74 68 65 6e 0a 65 72 72 6f   ┆e <> boolean_typename) then erro┆
0x074e40…074e60             72 28 20 6d 6f 6e 61 64 69 63 5f 65 72 72 6f 72 20 29 3b 0a 0a 69 66 20 28 65 78 70 72 74 79 70   ┆r( monadic_error );  if (exprtyp┆
0x074e60…074e80             65 6e 61 6d 65 20 3d 20 69 6e 74 65 67 65 72 5f 74 79 70 65 6e 61 6d 65 29 20 6f 72 20 28 20 65   ┆ename = integer_typename) or ( e┆
0x074e80…074ea0             78 70 72 74 79 70 65 6e 61 6d 65 20 3d 20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e 61 6d 65 20 29   ┆xprtypename = boolean_typename )┆
0x074ea0…074ec0             20 74 68 65 6e 0a 6f 70 65 72 28 20 75 6e 61 72 79 2c 20 72 65 63 74 79 70 65 2c 20 65 78 70 72   ┆ then oper( unary, rectype, expr┆
0x074ec0…074ee0             74 79 70 65 6e 61 6d 65 20 29 0a 65 6c 73 65 0a 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 28 20   ┆typename ) else suppress_error( ┆
0x074ee0…074f00             65 78 70 72 62 61 73 65 6b 69 6e 64 2c 20 6d 6f 6e 61 64 69 63 5f 65 72 72 6f 72 29 3b 0a 65 6e   ┆exprbasekind, monadic_error); en┆
0x074f00…074f20             64 3b 0a 0a 0a 0a 63 69 6e 3a 0a 62 65 67 69 6e 0a 28 2a 20 72 69 67 74 68 20 6f 70 61 6e 64 20   ┆d;    cin: begin (* rigth opand ┆
0x074f20…074f40             6d 75 73 74 20 62 65 20 6f 66 20 73 65 74 2d 74 79 70 65 20 2a 29 0a 6c 65 66 74 74 79 70 65 6e   ┆must be of set-type *) lefttypen┆
0x074f40…074f60             61 6d 65 20 28 2a 20 64 75 6d 6d 79 20 61 73 73 69 67 6e 6d 65 6e 74 20 2a 29 3a 3d 20 74 65 73   ┆ame (* dummy assignment *):= tes┆
0x074f60…074f80             74 65 6e 75 6d 65 72 61 74 69 6f 6e 20 28 6e 65 78 74 74 6f 70 29 3b 0a 28 2a 20 6e 6f 74 65 3a   ┆tenumeration (nexttop); (* note:┆
0x074f80…074fa0             20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 69 73 20 73 69 6d 70 6c 69 66 69 65 64 20 74 79 70 65   ┆ exprtypename is simplified type┆
0x074fa0…074fc0             6e 61 6d 65 20 6f 66 20 6e 65 78 74 74 6f 70 20 2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28   ┆name of nexttop *) resolvetype (┆
0x074fc0…074fe0             73 74 61 63 6b 74 6f 70 2c 20 72 69 67 74 68 74 79 70 65 6e 61 6d 65 2c 20 72 69 67 74 68 65 6c   ┆stacktop, rigthtypename, rigthel┆
0x074fe0…075000             65 6d 65 6e 74 2c 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 28 65 78 70 72 62   ┆ement, rigthbasekind); if (exprb┆
0x075000…075020 (31, 0, 7)  61 73 65 6b 69 6e 64 20 3c 3e 20 63 65 72 72 6f 72 6b 69 6e 64 29 20 61 6e 64 20 28 72 69 67 74   ┆asekind <> cerrorkind) and (rigt┆
0x075020…075040             68 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 65 72 72 6f 72 6b 69 6e 64 29 20 74 68 65 6e 0a 69 66   ┆hbasekind <> cerrorkind) then if┆
0x075040…075060             20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 73 65 74 20 74 68 65 6e 0a 65 72 72 6f   ┆ rigthbasekind <> cset then erro┆
0x075060…075080             72 20 28 72 65 6c 61 74 69 6f 6e 5f 65 72 72 6f 72 29 0a 65 6c 73 65 0a 69 66 20 72 69 67 74 68   ┆r (relation_error) else if rigth┆
0x075080…0750a0             65 6c 65 6d 65 6e 74 20 3c 3e 20 6e 69 6c 5f 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 20 20 20 28   ┆element <> nil_typename then   (┆
0x0750a0…0750c0             2a 20 6f 6d 69 74 20 65 72 72 6f 72 2c 20 69 66 20 65 6d 70 74 79 20 73 65 74 20 2a 29 0a 69 66   ┆* omit error, if empty set *) if┆
0x0750c0…0750e0             20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 3c 3e 20 72 69 67 74 68 65 6c 65 6d 65 6e 74 20 74 68   ┆ exprtypename <> rigthelement th┆
0x0750e0…075100             65 6e 0a 65 72 72 6f 72 20 28 72 65 6c 61 74 69 6f 6e 5f 65 72 72 6f 72 29 3b 0a 6f 70 65 72 20   ┆en error (relation_error); oper ┆
0x075100…075120             28 62 69 6e 61 72 79 2c 20 63 69 6e 2c 20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e 61 6d 65 29 3b   ┆(binary, cin, boolean_typename);┆
0x075120…075140             0a 65 6e 64 3b 0a 0a 0a 0a 0a 63 65 6f 6d 3a 0a 65 6e 64 70 61 73 73 31 3a 3d 20 74 72 75 65 3b   ┆ end;     ceom: endpass1:= true;┆
0x075140…075160             0a 0a 0a 0a 0a 65 6c 73 65 0a 63 6f 6d 70 5f 65 72 72 6f 72 20 28 75 6e 6b 6e 6f 77 6e 5f 72 65   ┆     else comp_error (unknown_re┆
0x075160…075180             63 74 79 70 65 29 3b 0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 72 65 63 74 79 70 65 20 2a 29 0a   ┆ctype); end; (* case rectype *) ┆
0x075180…0751a0             0a 75 6e 74 69 6c 20 65 6e 64 70 61 73 73 31 3b 0a 0a 0a 0a 28 2a 20 65 6e 64 20 6f 66 20 70 72   ┆ until endpass1;    (* end of pr┆
0x0751a0…0751c0             6f 67 72 61 6d 20 2a 29 0a 65 6e 64 2e 0a 70 20 2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28   ┆ogram *) end. p *) resolvetype (┆
0x0751c0…0751e0             73 74 61 63 6b 74 6f 70 2c 20 72 69 67 74 68 74 79 70 65 6e 61 6d 65 2c 20 72 69 67 74 68 65 6c   ┆stacktop, rigthtypename, rigthel┆
0x0751e0…075200             65 6d 65 6e 74 2c 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 28 65 78 70 72 62   ┆ement, rigthbasekind); if (exprb┆
0x075200…075220 (31, 0, 8)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 72 74 70 2f 73 2e 72 74 70 75 6e 69 74 2e 70 61 73 00   ┆../sw2103/src/rtp/s.rtpunit.pas ┆
0x075220…075240             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x075260…075280             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x075280…0752a0             20 20 33 31 33 35 36 20 20 35 33 30 37 30 36 32 31 33 34 20 20 31 31 34 30 33 00 20 00 00 00 00   ┆  31356  5307062134  11403      ┆
0x0752a0…0752c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x075400…075420 (31, 0, 9)  01 68 33 35 38 39 38 0a 01 73 20 30 30 30 30 32 2f 30 30 30 30 31 2f 30 30 35 36 34 0a 01 64 20   ┆ h35898  s 00002/00001/00564  d ┆
0x075420…075440             44 20 31 2e 33 20 39 32 2f 31 32 2f 30 32 20 30 38 3a 32 33 3a 30 36 20 73 77 32 31 30 33 20 33   ┆D 1.3 92/12/02 08:23:06 sw2103 3┆
0x075440…075460             20 32 0a 01 63 20 50 61 74 68 6c 65 6e 67 74 68 20 63 68 61 6e 67 65 64 20 33 30 20 2d 3e 20 38   ┆ 2  c Pathlength changed 30 -> 8┆
0x075460…075480             30 20 20 28 39 32 31 31 32 36 2e 31 29 2e 0a 01 65 0a 01 73 20 30 30 30 30 37 2f 30 30 30 30 31   ┆0  (921126.1).  e  s 00007/00001┆
0x075480…0754a0             2f 30 30 35 35 38 0a 01 64 20 44 20 31 2e 32 20 39 32 2f 31 30 2f 31 35 20 31 34 3a 33 35 3a 32   ┆/00558  d D 1.2 92/10/15 14:35:2┆
0x0754a0…0754c0             39 20 73 77 32 31 30 33 20 32 20 31 0a 01 63 20 46 69 6c 65 6d 6f 64 65 20 73 65 74 20 74 6f 20   ┆9 sw2103 2 1  c Filemode set to ┆
0x0754c0…0754e0             30 20 74 6f 20 65 6e 61 62 6c 65 20 72 65 61 64 2d 6f 6e 6c 79 2e 0a 01 65 0a 01 73 20 30 30 35   ┆0 to enable read-only.  e  s 005┆
0x0754e0…075500             35 39 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20 44 20 31 2e 31 20 39 32 2f 31 30 2f 31 34   ┆59/00000/00000  d D 1.1 92/10/14┆
0x075500…075520             20 30 39 3a 30 39 3a 31 34 20 73 77 32 31 30 33 20 31 20 30 0a 01 63 20 53 43 43 53 20 61 6e 64   ┆ 09:09:14 sw2103 1 0  c SCCS and┆
0x075520…075540             20 55 4e 49 58 20 75 73 65 64 2c 20 73 6f 75 72 63 65 20 66 69 6c 65 20 39 32 2e 30 33 2e 30 33   ┆ UNIX used, source file 92.03.03┆
0x075540…075560             2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 75 6e 69 74 20 72 74 70 75 6e   ┆.  e  u  U  t  T  I 1 unit rtpun┆
0x075560…075580             69 74 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆it;  (*-------------------------┆
0x075580…0755a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0755a0…0755c0             2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 28 43 29 20 43 6f 70 79 72 69 67 74 68 20 31 39 39   ┆-------- -- -- (C) Copyrigth 199┆
0x0755c0…0755e0             32 20 20 44 41 4e 4f 53 49 0a 2d 2d 0a 2d 2d 09 55 6e 69 74 20 75 73 65 64 20 62 79 20 43 6f 6d   ┆2  DANOSI -- -- Unit used by Com┆
0x0755e0…075600             70 69 6c 65 72 20 61 6e 64 20 64 65 62 75 67 20 70 72 6f 67 72 61 6d 73 2e 0a 2d 2d 0a 2d 2d 2d   ┆piler and debug programs. -- ---┆
0x075600…075620 (31, 0, 10) 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
                            […0x1…]
0x075640…075660             0a 2d 2d 0a 2d 2d 09 52 65 76 69 73 69 6f 6e 73 0a 2d 2d 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ -- -- Revisions -- ------------┆
0x075660…075680             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 20 20 20 20 20 20 20 39   ┆-------------------- --        9┆
0x075680…0756a0             32 2e 30 33 2e 30 33 20 20 45 42 4b 20 20 20 55 73 65 64 20 69 6e 20 72 65 6c 65 61 73 65 20 31   ┆2.03.03  EBK   Used in release 1┆
0x0756a0…0756c0             2e 31 32 0a 2d 2d 09 20 20 39 32 2e 30 34 2e 31 30 20 20 42 42 20 20 20 20 43 6f 72 72 65 63 74   ┆.12 --   92.04.10  BB    Correct┆
0x0756c0…0756e0             69 6f 6e 20 72 65 6c 61 74 65 64 20 74 6f 20 32 20 63 6f 6e 73 65 63 75 74 69 76 65 20 73 6f 75   ┆ion related to 2 consecutive sou┆
0x0756e0…075700             72 63 65 70 61 74 68 2e 0a 2d 2d 20 20 31 2e 31 20 20 20 39 32 2e 31 30 2e 31 34 20 20 48 45 4a   ┆rcepath. --  1.1   92.10.14  HEJ┆
0x075700…075720             20 20 20 53 43 43 53 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01 49 20 32 0a 2d 2d 20 20   ┆   SCCS and UNIX used.  I 2 --  ┆
0x075720…075740             31 2e 32 20 20 20 39 32 2e 31 30 2e 31 35 20 20 48 45 4a 20 20 20 46 69 6c 65 6d 6f 64 65 20 73   ┆1.2   92.10.15  HEJ   Filemode s┆
0x075740…075760             65 74 20 30 20 74 6f 20 65 6e 61 62 6c 65 20 72 65 61 64 2d 6f 6e 6c 79 2e 0a 01 49 20 33 0a 2d   ┆et 0 to enable read-only.  I 3 -┆
0x075760…075780             2d 20 20 31 2e 33 20 20 20 39 32 2e 31 32 2e 30 32 20 20 48 45 4a 20 20 20 50 61 74 68 6c 65 6e   ┆-  1.3   92.12.02  HEJ   Pathlen┆
0x075780…0757a0             67 74 68 20 63 68 61 6e 67 65 64 20 20 33 30 20 2d 3e 20 38 30 20 28 20 46 52 20 39 32 31 31 32   ┆gth changed  30 -> 80 ( FR 92112┆
0x0757a0…0757c0             36 2e 31 20 29 2e 0a 01 45 20 33 0a 01 45 20 32 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆6.1 ).  E 3  E 2 -- ------------┆
0x0757c0…0757e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0757e0…075800             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20   ┆----------------------- -- SCCS ┆
0x075800…075820 (31, 0, 11) 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09   ┆information -- File   :  %P% -- ┆
0x075820…075840             4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d   ┆Module :  %M% -- Version:  %I% -┆
0x075840…075860             2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆- Date   :  %E%  %U% -----------┆
0x075860…075880             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x075880…0758a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 69 6e 74   ┆------------------------ *)  int┆
0x0758a0…0758c0             65 72 66 61 63 65 0a 75 73 65 73 20 64 6f 73 3b 0a 0a 63 6f 6e 73 74 0a 0a 69 5f 70 61 73 73 31   ┆erface uses dos;  const  i_pass1┆
0x0758c0…0758e0             5f 65 6e 76 31 6e 61 6d 65 20 3d 27 72 74 70 33 35 30 32 31 2e 65 6e 76 27 3b 0a 69 5f 70 61 73   ┆_env1name ='rtp35021.env'; i_pas┆
0x0758e0…075900             73 31 5f 65 6e 76 32 6e 61 6d 65 20 3d 27 72 74 70 33 35 30 32 32 2e 65 6e 76 27 3b 0a 69 5f 70   ┆s1_env2name ='rtp35022.env'; i_p┆
0x075900…075920             61 73 73 31 5f 65 6e 76 7a 6e 61 6d 65 20 3d 27 7a 38 30 2e 65 6e 76 27 3b 0a 69 5f 70 61 73 73   ┆ass1_envzname ='z80.env'; i_pass┆
0x075920…075940             31 5f 74 61 62 6e 61 6d 65 20 20 3d 27 72 74 70 33 35 30 32 32 2e 74 61 62 27 3b 0a 0a 69 5f 70   ┆1_tabname  ='rtp35022.tab';  i_p┆
0x075940…075960             61 73 73 78 5f 65 72 72 31 6e 61 6d 65 20 3d 27 72 74 70 33 35 30 32 31 2e 65 72 72 27 3b 0a 69   ┆assx_err1name ='rtp35021.err'; i┆
0x075960…075980             5f 70 61 73 73 78 5f 65 72 72 32 6e 61 6d 65 20 3d 27 72 74 70 33 35 30 32 32 2e 65 72 72 27 3b   ┆_passx_err2name ='rtp35022.err';┆
0x075980…0759a0             0a 0a 69 5f 70 61 73 73 35 5f 65 78 74 6e 61 6d 65 20 20 3d 27 72 74 70 33 35 30 32 32 2e 6c 69   ┆  i_pass5_extname  ='rtp35022.li┆
0x0759a0…0759c0             62 27 3b 0a 69 5f 70 61 73 73 36 5f 65 6e 76 6e 61 6d 65 20 20 3d 27 72 74 70 33 35 30 32 32 2e   ┆b'; i_pass6_envname  ='rtp35022.┆
0x0759c0…0759e0             65 6e 35 27 3b 0a 0a 6f 5f 70 61 73 73 31 5f 63 6f 64 65 6e 61 6d 65 20 3d 27 72 74 70 70 61 73   ┆en5';  o_pass1_codename ='rtppas┆
0x0759e0…075a00             73 31 2e 63 6f 64 27 3b 20 28 2a 20 6f 6e 20 70 61 74 68 31 20 2a 29 0a 6f 5f 70 61 73 73 31 5f   ┆s1.cod'; (* on path1 *) o_pass1_┆
0x075a00…075a20 (31, 0, 12) 73 79 6d 62 6e 61 6d 65 20 3d 27 72 74 70 70 61 73 73 31 2e 73 79 6d 27 3b 0a 6f 5f 70 61 73 73   ┆symbname ='rtppass1.sym'; o_pass┆
0x075a20…075a40             31 5f 73 70 69 78 6e 61 6d 65 20 3d 27 72 74 70 70 61 73 73 31 2e 73 70 78 27 3b 0a 0a 6f 5f 70   ┆1_spixname ='rtppass1.spx';  o_p┆
0x075a40…075a60             61 73 73 33 5f 63 6f 64 65 6e 61 6d 65 20 3d 27 72 74 70 70 61 73 73 33 2e 63 6f 64 27 3b 20 28   ┆ass3_codename ='rtppass3.cod'; (┆
0x075a60…075a80             2a 20 6f 6e 20 70 61 74 68 32 20 2a 29 0a 6f 5f 70 61 73 73 33 5f 6e 69 78 6e 61 6d 65 20 20 3d   ┆* on path2 *) o_pass3_nixname  =┆
0x075a80…075aa0             27 72 74 70 70 61 73 73 33 2e 6e 69 78 27 3b 0a 0a 6f 5f 70 61 73 73 34 5f 63 6f 64 65 6e 61 6d   ┆'rtppass3.nix';  o_pass4_codenam┆
0x075aa0…075ac0             65 20 3d 27 72 74 70 70 61 73 73 34 2e 63 6f 64 27 3b 20 28 2a 20 6f 6e 20 70 61 74 68 31 20 2a   ┆e ='rtppass4.cod'; (* on path1 *┆
0x075ac0…075ae0             29 0a 6f 5f 70 61 73 73 34 5f 6e 69 78 6e 61 6d 65 20 20 3d 27 72 74 70 70 61 73 73 34 2e 6e 69   ┆) o_pass4_nixname  ='rtppass4.ni┆
0x075ae0…075b00             78 27 3b 0a 0a 6f 5f 70 61 73 73 35 5f 63 6f 64 65 6e 61 6d 65 20 3d 27 72 74 70 70 61 73 73 35   ┆x';  o_pass5_codename ='rtppass5┆
0x075b00…075b20             2e 63 6f 64 27 3b 20 28 2a 20 6f 6e 20 70 61 74 68 32 20 2a 29 0a 0a 6f 5f 70 61 73 73 36 5f 63   ┆.cod'; (* on path2 *)  o_pass6_c┆
0x075b20…075b40             6f 64 65 6e 61 6d 65 20 3d 27 72 74 70 70 61 73 73 36 2e 63 6f 64 27 3b 20 28 2a 20 6f 6e 20 75   ┆odename ='rtppass6.cod'; (* on u┆
0x075b40…075b60             73 65 72 20 70 61 74 68 20 2a 29 0a 6f 5f 70 61 73 73 36 5f 77 6f 72 6b 6e 61 6d 65 20 3d 27 72   ┆ser path *) o_pass6_workname ='r┆
0x075b60…075b80             74 70 70 61 73 73 36 2e 77 72 6b 27 3b 20 28 2a 20 6f 6e 20 70 61 74 68 31 20 2a 29 0a 0a 61 6c   ┆tppass6.wrk'; (* on path1 *)  al┆
0x075b80…075ba0             66 61 6c 65 6e 67 74 68 3d 31 32 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a   ┆falength=12;                  (*┆
0x075ba0…075bc0             6c 65 6e 67 74 68 20 6f 66 20 61 6c 66 61 20 76 61 72 69 61 62 6c 65 2a 29 0a 01 44 20 33 0a 70   ┆length of alfa variable*)  D 3 p┆
0x075bc0…075be0             61 74 68 6c 65 6e 67 74 68 3d 33 30 3b 0a 01 45 20 33 0a 01 49 20 33 0a 70 61 74 68 6c 65 6e 67   ┆athlength=30;  E 3  I 3 pathleng┆
0x075be0…075c00             74 68 3d 38 30 3b 0a 01 45 20 33 0a 0a 74 79 70 65 0a 0a 61 6c 66 61 20 3d 20 73 74 72 69 6e 67   ┆th=80;  E 3  type  alfa = string┆
0x075c00…075c20 (31, 0, 13) 5b 61 6c 66 61 6c 65 6e 67 74 68 20 5d 3b 0a 70 61 74 68 20 3d 20 73 74 72 69 6e 67 5b 70 61 74   ┆[alfalength ]; path = string[pat┆
0x075c20…075c40             68 6c 65 6e 67 74 68 20 5d 3b 0a 0a 70 61 72 61 6d 70 74 72 20 3d 20 5e 70 61 72 61 6d 68 65 61   ┆hlength ];  paramptr = ^paramhea┆
0x075c40…075c60             70 3b 0a 70 61 72 61 6d 68 65 61 70 20 3d 20 72 65 63 6f 72 64 0a 20 20 70 61 72 61 6d 65 74 65   ┆p; paramheap = record   paramete┆
0x075c60…075c80             72 20 3a 20 73 74 72 69 6e 67 3b 0a 20 20 6e 65 78 74 20 20 20 20 20 20 3a 20 70 61 72 61 6d 70   ┆r : string;   next      : paramp┆
0x075c80…075ca0             74 72 3b 0a 65 6e 64 3b 0a 63 6f 6e 73 74 0a 6c 69 6e 65 6d 61 78 3d 31 35 30 3b 20 28 2a 6d 61   ┆tr; end; const linemax=150; (*ma┆
0x075ca0…075cc0             78 2e 20 6c 65 6e 67 74 68 20 6f 66 20 6c 69 6e 65 73 2a 29 0a 74 79 70 65 0a 6c 69 6e 65 5f 74   ┆x. length of lines*) type line_t┆
0x075cc0…075ce0             79 70 65 3d 20 61 72 72 61 79 20 5b 20 31 2e 2e 6c 69 6e 65 6d 61 78 20 5d 20 6f 66 20 63 68 61   ┆ype= array [ 1..linemax ] of cha┆
0x075ce0…075d00             72 3b 0a 0a 76 61 72 20 65 78 69 74 70 74 72 20 3a 20 70 6f 69 6e 74 65 72 3b 0a 20 20 20 20 70   ┆r;  var exitptr : pointer;     p┆
0x075d00…075d20             61 72 61 6d 68 65 61 64 3a 20 70 61 72 61 6d 70 74 72 3b 0a 20 20 20 20 70 61 72 61 6d 72 65 63   ┆aramhead: paramptr;     paramrec┆
0x075d20…075d40             20 3a 20 73 74 72 69 6e 67 3b 0a 20 20 20 20 6c 65 66 74 73 69 64 65 2c 20 70 72 6f 67 72 61 6d   ┆ : string;     leftside, program┆
0x075d40…075d60             6e 61 6d 65 3a 20 61 6c 66 61 3b 0a 20 20 20 20 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 2c 20   ┆name: alfa;     rtp35_pathname, ┆
0x075d60…075d80             70 61 74 68 31 5f 6e 61 6d 65 2c 20 70 61 74 68 32 5f 6e 61 6d 65 2c 20 73 6f 75 72 63 65 5f 70   ┆path1_name, path2_name, source_p┆
0x075d80…075da0             61 74 68 3a 20 70 61 74 68 3b 0a 20 20 20 20 69 20 3a 20 77 6f 72 64 3b 0a 20 20 20 20 68 65 78   ┆ath: path;     i : word;     hex┆
0x075da0…075dc0             6e 75 6d 62 65 72 3a 20 61 72 72 61 79 5b 30 2e 2e 31 35 5d 20 6f 66 20 63 68 61 72 3b 0a 0a 0a   ┆number: array[0..15] of char;   ┆
0x075dc0…075de0             70 72 6f 63 65 64 75 72 65 20 61 73 73 69 67 6e 5f 61 6c 66 61 28 76 61 72 20 61 3a 20 61 6c 66   ┆procedure assign_alfa(var a: alf┆
0x075de0…075e00             61 3b 20 73 3a 20 73 74 72 69 6e 67 29 3b 0a 70 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 5f 68   ┆a; s: string); procedure write_h┆
0x075e00…075e20 (31, 0, 14) 65 78 28 64 65 63 5f 6e 75 6d 62 65 72 3a 20 69 6e 74 65 67 65 72 3b 20 70 6f 73 69 74 69 6f 6e   ┆ex(dec_number: integer; position┆
0x075e20…075e40             73 20 3a 20 69 6e 74 65 67 65 72 29 3b 0a 70 72 6f 63 65 64 75 72 65 20 72 75 6e 74 69 6d 65 5f   ┆s : integer); procedure runtime_┆
0x075e40…075e60             65 72 72 6f 72 28 73 3a 20 73 74 72 69 6e 67 29 3b 0a 70 72 6f 63 65 64 75 72 65 20 72 74 70 68   ┆error(s: string); procedure rtph┆
0x075e60…075e80             61 6c 74 28 74 72 61 63 65 20 3a 20 62 6f 6f 6c 65 61 6e 29 3b 0a 70 72 6f 63 65 64 75 72 65 20   ┆alt(trace : boolean); procedure ┆
0x075e80…075ea0             67 65 74 63 6c 6f 63 6b 28 76 61 72 20 74 3a 20 64 61 74 65 74 69 6d 65 29 3b 0a 70 72 6f 63 65   ┆getclock(var t: datetime); proce┆
0x075ea0…075ec0             64 75 72 65 20 66 69 6c 65 74 69 6d 65 28 76 61 72 20 66 3a 20 74 65 78 74 3b 20 76 61 72 20 64   ┆dure filetime(var f: text; var d┆
0x075ec0…075ee0             3a 20 64 61 74 65 74 69 6d 65 29 3b 0a 70 72 6f 63 65 64 75 72 65 20 6e 6f 66 69 6c 65 28 73 3a   ┆: datetime); procedure nofile(s:┆
0x075ee0…075f00             73 74 72 69 6e 67 29 3b 0a 70 72 6f 63 65 64 75 72 65 20 72 65 70 6c 61 63 65 28 66 3a 73 74 72   ┆string); procedure replace(f:str┆
0x075f00…075f20             69 6e 67 29 3b 0a 66 75 6e 63 74 69 6f 6e 20 20 70 61 72 61 6d 72 65 61 64 28 70 5f 6e 6f 3a 20   ┆ing); function  paramread(p_no: ┆
0x075f20…075f40             69 6e 74 65 67 65 72 3b 20 76 61 72 20 72 69 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72 20 74 78   ┆integer; var ri: integer; var tx┆
0x075f40…075f60             74 3a 20 61 6c 66 61 29 3a 20 69 6e 74 65 67 65 72 3b 0a 70 72 6f 63 65 64 75 72 65 20 64 61 74   ┆t: alfa): integer; procedure dat┆
0x075f60…075f80             65 28 76 61 72 20 64 61 74 3a 61 6c 66 61 29 3b 0a 70 72 6f 63 65 64 75 72 65 20 74 69 6d 65 28   ┆e(var dat:alfa); procedure time(┆
0x075f80…075fa0             76 61 72 20 74 69 6d 3a 20 61 6c 66 61 29 3b 0a 0a 01 49 20 32 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d   ┆var tim: alfa);   I 2 (*--------┆
0x075fa0…075fc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x075fc0…075fe0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29   ┆------------------------------*)┆
0x075fe0…076000             0a 0a 01 45 20 32 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 70 72 6f 63 65 64 75 72 65   ┆   E 2 implementation  procedure┆
0x076000…076020 (31, 0, 15) 20 77 72 69 74 65 5f 68 65 78 3b 0a 62 65 67 69 6e 0a 69 66 20 70 6f 73 69 74 69 6f 6e 73 20 3d   ┆ write_hex; begin if positions =┆
0x076020…076040             20 34 20 74 68 65 6e 20 77 72 69 74 65 28 68 65 78 6e 75 6d 62 65 72 20 5b 20 64 65 63 5f 6e 75   ┆ 4 then write(hexnumber [ dec_nu┆
0x076040…076060             6d 62 65 72 20 73 68 72 20 31 32 20 5d 29 3b 0a 69 66 20 70 6f 73 69 74 69 6f 6e 73 20 3e 3d 20   ┆mber shr 12 ]); if positions >= ┆
0x076060…076080             33 20 74 68 65 6e 20 77 72 69 74 65 28 68 65 78 6e 75 6d 62 65 72 20 5b 20 28 64 65 63 5f 6e 75   ┆3 then write(hexnumber [ (dec_nu┆
0x076080…0760a0             6d 62 65 72 20 73 68 72 20 38 29 20 20 61 6e 64 20 31 35 20 5d 29 3b 0a 77 72 69 74 65 28 68 65   ┆mber shr 8)  and 15 ]); write(he┆
0x0760a0…0760c0             78 6e 75 6d 62 65 72 20 5b 20 28 64 65 63 5f 6e 75 6d 62 65 72 20 73 68 72 20 34 29 20 20 61 6e   ┆xnumber [ (dec_number shr 4)  an┆
0x0760c0…0760e0             64 20 31 35 20 5d 2c 0a 20 20 20 20 20 20 68 65 78 6e 75 6d 62 65 72 20 5b 20 64 65 63 5f 6e 75   ┆d 15 ],       hexnumber [ dec_nu┆
0x0760e0…076100             6d 62 65 72 20 61 6e 64 20 31 35 20 5d 20 29 3b 0a 65 6e 64 3b 0a 0a 0a 70 72 6f 63 65 64 75 72   ┆mber and 15 ] ); end;   procedur┆
0x076100…076120             65 20 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 3b 0a 62 65 67 69 6e 0a 0a 77 72 69 74 65 6c 6e 28   ┆e runtime_error; begin  writeln(┆
0x076120…076140             6f 75 74 70 75 74 2c 20 73 29 3b 0a 0a 69 66 20 28 65 78 69 74 63 6f 64 65 20 3c 3e 20 30 29 20   ┆output, s);  if (exitcode <> 0) ┆
0x076140…076160             61 6e 64 20 28 65 78 69 74 63 6f 64 65 20 3c 3e 20 33 30 30 29 20 74 68 65 6e 0a 62 65 67 69 6e   ┆and (exitcode <> 300) then begin┆
0x076160…076180             0a 20 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 2a 2a 2a 20 52 75 6e 74 69 6d 65 20 65 72   ┆   write(output, '*** Runtime er┆
0x076180…0761a0             72 6f 72 28 27 2c 20 65 78 69 74 63 6f 64 65 2c 20 27 29 3a 20 27 29 3b 0a 20 20 63 61 73 65 20   ┆ror(', exitcode, '): ');   case ┆
0x0761a0…0761c0             65 78 69 74 63 6f 64 65 20 6f 66 0a 20 20 20 20 32 3a 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c   ┆exitcode of     2: write(output,┆
0x0761c0…0761e0             20 27 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 20 20 20 20 33 3a 20 77 72 69 74 65   ┆ 'File not found');     3: write┆
0x0761e0…076200             28 6f 75 74 70 75 74 2c 20 27 50 61 74 68 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 20 20 20 20   ┆(output, 'Path not found');     ┆
0x076200…076220 (31, 1, 1)  34 3a 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 54 6f 6f 20 6d 61 6e 79 20 6f 70 65 6e 20   ┆4: write(output, 'Too many open ┆
0x076220…076240             66 69 6c 65 73 27 29 3b 0a 20 20 20 20 35 3a 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 46   ┆files');     5: write(output, 'F┆
0x076240…076260             69 6c 65 20 61 63 63 65 73 73 20 64 65 6e 69 65 64 27 29 3b 0a 20 20 20 20 36 3a 20 77 72 69 74   ┆ile access denied');     6: writ┆
0x076260…076280             65 28 6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c 69 64 20 66 69 6c 65 20 68 61 6e 64 6c 65 27 29   ┆e(output, 'Invalid file handle')┆
0x076280…0762a0             3b 0a 20 20 20 20 31 32 3a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27 49 6e 76 61 6c 69 64 20   ┆;     12:write(output, 'Invalid ┆
0x0762a0…0762c0             66 69 6c 65 20 61 63 63 65 73 73 20 63 6f 64 65 27 29 3b 0a 20 20 20 20 31 30 30 3a 77 72 69 74   ┆file access code');     100:writ┆
0x0762c0…0762e0             65 28 6f 75 74 70 75 74 2c 27 52 65 61 64 20 70 61 73 74 20 65 6e 64 20 6f 66 20 66 69 6c 65 27   ┆e(output,'Read past end of file'┆
0x0762e0…076300             29 3b 0a 20 20 20 20 31 30 31 3a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 44 69 73 6b 20 66 75   ┆);     101:write(output,'Disk fu┆
0x076300…076320             6c 6c 27 29 3b 0a 20 20 20 20 31 30 32 3a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 46 69 6c 65   ┆ll');     102:write(output,'File┆
0x076320…076340             20 6e 6f 74 20 61 73 73 69 67 6e 65 64 27 29 3b 0a 20 20 20 20 31 30 33 3a 77 72 69 74 65 28 6f   ┆ not assigned');     103:write(o┆
0x076340…076360             75 74 70 75 74 2c 27 46 69 6c 65 20 6e 6f 74 20 6f 70 65 6e 27 29 3b 0a 20 20 20 20 31 30 34 2c   ┆utput,'File not open');     104,┆
0x076360…076380             31 30 35 3a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 46 69 6c 65 20 6f 70 65 6e 65 64 20 69 6e   ┆105:write(output,'File opened in┆
0x076380…0763a0             20 62 61 64 20 6d 6f 64 65 27 29 3b 0a 20 20 20 20 31 30 36 3a 77 72 69 74 65 28 6f 75 74 70 75   ┆ bad mode');     106:write(outpu┆
0x0763a0…0763c0             74 2c 27 49 6e 76 61 6c 69 64 20 6e 75 6d 65 72 69 63 20 66 6f 72 6d 61 74 27 29 3b 0a 20 20 20   ┆t,'Invalid numeric format');    ┆
0x0763c0…0763e0             20 32 30 30 3a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 44 69 76 69 73 69 6f 6e 20 62 79 20 7a   ┆ 200:write(output,'Division by z┆
0x0763e0…076400             65 72 6f 27 29 3b 0a 20 20 20 20 32 30 31 3a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 4f 75 74   ┆ero');     201:write(output,'Out┆
0x076400…076420 (31, 1, 2)  20 6f 66 20 72 61 6e 67 65 27 29 3b 0a 20 20 20 20 32 30 32 3a 77 72 69 74 65 28 6f 75 74 70 75   ┆ of range');     202:write(outpu┆
0x076420…076440             74 2c 27 53 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 27 29 3b 0a 20 20 20 20 32 30 33 3a 77 72 69   ┆t,'Stack overflow');     203:wri┆
0x076440…076460             74 65 28 6f 75 74 70 75 74 2c 27 48 65 61 70 20 6f 76 65 72 66 6c 6f 77 27 29 3b 0a 20 20 20 20   ┆te(output,'Heap overflow');     ┆
0x076460…076480             32 30 34 3a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 49 6e 76 61 6c 69 64 20 70 6f 69 6e 74 65   ┆204:write(output,'Invalid pointe┆
0x076480…0764a0             72 20 6f 70 65 72 61 74 69 6f 6e 27 29 3b 0a 20 20 20 20 32 30 35 2c 32 30 36 2c 32 30 37 3a 77   ┆r operation');     205,206,207:w┆
0x0764a0…0764c0             72 69 74 65 28 6f 75 74 70 75 74 2c 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 65 72 72 6f   ┆rite(output,'Floating point erro┆
0x0764c0…0764e0             72 27 29 3b 0a 20 20 20 20 32 35 35 3a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 50 72 6f 67 72   ┆r');     255:write(output,'Progr┆
0x0764e0…076500             61 6d 20 62 72 65 61 6b 65 64 20 62 79 20 6f 70 65 72 61 74 6f 72 27 29 3b 0a 20 20 20 20 65 6c   ┆am breaked by operator');     el┆
0x076500…076520             73 65 20 3b 0a 20 20 65 6e 64 3b 0a 20 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 2c 20 63 61   ┆se ;   end;   write(output,', ca┆
0x076520…076540             6c 6c 65 64 20 66 72 6f 6d 20 27 29 3b 0a 20 20 77 72 69 74 65 5f 68 65 78 28 73 65 67 28 65 72   ┆lled from ');   write_hex(seg(er┆
0x076540…076560             72 6f 72 61 64 64 72 29 2c 34 29 3b 0a 20 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 3a 27 29   ┆roraddr),4);   write(output,':')┆
0x076560…076580             3b 0a 20 20 77 72 69 74 65 5f 68 65 78 28 6f 66 73 28 65 72 72 6f 72 61 64 64 72 29 2c 34 29 3b   ┆;   write_hex(ofs(erroraddr),4);┆
0x076580…0765a0             0a 20 20 77 72 69 74 65 6c 6e 3b 0a 65 6e 64 3b 0a 0a 68 61 6c 74 28 33 30 30 29 3b 0a 0a 65 6e   ┆   writeln; end;  halt(300);  en┆
0x0765a0…0765c0             64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 61 73 73 69 67 6e 5f 61 6c 66 61 3b 0a 76 61 72 20 6c   ┆d;  procedure assign_alfa; var l┆
0x0765c0…0765e0             3a 20 69 6e 74 65 67 65 72 3b 0a 62 65 67 69 6e 0a 20 20 61 20 3a 3d 20 27 20 20 20 20 20 20 20   ┆: integer; begin   a := '       ┆
0x0765e0…076600             20 20 20 20 20 27 3b 0a 20 20 6c 20 3a 3d 20 6c 65 6e 67 74 68 28 73 29 3b 0a 20 20 69 66 20 6c   ┆     ';   l := length(s);   if l┆
0x076600…076620 (31, 1, 3)  20 3e 20 61 6c 66 61 6c 65 6e 67 74 68 20 74 68 65 6e 20 6c 20 3a 3d 20 61 6c 66 61 6c 65 6e 67   ┆ > alfalength then l := alfaleng┆
0x076620…076640             74 68 3b 0a 20 20 61 20 3a 3d 20 63 6f 70 79 28 73 2c 20 31 2c 20 6c 29 3b 0a 65 6e 64 3b 0a 0a   ┆th;   a := copy(s, 1, l); end;  ┆
0x076640…076660             70 72 6f 63 65 64 75 72 65 20 72 74 70 68 61 6c 74 3b 0a 62 65 67 69 6e 0a 20 20 68 61 6c 74 28   ┆procedure rtphalt; begin   halt(┆
0x076660…076680             33 30 30 29 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 67 65 74 63 6c 6f 63 6b 3b 0a   ┆300); end;  procedure getclock; ┆
0x076680…0766a0             76 61 72 20 79 2c 20 6d 6f 2c 20 64 61 2c 20 68 6f 2c 20 6d 69 2c 20 73 65 2c 20 64 75 6d 6d 79   ┆var y, mo, da, ho, mi, se, dummy┆
0x0766a0…0766c0             3a 20 77 6f 72 64 3b 0a 62 65 67 69 6e 0a 20 20 67 65 74 64 61 74 65 28 79 2c 6d 6f 2c 64 61 2c   ┆: word; begin   getdate(y,mo,da,┆
0x0766c0…0766e0             64 75 6d 6d 79 29 3b 0a 20 20 67 65 74 74 69 6d 65 28 68 6f 2c 20 6d 69 2c 20 73 65 2c 20 64 75   ┆dummy);   gettime(ho, mi, se, du┆
0x0766e0…076700             6d 6d 79 29 3b 0a 20 20 77 69 74 68 20 74 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 79 65   ┆mmy);   with t do   begin     ye┆
0x076700…076720             61 72 20 20 20 3a 3d 20 79 20 3b 0a 20 20 20 20 6d 6f 6e 74 68 20 20 3a 3d 20 6d 6f 3b 0a 20 20   ┆ar   := y ;     month  := mo;   ┆
0x076720…076740             20 20 64 61 79 20 20 20 20 3a 3d 20 64 61 3b 0a 20 20 20 20 68 6f 75 72 20 20 20 3a 3d 20 68 6f   ┆  day    := da;     hour   := ho┆
0x076740…076760             3b 0a 20 20 20 20 6d 69 6e 20 20 20 20 3a 3d 20 6d 69 3b 0a 20 20 20 20 73 65 63 20 20 20 20 3a   ┆;     min    := mi;     sec    :┆
0x076760…076780             3d 20 73 65 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 66 69 6c   ┆= se;   end; end;  procedure fil┆
0x076780…0767a0             65 74 69 6d 65 3b 0a 76 61 72 20 74 3a 20 6c 6f 6e 67 69 6e 74 3b 0a 62 65 67 69 6e 0a 20 20 67   ┆etime; var t: longint; begin   g┆
0x0767a0…0767c0             65 74 66 74 69 6d 65 28 66 2c 74 29 3b 0a 20 20 75 6e 70 61 63 6b 74 69 6d 65 28 74 2c 20 64 29   ┆etftime(f,t);   unpacktime(t, d)┆
0x0767c0…0767e0             3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 6e 6f 66 69 6c 65 3b 0a 62 65 67 69 6e 0a   ┆; end;  procedure nofile; begin ┆
0x0767e0…076800             20 20 77 72 69 74 65 6c 6e 28 27 20 66 69 6c 65 20 3a 20 27 2c 20 73 29 3b 0a 20 20 68 61 6c 74   ┆  writeln(' file : ', s);   halt┆
0x076800…076820 (31, 1, 4)  28 32 29 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 72 65 70 6c 61 63 65 3b 0a 62 65   ┆(2); end;  procedure replace; be┆
0x076820…076840             67 69 6e 0a 20 20 68 61 6c 74 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 73 65 74 5f   ┆gin   halt; end;  procedure set_┆
0x076840…076860             70 61 74 68 5f 65 6e 64 28 76 61 72 20 73 3a 20 70 61 74 68 29 3b 0a 62 65 67 69 6e 0a 20 20 77   ┆path_end(var s: path); begin   w┆
0x076860…076880             68 69 6c 65 20 63 6f 70 79 28 73 2c 20 6c 65 6e 67 74 68 28 73 29 2c 20 31 29 20 3d 20 63 68 72   ┆hile copy(s, length(s), 1) = chr┆
0x076880…0768a0             28 39 32 29 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 64 65 6c 65 74 65 28 73 2c 20 6c 65   ┆(92) do   begin     delete(s, le┆
0x0768a0…0768c0             6e 67 74 68 28 73 29 2c 20 31 29 3b 0a 20 20 65 6e 64 3b 0a 20 20 69 66 20 73 20 3c 3e 20 27 27   ┆ngth(s), 1);   end;   if s <> ''┆
0x0768c0…0768e0             20 74 68 65 6e 20 73 20 3a 3d 20 73 20 2b 20 63 68 72 28 39 32 29 3b 0a 65 6e 64 3b 0a 0a 66 75   ┆ then s := s + chr(92); end;  fu┆
0x0768e0…076900             6e 63 74 69 6f 6e 20 70 61 72 61 6d 73 65 61 72 63 68 28 70 3a 20 70 61 72 61 6d 70 74 72 3b 20   ┆nction paramsearch(p: paramptr; ┆
0x076900…076920             76 61 72 20 6e 6f 3a 20 69 6e 74 65 67 65 72 3b 20 76 61 72 20 74 78 74 3a 20 61 6c 66 61 29 3a   ┆var no: integer; var txt: alfa):┆
0x076920…076940             20 69 6e 74 65 67 65 72 3b 0a 76 61 72 20 62 2c 20 62 31 2c 20 65 3a 20 62 79 74 65 3b 0a 20 20   ┆ integer; var b, b1, e: byte;   ┆
0x076940…076960             20 20 72 65 73 75 6c 74 3a 20 69 6e 74 65 67 65 72 3b 0a 20 20 20 20 73 6f 75 72 63 65 70 61 74   ┆  result: integer;     sourcepat┆
0x076960…076980             68 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 62 65 67 69 6e 0a 20 20 73 6f 75 72 63 65 70 61 74 68 20 3a   ┆h: boolean; begin   sourcepath :┆
0x076980…0769a0             3d 20 66 61 6c 73 65 3b 0a 20 20 70 61 72 61 6d 72 65 63 20 20 20 3a 3d 20 70 5e 2e 70 61 72 61   ┆= false;   paramrec   := p^.para┆
0x0769a0…0769c0             6d 65 74 65 72 3b 0a 20 20 62 20 20 20 20 20 20 20 20 20 20 3a 3d 20 31 3b 0a 20 20 77 68 69 6c   ┆meter;   b          := 1;   whil┆
0x0769c0…0769e0             65 20 28 62 20 3e 20 30 29 20 61 6e 64 20 28 6e 6f 20 3e 20 30 29 20 64 6f 0a 20 20 62 65 67 69   ┆e (b > 0) and (no > 0) do   begi┆
0x0769e0…076a00             6e 0a 20 20 20 20 62 20 20 20 20 20 20 3a 3d 20 70 6f 73 28 27 20 27 2c 20 70 61 72 61 6d 72 65   ┆n     b      := pos(' ', paramre┆
0x076a00…076a20 (31, 1, 5)  63 29 3b 0a 20 20 20 20 62 31 20 20 20 20 20 3a 3d 20 70 6f 73 28 27 2d 27 2c 20 70 61 72 61 6d   ┆c);     b1     := pos('-', param┆
0x076a20…076a40             72 65 63 29 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 34 3b 0a 20 20 20 20 69 66 20 62 31   ┆rec);     result := 4;     if b1┆
0x076a40…076a60             20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 62 20   ┆ <> 0 then     begin       if b ┆
0x076a60…076a80             3d 20 30 20 74 68 65 6e 20 62 20 3a 3d 20 62 31 3b 0a 20 20 20 20 20 20 69 66 20 62 31 20 3c 3d   ┆= 0 then b := b1;       if b1 <=┆
0x076a80…076aa0             20 62 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 62 20 20 20   ┆ b then       begin         b   ┆
0x076aa0…076ac0             20 20 20 3a 3d 20 62 31 3b 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 38 3b 0a 20   ┆   := b1;         result := 8;  ┆
0x076ac0…076ae0             20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 62 20 3c 3e 20 30   ┆     end;     end;     if b <> 0┆
0x076ae0…076b00             20 74 68 65 6e 20 70 61 72 61 6d 72 65 63 5b 62 5d 20 3a 3d 20 63 68 72 28 32 36 29 3b 0a 20 20   ┆ then paramrec[b] := chr(26);   ┆
0x076b00…076b20             20 20 65 20 20 3a 3d 20 70 6f 73 28 27 20 27 2c 20 70 61 72 61 6d 72 65 63 29 3b 0a 20 20 20 20   ┆  e  := pos(' ', paramrec);     ┆
0x076b20…076b40             62 31 20 3a 3d 20 70 6f 73 28 27 2d 27 2c 20 70 61 72 61 6d 72 65 63 29 3b 0a 20 20 20 20 69 66   ┆b1 := pos('-', paramrec);     if┆
0x076b40…076b60             20 65 20 3d 20 30 20 74 68 65 6e 20 65 20 3a 3d 20 62 31 3b 0a 20 20 20 20 69 66 20 62 31 20 3c   ┆ e = 0 then e := b1;     if b1 <┆
0x076b60…076b80             3e 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 62 31 20 3c   ┆> 0 then     begin       if b1 <┆
0x076b80…076ba0             20 65 20 74 68 65 6e 20 65 20 3a 3d 20 62 31 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66   ┆ e then e := b1;     end;     if┆
0x076ba0…076bc0             20 65 20 3d 20 30 20 74 68 65 6e 20 65 20 3a 3d 20 6c 65 6e 67 74 68 28 70 61 72 61 6d 72 65 63   ┆ e = 0 then e := length(paramrec┆
0x076bc0…076be0             29 20 65 6c 73 65 20 65 20 3a 3d 20 65 2d 31 3b 0a 20 20 20 20 69 66 20 62 20 3d 20 30 20 74 68   ┆) else e := e-1;     if b = 0 th┆
0x076be0…076c00             65 6e 20 65 20 3a 3d 20 62 3b 0a 20 20 20 20 69 66 20 65 20 3e 20 62 20 74 68 65 6e 0a 20 20 20   ┆en e := b;     if e > b then    ┆
0x076c00…076c20 (31, 1, 6)  20 62 65 67 69 6e 0a 20 20 20 20 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 28 74 78 74 2c 20 63 6f   ┆ begin       assign_alfa(txt, co┆
0x076c20…076c40             70 79 28 70 61 72 61 6d 72 65 63 2c 20 62 2b 31 2c 20 65 2d 62 29 29 3b 0a 20 20 20 20 20 20 6e   ┆py(paramrec, b+1, e-b));       n┆
0x076c40…076c60             6f 20 3a 3d 20 6e 6f 20 2d 20 31 3b 0a 20 20 20 20 20 20 69 66 20 73 6f 75 72 63 65 70 61 74 68   ┆o := no - 1;       if sourcepath┆
0x076c60…076c80             20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 73 6f 75 72 63 65   ┆ then       begin         source┆
0x076c80…076ca0             70 61 74 68 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 69 66 20 72 65 73 75 6c 74   ┆path := false;         if result┆
0x076ca0…076cc0             20 3d 20 38 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20   ┆ = 8 then         begin         ┆
0x076cc0…076ce0             20 20 73 6f 75 72 63 65 5f 70 61 74 68 20 3a 3d 20 63 6f 70 79 28 70 61 72 61 6d 72 65 63 2c 20   ┆  source_path := copy(paramrec, ┆
0x076ce0…076d00             62 2b 31 2c 20 65 2d 62 29 3b 0a 20 20 20 20 20 20 20 20 20 20 73 65 74 5f 70 61 74 68 5f 65 6e   ┆b+1, e-b);           set_path_en┆
0x076d00…076d20             64 28 73 6f 75 72 63 65 5f 70 61 74 68 29 3b 0a 20 20 20 20 20 20 20 20 20 20 6e 6f 20 20 20 20   ┆d(source_path);           no    ┆
0x076d20…076d40             20 20 20 20 20 20 3a 3d 20 6e 6f 20 2b 20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20   ┆      := no + 1;         end;   ┆
0x076d40…076d60             20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 28 72 65 73 75 6c 74 20 3d 20   ┆    end else       if (result = ┆
0x076d60…076d80             34 29 20 61 6e 64 20 28 74 78 74 20 3d 20 27 73 6f 75 72 63 65 70 61 74 68 27 29 20 74 68 65 6e   ┆4) and (txt = 'sourcepath') then┆
0x076d80…076da0             0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 70 61 74 68 20   ┆       begin         sourcepath ┆
0x076da0…076dc0             20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 5f 70 61 74 68 20 3a 3d   ┆ := true;         source_path :=┆
0x076dc0…076de0             20 27 27 3b 0a 20 20 20 20 20 20 20 20 6e 6f 20 20 20 20 20 20 20 20 20 20 3a 3d 20 6e 6f 20 2b   ┆ '';         no          := no +┆
0x076de0…076e00             20 31 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 20 73 6f 75 72   ┆ 1;       end;     end else sour┆
0x076e00…076e20 (31, 1, 7)  63 65 70 61 74 68 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 65 6e 64 3b 0a 20 20 70 61 72 61 6d 73   ┆cepath := false;   end;   params┆
0x076e20…076e40             65 61 72 63 68 20 3a 3d 20 72 65 73 75 6c 74 20 73 68 6c 20 38 3b 0a 65 6e 64 3b 0a 0a 66 75 6e   ┆earch := result shl 8; end;  fun┆
0x076e40…076e60             63 74 69 6f 6e 20 70 61 72 61 6d 72 65 61 64 3b 0a 76 61 72 20 72 65 73 75 6c 74 3a 20 69 6e 74   ┆ction paramread; var result: int┆
0x076e60…076e80             65 67 65 72 3b 0a 20 20 20 20 70 20 3a 20 70 61 72 61 6d 70 74 72 3b 0a 62 65 67 69 6e 0a 0a 20   ┆eger;     p : paramptr; begin   ┆
0x076e80…076ea0             20 72 69 20 20 20 20 3a 3d 20 30 3b 0a 0a 20 20 69 66 20 6c 65 6e 67 74 68 28 6c 65 66 74 73 69   ┆ ri    := 0;    if length(leftsi┆
0x076ea0…076ec0             64 65 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 66 20 70 5f 6e 6f   ┆de) > 0 then   begin     if p_no┆
0x076ec0…076ee0             20 3c 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 61 73 73 69 67   ┆ <= 0 then     begin       assig┆
0x076ee0…076f00             6e 5f 61 6c 66 61 28 74 78 74 2c 20 6c 65 66 74 73 69 64 65 29 3b 0a 20 20 20 20 20 20 70 61 72   ┆n_alfa(txt, leftside);       par┆
0x076f00…076f20             61 6d 72 65 61 64 20 3a 3d 20 34 3b 0a 20 20 20 20 20 20 65 78 69 74 3b 0a 20 20 20 20 65 6e 64   ┆amread := 4;       exit;     end┆
0x076f20…076f40             3b 0a 20 20 20 20 70 5f 6e 6f 20 3a 3d 20 70 5f 6e 6f 20 2d 20 31 3b 0a 20 20 65 6e 64 3b 0a 0a   ┆;     p_no := p_no - 1;   end;  ┆
0x076f40…076f60             20 20 69 66 20 70 5f 6e 6f 20 3c 3d 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆  if p_no <= 0 then   begin     ┆
0x076f60…076f80             69 66 20 6c 65 6e 67 74 68 28 70 72 6f 67 72 61 6d 6e 61 6d 65 29 20 3e 20 30 20 74 68 65 6e 0a   ┆if length(programname) > 0 then ┆
0x076f80…076fa0             20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 28 74 78 74 2c   ┆    begin       assign_alfa(txt,┆
0x076fa0…076fc0             20 70 72 6f 67 72 61 6d 6e 61 6d 65 29 3b 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20   ┆ programname);     end else     ┆
0x076fc0…076fe0             62 65 67 69 6e 0a 20 20 20 20 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 28 74 78 74 2c 27 72 74 70   ┆begin       assign_alfa(txt,'rtp┆
0x076fe0…077000             33 35 30 32 32 27 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 6c 65 6e 67 74 68 28   ┆35022');     end;     if length(┆
0x077000…077020 (31, 1, 8)  6c 65 66 74 73 69 64 65 29 20 3e 20 30 20 74 68 65 6e 20 70 61 72 61 6d 72 65 61 64 20 3a 3d 20   ┆leftside) > 0 then paramread := ┆
0x077020…077040             36 2a 32 35 36 2b 34 20 65 6c 73 65 20 70 61 72 61 6d 72 65 61 64 20 3a 3d 20 34 3b 0a 20 20 20   ┆6*256+4 else paramread := 4;    ┆
0x077040…077060             20 65 78 69 74 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 70 20 3a 3d 20 70 61 72 61 6d 68 65 61 64 3b   ┆ exit;   end;    p := paramhead;┆
0x077060…077080             0a 20 20 77 68 69 6c 65 20 28 70 20 3c 3e 20 6e 69 6c 29 20 61 6e 64 20 28 70 5f 6e 6f 20 3e 20   ┆   while (p <> nil) and (p_no > ┆
0x077080…0770a0             30 29 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 70 61 72 61   ┆0) do   begin     result := para┆
0x0770a0…0770c0             6d 73 65 61 72 63 68 28 70 2c 20 70 5f 6e 6f 2c 20 74 78 74 29 3b 0a 20 20 20 20 70 20 3a 3d 20   ┆msearch(p, p_no, txt);     p := ┆
0x0770c0…0770e0             70 5e 2e 6e 65 78 74 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 69 66 20 70 5f 6e 6f 20 3e 20 30 20 74   ┆p^.next;   end;    if p_no > 0 t┆
0x0770e0…077100             68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 28 74 78 74 2c   ┆hen   begin     assign_alfa(txt,┆
0x077100…077120             27 27 29 3b 0a 20 20 20 20 70 61 72 61 6d 72 65 61 64 20 3a 3d 20 30 3b 0a 20 20 20 20 65 78 69   ┆'');     paramread := 0;     exi┆
0x077120…077140             74 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 76 61 6c 28 74 78 74 2c 20 72 69 2c 20 70 5f 6e 6f 29 3b   ┆t;   end;    val(txt, ri, p_no);┆
0x077140…077160             0a 20 20 69 66 20 70 5f 6e 6f 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20   ┆   if p_no <> 0 then   begin    ┆
0x077160…077180             20 20 72 65 73 75 6c 74 20 3a 3d 20 72 65 73 75 6c 74 20 2b 20 31 30 3b 0a 20 20 65 6e 64 20 65   ┆  result := result + 10;   end e┆
0x077180…0771a0             6c 73 65 20 72 65 73 75 6c 74 20 3a 3d 20 72 65 73 75 6c 74 20 2b 20 34 3b 0a 0a 20 20 70 61 72   ┆lse result := result + 4;    par┆
0x0771a0…0771c0             61 6d 72 65 61 64 20 3a 3d 20 72 65 73 75 6c 74 3b 0a 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75   ┆amread := result;  end;  procedu┆
0x0771c0…0771e0             72 65 20 64 61 74 65 3b 0a 76 61 72 20 74 3a 20 64 61 74 65 74 69 6d 65 3b 0a 20 20 20 20 61 2c   ┆re date; var t: datetime;     a,┆
0x0771e0…077200             62 3a 20 73 74 72 69 6e 67 3b 0a 62 65 67 69 6e 0a 20 20 67 65 74 63 6c 6f 63 6b 28 74 29 3b 0a   ┆b: string; begin   getclock(t); ┆
0x077200…077220 (31, 1, 9)  20 20 73 74 72 28 74 2e 79 65 61 72 3a 34 2c 20 61 29 3b 0a 20 20 62 20 3a 3d 20 63 6f 6e 63 61   ┆  str(t.year:4, a);   b := conca┆
0x077220…077240             74 28 27 20 27 2c 61 2c 27 2e 27 29 3b 0a 20 20 73 74 72 28 74 2e 6d 6f 6e 74 68 3a 32 2c 61 29   ┆t(' ',a,'.');   str(t.month:2,a)┆
0x077240…077260             3b 0a 20 20 77 68 69 6c 65 20 70 6f 73 28 27 20 27 2c 61 29 20 3e 20 30 20 64 6f 20 61 5b 70 6f   ┆;   while pos(' ',a) > 0 do a[po┆
0x077260…077280             73 28 27 20 27 2c 61 29 5d 20 3a 3d 20 27 30 27 3b 0a 20 20 61 20 3a 3d 20 63 6f 6e 63 61 74 28   ┆s(' ',a)] := '0';   a := concat(┆
0x077280…0772a0             62 2c 20 61 2c 20 27 2e 27 29 3b 0a 20 20 73 74 72 28 74 2e 64 61 79 3a 32 2c 62 29 3b 0a 20 20   ┆b, a, '.');   str(t.day:2,b);   ┆
0x0772a0…0772c0             77 68 69 6c 65 20 70 6f 73 28 27 20 27 2c 62 29 20 3e 20 30 20 64 6f 20 62 5b 70 6f 73 28 27 20   ┆while pos(' ',b) > 0 do b[pos(' ┆
0x0772c0…0772e0             27 2c 62 29 5d 20 3a 3d 20 27 30 27 3b 0a 20 20 64 61 74 20 3a 3d 20 63 6f 6e 63 61 74 28 61 2c   ┆',b)] := '0';   dat := concat(a,┆
0x0772e0…077300             62 2c 27 20 27 29 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 74 69 6d 65 3b 0a 76 61   ┆b,' '); end;  procedure time; va┆
0x077300…077320             72 20 74 3a 20 64 61 74 65 74 69 6d 65 3b 0a 20 20 20 20 61 2c 62 3a 20 73 74 72 69 6e 67 3b 0a   ┆r t: datetime;     a,b: string; ┆
0x077320…077340             62 65 67 69 6e 0a 20 20 67 65 74 63 6c 6f 63 6b 28 74 29 3b 0a 20 20 73 74 72 28 74 2e 68 6f 75   ┆begin   getclock(t);   str(t.hou┆
0x077340…077360             72 3a 32 2c 20 61 29 3b 0a 20 20 77 68 69 6c 65 20 70 6f 73 28 27 20 27 2c 61 29 20 3e 20 30 20   ┆r:2, a);   while pos(' ',a) > 0 ┆
0x077360…077380             64 6f 20 61 5b 70 6f 73 28 27 20 27 2c 61 29 5d 20 3a 3d 20 27 30 27 3b 0a 20 20 62 20 3a 3d 20   ┆do a[pos(' ',a)] := '0';   b := ┆
0x077380…0773a0             63 6f 6e 63 61 74 28 27 20 27 2c 61 2c 27 3a 27 29 3b 0a 20 20 73 74 72 28 74 2e 6d 69 6e 3a 32   ┆concat(' ',a,':');   str(t.min:2┆
0x0773a0…0773c0             2c 61 29 3b 0a 20 20 77 68 69 6c 65 20 70 6f 73 28 27 20 27 2c 61 29 20 3e 20 30 20 64 6f 20 61   ┆,a);   while pos(' ',a) > 0 do a┆
0x0773c0…0773e0             5b 70 6f 73 28 27 20 27 2c 61 29 5d 20 3a 3d 20 27 30 27 3b 0a 20 20 61 20 3a 3d 20 63 6f 6e 63   ┆[pos(' ',a)] := '0';   a := conc┆
0x0773e0…077400             61 74 28 62 2c 20 61 2c 20 27 3a 27 29 3b 0a 20 20 73 74 72 28 74 2e 73 65 63 3a 32 2c 62 29 3b   ┆at(b, a, ':');   str(t.sec:2,b);┆
0x077400…077420 (31, 1, 10) 0a 20 20 77 68 69 6c 65 20 70 6f 73 28 27 20 27 2c 62 29 20 3e 20 30 20 64 6f 20 62 5b 70 6f 73   ┆   while pos(' ',b) > 0 do b[pos┆
0x077420…077440             28 27 20 27 2c 62 29 5d 20 3a 3d 20 27 30 27 3b 0a 20 20 74 69 6d 20 3a 3d 20 63 6f 6e 63 61 74   ┆(' ',b)] := '0';   tim := concat┆
0x077440…077460             28 61 2c 62 2c 27 20 20 20 27 29 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 61 72   ┆(a,b,'   '); end;  procedure par┆
0x077460…077480             61 6d 61 64 64 3b 0a 76 61 72 20 70 3a 20 70 61 72 61 6d 70 74 72 3b 0a 62 65 67 69 6e 0a 20 20   ┆amadd; var p: paramptr; begin   ┆
0x077480…0774a0             69 66 20 6c 65 6e 67 74 68 28 70 61 72 61 6d 72 65 63 29 20 3e 20 30 20 74 68 65 6e 0a 20 20 62   ┆if length(paramrec) > 0 then   b┆
0x0774a0…0774c0             65 67 69 6e 0a 20 20 20 20 6e 65 77 28 70 29 3b 0a 20 20 20 20 70 5e 2e 70 61 72 61 6d 65 74 65   ┆egin     new(p);     p^.paramete┆
0x0774c0…0774e0             72 20 3a 3d 20 70 61 72 61 6d 72 65 63 3b 0a 20 20 20 20 70 5e 2e 6e 65 78 74 20 20 20 20 20 20   ┆r := paramrec;     p^.next      ┆
0x0774e0…077500             3a 3d 20 70 61 72 61 6d 68 65 61 64 3b 0a 20 20 20 20 70 61 72 61 6d 68 65 61 64 20 20 20 20 3a   ┆:= paramhead;     paramhead    :┆
0x077500…077520             3d 20 70 3b 0a 20 20 20 20 70 61 72 61 6d 72 65 63 20 20 20 20 20 3a 3d 20 27 27 3b 0a 20 20 65   ┆= p;     paramrec     := '';   e┆
0x077520…077540             6e 64 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 61 72 61 6d 69 6e 76 65 72 73 65   ┆nd; end;  procedure paraminverse┆
0x077540…077560             3b 0a 76 61 72 20 70 2c 20 71 3a 20 70 61 72 61 6d 70 74 72 3b 0a 62 65 67 69 6e 0a 20 20 70 20   ┆; var p, q: paramptr; begin   p ┆
0x077560…077580             3a 3d 20 70 61 72 61 6d 68 65 61 64 3b 20 70 61 72 61 6d 68 65 61 64 20 3a 3d 20 6e 69 6c 3b 0a   ┆:= paramhead; paramhead := nil; ┆
0x077580…0775a0             20 20 77 68 69 6c 65 20 70 20 3c 3e 20 6e 69 6c 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆  while p <> nil do   begin     ┆
0x0775a0…0775c0             71 20 20 20 20 20 20 20 20 20 3a 3d 20 70 5e 2e 6e 65 78 74 3b 0a 20 20 20 20 70 5e 2e 6e 65 78   ┆q         := p^.next;     p^.nex┆
0x0775c0…0775e0             74 20 20 20 3a 3d 20 70 61 72 61 6d 68 65 61 64 3b 0a 20 20 20 20 70 61 72 61 6d 68 65 61 64 20   ┆t   := paramhead;     paramhead ┆
0x0775e0…077600             3a 3d 20 70 3b 0a 20 20 20 20 70 20 20 20 20 20 20 20 20 20 3a 3d 20 71 3b 0a 20 20 65 6e 64 3b   ┆:= p;     p         := q;   end;┆
0x077600…077620 (31, 1, 11) 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 61 72 61 6d 28 76 61 72 20 70 3a 20 73 74   ┆ end;  procedure param(var p: st┆
0x077620…077640             72 69 6e 67 29 3b 0a 76 61 72 20 63 68 3a 20 63 68 61 72 3b 0a 62 65 67 69 6e 0a 20 20 70 20 3a   ┆ring); var ch: char; begin   p :┆
0x077640…077660             3d 20 27 27 3b 0a 20 20 72 65 70 65 61 74 0a 20 20 20 20 69 66 20 65 6f 66 28 69 6e 70 75 74 29   ┆= '';   repeat     if eof(input)┆
0x077660…077680             20 74 68 65 6e 20 63 68 20 3a 3d 20 63 68 72 28 32 36 29 20 65 6c 73 65 20 72 65 61 64 28 63 68   ┆ then ch := chr(26) else read(ch┆
0x077680…0776a0             29 3b 0a 20 20 75 6e 74 69 6c 20 28 63 68 20 3e 20 27 20 27 29 20 6f 72 20 28 63 68 20 3d 20 63   ┆);   until (ch > ' ') or (ch = c┆
0x0776a0…0776c0             68 72 28 32 36 29 29 3b 0a 20 20 77 68 69 6c 65 20 28 63 68 20 3c 3e 20 27 20 27 29 20 61 6e 64   ┆hr(26));   while (ch <> ' ') and┆
0x0776c0…0776e0             20 28 63 68 20 3c 3e 20 63 68 72 28 32 36 29 29 20 64 6f 0a 20 20 62 65 67 69 6e 0a 20 20 20 20   ┆ (ch <> chr(26)) do   begin     ┆
0x0776e0…077700             69 66 20 63 68 20 3e 20 27 20 27 20 74 68 65 6e 20 70 20 3a 3d 20 63 6f 6e 63 61 74 28 70 2c 20   ┆if ch > ' ' then p := concat(p, ┆
0x077700…077720             63 68 29 3b 0a 20 20 20 20 69 66 20 65 6f 66 28 69 6e 70 75 74 29 20 74 68 65 6e 20 63 68 20 3a   ┆ch);     if eof(input) then ch :┆
0x077720…077740             3d 20 63 68 72 28 32 36 29 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 72   ┆= chr(26) else     begin       r┆
0x077740…077760             65 61 64 28 63 68 29 3b 0a 20 20 20 20 20 20 69 66 20 63 68 20 3c 20 27 20 27 20 74 68 65 6e 20   ┆ead(ch);       if ch < ' ' then ┆
0x077760…077780             63 68 20 3a 3d 20 27 20 27 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a   ┆ch := ' ';     end;   end; end; ┆
0x077780…0777a0             0a 70 72 6f 63 65 64 75 72 65 20 70 61 72 61 6d 70 75 74 28 73 3a 20 73 74 72 69 6e 67 29 3b 20   ┆ procedure paramput(s: string); ┆
0x0777a0…0777c0             66 6f 72 77 61 72 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 61 72 61 6d 66 69 6c 65 28 73 3a   ┆forward;  procedure paramfile(s:┆
0x0777c0…0777e0             20 73 74 72 69 6e 67 29 3b 0a 76 61 72 20 70 3a 20 73 74 72 69 6e 67 3b 0a 62 65 67 69 6e 0a 20   ┆ string); var p: string; begin  ┆
0x0777e0…077800             20 69 66 20 70 6f 73 28 27 2d 27 2c 20 73 29 20 3d 20 30 20 74 68 65 6e 20 65 78 69 74 3b 0a 20   ┆ if pos('-', s) = 0 then exit;  ┆
0x077800…077820 (31, 1, 12) 20 73 20 3a 3d 20 63 6f 70 79 28 73 2c 20 70 6f 73 28 27 2d 27 2c 20 73 29 2b 31 2c 20 6c 65 6e   ┆ s := copy(s, pos('-', s)+1, len┆
0x077820…077840             67 74 68 28 73 29 20 2d 20 70 6f 73 28 27 2d 27 2c 73 29 29 3b 0a 20 20 63 6c 6f 73 65 28 69 6e   ┆gth(s) - pos('-',s));   close(in┆
0x077840…077860             70 75 74 29 3b 0a 20 20 61 73 73 69 67 6e 28 69 6e 70 75 74 2c 20 73 29 3b 0a 28 2a 24 49 2d 2a   ┆put);   assign(input, s); (*$I-*┆
0x077860…077880             29 0a 20 20 72 65 73 65 74 28 69 6e 70 75 74 29 3b 0a 28 2a 24 49 2b 2a 29 0a 20 20 69 66 20 69   ┆)   reset(input); (*$I+*)   if i┆
0x077880…0778a0             6f 72 65 73 75 6c 74 20 3d 20 30 20 74 68 65 6e 20 70 61 72 61 6d 28 70 29 20 65 6c 73 65 20 70   ┆oresult = 0 then param(p) else p┆
0x0778a0…0778c0             20 3a 3d 20 27 27 3b 0a 20 20 77 68 69 6c 65 20 6c 65 6e 67 74 68 28 70 29 20 3e 20 30 20 64 6f   ┆ := '';   while length(p) > 0 do┆
0x0778c0…0778e0             0a 20 20 62 65 67 69 6e 0a 20 20 20 20 70 61 72 61 6d 70 75 74 28 70 29 3b 0a 20 20 20 20 70 61   ┆   begin     paramput(p);     pa┆
0x0778e0…077900             72 61 6d 28 70 29 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 61   ┆ram(p);   end; end;  procedure a┆
0x077900…077920             73 73 69 67 6e 5f 70 61 74 68 28 76 61 72 20 61 3a 20 70 61 74 68 3b 20 73 3a 73 74 72 69 6e 67   ┆ssign_path(var a: path; s:string┆
0x077920…077940             29 3b 0a 76 61 72 20 6c 3a 20 69 6e 74 65 67 65 72 3b 0a 62 65 67 69 6e 0a 20 20 6c 20 3a 3d 20   ┆); var l: integer; begin   l := ┆
0x077940…077960             6c 65 6e 67 74 68 28 73 29 3b 0a 20 20 69 66 20 6c 20 3e 20 70 61 74 68 6c 65 6e 67 74 68 20 74   ┆length(s);   if l > pathlength t┆
0x077960…077980             68 65 6e 20 6c 20 3a 3d 20 70 61 74 68 6c 65 6e 67 74 68 3b 0a 20 20 61 20 3a 3d 20 63 6f 70 79   ┆hen l := pathlength;   a := copy┆
0x077980…0779a0             28 73 2c 20 31 2c 20 6c 29 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 73 61 76 65 70   ┆(s, 1, l); end;  procedure savep┆
0x0779a0…0779c0             61 74 68 28 73 3a 20 73 74 72 69 6e 67 3b 20 76 61 72 20 6e 3a 20 61 6c 66 61 3b 20 76 61 72 20   ┆ath(s: string; var n: alfa; var ┆
0x0779c0…0779e0             70 31 2c 70 32 3a 20 70 61 74 68 29 3b 0a 76 61 72 20 62 31 2c 20 62 32 2c 20 65 3a 20 62 79 74   ┆p1,p2: path); var b1, b2, e: byt┆
0x0779e0…077a00             65 3b 0a 62 65 67 69 6e 0a 20 20 62 31 20 3a 3d 20 70 6f 73 28 27 2d 27 2c 20 73 29 3b 0a 20 20   ┆e; begin   b1 := pos('-', s);   ┆
0x077a00…077a20 (31, 1, 13) 65 20 20 3a 3d 20 62 31 3b 0a 20 20 69 66 20 62 31 20 3e 20 30 20 74 68 65 6e 0a 20 20 62 65 67   ┆e  := b1;   if b1 > 0 then   beg┆
0x077a20…077a40             69 6e 0a 20 20 20 20 73 5b 62 31 5d 20 3a 3d 20 63 68 72 28 32 36 29 3b 0a 20 20 20 20 65 20 20   ┆in     s[b1] := chr(26);     e  ┆
0x077a40…077a60             20 20 20 3a 3d 20 65 20 2d 20 31 3b 0a 20 20 65 6e 64 20 65 6c 73 65 20 65 20 3a 3d 20 6c 65 6e   ┆   := e - 1;   end else e := len┆
0x077a60…077a80             67 74 68 28 73 29 3b 0a 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 28 6e 2c 20 63 6f 70 79 28 73 2c   ┆gth(s);   assign_alfa(n, copy(s,┆
0x077a80…077aa0             31 2b 31 2c 65 2d 31 29 29 3b 0a 20 20 62 32 20 3a 3d 20 70 6f 73 28 27 2d 27 2c 20 73 29 3b 0a   ┆1+1,e-1));   b2 := pos('-', s); ┆
0x077aa0…077ac0             20 20 65 20 20 3a 3d 20 62 32 3b 0a 20 20 69 66 20 62 32 20 3d 20 30 20 74 68 65 6e 20 65 20 3a   ┆  e  := b2;   if b2 = 0 then e :┆
0x077ac0…077ae0             3d 20 6c 65 6e 67 74 68 28 73 29 20 65 6c 73 65 20 65 20 3a 3d 20 65 20 2d 20 31 3b 0a 20 20 69   ┆= length(s) else e := e - 1;   i┆
0x077ae0…077b00             66 20 62 31 20 3e 20 30 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 61 73 73 69 67 6e   ┆f b1 > 0 then   begin     assign┆
0x077b00…077b20             5f 70 61 74 68 28 70 31 2c 20 63 6f 70 79 28 73 2c 62 31 2b 31 2c 65 2d 62 31 29 29 3b 0a 20 20   ┆_path(p1, copy(s,b1+1,e-b1));   ┆
0x077b20…077b40             20 20 69 66 20 62 32 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20   ┆  if b2 > 0 then     begin      ┆
0x077b40…077b60             20 73 5b 62 32 5d 20 3a 3d 20 63 68 72 28 32 36 29 3b 0a 20 20 20 20 20 20 65 20 3a 3d 20 70 6f   ┆ s[b2] := chr(26);       e := po┆
0x077b60…077b80             73 28 27 2d 27 2c 20 73 29 3b 0a 20 20 20 20 20 20 69 66 20 65 20 3d 20 30 20 74 68 65 6e 20 65   ┆s('-', s);       if e = 0 then e┆
0x077b80…077ba0             20 3a 3d 20 6c 65 6e 67 74 68 28 73 29 20 65 6c 73 65 20 65 20 3a 3d 20 65 20 2d 20 31 3b 0a 20   ┆ := length(s) else e := e - 1;  ┆
0x077ba0…077bc0             20 20 20 20 20 61 73 73 69 67 6e 5f 70 61 74 68 28 70 32 2c 20 63 6f 70 79 28 73 2c 20 62 32 2b   ┆     assign_path(p2, copy(s, b2+┆
0x077bc0…077be0             31 2c 20 65 2d 62 32 29 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a   ┆1, e-b2));     end;   end; end; ┆
0x077be0…077c00             0a 70 72 6f 63 65 64 75 72 65 20 70 61 72 61 6d 70 75 74 28 73 3a 20 73 74 72 69 6e 67 29 3b 0a   ┆ procedure paramput(s: string); ┆
0x077c00…077c20 (31, 1, 14) 76 61 72 20 69 3a 20 77 6f 72 64 3b 0a 62 65 67 69 6e 0a 20 20 66 6f 72 20 69 20 3a 3d 20 31 20   ┆var i: word; begin   for i := 1 ┆
0x077c20…077c40             74 6f 20 6c 65 6e 67 74 68 28 73 29 20 64 6f 0a 20 20 69 66 20 28 73 5b 69 5d 20 3e 3d 20 27 41   ┆to length(s) do   if (s[i] >= 'A┆
0x077c40…077c60             27 29 20 61 6e 64 20 28 73 5b 69 5d 20 3c 3d 20 27 5a 27 29 20 74 68 65 6e 0a 20 20 20 20 73 5b   ┆') and (s[i] <= 'Z') then     s[┆
0x077c60…077c80             69 5d 20 3a 3d 20 63 68 72 28 6f 72 64 28 73 5b 69 5d 29 20 2d 20 6f 72 64 28 27 41 27 29 20 2b   ┆i] := chr(ord(s[i]) - ord('A') +┆
0x077c80…077ca0             20 6f 72 64 28 27 61 27 29 29 3b 0a 0a 20 20 69 66 20 70 6f 73 28 27 70 61 72 61 6d 69 6e 27 2c   ┆ ord('a'));    if pos('paramin',┆
0x077ca0…077cc0             20 73 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 70 61 72 61 6d 66 69   ┆ s) = 1 then   begin     paramfi┆
0x077cc0…077ce0             6c 65 28 73 29 3b 0a 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 69 66 20 70 6f 73 28 27 3d 27 2c 20   ┆le(s);   end else   if pos('=', ┆
0x077ce0…077d00             73 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 73 61 76 65 70 61 74 68   ┆s) = 1 then   begin     savepath┆
0x077d00…077d20             28 73 2c 20 6c 65 66 74 73 69 64 65 2c 20 70 61 74 68 31 5f 6e 61 6d 65 2c 20 70 61 74 68 32 5f   ┆(s, leftside, path1_name, path2_┆
0x077d20…077d40             6e 61 6d 65 29 3b 0a 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 69 66 20 70 6f 73 28 27 2f 27 2c 20   ┆name);   end else   if pos('/', ┆
0x077d40…077d60             73 29 20 3d 20 31 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 73 61 76 65 70 61 74 68   ┆s) = 1 then   begin     savepath┆
0x077d60…077d80             28 73 2c 20 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 2c   ┆(s, programname, rtp35_pathname,┆
0x077d80…077da0             20 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 29 3b 0a 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 62   ┆ rtp35_pathname);   end else   b┆
0x077da0…077dc0             65 67 69 6e 0a 20 20 20 20 69 66 20 6c 65 6e 67 74 68 28 70 61 72 61 6d 72 65 63 29 20 2b 20 6c   ┆egin     if length(paramrec) + l┆
0x077dc0…077de0             65 6e 67 74 68 28 73 29 20 2b 20 31 20 3e 20 32 35 35 20 74 68 65 6e 20 70 61 72 61 6d 61 64 64   ┆ength(s) + 1 > 255 then paramadd┆
0x077de0…077e00             3b 0a 20 20 20 20 70 61 72 61 6d 72 65 63 20 3a 3d 20 63 6f 6e 63 61 74 28 70 61 72 61 6d 72 65   ┆;     paramrec := concat(paramre┆
0x077e00…077e20 (31, 1, 15) 63 2c 20 27 20 27 2c 20 73 29 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75   ┆c, ' ', s);   end; end;  procedu┆
0x077e20…077e40             72 65 20 66 69 6e 64 73 65 74 28 6e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 20 76 61 72 20 72 65 73   ┆re findset(name: string; var res┆
0x077e40…077e60             3a 20 70 61 74 68 29 3b 0a 56 61 72 0a 20 20 20 20 65 20 20 20 20 09 3a 20 20 69 6e 74 65 67 65   ┆: path); Var     e     :  intege┆
0x077e60…077e80             72 3b 0a 20 20 20 20 65 6e 76 69 72 73 65 67 09 3a 20 20 5e 77 6f 72 64 3b 0a 20 20 20 20 65 6e   ┆r;     envirseg :  ^word;     en┆
0x077e80…077ea0             76 69 72 09 3a 20 20 5e 63 68 61 72 3b 0a 20 20 20 20 73 65 74 6e 61 6d 65 20 20 20 20 20 3a 20   ┆vir :  ^char;     setname     : ┆
0x077ea0…077ec0             20 73 74 72 69 6e 67 3b 0a 62 65 67 69 6e 0a 0a 20 20 72 65 73 20 20 20 20 20 20 3a 3d 20 27 27   ┆ string; begin    res      := ''┆
0x077ec0…077ee0             3b 0a 0a 20 20 65 6e 76 69 72 73 65 67 20 3a 3d 20 70 74 72 28 20 70 72 65 66 69 78 73 65 67 2c   ┆;    envirseg := ptr( prefixseg,┆
0x077ee0…077f00             20 24 32 63 29 3b 0a 20 20 65 20 20 20 20 20 20 20 20 3a 3d 20 30 3b 0a 20 20 65 6e 76 69 72 20   ┆ $2c);   e        := 0;   envir ┆
0x077f00…077f20             20 20 20 3a 3d 20 70 74 72 20 28 20 65 6e 76 69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20 77 68 69   ┆   := ptr ( envirseg^, e);   whi┆
0x077f20…077f40             6c 65 20 65 6e 76 69 72 5e 20 3c 3e 20 63 68 72 28 30 29 20 64 6f 0a 20 20 20 20 62 65 67 69 6e   ┆le envir^ <> chr(0) do     begin┆
0x077f40…077f60             0a 20 20 20 20 20 20 73 65 74 6e 61 6d 65 20 3a 3d 20 27 27 3b 0a 20 20 20 20 20 20 72 65 70 65   ┆       setname := '';       repe┆
0x077f60…077f80             61 74 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6e 76 69 72 5e 3e 3d 27 41 27 29 20 61 6e 64 20   ┆at         if (envir^>='A') and ┆
0x077f80…077fa0             28 65 6e 76 69 72 5e 3c 3d 27 5a 27 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e   ┆(envir^<='Z') then         begin┆
0x077fa0…077fc0             0a 20 20 20 20 20 20 20 20 20 20 73 65 74 6e 61 6d 65 20 3a 3d 20 73 65 74 6e 61 6d 65 20 2b 20   ┆           setname := setname + ┆
0x077fc0…077fe0             65 6e 76 69 72 5e 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20   ┆envir^;         end else        ┆
0x077fe0…078000             20 69 66 20 28 65 6e 76 69 72 5e 3e 3d 27 30 27 29 20 61 6e 64 20 28 65 6e 76 69 72 5e 3c 3d 27   ┆ if (envir^>='0') and (envir^<='┆
0x078000…078020 (32, 0, 1)  39 27 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20   ┆9') then         begin          ┆
0x078020…078040             20 73 65 74 6e 61 6d 65 20 3a 3d 20 73 65 74 6e 61 6d 65 20 2b 20 65 6e 76 69 72 5e 3b 0a 20 20   ┆ setname := setname + envir^;   ┆
0x078040…078060             20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 65 20 20 20 20 20 3a 3d 20 65 20 2b 20   ┆      end;         e     := e + ┆
0x078060…078080             31 3b 0a 20 20 20 20 20 20 20 20 65 6e 76 69 72 20 3a 3d 20 70 74 72 28 65 6e 76 69 72 73 65 67   ┆1;         envir := ptr(envirseg┆
0x078080…0780a0             5e 2c 20 65 29 3b 0a 20 20 20 20 20 20 75 6e 74 69 6c 20 65 6e 76 69 72 5e 20 3d 20 27 3d 27 3b   ┆^, e);       until envir^ = '=';┆
0x0780a0…0780c0             0a 20 20 20 20 20 20 65 20 20 20 20 20 20 3a 3d 20 65 20 2b 20 31 3b 0a 20 20 20 20 20 20 65 6e   ┆       e      := e + 1;       en┆
0x0780c0…0780e0             76 69 72 20 20 3a 3d 20 70 74 72 28 65 6e 76 69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20 20 20 20   ┆vir  := ptr(envirseg^, e);      ┆
0x0780e0…078100             20 77 68 69 6c 65 20 65 6e 76 69 72 5e 20 3c 3e 20 63 68 72 28 30 29 20 64 6f 0a 20 20 20 20 20   ┆ while envir^ <> chr(0) do      ┆
0x078100…078120             20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 73 65 74 6e 61 6d 65 20 3d 20 6e 61 6d 65   ┆ begin         if setname = name┆
0x078120…078140             20 74 68 65 6e 20 72 65 73 20 3a 3d 20 72 65 73 20 2b 20 65 6e 76 69 72 5e 3b 0a 20 20 20 20 20   ┆ then res := res + envir^;      ┆
0x078140…078160             20 20 20 65 20 20 20 20 20 3a 3d 20 65 20 2b 20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 76 69 72   ┆   e     := e + 1;         envir┆
0x078160…078180             20 3a 3d 20 70 74 72 28 65 6e 76 69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20 20 20 20 20 65 6e 64   ┆ := ptr(envirseg^, e);       end┆
0x078180…0781a0             3b 0a 20 20 20 20 20 20 65 20 20 20 20 20 3a 3d 20 65 20 2b 20 31 3b 0a 20 20 20 20 20 20 65 6e   ┆;       e     := e + 1;       en┆
0x0781a0…0781c0             76 69 72 20 3a 3d 20 70 74 72 28 65 6e 76 69 72 73 65 67 5e 2c 20 65 29 3b 0a 20 20 20 20 65 6e   ┆vir := ptr(envirseg^, e);     en┆
0x0781c0…0781e0             64 3b 20 20 28 2a 20 20 77 68 69 6c 65 20 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 28 2a 24 46 2b 2a 29   ┆d;  (*  while  *)  end;  (*$F+*)┆
0x0781e0…078200             20 70 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29 0a 62 65 67 69 6e   ┆ procedure myexit; (*$F-*) begin┆
0x078200…078220 (32, 0, 2)  0a 20 20 65 78 69 74 70 72 6f 63 20 3a 3d 20 65 78 69 74 70 74 72 3b 0a 65 6e 64 3b 0a 0a 01 44   ┆   exitproc := exitptr; end;   D┆
0x078220…078240             20 32 0a 62 65 67 69 6e 0a 01 45 20 32 0a 01 49 20 32 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ 2 begin  E 2  I 2 (*-----------┆
0x078240…078260             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x078260…078280             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 29 0a 01 45 20 32   ┆-------------------------*)  E 2┆
0x078280…0782a0             0a 0a 01 49 20 32 0a 62 65 67 69 6e 09 09 28 2a 20 20 69 6e 69 74 69 61 6c 69 7a 65 20 20 2a 29   ┆   I 2 begin  (*  initialize  *)┆
0x0782a0…0782c0             0a 0a 01 45 20 32 0a 20 20 65 78 69 74 70 74 72 20 20 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a 20   ┆   E 2   exitptr  := exitproc;  ┆
0x0782c0…0782e0             20 65 78 69 74 70 72 6f 63 20 3a 3d 20 40 6d 79 65 78 69 74 3b 0a 01 49 20 32 0a 20 20 66 69 6c   ┆ exitproc := @myexit;  I 2   fil┆
0x0782e0…078300             65 6d 6f 64 65 20 3a 3d 20 30 3b 20 20 20 20 20 20 20 20 20 20 28 2a 20 20 72 65 61 64 20 6f 6e   ┆emode := 0;          (*  read on┆
0x078300…078320             6c 79 20 69 66 20 70 6f 73 73 69 62 6c 65 20 20 2a 29 0a 01 45 20 32 0a 0a 20 20 66 6f 72 20 69   ┆ly if possible  *)  E 2    for i┆
0x078320…078340             20 3a 3d 20 30 20 74 6f 20 39 20 64 6f 20 68 65 78 6e 75 6d 62 65 72 5b 69 5d 20 20 20 20 3a 3d   ┆ := 0 to 9 do hexnumber[i]    :=┆
0x078340…078360             20 63 68 72 28 69 2b 34 38 29 3b 0a 20 20 66 6f 72 20 69 20 3a 3d 20 30 20 74 6f 20 35 20 64 6f   ┆ chr(i+48);   for i := 0 to 5 do┆
0x078360…078380             20 68 65 78 6e 75 6d 62 65 72 5b 31 30 2b 69 5d 20 3a 3d 20 63 68 72 28 69 2b 36 35 29 3b 0a 0a   ┆ hexnumber[10+i] := chr(i+65);  ┆
0x078380…0783a0             20 20 70 61 72 61 6d 72 65 63 20 20 3a 3d 20 27 27 3b 0a 20 20 70 61 72 61 6d 68 65 61 64 20 3a   ┆  paramrec  := '';   paramhead :┆
0x0783a0…0783c0             3d 20 6e 69 6c 3b 0a 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 28 6c 65 66 74 73 69 64 65 2c 20 27   ┆= nil;   assign_alfa(leftside, '┆
0x0783c0…0783e0             27 29 3b 0a 20 20 61 73 73 69 67 6e 5f 61 6c 66 61 28 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 20 27   ┆');   assign_alfa(programname, '┆
0x0783e0…078400             27 29 3b 0a 20 20 61 73 73 69 67 6e 5f 70 61 74 68 28 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65   ┆');   assign_path(rtp35_pathname┆
0x078400…078420 (32, 0, 3)  2c 20 27 27 29 3b 0a 20 20 61 73 73 69 67 6e 5f 70 61 74 68 28 70 61 74 68 31 5f 6e 61 6d 65 2c   ┆, '');   assign_path(path1_name,┆
0x078420…078440             27 27 29 3b 0a 20 20 61 73 73 69 67 6e 5f 70 61 74 68 28 70 61 74 68 32 5f 6e 61 6d 65 2c 27 27   ┆'');   assign_path(path2_name,''┆
0x078440…078460             29 3b 0a 20 20 61 73 73 69 67 6e 5f 70 61 74 68 28 73 6f 75 72 63 65 5f 70 61 74 68 2c 27 27 29   ┆);   assign_path(source_path,'')┆
0x078460…078480             3b 0a 0a 20 20 66 6f 72 20 69 20 3a 3d 20 31 20 74 6f 20 70 61 72 61 6d 63 6f 75 6e 74 20 64 6f   ┆;    for i := 1 to paramcount do┆
0x078480…0784a0             20 70 61 72 61 6d 70 75 74 28 70 61 72 61 6d 73 74 72 28 69 29 29 3b 0a 20 20 70 61 72 61 6d 61   ┆ paramput(paramstr(i));   parama┆
0x0784a0…0784c0             64 64 3b 0a 20 20 70 61 72 61 6d 69 6e 76 65 72 73 65 3b 0a 0a 20 20 69 66 20 72 74 70 33 35 5f   ┆dd;   paraminverse;    if rtp35_┆
0x0784c0…0784e0             70 61 74 68 6e 61 6d 65 20 3d 20 27 27 20 74 68 65 6e 20 66 69 6e 64 73 65 74 28 27 52 54 50 50   ┆pathname = '' then findset('RTPP┆
0x0784e0…078500             41 54 48 27 2c 20 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 29 3b 0a 20 20 69 66 20 70 61 74 68   ┆ATH', rtp35_pathname);   if path┆
0x078500…078520             31 5f 6e 61 6d 65 20 20 20 20 20 3d 20 27 27 20 74 68 65 6e 20 66 69 6e 64 73 65 74 28 27 52 54   ┆1_name     = '' then findset('RT┆
0x078520…078540             50 57 4f 52 4b 31 27 2c 70 61 74 68 31 5f 6e 61 6d 65 29 3b 0a 20 20 69 66 20 70 61 74 68 32 5f   ┆PWORK1',path1_name);   if path2_┆
0x078540…078560             6e 61 6d 65 20 20 20 20 20 3d 20 27 27 20 74 68 65 6e 20 66 69 6e 64 73 65 74 28 27 52 54 50 57   ┆name     = '' then findset('RTPW┆
0x078560…078580             4f 52 4b 32 27 2c 70 61 74 68 32 5f 6e 61 6d 65 29 3b 0a 0a 20 20 69 66 20 72 74 70 33 35 5f 70   ┆ORK2',path2_name);    if rtp35_p┆
0x078580…0785a0             61 74 68 6e 61 6d 65 20 3d 20 27 27 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 72 74   ┆athname = '' then   begin     rt┆
0x0785a0…0785c0             70 33 35 5f 70 61 74 68 6e 61 6d 65 20 3a 3d 20 70 61 72 61 6d 73 74 72 28 30 29 3b 0a 20 20 20   ┆p35_pathname := paramstr(0);    ┆
0x0785c0…0785e0             20 72 65 70 65 61 74 0a 20 20 20 20 20 20 64 65 6c 65 74 65 28 72 74 70 33 35 5f 70 61 74 68 6e   ┆ repeat       delete(rtp35_pathn┆
0x0785e0…078600             61 6d 65 2c 20 6c 65 6e 67 74 68 28 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 29 2c 20 31 29 3b   ┆ame, length(rtp35_pathname), 1);┆
0x078600…078620 (32, 0, 4)  0a 20 20 20 20 20 20 69 20 3a 3d 20 6c 65 6e 67 74 68 28 72 74 70 33 35 5f 70 61 74 68 6e 61 6d   ┆       i := length(rtp35_pathnam┆
0x078620…078640             65 29 3b 0a 20 20 20 20 20 20 69 66 20 63 6f 70 79 28 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65   ┆e);       if copy(rtp35_pathname┆
0x078640…078660             2c 20 69 2c 20 31 29 20 3d 20 63 68 72 28 39 32 29 20 74 68 65 6e 20 69 20 3a 3d 20 30 3b 0a 20   ┆, i, 1) = chr(92) then i := 0;  ┆
0x078660…078680             20 20 20 75 6e 74 69 6c 20 69 20 3d 20 30 3b 0a 20 20 65 6e 64 3b 0a 0a 20 20 73 65 74 5f 70 61   ┆   until i = 0;   end;    set_pa┆
0x078680…0786a0             74 68 5f 65 6e 64 28 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 29 3b 0a 20 20 73 65 74 5f 70 61   ┆th_end(rtp35_pathname);   set_pa┆
0x0786a0…0786c0             74 68 5f 65 6e 64 28 70 61 74 68 31 5f 6e 61 6d 65 29 3b 0a 20 20 73 65 74 5f 70 61 74 68 5f 65   ┆th_end(path1_name);   set_path_e┆
0x0786c0…0786e0             6e 64 28 70 61 74 68 32 5f 6e 61 6d 65 29 3b 0a 0a 20 20 73 65 74 63 62 72 65 61 6b 28 74 72 75   ┆nd(path2_name);    setcbreak(tru┆
0x0786e0…078700             65 29 3b 0a 65 6e 64 2e 0a 01 45 20 31 0a 74 68 6e 61 6d 65 29 3b 0a 20 20 69 66 20 70 61 74 68   ┆e); end.  E 1 thname);   if path┆
0x078700…078720             31 5f 6e 61 6d 65 20 20 20 20 20 3d 20 27 27 20 74 68 65 6e 20 66 69 6e 64 73 65 74 28 27 52 54   ┆1_name     = '' then findset('RT┆
0x078720…078740             50 57 4f 52 4b 31 27 2c 70 61 74 68 31 5f 6e 61 6d 65 29 3b 0a 20 20 69 66 20 70 61 74 68 32 5f   ┆PWORK1',path1_name);   if path2_┆
0x078740…078760             6e 61 6d 65 20 20 20 20 20 3d 20 27 27 20 74 68 65 6e 20 66 69 6e 64 73 65 74 28 27 52 54 50 57   ┆name     = '' then findset('RTPW┆
0x078760…078780             4f 52 4b 32 27 2c 70 61 74 68 32 5f 6e 61 6d 65 29 3b 0a 0a 20 20 69 66 20 72 74 70 33 35 5f 70   ┆ORK2',path2_name);    if rtp35_p┆
0x078780…0787a0             61 74 68 6e 61 6d 65 20 3d 20 27 27 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 72 74   ┆athname = '' then   begin     rt┆
0x0787a0…0787c0             70 33 35 5f 70 61 74 68 6e 61 6d 65 20 3a 3d 20 70 61 72 61 6d 73 74 72 28 30 29 3b 0a 20 20 20   ┆p35_pathname := paramstr(0);    ┆
0x0787c0…0787e0             20 72 65 70 65 61 74 0a 20 20 20 20 20 20 64 65 6c 65 74 65 28 72 74 70 33 35 5f 70 61 74 68 6e   ┆ repeat       delete(rtp35_pathn┆
0x0787e0…078800             61 6d 65 2c 20 6c 65 6e 67 74 68 28 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 29 2c 20 31 29 3b   ┆ame, length(rtp35_pathname), 1);┆
0x078800…078820 (32, 0, 5)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 72 74 70 2f 73 2e 72 74 70 33 35 32 31 2e 70 61 73 00   ┆../sw2103/src/rtp/s.rtp3521.pas ┆
0x078820…078840             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x078860…078880             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x078880…0788a0             20 20 20 33 31 30 35 20 20 35 32 36 36 37 37 36 33 35 37 20 20 31 31 30 31 34 00 20 00 00 00 00   ┆   3105  5266776357  11014      ┆
0x0788a0…0788c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x078a00…078a20 (32, 0, 6)  01 68 33 39 33 34 36 0a 01 73 20 30 30 30 30 32 2f 30 30 30 30 30 2f 30 30 30 37 30 0a 01 64 20   ┆ h39346  s 00002/00000/00070  d ┆
0x078a20…078a40             44 20 31 2e 31 33 20 39 32 2f 31 30 2f 31 34 20 31 31 3a 35 36 3a 34 36 20 73 77 32 31 30 33 20   ┆D 1.13 92/10/14 11:56:46 sw2103 ┆
0x078a40…078a60             32 20 31 0a 01 63 20 52 65 6c 65 61 73 65 2e 70 61 73 20 75 73 65 64 2e 0a 01 65 0a 01 73 20 30   ┆2 1  c Release.pas used.  e  s 0┆
0x078a60…078a80             30 30 37 30 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20 44 20 31 2e 31 32 20 39 32 2f 31 30   ┆0070/00000/00000  d D 1.12 92/10┆
0x078a80…078aa0             2f 31 34 20 30 39 3a 31 39 3a 30 30 20 73 77 32 31 30 33 20 31 20 30 0a 01 63 20 53 43 43 53 20   ┆/14 09:19:00 sw2103 1 0  c SCCS ┆
0x078aa0…078ac0             61 6e 64 20 55 4e 49 58 20 75 73 65 64 2c 20 73 6f 75 72 63 65 20 66 69 6c 65 20 39 31 2e 31 30   ┆and UNIX used, source file 91.10┆
0x078ac0…078ae0             2e 31 35 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 70 72 6f 67 72 61 6d   ┆.15.  e  u  U  t  T  I 1 program┆
0x078ae0…078b00             20 72 74 70 33 35 30 32 28 69 6e 70 75 74 2c 6f 75 74 70 75 74 2c 73 70 69 78 74 61 62 6c 65 2c   ┆ rtp3502(input,output,spixtable,┆
0x078b00…078b20             63 6f 64 65 66 69 6c 65 2c 73 79 6d 62 66 69 6c 65 29 3b 0a 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆codefile,symbfile);  (*---------┆
0x078b20…078b40             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x078b40…078b60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 28   ┆------------------------ -- -- (┆
0x078b60…078b80             43 29 20 43 6f 70 79 72 69 67 74 68 20 31 39 39 32 20 20 44 41 4e 4f 53 49 0a 2d 2d 0a 2d 2d 09   ┆C) Copyrigth 1992  DANOSI -- -- ┆
0x078b80…078ba0             52 54 50 33 35 30 32 20 50 61 73 73 20 31 2e 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆RTP3502 Pass 1. -- -------------┆
0x078ba0…078bc0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x078bc0…078be0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 09 52 65 76   ┆---------------------- -- -- Rev┆
0x078be0…078c00             69 73 69 6f 6e 73 0a 2d 2d 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆isions -- ----------------------┆
0x078c00…078c20 (32, 0, 7)  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 20 20 20 20 20 20 20 39 31 2e 31 30 2e 31 35 20 20 45   ┆---------- --        91.10.15  E┆
0x078c20…078c40             42 4b 20 20 20 55 73 65 64 20 69 6e 20 72 65 6c 65 61 73 65 20 31 2e 31 32 0a 2d 2d 20 20 31 2e   ┆BK   Used in release 1.12 --  1.┆
0x078c40…078c60             31 32 20 20 39 32 2e 31 30 2e 31 34 20 20 48 45 4a 20 20 20 53 43 43 53 20 61 6e 64 20 55 4e 49   ┆12  92.10.14  HEJ   SCCS and UNI┆
0x078c60…078c80             58 20 75 73 65 64 2e 0a 01 49 20 32 0a 2d 2d 20 20 31 2e 31 33 20 20 39 32 2e 31 30 2e 31 34 20   ┆X used.  I 2 --  1.13  92.10.14 ┆
0x078c80…078ca0             20 48 45 4a 20 20 20 52 65 6c 65 61 73 65 2e 70 61 73 20 75 73 65 64 2e 0a 01 45 20 32 0a 2d 2d   ┆ HEJ   Release.pas used.  E 2 --┆
0x078ca0…078cc0             0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ -------------------------------┆
0x078cc0…078ce0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x078ce0…078d00             2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65   ┆---- -- SCCS information -- File┆
0x078d00…078d20             20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65   ┆   :  %P% -- Module :  %M% -- Ve┆
0x078d20…078d40             72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55   ┆rsion:  %I% -- Date   :  %E%  %U┆
0x078d40…078d60             25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆% ------------------------------┆
0x078d60…078d80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x078d80…078da0             2d 2d 2d 2d 2d 0a 2a 29 0a 0a 75 73 65 73 20 72 74 70 75 6e 69 74 2c 20 64 6f 73 3b 0a 0a 28 2a   ┆----- *)  uses rtpunit, dos;  (*┆
0x078da0…078dc0             20 56 65 72 73 69 6f 6e 20 63 6f 6e 74 72 6f 6c 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 73 74   ┆ Version control comments are st┆
0x078dc0…078de0             61 74 65 64 20 69 6e 20 70 31 69 6e 69 74 2e 70 61 73 20 20 20 2a 29 0a 0a 28 2a 24 4d 20 36 35   ┆ated in p1init.pas   *)  (*$M 65┆
0x078de0…078e00             30 30 30 2c 30 2c 36 35 35 33 36 30 2a 29 0a 28 2a 24 52 2b 2a 29 0a 0a 01 49 20 32 0a 28 2a 24   ┆000,0,655360*) (*$R+*)   I 2 (*$┆
0x078e00…078e20 (32, 0, 8)  49 20 72 65 6c 65 61 73 65 20 2a 29 0a 01 45 20 32 0a 28 2a 24 49 20 70 31 69 6e 69 74 20 2a 29   ┆I release *)  E 2 (*$I p1init *)┆
0x078e20…078e40             0a 28 2a 24 49 20 70 31 63 6f 64 65 20 2a 29 0a 28 2a 24 49 20 70 31 70 61 72 73 20 2a 29 0a 0a   ┆ (*$I p1code *) (*$I p1pars *)  ┆
0x078e40…078e60             28 2a 24 46 2b 2a 29 70 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29   ┆(*$F+*)procedure myexit; (*$F-*)┆
0x078e60…078e80             0a 62 65 67 69 6e 0a 0a 65 78 69 74 70 72 6f 63 20 3a 3d 20 65 78 69 74 73 61 76 65 3b 0a 0a 69   ┆ begin  exitproc := exitsave;  i┆
0x078e80…078ea0             66 20 65 78 69 74 63 6f 64 65 20 3d 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 0a 74 65 72 6d 69   ┆f exitcode = 0 then begin  termi┆
0x078ea0…078ec0             6e 61 74 65 28 65 72 72 6f 72 63 6f 75 6e 74 3e 30 29 3b 0a 69 66 20 77 61 72 6e 69 6e 67 63 6f   ┆nate(errorcount>0); if warningco┆
0x078ec0…078ee0             75 6e 74 3e 30 20 74 68 65 6e 20 28 2a 20 6e 6f 20 65 72 72 6f 72 73 20 62 75 74 20 77 61 72 6e   ┆unt>0 then (* no errors but warn┆
0x078ee0…078f00             69 6e 67 73 20 2a 29 20 70 72 69 6e 74 65 72 72 6f 72 73 3b 0a 69 66 20 63 61 6c 6c 5f 70 61 73   ┆ings *) printerrors; if call_pas┆
0x078f00…078f20             73 5f 33 20 74 68 65 6e 0a 69 66 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 3c 3e 27 72 74 70 33 35   ┆s_3 then if program_name<>'rtp35┆
0x078f20…078f40             30 32 32 27 20 74 68 65 6e 20 28 2a 20 33 35 30 32 20 6f 72 20 7a 38 30 20 2a 29 0a 72 65 70 6c   ┆022' then (* 3502 or z80 *) repl┆
0x078f40…078f60             61 63 65 28 27 72 74 70 33 35 31 33 2e 65 78 65 27 29 0a 65 6c 73 65 20 28 2a 20 33 35 30 32 20   ┆ace('rtp3513.exe') else (* 3502 ┆
0x078f60…078f80             6d 6f 64 65 6c 20 32 20 2a 29 0a 72 65 70 6c 61 63 65 28 27 72 74 70 33 35 32 33 2e 65 78 65 27   ┆model 2 *) replace('rtp3523.exe'┆
0x078f80…078fa0             29 3b 0a 0a 65 6e 64 3b 0a 0a 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 28 20 27 2a 2a 2a 20 63 6f   ┆);  end;  runtime_error( '*** co┆
0x078fa0…078fc0             6d 70 69 6c 61 74 69 6f 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 66 74 65 72 20 70 61 73 73 31   ┆mpilation terminated after pass1┆
0x078fc0…078fe0             20 27 29 3b 0a 0a 65 6e 64 3b 0a 0a 62 65 67 69 6e 0a 0a 65 78 69 74 73 61 76 65 20 3a 3d 20 65   ┆ ');  end;  begin  exitsave := e┆
0x078fe0…079000             78 69 74 70 72 6f 63 3b 0a 65 78 69 74 70 72 6f 63 20 3a 3d 20 40 20 6d 79 65 78 69 74 3b 0a 0a   ┆xitproc; exitproc := @ myexit;  ┆
0x079000…079020 (32, 0, 9)  6e 65 77 28 69 6e 5f 62 75 66 5f 70 74 72 29 3b 0a 6e 65 77 28 73 70 69 78 5f 62 75 66 5f 70 74   ┆new(in_buf_ptr); new(spix_buf_pt┆
0x079020…079040             72 29 3b 0a 0a 69 6e 69 74 69 61 6c 69 7a 65 3b 0a 0a 70 61 72 73 65 72 3b 0a 0a 65 6e 64 2e 0a   ┆r);  initialize;  parser;  end. ┆
0x079040…079060             01 45 20 31 0a 2a 29 70 72 6f 63 65 64 75 72 65 20 6d 79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29   ┆ E 1 *)procedure myexit; (*$F-*)┆
0x079060…079080             0a 62 65 67 69 6e 0a 0a 65 78 69 74 70 72 6f 63 20 3a 3d 20 65 78 69 74 73 61 76 65 3b 0a 0a 69   ┆ begin  exitproc := exitsave;  i┆
0x079080…0790a0             66 20 65 78 69 74 63 6f 64 65 20 3d 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 0a 74 65 72 6d 69   ┆f exitcode = 0 then begin  termi┆
0x0790a0…0790c0             6e 61 74 65 28 65 72 72 6f 72 63 6f 75 6e 74 3e 30 29 3b 0a 69 66 20 77 61 72 6e 69 6e 67 63 6f   ┆nate(errorcount>0); if warningco┆
0x0790c0…0790e0             75 6e 74 3e 30 20 74 68 65 6e 20 28 2a 20 6e 6f 20 65 72 72 6f 72 73 20 62 75 74 20 77 61 72 6e   ┆unt>0 then (* no errors but warn┆
0x0790e0…079100             69 6e 67 73 20 2a 29 20 70 72 69 6e 74 65 72 72 6f 72 73 3b 0a 69 66 20 63 61 6c 6c 5f 70 61 73   ┆ings *) printerrors; if call_pas┆
0x079100…079120             73 5f 33 20 74 68 65 6e 0a 69 66 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 3c 3e 27 72 74 70 33 35   ┆s_3 then if program_name<>'rtp35┆
0x079120…079140             30 32 32 27 20 74 68 65 6e 20 28 2a 20 33 35 30 32 20 6f 72 20 7a 38 30 20 2a 29 0a 72 65 70 6c   ┆022' then (* 3502 or z80 *) repl┆
0x079140…079160             61 63 65 28 27 72 74 70 33 35 31 33 2e 65 78 65 27 29 0a 65 6c 73 65 20 28 2a 20 33 35 30 32 20   ┆ace('rtp3513.exe') else (* 3502 ┆
0x079160…079180             6d 6f 64 65 6c 20 32 20 2a 29 0a 72 65 70 6c 61 63 65 28 27 72 74 70 33 35 32 33 2e 65 78 65 27   ┆model 2 *) replace('rtp3523.exe'┆
0x079180…0791a0             29 3b 0a 0a 65 6e 64 3b 0a 0a 72 75 6e 74 69 6d 65 5f 65 72 72 6f 72 28 20 27 2a 2a 2a 20 63 6f   ┆);  end;  runtime_error( '*** co┆
0x0791a0…0791c0             6d 70 69 6c 61 74 69 6f 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 66 74 65 72 20 70 61 73 73 31   ┆mpilation terminated after pass1┆
0x0791c0…0791e0             20 27 29 3b 0a 0a 65 6e 64 3b 0a 0a 62 65 67 69 6e 0a 0a 65 78 69 74 73 61 76 65 20 3a 3d 20 65   ┆ ');  end;  begin  exitsave := e┆
0x0791e0…079200             78 69 74 70 72 6f 63 3b 0a 65 78 69 74 70 72 6f 63 20 3a 3d 20 40 20 6d 79 65 78 69 74 3b 0a 0a   ┆xitproc; exitproc := @ myexit;  ┆
0x079200…079220 (32, 0, 10) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 72 74 70 2f 78 70 31 63 6f 64 65 00 00 00 00 00 00 00   ┆../sw2103/src/rtp/xp1code       ┆
0x079220…079240             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x079260…079280             00 00 00 00 20 20 20 37 35 35 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       755     255     146      ┆
0x079280…0792a0             20 31 31 34 34 35 30 20 20 35 32 36 36 37 36 30 33 30 37 20 20 31 30 32 35 33 00 20 00 00 00 00   ┆ 114450  5266760307  10253      ┆
0x0792a0…0792c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x079400…079420 (32, 0, 11) 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ (*-----------------------------┆
0x079420…079440             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x079440…079460             2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 28 43 29 20 43 6f 70 79 72 69 67 74 68 20 31 39 39 32 20 20 44   ┆---- -- -- (C) Copyrigth 1992  D┆
0x079460…079480             41 4e 4f 53 49 0a 2d 2d 0a 2d 2d 09 50 31 43 4f 44 45 2e 50 41 53 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d   ┆ANOSI -- -- P1CODE.PAS -- ------┆
0x079480…0794a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0794a0…0794c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d   ┆----------------------------- --┆
0x0794c0…0794e0             0a 2d 2d 09 52 65 76 69 73 69 6f 6e 73 0a 2d 2d 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ -- Revisions -- ---------------┆
0x0794e0…079500             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 20 20 20 20 20 20 20 39 32 2e 30   ┆----------------- --        92.0┆
0x079500…079520             31 2e 32 30 20 20 45 42 4b 20 20 20 55 73 65 64 20 69 6e 20 72 65 6c 65 61 73 65 20 31 2e 31 32   ┆1.20  EBK   Used in release 1.12┆
0x079520…079540             0a 2d 2d 20 20 31 2e 31 20 20 20 39 32 2e 31 30 2e 31 34 20 20 48 45 4a 20 20 20 53 43 43 53 20   ┆ --  1.1   92.10.14  HEJ   SCCS ┆
0x079540…079560             61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆and UNIX used. -- --------------┆
0x079560…079580             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x079580…0795a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e   ┆--------------------- -- SCCS in┆
0x0795a0…0795c0             66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f   ┆formation -- File   :  %P% -- Mo┆
0x0795c0…0795e0             64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09   ┆dule :  %M% -- Version:  %I% -- ┆
0x0795e0…079600             44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆Date   :  %E%  %U% -------------┆
0x079600…079620 (32, 0, 12) 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x079620…079640             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 28 2a 20 62 6f   ┆---------------------- *)  (* bo┆
0x079640…079660             62 73 20 70 72 6f 63 65 64 75 72 65 20 63 6f 64 65 20 2a 29 0a 28 2a 24 72 2b 2a 29 0a 70 72 6f   ┆bs procedure code *) (*$r+*) pro┆
0x079660…079680             63 65 64 75 72 65 20 63 6f 64 65 28 6f 6c 64 74 6f 70 2c 6e 65 77 74 6f 70 3a 20 73 74 61 63 6b   ┆cedure code(oldtop,newtop: stack┆
0x079680…0796a0             69 6e 78 3b 20 70 72 6f 64 3a 20 69 6e 74 65 67 65 72 29 3b 0a 28 2a 24 72 2d 2a 29 0a 0a 28 2a   ┆inx; prod: integer); (*$r-*)  (*┆
0x0796a0…0796c0             20 62 6f 62 73 20 6c 6f 63 61 6c 20 70 72 6f 63 65 64 75 72 65 73 2a 29 0a 70 72 6f 63 65 64 75   ┆ bobs local procedures*) procedu┆
0x0796c0…0796e0             72 65 20 67 65 74 73 74 72 69 6e 67 28 73 79 2c 73 74 61 72 74 3a 20 69 6e 74 65 67 65 72 3b 20   ┆re getstring(sy,start: integer; ┆
0x0796e0…079700             76 61 72 20 73 74 72 3a 73 74 72 69 6e 67 3b 20 76 61 72 20 6c 65 6e 67 74 68 3a 20 69 6e 74 65   ┆var str:string; var length: inte┆
0x079700…079720             67 65 72 29 3b 0a 76 61 72 20 69 2c 6a 2c 74 3a 69 6e 74 65 67 65 72 3b 0a 62 65 67 69 6e 0a 73   ┆ger); var i,j,t:integer; begin s┆
0x079720…079740             74 72 3a 3d 20 62 6c 61 6e 6b 3b 0a 69 66 20 73 79 3e 3d 30 20 74 68 65 6e 20 74 3a 3d 20 6e 65   ┆tr:= blank; if sy>=0 then t:= ne┆
0x079740…079760             77 74 6f 70 2b 28 73 79 2d 31 29 0a 65 6c 73 65 20 74 3a 3d 20 6f 6c 64 74 6f 70 2b 28 73 79 2d   ┆wtop+(sy-1) else t:= oldtop+(sy-┆
0x079760…079780             31 29 3b 0a 6c 65 6e 67 74 68 3a 3d 20 61 74 74 73 74 61 63 6b 5b 74 5d 2e 63 68 62 75 66 70 2d   ┆1); length:= attstack[t].chbufp-┆
0x079780…0797a0             61 74 74 73 74 61 63 6b 5b 74 2d 31 5d 2e 63 68 62 75 66 70 2b 73 74 61 72 74 2d 31 3b 0a 69 66   ┆attstack[t-1].chbufp+start-1; if┆
0x0797a0…0797c0             20 6c 65 6e 67 74 68 3e 73 74 72 69 6e 67 6d 61 78 2d 73 74 61 72 74 2b 31 20 74 68 65 6e 20 20   ┆ length>stringmax-start+1 then  ┆
0x0797c0…0797e0             73 74 6f 70 28 35 29 3b 0a 6a 3a 3d 20 73 74 61 72 74 3b 0a 66 6f 72 20 69 3a 3d 20 61 74 74 73   ┆stop(5); j:= start; for i:= atts┆
0x0797e0…079800             74 61 63 6b 5b 74 2d 31 5d 2e 63 68 62 75 66 70 20 74 6f 20 61 74 74 73 74 61 63 6b 5b 74 5d 2e   ┆tack[t-1].chbufp to attstack[t].┆
0x079800…079820 (32, 0, 13) 63 68 62 75 66 70 2d 31 20 64 6f 0a 62 65 67 69 6e 0a 73 74 72 5b 6a 5d 3a 3d 20 63 6f 6e 76 63   ┆chbufp-1 do begin str[j]:= convc┆
0x079820…079840             68 20 5b 63 68 62 75 66 5b 69 5d 20 5d 20 3b 20 6a 3a 3d 20 6a 2b 31 0a 65 6e 64 0a 65 6e 64 3b   ┆h [chbuf[i] ] ; j:= j+1 end end;┆
0x079840…079860             20 28 2a 67 65 74 73 74 72 69 6e 67 2a 29 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 74 65   ┆ (*getstring*)   procedure outte┆
0x079860…079880             73 74 3b 0a 28 2a 6f 75 74 74 65 73 74 20 70 72 6f 64 75 63 65 73 20 61 20 73 65 71 75 65 6e 63   ┆st; (*outtest produces a sequenc┆
0x079880…0798a0             65 20 6f 66 20 73 6e 61 70 68 6f 74 73 20 6f 66 20 74 68 65 20 70 61 72 73 65 0a 28 2a 6f 75 74   ┆e of snaphots of the parse (*out┆
0x0798a0…0798c0             74 65 73 74 20 6d 61 79 20 62 65 20 72 65 6d 6f 76 65 64 20 62 79 20 74 68 65 20 75 73 65 72 20   ┆test may be removed by the user ┆
0x0798c0…0798e0             2a 29 0a 28 2a 64 75 72 69 6e 67 20 74 68 65 20 70 61 72 73 65 2c 20 73 6e 61 70 73 68 6f 74 73   ┆*) (*during the parse, snapshots┆
0x0798e0…079900             20 61 72 65 20 77 72 69 74 74 65 6e 20 6f 6e 20 66 69 6c 65 20 6f 75 74 70 75 74 20 2a 29 0a 28   ┆ are written on file output *) (┆
0x079900…079920             2a 70 72 6f 67 72 61 6d 20 6c 69 6e 65 73 20 77 68 69 63 68 20 77 72 69 74 65 73 20 73 6e 61 70   ┆*program lines which writes snap┆
0x079920…079940             73 68 6f 74 73 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 63 6f 6d 6d 65 6e 74 3a 2a 29 0a 28 2a   ┆shots contains the comment:*) (*┆
0x079940…079960             2a 2a 73 6e 61 70 73 68 6f 74 2a 2a 2a 29 0a 76 61 72 20 73 3a 20 73 74 72 69 6e 67 3b 0a 69 2c   ┆**snapshot***) var s: string; i,┆
0x079960…079980             6a 2c 6c 3a 69 6e 74 65 67 65 72 3b 20 63 68 3a 63 68 61 72 3b 0a 62 65 67 69 6e 0a 77 72 69 74   ┆j,l:integer; ch:char; begin writ┆
0x079980…0799a0             65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 20 70 72 6f 64   ┆eln(output); write(output,' prod┆
0x0799a0…0799c0             75 63 74 69 6f 6e 3a 27 2c 70 72 6f 64 3a 33 29 3b 0a 66 6f 72 20 69 3a 3d 20 31 20 74 6f 20 6f   ┆uction:',prod:3); for i:= 1 to o┆
0x0799c0…0799e0             6c 64 74 6f 70 2d 6e 65 77 74 6f 70 2b 31 20 64 6f 0a 62 65 67 69 6e 20 67 65 74 73 74 72 69 6e   ┆ldtop-newtop+1 do begin getstrin┆
0x0799e0…079a00             67 28 69 2c 31 2c 73 2c 6c 29 3b 0a 69 66 20 6c 3e 30 20 74 68 65 6e 0a 62 65 67 69 6e 20 77 72   ┆g(i,1,s,l); if l>0 then begin wr┆
0x079a00…079a20 (32, 0, 14) 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 20 20 20   ┆iteln(output); write(output,'   ┆
0x079a20…079a40             73 79 6d 62 27 2c 69 3a 31 2c 27 20 27 29 3b 0a 66 6f 72 20 6a 3a 3d 20 31 20 74 6f 20 6c 20 64   ┆symb',i:1,' '); for j:= 1 to l d┆
0x079a40…079a60             6f 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 73 5b 6a 5d 29 0a 65 6e 64 0a 65 6e 64 0a 65 6e 64   ┆o write(output,s[j]) end end end┆
0x079a60…079a80             3b 20 28 2a 6f 75 74 74 65 73 74 2a 29 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 6e 61   ┆; (*outtest*)    function readna┆
0x079a80…079aa0             6d 65 20 3a 20 6e 61 6d 65 68 65 61 64 70 74 72 3b 0a 28 2a 20 72 65 61 64 20 74 68 65 20 6e 61   ┆me : nameheadptr; (* read the na┆
0x079aa0…079ac0             6d 65 20 66 72 6f 6d 20 63 68 62 75 66 28 6f 6c 64 74 6f 70 29 20 69 6e 74 6f 20 61 20 6e 61 6d   ┆me from chbuf(oldtop) into a nam┆
0x079ac0…079ae0             65 20 73 74 72 75 63 74 75 72 65 0a 61 6e 64 20 72 65 74 75 72 6e 20 61 20 72 65 66 65 72 65 6e   ┆e structure and return a referen┆
0x079ae0…079b00             63 65 20 74 6f 20 74 68 65 20 68 65 61 64 20 20 2a 29 0a 0a 76 61 72 0a 6c 6f 63 61 6c 68 65 61   ┆ce to the head  *)  var localhea┆
0x079b00…079b20             64 20 3a 20 6e 61 6d 65 68 65 61 64 70 74 72 3b 0a 63 68 62 75 66 69 6e 64 65 78 2c 20 63 68 61   ┆d : nameheadptr; chbufindex, cha┆
0x079b20…079b40             72 63 6f 75 6e 74 20 3a 20 69 6e 74 65 67 65 72 3b 0a 6c 6f 63 61 6c 6e 61 6d 65 20 3a 20 6e 61   ┆rcount : integer; localname : na┆
0x079b40…079b60             6d 65 70 74 72 3b 0a 0a 62 65 67 69 6e 0a 6c 6f 63 61 6c 68 65 61 64 3a 3d 20 67 65 74 6e 61 6d   ┆meptr;  begin localhead:= getnam┆
0x079b60…079b80             65 68 65 61 64 3b 20 28 2a 20 61 6c 6c 6f 63 61 74 65 20 61 20 6e 65 77 20 6e 61 6d 65 20 68 65   ┆ehead; (* allocate a new name he┆
0x079b80…079ba0             61 64 20 2a 29 0a 77 69 74 68 20 20 6c 6f 63 61 6c 68 65 61 64 20 5e 20 64 6f 0a 62 65 67 69 6e   ┆ad *) with  localhead ^ do begin┆
0x079ba0…079bc0             0a 6c 65 6e 67 74 68 3a 3d 20 61 74 74 73 74 61 63 6b 5b 6f 6c 64 74 6f 70 5d 2e 63 68 62 75 66   ┆ length:= attstack[oldtop].chbuf┆
0x079bc0…079be0             70 2d 61 74 74 73 74 61 63 6b 5b 6f 6c 64 74 6f 70 2d 31 5d 2e 63 68 62 75 66 70 3b 0a 73 74 61   ┆p-attstack[oldtop-1].chbufp; sta┆
0x079be0…079c00             72 74 3a 3d 20 67 65 74 6e 61 6d 65 6e 6f 64 65 3b 0a 6c 6f 63 61 6c 6e 61 6d 65 3a 3d 20 73 74   ┆rt:= getnamenode; localname:= st┆
0x079c00…079c20 (32, 0, 15) 61 72 74 3b 20 63 68 61 72 63 6f 75 6e 74 3a 3d 20 30 3b 20 63 68 62 75 66 69 6e 64 65 78 3a 3d   ┆art; charcount:= 0; chbufindex:=┆
0x079c20…079c40             20 61 74 74 73 74 61 63 6b 5b 6f 6c 64 74 6f 70 2d 31 5d 2e 63 68 62 75 66 70 3b 0a 0a 72 65 70   ┆ attstack[oldtop-1].chbufp;  rep┆
0x079c40…079c60             65 61 74 0a 77 69 74 68 20 20 6c 6f 63 61 6c 6e 61 6d 65 20 5e 20 64 6f 0a 6e 61 6d 65 70 61 72   ┆eat with  localname ^ do namepar┆
0x079c60…079c80             74 5b 20 28 63 68 61 72 63 6f 75 6e 74 20 6d 6f 64 20 61 6c 66 61 6c 65 6e 67 74 68 29 2b 31 20   ┆t[ (charcount mod alfalength)+1 ┆
0x079c80…079ca0             5d 3a 3d 20 63 6f 6e 76 63 68 20 5b 20 63 68 62 75 66 5b 20 63 68 62 75 66 69 6e 64 65 78 20 5d   ┆]:= convch [ chbuf[ chbufindex ]┆
0x079ca0…079cc0             20 5d 20 3b 0a 63 68 61 72 63 6f 75 6e 74 3a 3d 20 63 68 61 72 63 6f 75 6e 74 2b 31 3b 0a 63 68   ┆ ] ; charcount:= charcount+1; ch┆
0x079cc0…079ce0             62 75 66 69 6e 64 65 78 3a 3d 20 63 68 62 75 66 69 6e 64 65 78 2b 31 3b 0a 0a 69 66 20 28 28 63   ┆bufindex:= chbufindex+1;  if ((c┆
0x079ce0…079d00             68 61 72 63 6f 75 6e 74 20 6d 6f 64 20 61 6c 66 61 6c 65 6e 67 74 68 29 3d 30 29 20 61 6e 64 20   ┆harcount mod alfalength)=0) and ┆
0x079d00…079d20             28 63 68 61 72 63 6f 75 6e 74 3c 6c 65 6e 67 74 68 29 20 74 68 65 6e 0a 77 69 74 68 20 20 6c 6f   ┆(charcount<length) then with  lo┆
0x079d20…079d40             63 61 6c 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 28 2a 20 67 65 74 20 61 20 6e 65 77 20   ┆calname ^ do begin (* get a new ┆
0x079d40…079d60             6e 61 6d 65 20 6e 6f 64 65 20 2a 29 0a 6e 65 78 74 3a 3d 20 67 65 74 6e 61 6d 65 6e 6f 64 65 3b   ┆name node *) next:= getnamenode;┆
0x079d60…079d80             0a 6c 6f 63 61 6c 6e 61 6d 65 3a 3d 20 6e 65 78 74 3b 0a 65 6e 64 3b 0a 0a 75 6e 74 69 6c 20 63   ┆ localname:= next; end;  until c┆
0x079d80…079da0             68 61 72 63 6f 75 6e 74 3d 6c 65 6e 67 74 68 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 2e   ┆harcount=length;  end; (* with .┆
0x079da0…079dc0             2e 2e 20 20 2a 29 0a 0a 72 65 61 64 6e 61 6d 65 3a 3d 20 6c 6f 63 61 6c 68 65 61 64 3b 0a 0a 65   ┆..  *)  readname:= localhead;  e┆
0x079dc0…079de0             6e 64 3b 20 20 28 2a 20 72 65 61 64 20 6e 61 6d 65 20 2a 29 0a 0a 70 72 6f 63 65 64 75 72 65 20   ┆nd;  (* read name *)  procedure ┆
0x079de0…079e00             65 72 72 6f 72 73 65 63 74 69 6f 6e 3b 0a 0a 0a 62 65 67 69 6e 0a 65 6d 69 74 63 6f 64 65 28 63   ┆errorsection;   begin emitcode(c┆
0x079e00…079e20 (32, 1, 1)  65 72 72 6f 72 29 3b 0a 65 6e 64 3b 0a 0c 0a 70 72 6f 63 65 64 75 72 65 20 65 78 70 6f 72 74 5f   ┆error); end;   procedure export_┆
0x079e20…079e40             73 65 63 74 69 6f 6e 3b 0a 28 2a 20 73 65 63 74 69 6f 6e 20 33 20 2a 29 0a 0a 76 61 72 0a 6c 65   ┆section; (* section 3 *)  var le┆
0x079e40…079e60             6e 67 74 68 20 3a 20 69 6e 74 65 67 65 72 3b 0a 73 74 72 20 3a 20 73 74 72 69 6e 67 3b 20 28 2a   ┆ngth : integer; str : string; (*┆
0x079e60…079e80             20 70 61 63 6b 20 74 68 65 20 65 78 70 6f 72 74 20 6b 69 6e 64 20 69 6e 74 6f 20 73 74 72 20 2a   ┆ pack the export kind into str *┆
0x079e80…079ea0             29 0a 0a 62 65 67 69 6e 0a 63 61 73 65 20 70 72 6f 64 20 6f 66 0a 33 30 31 3a 20 20 28 2a 20 3c   ┆)  begin case prod of 301:  (* <┆
0x079ea0…079ec0             65 78 70 6f 72 74 20 64 65 66 3e 20 3a 3a 3d 20 3c 65 78 70 6f 72 74 20 6e 61 6d 65 3e 3d 3c 65   ┆export def> ::= <export name>=<e┆
0x079ec0…079ee0             78 70 6f 72 74 20 6b 69 6e 64 3e 20 3c 73 69 6d 70 6c 65 20 76 61 72 69 61 62 6c 65 3e 0a 20 20   ┆xport kind> <simple variable>   ┆
0x079ee0…079f00             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 65 6d 69 63 6f 6c   ┆                        <semicol┆
0x079f00…079f20             6f 6e 73 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ons>                            ┆
0x079f20…079f40             20 20 20 20 20 20 20 20 20 2a 29 0a 28 2a 20 20 63 6f 64 65 3a 20 65 78 70 6f 72 74 28 6b 69 6e   ┆         *) (*  code: export(kin┆
0x079f40…079f60             64 29 20 20 2a 29 0a 65 6d 69 74 63 6f 64 65 28 20 63 75 72 72 65 6e 74 5f 65 78 70 6f 72 74 5f   ┆d)  *) emitcode( current_export_┆
0x079f60…079f80             6b 69 6e 64 20 29 3b 0a 0a 33 30 32 3a 20 20 28 2a 20 3c 65 78 70 6f 72 74 20 6b 69 6e 64 3e 20   ┆kind );  302:  (* <export kind> ┆
0x079f80…079fa0             3a 3a 3d 20 6e 61 6d 65 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 78 70 6f 72 74 20 20 2a 29 0a   ┆::= name *) (* code: export  *) ┆
0x079fa0…079fc0             28 2a 20 61 63 74 69 6f 6e 20 3a 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 6b 69 6e 64 20 2a 29   ┆(* action : remember the kind *)┆
0x079fc0…079fe0             0a 62 65 67 69 6e 0a 0a 65 6d 69 74 63 6f 64 65 28 20 63 65 78 70 6f 72 74 20 29 3b 0a 0a 67 65   ┆ begin  emitcode( cexport );  ge┆
0x079fe0…07a000             74 73 74 72 69 6e 67 20 28 20 31 2c 20 31 2c 20 73 74 72 2c 20 6c 65 6e 67 74 68 20 29 3b 0a 0a   ┆tstring ( 1, 1, str, length );  ┆
0x07a000…07a020 (32, 1, 2)  69 66 20 73 74 72 3d 27 56 41 4c 55 45 27 20 74 68 65 6e 20 63 75 72 72 65 6e 74 5f 65 78 70 6f   ┆if str='VALUE' then current_expo┆
0x07a020…07a040             72 74 5f 6b 69 6e 64 3a 3d 20 63 65 78 70 6f 72 74 76 61 6c 75 65 0a 65 6c 73 65 0a 69 66 20 73   ┆rt_kind:= cexportvalue else if s┆
0x07a040…07a060             74 72 3d 27 44 49 53 50 27 20 74 68 65 6e 20 63 75 72 72 65 6e 74 5f 65 78 70 6f 72 74 5f 6b 69   ┆tr='DISP' then current_export_ki┆
0x07a060…07a080             6e 64 3a 3d 20 63 65 78 70 6f 72 74 64 69 73 70 0a 65 6c 73 65 0a 69 66 20 73 74 72 3d 27 53 49   ┆nd:= cexportdisp else if str='SI┆
0x07a080…07a0a0             5a 45 27 20 74 68 65 6e 20 63 75 72 72 65 6e 74 5f 65 78 70 6f 72 74 5f 6b 69 6e 64 3a 3d 20 63   ┆ZE' then current_export_kind:= c┆
0x07a0a0…07a0c0             65 78 70 6f 72 74 73 69 7a 65 0a 65 6c 73 65 0a 69 66 20 73 74 72 3d 27 41 44 44 52 45 53 53 27   ┆exportsize else if str='ADDRESS'┆
0x07a0c0…07a0e0             20 74 68 65 6e 20 63 75 72 72 65 6e 74 5f 65 78 70 6f 72 74 5f 6b 69 6e 64 3a 3d 20 63 65 78 70   ┆ then current_export_kind:= cexp┆
0x07a0e0…07a100             6f 72 74 61 64 64 72 0a 65 6c 73 65 0a 69 66 20 73 74 72 3d 27 4f 46 46 53 45 54 27 20 74 68 65   ┆ortaddr else if str='OFFSET' the┆
0x07a100…07a120             6e 20 63 75 72 72 65 6e 74 5f 65 78 70 6f 72 74 5f 6b 69 6e 64 3a 3d 20 63 65 78 70 6f 72 74 6f   ┆n current_export_kind:= cexporto┆
0x07a120…07a140             66 66 73 65 74 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 6d 61 72 6b 65 72 72 6f 72 28 20 31 30 34 20   ┆ffset else begin markerror( 104 ┆
0x07a140…07a160             29 3b 20 28 2a 20 65 78 70 6f 72 74 20 6b 69 6e 64 20 65 78 70 65 63 74 65 64 20 28 76 61 6c 75   ┆); (* export kind expected (valu┆
0x07a160…07a180             65 2c 20 64 69 73 70 2c 20 73 69 7a 65 2c 20 61 64 64 72 65 73 73 2c 20 6f 72 20 6f 66 66 73 65   ┆e, disp, size, address, or offse┆
0x07a180…07a1a0             74 20 29 20 20 2a 29 0a 63 75 72 72 65 6e 74 5f 65 78 70 6f 72 74 5f 6b 69 6e 64 3a 3d 20 63 65   ┆t )  *) current_export_kind:= ce┆
0x07a1a0…07a1c0             78 70 6f 72 74 73 69 7a 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 33 30 32 20 2a 29 0a   ┆xportsize; end;  end; (* 302 *) ┆
0x07a1c0…07a1e0             0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 65 78 70 6f 72 74   ┆ end; (* case *)  end; (* export┆
0x07a1e0…07a200             20 73 65 63 74 69 6f 6e 20 2a 29 0a 0a 0c 0a 70 72 6f 63 65 64 75 72 65 20 6c 69 74 65 72 61 6c   ┆ section *)    procedure literal┆
0x07a200…07a220 (32, 1, 3)  73 28 20 70 72 6f 64 20 3a 20 69 6e 74 65 67 65 72 20 20 29 3b 0a 28 2a 20 73 65 63 74 69 6f 6e   ┆s( prod : integer  ); (* section┆
0x07a220…07a240             20 34 20 2a 29 0a 0a 76 61 72 0a 69 6e 78 2c 20 6c 65 6e 67 74 68 2c 20 73 74 65 70 76 61 72 20   ┆ 4 *)  var inx, length, stepvar ┆
0x07a240…07a260             3a 20 69 6e 74 65 67 65 72 3b 0a 63 6f 64 65 6b 69 6e 64 20 3a 20 63 6f 64 65 73 3b 0a 6f 72 64   ┆: integer; codekind : codes; ord┆
0x07a260…07a280             5f 63 68 61 72 20 3a 20 69 6e 74 65 67 65 72 3b 0a 63 68 61 72 5f 6e 61 6d 65 3a 20 61 6c 66 61   ┆_char : integer; char_name: alfa┆
0x07a280…07a2a0             3b 20 28 2a 20 66 6f 72 20 6e 61 6d 65 20 6f 66 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63 74   ┆; (* for name of control charact┆
0x07a2a0…07a2c0             65 72 20 2a 29 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 5f 63 68 61 72 5f 63 6f 6e 73 74 28 63   ┆er *)  function get_char_const(c┆
0x07a2c0…07a2e0             68 61 72 5f 6e 61 6d 65 3a 20 61 6c 66 61 29 3a 20 69 6e 74 65 67 65 72 3b 0a 28 2a 20 73 65 61   ┆har_name: alfa): integer; (* sea┆
0x07a2e0…07a300             72 63 68 20 74 68 65 20 74 61 62 6c 65 20 6f 66 20 63 68 61 72 20 63 6f 6e 73 74 61 6e 74 73 20   ┆rch the table of char constants ┆
0x07a300…07a320             61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6f 72 64 69 6e 61 6c 0a 76 61 6c 75 65 20 6f 66 20   ┆and return the ordinal value of ┆
0x07a320…07a340             74 68 65 20 63 68 61 72 61 63 74 65 72 20 63 6f 6e 73 74 61 6e 74 20 2a 29 0a 63 6f 6e 73 74 0a   ┆the character constant *) const ┆
0x07a340…07a360             6e 6f 5f 6f 66 5f 63 68 61 72 5f 6e 61 6d 65 73 3d 20 33 34 3b 0a 74 79 70 65 0a 63 68 61 72 5f   ┆no_of_char_names= 34; type char_┆
0x07a360…07a380             6e 61 6d 65 74 79 70 65 20 3d 20 61 72 72 61 79 20 5b 20 30 2e 2e 6e 6f 5f 6f 66 5f 63 68 61 72   ┆nametype = array [ 0..no_of_char┆
0x07a380…07a3a0             5f 6e 61 6d 65 73 20 5d 20 6f 66 20 61 6c 66 61 3b 0a 63 6f 6e 73 74 0a 20 20 28 2a 20 20 20 20   ┆_names ] of alfa; const   (*    ┆
0x07a3a0…07a3c0             20 20 20 20 20 20 20 30 20 20 20 20 20 20 31 20 20 20 20 20 20 32 20 20 20 20 20 20 33 20 20 20   ┆       0      1      2      3   ┆
0x07a3c0…07a3e0             20 20 20 34 20 20 20 20 20 20 35 20 20 20 20 20 20 36 20 20 20 20 20 20 37 20 20 20 20 20 20 38   ┆   4      5      6      7      8┆
0x07a3e0…07a400             20 20 20 20 20 20 39 20 2a 29 0a 63 68 61 72 5f 6e 61 6d 65 73 3a 20 63 68 61 72 5f 6e 61 6d 65   ┆      9 *) char_names: char_name┆
0x07a400…07a420 (32, 1, 4)  74 79 70 65 20 3d 20 28 0a 28 2a 20 20 20 20 20 30 20 2a 29 20 20 27 4e 55 4c 20 20 20 20 20 20   ┆type = ( (*     0 *)  'NUL      ┆
0x07a420…07a440             20 20 20 27 2c 20 27 53 4f 48 20 20 20 20 20 20 20 20 20 27 2c 20 27 53 54 58 20 20 20 20 20 20   ┆   ', 'SOH         ', 'STX      ┆
0x07a440…07a460             20 20 20 27 2c 0a 28 2a 20 20 20 20 20 33 20 2a 29 20 20 27 45 54 58 20 20 20 20 20 20 20 20 20   ┆   ', (*     3 *)  'ETX         ┆
0x07a460…07a480             27 2c 20 27 45 4f 54 20 20 20 20 20 20 20 20 20 27 2c 20 27 45 4e 51 20 20 20 20 20 20 20 20 20   ┆', 'EOT         ', 'ENQ         ┆
0x07a480…07a4a0             27 2c 0a 28 2a 20 20 20 20 20 36 20 2a 29 20 20 27 41 43 4b 20 20 20 20 20 20 20 20 20 27 2c 20   ┆', (*     6 *)  'ACK         ', ┆
0x07a4a0…07a4c0             27 42 45 4c 20 20 20 20 20 20 20 20 20 27 2c 20 27 42 53 20 20 20 20 20 20 20 20 20 20 27 2c 0a   ┆'BEL         ', 'BS          ', ┆
0x07a4c0…07a4e0             28 2a 20 20 20 20 20 39 20 2a 29 20 20 27 48 54 20 20 20 20 20 20 20 20 20 20 27 2c 20 27 4e 4c   ┆(*     9 *)  'HT          ', 'NL┆
0x07a4e0…07a500             20 20 20 20 20 20 20 20 20 20 27 2c 20 27 56 54 20 20 20 20 20 20 20 20 20 20 27 2c 0a 28 2a 20   ┆          ', 'VT          ', (* ┆
0x07a500…07a520             20 20 20 31 32 20 2a 29 20 20 27 46 46 20 20 20 20 20 20 20 20 20 20 27 2c 20 27 43 52 20 20 20   ┆   12 *)  'FF          ', 'CR   ┆
0x07a520…07a540             20 20 20 20 20 20 20 27 2c 20 27 53 4f 20 20 20 20 20 20 20 20 20 20 27 2c 0a 28 2a 20 20 20 20   ┆       ', 'SO          ', (*    ┆
0x07a540…07a560             31 35 20 2a 29 20 20 27 53 49 20 20 20 20 20 20 20 20 20 20 27 2c 20 27 44 4c 45 20 20 20 20 20   ┆15 *)  'SI          ', 'DLE     ┆
0x07a560…07a580             20 20 20 20 27 2c 20 27 44 43 31 20 20 20 20 20 20 20 20 20 27 2c 0a 28 2a 20 20 20 20 31 38 20   ┆    ', 'DC1         ', (*    18 ┆
0x07a580…07a5a0             2a 29 20 20 27 44 43 32 20 20 20 20 20 20 20 20 20 27 2c 20 27 44 43 33 20 20 20 20 20 20 20 20   ┆*)  'DC2         ', 'DC3        ┆
0x07a5a0…07a5c0             20 27 2c 20 27 44 43 34 20 20 20 20 20 20 20 20 20 27 2c 0a 28 2a 20 20 20 20 32 31 20 2a 29 20   ┆ ', 'DC4         ', (*    21 *) ┆
0x07a5c0…07a5e0             20 27 4e 41 4b 20 20 20 20 20 20 20 20 20 27 2c 20 27 53 59 4e 20 20 20 20 20 20 20 20 20 27 2c   ┆ 'NAK         ', 'SYN         ',┆
0x07a5e0…07a600             20 27 45 54 42 20 20 20 20 20 20 20 20 20 27 2c 0a 28 2a 20 20 20 20 32 34 20 2a 29 20 20 27 43   ┆ 'ETB         ', (*    24 *)  'C┆
0x07a600…07a620 (32, 1, 5)  41 4e 20 20 20 20 20 20 20 20 20 27 2c 20 27 45 4d 20 20 20 20 20 20 20 20 20 20 27 2c 20 27 53   ┆AN         ', 'EM          ', 'S┆
0x07a620…07a640             55 42 20 20 20 20 20 20 20 20 20 27 2c 0a 28 2a 20 20 20 20 32 37 20 2a 29 20 20 27 45 53 43 20   ┆UB         ', (*    27 *)  'ESC ┆
0x07a640…07a660             20 20 20 20 20 20 20 20 27 2c 20 27 46 53 20 20 20 20 20 20 20 20 20 20 27 2c 20 27 47 53 20 20   ┆        ', 'FS          ', 'GS  ┆
0x07a660…07a680             20 20 20 20 20 20 20 20 27 2c 0a 28 2a 20 20 20 20 33 30 20 2a 29 20 20 27 52 53 20 20 20 20 20   ┆        ', (*    30 *)  'RS     ┆
0x07a680…07a6a0             20 20 20 20 20 27 2c 20 27 55 53 20 20 20 20 20 20 20 20 20 20 27 2c 20 27 53 50 20 20 20 20 20   ┆     ', 'US          ', 'SP     ┆
0x07a6a0…07a6c0             20 20 20 20 20 27 2c 0a 28 2a 20 61 6c 74 65 72 6e 61 74 69 76 65 20 6e 6c 20 2a 29 20 20 20 20   ┆     ', (* alternative nl *)    ┆
0x07a6c0…07a6e0             20 20 20 20 20 27 4c 46 20 20 20 20 20 20 20 20 20 20 27 2c 0a 28 2a 20 20 20 31 32 37 20 2a 29   ┆     'LF          ', (*   127 *)┆
0x07a6e0…07a700             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 44 45 4c 20 20 20 20 20 20 20 20 20 27   ┆                  'DEL         '┆
0x07a700…07a720             29 3b 0a 0a 76 61 72 0a 73 74 65 70 3a 20 69 6e 74 65 67 65 72 3b 0a 0a 62 65 67 69 6e 0a 73 74   ┆);  var step: integer;  begin st┆
0x07a720…07a740             65 70 3a 3d 20 2d 31 3b 0a 0a 72 65 70 65 61 74 0a 73 74 65 70 3a 3d 20 73 74 65 70 2b 31 3b 0a   ┆ep:= -1;  repeat step:= step+1; ┆
0x07a740…07a760             75 6e 74 69 6c 20 28 63 68 61 72 5f 6e 61 6d 65 3d 63 68 61 72 5f 6e 61 6d 65 73 5b 20 73 74 65   ┆until (char_name=char_names[ ste┆
0x07a760…07a780             70 20 5d 29 20 6f 72 20 28 73 74 65 70 3e 6f 72 64 28 73 70 29 29 3b 0a 0a 69 66 20 73 74 65 70   ┆p ]) or (step>ord(sp));  if step┆
0x07a780…07a7a0             3c 3d 6f 72 64 28 73 70 29 20 74 68 65 6e 0a 67 65 74 5f 63 68 61 72 5f 63 6f 6e 73 74 3a 3d 20   ┆<=ord(sp) then get_char_const:= ┆
0x07a7a0…07a7c0             73 74 65 70 0a 65 6c 73 65 0a 69 66 20 63 68 61 72 5f 6e 61 6d 65 3d 27 4c 46 20 20 20 20 20 20   ┆step else if char_name='LF      ┆
0x07a7c0…07a7e0             20 20 20 20 27 20 74 68 65 6e 0a 67 65 74 5f 63 68 61 72 5f 63 6f 6e 73 74 3a 3d 20 31 30 0a 65   ┆    ' then get_char_const:= 10 e┆
0x07a7e0…07a800             6c 73 65 0a 69 66 20 63 68 61 72 5f 6e 61 6d 65 3d 27 44 45 4c 20 20 20 20 20 20 20 20 20 27 20   ┆lse if char_name='DEL         ' ┆
0x07a800…07a820 (32, 1, 6)  74 68 65 6e 0a 67 65 74 5f 63 68 61 72 5f 63 6f 6e 73 74 3a 3d 20 31 32 37 0a 65 6c 73 65 0a 62   ┆then get_char_const:= 127 else b┆
0x07a820…07a840             65 67 69 6e 0a 6d 61 72 6b 65 72 72 6f 72 28 31 30 38 29 3b 20 28 2a 20 6e 6f 74 20 6e 61 6d 65   ┆egin markerror(108); (* not name┆
0x07a840…07a860             20 6f 66 20 63 68 61 72 20 63 6f 6e 73 74 61 6e 74 20 2a 29 0a 67 65 74 5f 63 68 61 72 5f 63 6f   ┆ of char constant *) get_char_co┆
0x07a860…07a880             6e 73 74 3a 3d 20 30 3b 0a 65 6e 64 3b 20 28 2a 20 75 6e 6b 6e 6f 77 6e 20 63 68 61 72 20 63 6f   ┆nst:= 0; end; (* unknown char co┆
0x07a880…07a8a0             6e 73 74 61 6e 74 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 67 65 74 20 63 68 61 72 20 63 6f 6e 73 74   ┆nstant *) end; (* get char const┆
0x07a8a0…07a8c0             20 2a 29 0a 0a 0a 62 65 67 69 6e 20 28 2a 20 6c 69 74 65 72 61 6c 73 20 2a 29 0a 63 61 73 65 20   ┆ *)   begin (* literals *) case ┆
0x07a8c0…07a8e0             70 72 6f 64 20 6f 66 0a 34 30 31 3a 20 28 2a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 65 6d 69 74   ┆prod of 401: (* called from emit┆
0x07a8e0…07a900             72 6f 75 74 69 6e 65 64 65 63 6c 2c 20 65 6d 69 74 20 74 68 65 20 6e 61 6d 65 20 61 73 20 61 20   ┆routinedecl, emit the name as a ┆
0x07a900…07a920             6c 69 74 65 72 61 6c 20 74 65 78 74 20 2a 29 0a 63 6f 64 65 6b 69 6e 64 3a 3d 20 63 74 65 78 74   ┆literal text *) codekind:= ctext┆
0x07a920…07a940             3b 0a 0a 34 30 32 3a 20 28 2a 20 3c 75 6e 73 69 67 6e 65 64 20 6e 75 6d 62 65 72 3e 20 3a 3a 3d   ┆;  402: (* <unsigned number> ::=┆
0x07a940…07a960             20 3c 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 3e 20 2a 29 0a 63 6f 64 65 6b 69 6e 64 3a   ┆ <unsigned integer> *) codekind:┆
0x07a960…07a980             3d 20 63 69 6e 74 65 67 65 72 3b 0a 0a 34 30 33 3a 20 28 2a 20 3c 75 6e 73 69 67 6e 65 64 20 6e   ┆= cinteger;  403: (* <unsigned n┆
0x07a980…07a9a0             75 6d 62 65 72 3e 20 3a 3a 3d 20 72 65 61 6c 6b 6f 6e 73 74 20 2a 29 0a 63 6f 64 65 6b 69 6e 64   ┆umber> ::= realkonst *) codekind┆
0x07a9a0…07a9c0             3a 3d 20 63 72 65 61 6c 3b 0a 34 30 34 3a 20 20 28 2a 20 3c 75 6e 73 69 67 6e 65 64 20 69 6e 74   ┆:= creal; 404:  (* <unsigned int┆
0x07a9c0…07a9e0             65 67 65 72 3e 20 3a 3a 3d 20 23 20 6e 61 6d 65 20 2a 29 0a 63 6f 64 65 6b 69 6e 64 3a 3d 20 63   ┆eger> ::= # name *) codekind:= c┆
0x07a9e0…07aa00             69 6e 74 65 67 65 72 3b 0a 0a 34 30 35 3a 20 20 28 2a 20 3c 65 78 70 6f 72 74 20 6e 61 6d 65 3e   ┆integer;  405:  (* <export name>┆
0x07aa00…07aa20 (32, 1, 7)  20 3a 3a 3d 20 6e 61 6d 65 20 20 2a 29 0a 63 6f 64 65 6b 69 6e 64 3a 3d 20 63 74 65 78 74 3b 0a   ┆ ::= name  *) codekind:= ctext; ┆
0x07aa20…07aa40             0a 34 30 36 2c 20 28 2a 20 3c 73 74 72 69 6e 67 3e 20 3a 3a 3d 20 73 74 72 69 6e 67 20 2a 29 0a   ┆ 406, (* <string> ::= string *) ┆
0x07aa40…07aa60             34 30 37 3a 20 28 2a 20 20 20 20 20 20 20 20 20 20 21 20 20 20 3c 73 74 72 69 6e 67 3e 20 26 20   ┆407: (*          !   <string> & ┆
0x07aa60…07aa80             73 74 72 69 6e 67 20 2a 29 0a 28 2a 20 62 75 69 6c 64 20 73 74 72 69 6e 67 20 63 6f 6e 73 74 61   ┆string *) (* build string consta┆
0x07aa80…07aaa0             6e 74 20 2a 29 0a 62 65 67 69 6e 0a 6c 65 6e 67 74 68 3a 3d 20 61 74 74 73 74 61 63 6b 5b 20 6f   ┆nt *) begin length:= attstack[ o┆
0x07aaa0…07aac0             6c 64 74 6f 70 20 5d 2e 63 68 62 75 66 70 2d 61 74 74 73 74 61 63 6b 5b 20 6f 6c 64 74 6f 70 2d   ┆ldtop ].chbufp-attstack[ oldtop-┆
0x07aac0…07aae0             31 20 5d 2e 63 68 62 75 66 70 3b 0a 69 66 20 70 72 6f 64 3d 34 30 36 20 74 68 65 6e 20 28 2a 20   ┆1 ].chbufp; if prod=406 then (* ┆
0x07aae0…07ab00             73 74 61 72 74 20 6f 66 20 6e 65 77 20 73 74 72 69 6e 67 20 2a 29 0a 73 74 72 5f 63 6f 6e 73 74   ┆start of new string *) str_const┆
0x07ab00…07ab20             5f 74 6f 70 3a 3d 20 31 3b 0a 66 6f 72 20 73 74 65 70 76 61 72 3a 3d 20 61 74 74 73 74 61 63 6b   ┆_top:= 1; for stepvar:= attstack┆
0x07ab20…07ab40             5b 20 6f 6c 64 74 6f 70 2d 31 20 5d 2e 63 68 62 75 66 70 20 74 6f 20 61 74 74 73 74 61 63 6b 5b   ┆[ oldtop-1 ].chbufp to attstack[┆
0x07ab40…07ab60             20 6f 6c 64 74 6f 70 20 5d 2e 63 68 62 75 66 70 2d 31 20 64 6f 0a 62 65 67 69 6e 0a 73 74 72 69   ┆ oldtop ].chbufp-1 do begin stri┆
0x07ab60…07ab80             6e 67 5f 63 6f 6e 73 74 5b 20 73 74 72 5f 63 6f 6e 73 74 5f 74 6f 70 20 5d 3a 3d 20 6f 72 64 28   ┆ng_const[ str_const_top ]:= ord(┆
0x07ab80…07aba0             63 68 62 75 66 5b 20 73 74 65 70 76 61 72 20 5d 29 3b 0a 69 66 20 73 74 72 5f 63 6f 6e 73 74 5f   ┆chbuf[ stepvar ]); if str_const_┆
0x07aba0…07abc0             74 6f 70 3d 6d 61 78 6e 61 6d 65 6c 65 6e 67 74 68 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 61 72   ┆top=maxnamelength then begin war┆
0x07abc0…07abe0             6e 69 6e 67 28 31 30 37 29 3b 20 28 2a 20 72 65 6d 61 69 6e 69 6e 67 20 70 61 72 74 20 6f 66 20   ┆ning(107); (* remaining part of ┆
0x07abe0…07ac00             73 74 72 69 6e 67 20 73 6b 69 70 70 65 64 20 2a 29 0a 73 74 65 70 76 61 72 3a 3d 20 61 74 74 73   ┆string skipped *) stepvar:= atts┆
0x07ac00…07ac20 (32, 1, 8)  74 61 63 6b 5b 20 6f 6c 64 74 6f 70 20 5d 2e 63 68 62 75 66 70 3b 20 28 2a 20 65 78 69 74 20 70   ┆tack[ oldtop ].chbufp; (* exit p┆
0x07ac20…07ac40             69 63 6b 75 70 20 73 74 72 69 6e 67 20 2a 29 0a 65 6e 64 0a 65 6c 73 65 0a 73 74 72 5f 63 6f 6e   ┆ickup string *) end else str_con┆
0x07ac40…07ac60             73 74 5f 74 6f 70 3a 3d 20 73 74 72 5f 63 6f 6e 73 74 5f 74 6f 70 2b 31 3b 0a 65 6e 64 3b 20 28   ┆st_top:= str_const_top+1; end; (┆
0x07ac60…07ac80             2a 20 66 6f 72 20 73 74 65 70 76 61 72 20 2e 2e 2e 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 34 30 36   ┆* for stepvar ... *) end; (* 406┆
0x07ac80…07aca0             2c 20 34 30 37 20 2a 29 0a 0a 34 30 38 3a 20 28 2a 20 3c 73 74 72 69 6e 67 3e 20 3a 3a 3d 20 3c   ┆, 407 *)  408: (* <string> ::= <┆
0x07aca0…07acc0             73 74 72 69 6e 67 3e 20 26 20 6e 61 6d 65 20 20 28 6f 66 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72   ┆string> & name  (of control char┆
0x07acc0…07ace0             61 63 74 65 72 29 20 2a 29 0a 28 2a 20 70 69 63 6b 75 70 20 6e 61 6d 65 20 6f 66 20 63 6f 6e 74   ┆acter) *) (* pickup name of cont┆
0x07ace0…07ad00             72 6f 6c 20 63 68 61 72 61 63 74 65 72 20 61 6e 64 20 69 6e 73 65 72 74 20 76 61 6c 75 65 20 61   ┆rol character and insert value a┆
0x07ad00…07ad20             73 20 6e 65 78 74 20 63 68 61 72 61 63 74 65 72 20 6f 66 20 74 68 65 20 73 74 72 69 6e 67 20 2a   ┆s next character of the string *┆
0x07ad20…07ad40             29 0a 62 65 67 69 6e 0a 69 6e 78 3a 3d 20 31 3b 0a 66 6f 72 20 73 74 65 70 76 61 72 3a 3d 20 61   ┆) begin inx:= 1; for stepvar:= a┆
0x07ad40…07ad60             74 74 73 74 61 63 6b 5b 20 6f 6c 64 74 6f 70 2d 31 20 5d 2e 63 68 62 75 66 70 20 74 6f 20 61 74   ┆ttstack[ oldtop-1 ].chbufp to at┆
0x07ad60…07ad80             74 73 74 61 63 6b 5b 20 6f 6c 64 74 6f 70 20 5d 2e 63 68 62 75 66 70 2d 31 20 64 6f 0a 62 65 67   ┆tstack[ oldtop ].chbufp-1 do beg┆
0x07ad80…07ada0             69 6e 0a 63 68 61 72 5f 6e 61 6d 65 5b 20 69 6e 78 20 5d 3a 3d 20 63 6f 6e 76 63 68 5b 20 63 68   ┆in char_name[ inx ]:= convch[ ch┆
0x07ada0…07adc0             62 75 66 5b 20 73 74 65 70 76 61 72 20 5d 5d 3b 0a 69 6e 78 3a 3d 20 69 6e 78 2b 31 3b 0a 69 66   ┆buf[ stepvar ]]; inx:= inx+1; if┆
0x07adc0…07ade0             20 69 6e 78 3e 61 6c 66 61 6c 65 6e 67 74 68 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6d 61 72 6b 65   ┆ inx>alfalength then begin marke┆
0x07ade0…07ae00             72 72 6f 72 28 31 30 38 29 3b 20 28 2a 20 6e 6f 74 20 6e 61 6d 65 20 6f 66 20 63 68 61 72 20 63   ┆rror(108); (* not name of char c┆
0x07ae00…07ae20 (32, 1, 9)  6f 6e 73 74 61 6e 74 20 2a 29 0a 73 74 65 70 76 61 72 3a 3d 20 61 74 74 73 74 61 63 6b 5b 20 6f   ┆onstant *) stepvar:= attstack[ o┆
0x07ae20…07ae40             6c 64 74 6f 70 20 5d 2e 63 68 62 75 66 70 3b 20 28 2a 20 65 78 69 74 20 70 69 63 6b 75 70 20 73   ┆ldtop ].chbufp; (* exit pickup s┆
0x07ae40…07ae60             74 72 69 6e 67 20 2a 29 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 66 6f 72 20 73 74 65 70 76 61   ┆tring *) end; end; (* for stepva┆
0x07ae60…07ae80             72 20 2e 2e 2e 20 2a 29 0a 0a 66 6f 72 20 69 6e 78 3a 3d 20 69 6e 78 20 74 6f 20 61 6c 66 61 6c   ┆r ... *)  for inx:= inx to alfal┆
0x07ae80…07aea0             65 6e 67 74 68 20 64 6f 0a 63 68 61 72 5f 6e 61 6d 65 5b 20 69 6e 78 20 5d 3a 3d 20 27 20 27 3b   ┆ength do char_name[ inx ]:= ' ';┆
0x07aea0…07aec0             0a 63 68 61 72 5f 6e 61 6d 65 5b 30 5d 20 3a 3d 20 63 68 72 28 61 6c 66 61 6c 65 6e 67 74 68 29   ┆ char_name[0] := chr(alfalength)┆
0x07aec0…07aee0             3b 0a 73 74 72 69 6e 67 5f 63 6f 6e 73 74 5b 20 73 74 72 5f 63 6f 6e 73 74 5f 74 6f 70 20 5d 3a   ┆; string_const[ str_const_top ]:┆
0x07aee0…07af00             3d 20 67 65 74 5f 63 68 61 72 5f 63 6f 6e 73 74 28 63 68 61 72 5f 6e 61 6d 65 29 3b 0a 69 66 20   ┆= get_char_const(char_name); if ┆
0x07af00…07af20             73 74 72 5f 63 6f 6e 73 74 5f 74 6f 70 3d 6d 61 78 6e 61 6d 65 6c 65 6e 67 74 68 20 74 68 65 6e   ┆str_const_top=maxnamelength then┆
0x07af20…07af40             0a 77 61 72 6e 69 6e 67 28 31 30 37 29 20 28 2a 20 72 65 6d 61 69 6e 69 6e 67 20 70 61 72 74 20   ┆ warning(107) (* remaining part ┆
0x07af40…07af60             6f 66 20 73 74 72 69 6e 67 20 73 6b 69 70 70 65 64 20 2a 29 0a 65 6c 73 65 0a 73 74 72 5f 63 6f   ┆of string skipped *) else str_co┆
0x07af60…07af80             6e 73 74 5f 74 6f 70 3a 3d 20 73 74 72 5f 63 6f 6e 73 74 5f 74 6f 70 2b 31 3b 0a 65 6e 64 3b 20   ┆nst_top:= str_const_top+1; end; ┆
0x07af80…07afa0             28 2a 20 34 30 38 20 2a 29 0a 0a 34 30 39 3a 20 28 2a 20 3c 76 61 6c 75 65 20 64 65 6e 6f 74 61   ┆(* 408 *)  409: (* <value denota┆
0x07afa0…07afc0             74 69 6f 6e 3e 20 3a 3a 3d 20 3c 73 74 72 69 6e 67 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6c   ┆tion> ::= <string> *) (* code: l┆
0x07afc0…07afe0             69 74 65 72 61 6c 28 74 65 78 74 20 6c 65 6e 67 74 68 29 20 73 74 72 69 6e 67 20 2a 29 0a 62 65   ┆iteral(text length) string *) be┆
0x07afe0…07b000             67 69 6e 0a 65 6d 69 74 63 6f 64 65 28 63 6c 69 74 65 72 61 6c 29 3b 0a 65 6d 69 74 28 63 74 65   ┆gin emitcode(cliteral); emit(cte┆
0x07b000…07b020 (32, 1, 10) 78 74 2c 20 73 74 72 5f 63 6f 6e 73 74 5f 74 6f 70 2d 31 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f   ┆xt, str_const_top-1, nill, cnoco┆
0x07b020…07b040             64 65 29 3b 0a 66 6f 72 20 73 74 65 70 76 61 72 3a 3d 20 31 20 74 6f 20 73 74 72 5f 63 6f 6e 73   ┆de); for stepvar:= 1 to str_cons┆
0x07b040…07b060             74 5f 74 6f 70 2d 31 20 64 6f 0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 73 74 72 69 6e 67 5f   ┆t_top-1 do emit(cnocode, string_┆
0x07b060…07b080             63 6f 6e 73 74 5b 20 73 74 65 70 76 61 72 20 5d 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29   ┆const[ stepvar ], nill, cnocode)┆
0x07b080…07b0a0             3b 0a 65 6e 64 3b 20 28 2a 20 34 30 39 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 2a   ┆; end; (* 409 *)  end; (* case *┆
0x07b0a0…07b0c0             29 0a 0a 69 66 20 70 72 6f 64 3c 3d 34 30 35 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 63 6f   ┆)  if prod<=405 then begin (* co┆
0x07b0c0…07b0e0             64 65 3a 20 6c 69 74 65 72 61 6c 28 6c 65 6e 67 74 68 20 63 6f 64 65 6b 69 6e 64 29 20 73 74 72   ┆de: literal(length codekind) str┆
0x07b0e0…07b100             69 6e 67 20 2a 29 0a 0a 6c 65 6e 67 74 68 3a 3d 20 61 74 74 73 74 61 63 6b 5b 6f 6c 64 74 6f 70   ┆ing *)  length:= attstack[oldtop┆
0x07b100…07b120             5d 2e 63 68 62 75 66 70 2d 61 74 74 73 74 61 63 6b 5b 6f 6c 64 74 6f 70 2d 31 5d 2e 63 68 62 75   ┆].chbufp-attstack[oldtop-1].chbu┆
0x07b120…07b140             66 70 3b 0a 69 66 20 70 72 6f 64 3d 34 30 34 20 74 68 65 6e 20 6c 65 6e 67 74 68 3a 3d 20 6c 65   ┆fp; if prod=404 then length:= le┆
0x07b140…07b160             6e 67 74 68 2b 31 3b 20 28 2a 20 27 23 27 20 2a 29 0a 0a 65 6d 69 74 63 6f 64 65 28 63 6c 69 74   ┆ngth+1; (* '#' *)  emitcode(clit┆
0x07b160…07b180             65 72 61 6c 29 3b 0a 65 6d 69 74 28 63 6f 64 65 6b 69 6e 64 2c 20 6c 65 6e 67 74 68 2c 20 6e 69   ┆eral); emit(codekind, length, ni┆
0x07b180…07b1a0             6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 69 66 20 70 72 6f 64 3d 34 30 34 20 74 68 65 6e 20 28   ┆ll, cnocode); if prod=404 then (┆
0x07b1a0…07b1c0             2a 20 65 6d 69 74 28 20 27 23 27 20 29 20 20 2a 29 0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20   ┆* emit( '#' )  *) emit(cnocode, ┆
0x07b1c0…07b1e0             6f 72 64 28 27 23 27 29 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 20 29 3b 0a 66 6f 72 20 73   ┆ord('#'), nill, cnocode ); for s┆
0x07b1e0…07b200             74 65 70 76 61 72 3a 3d 20 61 74 74 73 74 61 63 6b 5b 6f 6c 64 74 6f 70 2d 31 5d 2e 63 68 62 75   ┆tepvar:= attstack[oldtop-1].chbu┆
0x07b200…07b220 (32, 1, 11) 66 70 20 74 6f 20 61 74 74 73 74 61 63 6b 5b 6f 6c 64 74 6f 70 5d 2e 63 68 62 75 66 70 2d 31 20   ┆fp to attstack[oldtop].chbufp-1 ┆
0x07b220…07b240             64 6f 0a 62 65 67 69 6e 0a 6f 72 64 5f 63 68 61 72 3a 3d 20 6f 72 64 28 20 63 68 62 75 66 20 5b   ┆do begin ord_char:= ord( chbuf [┆
0x07b240…07b260             20 73 74 65 70 76 61 72 20 5d 20 29 3b 0a 69 66 20 28 28 70 72 6f 64 3d 34 30 31 29 20 6f 72 20   ┆ stepvar ] ); if ((prod=401) or ┆
0x07b260…07b280             28 70 72 6f 64 3d 34 30 34 29 29 20 61 6e 64 20 28 28 6f 72 64 5f 63 68 61 72 3e 3d 6f 72 64 28   ┆(prod=404)) and ((ord_char>=ord(┆
0x07b280…07b2a0             27 41 27 29 29 20 61 6e 64 20 28 6f 72 64 5f 63 68 61 72 3c 3d 6f 72 64 28 27 5d 27 29 29 29 20   ┆'A')) and (ord_char<=ord(']'))) ┆
0x07b2a0…07b2c0             74 68 65 6e 0a 6f 72 64 5f 63 68 61 72 3a 3d 20 6f 72 64 5f 63 68 61 72 2b 6f 72 64 28 27 61 27   ┆then ord_char:= ord_char+ord('a'┆
0x07b2c0…07b2e0             29 2d 6f 72 64 28 27 41 27 29 3b 20 28 2a 20 63 6f 6e 76 65 72 74 20 74 6f 20 6c 6f 77 65 72 20   ┆)-ord('A'); (* convert to lower ┆
0x07b2e0…07b300             63 61 73 65 20 2a 29 0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 6f 72 64 5f 63 68 61 72 2c 20   ┆case *) emit(cnocode, ord_char, ┆
0x07b300…07b320             6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 70 72 6f   ┆nill, cnocode); end; end; (* pro┆
0x07b320…07b340             64 3c 3d 34 30 35 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 6c 69 74 65 72 61 6c 73 20 2a 29 0a 0a 0c   ┆d<=405 *) end; (* literals *)   ┆
0x07b340…07b360             0a 70 72 6f 63 65 64 75 72 65 20 63 6f 6e 73 74 61 6e 74 64 65 63 6c 61 72 61 74 69 6f 6e 3b 0a   ┆ procedure constantdeclaration; ┆
0x07b360…07b380             28 2a 20 73 65 63 74 69 6f 6e 20 35 20 2a 29 0a 0a 76 61 72 0a 6e 61 6d 65 20 3a 20 6e 61 6d 65   ┆(* section 5 *)  var name : name┆
0x07b380…07b3a0             68 65 61 64 70 74 72 3b 0a 6e 61 6d 65 73 70 69 78 20 3a 20 69 6e 74 65 67 65 72 3b 0a 0a 62 65   ┆headptr; namespix : integer;  be┆
0x07b3a0…07b3c0             67 69 6e 0a 63 61 73 65 20 70 72 6f 64 20 6f 66 0a 20 35 30 31 3a 20 20 28 2a 20 3c 63 6f 6e 73   ┆gin case prod of  501:  (* <cons┆
0x07b3c0…07b3e0             74 61 6e 74 20 64 65 66 69 6e 69 74 69 6f 6e 3e 20 3a 3a 3d 20 3c 63 6f 6e 73 74 6e 61 6d 65 3e   ┆tant definition> ::= <constname>┆
0x07b3e0…07b400             3d 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 3c 73 65 6d 69 63 6f 6c 6f 6e 73 3e 20 2a 29 0a 28 2a   ┆=<expression> <semicolons> *) (*┆
0x07b400…07b420 (32, 1, 12) 63 6f 64 65 3a 20 65 6e 64 63 6f 6e 73 74 61 6e 74 64 65 63 6c 20 2a 29 0a 65 6d 69 74 63 6f 64   ┆code: endconstantdecl *) emitcod┆
0x07b420…07b440             65 28 63 65 6e 64 63 6f 6e 73 74 61 6e 74 64 65 63 6c 29 3b 0a 0a 35 30 32 3a 20 20 28 2a 20 3c   ┆e(cendconstantdecl);  502:  (* <┆
0x07b440…07b460             63 6f 6e 73 74 6e 61 6d 65 3e 20 3a 3a 3d 20 6e 61 6d 65 20 2a 29 0a 28 2a 20 64 65 63 6c 61 72   ┆constname> ::= name *) (* declar┆
0x07b460…07b480             61 74 69 6f 6e 28 63 6f 6e 73 74 61 6e 74 29 20 64 65 63 6c 61 72 65 28 73 70 69 78 29 20 20 2a   ┆ation(constant) declare(spix)  *┆
0x07b480…07b4a0             29 0a 62 65 67 69 6e 0a 6e 61 6d 65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 6e 61 6d 65 73 70 69   ┆) begin name:= readname; namespi┆
0x07b4a0…07b4c0             78 3a 3d 20 73 65 61 72 63 68 6e 61 6d 65 28 6e 61 6d 65 29 3b 0a 65 6d 69 74 28 20 63 64 65 63   ┆x:= searchname(name); emit( cdec┆
0x07b4c0…07b4e0             6c 61 72 61 74 69 6f 6e 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 63 6f 6e 73 74 61 6e 74 29   ┆laration, nill, nill, cconstant)┆
0x07b4e0…07b500             3b 0a 65 6d 69 74 64 65 63 6c 61 72 65 28 64 65 63 6c 2c 20 6e 61 6d 65 73 70 69 78 29 3b 0a 65   ┆; emitdeclare(decl, namespix); e┆
0x07b500…07b520             6e 64 3b 20 28 2a 20 35 30 32 20 2a 29 0a 0a 35 30 33 3a 20 20 28 2a 20 3c 63 6f 6e 73 74 61 6e   ┆nd; (* 502 *)  503:  (* <constan┆
0x07b520…07b540             74 20 64 65 66 69 6e 69 74 69 6f 6e 3e 20 3a 3a 3d 20 3c 63 6f 6e 73 74 6e 61 6d 65 3e 20 65 72   ┆t definition> ::= <constname> er┆
0x07b540…07b560             72 6f 72 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 69 64 28 61 6e 6f 6e 79 6d 6f 75 73 29 20 65 6e   ┆ror *) (* code: id(anonymous) en┆
0x07b560…07b580             64 65 78 70 72 65 73 73 69 6f 6e 20 65 6e 64 63 6f 6e 73 74 61 6e 74 64 65 63 6c 20 2a 29 0a 62   ┆dexpression endconstantdecl *) b┆
0x07b580…07b5a0             65 67 69 6e 0a 69 66 20 72 65 64 75 63 65 64 5f 69 6e 74 65 72 6d 65 64 69 61 74 65 5f 6c 61 6e   ┆egin if reduced_intermediate_lan┆
0x07b5a0…07b5c0             67 75 61 67 65 20 74 68 65 6e 0a 65 6d 69 74 28 63 69 64 2c 20 61 6e 6f 6e 79 6d 6f 75 73 73 70   ┆guage then emit(cid, anonymoussp┆
0x07b5c0…07b5e0             69 78 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 0a 65 6c 73 65 0a 65 6d 69 74 28 63 69 64   ┆ix, nill, cnocode) else emit(cid┆
0x07b5e0…07b600             2c 20 61 6e 6f 6e 79 6d 6f 75 73 73 70 69 78 2c 20 6e 69 6c 6c 2c 20 63 65 6e 64 65 78 70 72 65   ┆, anonymousspix, nill, cendexpre┆
0x07b600…07b620 (32, 1, 13) 73 73 69 6f 6e 29 3b 0a 65 6d 69 74 63 6f 64 65 28 63 65 6e 64 63 6f 6e 73 74 61 6e 74 64 65 63   ┆ssion); emitcode(cendconstantdec┆
0x07b620…07b640             6c 29 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 2a 29 0a 0a 65 6e 64 3b 20   ┆l); end;  end; (* case *)  end; ┆
0x07b640…07b660             28 2a 20 63 6f 6e 73 74 61 6e 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 2a 29 0a 0a 0c 0a 70 72   ┆(* constant declaration *)    pr┆
0x07b660…07b680             6f 63 65 64 75 72 65 20 74 79 70 65 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 28 2a 20 73 65 63 74 69   ┆ocedure typedefinition; (* secti┆
0x07b680…07b6a0             6f 6e 20 36 20 2a 29 0a 0a 76 61 72 0a 63 6f 64 65 77 6f 72 64 20 3a 20 63 6f 64 65 73 3b 0a 6e   ┆on 6 *)  var codeword : codes; n┆
0x07b6a0…07b6c0             61 6d 65 20 3a 20 6e 61 6d 65 68 65 61 64 70 74 72 3b 0a 73 74 65 70 76 61 72 2c 0a 6e 61 6d 65   ┆ame : nameheadptr; stepvar, name┆
0x07b6c0…07b6e0             73 70 69 78 20 3a 20 69 6e 74 65 67 65 72 3b 0a 0a 62 65 67 69 6e 0a 0a 0a 69 66 20 28 70 72 6f   ┆spix : integer;  begin   if (pro┆
0x07b6e0…07b700             64 3e 3d 36 30 31 29 20 61 6e 64 20 28 70 72 6f 64 3c 36 32 30 29 20 74 68 65 6e 0a 62 65 67 69   ┆d>=601) and (prod<620) then begi┆
0x07b700…07b720             6e 0a 63 61 73 65 20 70 72 6f 64 20 6f 66 0a 36 30 31 3a 20 20 28 2a 20 3c 74 79 70 65 20 64 65   ┆n case prod of 601:  (* <type de┆
0x07b720…07b740             66 69 6e 69 74 69 6f 6e 3e 20 3a 3a 3d 20 3c 74 79 70 65 20 6e 61 6d 65 3e 20 3c 66 6f 72 6d 61   ┆finition> ::= <type name> <forma┆
0x07b740…07b760             6c 20 70 61 72 61 6d 65 74 65 72 73 3e 20 3c 65 71 20 74 79 70 65 3e 20 2a 29 0a 28 2a 20 63 6f   ┆l parameters> <eq type> *) (* co┆
0x07b760…07b780             64 65 3a 20 65 6e 64 74 79 70 65 64 65 63 6c 20 65 6e 64 6c 65 76 65 6c 20 20 2a 29 0a 62 65 67   ┆de: endtypedecl endlevel  *) beg┆
0x07b780…07b7a0             69 6e 0a 65 6d 69 74 63 6f 64 65 28 63 65 6e 64 74 79 70 65 64 65 63 6c 29 3b 0a 63 6f 64 65 77   ┆in emitcode(cendtypedecl); codew┆
0x07b7a0…07b7c0             6f 72 64 3a 3d 20 63 65 6e 64 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 36 30 32 2c 20 20 28 2a 20   ┆ord:= cendlevel; end;  602,  (* ┆
0x07b7c0…07b7e0             3c 65 71 3e 20 3a 3a 3d 20 3d 2a 29 0a 36 31 36 3a 20 20 28 2a 20 20 20 20 20 20 21 20 20 20 20   ┆<eq> ::= =*) 616:  (*      !    ┆
0x07b7e0…07b800             3a 20 20 20 20 2a 29 0a 28 2a 20 20 6e 6f 20 63 6f 64 65 20 2a 29 0a 62 65 67 69 6e 0a 69 66 20   ┆:    *) (*  no code *) begin if ┆
0x07b800…07b820 (32, 1, 14) 70 72 6f 64 3d 36 31 36 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 61 72 6e 69 6e 67 28 31 30 36 29   ┆prod=616 then begin warning(106)┆
0x07b820…07b840             3b 0a 70 72 6f 64 3a 3d 20 36 30 32 3b 0a 65 6e 64 3b 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 6e   ┆; prod:= 602; end; codeword:= cn┆
0x07b840…07b860             6f 63 6f 64 65 3b 0a 65 6e 64 3b 20 28 2a 20 36 30 32 2c 20 36 31 36 20 2a 29 0a 0a 36 30 33 3a   ┆ocode; end; (* 602, 616 *)  603:┆
0x07b860…07b880             20 20 28 2a 20 3c 74 79 70 65 3e 20 3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 20 2a 29 0a 28 2a   ┆  (* <type> ::= <variable> *) (*┆
0x07b880…07b8a0             20 63 6f 64 65 3a 20 65 6e 64 74 79 70 65 20 2a 29 0a 62 65 67 69 6e 0a 74 79 70 65 62 75 66 66   ┆ code: endtype *) begin typebuff┆
0x07b8a0…07b8c0             65 72 5b 20 61 74 74 73 74 61 63 6b 5b 20 6e 65 77 74 6f 70 2d 31 20 5d 2e 62 75 66 66 65 72 73   ┆er[ attstack[ newtop-1 ].buffers┆
0x07b8c0…07b8e0             74 61 72 74 5d 3a 3d 20 6f 72 64 28 63 74 79 70 65 69 64 29 3b 0a 28 2a 20 69 2e 65 2e 20 63 68   ┆tart]:= ord(ctypeid); (* i.e. ch┆
0x07b8e0…07b900             61 6e 67 65 20 74 68 65 20 66 6f 72 6d 65 72 20 67 65 6e 65 72 61 74 65 64 20 69 64 20 74 6f 20   ┆ange the former generated id to ┆
0x07b900…07b920             74 79 70 65 69 64 20 2a 29 0a 69 66 20 72 65 64 75 63 65 64 5f 69 6e 74 65 72 6d 65 64 69 61 74   ┆typeid *) if reduced_intermediat┆
0x07b920…07b940             65 5f 6c 61 6e 67 75 61 67 65 20 74 68 65 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 6e 6f 63 6f   ┆e_language then codeword:= cnoco┆
0x07b940…07b960             64 65 0a 65 6c 73 65 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 74 79 70 65 3b 0a 65 6e 64   ┆de else codeword:= cendtype; end┆
0x07b960…07b980             3b 0a 0a 36 30 34 3a 20 20 28 2a 20 3c 74 79 70 65 3e 20 3a 3a 3d 20 3c 73 74 72 75 63 74 75 72   ┆;  604:  (* <type> ::= <structur┆
0x07b980…07b9a0             65 64 20 74 79 70 65 3e 20 2a 29 0a 28 2a 20 20 20 20 21 20 3c 70 6f 6f 6c 20 74 79 70 65 3e 20   ┆ed type> *) (*    ! <pool type> ┆
0x07b9a0…07b9c0             20 20 20 2a 29 0a 28 2a 20 6e 6f 20 63 6f 64 65 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63   ┆   *) (* no code *) codeword:= c┆
0x07b9c0…07b9e0             6e 6f 63 6f 64 65 3b 0a 0a 36 30 35 3a 20 20 28 2a 20 3c 74 79 70 65 3e 20 3a 3a 3d 20 3c 75 70   ┆nocode;  605:  (* <type> ::= <up┆
0x07b9e0…07ba00             61 72 72 6f 77 3e 20 3c 74 79 70 65 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 70 6f 69   ┆arrow> <type> *) (* code: endpoi┆
0x07ba00…07ba20 (32, 1, 15) 6e 74 65 72 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 70 6f 69 6e 74 65 72 3b 0a   ┆nter *) codeword:= cendpointer; ┆
0x07ba20…07ba40             0a 36 30 36 3a 20 20 28 2a 20 3c 74 79 70 65 3e 20 3a 3a 3d 20 3c 72 65 61 64 20 6f 6e 6c 79 3e   ┆ 606:  (* <type> ::= <read only>┆
0x07ba40…07ba60             20 3c 74 79 70 65 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 72 65 61 64 6f 6e 6c 79 20   ┆ <type> *) (* code: endreadonly ┆
0x07ba60…07ba80             2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 72 65 61 64 6f 6e 6c 79 3b 0a 0a 36 30 37   ┆*) codeword:= cendreadonly;  607┆
0x07ba80…07baa0             3a 20 20 28 2a 20 3c 74 79 70 65 3e 20 3a 3a 3d 20 3c 73 74 61 72 74 20 73 63 61 6c 61 72 3e 20   ┆:  (* <type> ::= <start scalar> ┆
0x07baa0…07bac0             3c 69 64 65 6e 74 69 66 69 65 72 20 6c 69 73 74 3e 20 29 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a   ┆<identifier list> )  *) (* code:┆
0x07bac0…07bae0             20 65 6e 64 73 63 61 6c 61 72 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 73 63   ┆ endscalar  *) codeword:= cendsc┆
0x07bae0…07bb00             61 6c 61 72 3b 0a 0a 36 30 38 3a 20 20 28 2a 20 3c 74 79 70 65 3e 20 3a 3a 3d 20 3c 65 78 70 72   ┆alar;  608:  (* <type> ::= <expr┆
0x07bb00…07bb20             65 73 73 69 6f 6e 3e 20 3c 65 6e 64 20 73 75 62 72 61 6e 67 65 3e 20 20 2a 29 0a 28 2a 20 63 6f   ┆ession> <end subrange>  *) (* co┆
0x07bb20…07bb40             64 65 3a 20 65 6e 64 73 75 62 72 61 6e 67 65 20 2a 29 0a 62 65 67 69 6e 0a 77 69 74 68 20 61 74   ┆de: endsubrange *) begin with at┆
0x07bb40…07bb60             74 73 74 61 63 6b 5b 20 6e 65 77 74 6f 70 2d 31 20 5d 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65   ┆tstack[ newtop-1 ] do begin type┆
0x07bb60…07bb80             62 75 66 66 65 72 5b 20 62 75 66 66 65 72 73 74 61 72 74 2d 32 20 5d 3a 3d 20 6f 72 64 28 63 6e   ┆buffer[ bufferstart-2 ]:= ord(cn┆
0x07bb80…07bba0             65 77 74 79 70 65 29 3b 0a 74 79 70 65 62 75 66 66 65 72 5b 20 62 75 66 66 65 72 73 74 61 72 74   ┆ewtype); typebuffer[ bufferstart┆
0x07bba0…07bbc0             2d 31 20 5d 3a 3d 20 6f 72 64 28 63 73 75 62 72 61 6e 67 65 29 3b 0a 65 6e 64 3b 20 28 2a 20 77   ┆-1 ]:= ord(csubrange); end; (* w┆
0x07bbc0…07bbe0             69 74 68 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 73 75 62 72 61 6e 67 65 3b 0a   ┆ith *) codeword:= cendsubrange; ┆
0x07bbe0…07bc00             65 6e 64 3b 0a 0a 36 30 39 3a 20 20 28 2a 20 3c 74 79 70 65 3e 20 3a 3a 3d 20 3c 65 78 74 65 72   ┆end;  609:  (* <type> ::= <exter┆
0x07bc00…07bc20 (33, 0, 1)  6e 61 6c 20 70 72 6f 63 65 73 73 3e 20 3c 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 3e   ┆nal process> <formal parameters>┆
0x07bc20…07bc40             20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 65 78 74 70 72 6f 63 65 73 73 20 65 6e 64 6c 65   ┆ *) (* code: endextprocess endle┆
0x07bc40…07bc60             76 65 6c 20 20 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 63 6f 64 65 28 63 65 6e 64 65 78 74 70 72   ┆vel  *) begin emitcode(cendextpr┆
0x07bc60…07bc80             6f 63 65 73 73 29 3b 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 6c 65 76 65 6c 3b 0a 65 6e   ┆ocess); codeword:= cendlevel; en┆
0x07bc80…07bca0             64 3b 20 28 2a 20 36 30 39 3a 20 2a 29 0a 0a 36 31 30 3a 20 20 28 2a 20 3c 72 65 63 6f 72 64 20   ┆d; (* 609: *)  610:  (* <record ┆
0x07bca0…07bcc0             74 79 70 65 3e 20 3a 3a 3d 20 3c 72 65 63 6f 72 64 3e 20 3c 66 69 65 6c 64 20 6c 69 73 74 3e 20   ┆type> ::= <record> <field list> ┆
0x07bcc0…07bce0             65 6e 64 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 72 65 63 6f 72 64 20 20 2a 29 0a 62   ┆end  *) (* code: endrecord  *) b┆
0x07bce0…07bd00             65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 72 65 63 6f 72 64 3b 0a 65 6e 64 3b   ┆egin codeword:= cendrecord; end;┆
0x07bd00…07bd20             0a 0a 36 31 31 3a 20 20 28 2a 20 3c 72 65 63 6f 72 64 20 73 65 63 74 69 6f 6e 3e 20 3a 3a 3d 20   ┆  611:  (* <record section> ::= ┆
0x07bd20…07bd40             3c 73 74 61 72 74 20 73 65 63 74 69 6f 6e 3e 20 3c 69 64 65 6e 74 69 66 69 65 72 20 6c 69 73 74   ┆<start section> <identifier list┆
0x07bd40…07bd60             3e 20 3c 74 79 70 65 20 63 6f 6c 6f 6e 3e 20 3c 74 79 70 65 3e 20 20 2a 29 0a 28 2a 20 63 6f 64   ┆> <type colon> <type>  *) (* cod┆
0x07bd60…07bd80             65 3a 20 65 6e 64 66 69 65 6c 64 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 66   ┆e: endfield  *) codeword:= cendf┆
0x07bd80…07bda0             69 65 6c 64 3b 0a 0a 36 31 32 3a 20 20 28 2a 20 3c 73 65 74 20 74 79 70 65 3e 20 3a 3a 3d 20 3c   ┆ield;  612:  (* <set type> ::= <┆
0x07bda0…07bdc0             73 65 74 20 6f 66 3e 20 3c 74 79 70 65 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 73   ┆set of> <type>  *) (* code: ends┆
0x07bdc0…07bde0             65 74 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 73 65 74 3b 0a 0a 36 31 33 3a   ┆et  *) codeword:= cendset;  613:┆
0x07bde0…07be00             20 20 28 2a 20 3c 70 6f 6f 6c 20 74 79 70 65 3e 20 3a 3a 3d 20 3c 70 6f 6f 6c 3e 20 3c 65 78 70   ┆  (* <pool type> ::= <pool> <exp┆
0x07be00…07be20 (33, 0, 2)  72 65 73 73 69 6f 6e 3e 20 3c 74 79 70 65 20 73 69 7a 65 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65   ┆ression> <type size>  *) (* code┆
0x07be20…07be40             3a 20 65 6e 64 70 6f 6f 6c 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 70 6f 6f   ┆: endpool  *) codeword:= cendpoo┆
0x07be40…07be60             6c 3b 0a 0a 36 31 34 3a 20 20 28 2a 20 3c 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 3e 20 3a   ┆l;  614:  (* <structured type> :┆
0x07be60…07be80             3a 3d 20 3c 70 61 63 6b 65 64 3e 20 3c 75 6e 70 61 63 6b 65 64 20 73 74 72 75 63 74 75 72 65 64   ┆:= <packed> <unpacked structured┆
0x07be80…07bea0             20 74 79 70 65 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 70 61 63 6b 65 64 20 20 2a 29 0a 63 6f   ┆ type> *) (* code: packed  *) co┆
0x07bea0…07bec0             64 65 77 6f 72 64 3a 3d 20 63 70 61 63 6b 65 64 3b 0a 0a 36 31 35 3a 20 20 28 2a 20 3c 61 72 72   ┆deword:= cpacked;  615:  (* <arr┆
0x07bec0…07bee0             61 79 20 74 79 70 65 3e 20 3a 3a 3d 20 3c 61 72 72 61 79 20 73 74 61 72 74 3e 20 3c 74 79 70 65   ┆ay type> ::= <array start> <type┆
0x07bee0…07bf00             3e 20 3c 63 6f 6d 70 6f 6e 65 6e 74 20 74 79 70 65 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20   ┆> <component type>  *) (* code: ┆
0x07bf00…07bf20             65 6e 64 61 72 72 61 79 20 20 2a 29 0a 62 65 67 69 6e 0a 66 6f 72 20 73 74 65 70 76 61 72 3a 3d   ┆endarray  *) begin for stepvar:=┆
0x07bf20…07bf40             20 31 20 74 6f 20 64 69 6d 65 6e 73 69 6f 6e 5f 63 6f 75 6e 74 20 64 6f 0a 65 6d 69 74 63 6f 64   ┆ 1 to dimension_count do emitcod┆
0x07bf40…07bf60             65 28 63 65 6e 64 61 72 72 61 79 29 3b 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 61 72 72   ┆e(cendarray); codeword:= cendarr┆
0x07bf60…07bf80             61 79 3b 0a 65 6e 64 3b 0a 0a 36 31 37 3a 20 20 28 2a 20 3c 74 79 70 65 20 64 65 66 69 6e 69 74   ┆ay; end;  617:  (* <type definit┆
0x07bf80…07bfa0             69 6f 6e 3e 20 3a 3a 3d 20 3c 74 79 70 65 20 6e 61 6d 65 3e 20 3b 20 2a 29 0a 28 2a 20 63 6f 64   ┆ion> ::= <type name> ; *) (* cod┆
0x07bfa0…07bfc0             65 3a 20 6e 65 77 74 79 70 65 20 66 6f 72 77 61 72 64 70 6f 69 6e 74 65 72 20 65 6e 64 74 79 70   ┆e: newtype forwardpointer endtyp┆
0x07bfc0…07bfe0             65 64 65 63 6c 20 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 28 63 6e 65 77 74 79 70 65 2c 20 6e 69   ┆edecl *) begin emit(cnewtype, ni┆
0x07bfe0…07c000             6c 6c 2c 20 6e 69 6c 6c 2c 20 63 66 6f 72 77 61 72 64 70 6f 69 6e 74 65 72 29 3b 0a 63 6f 64 65   ┆ll, nill, cforwardpointer); code┆
0x07c000…07c020 (33, 0, 3)  77 6f 72 64 3a 3d 20 63 65 6e 64 74 79 70 65 64 65 63 6c 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20   ┆word:= cendtypedecl; end;  end; ┆
0x07c020…07c040             28 2a 20 63 61 73 65 20 36 30 31 2e 2e 36 31 39 20 2a 29 0a 0a 69 66 20 28 70 72 6f 64 3e 3d 36   ┆(* case 601..619 *)  if (prod>=6┆
0x07c040…07c060             30 33 29 20 61 6e 64 20 28 70 72 6f 64 3c 36 31 30 29 20 74 68 65 6e 0a 69 66 20 28 6c 61 73 74   ┆03) and (prod<610) then if (last┆
0x07c060…07c080             62 75 66 66 65 72 65 64 3e 30 29 20 61 6e 64 20 28 61 74 74 73 74 61 63 6b 5b 20 6e 65 77 74 6f   ┆buffered>0) and (attstack[ newto┆
0x07c080…07c0a0             70 2d 31 20 5d 2e 62 75 66 66 65 72 73 74 61 72 74 3d 33 29 20 74 68 65 6e 0a 28 2a 20 69 2e 65   ┆p-1 ].bufferstart=3) then (* i.e┆
0x07c0a0…07c0c0             2e 20 69 66 20 61 6e 79 74 68 69 6e 67 20 62 75 66 66 65 72 65 64 20 61 6e 64 20 3c 74 79 70 65   ┆. if anything buffered and <type┆
0x07c0c0…07c0e0             3e 20 69 73 20 74 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 69 6e 63 61 72 6e 61 74 69 6f 6e 20 2a   ┆> is the outermost incarnation *┆
0x07c0e0…07c100             29 0a 65 6d 69 74 5f 74 79 70 65 62 75 66 66 65 72 3b 0a 0a 65 6d 69 74 63 6f 64 65 28 63 6f 64   ┆) emit_typebuffer;  emitcode(cod┆
0x07c100…07c120             65 77 6f 72 64 29 3b 0a 0a 65 6e 64 3b 20 28 2a 20 69 66 20 2e 2e 2e 2e 20 2a 29 0a 0a 69 66 20   ┆eword);  end; (* if .... *)  if ┆
0x07c120…07c140             28 70 72 6f 64 3e 3d 36 32 30 29 20 61 6e 64 20 28 70 72 6f 64 3c 36 33 30 29 20 74 68 65 6e 0a   ┆(prod>=620) and (prod<630) then ┆
0x07c140…07c160             62 65 67 69 6e 0a 63 61 73 65 20 70 72 6f 64 20 6f 66 0a 0a 36 32 30 3a 20 20 28 2a 20 3c 75 70   ┆begin case prod of  620:  (* <up┆
0x07c160…07c180             61 72 72 6f 77 3e 20 3a 3a 3d 20 5e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6e 65 77 74 79 70   ┆arrow> ::= ^  *) (* code: newtyp┆
0x07c180…07c1a0             65 20 70 6f 69 6e 74 65 72 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 70 6f 69 6e 74 65   ┆e pointer  *) codeword:= cpointe┆
0x07c1a0…07c1c0             72 3b 0a 0a 36 32 31 3a 20 20 28 2a 20 3c 73 74 61 72 74 73 63 61 6c 61 72 3e 20 3a 3a 3d 20 28   ┆r;  621:  (* <startscalar> ::= (┆
0x07c1c0…07c1e0             20 6e 61 6d 65 20 2c 20 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6e 65 77 74 79 70 65 20 73 63   ┆ name ,   *) (* code: newtype sc┆
0x07c1e0…07c200             61 6c 61 72 20 20 2a 29 0a 28 2a 20 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 28 20 73   ┆alar  *) (*       declaration( s┆
0x07c200…07c220 (33, 0, 4)  63 61 6c 61 72 65 6c 65 6d 20 29 20 20 20 61 6e 64 20 20 2a 29 0a 28 2a 20 20 20 64 65 63 6c 61   ┆calarelem )   and  *) (*   decla┆
0x07c220…07c240             72 65 6c 69 73 74 28 20 6e 61 6d 65 20 29 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 61 66 74 65   ┆relist( name ) is generated afte┆
0x07c240…07c260             72 20 74 68 65 20 63 61 73 65 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 63 6f 64 65 77 6f 72 64   ┆r the case statement *) codeword┆
0x07c260…07c280             3a 3d 20 63 73 63 61 6c 61 72 3b 0a 0a 36 32 32 3a 20 20 28 2a 20 3c 72 65 61 64 20 6f 6e 6c 79   ┆:= cscalar;  622:  (* <read only┆
0x07c280…07c2a0             3e 20 3a 3a 3d 20 20 21 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6e 65 77 74 79 70 65 20 72 65   ┆> ::=  !  *) (* code: newtype re┆
0x07c2a0…07c2c0             61 64 6f 6e 6c 79 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 72 65 61 64 6f 6e 6c 79 3b 0a   ┆adonly *) codeword:= creadonly; ┆
0x07c2c0…07c2e0             0a 36 32 33 3a 20 20 28 2a 20 3c 61 72 72 61 79 3e 20 3a 3a 3d 20 61 72 72 61 79 20 28 20 2a 29   ┆ 623:  (* <array> ::= array ( *)┆
0x07c2e0…07c300             0a 20 20 28 2a 20 3c 6e 65 77 20 64 69 6d 65 6e 73 69 6f 6e 3e 20 3a 3a 3d 20 2c 20 2a 29 0a 28   ┆   (* <new dimension> ::= , *) (┆
0x07c300…07c320             2a 20 63 6f 64 65 3a 20 6e 65 77 74 79 70 65 20 61 72 72 61 79 20 20 2a 29 0a 63 6f 64 65 77 6f   ┆* code: newtype array  *) codewo┆
0x07c320…07c340             72 64 3a 3d 20 63 61 72 72 61 79 3b 0a 0a 36 32 34 3a 20 20 28 2a 20 3c 72 65 63 6f 72 64 3e 20   ┆rd:= carray;  624:  (* <record> ┆
0x07c340…07c360             3a 3a 3d 20 72 65 63 6f 72 64 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6e 65 77 74 79 70 65 20   ┆::= record  *) (* code: newtype ┆
0x07c360…07c380             72 65 63 6f 72 64 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 72 65 63 6f 72 64 3b 0a 0a 36   ┆record *) codeword:= crecord;  6┆
0x07c380…07c3a0             32 35 3a 20 20 28 2a 20 3c 73 65 74 20 6f 66 3e 20 3a 3a 3d 20 73 65 74 20 3c 6f 66 3e 20 20 2a   ┆25:  (* <set of> ::= set <of>  *┆
0x07c3a0…07c3c0             29 0a 28 2a 20 63 6f 64 65 3a 20 6e 65 77 74 79 70 65 20 73 65 74 20 20 2a 29 0a 77 69 74 68 20   ┆) (* code: newtype set  *) with ┆
0x07c3c0…07c3e0             61 74 74 73 74 61 63 6b 5b 20 6e 65 77 74 6f 70 2d 31 20 5d 20 28 2a 20 61 74 74 73 74 61 63 6b   ┆attstack[ newtop-1 ] (* attstack┆
0x07c3e0…07c400             28 20 3d 2f 3a 20 29 20 2a 29 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 62 75 66 66 65 72 5b 20   ┆( =/: ) *) do begin typebuffer[ ┆
0x07c400…07c420 (33, 0, 5)  62 75 66 66 65 72 73 74 61 72 74 2d 32 20 5d 3a 3d 20 6f 72 64 28 63 6e 65 77 74 79 70 65 29 3b   ┆bufferstart-2 ]:= ord(cnewtype);┆
0x07c420…07c440             0a 74 79 70 65 62 75 66 66 65 72 5b 20 62 75 66 66 65 72 73 74 61 72 74 2d 31 20 5d 3a 3d 20 6f   ┆ typebuffer[ bufferstart-1 ]:= o┆
0x07c440…07c460             72 64 28 63 73 65 74 29 3b 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 2a 29 0a 0a 36 32 36 3a 20   ┆rd(cset); end; (* with *)  626: ┆
0x07c460…07c480             20 28 2a 20 3c 70 6f 6f 6c 3e 20 3a 3a 3d 20 70 6f 6f 6c 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a   ┆ (* <pool> ::= pool  *) (* code:┆
0x07c480…07c4a0             20 6e 65 77 74 79 70 65 20 70 6f 6f 6c 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 70 6f   ┆ newtype pool  *) codeword:= cpo┆
0x07c4a0…07c4c0             6f 6c 3b 0a 0a 36 32 37 3a 20 20 28 2a 20 3c 65 78 74 65 72 6e 61 6c 20 74 79 70 65 3e 20 3a 3a   ┆ol;  627:  (* <external type> ::┆
0x07c4c0…07c4e0             3d 20 65 78 74 65 72 6e 61 6c 20 20 70 72 6f 63 65 73 73 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20   ┆= external  process *) (* code: ┆
0x07c4e0…07c500             6e 65 77 74 79 70 65 20 65 78 74 70 72 6f 63 65 73 73 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a   ┆newtype extprocess  *) codeword:┆
0x07c500…07c520             3d 20 63 65 78 74 70 72 6f 63 65 73 73 3b 0a 0a 36 32 38 3a 20 28 2a 20 3c 70 61 63 6b 65 64 3e   ┆= cextprocess;  628: (* <packed>┆
0x07c520…07c540             20 3a 3a 3d 20 70 61 63 6b 65 64 20 2a 29 0a 28 2a 20 6e 6f 20 63 6f 64 65 20 61 63 74 69 6f 6e   ┆ ::= packed *) (* no code action┆
0x07c540…07c560             2c 20 73 74 6f 70 20 74 79 70 65 20 62 75 66 66 65 72 69 6e 67 20 2a 29 0a 3b 0a 0a 65 6e 64 3b   ┆, stop type buffering *) ;  end;┆
0x07c560…07c580             20 28 2a 20 63 61 73 65 20 2e 2e 20 2a 29 0a 0a 69 66 20 28 2a 20 3c 73 65 74 20 6f 66 3e 20 3a   ┆ (* case .. *)  if (* <set of> :┆
0x07c580…07c5a0             3a 3d 20 73 65 74 20 3c 6f 66 3e 20 2a 29 20 70 72 6f 64 3d 36 32 35 20 74 68 65 6e 0a 28 2a 20   ┆:= set <of> *) prod=625 then (* ┆
0x07c5a0…07c5c0             6d 6f 76 65 20 62 75 66 66 65 72 20 73 74 61 72 74 20 66 72 6f 6d 20 61 74 74 73 74 61 63 6b 28   ┆move buffer start from attstack(┆
0x07c5c0…07c5e0             3c 6f 66 3e 29 20 74 6f 20 61 74 74 73 74 61 63 6b 3c 73 65 74 20 6f 66 3e 29 20 2a 29 0a 61 74   ┆<of>) to attstack<set of>) *) at┆
0x07c5e0…07c600             74 73 74 61 63 6b 5b 20 6e 65 77 74 6f 70 20 5d 2e 62 75 66 66 65 72 73 74 61 72 74 3a 3d 20 61   ┆tstack[ newtop ].bufferstart:= a┆
0x07c600…07c620 (33, 0, 6)  74 74 73 74 61 63 6b 5b 20 6f 6c 64 74 6f 70 20 5d 2e 62 75 66 66 65 72 73 74 61 72 74 0a 65 6c   ┆ttstack[ oldtop ].bufferstart el┆
0x07c620…07c640             73 65 0a 69 66 20 28 6c 61 73 74 62 75 66 66 65 72 65 64 3e 30 29 20 61 6e 64 20 28 61 74 74 73   ┆se if (lastbuffered>0) and (atts┆
0x07c640…07c660             74 61 63 6b 5b 20 6e 65 77 74 6f 70 2d 31 20 5d 2e 62 75 66 66 65 72 73 74 61 72 74 3d 33 29 20   ┆tack[ newtop-1 ].bufferstart=3) ┆
0x07c660…07c680             74 68 65 6e 0a 28 2a 20 69 2e 65 2e 20 69 66 20 61 6e 79 74 68 69 6e 67 20 62 75 66 66 65 72 65   ┆then (* i.e. if anything buffere┆
0x07c680…07c6a0             64 20 61 6e 64 20 3c 74 79 70 65 3e 20 69 73 20 6b 6e 6f 77 6e 20 6e 6f 74 20 74 6f 20 62 65 20   ┆d and <type> is known not to be ┆
0x07c6a0…07c6c0             73 75 62 72 61 6e 67 65 20 20 2a 29 0a 28 2a 20 74 68 65 6e 20 73 74 6f 70 20 62 75 66 66 65 72   ┆subrange  *) (* then stop buffer┆
0x07c6c0…07c6e0             69 6e 67 20 2a 29 0a 65 6d 69 74 5f 74 79 70 65 62 75 66 66 65 72 3b 0a 0a 69 66 20 28 28 2a 20   ┆ing *) emit_typebuffer;  if ((* ┆
0x07c6e0…07c700             6e 6f 74 20 3c 70 61 63 6b 65 64 3e 20 3a 3a 3d 20 70 61 63 6b 65 64 20 2a 29 20 70 72 6f 64 3c   ┆not <packed> ::= packed *) prod<┆
0x07c700…07c720             3e 36 32 38 29 20 61 6e 64 0a 28 28 2a 20 6e 6f 74 20 3c 73 65 74 20 6f 66 3e 3a 3a 3d 20 73 65   ┆>628) and ((* not <set of>::= se┆
0x07c720…07c740             74 20 3c 6f 66 3e 20 2a 29 20 70 72 6f 64 3c 3e 36 32 35 29 20 74 68 65 6e 0a 65 6d 69 74 28 63   ┆t <of> *) prod<>625) then emit(c┆
0x07c740…07c760             6e 65 77 74 79 70 65 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 6f 64 65 77 6f 72 64 29 3b 0a   ┆newtype, nill, nill, codeword); ┆
0x07c760…07c780             0a 69 66 20 28 2a 20 73 63 61 6c 61 72 6c 69 73 74 20 73 74 61 72 74 20 2a 29 20 70 72 6f 64 3d   ┆ if (* scalarlist start *) prod=┆
0x07c780…07c7a0             36 32 31 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 6d 69 74 28 63 64 65 63 6c 61 72 61 74 69 6f 6e   ┆621 then begin emit(cdeclaration┆
0x07c7a0…07c7c0             2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 73 63 61 6c 61 72 65 6c 65 6d 20 29 3b 0a 6f 6c 64   ┆, nill, nill, cscalarelem ); old┆
0x07c7c0…07c7e0             74 6f 70 3a 3d 20 6f 6c 64 74 6f 70 2d 31 20 3b 20 28 2a 20 6c 65 74 20 6f 6c 64 74 6f 70 20 64   ┆top:= oldtop-1 ; (* let oldtop d┆
0x07c7e0…07c800             65 6e 6f 74 65 20 6e 61 6d 65 20 2a 29 0a 6e 61 6d 65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 6f   ┆enote name *) name:= readname; o┆
0x07c800…07c820 (33, 0, 7)  6c 64 74 6f 70 3a 3d 20 6f 6c 64 74 6f 70 2b 31 3b 20 28 2a 20 72 65 73 65 74 20 6f 6c 64 74 6f   ┆ldtop:= oldtop+1; (* reset oldto┆
0x07c820…07c840             70 20 2a 29 0a 6e 61 6d 65 73 70 69 78 3a 3d 20 73 65 61 72 63 68 6e 61 6d 65 28 6e 61 6d 65 29   ┆p *) namespix:= searchname(name)┆
0x07c840…07c860             3b 0a 65 6d 69 74 64 65 63 6c 61 72 65 28 64 65 63 6c 6c 69 73 74 2c 20 6e 61 6d 65 73 70 69 78   ┆; emitdeclare(decllist, namespix┆
0x07c860…07c880             29 3b 0a 65 6e 64 3b 20 28 2a 20 73 74 61 72 74 20 73 63 61 6c 61 72 20 2a 29 0a 0a 65 6e 64 3b   ┆); end; (* start scalar *)  end;┆
0x07c880…07c8a0             20 28 2a 20 36 32 30 2e 2e 36 32 39 20 2a 29 0a 0a 69 66 20 28 70 72 6f 64 3e 3d 36 33 30 29 20   ┆ (* 620..629 *)  if (prod>=630) ┆
0x07c8a0…07c8c0             61 6e 64 20 28 70 72 6f 64 3c 3d 36 33 39 29 20 74 68 65 6e 0a 63 61 73 65 20 70 72 6f 64 20 6f   ┆and (prod<=639) then case prod o┆
0x07c8c0…07c8e0             66 0a 36 33 32 3a 20 20 28 2a 20 3c 73 74 61 72 74 20 73 65 63 74 69 6f 6e 3e 20 3a 3a 3d 20 65   ┆f 632:  (* <start section> ::= e┆
0x07c8e0…07c900             6d 70 74 79 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72 61 74 69 6f 6e 28 20 72   ┆mpty  *) (* code: declaration( r┆
0x07c900…07c920             65 63 66 69 65 6c 64 20 29 20 20 2a 29 0a 65 6d 69 74 28 63 64 65 63 6c 61 72 61 74 69 6f 6e 2c   ┆ecfield )  *) emit(cdeclaration,┆
0x07c920…07c940             20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 72 65 63 66 69 65 6c 64 29 3b 0a 0a 36 33 35 3a 20 20   ┆ nill, nill, crecfield);  635:  ┆
0x07c940…07c960             28 2a 20 3c 74 79 70 65 20 73 69 7a 65 3e 20 3a 3a 3d 20 65 6d 70 74 79 20 2a 29 0a 28 2a 20 63   ┆(* <type size> ::= empty *) (* c┆
0x07c960…07c980             6f 64 65 3a 20 77 69 74 68 6f 75 74 5f 64 61 74 61 20 2a 29 0a 28 2a 20 63 6f 64 65 20 66 6f 72   ┆ode: without_data *) (* code for┆
0x07c980…07c9a0             20 61 20 70 6f 6f 6c 20 6f 66 20 68 65 61 64 65 72 73 2c 20 69 2e 65 2e 20 77 69 74 68 6f 75 74   ┆ a pool of headers, i.e. without┆
0x07c9a0…07c9c0             20 64 61 74 61 20 70 61 72 74 73 20 2a 29 0a 65 6d 69 74 63 6f 64 65 28 63 77 69 74 68 6f 75 74   ┆ data parts *) emitcode(cwithout┆
0x07c9c0…07c9e0             5f 64 61 74 61 29 3b 0a 0a 36 33 36 3a 20 20 28 2a 20 3c 63 6f 6d 70 6f 6e 65 6e 74 20 74 79 70   ┆_data);  636:  (* <component typ┆
0x07c9e0…07ca00             65 3e 20 3a 3a 3d 20 29 20 3c 6f 66 20 74 79 70 65 3e 20 3c 74 79 70 65 3e 20 2a 29 0a 28 2a 20   ┆e> ::= ) <of type> <type> *) (* ┆
0x07ca00…07ca20 (33, 0, 8)  61 63 74 69 6f 6e 3a 20 69 6e 69 74 69 61 6c 69 7a 65 20 64 69 6d 65 6e 73 69 6f 6e 20 63 6f 75   ┆action: initialize dimension cou┆
0x07ca20…07ca40             6e 74 20 2a 29 0a 62 65 67 69 6e 0a 64 69 6d 65 6e 73 69 6f 6e 5f 63 6f 75 6e 74 3a 3d 20 30 3b   ┆nt *) begin dimension_count:= 0;┆
0x07ca40…07ca60             0a 65 6e 64 3b 0a 0a 36 33 37 3a 20 20 28 2a 20 3c 63 6f 6d 70 6f 6e 65 6e 74 20 74 79 70 65 3e   ┆ end;  637:  (* <component type>┆
0x07ca60…07ca80             20 3a 3a 3d 20 3c 6e 65 77 20 64 69 6d 65 6e 73 69 6f 6e 3e 20 3c 74 79 70 65 3e 20 3c 63 6f 6d   ┆ ::= <new dimension> <type> <com┆
0x07ca80…07caa0             70 6f 6e 65 6e 74 20 74 79 70 65 3e 20 2a 29 0a 28 2a 20 61 63 74 69 6f 6e 3a 20 69 6e 63 72 65   ┆ponent type> *) (* action: incre┆
0x07caa0…07cac0             61 73 65 20 64 69 6d 65 6e 73 69 6f 6e 20 63 6f 75 6e 74 20 2a 29 0a 64 69 6d 65 6e 73 69 6f 6e   ┆ase dimension count *) dimension┆
0x07cac0…07cae0             5f 63 6f 75 6e 74 3a 3d 20 64 69 6d 65 6e 73 69 6f 6e 5f 63 6f 75 6e 74 2b 31 3b 0a 0a 0a 65 6e   ┆_count:= dimension_count+1;   en┆
0x07cae0…07cb00             64 3b 20 28 2a 20 63 61 73 65 20 20 36 33 30 2e 2e 36 33 39 20 2a 29 0a 0a 0a 69 66 20 70 72 6f   ┆d; (* case  630..639 *)   if pro┆
0x07cb00…07cb20             64 3d 36 30 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 3c 74 79 70 65 20 6e 61 6d 65 3e 20   ┆d=600 then begin (* <type name> ┆
0x07cb20…07cb40             3a 3a 3d 20 6e 61 6d 65 20 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72 61 74 69   ┆::= name   *) (* code: declarati┆
0x07cb40…07cb60             6f 6e 28 20 74 79 70 65 20 29 20 20 64 65 63 6c 61 72 65 28 20 73 70 69 78 20 29 20 20 20 20 20   ┆on( type )  declare( spix )     ┆
0x07cb60…07cb80             2a 29 0a 6e 61 6d 65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 6e 61 6d 65 73 70 69 78 3a 3d 20 73   ┆*) name:= readname; namespix:= s┆
0x07cb80…07cba0             65 61 72 63 68 6e 61 6d 65 28 6e 61 6d 65 29 3b 0a 65 6d 69 74 28 20 63 64 65 63 6c 61 72 61 74   ┆earchname(name); emit( cdeclarat┆
0x07cba0…07cbc0             69 6f 6e 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 74 79 70 65 29 3b 0a 65 6d 69 74 64 65 63   ┆ion, nill, nill, ctype); emitdec┆
0x07cbc0…07cbe0             6c 61 72 65 28 64 65 63 6c 2c 20 6e 61 6d 65 73 70 69 78 29 3b 0a 65 6e 64 3b 20 20 28 2a 20 36   ┆lare(decl, namespix); end;  (* 6┆
0x07cbe0…07cc00             30 30 20 20 2a 29 0a 0a 28 2a 20 69 66 20 62 65 66 6f 72 65 20 3c 74 79 70 65 3e 20 74 68 65 6e   ┆00  *)  (* if before <type> then┆
0x07cc00…07cc20 (33, 0, 9)  20 2a 29 0a 69 66 20 28 70 72 6f 64 3d 36 30 32 29 20 6f 72 20 28 70 72 6f 64 3d 36 32 30 29 20   ┆ *) if (prod=602) or (prod=620) ┆
0x07cc20…07cc40             6f 72 20 28 70 72 6f 64 3d 36 32 32 29 20 6f 72 20 28 70 72 6f 64 3d 36 32 33 29 20 6f 72 20 28   ┆or (prod=622) or (prod=623) or (┆
0x07cc40…07cc60             70 72 6f 64 3d 36 34 30 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 76 6f 69 64 20 64   ┆prod=640) then begin  (* avoid d┆
0x07cc60…07cc80             65 73 74 72 6f 79 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 6d 61 72 6b 20 62 65 63 61 75 73 65   ┆estroying the buffermark because┆
0x07cc80…07cca0             20 6f 66 20 6e 65 77 6c 69 6e 65 2c 20 69 2e 65 2e 20 74 68 65 20 6e 65 77 6c 69 6e 65 0a 63 6f   ┆ of newline, i.e. the newline co┆
0x07cca0…07ccc0             64 65 73 20 61 72 65 20 67 65 6e 65 72 61 74 65 64 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 74 68   ┆des are generated in front of th┆
0x07ccc0…07cce0             65 20 6d 61 72 6b 65 64 20 63 6f 64 65 73 20 69 6e 20 73 74 65 61 64 20 6f 66 20 74 68 65 0a 28   ┆e marked codes in stead of the (┆
0x07cce0…07cd00             72 61 6e 64 6f 6d 29 20 70 6c 61 63 65 73 20 77 68 65 72 65 20 74 68 65 20 6e 65 77 6c 69 6e 65   ┆random) places where the newline┆
0x07cd00…07cd20             73 20 61 72 65 20 6d 65 74 20 2a 29 0a 65 6d 69 74 28 63 6e 65 77 6c 69 6e 65 2c 20 6c 69 6e 65   ┆s are met *) emit(cnewline, line┆
0x07cd20…07cd40             6e 75 6d 62 65 72 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 0a 74 79 70 65 62 75 66   ┆number, nill, cnocode);  typebuf┆
0x07cd40…07cd60             66 65 72 66 6c 61 67 3a 3d 20 74 72 75 65 3b 0a 69 66 20 6c 61 73 74 62 75 66 66 65 72 65 64 2b   ┆ferflag:= true; if lastbuffered+┆
0x07cd60…07cd80             33 3e 74 79 70 65 62 75 66 66 65 72 73 69 7a 65 20 74 68 65 6e 0a 73 74 6f 70 28 20 31 32 20 29   ┆3>typebuffersize then stop( 12 )┆
0x07cd80…07cda0             3b 0a 0a 74 79 70 65 62 75 66 66 65 72 5b 20 6c 61 73 74 62 75 66 66 65 72 65 64 2b 31 20 5d 3a   ┆;  typebuffer[ lastbuffered+1 ]:┆
0x07cda0…07cdc0             3d 20 6e 69 6c 6c 3b 0a 74 79 70 65 62 75 66 66 65 72 5b 20 6c 61 73 74 62 75 66 66 65 72 65 64   ┆= nill; typebuffer[ lastbuffered┆
0x07cdc0…07cde0             2b 32 20 5d 3a 3d 20 6e 69 6c 6c 3b 20 28 2a 20 72 65 73 65 72 76 65 20 72 6f 6f 6d 20 66 6f 72   ┆+2 ]:= nill; (* reserve room for┆
0x07cde0…07ce00             20 61 20 70 6f 73 73 69 62 6c 65 20 6e 65 77 74 79 70 65 20 2e 2e 20 2a 29 0a 6c 61 73 74 62 75   ┆ a possible newtype .. *) lastbu┆
0x07ce00…07ce20 (33, 0, 10) 66 66 65 72 65 64 3a 3d 20 6c 61 73 74 62 75 66 66 65 72 65 64 2b 32 3b 0a 61 74 74 73 74 61 63   ┆ffered:= lastbuffered+2; attstac┆
0x07ce20…07ce40             6b 5b 20 6e 65 77 74 6f 70 20 5d 20 2e 20 62 75 66 66 65 72 73 74 61 72 74 3a 3d 20 6c 61 73 74   ┆k[ newtop ] . bufferstart:= last┆
0x07ce40…07ce60             62 75 66 66 65 72 65 64 2b 31 3b 0a 65 6e 64 3b 0a 0a 0a 65 6e 64 3b 20 20 20 28 2a 20 73 65 63   ┆buffered+1; end;   end;   (* sec┆
0x07ce60…07ce80             74 69 6f 6e 20 36 20 20 2a 29 0a 0a 0c 0a 70 72 6f 63 65 64 75 72 65 20 76 61 72 69 61 62 6c 65   ┆tion 6  *)    procedure variable┆
0x07ce80…07cea0             64 65 66 69 6e 69 74 69 6f 6e 3b 0a 28 2a 20 73 65 63 74 69 6f 6e 20 37 20 2a 29 0a 0a 76 61 72   ┆definition; (* section 7 *)  var┆
0x07cea0…07cec0             0a 6e 61 6d 65 20 3a 20 6e 61 6d 65 68 65 61 64 70 74 72 3b 0a 6e 61 6d 65 73 70 69 78 20 3a 20   ┆ name : nameheadptr; namespix : ┆
0x07cec0…07cee0             69 6e 74 65 67 65 72 3b 0a 0a 62 65 67 69 6e 0a 63 61 73 65 20 70 72 6f 64 20 6f 66 0a 0a 37 30   ┆integer;  begin case prod of  70┆
0x07cee0…07cf00             30 3a 20 20 28 2a 20 3c 73 74 61 72 74 20 76 61 72 3e 20 3a 3a 3d 20 65 6d 70 74 79 20 20 2a 29   ┆0:  (* <start var> ::= empty  *)┆
0x07cf00…07cf20             0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72 61 74 69 6f 6e 28 20 76 61 72 20 29 20 20 2a 29   ┆ (* code: declaration( var )  *)┆
0x07cf20…07cf40             0a 65 6d 69 74 28 63 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20   ┆ emit(cdeclaration, nill, nill, ┆
0x07cf40…07cf60             63 76 61 72 29 3b 0a 0a 37 30 31 2c 20 20 28 2a 20 3c 69 64 65 6e 74 3e 20 3a 3a 3d 20 6e 61 6d   ┆cvar);  701,  (* <ident> ::= nam┆
0x07cf60…07cf80             65 20 20 2a 29 0a 37 30 34 3a 20 20 28 2a 20 20 20 20 20 20 20 20 20 21 20 20 3f 20 20 20 20 20   ┆e  *) 704:  (*         !  ?     ┆
0x07cf80…07cfa0             20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72 65 6c 69 73 74 28 20 73 70 69 78 20 29   ┆ *) (* code: declarelist( spix )┆
0x07cfa0…07cfc0             20 2a 29 0a 62 65 67 69 6e 0a 69 66 20 70 72 6f 64 3d 37 30 31 20 74 68 65 6e 0a 62 65 67 69 6e   ┆ *) begin if prod=701 then begin┆
0x07cfc0…07cfe0             0a 6e 61 6d 65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 6e 61 6d 65 73 70 69 78 3a 3d 20 73 65 61   ┆ name:= readname; namespix:= sea┆
0x07cfe0…07d000             72 63 68 6e 61 6d 65 28 6e 61 6d 65 29 3b 0a 65 6e 64 0a 65 6c 73 65 0a 6e 61 6d 65 73 70 69 78   ┆rchname(name); end else namespix┆
0x07d000…07d020 (33, 0, 11) 3a 3d 20 61 6e 6f 6e 79 6d 6f 75 73 73 70 69 78 3b 0a 65 6d 69 74 64 65 63 6c 61 72 65 28 64 65   ┆:= anonymousspix; emitdeclare(de┆
0x07d020…07d040             63 6c 6c 69 73 74 2c 20 6e 61 6d 65 73 70 69 78 29 3b 0a 65 6e 64 3b 0a 0a 37 30 32 3a 20 20 28   ┆cllist, namespix); end;  702:  (┆
0x07d040…07d060             2a 20 3c 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 3e 20 3a 3a 3d 20 3a 3d 20 3c 65 78 70 72 65   ┆* <initialization> ::= := <expre┆
0x07d060…07d080             73 73 69 6f 6e 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 69 6e 69 74 20 20 20 2a 29 0a 65 6d 69   ┆ssion> *) (* code: init   *) emi┆
0x07d080…07d0a0             74 63 6f 64 65 28 63 69 6e 69 74 29 3b 0a 0a 37 30 33 3a 20 20 28 2a 20 3c 76 61 72 20 64 65 63   ┆tcode(cinit);  703:  (* <var dec┆
0x07d0a0…07d0c0             6c 3e 20 3a 3a 3d 20 3c 73 74 61 72 74 20 76 61 72 3e 20 3c 69 64 65 6e 74 69 66 69 65 72 20 6c   ┆l> ::= <start var> <identifier l┆
0x07d0c0…07d0e0             69 73 74 3e 20 3c 74 79 70 65 20 61 6e 64 20 69 6e 69 74 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a   ┆ist> <type and init> *) (* code:┆
0x07d0e0…07d100             20 20 65 6e 64 76 61 72 64 65 63 6c 20 20 2a 29 0a 65 6d 69 74 63 6f 64 65 28 63 65 6e 64 76 61   ┆  endvardecl  *) emitcode(cendva┆
0x07d100…07d120             72 64 65 63 6c 29 3b 0a 0a 37 30 35 3a 20 20 28 2a 20 3c 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f   ┆rdecl);  705:  (* <initializatio┆
0x07d120…07d140             6e 3e 20 3a 3a 3d 20 65 6d 70 74 79 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6e 6f 69 6e 69 74   ┆n> ::= empty  *) (* code: noinit┆
0x07d140…07d160             20 20 2a 29 0a 65 6d 69 74 63 6f 64 65 28 63 6e 6f 69 6e 69 74 29 3b 0a 0a 0a 65 6e 64 3b 20 28   ┆  *) emitcode(cnoinit);   end; (┆
0x07d160…07d180             2a 20 63 61 73 65 20 2e 2e 2e 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 73 65 63 74 69 6f 6e 20 37   ┆* case ... *)  end; (* section 7┆
0x07d180…07d1a0             20 2a 29 0a 0a 70 72 6f 63 65 64 75 72 65 20 65 78 70 72 65 73 73 69 6f 6e 3b 0a 28 2a 20 73 65   ┆ *)  procedure expression; (* se┆
0x07d1a0…07d1c0             63 74 69 6f 6e 20 38 20 2a 29 0a 0a 76 61 72 0a 63 6f 64 65 77 6f 72 64 31 2c 20 63 6f 64 65 77   ┆ction 8 *)  var codeword1, codew┆
0x07d1c0…07d1e0             6f 72 64 32 20 3a 20 63 6f 64 65 73 3b 0a 76 61 72 5f 6f 72 5f 66 69 65 6c 64 5f 73 70 69 78 20   ┆ord2 : codes; var_or_field_spix ┆
0x07d1e0…07d200             3a 20 69 6e 74 65 67 65 72 3b 0a 6e 61 6d 65 20 3a 20 6e 61 6d 65 68 65 61 64 70 74 72 3b 0a 0a   ┆: integer; name : nameheadptr;  ┆
0x07d200…07d220 (33, 0, 12) 62 65 67 69 6e 0a 69 66 20 6e 6f 74 20 72 65 64 75 63 65 64 5f 69 6e 74 65 72 6d 65 64 69 61 74   ┆begin if not reduced_intermediat┆
0x07d220…07d240             65 5f 6c 61 6e 67 75 61 67 65 20 61 6e 64 20 28 70 72 6f 64 3c 3d 38 30 38 29 20 74 68 65 6e 20   ┆e_language and (prod<=808) then ┆
0x07d240…07d260             0a 63 6f 64 65 77 6f 72 64 32 3a 3d 20 63 65 6e 64 65 78 70 72 65 73 73 69 6f 6e 0a 65 6c 73 65   ┆ codeword2:= cendexpression else┆
0x07d260…07d280             0a 63 6f 64 65 77 6f 72 64 32 3a 3d 20 63 6e 6f 63 6f 64 65 3b 0a 76 61 72 5f 6f 72 5f 66 69 65   ┆ codeword2:= cnocode; var_or_fie┆
0x07d280…07d2a0             6c 64 5f 73 70 69 78 3a 3d 20 6e 69 6c 6c 3b 0a 0a 63 61 73 65 20 70 72 6f 64 20 6f 66 0a 38 30   ┆ld_spix:= nill;  case prod of 80┆
0x07d2a0…07d2c0             31 3a 20 20 28 2a 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73 69 6d 70 6c 65 20   ┆1:  (* <expression> ::= <simple ┆
0x07d2c0…07d2e0             65 78 70 72 65 73 73 69 6f 6e 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 65 78 70 72 65   ┆expression> *) (* code: endexpre┆
0x07d2e0…07d300             73 73 69 6f 6e 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 6e 6f 63 6f 64 65 3b 0a 0a   ┆ssion  *) codeword1:= cnocode;  ┆
0x07d300…07d320             38 30 32 3a 20 20 28 2a 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73 69 6d 70 6c   ┆802:  (* <expression> ::= <simpl┆
0x07d320…07d340             65 20 65 78 70 72 65 73 73 69 6f 6e 3e 3d 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e   ┆e expression>=<simple expression┆
0x07d340…07d360             3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 71 20 65 6e 64 65 78 70 72 65 73 73 69 6f 6e 20 20   ┆> *) (* code: eq endexpression  ┆
0x07d360…07d380             2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 65 71 3b 0a 0a 38 30 33 3a 20 20 28 2a 20 3c 65   ┆*) codeword1:= ceq;  803:  (* <e┆
0x07d380…07d3a0             78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f   ┆xpression> ::= <simple expressio┆
0x07d3a0…07d3c0             6e 3e 3c 3e 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20 2a 29 0a 28 2a 20 63 6f   ┆n><><simple expression> *) (* co┆
0x07d3c0…07d3e0             64 65 3a 20 6e 65 20 65 6e 64 65 78 70 72 65 73 73 69 6f 6e 20 2a 29 0a 63 6f 64 65 77 6f 72 64   ┆de: ne endexpression *) codeword┆
0x07d3e0…07d400             31 3a 3d 20 63 6e 65 3b 0a 0a 38 30 34 3a 20 20 28 2a 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20   ┆1:= cne;  804:  (* <expression> ┆
0x07d400…07d420 (33, 0, 13) 3a 3a 3d 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 3c 3c 73 69 6d 70 6c 65 20   ┆::= <simple expression><<simple ┆
0x07d420…07d440             65 78 70 72 65 73 73 69 6f 6e 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6c 74 20 65 6e 64 65   ┆expression>  *) (* code: lt ende┆
0x07d440…07d460             78 70 72 65 73 73 69 6f 6e 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 6c 74 3b 0a 0a   ┆xpression  *) codeword1:= clt;  ┆
0x07d460…07d480             38 30 35 3a 20 20 28 2a 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73 69 6d 70 6c   ┆805:  (* <expression> ::= <simpl┆
0x07d480…07d4a0             65 20 65 78 70 72 65 73 73 69 6f 6e 3e 3c 3d 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f   ┆e expression><=<simple expressio┆
0x07d4a0…07d4c0             6e 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6c 65 20 20 65 6e 64 65 78 70 72 65 73 73 69 6f   ┆n>  *) (* code: le  endexpressio┆
0x07d4c0…07d4e0             6e 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 6c 65 3b 0a 0a 38 30 36 3a 20 20 28 2a   ┆n  *) codeword1:= cle;  806:  (*┆
0x07d4e0…07d500             20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73   ┆ <expression> ::= <simple expres┆
0x07d500…07d520             73 69 6f 6e 3e 3e 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20 20 2a 29 0a 28 2a   ┆sion>><simple expression>  *) (*┆
0x07d520…07d540             20 63 6f 64 65 3a 20 67 74 20 65 6e 64 65 78 70 72 65 73 73 69 6f 6e 20 20 2a 29 0a 63 6f 64 65   ┆ code: gt endexpression  *) code┆
0x07d540…07d560             77 6f 72 64 31 3a 3d 20 63 67 74 3b 0a 0a 38 30 37 3a 20 20 28 2a 20 3c 65 78 70 72 65 73 73 69   ┆word1:= cgt;  807:  (* <expressi┆
0x07d560…07d580             6f 6e 3e 20 3a 3a 3d 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 3e 3d 3c 73 69   ┆on> ::= <simple expression>>=<si┆
0x07d580…07d5a0             6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 67 65 20   ┆mple expression> *) (* code: ge ┆
0x07d5a0…07d5c0             65 6e 64 65 78 70 72 65 73 73 69 6f 6e 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 67   ┆endexpression  *) codeword1:= cg┆
0x07d5c0…07d5e0             65 3b 0a 0a 38 30 38 3a 20 20 28 2a 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73   ┆e;  808:  (* <expression> ::= <s┆
0x07d5e0…07d600             69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20 69 6e 20 3c 73 69 6d 70 6c 65 20 65 78 70   ┆imple expression> in <simple exp┆
0x07d600…07d620 (33, 0, 14) 72 65 73 73 69 6f 6e 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 69 6e 20 65 6e 64 65 78 70 72   ┆ression>  *) (* code: in endexpr┆
0x07d620…07d640             65 73 73 69 6f 6e 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 69 6e 3b 0a 0a 38 31 30   ┆ession  *) codeword1:= cin;  810┆
0x07d640…07d660             3a 20 20 28 2a 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73   ┆:  (* <simple expression> ::= <s┆
0x07d660…07d680             69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 2b 3c 74 65 72 6d 3e 20 20 2a 29 0a 28 2a 20   ┆imple expression>+<term>  *) (* ┆
0x07d680…07d6a0             63 6f 64 65 3a 20 70 6c 75 73 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 70 6c 75 73   ┆code: plus  *) codeword1:= cplus┆
0x07d6a0…07d6c0             3b 0a 0a 38 31 31 3a 20 20 28 2a 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20   ┆;  811:  (* <simple expression> ┆
0x07d6c0…07d6e0             3a 3a 3d 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 2d 3c 74 65 72 6d 3e 20 20   ┆::= <simple expression>-<term>  ┆
0x07d6e0…07d700             2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6d 69 6e 75 73 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a   ┆*) (* code: minus  *) codeword1:┆
0x07d700…07d720             3d 20 63 6d 69 6e 75 73 3b 0a 0a 38 31 32 3a 20 20 28 2a 20 3c 73 69 6d 70 6c 65 20 65 78 70 72   ┆= cminus;  812:  (* <simple expr┆
0x07d720…07d740             65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20   ┆ession> ::= <simple expression> ┆
0x07d740…07d760             6f 72 20 3c 74 65 72 6d 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6f 72 20 20 2a 29 0a 63 6f   ┆or <term>  *) (* code: or  *) co┆
0x07d760…07d780             64 65 77 6f 72 64 31 3a 3d 20 63 6f 72 3b 0a 0a 38 31 33 3a 20 20 28 2a 20 3c 73 69 6d 70 6c 65   ┆deword1:= cor;  813:  (* <simple┆
0x07d780…07d7a0             20 65 78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 2b 3c 74 65 72 6d 3e 20 20 2a 29 0a 28 2a 20   ┆ expression> ::= +<term>  *) (* ┆
0x07d7a0…07d7c0             63 6f 64 65 3a 20 75 70 6c 75 73 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 75 70 6c   ┆code: uplus  *) codeword1:= cupl┆
0x07d7c0…07d7e0             75 73 3b 0a 0a 38 31 34 3a 20 20 28 2a 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e   ┆us;  814:  (* <simple expression┆
0x07d7e0…07d800             3e 20 3a 3a 3d 20 2d 3c 74 65 72 6d 3e 20 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 75 6d 69 6e   ┆> ::= -<term>   *) (* code: umin┆
0x07d800…07d820 (33, 0, 15) 75 73 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 75 6d 69 6e 75 73 3b 0a 0a 38 31 35   ┆us  *) codeword1:= cuminus;  815┆
0x07d820…07d840             3a 20 20 28 2a 20 3c 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20 3a 3a 3d 20 3c 73   ┆:  (* <simple expression> ::= <s┆
0x07d840…07d860             69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 3e 20 78 6f 72 20 3c 74 65 72 6d 3e 20 2a 29 0a   ┆imple expression> xor <term> *) ┆
0x07d860…07d880             28 2a 20 63 6f 64 65 3a 20 78 6f 72 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 78 6f 72   ┆(* code: xor *) codeword1:= cxor┆
0x07d880…07d8a0             3b 0a 0a 38 31 36 3a 20 20 28 2a 20 3c 74 65 72 6d 3e 20 3a 3a 3d 20 3c 74 65 72 6d 3e 20 2a 20   ┆;  816:  (* <term> ::= <term> * ┆
0x07d8a0…07d8c0             3c 66 61 63 74 6f 72 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 73 74 61 72 20 20 2a 29 0a 63   ┆<factor>  *) (* code: star  *) c┆
0x07d8c0…07d8e0             6f 64 65 77 6f 72 64 31 3a 3d 20 63 73 74 61 72 3b 0a 0a 38 31 37 3a 20 20 28 2a 20 3c 74 65 72   ┆odeword1:= cstar;  817:  (* <ter┆
0x07d8e0…07d900             6d 3e 20 3a 3a 3d 20 3c 74 65 72 6d 3e 20 2f 20 3c 66 61 63 74 6f 72 3e 20 20 2a 29 0a 28 2a 20   ┆m> ::= <term> / <factor>  *) (* ┆
0x07d900…07d920             63 6f 64 65 3a 20 73 6c 61 73 68 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 73 6c 61   ┆code: slash  *) codeword1:= csla┆
0x07d920…07d940             73 68 3b 0a 0a 38 31 38 3a 20 20 28 2a 20 3c 74 65 72 6d 3e 20 3a 3a 3d 20 3c 74 65 72 6d 3e 20   ┆sh;  818:  (* <term> ::= <term> ┆
0x07d940…07d960             64 69 76 20 3c 66 61 63 74 6f 72 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 69 76 20 20 2a 29   ┆div <factor> *) (* code: div  *)┆
0x07d960…07d980             0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 64 69 76 3b 0a 0a 38 31 39 3a 20 20 28 2a 20 3c 74 65   ┆ codeword1:= cdiv;  819:  (* <te┆
0x07d980…07d9a0             72 6d 3e 20 3a 3a 3d 20 3c 74 65 72 6d 3e 20 6d 6f 64 20 3c 66 61 63 74 6f 72 3e 20 2a 29 0a 28   ┆rm> ::= <term> mod <factor> *) (┆
0x07d9a0…07d9c0             2a 20 63 6f 64 65 3a 20 6d 6f 64 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 6d 6f 64   ┆* code: mod  *) codeword1:= cmod┆
0x07d9c0…07d9e0             3b 0a 0a 38 32 30 3a 20 20 28 2a 20 3c 74 65 72 6d 3e 20 3a 3a 3d 20 3c 74 65 72 6d 3e 20 61 6e   ┆;  820:  (* <term> ::= <term> an┆
0x07d9e0…07da00             64 20 3c 66 61 63 74 6f 72 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 61 6e 64 20 20 2a 29 0a   ┆d <factor>  *) (* code: and  *) ┆
0x07da00…07da20 (33, 1, 1)  63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 61 6e 64 3b 0a 0a 38 32 31 3a 20 20 28 2a 20 3c 74 65 72   ┆codeword1:= cand;  821:  (* <ter┆
0x07da20…07da40             6d 3e 20 3a 3a 3d 20 3c 74 65 72 6d 3e 20 73 68 69 66 74 20 3c 66 61 63 74 6f 72 3e 20 20 2a 29   ┆m> ::= <term> shift <factor>  *)┆
0x07da40…07da60             0a 28 2a 20 63 6f 64 65 3a 20 61 6e 64 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 73   ┆ (* code: and  *) codeword1:= cs┆
0x07da60…07da80             68 69 66 74 3b 0a 0a 38 32 35 3a 20 20 28 2a 20 3c 66 61 63 74 6f 72 3e 20 3a 3a 3d 20 3c 73 65   ┆hift;  825:  (* <factor> ::= <se┆
0x07da80…07daa0             74 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 73 65 74 6c 69 73 74 20 2a 29 0a 63 6f   ┆t>  *) (* code: endsetlist *) co┆
0x07daa0…07dac0             64 65 77 6f 72 64 31 3a 3d 20 63 65 6e 64 73 65 74 6c 69 73 74 3b 0a 0a 38 32 36 3a 20 20 28 2a   ┆deword1:= cendsetlist;  826:  (*┆
0x07dac0…07dae0             20 3c 73 74 61 72 74 20 73 65 74 3e 20 3a 3a 3d 20 28 2e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a   ┆ <start set> ::= (.  *) (* code:┆
0x07dae0…07db00             20 73 65 74 6c 69 73 74 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 73 65 74 6c 69 73   ┆ setlist  *) codeword1:= csetlis┆
0x07db00…07db20             74 3b 0a 0a 38 32 37 3a 20 20 28 2a 20 3c 65 6c 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 65 78 70 72   ┆t;  827:  (* <element> ::= <expr┆
0x07db20…07db40             65 73 73 69 6f 6e 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 73 5f 65 6c 65 6d 65 6e 74 20 20   ┆ession>  *) (* code: s_element  ┆
0x07db40…07db60             2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 73 5f 65 6c 65 6d 65 6e 74 3b 0a 0a 38 32 38 3a   ┆*) codeword1:= cs_element;  828:┆
0x07db60…07db80             20 20 28 2a 20 3c 65 6c 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20   ┆  (* <element> ::= <expression> ┆
0x07db80…07dba0             2e 2e 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6d 5f 65   ┆.. <expression>  *) (* code: m_e┆
0x07dba0…07dbc0             6c 65 6d 65 6e 74 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 6d 5f 65 6c 65 6d 65 6e   ┆lement  *) codeword1:= cm_elemen┆
0x07dbc0…07dbe0             74 3b 0a 0a 38 33 30 3a 20 20 28 2a 20 3c 66 61 63 74 6f 72 3e 20 3a 3a 3d 20 3c 76 61 72 69 61   ┆t;  830:  (* <factor> ::= <varia┆
0x07dbe0…07dc00             62 6c 65 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 76 61 72 69 61 62 6c 65 20 20 2a   ┆ble>  *) (* code: endvariable  *┆
0x07dc00…07dc20 (33, 1, 2)  29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 65 6e 64 76 61 72 69 61 62 6c 65 3b 0a 0a 38 33 31   ┆) codeword1:= cendvariable;  831┆
0x07dc20…07dc40             3a 20 20 28 2a 20 3c 66 61 63 74 6f 72 3e 20 3a 3a 3d 20 6e 6f 74 20 3c 66 61 63 74 6f 72 3e 20   ┆:  (* <factor> ::= not <factor> ┆
0x07dc40…07dc60             20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6e 6f 74 20 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a   ┆ *) (* code: not   *) codeword1:┆
0x07dc60…07dc80             3d 20 63 6e 6f 74 3b 0a 0a 38 33 35 3a 20 20 28 2a 20 3c 76 61 72 69 61 62 6c 65 3e 20 3a 3a 3d   ┆= cnot;  835:  (* <variable> ::=┆
0x07dc80…07dca0             20 6e 61 6d 65 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 69 64 28 20 73 70 69 78 20 29 20 6d 61 79   ┆ name *) (* code: id( spix ) may┆
0x07dca0…07dcc0             20 6c 61 74 65 72 20 6f 6e 20 62 65 20 63 68 61 6e 67 65 64 20 74 6f 20 74 79 70 65 69 64 28 73   ┆ later on be changed to typeid(s┆
0x07dcc0…07dce0             70 69 78 29 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 69 64 3b 0a 6e   ┆pix) *) begin codeword1:= cid; n┆
0x07dce0…07dd00             61 6d 65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 76 61 72 5f 6f 72 5f 66 69 65 6c 64 5f 73 70 69   ┆ame:= readname; var_or_field_spi┆
0x07dd00…07dd20             78 3a 3d 20 73 65 61 72 63 68 6e 61 6d 65 28 6e 61 6d 65 29 3b 0a 65 6e 64 3b 0a 0a 38 33 36 3a   ┆x:= searchname(name); end;  836:┆
0x07dd20…07dd40             20 20 28 2a 20 3c 76 61 72 69 61 62 6c 65 3e 20 3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 20 2e   ┆  (* <variable> ::= <variable> .┆
0x07dd40…07dd60             20 6e 61 6d 65 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 66 69 65 6c 64 28 20 73 70 69 78 20 29   ┆ name  *) (* code: field( spix )┆
0x07dd60…07dd80             20 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 66 69 65 6c 64 3b 0a 6e   ┆  *) begin codeword1:= cfield; n┆
0x07dd80…07dda0             61 6d 65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 76 61 72 5f 6f 72 5f 66 69 65 6c 64 5f 73 70 69   ┆ame:= readname; var_or_field_spi┆
0x07dda0…07ddc0             78 3a 3d 20 73 65 61 72 63 68 6e 61 6d 65 28 6e 61 6d 65 29 3b 0a 65 6e 64 3b 0a 0a 38 33 37 3a   ┆x:= searchname(name); end;  837:┆
0x07ddc0…07dde0             20 20 28 2a 20 3c 76 61 72 69 61 62 6c 65 3e 20 3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 20 3c   ┆  (* <variable> ::= <variable> <┆
0x07dde0…07de00             62 65 67 69 6e 20 61 63 74 75 61 6c 3e 20 3c 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20   ┆begin actual> <actual parameter ┆
0x07de00…07de20 (33, 1, 3)  6c 69 73 74 3e 20 29 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 61 63 74 75 61 6c 20 2a   ┆list> )  *) (* code: endactual *┆
0x07de20…07de40             29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 65 6e 64 61 63 74 75 61 6c 3b 0a 0a 38 33 38 3a 20   ┆) codeword1:= cendactual;  838: ┆
0x07de40…07de60             20 28 2a 20 3c 76 61 72 69 61 62 6c 65 3e 20 3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 20 5e 20   ┆ (* <variable> ::= <variable> ^ ┆
0x07de60…07de80             20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 75 70 61 72 72 6f 77 20 20 2a 29 0a 63 6f 64 65 77 6f   ┆  *) (* code: uparrow  *) codewo┆
0x07de80…07dea0             72 64 31 3a 3d 20 63 75 70 61 72 72 6f 77 3b 0a 0a 38 33 39 3a 20 20 28 2a 20 3c 62 65 67 69 6e   ┆rd1:= cuparrow;  839:  (* <begin┆
0x07dea0…07dec0             20 61 63 74 75 61 6c 3e 20 3a 3a 3d 20 28 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 62 65 67 69   ┆ actual> ::= (  *) (* code: begi┆
0x07dec0…07dee0             6e 61 63 74 75 61 6c 20 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 62 65 67 69 6e 61   ┆nactual   *) codeword1:= cbegina┆
0x07dee0…07df00             63 74 75 61 6c 3b 0a 0a 38 34 30 2c 20 20 28 2a 20 3c 66 61 63 74 6f 72 3e 20 3a 3a 3d 20 74 79   ┆ctual;  840,  (* <factor> ::= ty┆
0x07df00…07df20             70 65 73 69 7a 65 28 6e 61 6d 65 29 20 20 2a 29 0a 38 34 31 3a 20 20 28 2a 20 20 20 20 20 20 20   ┆pesize(name)  *) 841:  (*       ┆
0x07df20…07df40             20 20 20 21 20 20 20 76 61 72 73 69 7a 65 28 6e 61 6d 65 29 20 20 20 2a 29 0a 28 2a 20 63 6f 64   ┆   !   varsize(name)   *) (* cod┆
0x07df40…07df60             65 3a 20 74 79 70 65 73 69 7a 65 2f 76 61 72 73 69 7a 65 20 28 73 70 69 78 29 20 20 2a 29 0a 62   ┆e: typesize/varsize (spix)  *) b┆
0x07df60…07df80             65 67 69 6e 0a 6f 6c 64 74 6f 70 3a 3d 20 6f 6c 64 74 6f 70 2d 31 3b 20 28 2a 20 70 6f 69 6e 74   ┆egin oldtop:= oldtop-1; (* point┆
0x07df80…07dfa0             20 61 74 20 4e 41 4d 45 20 2a 29 0a 76 61 72 5f 6f 72 5f 66 69 65 6c 64 5f 73 70 69 78 3a 3d 20   ┆ at NAME *) var_or_field_spix:= ┆
0x07dfa0…07dfc0             73 65 61 72 63 68 6e 61 6d 65 28 72 65 61 64 6e 61 6d 65 29 3b 0a 6f 6c 64 74 6f 70 3a 3d 20 6f   ┆searchname(readname); oldtop:= o┆
0x07dfc0…07dfe0             6c 64 74 6f 70 2b 31 3b 20 28 2a 20 72 65 65 73 74 61 62 6c 69 73 68 20 2a 29 0a 69 66 20 70 72   ┆ldtop+1; (* reestablish *) if pr┆
0x07dfe0…07e000             6f 64 3d 38 34 30 20 74 68 65 6e 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 74 79 70 65 73 69 7a   ┆od=840 then codeword1:= ctypesiz┆
0x07e000…07e020 (33, 1, 4)  65 63 61 6c 6c 0a 65 6c 73 65 0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 76 61 72 73 69 7a 65 63   ┆ecall else codeword1:= cvarsizec┆
0x07e020…07e040             61 6c 6c 3b 0a 65 6e 64 3b 20 28 2a 20 38 34 30 2c 20 38 34 31 20 2a 29 0a 0a 38 34 36 3a 20 28   ┆all; end; (* 840, 841 *)  846: (┆
0x07e040…07e060             2a 20 3c 73 74 61 72 74 20 73 74 72 75 63 20 76 61 6c 3e 20 3a 3a 3d 20 28 3a 20 20 2a 29 0a 63   ┆* <start struc val> ::= (:  *) c┆
0x07e060…07e080             6f 64 65 77 6f 72 64 31 3a 3d 20 63 62 65 67 69 6e 73 74 72 75 63 3b 0a 0a 38 34 37 3a 20 28 2a   ┆odeword1:= cbeginstruc;  847: (*┆
0x07e080…07e0a0             20 3c 73 74 72 75 63 20 76 61 6c 75 65 20 64 65 6e 6f 74 61 74 69 6f 6e 3e 20 3a 3a 3d 20 3c 73   ┆ <struc value denotation> ::= <s┆
0x07e0a0…07e0c0             74 61 72 74 20 73 74 72 75 63 20 76 61 6c 3e 20 3c 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65   ┆tart struc val> <actual paramete┆
0x07e0c0…07e0e0             72 20 6c 69 73 74 3e 20 3a 29 20 20 2a 29 0a 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆r list> :)  *) (*               ┆
0x07e0e0…07e100             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20 3c 73 74 61 72 74 20 73 74 72 75 63 20 76   ┆                ! <start struc v┆
0x07e100…07e120             61 6c 3e 20 3a 29 20 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 73 74 72 75 63 20 2a 29   ┆al> :)   *) (* code: endstruc *)┆
0x07e120…07e140             0a 63 6f 64 65 77 6f 72 64 31 3a 3d 20 63 65 6e 64 73 74 72 75 63 3b 0a 0a 0a 65 6e 64 3b 20 20   ┆ codeword1:= cendstruc;   end;  ┆
0x07e140…07e160             28 2a 20 63 61 73 65 20 2e 2e 2e 20 2a 29 0a 0a 0a 65 6d 69 74 28 20 63 6f 64 65 77 6f 72 64 31   ┆(* case ... *)   emit( codeword1┆
0x07e160…07e180             2c 20 76 61 72 5f 6f 72 5f 66 69 65 6c 64 5f 73 70 69 78 2c 20 6e 69 6c 6c 2c 20 63 6f 64 65 77   ┆, var_or_field_spix, nill, codew┆
0x07e180…07e1a0             6f 72 64 32 29 3b 0a 0a 65 6e 64 3b 20 20 28 2a 20 73 65 63 74 69 6f 6e 20 38 20 20 2a 29 0a 0a   ┆ord2);  end;  (* section 8  *)  ┆
0x07e1a0…07e1c0             0c 0a 70 72 6f 63 65 64 75 72 65 20 73 74 61 74 65 6d 65 6e 74 3b 0a 28 2a 20 73 65 63 74 69 6f   ┆  procedure statement; (* sectio┆
0x07e1c0…07e1e0             6e 20 39 20 2a 29 0a 0a 76 61 72 0a 63 6f 64 65 77 6f 72 64 2c 20 63 6f 64 65 77 6f 72 64 32 20   ┆n 9 *)  var codeword, codeword2 ┆
0x07e1e0…07e200             3a 20 63 6f 64 65 73 3b 0a 73 74 65 70 2c 20 70 61 72 61 6d 31 20 3a 20 69 6e 74 65 67 65 72 3b   ┆: codes; step, param1 : integer;┆
0x07e200…07e220 (33, 1, 5)  0a 6e 61 6d 65 20 3a 20 6e 61 6d 65 68 65 61 64 70 74 72 3b 0a 73 74 61 74 5f 73 74 61 63 6b 3a   ┆ name : nameheadptr; stat_stack:┆
0x07e220…07e240             20 74 5f 73 74 61 74 5f 73 74 61 63 6b 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 75 73 68 5f 72   ┆ t_stat_stack;  procedure push_r┆
0x07e240…07e260             65 70 65 74 69 74 69 76 65 5f 73 74 61 74 65 6d 65 6e 74 28 73 74 61 74 65 6d 65 6e 74 5f 6b 69   ┆epetitive_statement(statement_ki┆
0x07e260…07e280             6e 64 3a 20 63 6f 64 65 73 29 3b 0a 28 2a 20 70 75 73 68 20 73 74 61 74 65 6d 65 6e 74 20 66 6f   ┆nd: codes); (* push statement fo┆
0x07e280…07e2a0             72 20 70 72 6f 70 65 72 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 45 58 49 54 4c 4f 4f 50 2c 20 43   ┆r proper handling of EXITLOOP, C┆
0x07e2a0…07e2c0             4f 4e 54 49 4e 55 45 4c 4f 4f 50 20 61 6e 64 20 45 58 49 54 20 2a 29 0a 62 65 67 69 6e 0a 69 66   ┆ONTINUELOOP and EXIT *) begin if┆
0x07e2c0…07e2e0             20 73 74 61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f 74 6f 70 5e 2e 6e 65 78 74 5f 73 74 61 74 3d   ┆ statement_stack_top^.next_stat=┆
0x07e2e0…07e300             6e 69 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6e 65 77 28 73 74 61 74 65 6d 65 6e 74 5f 73 74 61   ┆nil then begin new(statement_sta┆
0x07e300…07e320             63 6b 5f 74 6f 70 5e 2e 6e 65 78 74 5f 73 74 61 74 29 3b 0a 77 69 74 68 20 73 74 61 74 65 6d 65   ┆ck_top^.next_stat); with stateme┆
0x07e320…07e340             6e 74 5f 73 74 61 63 6b 5f 74 6f 70 5e 2e 6e 65 78 74 5f 73 74 61 74 5e 20 64 6f 0a 62 65 67 69   ┆nt_stack_top^.next_stat^ do begi┆
0x07e340…07e360             6e 0a 6e 65 78 74 5f 73 74 61 74 3a 3d 20 6e 69 6c 3b 0a 66 6f 72 6d 65 72 5f 73 74 61 74 3a 3d   ┆n next_stat:= nil; former_stat:=┆
0x07e360…07e380             20 73 74 61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f 74 6f 70 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 20   ┆ statement_stack_top; end; end; ┆
0x07e380…07e3a0             28 2a 20 61 64 64 20 6e 65 77 20 73 74 61 74 65 6d 65 6e 74 20 73 74 61 63 6b 20 6e 6f 64 65 20   ┆(* add new statement stack node ┆
0x07e3a0…07e3c0             2a 29 0a 73 74 61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f 74 6f 70 3a 3d 20 73 74 61 74 65 6d 65   ┆*) statement_stack_top:= stateme┆
0x07e3c0…07e3e0             6e 74 5f 73 74 61 63 6b 5f 74 6f 70 5e 2e 6e 65 78 74 5f 73 74 61 74 3b 0a 77 69 74 68 20 73 74   ┆nt_stack_top^.next_stat; with st┆
0x07e3e0…07e400             61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f 74 6f 70 5e 20 64 6f 0a 73 74 61 74 5f 6b 69 6e 64 3a   ┆atement_stack_top^ do stat_kind:┆
0x07e400…07e420 (33, 1, 6)  3d 20 73 74 61 74 65 6d 65 6e 74 5f 6b 69 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 70 75 73 68 20 72   ┆= statement_kind; end; (* push r┆
0x07e420…07e440             65 70 65 74 69 74 69 76 65 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 0a 0a 62 65 67 69 6e 20 28   ┆epetitive statement *)   begin (┆
0x07e440…07e460             2a 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 63 6f 64 65 77 6f 72 64 32 3a 3d 20 63 6e 6f 63 6f   ┆* statement *) codeword2:= cnoco┆
0x07e460…07e480             64 65 3b 0a 70 61 72 61 6d 31 3a 3d 20 6e 69 6c 6c 3b 0a 0a 63 61 73 65 20 70 72 6f 64 20 6f 66   ┆de; param1:= nill;  case prod of┆
0x07e480…07e4a0             0a 0a 39 30 31 3a 20 20 28 2a 20 3c 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 3e 20   ┆  901:  (* <compound statement> ┆
0x07e4a0…07e4c0             3a 3a 3d 20 3c 62 65 67 69 6e 3e 20 3c 73 74 61 74 65 6d 65 6e 74 20 6c 69 73 74 3e 20 65 6e 64   ┆::= <begin> <statement list> end┆
0x07e4c0…07e4e0             20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 20 20 2a 29 0a 69 66 20 72 65 64 75 63 65 64 5f   ┆ *) (* code: end  *) if reduced_┆
0x07e4e0…07e500             69 6e 74 65 72 6d 65 64 69 61 74 65 5f 6c 61 6e 67 75 61 67 65 20 74 68 65 6e 0a 63 6f 64 65 77   ┆intermediate_language then codew┆
0x07e500…07e520             6f 72 64 3a 3d 20 63 6e 6f 63 6f 64 65 0a 65 6c 73 65 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65   ┆ord:= cnocode else codeword:= ce┆
0x07e520…07e540             6e 64 3b 0a 0a 39 30 32 3a 20 20 28 2a 20 3c 62 65 67 69 6e 3e 20 3a 3a 3d 20 62 65 67 69 6e 20   ┆nd;  902:  (* <begin> ::= begin ┆
0x07e540…07e560             20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 62 65 67 69 6e 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a   ┆ *) (* code: begin  *) codeword:┆
0x07e560…07e580             3d 20 63 62 65 67 69 6e 3b 0a 0a 39 30 33 3a 20 20 28 2a 20 3c 70 72 6f 63 65 64 75 72 65 20 63   ┆= cbegin;  903:  (* <procedure c┆
0x07e580…07e5a0             61 6c 6c 3e 20 3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a   ┆all> ::= <variable>  *) (* code:┆
0x07e5a0…07e5c0             20 63 61 6c 6c 70 72 6f 63 65 64 75 72 65 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 63   ┆ callprocedure  *) codeword:= cc┆
0x07e5c0…07e5e0             61 6c 6c 70 72 6f 63 65 64 75 72 65 3b 0a 0a 39 30 34 3a 20 20 28 2a 20 3c 61 63 74 75 61 6c 20   ┆allprocedure;  904:  (* <actual ┆
0x07e5e0…07e600             70 61 72 61 6d 65 74 65 72 3e 20 3a 3a 3d 20 3c 75 6e 69 74 3e 20 20 2a 29 0a 28 2a 20 63 6f 64   ┆parameter> ::= <unit>  *) (* cod┆
0x07e600…07e620 (33, 1, 7)  65 3a 20 61 63 74 75 61 6c 70 61 72 61 6d 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64   ┆e: actualparam *) begin codeword┆
0x07e620…07e640             3a 3d 20 63 61 63 74 75 61 6c 70 61 72 61 6d 3b 0a 65 6e 64 3b 0a 0a 39 30 35 3a 20 20 28 2a 20   ┆:= cactualparam; end;  905:  (* ┆
0x07e640…07e660             3c 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 3e 20 3a 3a 3d 20 3c 65 78 70 72 65 73 73 69   ┆<actual parameter> ::= <expressi┆
0x07e660…07e680             6f 6e 3e 20 2a 2a 2a 20 3c 75 6e 69 74 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 6f 75 62   ┆on> *** <unit>  *) (* code: doub┆
0x07e680…07e6a0             6c 65 70 61 72 61 6d 20 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 64 6f   ┆leparam  *) begin codeword:= cdo┆
0x07e6a0…07e6c0             75 62 6c 65 70 61 72 61 6d 3b 0a 65 6e 64 3b 0a 0a 39 30 36 3a 20 20 28 2a 20 3c 61 73 73 69 67   ┆ubleparam; end;  906:  (* <assig┆
0x07e6c0…07e6e0             6e 6d 65 6e 74 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 3a   ┆nment statement> ::= <variable>:┆
0x07e6e0…07e700             3d 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 61   ┆= <expression>  *) (* code: enda┆
0x07e700…07e720             73 73 69 67 6e 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 61 73 73 69 67 6e 3b   ┆ssign  *) codeword:= cendassign;┆
0x07e720…07e740             0a 0a 39 30 37 3a 20 20 28 2a 20 3c 65 78 63 68 61 6e 67 65 20 73 74 61 74 65 6d 65 6e 74 3e 20   ┆  907:  (* <exchange statement> ┆
0x07e740…07e760             3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 3a 3d 20 3a 20 3c 76 61 72 69 61 62 6c 65 3e 20 20 2a   ┆::= <variable>:= : <variable>  *┆
0x07e760…07e780             29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 65 78 63 68 61 6e 67 65 20 20 2a 29 0a 63 6f 64 65 77   ┆) (* code: endexchange  *) codew┆
0x07e780…07e7a0             6f 72 64 3a 3d 20 63 65 6e 64 65 78 63 68 61 6e 67 65 3b 0a 0a 39 30 39 3a 20 20 28 2a 20 3c 63   ┆ord:= cendexchange;  909:  (* <c┆
0x07e7a0…07e7c0             61 73 65 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 73 65 6c 65 63 74 6f 72 20 70 61 72   ┆ase statement> ::= <selector par┆
0x07e7c0…07e7e0             74 3e 20 3c 63 61 73 65 20 6c 69 73 74 3e 20 3c 65 6e 64 20 63 61 73 65 20 70 61 72 74 3e 20 20   ┆t> <case list> <end case part>  ┆
0x07e7e0…07e800             2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 63 61 73 65 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64   ┆*) (* code: endcase  *) codeword┆
0x07e800…07e820 (33, 1, 8)  3a 3d 20 63 65 6e 64 63 61 73 65 3b 0a 0a 39 31 30 3a 20 20 28 2a 20 3c 73 65 6c 65 63 74 6f 72   ┆:= cendcase;  910:  (* <selector┆
0x07e820…07e840             20 70 61 72 74 3e 20 3a 3a 3d 20 3c 63 61 73 65 3e 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 6f   ┆ part> ::= <case> <expression> o┆
0x07e840…07e860             66 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 63 61 73 65 65 78 70 72 20 20 2a 29 0a 63 6f 64 65 77   ┆f *) (* code: caseexpr  *) codew┆
0x07e860…07e880             6f 72 64 3a 3d 20 63 63 61 73 65 65 78 70 72 3b 0a 0a 39 31 31 3a 20 20 28 2a 20 3c 63 61 73 65   ┆ord:= ccaseexpr;  911:  (* <case┆
0x07e880…07e8a0             3e 20 3a 3a 3d 20 63 61 73 65 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 63 61 73 65 73 74 61 74   ┆> ::= case  *) (* code: casestat┆
0x07e8a0…07e8c0             20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 63 61 73 65 73 74 61 74 3b 0a 0a 39 31 32 3a 20   ┆ *) codeword:= ccasestat;  912: ┆
0x07e8c0…07e8e0             20 28 2a 20 3c 63 61 73 65 20 6c 69 73 74 20 65 6c 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 63 61 73   ┆ (* <case list element> ::= <cas┆
0x07e8e0…07e900             65 20 6c 61 62 65 6c 20 6c 69 73 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 20 6c 69 73 74 3e 20 3c   ┆e label list> <end label list> <┆
0x07e900…07e920             73 74 61 74 65 6d 65 6e 74 3e 20 20 2a 29 0a 28 2a 20 3c 65 6e 64 20 63 61 73 65 20 70 61 72 74   ┆statement>  *) (* <end case part┆
0x07e920…07e940             3e 20 3a 3a 3d 20 3c 6f 74 68 65 72 77 69 73 65 3e 20 3c 73 74 61 74 65 6d 65 6e 74 3e 20 65 6e   ┆> ::= <otherwise> <statement> en┆
0x07e940…07e960             64 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 63 61 73 65 65 6c 65 6d 65 6e 74 20 20 2a 29 0a 63 6f   ┆d *) (* code: caseelement  *) co┆
0x07e960…07e980             64 65 77 6f 72 64 3a 3d 20 63 63 61 73 65 65 6c 65 6d 65 6e 74 3b 0a 0a 39 31 33 3a 20 20 28 2a   ┆deword:= ccaseelement;  913:  (*┆
0x07e980…07e9a0             20 3c 6c 61 62 65 6c 20 72 61 6e 67 65 3e 20 3a 3a 3d 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20   ┆ <label range> ::= <expression> ┆
0x07e9a0…07e9c0             2e 2e 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 63 61 73 65   ┆.. <expression> *) (* code: case┆
0x07e9c0…07e9e0             6c 61 62 65 6c 72 61 6e 67 65 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 63 61 73 65 6c   ┆labelrange  *) codeword:= ccasel┆
0x07e9e0…07ea00             61 62 65 6c 72 61 6e 67 65 3b 0a 0a 39 31 34 3a 20 20 28 2a 20 3c 6c 61 62 65 6c 20 72 61 6e 67   ┆abelrange;  914:  (* <label rang┆
0x07ea00…07ea20 (33, 1, 9)  65 3e 20 3a 3a 3d 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20   ┆e> ::= <expression> *) (* code: ┆
0x07ea20…07ea40             63 61 73 65 6c 61 62 65 6c 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 63 61 73 65 6c 61 62   ┆caselabel *) codeword:= ccaselab┆
0x07ea40…07ea60             65 6c 3b 0a 0a 39 31 35 3a 20 20 28 2a 20 3c 65 6e 64 20 6c 61 62 65 6c 20 6c 69 73 74 3e 20 3a   ┆el;  915:  (* <end label list> :┆
0x07ea60…07ea80             3a 3d 20 3a 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 63 61 73 65 6c 69 73 74 20 20 2a 29 0a 63   ┆:= :  *) (* code: caselist  *) c┆
0x07ea80…07eaa0             6f 64 65 77 6f 72 64 3a 3d 20 63 63 61 73 65 6c 69 73 74 3b 0a 0a 39 31 36 3a 20 20 28 2a 20 3c   ┆odeword:= ccaselist;  916:  (* <┆
0x07eaa0…07eac0             6f 74 68 65 72 77 69 73 65 3e 20 3a 3a 3d 20 6f 74 68 65 72 77 69 73 65 20 2a 29 0a 28 2a 20 63   ┆otherwise> ::= otherwise *) (* c┆
0x07eac0…07eae0             6f 64 65 3a 20 6f 74 68 65 72 77 69 73 65 20 63 61 73 65 6c 69 73 74 20 2a 29 0a 62 65 67 69 6e   ┆ode: otherwise caselist *) begin┆
0x07eae0…07eb00             0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 6f 74 68 65 72 77 69 73 65 3b 0a 63 6f 64 65 77 6f 72 64   ┆ codeword:= cotherwise; codeword┆
0x07eb00…07eb20             32 3a 3d 20 63 63 61 73 65 6c 69 73 74 3b 0a 65 6e 64 3b 0a 0a 39 31 37 2c 20 20 28 2a 20 3c 73   ┆2:= ccaselist; end;  917,  (* <s┆
0x07eb20…07eb40             74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 66 6f 72 20 64 6f 3e 20 3c 73 74 61 72 74 20 6c 61   ┆tatement> ::= <for do> <start la┆
0x07eb40…07eb60             62 65 6c 73 63 6f 70 65 3e 20 3c 73 74 61 74 65 6d 65 6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c   ┆belscope> <statement> <end label┆
0x07eb60…07eb80             73 63 6f 70 65 3e 20 2a 29 0a 39 33 33 2c 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆scope> *) 933,  (*              ┆
0x07eb80…07eba0             21 20 20 3c 77 68 69 6c 65 20 64 6f 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e   ┆!  <while do> <start labelscope>┆
0x07eba0…07ebc0             20 3c 73 74 61 74 65 6d 65 6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 20 2a   ┆ <statement> <end labelscope>  *┆
0x07ebc0…07ebe0             29 0a 39 33 36 2c 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20 20 3c 6c 6f 63 6b   ┆) 936,  (*              !  <lock┆
0x07ebe0…07ec00             20 73 74 61 72 74 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c 73 74 61 74   ┆ start> <start labelscope> <stat┆
0x07ec00…07ec20 (33, 1, 10) 65 6d 65 6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 20 20 2a 29 0a 39 34 37   ┆ement> <end labelscope>   *) 947┆
0x07ec20…07ec40             3a 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20 20 3c 63 68 61 6e 6e 65 6c 20 64   ┆:  (*              !  <channel d┆
0x07ec40…07ec60             6f 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c 73 74 61 74 65 6d 65 6e 74   ┆o> <start labelscope> <statement┆
0x07ec60…07ec80             3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 20 2a 29 0a 28 2a 20 3c 62 61 6c 61 6e   ┆> <end labelscope>  *) (* <balan┆
0x07ec80…07eca0             63 65 64 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 66 6f 72 20 64 6f 3e 20 3c 73 74 61   ┆ced statement> ::= <for do> <sta┆
0x07eca0…07ecc0             72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c 62 61 6c 61 6e 63 65 64 20 73 74 61 74 65 6d 65   ┆rt labelscope> <balanced stateme┆
0x07ecc0…07ece0             6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 20 2a 29 0a 28 2a 20 20 20 20 20   ┆nt> <end labelscope>  *) (*     ┆
0x07ece0…07ed00             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20 20 3c 77 68 69 6c 65 20 64 6f 3e 20   ┆                  !  <while do> ┆
0x07ed00…07ed20             3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c 62 61 6c 61 6e 63 65 64 20 73 74 61   ┆<start labelscope> <balanced sta┆
0x07ed20…07ed40             74 65 6d 65 6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 2a 29 0a 28 2a 20 20   ┆tement> <end labelscope> *) (*  ┆
0x07ed40…07ed60             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20 20 3c 6c 6f 63 6b 20 73 74   ┆                     !  <lock st┆
0x07ed60…07ed80             61 72 74 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c 62 61 6c 61 6e 63 65   ┆art> <start labelscope> <balance┆
0x07ed80…07eda0             64 20 73 74 61 74 65 6d 65 6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 2a 29   ┆d statement> <end labelscope> *)┆
0x07eda0…07edc0             0a 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20 20 3c 63 68   ┆ (*                       !  <ch┆
0x07edc0…07ede0             61 6e 6e 65 6c 20 64 6f 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c 62 61   ┆annel do> <start labelscope> <ba┆
0x07ede0…07ee00             6c 61 6e 63 65 64 20 73 74 61 74 65 6d 65 6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70   ┆lanced statement> <end labelscop┆
0x07ee00…07ee20 (33, 1, 11) 65 3e 20 20 2a 29 0a 0a 28 2a 20 63 6f 64 65 3a 20 20 65 6e 64 66 6f 72 2f 65 6e 64 77 68 69 6c   ┆e>  *)  (* code:  endfor/endwhil┆
0x07ee20…07ee40             65 2f 65 6e 64 6c 6f 63 6b 2f 65 6e 64 63 68 61 6e 6e 65 6c 20 2a 29 0a 0a 62 65 67 69 6e 0a 28   ┆e/endlock/endchannel *)  begin (┆
0x07ee40…07ee60             2a 20 70 6f 70 5f 72 65 70 65 74 69 74 69 76 65 5f 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 73 74   ┆* pop_repetitive_statement *) st┆
0x07ee60…07ee80             61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f 74 6f 70 3a 3d 20 73 74 61 74 65 6d 65 6e 74 5f 73 74   ┆atement_stack_top:= statement_st┆
0x07ee80…07eea0             61 63 6b 5f 74 6f 70 5e 2e 66 6f 72 6d 65 72 5f 73 74 61 74 3b 0a 63 61 73 65 20 70 72 6f 64 20   ┆ack_top^.former_stat; case prod ┆
0x07eea0…07eec0             6f 66 0a 39 31 37 3a 20 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 66 6f 72 3b 0a 39 33 33 3a   ┆of 917: codeword:= cendfor; 933:┆
0x07eec0…07eee0             20 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 77 68 69 6c 65 3b 0a 39 33 36 3a 20 63 6f 64 65   ┆ codeword:= cendwhile; 936: code┆
0x07eee0…07ef00             77 6f 72 64 3a 3d 20 63 65 6e 64 6c 6f 63 6b 3b 0a 39 34 37 3a 20 63 6f 64 65 77 6f 72 64 3a 3d   ┆word:= cendlock; 947: codeword:=┆
0x07ef00…07ef20             20 63 65 6e 64 63 68 61 6e 6e 65 6c 3b 0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 2a 29 0a 0a 65   ┆ cendchannel; end; (* case *)  e┆
0x07ef20…07ef40             6e 64 3b 20 28 2a 20 39 31 37 2c 20 39 33 33 2c 20 39 33 36 2c 20 39 34 37 20 20 2a 29 0a 0a 39   ┆nd; (* 917, 933, 936, 947  *)  9┆
0x07ef40…07ef60             31 38 3a 20 20 28 2a 20 3c 66 6f 72 20 64 6f 3e 20 3a 3a 3d 20 3c 66 6f 72 20 74 6f 3e 20 3c 65   ┆18:  (* <for do> ::= <for to> <e┆
0x07ef60…07ef80             78 70 72 65 73 73 69 6f 6e 3e 20 64 6f 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 75 70 20 2a 29 0a   ┆xpression> do *) (* code: up *) ┆
0x07ef80…07efa0             63 6f 64 65 77 6f 72 64 3a 3d 20 63 75 70 3b 0a 20 0a 39 31 39 3a 20 20 28 2a 20 20 20 20 20 20   ┆codeword:= cup;   919:  (*      ┆
0x07efa0…07efc0             20 20 20 20 20 21 20 3c 66 6f 72 20 64 6f 77 6e 74 6f 3e 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e   ┆     ! <for downto> <expression>┆
0x07efc0…07efe0             20 64 6f 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 6f 77 6e 20 20 20 2a 29 0a 63 6f 64 65 77 6f   ┆ do *) (* code: down   *) codewo┆
0x07efe0…07f000             72 64 3a 3d 20 63 64 6f 77 6e 3b 0a 0a 39 32 30 3a 20 20 28 2a 20 3c 66 6f 72 20 61 73 73 69 67   ┆rd:= cdown;  920:  (* <for assig┆
0x07f000…07f020 (33, 1, 12) 6e 3e 20 3a 3a 3d 20 3c 66 6f 72 3e 20 3c 76 61 72 69 61 62 6c 65 3e 3a 3d 20 20 2a 29 0a 28 2a   ┆n> ::= <for> <variable>:=  *) (*┆
0x07f020…07f040             20 63 6f 64 65 3a 20 66 6f 72 76 61 72 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 66 6f   ┆ code: forvar  *) codeword:= cfo┆
0x07f040…07f060             72 76 61 72 3b 0a 0a 39 32 31 3a 20 20 28 2a 20 3c 66 6f 72 3e 20 3a 3a 3d 20 66 6f 72 20 2a 29   ┆rvar;  921:  (* <for> ::= for *)┆
0x07f060…07f080             0a 28 2a 20 63 6f 64 65 3a 20 66 6f 72 73 74 61 74 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77   ┆ (* code: forstat *) begin codew┆
0x07f080…07f0a0             6f 72 64 3a 3d 20 63 66 6f 72 73 74 61 74 3b 0a 70 75 73 68 5f 72 65 70 65 74 69 74 69 76 65 5f   ┆ord:= cforstat; push_repetitive_┆
0x07f0a0…07f0c0             73 74 61 74 65 6d 65 6e 74 28 63 6f 64 65 77 6f 72 64 29 3b 0a 65 6e 64 3b 0a 0a 39 32 32 3a 20   ┆statement(codeword); end;  922: ┆
0x07f0c0…07f0e0             20 28 2a 20 3c 67 6f 74 6f 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 67 6f 74 6f 3e 20   ┆ (* <goto statement> ::= <goto> ┆
0x07f0e0…07f100             3c 6c 61 62 20 6e 61 6d 65 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 67 6f 74 6f 20 20   ┆<lab name> *) (* code: endgoto  ┆
0x07f100…07f120             2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 67 6f 74 6f 3b 0a 0a 39 32 33 3a 20 20 28   ┆*) codeword:= cendgoto;  923:  (┆
0x07f120…07f140             2a 20 3c 67 6f 74 6f 3e 20 3a 3a 3d 20 67 6f 74 6f 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 67 6f   ┆* <goto> ::= goto *) (* code: go┆
0x07f140…07f160             74 6f 73 74 61 74 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 67 6f 74 6f 73 74 61 74 3b   ┆tostat  *) codeword:= cgotostat;┆
0x07f160…07f180             0a 0a 39 32 34 3a 20 20 28 2a 20 3c 6c 61 62 20 6e 61 6d 65 3e 20 3a 3a 3d 20 6e 61 6d 65 20 20   ┆  924:  (* <lab name> ::= name  ┆
0x07f180…07f1a0             2a 29 0a 28 2a 20 20 20 20 20 20 20 21 20 6b 6f 6e 73 74 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a   ┆*) (*       ! konst  *) (* code:┆
0x07f1a0…07f1c0             20 69 64 20 28 20 73 70 69 78 20 29 20 20 2a 29 0a 62 65 67 69 6e 0a 6e 61 6d 65 3a 3d 20 72 65   ┆ id ( spix )  *) begin name:= re┆
0x07f1c0…07f1e0             61 64 6e 61 6d 65 3b 0a 70 61 72 61 6d 31 3a 3d 20 73 65 61 72 63 68 6e 61 6d 65 28 6e 61 6d 65   ┆adname; param1:= searchname(name┆
0x07f1e0…07f200             29 3b 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 69 64 3b 0a 65 6e 64 3b 0a 0a 39 32 35 3a 20 20 28   ┆); codeword:= cid; end;  925:  (┆
0x07f200…07f220 (33, 1, 13) 2a 20 3c 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 69 66 20 74 68 65 6e 3e 20 3c 73 74 61   ┆* <statement> ::= <if then> <sta┆
0x07f220…07f240             74 65 6d 65 6e 74 3e 20 20 2a 29 0a 28 2a 20 20 20 20 20 21 20 3c 69 66 20 74 68 65 6e 20 65 6c   ┆tement>  *) (*     ! <if then el┆
0x07f240…07f260             73 65 3e 20 3c 73 74 61 74 65 6d 65 6e 74 3e 20 20 2a 29 0a 28 2a 20 3c 62 61 6c 61 6e 63 65 64   ┆se> <statement>  *) (* <balanced┆
0x07f260…07f280             20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c 69 66 20 74 68 65 6e 20 65 6c 73 65 3e 20 3c   ┆ statement> ::= <if then else> <┆
0x07f280…07f2a0             62 61 6c 61 6e 63 65 64 20 73 74 61 74 65 6d 65 6e 74 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a   ┆balanced statement>  *) (* code:┆
0x07f2a0…07f2c0             20 65 6e 64 69 66 20 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64   ┆ endif  *) begin codeword:= cend┆
0x07f2c0…07f2e0             69 66 3b 0a 65 6e 64 3b 0a 0a 39 32 36 3a 20 20 28 2a 20 3c 69 66 20 74 68 65 6e 3e 20 3a 3a 3d   ┆if; end;  926:  (* <if then> ::=┆
0x07f2e0…07f300             20 3c 69 66 20 70 61 72 74 3e 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 74 68 65 6e 20 2a 29 0a   ┆ <if part> <expression> then *) ┆
0x07f300…07f320             28 2a 20 63 6f 64 65 3a 20 69 66 65 78 70 72 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 69   ┆(* code: ifexpr *) codeword:= ci┆
0x07f320…07f340             66 65 78 70 72 3b 0a 0a 39 32 37 3a 20 20 28 2a 20 3c 69 66 20 70 61 72 74 3e 20 3a 3a 3d 20 69   ┆fexpr;  927:  (* <if part> ::= i┆
0x07f340…07f360             66 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 69 66 73 74 61 74 20 20 2a 29 0a 63 6f 64 65 77 6f   ┆f  *) (* code: ifstat  *) codewo┆
0x07f360…07f380             72 64 3a 3d 20 63 69 66 73 74 61 74 3b 0a 0a 39 32 38 3a 20 20 28 2a 20 3c 69 66 20 74 68 65 6e   ┆rd:= cifstat;  928:  (* <if then┆
0x07f380…07f3a0             20 65 6c 73 65 3e 20 3a 3a 3d 20 3c 69 66 20 74 68 65 6e 3e 20 3c 62 61 6c 61 6e 63 65 64 20 73   ┆ else> ::= <if then> <balanced s┆
0x07f3a0…07f3c0             74 61 74 65 6d 65 6e 74 3e 20 65 6c 73 65 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6c 73 65   ┆tatement> else  *) (* code: else┆
0x07f3c0…07f3e0             20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6c 73 65 3b 0a 0a 39 32 39 3a 20 20 28 2a 20   ┆ *) codeword:= celse;  929:  (* ┆
0x07f3e0…07f400             3c 75 6e 74 69 6c 3e 20 3a 3a 3d 20 75 6e 74 69 6c 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 75 6e   ┆<until> ::= until *) (* code: un┆
0x07f400…07f420 (33, 1, 14) 74 69 6c 20 20 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 75 6e 74 69 6c   ┆til   *) begin codeword:= cuntil┆
0x07f420…07f440             3b 0a 28 2a 20 70 6f 70 5f 72 65 70 65 74 69 74 69 76 65 5f 73 74 61 74 65 6d 65 6e 74 20 2a 29   ┆; (* pop_repetitive_statement *)┆
0x07f440…07f460             0a 73 74 61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f 74 6f 70 3a 3d 20 73 74 61 74 65 6d 65 6e 74   ┆ statement_stack_top:= statement┆
0x07f460…07f480             5f 73 74 61 63 6b 5f 74 6f 70 5e 2e 66 6f 72 6d 65 72 5f 73 74 61 74 3b 0a 65 6e 64 3b 0a 0a 39   ┆_stack_top^.former_stat; end;  9┆
0x07f480…07f4a0             33 30 3a 20 20 28 2a 20 3c 72 65 70 65 61 74 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c   ┆30:  (* <repeat statement> ::= <┆
0x07f4a0…07f4c0             72 65 70 65 61 74 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c 73 74 61 74   ┆repeat> <start labelscope> <stat┆
0x07f4c0…07f4e0             65 6d 65 6e 74 20 6c 69 73 74 3e 0a 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c 75 6e   ┆ement list> <end labelscope> <un┆
0x07f4e0…07f500             74 69 6c 3e 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e   ┆til> <expression> *) (* code: en┆
0x07f500…07f520             64 72 65 70 65 61 74 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 72 65 70 65 61   ┆drepeat  *) codeword:= cendrepea┆
0x07f520…07f540             74 3b 0a 0a 39 33 32 3a 20 20 28 2a 20 3c 72 65 70 65 61 74 3e 20 3a 3a 3d 20 72 65 70 65 61 74   ┆t;  932:  (* <repeat> ::= repeat┆
0x07f540…07f560             20 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 72 65 70 65 61 74 73 74 61 74 20 20 2a 29 0a 62 65   ┆   *) (* code: repeatstat  *) be┆
0x07f560…07f580             67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 72 65 70 65 61 74 73 74 61 74 3b 0a 70 75 73 68   ┆gin codeword:= crepeatstat; push┆
0x07f580…07f5a0             5f 72 65 70 65 74 69 74 69 76 65 5f 73 74 61 74 65 6d 65 6e 74 28 63 6f 64 65 77 6f 72 64 29 3b   ┆_repetitive_statement(codeword);┆
0x07f5a0…07f5c0             0a 65 6e 64 3b 0a 0a 39 33 34 3a 20 20 28 2a 20 3c 77 68 69 6c 65 20 64 6f 3e 20 3a 3a 3d 20 3c   ┆ end;  934:  (* <while do> ::= <┆
0x07f5c0…07f5e0             77 68 69 6c 65 3e 20 3c 65 78 70 72 65 73 73 69 6f 6e 3e 20 64 6f 20 2a 29 0a 28 2a 20 63 6f 64   ┆while> <expression> do *) (* cod┆
0x07f5e0…07f600             65 3a 20 77 68 69 6c 65 65 78 70 72 20 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 77 68   ┆e: whileexpr   *) codeword:= cwh┆
0x07f600…07f620 (33, 1, 15) 69 6c 65 65 78 70 72 3b 0a 0a 39 33 35 3a 20 20 28 2a 20 3c 77 68 69 6c 65 3e 20 3a 3a 3d 20 77   ┆ileexpr;  935:  (* <while> ::= w┆
0x07f620…07f640             68 69 6c 65 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 77 68 69 6c 65 73 74 61 74 20 20 2a 29 0a 62   ┆hile *) (* code: whilestat  *) b┆
0x07f640…07f660             65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 77 68 69 6c 65 73 74 61 74 3b 0a 70 75 73 68   ┆egin codeword:= cwhilestat; push┆
0x07f660…07f680             5f 72 65 70 65 74 69 74 69 76 65 5f 73 74 61 74 65 6d 65 6e 74 28 63 6f 64 65 77 6f 72 64 29 3b   ┆_repetitive_statement(codeword);┆
0x07f680…07f6a0             0a 65 6e 64 3b 0a 0a 39 33 37 3a 20 20 28 2a 20 3c 77 69 74 68 3e 20 3a 3a 3d 20 77 69 74 68 20   ┆ end;  937:  (* <with> ::= with ┆
0x07f6a0…07f6c0             20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 77 69 74 68 73 74 61 74 20 2a 29 0a 63 6f 64 65 77 6f 72   ┆ *) (* code: withstat *) codewor┆
0x07f6c0…07f6e0             64 3a 3d 20 63 77 69 74 68 73 74 61 74 3b 0a 0a 39 33 38 3a 20 20 28 2a 20 3c 77 69 74 68 20 63   ┆d:= cwithstat;  938:  (* <with c┆
0x07f6e0…07f700             6f 6d 6d 61 3e 20 3a 3a 3d 20 20 20 2c 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 77 69 74 68 63   ┆omma> ::=   ,  *) (* code: withc┆
0x07f700…07f720             6f 6d 6d 61 20 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 77 69 74 68 63 6f 6d 6d 61 3b 0a   ┆omma  *) codeword:= cwithcomma; ┆
0x07f720…07f740             0a 39 33 39 3a 20 20 28 2a 20 3c 77 69 74 68 20 76 61 72 69 61 62 6c 65 3e 20 3a 3a 3d 20 3c 76   ┆ 939:  (* <with variable> ::= <v┆
0x07f740…07f760             61 72 69 61 62 6c 65 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 77 69 74 68 76 61 72 20 6e 6f   ┆ariable>  *) (* code: withvar no┆
0x07f760…07f780             6c 6f 63 61 6c 64 65 63 6c 20 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63   ┆localdecl  *) begin codeword:= c┆
0x07f780…07f7a0             77 69 74 68 76 61 72 3b 0a 63 6f 64 65 77 6f 72 64 32 3a 3d 20 63 6e 6f 6c 6f 63 61 6c 64 65 63   ┆withvar; codeword2:= cnolocaldec┆
0x07f7a0…07f7c0             6c 3b 0a 69 66 20 74 79 70 65 62 75 66 66 65 72 66 6c 61 67 20 74 68 65 6e 0a 65 6d 69 74 5f 74   ┆l; if typebufferflag then emit_t┆
0x07f7c0…07f7e0             79 70 65 62 75 66 66 65 72 3b 0a 65 6e 64 3b 0a 0a 39 34 30 3a 20 20 28 2a 20 3c 61 73 3e 20 3a   ┆ypebuffer; end;  940:  (* <as> :┆
0x07f7e0…07f800             3a 3d 20 61 73 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 77 69 74 68 76 61 72 20 20 2a 29 0a 62   ┆:= as  *) (* code: withvar  *) b┆
0x07f800…07f820 (34, 0, 1)  65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 77 69 74 68 76 61 72 3b 0a 69 66 20 74 79 70   ┆egin codeword:= cwithvar; if typ┆
0x07f820…07f840             65 62 75 66 66 65 72 66 6c 61 67 20 74 68 65 6e 0a 62 65 67 69 6e 0a 73 61 76 65 64 5f 6c 61 73   ┆ebufferflag then begin saved_las┆
0x07f840…07f860             74 62 75 66 66 65 72 65 64 3a 3d 20 6c 61 73 74 62 75 66 66 65 72 65 64 3b 0a 65 6d 69 74 5f 74   ┆tbuffered:= lastbuffered; emit_t┆
0x07f860…07f880             79 70 65 62 75 66 66 65 72 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 39 34 30 20 2a 29 0a 0a   ┆ypebuffer; end; end; (* 940 *)  ┆
0x07f880…07f8a0             39 34 31 3a 20 20 28 2a 20 3c 6c 6f 63 61 6c 20 6e 61 6d 65 3e 20 3a 3a 3d 20 6e 61 6d 65 20 2a   ┆941:  (* <local name> ::= name *┆
0x07f8a0…07f8c0             29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72 61 74 69 6f 6e 28 20 76 61 72 20 29 20 64 65   ┆) (* code: declaration( var ) de┆
0x07f8c0…07f8e0             63 6c 61 72 65 28 20 73 70 69 78 20 29 20 2a 29 0a 62 65 67 69 6e 0a 6e 61 6d 65 3a 3d 20 72 65   ┆clare( spix ) *) begin name:= re┆
0x07f8e0…07f900             61 64 6e 61 6d 65 3b 0a 65 6d 69 74 28 20 63 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 6e 69 6c 6c   ┆adname; emit( cdeclaration, nill┆
0x07f900…07f920             2c 20 6e 69 6c 6c 2c 20 63 76 61 72 29 3b 0a 65 6d 69 74 64 65 63 6c 61 72 65 28 64 65 63 6c 2c   ┆, nill, cvar); emitdeclare(decl,┆
0x07f920…07f940             20 73 65 61 72 63 68 6e 61 6d 65 28 6e 61 6d 65 29 29 3b 0a 28 2a 20 74 68 65 20 63 6f 64 65 20   ┆ searchname(name)); (* the code ┆
0x07f940…07f960             69 73 20 67 65 6e 65 72 61 74 65 64 20 68 65 72 65 2c 20 61 6e 64 20 74 68 65 20 67 65 6e 65 72   ┆is generated here, and the gener┆
0x07f960…07f980             61 6c 20 6d 65 63 68 61 6e 69 73 6d 20 6f 66 0a 74 68 69 73 20 73 65 63 74 69 6f 6e 20 69 73 20   ┆al mechanism of this section is ┆
0x07f980…07f9a0             6e 6f 74 20 75 73 65 64 20 28 20 63 6f 64 65 77 6f 72 64 3d 6e 6f 63 6f 64 65 20 29 20 20 2a 29   ┆not used ( codeword=nocode )  *)┆
0x07f9a0…07f9c0             0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 6e 6f 63 6f 64 65 3b 0a 0a 65 6e 64 3b 20 20 28 2a 20 39   ┆ codeword:= cnocode;  end;  (* 9┆
0x07f9c0…07f9e0             34 31 20 2a 29 0a 0a 39 34 32 3a 20 20 28 2a 20 3c 77 69 74 68 20 76 61 72 69 61 62 6c 65 3e 20   ┆41 *)  942:  (* <with variable> ┆
0x07f9e0…07fa00             3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 20 3c 61 73 3e 20 3c 6c 6f 63 61 6c 20 6e 61 6d 65 3e   ┆::= <variable> <as> <local name>┆
0x07fa00…07fa20 (34, 0, 2)  20 3c 74 79 70 65 20 63 6f 6c 6f 6e 3e 3c 74 79 70 65 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20   ┆ <type colon><type> *) (* code: ┆
0x07fa20…07fa40             65 6e 64 6c 6f 63 61 6c 64 65 63 6c 61 72 65 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65   ┆endlocaldeclare *) codeword:= ce┆
0x07fa40…07fa60             6e 64 6c 6f 63 61 6c 64 65 63 6c 61 72 65 3b 0a 0a 39 34 33 3a 20 20 28 2a 20 3c 77 69 74 68 20   ┆ndlocaldeclare;  943:  (* <with ┆
0x07fa60…07fa80             76 61 72 69 61 62 6c 65 3e 20 3a 3a 3d 20 3c 76 61 72 69 61 62 6c 65 3e 20 3c 61 73 3e 20 3c 6c   ┆variable> ::= <variable> <as> <l┆
0x07fa80…07faa0             6f 63 61 6c 20 6e 61 6d 65 3e 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6e 6f 6c 6f 63 61 6c 74   ┆ocal name>  *) (* code: nolocalt┆
0x07faa0…07fac0             79 70 65 20 20 2a 29 0a 28 2a 20 6f 72 20 69 66 20 70 61 72 74 20 6f 66 20 6c 6f 63 6b 2f 6c 6f   ┆ype  *) (* or if part of lock/lo┆
0x07fac0…07fae0             63 6b 6d 65 73 20 73 74 61 74 65 6d 65 6e 74 20 73 69 6d 75 6c 61 74 65 20 61 6e 20 69 6d 70 6c   ┆ckmes statement simulate an impl┆
0x07fae0…07fb00             69 63 69 74 20 62 75 66 66 65 72 20 74 79 70 65 0a 66 6f 6c 6c 6f 77 65 64 20 62 79 20 63 6f 64   ┆icit buffer type followed by cod┆
0x07fb00…07fb20             65 3a 20 65 6e 64 6c 6f 63 61 6c 64 65 63 6c 61 72 65 20 2a 29 0a 69 66 20 73 61 76 65 64 5f 6c   ┆e: endlocaldeclare *) if saved_l┆
0x07fb20…07fb40             61 73 74 62 75 66 66 65 72 65 64 3c 3e 30 20 74 68 65 6e 0a 28 2a 20 6c 6f 63 6b 20 6f 72 20 6c   ┆astbuffered<>0 then (* lock or l┆
0x07fb40…07fb60             6f 63 6b 6d 65 73 20 77 69 74 68 6f 75 74 20 72 65 74 79 70 69 6e 67 2c 20 70 72 6f 64 75 63 65   ┆ockmes without retyping, produce┆
0x07fb60…07fb80             20 63 6f 64 65 20 61 73 20 69 66 20 74 68 65 20 61 70 72 6f 70 72 69 61 74 65 0a 69 6d 70 6c 69   ┆ code as if the apropriate impli┆
0x07fb80…07fba0             63 69 74 20 74 79 70 65 20 68 61 64 20 62 65 65 6e 20 75 73 65 64 20 61 73 20 72 65 74 79 70 65   ┆cit type had been used as retype┆
0x07fba0…07fbc0             20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 2a 29 0a 62 65 67 69 6e 0a 69 66 20 74 79 70 65 62   ┆ specification *) begin if typeb┆
0x07fbc0…07fbe0             75 66 66 65 72 5b 31 5d 3d 6f 72 64 28 63 6c 6f 63 6b 73 74 61 74 29 20 74 68 65 6e 0a 62 65 67   ┆uffer[1]=ord(clockstat) then beg┆
0x07fbe0…07fc00             69 6e 0a 65 6d 69 74 28 63 6e 65 77 74 79 70 65 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 61   ┆in emit(cnewtype, nill, nill, ca┆
0x07fc00…07fc20 (34, 0, 3)  72 72 61 79 29 3b 0a 65 6d 69 74 28 63 6e 65 77 74 79 70 65 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c   ┆rray); emit(cnewtype, nill, nill┆
0x07fc20…07fc40             2c 20 63 73 75 62 72 61 6e 67 65 29 3b 0a 65 6d 69 74 28 63 6c 69 74 65 72 61 6c 2c 20 6e 69 6c   ┆, csubrange); emit(cliteral, nil┆
0x07fc40…07fc60             6c 2c 20 6e 69 6c 6c 2c 20 63 69 6e 74 65 67 65 72 29 3b 0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65   ┆l, nill, cinteger); emit(cnocode┆
0x07fc60…07fc80             2c 20 31 20 28 2a 20 73 74 72 69 6e 67 6c 65 6e 67 74 68 20 2a 29 2c 20 6f 72 64 28 27 30 27 29   ┆, 1 (* stringlength *), ord('0')┆
0x07fc80…07fca0             2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 69 64 2c 20 62 75 66 73 69 7a 65 5f 73 70   ┆, cnocode); emit(cid, bufsize_sp┆
0x07fca0…07fcc0             69 78 2c 20 6e 69 6c 6c 2c 20 63 62 65 67 69 6e 61 63 74 75 61 6c 29 3b 0a 66 6f 72 20 73 74 65   ┆ix, nill, cbeginactual); for ste┆
0x07fcc0…07fce0             70 3a 3d 20 32 20 74 6f 20 73 61 76 65 64 5f 6c 61 73 74 62 75 66 66 65 72 65 64 20 64 6f 0a 65   ┆p:= 2 to saved_lastbuffered do e┆
0x07fce0…07fd00             6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 74 79 70 65 62 75 66 66 65 72 5b 73 74 65 70 5d 2c 20 6e   ┆mit(cnocode, typebuffer[step], n┆
0x07fd00…07fd20             69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 65 6e 64 76 61 72 69 61 62 6c 65   ┆ill, cnocode); emit(cendvariable┆
0x07fd20…07fd40             2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 61 63 74 75 61 6c 70 61 72 61 6d 29 3b 0a 65 6d 69   ┆, nill, nill, cactualparam); emi┆
0x07fd40…07fd60             74 28 63 65 6e 64 61 63 74 75 61 6c 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 65 6e 64 76 61   ┆t(cendactual, nill, nill, cendva┆
0x07fd60…07fd80             72 69 61 62 6c 65 29 3b 0a 65 6d 69 74 28 63 6c 69 74 65 72 61 6c 2c 20 6e 69 6c 6c 2c 20 6e 69   ┆riable); emit(cliteral, nill, ni┆
0x07fd80…07fda0             6c 6c 2c 20 63 69 6e 74 65 67 65 72 29 3b 0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 31 20 28   ┆ll, cinteger); emit(cnocode, 1 (┆
0x07fda0…07fdc0             2a 20 73 74 72 69 6e 67 6c 65 6e 67 74 68 20 2a 29 2c 20 6f 72 64 28 27 32 27 29 2c 20 63 6e 6f   ┆* stringlength *), ord('2'), cno┆
0x07fdc0…07fde0             63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 73 74 61 72 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63   ┆code); emit(cstar, nill, nill, c┆
0x07fde0…07fe00             6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 6c 69 74 65 72 61 6c 2c 20 6e 69 6c 6c 2c 20 6e 69   ┆nocode); emit(cliteral, nill, ni┆
0x07fe00…07fe20 (34, 0, 4)  6c 6c 2c 20 63 69 6e 74 65 67 65 72 29 3b 0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 31 20 28   ┆ll, cinteger); emit(cnocode, 1 (┆
0x07fe20…07fe40             2a 20 73 74 72 69 6e 67 6c 65 6e 67 74 68 20 2a 29 2c 20 6f 72 64 28 27 31 27 29 2c 20 63 6e 6f   ┆* stringlength *), ord('1'), cno┆
0x07fe40…07fe60             63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 6d 69 6e 75 73 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20   ┆code); emit(cminus, nill, nill, ┆
0x07fe60…07fe80             63 65 6e 64 73 75 62 72 61 6e 67 65 29 3b 0a 65 6d 69 74 28 63 6e 65 77 74 79 70 65 2c 20 6e 69   ┆cendsubrange); emit(cnewtype, ni┆
0x07fe80…07fea0             6c 6c 2c 20 6e 69 6c 6c 2c 20 63 73 75 62 72 61 6e 67 65 29 3b 0a 65 6d 69 74 28 63 6c 69 74 65   ┆ll, nill, csubrange); emit(clite┆
0x07fea0…07fec0             72 61 6c 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 69 6e 74 65 67 65 72 29 3b 0a 65 6d 69 74   ┆ral, nill, nill, cinteger); emit┆
0x07fec0…07fee0             28 63 6e 6f 63 6f 64 65 2c 20 31 20 28 2a 20 73 74 72 69 6e 67 6c 65 6e 67 74 68 20 2a 29 2c 20   ┆(cnocode, 1 (* stringlength *), ┆
0x07fee0…07ff00             6f 72 64 28 27 30 27 29 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 6c 69 74 65 72 61   ┆ord('0'), cnocode); emit(clitera┆
0x07ff00…07ff20             6c 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 69 6e 74 65 67 65 72 29 3b 0a 65 6d 69 74 28 63   ┆l, nill, nill, cinteger); emit(c┆
0x07ff20…07ff40             6e 6f 63 6f 64 65 2c 20 33 20 28 2a 20 73 74 72 69 6e 67 6c 65 6e 67 74 68 20 2a 29 2c 20 6f 72   ┆nocode, 3 (* stringlength *), or┆
0x07ff40…07ff60             64 28 27 32 27 29 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20   ┆d('2'), cnocode); emit(cnocode, ┆
0x07ff60…07ff80             6f 72 64 28 27 35 27 29 2c 20 6f 72 64 28 27 35 27 29 2c 20 63 65 6e 64 73 75 62 72 61 6e 67 65   ┆ord('5'), ord('5'), cendsubrange┆
0x07ff80…07ffa0             29 3b 0a 65 6d 69 74 28 63 65 6e 64 61 72 72 61 79 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63   ┆); emit(cendarray, nill, nill, c┆
0x07ffa0…07ffc0             6e 6f 63 6f 64 65 29 3b 0a 65 6e 64 20 28 2a 20 6c 6f 63 6b 20 2a 29 0a 65 6c 73 65 0a 69 66 20   ┆nocode); end (* lock *) else if ┆
0x07ffc0…07ffe0             74 79 70 65 62 75 66 66 65 72 5b 31 5d 3d 6f 72 64 28 63 6c 6f 63 6b 6d 65 73 73 74 61 74 29 20   ┆typebuffer[1]=ord(clockmesstat) ┆
0x07ffe0…080000             74 68 65 6e 0a 62 65 67 69 6e 0a 65 6d 69 74 28 63 6e 65 77 74 79 70 65 2c 20 6e 69 6c 6c 2c 20   ┆then begin emit(cnewtype, nill, ┆
0x080000…080020 (34, 0, 5)  6e 69 6c 6c 2c 20 63 61 72 72 61 79 29 3b 0a 65 6d 69 74 28 63 6e 65 77 74 79 70 65 2c 20 6e 69   ┆nill, carray); emit(cnewtype, ni┆
0x080020…080040             6c 6c 2c 20 6e 69 6c 6c 2c 20 63 73 75 62 72 61 6e 67 65 29 3b 0a 65 6d 69 74 28 63 69 64 2c 20   ┆ll, nill, csubrange); emit(cid, ┆
0x080040…080060             66 69 72 73 74 5f 73 70 69 78 2c 20 6e 69 6c 6c 2c 20 63 62 65 67 69 6e 61 63 74 75 61 6c 29 3b   ┆first_spix, nill, cbeginactual);┆
0x080060…080080             0a 66 6f 72 20 73 74 65 70 3a 3d 20 32 20 74 6f 20 73 61 76 65 64 5f 6c 61 73 74 62 75 66 66 65   ┆ for step:= 2 to saved_lastbuffe┆
0x080080…0800a0             72 65 64 20 64 6f 0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 74 79 70 65 62 75 66 66 65 72 5b   ┆red do emit(cnocode, typebuffer[┆
0x0800a0…0800c0             73 74 65 70 5d 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 65 6e 64   ┆step], nill, cnocode); emit(cend┆
0x0800c0…0800e0             76 61 72 69 61 62 6c 65 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 61 63 74 75 61 6c 70 61 72   ┆variable, nill, nill, cactualpar┆
0x0800e0…080100             61 6d 29 3b 0a 65 6d 69 74 28 63 65 6e 64 61 63 74 75 61 6c 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c   ┆am); emit(cendactual, nill, nill┆
0x080100…080120             2c 20 63 65 6e 64 76 61 72 69 61 62 6c 65 29 3b 0a 65 6d 69 74 28 63 69 64 2c 20 6c 61 73 74 5f   ┆, cendvariable); emit(cid, last_┆
0x080120…080140             73 70 69 78 2c 20 6e 69 6c 6c 2c 20 63 62 65 67 69 6e 61 63 74 75 61 6c 29 3b 0a 66 6f 72 20 73   ┆spix, nill, cbeginactual); for s┆
0x080140…080160             74 65 70 3a 3d 20 32 20 74 6f 20 73 61 76 65 64 5f 6c 61 73 74 62 75 66 66 65 72 65 64 20 64 6f   ┆tep:= 2 to saved_lastbuffered do┆
0x080160…080180             0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 74 79 70 65 62 75 66 66 65 72 5b 73 74 65 70 5d 2c   ┆ emit(cnocode, typebuffer[step],┆
0x080180…0801a0             20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 65 6e 64 76 61 72 69 61 62   ┆ nill, cnocode); emit(cendvariab┆
0x0801a0…0801c0             6c 65 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 61 63 74 75 61 6c 70 61 72 61 6d 29 3b 0a 65   ┆le, nill, nill, cactualparam); e┆
0x0801c0…0801e0             6d 69 74 28 63 65 6e 64 61 63 74 75 61 6c 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 65 6e 64   ┆mit(cendactual, nill, nill, cend┆
0x0801e0…080200             76 61 72 69 61 62 6c 65 29 3b 0a 65 6d 69 74 28 63 65 6e 64 73 75 62 72 61 6e 67 65 2c 20 6e 69   ┆variable); emit(cendsubrange, ni┆
0x080200…080220 (34, 0, 6)  6c 6c 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 6e 65 77 74 79 70   ┆ll, nill, cnocode); emit(cnewtyp┆
0x080220…080240             65 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 73 75 62 72 61 6e 67 65 29 3b 0a 65 6d 69 74 28   ┆e, nill, nill, csubrange); emit(┆
0x080240…080260             63 6c 69 74 65 72 61 6c 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 69 6e 74 65 67 65 72 29 3b   ┆cliteral, nill, nill, cinteger);┆
0x080260…080280             0a 65 6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 31 20 28 2a 20 73 74 72 69 6e 67 6c 65 6e 67 74 68   ┆ emit(cnocode, 1 (* stringlength┆
0x080280…0802a0             20 2a 29 2c 20 6f 72 64 28 27 30 27 29 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 6c   ┆ *), ord('0'), cnocode); emit(cl┆
0x0802a0…0802c0             69 74 65 72 61 6c 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 69 6e 74 65 67 65 72 29 3b 0a 65   ┆iteral, nill, nill, cinteger); e┆
0x0802c0…0802e0             6d 69 74 28 63 6e 6f 63 6f 64 65 2c 20 33 20 28 2a 20 73 74 72 69 6e 67 6c 65 6e 67 74 68 20 2a   ┆mit(cnocode, 3 (* stringlength *┆
0x0802e0…080300             29 2c 20 6f 72 64 28 27 32 27 29 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6d 69 74 28 63 6e 6f 63   ┆), ord('2'), cnocode); emit(cnoc┆
0x080300…080320             6f 64 65 2c 20 6f 72 64 28 27 35 27 29 2c 20 6f 72 64 28 27 35 27 29 2c 20 63 65 6e 64 73 75 62   ┆ode, ord('5'), ord('5'), cendsub┆
0x080320…080340             72 61 6e 67 65 29 3b 0a 65 6d 69 74 28 63 65 6e 64 61 72 72 61 79 2c 20 6e 69 6c 6c 2c 20 6e 69   ┆range); emit(cendarray, nill, ni┆
0x080340…080360             6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6e 64 3b 20 28 2a 20 6c 6f 63 6b 6d 65 73 20 2a 29   ┆ll, cnocode); end; (* lockmes *)┆
0x080360…080380             0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 6c 6f 63 61 6c 64 65 63 6c 61 72 65 3b 0a 65 6e   ┆ codeword:= cendlocaldeclare; en┆
0x080380…0803a0             64 20 28 2a 20 6c 6f 63 6b 20 6f 72 20 6c 6f 63 6b 6d 65 73 20 77 69 74 68 6f 75 74 20 72 65 74   ┆d (* lock or lockmes without ret┆
0x0803a0…0803c0             79 70 69 6e 67 20 2a 29 0a 65 6c 73 65 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 6e 6f 6c 6f 63 61   ┆yping *) else codeword:= cnoloca┆
0x0803c0…0803e0             6c 74 79 70 65 3b 0a 0a 39 34 34 3a 20 20 28 2a 20 3c 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d   ┆ltype;  944:  (* <statement> ::=┆
0x0803e0…080400             20 3c 77 69 74 68 20 73 74 61 72 74 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e   ┆ <with start> <start labelscope>┆
0x080400…080420 (34, 0, 7)  20 3c 73 74 61 74 65 6d 65 6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 20 20   ┆ <statement> <end labelscope>   ┆
0x080420…080440             2a 29 0a 28 2a 20 3c 62 61 6c 61 6e 63 65 64 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 3c   ┆*) (* <balanced statement> ::= <┆
0x080440…080460             77 69 74 68 20 73 74 61 72 74 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3c   ┆with start> <start labelscope> <┆
0x080460…080480             62 61 6c 61 6e 63 65 64 20 73 74 61 74 65 6d 65 6e 74 3e 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63   ┆balanced statement> <end labelsc┆
0x080480…0804a0             6f 70 65 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 20 65 6e 64 77 69 74 68 20 2a 29 0a 63 6f 64   ┆ope> *) (* code:  endwith *) cod┆
0x0804a0…0804c0             65 77 6f 72 64 3a 3d 20 63 65 6e 64 77 69 74 68 3b 0a 0a 39 34 38 3a 20 20 28 2a 20 3c 63 68 61   ┆eword:= cendwith;  948:  (* <cha┆
0x0804c0…0804e0             6e 6e 65 6c 20 64 6f 3e 20 3a 3a 3d 20 3c 63 68 61 6e 6e 65 6c 3e 20 3c 76 61 72 69 61 62 6c 65   ┆nnel do> ::= <channel> <variable┆
0x0804e0…080500             3e 20 64 6f 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 63 68 61 6e 76 61 72 20 20 2a 29 0a 63 6f 64   ┆> do *) (* code: chanvar  *) cod┆
0x080500…080520             65 77 6f 72 64 3a 3d 20 63 63 68 61 6e 76 61 72 3b 0a 0a 39 34 39 3a 20 20 28 2a 20 3c 63 68 61   ┆eword:= cchanvar;  949:  (* <cha┆
0x080520…080540             6e 6e 65 6c 3e 20 3a 3a 3d 20 63 68 61 6e 6e 65 6c 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 63   ┆nnel> ::= channel  *) (* code: c┆
0x080540…080560             68 61 6e 6e 65 6c 73 74 61 74 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63   ┆hannelstat *) begin codeword:= c┆
0x080560…080580             63 68 61 6e 6e 65 6c 73 74 61 74 3b 0a 70 75 73 68 5f 72 65 70 65 74 69 74 69 76 65 5f 73 74 61   ┆channelstat; push_repetitive_sta┆
0x080580…0805a0             74 65 6d 65 6e 74 28 63 6f 64 65 77 6f 72 64 29 3b 0a 65 6e 64 3b 0a 20 0a 39 35 30 3a 20 20 28   ┆tement(codeword); end;   950:  (┆
0x0805a0…0805c0             2a 20 3c 77 69 74 68 20 73 74 61 72 74 3e 20 3a 3a 3d 20 3c 77 69 74 68 3e 20 3c 77 69 74 68 20   ┆* <with start> ::= <with> <with ┆
0x0805c0…0805e0             76 61 72 69 61 62 6c 65 20 6c 69 73 74 3e 20 64 6f 20 20 2a 29 0a 28 2a 20 3c 6c 6f 63 6b 20 73   ┆variable list> do  *) (* <lock s┆
0x0805e0…080600             74 61 72 74 3e 20 3a 3a 3d 20 3c 6c 6f 63 6b 3e 20 3c 77 69 74 68 20 76 61 72 69 61 62 6c 65 3e   ┆tart> ::= <lock> <with variable>┆
0x080600…080620 (34, 0, 8)  20 64 6f 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 6f 20 20 20 2a 29 0a 62 65 67 69 6e 0a 73 61   ┆ do *) (* code: do   *) begin sa┆
0x080620…080640             76 65 64 5f 6c 61 73 74 62 75 66 66 65 72 65 64 3a 3d 20 30 3b 0a 63 6f 64 65 77 6f 72 64 3a 3d   ┆ved_lastbuffered:= 0; codeword:=┆
0x080640…080660             20 63 64 6f 3b 0a 65 6e 64 3b 0a 0a 39 35 31 2c 20 20 28 2a 20 3c 73 74 61 74 65 6d 65 6e 74 3e   ┆ cdo; end;  951,  (* <statement>┆
0x080660…080680             20 3a 3a 3d 20 63 6f 6e 74 69 6e 75 65 6c 6f 6f 70 20 20 20 2a 29 0a 39 35 33 3a 20 20 28 2a 20   ┆ ::= continueloop   *) 953:  (* ┆
0x080680…0806a0             20 20 20 20 20 20 20 20 20 20 20 20 21 20 20 20 65 78 69 74 6c 6f 6f 70 20 20 20 20 20 20 20 2a   ┆            !   exitloop       *┆
0x0806a0…0806c0             29 0a 20 20 28 2a 20 3c 62 61 6c 61 6e 63 64 65 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20   ┆)   (* <balancde statement> ::= ┆
0x0806c0…0806e0             63 6f 6e 74 69 6e 75 65 6c 6f 6f 70 20 2a 29 0a 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20   ┆continueloop *)   (*            ┆
0x0806e0…080700             20 20 20 20 20 20 20 20 20 20 21 20 20 20 65 78 69 74 6c 6f 6f 70 20 20 20 20 20 2a 29 0a 28 2a   ┆          !   exitloop     *) (*┆
0x080700…080720             20 63 6f 64 65 3a 20 63 6f 6e 74 69 6e 75 65 2f 65 78 69 74 2d 6c 6f 6f 70 73 74 61 74 2c 20 70   ┆ code: continue/exit-loopstat, p┆
0x080720…080740             6f 73 73 69 62 6c 79 20 70 72 65 63 65 65 64 65 64 20 62 79 20 65 78 69 74 20 6f 66 20 6c 6f 63   ┆ossibly preceeded by exit of loc┆
0x080740…080760             6b 20 61 6e 64 20 6f 72 20 63 68 61 6e 6e 65 6c 20 2a 29 0a 62 65 67 69 6e 0a 69 66 20 70 72 6f   ┆k and or channel *) begin if pro┆
0x080760…080780             64 3d 39 35 31 20 74 68 65 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 63 6f 6e 74 6c 6f 6f 70 73   ┆d=951 then codeword:= ccontloops┆
0x080780…0807a0             74 61 74 0a 65 6c 73 65 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 78 69 74 6c 6f 6f 70 73 74 61   ┆tat else codeword:= cexitloopsta┆
0x0807a0…0807c0             74 3b 0a 73 74 61 74 5f 73 74 61 63 6b 3a 3d 20 73 74 61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f   ┆t; stat_stack:= statement_stack_┆
0x0807c0…0807e0             74 6f 70 3b 0a 77 68 69 6c 65 20 28 73 74 61 74 5f 73 74 61 63 6b 5e 2e 73 74 61 74 5f 6b 69 6e   ┆top; while (stat_stack^.stat_kin┆
0x0807e0…080800             64 3d 63 6c 6f 63 6b 73 74 61 74 29 20 6f 72 20 28 73 74 61 74 5f 73 74 61 63 6b 5e 2e 73 74 61   ┆d=clockstat) or (stat_stack^.sta┆
0x080800…080820 (34, 0, 9)  74 5f 6b 69 6e 64 3d 63 63 68 61 6e 6e 65 6c 73 74 61 74 29 20 64 6f 0a 62 65 67 69 6e 0a 65 6d   ┆t_kind=cchannelstat) do begin em┆
0x080820…080840             69 74 28 63 65 78 69 74 6c 6f 63 6b 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 73 74 61 74 5f 73   ┆it(cexitlock, nill, nill, stat_s┆
0x080840…080860             74 61 63 6b 5e 2e 73 74 61 74 5f 6b 69 6e 64 29 3b 0a 73 74 61 74 5f 73 74 61 63 6b 3a 3d 20 73   ┆tack^.stat_kind); stat_stack:= s┆
0x080860…080880             74 61 74 5f 73 74 61 63 6b 5e 2e 66 6f 72 6d 65 72 5f 73 74 61 74 3b 0a 65 6e 64 3b 0a 69 66 20   ┆tat_stack^.former_stat; end; if ┆
0x080880…0808a0             73 74 61 74 5f 73 74 61 63 6b 5e 2e 66 6f 72 6d 65 72 5f 73 74 61 74 3d 6e 69 6c 20 28 2a 20 62   ┆stat_stack^.former_stat=nil (* b┆
0x0808a0…0808c0             6f 74 74 6f 6d 20 65 6c 65 6d 65 6e 74 2c 20 69 2e 65 2e 20 6e 6f 74 20 69 6e 73 69 64 65 20 72   ┆ottom element, i.e. not inside r┆
0x0808c0…0808e0             65 70 65 74 69 74 69 76 65 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 20 74 68 65 6e 0a 6d 61 72 6b   ┆epetitive statement *) then mark┆
0x0808e0…080900             65 72 72 6f 72 28 31 30 39 29 3b 20 28 2a 20 6e 6f 74 20 69 6e 73 69 64 65 20 72 65 70 65 74 69   ┆error(109); (* not inside repeti┆
0x080900…080920             74 69 76 65 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 63 6f 64 65 77 6f 72 64 32 3a 3d 20 73 74   ┆tive statement *) codeword2:= st┆
0x080920…080940             61 74 5f 73 74 61 63 6b 5e 2e 73 74 61 74 5f 6b 69 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 63 6f 6e   ┆at_stack^.stat_kind; end; (* con┆
0x080940…080960             74 69 6e 75 65 2d 2f 65 78 69 74 2d 6c 6f 6f 70 73 74 61 74 20 2a 29 0a 0a 39 35 32 3a 20 20 28   ┆tinue-/exit-loopstat *)  952:  (┆
0x080960…080980             2a 20 3c 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 65 78 69 74 20 2a 29 0a 20 20 28 2a 20 3c   ┆* <statement> ::= exit *)   (* <┆
0x080980…0809a0             62 61 6c 61 6e 63 65 64 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20 65 78 69 74 20 2a 29 0a   ┆balanced statement> ::= exit *) ┆
0x0809a0…0809c0             28 2a 20 63 6f 64 65 3a 20 65 78 69 74 73 74 61 74 20 2c 20 70 6f 73 73 69 62 6c 79 20 70 72 65   ┆(* code: exitstat , possibly pre┆
0x0809c0…0809e0             63 65 65 64 65 64 20 62 79 20 65 78 69 74 6c 6f 63 6b 2f 65 78 69 74 63 68 61 6e 6e 65 6c 20 2a   ┆ceeded by exitlock/exitchannel *┆
0x0809e0…080a00             29 0a 62 65 67 69 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 78 69 74 73 74 61 74 3b 0a 73 74   ┆) begin codeword:= cexitstat; st┆
0x080a00…080a20 (34, 0, 10) 61 74 5f 73 74 61 63 6b 3a 3d 20 73 74 61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f 74 6f 70 3b 0a   ┆at_stack:= statement_stack_top; ┆
0x080a20…080a40             77 68 69 6c 65 20 73 74 61 74 5f 73 74 61 63 6b 3c 3e 6e 69 6c 20 64 6f 0a 77 69 74 68 20 73 74   ┆while stat_stack<>nil do with st┆
0x080a40…080a60             61 74 5f 73 74 61 63 6b 5e 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 28 73 74 61 74 5f 6b 69 6e 64   ┆at_stack^ do begin if (stat_kind┆
0x080a60…080a80             3d 63 6c 6f 63 6b 73 74 61 74 29 20 6f 72 20 28 73 74 61 74 5f 6b 69 6e 64 3d 63 63 68 61 6e 6e   ┆=clockstat) or (stat_kind=cchann┆
0x080a80…080aa0             65 6c 73 74 61 74 29 20 74 68 65 6e 0a 65 6d 69 74 28 63 65 78 69 74 6c 6f 63 6b 2c 20 6e 69 6c   ┆elstat) then emit(cexitlock, nil┆
0x080aa0…080ac0             6c 2c 20 6e 69 6c 6c 2c 20 73 74 61 74 5f 6b 69 6e 64 29 3b 0a 73 74 61 74 5f 73 74 61 63 6b 3a   ┆l, nill, stat_kind); stat_stack:┆
0x080ac0…080ae0             3d 20 66 6f 72 6d 65 72 5f 73 74 61 74 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 65 78 69 74   ┆= former_stat; end; end; (* exit┆
0x080ae0…080b00             20 2a 29 0a 0a 39 35 35 3a 20 20 28 2a 20 3c 75 6e 69 74 3e 20 3a 3a 3d 20 3f 20 2a 29 0a 28 2a   ┆ *)  955:  (* <unit> ::= ? *) (*┆
0x080b00…080b20             20 63 6f 64 65 3a 20 73 6b 69 70 70 61 72 61 6d 20 2a 29 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63   ┆ code: skipparam *) codeword:= c┆
0x080b20…080b40             73 6b 69 70 70 61 72 61 6d 3b 0a 0a 39 35 36 3a 20 28 2a 20 3c 6c 6f 6f 70 3e 20 3a 3a 3d 20 6c   ┆skipparam;  956: (* <loop> ::= l┆
0x080b40…080b60             6f 6f 70 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6c 6f 6f 70 73 74 61 74 20 2a 29 0a 62 65 67 69   ┆oop *) (* code: loopstat *) begi┆
0x080b60…080b80             6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 6c 6f 6f 70 73 74 61 74 3b 0a 70 75 73 68 5f 72 65 70   ┆n codeword:= cloopstat; push_rep┆
0x080b80…080ba0             65 74 69 74 69 76 65 5f 73 74 61 74 65 6d 65 6e 74 28 63 6f 64 65 77 6f 72 64 29 3b 0a 65 6e 64   ┆etitive_statement(codeword); end┆
0x080ba0…080bc0             3b 0a 0a 39 35 37 3a 20 28 2a 20 3c 6c 6f 6f 70 20 73 74 61 74 65 6d 65 6e 74 3e 20 3a 3a 3d 20   ┆;  957: (* <loop statement> ::= ┆
0x080bc0…080be0             3c 6c 6f 6f 70 3e 20 3c 73 74 61 74 65 6d 65 6e 74 20 6c 69 73 74 3e 20 65 6e 64 6c 6f 6f 70 20   ┆<loop> <statement list> endloop ┆
0x080be0…080c00             2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 6c 6f 6f 70 73 74 61 74 20 2a 29 0a 62 65 67 69 6e   ┆*) (* code: endloopstat *) begin┆
0x080c00…080c20 (34, 0, 11) 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 6e 64 6c 6f 6f 70 73 74 61 74 3b 0a 28 2a 20 70 6f 70   ┆ codeword:= cendloopstat; (* pop┆
0x080c20…080c40             5f 72 65 70 65 74 69 74 69 76 65 5f 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 73 74 61 74 65 6d 65   ┆_repetitive_statement *) stateme┆
0x080c40…080c60             6e 74 5f 73 74 61 63 6b 5f 74 6f 70 3a 3d 20 73 74 61 74 65 6d 65 6e 74 5f 73 74 61 63 6b 5f 74   ┆nt_stack_top:= statement_stack_t┆
0x080c60…080c80             6f 70 5e 2e 66 6f 72 6d 65 72 5f 73 74 61 74 3b 0a 65 6e 64 3b 0a 0a 39 36 35 2c 20 20 28 2a 20   ┆op^.former_stat; end;  965,  (* ┆
0x080c80…080ca0             3c 6c 6f 63 6b 3e 20 3a 3a 3d 20 6c 6f 63 6b 20 20 20 2a 29 0a 39 36 36 3a 20 20 28 2a 20 20 20   ┆<lock> ::= lock   *) 966:  (*   ┆
0x080ca0…080cc0             20 20 20 20 20 21 20 20 20 6c 6f 63 6b 6d 65 73 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 6c 6f 63   ┆     !   lockmes *) (* code: loc┆
0x080cc0…080ce0             6b 73 74 61 74 2f 6c 6f 63 6b 6d 65 73 73 74 61 74 20 2a 29 0a 62 65 67 69 6e 0a 74 79 70 65 62   ┆kstat/lockmesstat *) begin typeb┆
0x080ce0…080d00             75 66 66 65 72 66 6c 61 67 3a 3d 20 74 72 75 65 3b 20 28 2a 20 75 73 65 20 74 68 65 20 74 79 70   ┆ufferflag:= true; (* use the typ┆
0x080d00…080d20             65 62 75 66 66 65 72 20 74 6f 20 73 61 76 65 20 74 68 65 20 63 6f 64 65 20 66 6f 72 20 74 68 65   ┆ebuffer to save the code for the┆
0x080d20…080d40             20 72 65 66 65 72 65 6e 63 65 0a 76 61 72 69 61 62 6c 65 20 6f 66 20 74 68 65 20 6c 6f 63 6b 20   ┆ reference variable of the lock ┆
0x080d40…080d60             73 74 61 74 65 6d 65 6e 74 2c 20 75 73 65 64 20 66 6f 72 20 73 69 6d 75 6c 61 74 69 6f 6e 20 6f   ┆statement, used for simulation o┆
0x080d60…080d80             66 20 61 6e 20 69 6d 70 6c 69 63 69 74 20 74 79 70 65 20 69 6e 0a 63 61 73 65 20 6f 66 20 6c 6f   ┆f an implicit type in case of lo┆
0x080d80…080da0             63 6b 2f 6c 6f 63 6b 6d 65 73 20 77 69 74 68 6f 75 74 20 72 65 74 79 70 69 6e 67 20 2a 29 0a 69   ┆ck/lockmes without retyping *) i┆
0x080da0…080dc0             66 20 70 72 6f 64 3d 39 36 35 20 74 68 65 6e 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 6c 6f 63 6b   ┆f prod=965 then codeword:= clock┆
0x080dc0…080de0             73 74 61 74 0a 65 6c 73 65 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 6c 6f 63 6b 6d 65 73 73 74 61   ┆stat else codeword:= clockmessta┆
0x080de0…080e00             74 3b 0a 70 75 73 68 5f 72 65 70 65 74 69 74 69 76 65 5f 73 74 61 74 65 6d 65 6e 74 28 63 6c 6f   ┆t; push_repetitive_statement(clo┆
0x080e00…080e20 (34, 0, 12) 63 6b 73 74 61 74 29 3b 20 28 2a 20 70 75 73 68 65 64 20 77 69 74 68 20 73 61 6d 65 20 6b 69 6e   ┆ckstat); (* pushed with same kin┆
0x080e20…080e40             64 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 20 28 2a 20 63 61 73 65 20 2e 2e 2e 2e 20 2a 29   ┆d *) end;  end;  (* case .... *)┆
0x080e40…080e60             0a 0a 28 2a 20 6e 6f 77 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 74 68 65 20   ┆  (* now the parameters for the ┆
0x080e60…080e80             65 6d 69 74 20 63 61 6c 6c 20 68 61 73 20 62 65 65 6e 20 73 65 74 20 75 70 20 2a 29 0a 65 6d 69   ┆emit call has been set up *) emi┆
0x080e80…080ea0             74 28 20 63 6f 64 65 77 6f 72 64 2c 20 70 61 72 61 6d 31 2c 20 6e 69 6c 6c 2c 20 63 6f 64 65 77   ┆t( codeword, param1, nill, codew┆
0x080ea0…080ec0             6f 72 64 32 29 3b 0a 0a 65 6e 64 3b 20 28 2a 20 73 65 63 74 69 6f 6e 20 39 20 20 2a 29 0a 0c 0a   ┆ord2);  end; (* section 9  *)   ┆
0x080ec0…080ee0             70 72 6f 63 65 64 75 72 65 20 65 6d 69 74 72 6f 75 74 69 6e 65 64 65 63 6c 28 20 72 6f 75 74 69   ┆procedure emitroutinedecl( routi┆
0x080ee0…080f00             6e 65 5f 6b 69 6e 64 20 3a 20 63 6f 64 65 73 3b 20 6e 61 6d 65 20 3a 20 6e 61 6d 65 68 65 61 64   ┆ne_kind : codes; name : namehead┆
0x080f00…080f20             70 74 72 29 3b 0a 28 2a 20 65 6d 69 74 3a 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 20 72 6f 75   ┆ptr); (* emit: declaration ( rou┆
0x080f20…080f40             74 69 6e 65 5f 6b 69 6e 64 20 29 0a 2e 20 20 20 20 20 20 20 20 6c 69 74 65 72 61 6c 28 20 74 65   ┆tine_kind ) .        literal( te┆
0x080f40…080f60             78 74 20 6c 65 6e 67 74 68 29 20 27 6e 61 6d 65 27 0a 2e 20 20 20 20 20 20 20 20 64 65 63 6c 61   ┆xt length) 'name' .        decla┆
0x080f60…080f80             72 65 28 20 73 70 69 78 20 29 0a 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 28 63 64 65 63 6c 61 72   ┆re( spix ) *) begin emit(cdeclar┆
0x080f80…080fa0             61 74 69 6f 6e 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 72 6f 75 74 69 6e 65 5f 6b 69 6e 64 29   ┆ation, nill, nill, routine_kind)┆
0x080fa0…080fc0             3b 0a 6c 69 74 65 72 61 6c 73 28 20 34 30 31 20 28 2a 20 69 2e 65 2e 20 74 65 78 74 20 2a 29 20   ┆; literals( 401 (* i.e. text *) ┆
0x080fc0…080fe0             20 20 29 3b 0a 65 6d 69 74 64 65 63 6c 61 72 65 28 64 65 63 6c 2c 20 73 65 61 72 63 68 6e 61 6d   ┆  ); emitdeclare(decl, searchnam┆
0x080fe0…081000             65 28 20 6e 61 6d 65 20 29 20 29 3b 0a 65 6e 64 3b 20 28 2a 20 65 6d 69 74 72 6f 75 74 69 6e 65   ┆e( name ) ); end; (* emitroutine┆
0x081000…081020 (34, 0, 13) 64 65 63 6c 20 2a 29 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 72 6f 63 65 64 75 72 65 64 65 63   ┆decl *)   procedure proceduredec┆
0x081020…081040             6c 61 72 61 74 69 6f 6e 3b 0a 28 2a 20 73 65 63 74 69 6f 6e 20 31 30 20 2a 29 0a 0a 28 2a 20 74   ┆laration; (* section 10 *)  (* t┆
0x081040…081060             68 69 73 20 73 65 63 74 69 6f 6e 20 63 6f 76 65 72 73 2d 69 6e 20 61 64 64 69 74 69 6f 6e 20 74   ┆his section covers-in addition t┆
0x081060…081080             6f 20 70 72 6f 63 65 64 75 72 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2d 74 68 65 0a 70 61 72   ┆o procedure declarations-the par┆
0x081080…0810a0             73 69 6e 67 20 6f 66 20 3c 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 3e 20 61 6e 64 20   ┆sing of <formal parameters> and ┆
0x0810a0…0810c0             3c 62 6c 6f 63 6b 3e 20 61 6e 64 20 3c 64 65 63 6c 61 72 61 74 69 6f 6e 73 3e 20 2a 29 0a 0a 76   ┆<block> and <declarations> *)  v┆
0x0810c0…0810e0             61 72 0a 6e 61 6d 65 20 3a 20 6e 61 6d 65 68 65 61 64 70 74 72 3b 0a 63 6f 64 65 77 6f 72 64 20   ┆ar name : nameheadptr; codeword ┆
0x0810e0…081100             3a 20 63 6f 64 65 73 3b 0a 73 74 65 70 20 3a 20 69 6e 74 65 67 65 72 3b 0a 0a 62 65 67 69 6e 0a   ┆: codes; step : integer;  begin ┆
0x081100…081120             63 61 73 65 20 70 72 6f 64 20 6f 66 0a 31 30 30 31 3a 20 20 28 2a 20 3c 73 70 69 78 20 6e 61 6d   ┆case prod of 1001:  (* <spix nam┆
0x081120…081140             65 3e 20 3a 3a 3d 20 6e 61 6d 65 20 20 20 2a 29 0a 28 2a 20 61 63 74 69 6f 6e 3a 20 70 69 63 6b   ┆e> ::= name   *) (* action: pick┆
0x081140…081160             20 75 70 20 6e 61 6d 65 20 61 6e 64 20 72 65 6d 65 6d 62 65 72 20 6e 61 6d 65 20 68 65 61 64 20   ┆ up name and remember name head ┆
0x081160…081180             69 6e 20 20 20 61 6c 69 61 73 20 6e 61 6d 65 20 20 20 20 20 2a 29 0a 61 6c 69 61 73 5f 6e 61 6d   ┆in   alias name     *) alias_nam┆
0x081180…0811a0             65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 0a 0a 31 30 30 32 3a 20 20 28 2a 20 3c 72 6f 75 74 69   ┆e:= readname;   1002:  (* <routi┆
0x0811a0…0811c0             6e 65 20 68 65 61 64 69 6e 67 3e 20 3a 3a 3d 20 3c 70 72 6f 63 65 64 75 72 65 20 68 65 61 64 69   ┆ne heading> ::= <procedure headi┆
0x0811c0…0811e0             6e 67 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 70 72 6f 63 64 65 63 6c 20 2a 29 0a 62   ┆ng> *) (* code: endprocdecl *) b┆
0x0811e0…081200             65 67 69 6e 0a 65 6d 69 74 63 6f 64 65 28 63 65 6e 64 70 72 6f 63 64 65 63 6c 29 3b 0a 65 6e 64   ┆egin emitcode(cendprocdecl); end┆
0x081200…081220 (34, 0, 14) 3b 0a 0a 31 30 30 33 3a 20 20 28 2a 20 3c 70 72 6f 63 65 64 75 72 65 20 6e 61 6d 65 3e 20 3a 3a   ┆;  1003:  (* <procedure name> ::┆
0x081220…081240             3d 20 6e 61 6d 65 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72 61 74 69 6f 6e 28   ┆= name  *) (* code: declaration(┆
0x081240…081260             20 70 72 6f 63 65 64 75 72 65 20 29 20 6c 69 74 65 72 61 6c 28 20 74 65 78 74 20 6c 65 6e 67 74   ┆ procedure ) literal( text lengt┆
0x081260…081280             68 29 20 27 6e 61 6d 65 27 20 20 64 65 63 6c 61 72 65 28 20 73 70 69 78 20 29 20 2a 29 0a 62 65   ┆h) 'name'  declare( spix ) *) be┆
0x081280…0812a0             67 69 6e 0a 6e 61 6d 65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 65 6d 69 74 72 6f 75 74 69 6e 65   ┆gin name:= readname; emitroutine┆
0x0812a0…0812c0             64 65 63 6c 28 20 63 70 72 6f 63 65 64 75 72 65 2c 20 6e 61 6d 65 20 29 3b 0a 65 6e 64 3b 0a 0a   ┆decl( cprocedure, name ); end;  ┆
0x0812c0…0812e0             31 30 30 34 3a 20 20 28 2a 20 3c 70 72 6f 63 65 64 75 72 65 20 6e 61 6d 65 3e 20 3a 3a 3d 20 3c   ┆1004:  (* <procedure name> ::= <┆
0x0812e0…081300             73 70 69 78 20 6e 61 6d 65 3e 3d 6e 61 6d 65 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c   ┆spix name>=name *) (* code: decl┆
0x081300…081320             61 72 61 74 69 6f 6e 20 64 65 63 6c 61 72 65 2c 20 20 20 20 6e 62 3a 20 6e 61 6d 65 20 6c 69 74   ┆aration declare,    nb: name lit┆
0x081320…081340             65 72 61 6c 20 69 73 20 6e 61 6d 65 20 62 75 74 20 73 70 69 78 20 69 73 0a 66 72 6f 6d 20 20 73   ┆eral is name but spix is from  s┆
0x081340…081360             70 69 78 20 6e 61 6d 65 20 20 21 21 20 20 2a 29 0a 65 6d 69 74 72 6f 75 74 69 6e 65 64 65 63 6c   ┆pix name  !!  *) emitroutinedecl┆
0x081360…081380             28 20 63 70 72 6f 63 65 64 75 72 65 2c 20 61 6c 69 61 73 5f 6e 61 6d 65 20 29 3b 0a 0a 31 30 30   ┆( cprocedure, alias_name );  100┆
0x081380…0813a0             36 3a 20 20 28 2a 20 3c 70 61 72 61 6d 65 74 65 72 20 64 65 73 63 72 69 70 74 69 6f 6e 3e 20 3a   ┆6:  (* <parameter description> :┆
0x0813a0…0813c0             3a 3d 20 3c 76 61 72 20 6f 72 20 76 61 6c 75 65 3e 20 3c 70 61 72 61 6d 65 74 65 72 20 67 72 6f   ┆:= <var or value> <parameter gro┆
0x0813c0…0813e0             75 70 3e 0a 20 20 3c 74 79 70 65 20 63 6f 6c 6f 6e 3e 20 3c 74 79 70 65 3e 20 20 2a 29 0a 28 2a   ┆up>   <type colon> <type>  *) (*┆
0x0813e0…081400             20 63 6f 64 65 3a 20 65 6e 64 66 6f 72 6d 61 6c 6c 69 73 74 20 2a 29 0a 65 6d 69 74 63 6f 64 65   ┆ code: endformallist *) emitcode┆
0x081400…081420 (34, 0, 15) 28 63 65 6e 64 66 6f 72 6d 61 6c 6c 69 73 74 29 3b 0a 0a 31 30 30 37 3a 20 20 28 2a 20 3c 66 6f   ┆(cendformallist);  1007:  (* <fo┆
0x081420…081440             72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 3e 20 3a 3a 3d 20 3c 69 6e 69 74 20 66 6f 72 6d 61   ┆rmal parameters> ::= <init forma┆
0x081440…081460             6c 3e 20 2a 29 0a 28 2a 20 20 20 20 20 20 20 20 20 21 20 3c 69 6e 69 74 20 66 6f 72 6d 61 6c 3e   ┆l> *) (*         ! <init formal>┆
0x081460…081480             20 28 20 3c 66 6f 72 6d 61 6c 20 6c 69 73 74 3e 20 29 20 20 20 20 2a 29 0a 28 2a 20 63 6f 64 65   ┆ ( <formal list> )    *) (* code┆
0x081480…0814a0             3a 20 65 6e 64 66 6f 72 6d 61 6c 20 20 2a 29 0a 69 66 20 6e 6f 74 20 72 65 64 75 63 65 64 5f 69   ┆: endformal  *) if not reduced_i┆
0x0814a0…0814c0             6e 74 65 72 6d 65 64 69 61 74 65 5f 6c 61 6e 67 75 61 67 65 20 74 68 65 6e 0a 65 6d 69 74 63 6f   ┆ntermediate_language then emitco┆
0x0814c0…0814e0             64 65 28 63 65 6e 64 66 6f 72 6d 61 6c 29 3b 0a 0a 31 30 30 38 3a 20 20 28 2a 20 3c 70 61 72 61   ┆de(cendformal);  1008:  (* <para┆
0x0814e0…081500             6d 65 74 65 72 20 67 72 6f 75 70 3e 20 3a 3a 3d 20 6e 61 6d 65 20 20 2a 29 0a 28 2a 20 20 20 20   ┆meter group> ::= name  *) (*    ┆
0x081500…081520             20 20 20 20 20 21 20 3c 70 61 72 61 6d 65 74 65 72 20 67 72 6f 75 70 3e 20 2c 20 6e 61 6d 65 20   ┆     ! <parameter group> , name ┆
0x081520…081540             20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72 65 6c 69 73 74 28 20 73 70 69 78 20 29   ┆ *) (* code: declarelist( spix )┆
0x081540…081560             20 2a 29 0a 62 65 67 69 6e 0a 6e 61 6d 65 3a 3d 20 72 65 61 64 6e 61 6d 65 3b 0a 65 6d 69 74 64   ┆ *) begin name:= readname; emitd┆
0x081560…081580             65 63 6c 61 72 65 28 64 65 63 6c 6c 69 73 74 2c 20 73 65 61 72 63 68 6e 61 6d 65 28 6e 61 6d 65   ┆eclare(decllist, searchname(name┆
0x081580…0815a0             29 29 3b 0a 65 6e 64 3b 0a 0a 31 30 30 39 3a 20 20 28 2a 20 3c 64 65 63 6c 61 72 61 74 69 6f 6e   ┆)); end;  1009:  (* <declaration┆
0x0815a0…0815c0             73 3e 20 3a 3a 3d 20 3c 62 65 67 69 6e 20 6c 65 76 65 6c 3e 20 3c 64 65 63 6c 73 3e 20 20 20 2a   ┆s> ::= <begin level> <decls>   *┆
0x0815c0…0815e0             29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 20 2a 29 0a 62   ┆) (* code: enddeclarations  *) b┆
0x0815e0…081600             65 67 69 6e 0a 69 66 20 63 6f 6e 74 65 78 74 70 61 72 73 69 6e 67 20 74 68 65 6e 20 4c 6f 63 61   ┆egin if contextparsing then Loca┆
0x081600…081620 (34, 1, 1)  6c 6c 69 6e 65 6e 75 6d 62 65 72 20 3a 3d 20 2d 31 20 65 6c 73 65 20 4c 6f 63 61 6c 6c 69 6e 65   ┆llinenumber := -1 else Localline┆
0x081620…081640             4e 75 6d 62 65 72 20 3a 3d 20 30 3b 0a 65 6d 69 74 63 6f 64 65 28 63 65 6e 64 64 65 63 6c 61 72   ┆Number := 0; emitcode(cenddeclar┆
0x081640…081660             61 74 69 6f 6e 73 29 3b 0a 65 6e 64 3b 0a 0a 31 30 31 30 3a 20 20 28 2a 20 3c 62 65 67 69 6e 20   ┆ations); end;  1010:  (* <begin ┆
0x081660…081680             6c 65 76 65 6c 3e 20 3a 3a 3d 20 65 6d 70 74 79 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 62 65   ┆level> ::= empty  *) (* code: be┆
0x081680…0816a0             67 69 6e 6c 65 76 65 6c 20 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 63 6f 64 65 28 63 62 65 67 69   ┆ginlevel *) begin emitcode(cbegi┆
0x0816a0…0816c0             6e 6c 65 76 65 6c 29 3b 0a 65 6e 64 3b 0a 0a 31 30 31 31 3a 20 20 28 2a 20 3c 62 6c 6f 63 6b 3e   ┆nlevel); end;  1011:  (* <block>┆
0x0816c0…0816e0             20 3a 3a 3d 20 3c 64 65 63 6c 61 72 61 74 69 6f 6e 73 3e 20 3c 73 74 61 72 74 20 6c 61 62 65 6c   ┆ ::= <declarations> <start label┆
0x0816e0…081700             73 63 6f 70 65 3e 20 3c 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 3e 0a 3c 65 6e 64   ┆scope> <compound statement> <end┆
0x081700…081720             20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 20 20 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64   ┆ labelscope>     *) (* code: end┆
0x081720…081740             62 6c 6f 63 6b 20 65 6e 64 6c 65 76 65 6c 20 65 6e 64 6c 65 76 65 6c 20 20 2a 29 0a 28 2a 20 61   ┆block endlevel endlevel  *) (* a┆
0x081740…081760             63 74 69 6f 6e 3a 20 73 74 6f 70 20 6c 6f 63 61 6c 20 6c 69 6e 65 20 6e 75 6d 62 65 72 69 6e 67   ┆ction: stop local line numbering┆
0x081760…081780             20 20 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 62 6f 74 68 28 63 65 6e 64 62 6c 6f 63 6b 2c 20 6e   ┆  *) begin emitboth(cendblock, n┆
0x081780…0817a0             69 6c 6c 2c 20 6e 69 6c 6c 29 3b 0a 65 6d 69 74 28 20 63 65 6e 64 6c 65 76 65 6c 2c 20 6e 69 6c   ┆ill, nill); emit( cendlevel, nil┆
0x0817a0…0817c0             6c 2c 20 6e 69 6c 6c 2c 20 63 65 6e 64 6c 65 76 65 6c 29 3b 0a 6c 6f 63 61 6c 6c 69 6e 65 6e 75   ┆l, nill, cendlevel); locallinenu┆
0x0817c0…0817e0             6d 62 65 72 3a 3d 20 2d 31 3b 20 28 2a 20 73 75 70 70 72 65 73 73 20 70 72 69 6e 74 69 6e 67 20   ┆mber:= -1; (* suppress printing ┆
0x0817e0…081800             6f 66 20 6c 6f 63 61 6c 20 6c 69 6e 65 20 6e 75 6d 62 65 72 73 20 2a 29 0a 69 66 20 63 6f 6e 74   ┆of local line numbers *) if cont┆
0x081800…081820 (34, 1, 2)  65 78 74 70 61 72 73 69 6e 67 20 74 68 65 6e 0a 6d 61 72 6b 65 72 72 6f 72 28 31 31 30 20 28 2a   ┆extparsing then markerror(110 (*┆
0x081820…081840             20 52 6f 75 74 69 6e 65 73 20 69 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 75 73 74 20 62 65   ┆ Routines in environment must be┆
0x081840…081860             20 45 58 54 45 52 4e 41 4c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 2a 29 29 3b 0a 65 6e 64 3b   ┆ EXTERNAL declarations *)); end;┆
0x081860…081880             0a 0a 31 30 32 30 2c 20 20 28 2a 20 3c 62 6c 6f 63 6b 3e 20 3a 3a 3d 20 65 78 74 65 72 6e 61 6c   ┆  1020,  (* <block> ::= external┆
0x081880…0818a0             20 20 2a 29 0a 31 30 32 31 3a 20 28 2a 20 20 20 20 20 20 21 20 66 6f 72 77 61 72 64 20 20 20 20   ┆  *) 1021: (*      ! forward    ┆
0x0818a0…0818c0             2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 78 74 65 72 6e 61 6c 2f 66 6f 72 77 61 72 64 20 20 65 6e   ┆*) (* code: external/forward  en┆
0x0818c0…0818e0             64 6c 65 76 65 6c 20 2a 29 0a 62 65 67 69 6e 0a 69 66 20 70 72 6f 64 3d 31 30 32 30 20 74 68 65   ┆dlevel *) begin if prod=1020 the┆
0x0818e0…081900             6e 20 63 6f 64 65 77 6f 72 64 3a 3d 20 63 65 78 74 65 72 6e 61 6c 0a 65 6c 73 65 20 63 6f 64 65   ┆n codeword:= cexternal else code┆
0x081900…081920             77 6f 72 64 3a 3d 20 63 66 6f 72 77 61 72 64 3b 0a 65 6d 69 74 63 6f 64 65 28 63 6f 64 65 77 6f   ┆word:= cforward; emitcode(codewo┆
0x081920…081940             72 64 29 3b 0a 65 6d 69 74 63 6f 64 65 28 63 65 6e 64 6c 65 76 65 6c 29 3b 0a 6c 6f 63 61 6c 6c   ┆rd); emitcode(cendlevel); locall┆
0x081940…081960             69 6e 65 6e 75 6d 62 65 72 3a 3d 20 2d 31 3b 0a 65 6e 64 3b 0a 0a 31 30 32 32 3a 20 20 28 2a 20   ┆inenumber:= -1; end;  1022:  (* ┆
0x081960…081980             3c 69 6e 69 74 20 66 6f 72 6d 61 6c 3e 20 3a 3a 3d 20 65 6d 70 74 79 20 20 2a 29 0a 28 2a 20 63   ┆<init formal> ::= empty  *) (* c┆
0x081980…0819a0             6f 64 65 3a 20 62 65 67 69 6e 6c 65 76 65 6c 20 20 2a 29 0a 65 6d 69 74 63 6f 64 65 28 63 62 65   ┆ode: beginlevel  *) emitcode(cbe┆
0x0819a0…0819c0             67 69 6e 6c 65 76 65 6c 29 3b 0a 0a 31 30 32 33 2c 20 20 28 2a 20 3c 76 61 72 20 6f 72 20 76 61   ┆ginlevel);  1023,  (* <var or va┆
0x0819c0…0819e0             6c 75 65 3e 20 3a 3a 3d 20 65 6d 70 74 79 20 20 2a 29 0a 31 30 32 34 3a 20 28 2a 20 20 20 20 20   ┆lue> ::= empty  *) 1024: (*     ┆
0x0819e0…081a00             20 21 20 76 61 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29 0a 28 2a   ┆ ! var                     *) (*┆
0x081a00…081a20 (34, 1, 3)  20 63 6f 64 65 3a 20 64 65 63 6c 61 72 61 74 69 6f 6e 28 20 76 61 6c 75 65 70 2f 76 61 72 70 20   ┆ code: declaration( valuep/varp ┆
0x081a20…081a40             29 20 20 2a 29 0a 62 65 67 69 6e 0a 69 66 20 70 72 6f 64 3d 31 30 32 33 20 74 68 65 6e 20 63 6f   ┆)  *) begin if prod=1023 then co┆
0x081a40…081a60             64 65 77 6f 72 64 3a 3d 20 63 76 61 6c 75 65 70 0a 65 6c 73 65 20 63 6f 64 65 77 6f 72 64 3a 3d   ┆deword:= cvaluep else codeword:=┆
0x081a60…081a80             20 63 76 61 72 70 3b 0a 65 6d 69 74 28 20 63 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 6e 69 6c 6c   ┆ cvarp; emit( cdeclaration, nill┆
0x081a80…081aa0             2c 20 6e 69 6c 6c 2c 20 63 6f 64 65 77 6f 72 64 29 3b 0a 65 6e 64 3b 0a 0a 0a 65 6e 64 3b 20 28   ┆, nill, codeword); end;   end; (┆
0x081aa0…081ac0             2a 20 63 61 73 65 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 73 65 63 74 69 6f 6e 20 31 30 20 2a 29   ┆* case *)  end; (* section 10 *)┆
0x081ac0…081ae0             0a 0a 0c 0a 70 72 6f 63 65 64 75 72 65 20 66 75 6e 63 74 69 6f 6e 64 65 63 6c 61 72 61 74 69 6f   ┆    procedure functiondeclaratio┆
0x081ae0…081b00             6e 3b 0a 28 2a 20 73 65 63 74 69 6f 6e 20 31 31 20 20 2a 29 0a 0a 62 65 67 69 6e 0a 0a 63 61 73   ┆n; (* section 11  *)  begin  cas┆
0x081b00…081b20             65 20 70 72 6f 64 20 6f 66 0a 31 31 30 31 3a 20 20 28 2a 20 3c 72 6f 75 74 69 6e 65 20 68 65 61   ┆e prod of 1101:  (* <routine hea┆
0x081b20…081b40             64 69 6e 67 3e 20 3a 3a 3d 20 3c 66 75 6e 63 74 69 6f 6e 20 68 65 61 64 69 6e 67 3e 20 2a 29 0a   ┆ding> ::= <function heading> *) ┆
0x081b40…081b60             28 2a 20 63 6f 64 65 3a 20 65 6e 64 66 75 6e 63 64 65 63 6c 20 20 2a 29 0a 62 65 67 69 6e 0a 65   ┆(* code: endfuncdecl  *) begin e┆
0x081b60…081b80             6d 69 74 63 6f 64 65 28 63 65 6e 64 66 75 6e 63 64 65 63 6c 29 3b 0a 65 6e 64 3b 0a 0a 31 31 30   ┆mitcode(cendfuncdecl); end;  110┆
0x081b80…081ba0             32 3a 20 20 28 2a 20 3c 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3e 20 3a 3a 3d 20 6e 61 6d 65 20   ┆2:  (* <function name> ::= name ┆
0x081ba0…081bc0             2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 20 66 75 6e 63 74 69   ┆*) (* code: declaration ( functi┆
0x081bc0…081be0             6f 6e 20 29 0a 2e 20 20 20 20 20 20 20 20 6c 69 74 65 72 61 6c 20 28 20 74 65 78 74 20 6c 65 6e   ┆on ) .        literal ( text len┆
0x081be0…081c00             67 74 68 20 29 20 27 6e 61 6d 65 27 0a 2e 20 20 20 20 20 20 20 20 64 65 63 6c 61 72 65 20 28 20   ┆gth ) 'name' .        declare ( ┆
0x081c00…081c20 (34, 1, 4)  73 70 69 78 20 29 0a 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 72 6f 75 74 69 6e 65 64 65 63 6c 28   ┆spix ) *) begin emitroutinedecl(┆
0x081c20…081c40             20 63 66 75 6e 63 74 69 6f 6e 2c 20 72 65 61 64 6e 61 6d 65 20 29 3b 0a 65 6e 64 3b 0a 31 31 30   ┆ cfunction, readname ); end; 110┆
0x081c40…081c60             33 3a 20 20 28 2a 20 3c 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 3e 20 3a 3a 3d 20 3c 73 70 69 78   ┆3:  (* <function name> ::= <spix┆
0x081c60…081c80             20 6e 61 6d 65 3e 3d 6e 61 6d 65 20 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65 63 6c 61 72   ┆ name>=name   *) (* code: declar┆
0x081c80…081ca0             61 74 69 6f 6e 20 64 65 63 6c 61 72 65 2c 20 20 6e 62 3a 20 74 68 65 20 6c 69 74 65 72 61 6c 20   ┆ation declare,  nb: the literal ┆
0x081ca0…081cc0             69 73 20 20 6e 61 6d 65 20 62 75 74 20 74 68 65 0a 73 70 69 78 20 69 73 20 74 68 61 74 20 6f 66   ┆is  name but the spix is that of┆
0x081cc0…081ce0             20 73 70 69 78 20 6e 61 6d 65 20 20 21 21 20 2a 29 0a 65 6d 69 74 72 6f 75 74 69 6e 65 64 65 63   ┆ spix name  !! *) emitroutinedec┆
0x081ce0…081d00             6c 28 20 63 66 75 6e 63 74 69 6f 6e 2c 20 61 6c 69 61 73 5f 6e 61 6d 65 20 29 3b 0a 0a 0a 65 6e   ┆l( cfunction, alias_name );   en┆
0x081d00…081d20             64 3b 20 28 2a 20 63 61 73 65 20 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 73 65 63 74 69 6f 6e 20   ┆d; (* case  *)  end; (* section ┆
0x081d20…081d40             31 31 20 20 2a 29 0a 0a 0c 0a 70 72 6f 63 65 64 75 72 65 20 6c 61 62 65 6c 64 65 63 6c 61 72 61   ┆11  *)    procedure labeldeclara┆
0x081d40…081d60             74 69 6f 6e 3b 0a 28 2a 20 73 65 63 74 69 6f 6e 20 31 32 20 2a 29 0a 0a 0a 62 65 67 69 6e 0a 20   ┆tion; (* section 12 *)   begin  ┆
0x081d60…081d80             63 61 73 65 20 70 72 6f 64 20 6f 66 0a 31 32 30 31 3a 20 20 20 28 2a 20 3c 6c 61 62 65 6c 20 6e   ┆case prod of 1201:   (* <label n┆
0x081d80…081da0             61 6d 65 3e 20 3a 3a 3d 20 6e 61 6d 65 20 20 2a 29 0a 28 2a 20 20 20 20 20 20 20 20 21 20 6b 6f   ┆ame> ::= name  *) (*        ! ko┆
0x081da0…081dc0             6e 73 74 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 69 66 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20   ┆nst *) (* code: if declarations ┆
0x081dc0…081de0             74 68 65 6e 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 28 20 6c 61 62 65 6c 20 29 20 64 65 63 6c 61   ┆then  declaration( label ) decla┆
0x081de0…081e00             72 65 28 20 73 70 69 78 20 29 0a 65 6c 73 65 0a 6c 61 62 65 6c 64 65 66 28 20 63 75 72 72 65 6e   ┆re( spix ) else labeldef( curren┆
0x081e00…081e20 (34, 1, 5)  74 6c 61 62 65 6c 73 63 6f 70 65 20 73 70 69 78 29 2c 0a 6c 61 62 65 6c 64 65 66 28 20 63 75 72   ┆tlabelscope spix), labeldef( cur┆
0x081e20…081e40             72 65 6e 74 6c 61 62 65 6c 73 63 6f 70 65 20 73 70 69 78 20 29 20 20 20 20 2a 29 0a 69 66 20 6c   ┆rentlabelscope spix )    *) if l┆
0x081e40…081e60             6f 63 61 6c 6c 69 6e 65 6e 75 6d 62 65 72 3d 2d 31 20 74 68 65 6e 20 28 2a 20 69 2e 65 2e 20 64   ┆ocallinenumber=-1 then (* i.e. d┆
0x081e60…081e80             65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 61 20 6c 61 62 65 6c 20 2a 29 0a 62 65 67 69 6e 0a 65   ┆eclaration of a label *) begin e┆
0x081e80…081ea0             6d 69 74 28 20 63 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63   ┆mit( cdeclaration, nill, nill, c┆
0x081ea0…081ec0             6c 61 62 65 6c 29 3b 0a 65 6d 69 74 64 65 63 6c 61 72 65 28 64 65 63 6c 2c 73 65 61 72 63 68 6e   ┆label); emitdeclare(decl,searchn┆
0x081ec0…081ee0             61 6d 65 28 72 65 61 64 6e 61 6d 65 29 29 3b 0a 65 6e 64 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 65   ┆ame(readname)); end else begin e┆
0x081ee0…081f00             6d 69 74 62 6f 74 68 28 63 6c 61 62 65 6c 64 65 66 2c 20 63 75 72 72 65 6e 74 6c 61 62 65 6c 73   ┆mitboth(clabeldef, currentlabels┆
0x081f00…081f20             63 6f 70 65 2c 20 73 65 61 72 63 68 6e 61 6d 65 28 72 65 61 64 6e 61 6d 65 29 29 3b 0a 65 6e 64   ┆cope, searchname(readname)); end┆
0x081f20…081f40             3b 0a 0a 31 32 30 32 3a 20 20 28 2a 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20   ┆;  1202:  (* <start labelscope> ┆
0x081f40…081f60             3a 3a 3d 20 65 6d 70 74 79 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 73 74 61 72 74 6c 61 62 65   ┆::= empty  *) (* code: startlabe┆
0x081f60…081f80             6c 73 63 6f 70 65 28 20 73 63 6f 70 65 20 29 20 20 2a 29 0a 62 65 67 69 6e 0a 61 74 74 73 74 61   ┆lscope( scope )  *) begin attsta┆
0x081f80…081fa0             63 6b 5b 20 6e 65 77 74 6f 70 20 5d 20 2e 20 6f 6c 64 6c 61 62 65 6c 73 63 6f 70 65 3a 3d 20 63   ┆ck[ newtop ] . oldlabelscope:= c┆
0x081fa0…081fc0             75 72 72 65 6e 74 6c 61 62 65 6c 73 63 6f 70 65 3b 0a 6c 61 73 74 6c 61 62 65 6c 73 63 6f 70 65   ┆urrentlabelscope; lastlabelscope┆
0x081fc0…081fe0             3a 3d 20 6c 61 73 74 6c 61 62 65 6c 73 63 6f 70 65 2b 31 3b 0a 63 75 72 72 65 6e 74 6c 61 62 65   ┆:= lastlabelscope+1; currentlabe┆
0x081fe0…082000             6c 73 63 6f 70 65 3a 3d 20 6c 61 73 74 6c 61 62 65 6c 73 63 6f 70 65 3b 0a 65 6d 69 74 28 63 73   ┆lscope:= lastlabelscope; emit(cs┆
0x082000…082020 (34, 1, 6)  74 61 72 74 6c 61 62 65 6c 73 63 6f 70 65 2c 20 63 75 72 72 65 6e 74 6c 61 62 65 6c 73 63 6f 70   ┆tartlabelscope, currentlabelscop┆
0x082020…082040             65 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 65 6e 64 3b 0a 0a 31 32 30 33 3a 20 20   ┆e, nill, cnocode); end;  1203:  ┆
0x082040…082060             28 2a 20 3c 65 6e 64 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 3a 3a 3d 20 65 6d 70 74 79 20 20 2a   ┆(* <end labelscope> ::= empty  *┆
0x082060…082080             29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 6c 61 62 65 6c 73 63 6f 70 65 28 20 73 63 6f 70 65 20   ┆) (* code: endlabelscope( scope ┆
0x082080…0820a0             29 20 20 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 28 63 65 6e 64 6c 61 62 65 6c 73 63 6f 70 65 2c   ┆)  *) begin emit(cendlabelscope,┆
0x0820a0…0820c0             20 63 75 72 72 65 6e 74 6c 61 62 65 6c 73 63 6f 70 65 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64   ┆ currentlabelscope, nill, cnocod┆
0x0820c0…0820e0             65 29 3b 0a 63 75 72 72 65 6e 74 6c 61 62 65 6c 73 63 6f 70 65 3a 3d 20 61 74 74 73 74 61 63 6b   ┆e); currentlabelscope:= attstack┆
0x0820e0…082100             5b 20 6e 65 77 74 6f 70 2d 32 20 5d 20 2e 20 6f 6c 64 6c 61 62 65 6c 73 63 6f 70 65 3b 0a 28 2a   ┆[ newtop-2 ] . oldlabelscope; (*┆
0x082100…082120             20 69 2e 65 2e 20 67 65 74 20 74 68 65 20 73 63 6f 70 65 20 73 74 6f 72 65 64 20 69 6e 20 61 74   ┆ i.e. get the scope stored in at┆
0x082120…082140             74 73 74 61 63 6b 5b 20 3c 73 74 61 72 74 20 6c 61 62 65 6c 73 63 6f 70 65 3e 20 5d 20 20 2a 29   ┆tstack[ <start labelscope> ]  *)┆
0x082140…082160             0a 65 6e 64 3b 0a 0a 20 65 6e 64 3b 20 20 28 2a 20 63 61 73 65 20 2a 29 0a 0a 65 6e 64 3b 20 28   ┆ end;   end;  (* case *)  end; (┆
0x082160…082180             2a 20 73 65 63 74 69 6f 6e 20 31 32 20 2a 29 0a 0a 0c 0a 70 72 6f 63 65 64 75 72 65 20 70 72 6f   ┆* section 12 *)    procedure pro┆
0x082180…0821a0             63 65 73 73 64 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 28 2a 20 73 65 63 74 69 6f 6e 20 31 33 2c 20   ┆cessdeclaration; (* section 13, ┆
0x0821a0…0821c0             70 72 6f 63 65 73 73 20 61 6e 64 20 70 72 65 66 69 78 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 2a   ┆process and prefix declaration *┆
0x0821c0…0821e0             29 0a 0a 76 61 72 0a 6e 61 6d 65 20 3a 20 6e 61 6d 65 68 65 61 64 70 74 72 3b 0a 63 6f 64 65 77   ┆)  var name : nameheadptr; codew┆
0x0821e0…082200             6f 72 64 20 3a 20 63 6f 64 65 73 3b 0a 0a 62 65 67 69 6e 0a 63 61 73 65 20 70 72 6f 64 20 6f 66   ┆ord : codes;  begin case prod of┆
0x082200…082220 (34, 1, 7)  0a 0a 31 33 30 31 3a 20 20 28 2a 20 3c 63 6f 6e 74 65 78 74 20 6e 61 6d 65 3e 20 3a 3a 3d 20 6e   ┆  1301:  (* <context name> ::= n┆
0x082220…082240             61 6d 65 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 63 6f 6e 74 65 78 74 28 20 73 70 69 78 20 29 20   ┆ame *) (* code: context( spix ) ┆
0x082240…082260             20 2a 29 0a 62 65 67 69 6e 0a 69 66 20 62 65 66 6f 72 65 5f 73 74 61 6e 64 61 72 64 5f 64 65 66   ┆ *) begin if before_standard_def┆
0x082260…082280             73 20 74 68 65 6e 0a 70 72 65 64 65 66 5f 65 6e 76 69 72 6f 6e 6d 65 6e 74 3b 0a 6e 61 6d 65 3a   ┆s then predef_environment; name:┆
0x082280…0822a0             3d 20 72 65 61 64 6e 61 6d 65 3b 0a 65 6d 69 74 28 63 63 6f 6e 74 65 78 74 2c 20 73 65 61 72 63   ┆= readname; emit(ccontext, searc┆
0x0822a0…0822c0             68 6e 61 6d 65 28 6e 61 6d 65 29 2c 20 6e 69 6c 6c 2c 20 63 6e 6f 63 6f 64 65 29 3b 0a 63 6f 6e   ┆hname(name), nill, cnocode); con┆
0x0822c0…0822e0             74 65 78 74 70 61 72 73 69 6e 67 3a 3d 20 74 72 75 65 3b 0a 65 6e 64 3b 0a 0a 31 33 30 33 3a 20   ┆textparsing:= true; end;  1303: ┆
0x0822e0…082300             20 28 2a 20 3c 62 6f 64 79 3e 20 3a 3a 3d 20 3c 62 6f 64 79 20 6c 69 73 74 3e 20 20 2a 29 0a 28   ┆ (* <body> ::= <body list>  *) (┆
0x082300…082320             2a 20 63 6f 64 65 3a 20 65 6f 6d 20 20 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 63 6f 64 65 28 63   ┆* code: eom  *) begin emitcode(c┆
0x082320…082340             65 6f 6d 29 3b 0a 6f 6b 3a 3d 20 66 61 6c 73 65 3b 20 28 2a 20 73 74 6f 70 20 70 61 72 73 69 6e   ┆eom); ok:= false; (* stop parsin┆
0x082340…082360             67 20 2a 29 0a 69 66 20 6e 6f 74 20 70 72 69 6e 74 65 64 20 74 68 65 6e 20 70 72 69 6e 74 6c 69   ┆g *) if not printed then printli┆
0x082360…082380             6e 65 3b 20 28 2a 20 70 72 69 6e 74 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65 20 2a 29 0a 65 6e   ┆ne; (* print the last line *) en┆
0x082380…0823a0             64 3b 0a 0a 31 33 30 34 3a 20 20 28 2a 20 3c 70 72 6f 63 73 65 6d 73 3e 20 3a 3a 3d 20 3c 73 65   ┆d;  1304:  (* <procsems> ::= <se┆
0x0823a0…0823c0             6d 69 63 6f 6c 6f 6e 73 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 70 72 6f 63 64 65 63   ┆micolons> *) (* code: endprocdec┆
0x0823c0…0823e0             6c 20 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 63 6f 64 65 28 63 65 6e 64 70 72 6f 63 64 65 63 6c   ┆l *) begin emitcode(cendprocdecl┆
0x0823e0…082400             29 3b 0a 0a 65 6e 64 3b 0a 0a 31 33 30 35 2c 20 20 28 2a 20 3c 70 72 6f 63 65 73 73 20 6e 61 6d   ┆);  end;  1305,  (* <process nam┆
0x082400…082420 (34, 1, 8)  65 3e 20 3a 3a 3d 20 6e 61 6d 65 20 20 2a 29 0a 31 33 30 36 3a 20 20 28 2a 20 3c 70 72 65 66 69   ┆e> ::= name  *) 1306:  (* <prefi┆
0x082420…082440             78 20 6e 61 6d 65 3e 20 3a 3a 3d 20 6e 61 6d 65 20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 64 65   ┆x name> ::= name  *) (* code: de┆
0x082440…082460             63 6c 61 72 61 74 6f 6e 28 20 70 72 6f 63 65 73 73 2f 70 72 65 66 69 78 20 29 20 64 65 63 6c 61   ┆claraton( process/prefix ) decla┆
0x082460…082480             72 65 28 20 73 70 69 78 20 29 20 2a 29 0a 62 65 67 69 6e 0a 6e 61 6d 65 3a 3d 20 72 65 61 64 6e   ┆re( spix ) *) begin name:= readn┆
0x082480…0824a0             61 6d 65 3b 0a 69 66 20 70 72 6f 64 3d 31 33 30 35 20 74 68 65 6e 20 63 6f 64 65 77 6f 72 64 3a   ┆ame; if prod=1305 then codeword:┆
0x0824a0…0824c0             3d 20 63 70 72 6f 63 65 73 73 0a 65 6c 73 65 0a 63 6f 64 65 77 6f 72 64 3a 3d 20 63 70 72 65 66   ┆= cprocess else codeword:= cpref┆
0x0824c0…0824e0             69 78 3b 0a 65 6d 69 74 72 6f 75 74 69 6e 65 64 65 63 6c 28 20 63 6f 64 65 77 6f 72 64 2c 20 6e   ┆ix; emitroutinedecl( codeword, n┆
0x0824e0…082500             61 6d 65 20 29 3b 0a 65 6e 64 3b 0a 0a 31 33 30 37 3a 20 20 28 2a 20 3c 70 72 65 66 69 78 20 64   ┆ame ); end;  1307:  (* <prefix d┆
0x082500…082520             65 63 6c 61 72 61 74 69 6f 6e 3e 20 3a 3a 3d 20 3c 70 72 65 66 65 78 20 68 65 61 64 69 6e 67 3e   ┆eclaration> ::= <prefex heading>┆
0x082520…082540             20 3c 73 65 6d 69 63 6f 6c 6f 6e 73 3e 20 0a 3c 62 65 67 69 6e 20 6c 65 76 65 6c 3e 20 3c 72 6f   ┆ <semicolons>  <begin level> <ro┆
0x082540…082560             75 74 69 6e 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 3e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65   ┆utine declaration> *) (* code: e┆
0x082560…082580             6e 64 6c 65 76 65 6c 20 65 6e 64 70 72 65 66 69 78 20 2a 29 0a 62 65 67 69 6e 0a 65 6d 69 74 28   ┆ndlevel endprefix *) begin emit(┆
0x082580…0825a0             63 65 6e 64 6c 65 76 65 6c 2c 20 6e 69 6c 6c 2c 20 6e 69 6c 6c 2c 20 63 65 6e 64 70 72 65 66 69   ┆cendlevel, nill, nill, cendprefi┆
0x0825a0…0825c0             78 29 3b 0a 65 6e 64 3b 0a 0a 31 33 31 30 3a 20 20 28 2a 20 3c 65 78 74 65 72 6e 61 6c 3e 20 3a   ┆x); end;  1310:  (* <external> :┆
0x0825c0…0825e0             3a 3d 20 3c 63 6f 6e 74 65 78 74 20 6e 61 6d 65 3e 20 3c 73 65 6d 69 63 6f 6c 6f 6e 73 3e 20 3c   ┆:= <context name> <semicolons> <┆
0x0825e0…082600             64 65 63 6c 61 72 61 74 69 6f 6e 73 3e 20 2e 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 63   ┆declarations> . *) (* code: endc┆
0x082600…082620 (34, 1, 9)  6f 6e 74 65 78 74 20 20 20 2a 29 0a 28 2a 20 61 63 74 69 6f 6e 3a 20 63 6f 6e 74 65 78 74 70 61   ┆ontext   *) (* action: contextpa┆
0x082620…082640             72 73 69 6e 67 3a 3d 20 66 61 6c 73 65 20 20 2a 29 0a 62 65 67 69 6e 0a 63 6f 6e 74 65 78 74 70   ┆rsing:= false  *) begin contextp┆
0x082640…082660             61 72 73 69 6e 67 3a 3d 20 66 61 6c 73 65 3b 0a 69 66 20 6e 6f 74 20 72 65 64 75 63 65 64 5f 69   ┆arsing:= false; if not reduced_i┆
0x082660…082680             6e 74 65 72 6d 65 64 69 61 74 65 5f 6c 61 6e 67 75 61 67 65 20 74 68 65 6e 0a 65 6d 69 74 63 6f   ┆ntermediate_language then emitco┆
0x082680…0826a0             64 65 28 63 65 6e 64 63 6f 6e 74 65 78 74 29 3b 0a 65 6e 64 3b 0a 0a 31 33 31 31 3a 20 20 28 2a   ┆de(cendcontext); end;  1311:  (*┆
0x0826a0…0826c0             20 3c 65 78 74 65 72 6e 61 6c 20 70 61 72 74 3e 20 3a 3a 3d 20 3c 65 78 74 65 72 6e 61 6c 73 3e   ┆ <external part> ::= <externals>┆
0x0826c0…0826e0             20 20 2a 29 0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 69 6e 63 6c 75 64 65 20 20 20 20 20 20 2a 29   ┆  *) (* code: endinclude      *)┆
0x0826e0…082700             0a 62 65 67 69 6e 0a 6d 6f 72 65 5f 73 6f 75 72 63 65 73 5f 61 6c 6c 6f 77 65 64 3a 3d 20 66 61   ┆ begin more_sources_allowed:= fa┆
0x082700…082720             6c 73 65 3b 0a 65 6d 69 74 63 6f 64 65 28 20 63 65 6e 64 69 6e 63 6c 75 64 65 20 29 3b 0a 65 6e   ┆lse; emitcode( cendinclude ); en┆
0x082720…082740             64 3b 0a 0a 31 33 31 32 3a 20 20 28 2a 20 3c 62 6f 64 79 20 65 6c 65 6d 3e 20 3a 3a 3d 20 3c 62   ┆d;  1312:  (* <body elem> ::= <b┆
0x082740…082760             65 67 69 6e 20 6c 65 76 65 6c 3e 20 3c 70 72 6f 63 65 73 73 20 64 65 63 6c 61 72 61 74 69 6f 6e   ┆egin level> <process declaration┆
0x082760…082780             3e 20 20 2a 29 0a 20 20 20 20 20 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20   ┆>  *)        (*               ! ┆
0x082780…0827a0             3c 62 65 67 69 6e 20 6c 65 76 65 6c 3e 20 3c 70 72 65 66 69 78 20 64 65 63 6c 61 72 61 74 69 6f   ┆<begin level> <prefix declaratio┆
0x0827a0…0827c0             6e 3e 20 2a 29 0a 20 20 20 20 20 20 20 28 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20   ┆n> *)        (*               ! ┆
0x0827c0…0827e0             3c 62 65 67 69 6e 20 6c 65 76 65 6c 3e 20 3c 70 72 6f 63 65 73 73 20 64 65 63 6c 61 72 61 74 69   ┆<begin level> <process declarati┆
0x0827e0…082800             6f 6e 3e 20 3c 73 65 6d 69 63 6f 6c 6f 6e 73 3e 20 2a 29 0a 20 20 20 20 20 20 20 28 2a 20 20 20   ┆on> <semicolons> *)        (*   ┆
0x082800…082820 (34, 1, 10) 20 20 20 20 20 20 20 20 20 20 20 20 21 20 3c 62 65 67 69 6e 20 6c 65 76 65 6c 3e 20 3c 70 72 65   ┆            ! <begin level> <pre┆
0x082820…082840             66 69 78 20 64 65 63 6c 61 72 61 74 69 6f 6e 3e 20 3c 73 65 6d 69 63 6f 6c 6f 6e 73 3e 20 2a 29   ┆fix declaration> <semicolons> *)┆
0x082840…082860             0a 28 2a 20 63 6f 64 65 3a 20 65 6e 64 6c 65 76 65 6c 20 2a 29 0a 65 6d 69 74 63 6f 64 65 28 63   ┆ (* code: endlevel *) emitcode(c┆
0x082860…082880             65 6e 64 6c 65 76 65 6c 29 3b 0a 0a 65 6e 64 3b 20 20 28 2a 20 63 61 73 65 20 2a 29 0a 0a 65 6e   ┆endlevel);  end;  (* case *)  en┆
0x082880…0828a0             64 3b 20 28 2a 20 73 65 63 74 69 6f 6e 20 31 33 20 2a 29 0a 0a 0c 0a 0a 0a 62 65 67 69 6e 20 28   ┆d; (* section 13 *)      begin (┆
0x0828a0…0828c0             2a 20 63 6f 64 65 20 2a 29 0a 69 66 20 74 65 73 74 6f 75 74 70 75 74 20 74 68 65 6e 20 6f 75 74   ┆* code *) if testoutput then out┆
0x0828c0…0828e0             74 65 73 74 3b 28 2a 2a 2a 73 6e 61 70 73 68 6f 74 2a 2a 2a 29 0a 0a 63 61 73 65 20 70 72 6f 64   ┆test;(***snapshot***)  case prod┆
0x0828e0…082900             20 64 69 76 20 31 30 30 20 6f 66 0a 0a 30 3a 20 20 3b 20 28 2a 20 6e 6f 74 68 69 6e 67 20 69 73   ┆ div 100 of  0:  ; (* nothing is┆
0x082900…082920             20 64 6f 6e 65 20 2a 29 0a 0a 31 3a 20 65 72 72 6f 72 73 65 63 74 69 6f 6e 3b 20 28 2a 20 20 2a   ┆ done *)  1: errorsection; (*  *┆
0x082920…082940             2a 20 3a 3a 3d 20 65 72 72 6f 72 20 2a 29 0a 0a 32 20 3a 20 3b 20 28 2a 20 6e 6f 74 20 75 73 65   ┆* ::= error *)  2 : ; (* not use┆
0x082940…082960             64 20 2a 29 0a 0a 33 3a 20 65 78 70 6f 72 74 5f 73 65 63 74 69 6f 6e 3b 0a 0a 34 3a 20 6c 69 74   ┆d *)  3: export_section;  4: lit┆
0x082960…082980             65 72 61 6c 73 28 20 70 72 6f 64 20 29 3b 20 0a 0a 35 3a 20 63 6f 6e 73 74 61 6e 74 64 65 63 6c   ┆erals( prod );   5: constantdecl┆
0x082980…0829a0             61 72 61 74 69 6f 6e 3b 0a 0a 36 3a 20 74 79 70 65 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 37 3a   ┆aration;  6: typedefinition;  7:┆
0x0829a0…0829c0             20 76 61 72 69 61 62 6c 65 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 38 3a 20 65 78 70 72 65 73 73   ┆ variabledefinition;  8: express┆
0x0829c0…0829e0             69 6f 6e 3b 0a 0a 39 3a 20 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 31 30 3a 20 70 72 6f 63 65 64 75   ┆ion;  9: statement;  10: procedu┆
0x0829e0…082a00             72 65 64 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 0a 31 31 3a 20 66 75 6e 63 74 69 6f 6e 64 65 63 6c   ┆redeclaration;  11: functiondecl┆
0x082a00…082a20 (34, 1, 11) 61 72 61 74 69 6f 6e 3b 0a 0a 31 32 3a 20 6c 61 62 65 6c 64 65 63 6c 61 72 61 74 69 6f 6e 3b 0a   ┆aration;  12: labeldeclaration; ┆
0x082a20…082a40             0a 31 33 3a 20 70 72 6f 63 65 73 73 64 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 0a 65 6e 64 3b 20 20   ┆ 13: processdeclaration;  end;  ┆
0x082a40…082a60             28 2a 20 63 61 73 65 20 2e 2e 2e 20 2a 29 0a 0a 65 6e 64 3b 28 2a 63 6f 64 65 2a 29 0a 0a 28 2a   ┆(* case ... *)  end;(*code*)  (*┆
0x082a60…082a80             20 62 6f 62 73 20 70 72 6f 63 65 64 75 72 65 73 20 63 6f 6e 74 69 6e 75 61 74 65 64 2a 29 0a 70   ┆ bobs procedures continuated*) p┆
0x082a80…082aa0             72 6f 63 65 64 75 72 65 20 73 74 6f 70 3b 0a 62 65 67 69 6e 0a 6d 61 72 6b 65 72 72 6f 72 28 30   ┆rocedure stop; begin markerror(0┆
0x082aa0…082ac0             29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 77 72 69 74 65 6c 6e 28 6f 75 74 70 75   ┆); writeln(output);writeln(outpu┆
0x082ac0…082ae0             74 29 3b 0a 63 61 73 65 20 6e 20 6f 66 0a 31 3a 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c   ┆t); case n of 1: writeln(output,┆
0x082ae0…082b00             27 20 2a 2a 2a 20 70 61 72 73 65 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 2e 20 63 6f 6e 73   ┆' *** parse stack overflow. cons┆
0x082b00…082b20             74 20 27 27 73 74 61 63 6b 6d 61 78 27 27 20 74 6f 6f 20 73 6d 61 6c 6c 27 29 3b 0a 32 3a 20 77   ┆t ''stackmax'' too small'); 2: w┆
0x082b20…082b40             72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 27 20 2a 2a 2a 20 65 6e 64 20 6f 66 20 66 69 6c 65 20   ┆riteln(output,' *** end of file ┆
0x082b40…082b60             65 6e 63 6f 75 6e 74 65 72 65 64 20 27 29 3b 0a 33 3a 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75   ┆encountered '); 3: writeln(outpu┆
0x082b60…082b80             74 2c 27 20 2a 2a 2a 20 72 65 63 6f 76 65 72 79 20 61 62 61 6e 64 6f 6e 65 64 20 27 29 3b 0a 34   ┆t,' *** recovery abandoned '); 4┆
0x082b80…082ba0             3a 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 27 20 2a 2a 2a 20 72 65 64 75 63 74 69 6f 6e   ┆: writeln(output,' *** reduction┆
0x082ba0…082bc0             20 62 75 66 66 65 72 20 6f 76 65 72 66 6c 6f 77 2e 20 63 6f 6e 73 74 20 27 27 72 65 64 75 6d 61   ┆ buffer overflow. const ''reduma┆
0x082bc0…082be0             78 27 27 20 74 6f 6f 20 73 6d 61 6c 6c 27 29 3b 0a 35 3a 20 77 72 69 74 65 6c 6e 28 6f 75 74 70   ┆x'' too small'); 5: writeln(outp┆
0x082be0…082c00             75 74 2c 27 20 2a 2a 2a 20 63 6f 6e 73 74 20 27 27 73 74 72 69 6e 67 6d 61 78 27 27 20 74 6f 6f   ┆ut,' *** const ''stringmax'' too┆
0x082c00…082c20 (34, 1, 12) 20 73 6d 61 6c 6c 20 27 29 3b 0a 36 3a 20 69 66 20 65 72 72 6f 72 63 6f 75 6e 74 3e 31 20 74 68   ┆ small '); 6: if errorcount>1 th┆
0x082c20…082c40             65 6e 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 27 20 2a 2a 2a 20 72 65 63 6f 76 65 72 79   ┆en writeln(output,' *** recovery┆
0x082c40…082c60             20 61 62 61 6e 64 6f 6e 65 64 20 27 29 3b 0a 37 3a 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74   ┆ abandoned '); 7: writeln(output┆
0x082c60…082c80             2c 27 20 2a 2a 2a 20 70 72 65 6d 61 74 75 72 65 20 65 6e 64 20 6f 66 20 66 69 6c 65 2c 20 6d 69   ┆,' *** premature end of file, mi┆
0x082c80…082ca0             73 73 69 6e 67 20 24 45 4e 44 49 46 20 27 29 3b 0a 31 32 3a 20 77 72 69 74 65 6c 6e 28 6f 75 74   ┆ssing $ENDIF '); 12: writeln(out┆
0x082ca0…082cc0             70 75 74 2c 20 27 20 2a 2a 2a 20 63 6f 6e 73 74 20 27 27 74 79 70 65 62 75 66 66 65 72 73 69 7a   ┆put, ' *** const ''typebuffersiz┆
0x082cc0…082ce0             65 27 27 20 74 6f 6f 20 73 6d 61 6c 6c 20 27 29 3b 0a 65 6c 73 65 0a 77 72 69 74 65 6c 6e 28 6f   ┆e'' too small '); else writeln(o┆
0x082ce0…082d00             75 74 70 75 74 2c 27 20 2a 2a 2a 20 63 6f 6e 73 74 20 27 27 63 68 62 75 66 6d 61 78 27 27 20 74   ┆utput,' *** const ''chbufmax'' t┆
0x082d00…082d20             6f 6f 20 73 6d 61 6c 6c 20 27 29 3b 0a 65 6e 64 3b 0a 6d 79 65 78 69 74 3b 0a 65 6e 64 3b 28 2a   ┆oo small '); end; myexit; end;(*┆
0x082d20…082d40             73 74 6f 70 2a 29 0a 0a 75 74 70 75 74 2c 27 20 2a 2a 2a 20 65 6e 64 20 6f 66 20 66 69 6c 65 20   ┆stop*)  utput,' *** end of file ┆
0x082d40…082d60             65 6e 63 6f 75 6e 74 65 72 65 64 20 27 29 3b 0a 33 3a 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75   ┆encountered '); 3: writeln(outpu┆
0x082d60…082d80             74 2c 27 20 2a 2a 2a 20 72 65 63 6f 76 65 72 79 20 61 62 61 6e 64 6f 6e 65 64 20 27 29 3b 0a 34   ┆t,' *** recovery abandoned '); 4┆
0x082d80…082da0             3a 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 27 20 2a 2a 2a 20 72 65 64 75 63 74 69 6f 6e   ┆: writeln(output,' *** reduction┆
0x082da0…082dc0             20 62 75 66 66 65 72 20 6f 76 65 72 66 6c 6f 77 2e 20 63 6f 6e 73 74 20 27 27 72 65 64 75 6d 61   ┆ buffer overflow. const ''reduma┆
0x082dc0…082de0             78 27 27 20 74 6f 6f 20 73 6d 61 6c 6c 27 29 3b 0a 35 3a 20 77 72 69 74 65 6c 6e 28 6f 75 74 70   ┆x'' too small'); 5: writeln(outp┆
0x082de0…082e00             75 74 2c 27 20 2a 2a 2a 20 63 6f 6e 73 74 20 27 27 73 74 72 69 6e 67 6d 61 78 27 27 20 74 6f 6f   ┆ut,' *** const ''stringmax'' too┆
0x082e00…082e20 (34, 1, 13) 2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 72 74 70 2f 78 70 36 69 6e 69 74 00 00 00 00 00 00 00   ┆../sw2103/src/rtp/xp6init       ┆
0x082e20…082e40             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x082e60…082e80             00 00 00 00 20 20 20 37 35 35 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       755     255     146      ┆
0x082e80…082ea0             20 31 35 32 32 36 31 20 20 35 32 36 36 37 35 37 31 33 30 20 20 31 30 33 31 33 00 20 00 00 00 00   ┆ 152261  5266757130  10313      ┆
0x082ea0…082ec0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x083000…083020 (34, 1, 14) 0a 28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ (*-----------------------------┆
0x083020…083040             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x083040…083060             2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 20 28 43 29 20 43 6f 70 79 72 69 67 74 68 20 31 39 39 32 20 20 44   ┆---- -- -- (C) Copyrigth 1992  D┆
0x083060…083080             41 4e 4f 53 49 0a 2d 2d 0a 2d 2d 09 50 36 49 4e 49 54 2e 50 41 53 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d   ┆ANOSI -- -- P6INIT.PAS -- ------┆
0x083080…0830a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0830a0…0830c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d   ┆----------------------------- --┆
0x0830c0…0830e0             0a 2d 2d 09 52 65 76 69 73 69 6f 6e 73 0a 2d 2d 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ -- Revisions -- ---------------┆
0x0830e0…083100             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 20 31 30 2e 31 20 20 39 32 2e 30   ┆----------------- --  10.1  92.0┆
0x083100…083120             34 2e 30 39 20 20 42 42 20 20 20 20 49 6e 69 74 20 6f 66 20 70 6f 69 6e 74 65 72 73 20 69 6e 20   ┆4.09  BB    Init of pointers in ┆
0x083120…083140             68 65 61 70 20 63 6f 72 72 65 63 74 65 64 2e 0a 2d 2d 20 20 31 30 2e 31 20 20 39 32 2e 31 30 2e   ┆heap corrected. --  10.1  92.10.┆
0x083140…083160             31 34 20 20 48 45 4a 20 20 20 53 43 43 53 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 2d 2d   ┆14  HEJ   SCCS and UNIX used. --┆
0x083160…083180             0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ -------------------------------┆
0x083180…0831a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x0831a0…0831c0             2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65   ┆---- -- SCCS information -- File┆
0x0831c0…0831e0             20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65   ┆   :  %P% -- Module :  %M% -- Ve┆
0x0831e0…083200             72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55   ┆rsion:  %I% -- Date   :  %E%  %U┆
0x083200…083220 (34, 1, 15) 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆% ------------------------------┆
0x083220…083240             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x083240…083260             2d 2d 2d 2d 2d 0a 2a 29 0a 0a 63 6f 6e 73 74 0a 76 65 72 73 69 6f 6e 3d 20 27 52 45 41 4c 2d 54   ┆----- *)  const version= 'REAL-T┆
0x083260…083280             49 4d 45 20 50 41 53 43 41 4c 2c 20 70 61 73 73 36 2c 20 76 65 72 73 69 6f 6e 20 39 32 2e 30 34   ┆IME PASCAL, pass6, version 92.04┆
0x083280…0832a0             2e 30 39 27 3b 0a 70 61 73 73 36 5f 76 65 72 73 69 6f 6e 20 3d 20 31 30 30 31 3b 20 28 2a 20 72   ┆.09'; pass6_version = 1001; (* r┆
0x0832a0…0832c0             65 76 69 73 69 6f 6e 20 2a 20 31 30 30 20 2b 20 73 75 62 76 65 72 73 69 6f 6e 20 2a 29 0a 63 6f   ┆evision * 100 + subversion *) co┆
0x0832c0…0832e0             6d 70 69 6c 65 72 5f 76 65 72 73 69 6f 6e 20 3d 20 33 2a 38 31 39 32 20 28 2a 20 53 57 32 31 30   ┆mpiler_version = 3*8192 (* SW210┆
0x0832e0…083300             33 20 2a 29 20 2b 20 31 2a 32 35 36 20 2b 20 31 32 3b 20 28 2a 20 63 6f 6d 70 69 6c 65 72 20 76   ┆3 *) + 1*256 + 12; (* compiler v┆
0x083300…083320             65 72 73 69 6f 6e 2a 29 0a 64 65 6d 61 6e 64 65 64 5f 70 61 73 73 35 5f 76 65 72 73 69 6f 6e 20   ┆ersion*) demanded_pass5_version ┆
0x083320…083340             3d 20 31 30 30 3b 20 28 2a 20 74 68 65 20 6c 65 61 73 74 20 61 6c 6c 6f 77 65 64 20 70 61 73 73   ┆= 100; (* the least allowed pass┆
0x083340…083360             35 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 2a 29 0a 0a 68 61 73 68 5f 66 75 6e 63 74 69   ┆5 version number *)  hash_functi┆
0x083360…083380             6f 6e 5f 74 65 73 74 20 3d 20 66 61 6c 73 65 3b 20 28 2a 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20   ┆on_test = false; (* conditional ┆
0x083380…0833a0             70 72 69 6e 74 20 6f 66 20 68 61 73 68 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6c 6c 69 73 69 6f 6e   ┆print of hash function collision┆
0x0833a0…0833c0             73 20 2a 29 0a 73 74 61 74 69 73 74 69 63 61 6c 5f 76 65 72 73 69 6f 6e 20 3d 20 74 72 75 65 3b   ┆s *) statistical_version = true;┆
0x0833c0…0833e0             20 28 2a 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 63 6f 64 65 20 21 21 21 20 2a 29 0a 62 6c 61 6e   ┆ (* conditional code !!! *) blan┆
0x0833e0…083400             6b 20 20 20 20 20 20 3d 20 27 20 20 20 20 20 20 27 3b 0a 6d 69 6e 5f 62 75 66 66 65 72 5f 73 69   ┆k      = '      '; min_buffer_si┆
0x083400…083420 (35, 0, 1)  7a 65 20 3d 20 33 30 3b 0a 64 65 66 61 75 6c 74 5f 62 75 66 66 65 72 5f 73 69 7a 65 20 3d 20 35   ┆ze = 30; default_buffer_size = 5┆
0x083420…083440             31 32 3b 20 28 2a 20 64 65 66 61 75 6c 74 20 73 69 7a 65 20 6f 66 20 63 6f 64 65 20 73 65 67 6d   ┆12; (* default size of code segm┆
0x083440…083460             65 6e 74 20 2a 29 0a 63 6f 64 65 62 75 66 66 65 72 73 69 7a 65 20 3d 20 36 35 35 32 30 3b 20 28   ┆ent *) codebuffersize = 65520; (┆
0x083460…083480             2a 20 6d 61 78 20 73 69 7a 65 20 6f 66 20 63 6f 64 65 20 73 65 67 6d 65 6e 74 20 2a 29 0a 6c 65   ┆* max size of code segment *) le┆
0x083480…0834a0             6e 67 74 68 5f 6f 66 5f 64 65 73 63 72 69 70 74 6f 72 20 3d 20 31 36 3b 20 20 28 2a 20 6c 65 6e   ┆ngth_of_descriptor = 16;  (* len┆
0x0834a0…0834c0             67 74 68 20 6f 66 20 6e 61 6d 65 20 74 61 62 6c 65 20 68 65 61 64 20 2a 29 0a 0a 64 65 66 61 75   ┆gth of name table head *)  defau┆
0x0834c0…0834e0             6c 74 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 70 61 63 69 6e 67 20 3d 20 35 32 3b 20 20 20 28 2a   ┆lt_line_table_spacing = 52;   (*┆
0x0834e0…083500             20 69 2e 65 2e 20 61 20 6c 69 6e 65 20 72 65 63 6f 72 64 20 69 73 20 67 65 6e 65 72 61 74 65 64   ┆ i.e. a line record is generated┆
0x083500…083520             20 66 6f 72 20 67 72 6f 75 70 73 20 6f 66 20 32 36 20 62 79 74 65 73 20 6f 66 20 63 6f 64 65 20   ┆ for groups of 26 bytes of code ┆
0x083520…083540             2a 29 0a 66 69 78 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 70 61 72 74 20 3d 20 37 3b 20 20 20 20 20   ┆*) fix_line_table_part = 7;     ┆
0x083540…083560             20 20 28 2a 20 33 20 62 79 74 65 73 20 66 6f 72 20 61 20 63 68 61 69 6e 20 74 6f 20 74 68 65 20   ┆  (* 3 bytes for a chain to the ┆
0x083560…083580             6e 65 78 74 20 74 61 62 6c 65 0a 2b 20 32 20 62 79 74 65 73 20 66 6f 72 20 61 20 73 74 61 72 74   ┆next table + 2 bytes for a start┆
0x083580…0835a0             20 6c 69 6e 65 20 6e 75 6d 62 65 72 0a 2b 20 32 20 62 79 74 65 73 20 66 6f 72 20 66 69 72 73 74   ┆ line number + 2 bytes for first┆
0x0835a0…0835c0             20 61 6e 64 20 6c 61 73 74 20 72 65 63 6f 72 64 20 2a 29 0a 6d 61 78 5f 6c 69 6e 65 20 3d 20 32   ┆ and last record *) max_line = 2┆
0x0835c0…0835e0             35 35 3b 20 20 20 20 20 20 28 2a 20 6c 69 6e 65 20 72 65 63 6f 72 64 73 20 61 72 65 20 6e 75 6d   ┆55;      (* line records are num┆
0x0835e0…083600             62 65 72 73 20 69 6e 73 69 64 65 20 28 30 2e 2e 32 35 35 29 20 2a 29 0a 6e 61 6d 65 6c 65 6e 67   ┆bers inside (0..255) *) nameleng┆
0x083600…083620 (35, 0, 2)  74 68 20 3d 20 20 36 3b 20 20 20 20 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 73 69 67 6e 69 66   ┆th =  6;     (* number of signif┆
0x083620…083640             69 63 61 6e 74 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 61 20 6e 61 6d 65 20 2a 29 0a 63 68   ┆icant characters of a name *) ch┆
0x083640…083660             62 75 66 6d 61 78 20 20 20 3d 20 31 35 3b 20 20 20 20 20 28 2a 20 6d 61 78 69 6d 75 6d 20 6e 75   ┆bufmax   = 15;     (* maximum nu┆
0x083660…083680             6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 61 20 77 6f 72 64 20 72 65 61   ┆mber of characters of a word rea┆
0x083680…0836a0             64 20 2a 29 0a 6e 69 6c 6c 20 20 20 20 20 20 20 3d 20 20 30 3b 0a 6d 61 78 6c 69 6e 65 6c 65 6e   ┆d *) nill       =  0; maxlinelen┆
0x0836a0…0836c0             67 74 68 20 3d 20 32 30 30 3b 20 28 2a 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20   ┆gth = 200; (* maximum number of ┆
0x0836c0…0836e0             63 68 61 72 61 63 74 65 72 73 20 69 6e 20 6f 6e 65 20 6c 69 6e 65 20 2a 29 0a 68 69 67 68 65 72   ┆characters in one line *) higher┆
0x0836e0…083700             72 6f 72 20 20 3d 20 31 36 3b 20 20 20 20 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 65 72 72 6f   ┆ror  = 16;     (* number of erro┆
0x083700…083720             72 20 6d 65 73 73 61 67 65 73 20 2a 29 0a 0a 6d 61 78 62 79 74 65 20 20 20 20 3d 20 32 35 36 3b   ┆r messages *)  maxbyte    = 256;┆
0x083720…083740             0a 62 79 74 65 73 69 7a 65 20 20 20 3d 20 31 3b 20 20 20 20 20 20 28 2a 6e 75 6d 62 65 72 20 6f   ┆ bytesize   = 1;      (*number o┆
0x083740…083760             66 20 62 79 74 65 73 20 66 6f 72 20 61 20 62 79 74 65 2a 29 0a 77 6f 72 64 73 69 7a 65 20 20 20   ┆f bytes for a byte*) wordsize   ┆
0x083760…083780             3d 20 32 3b 20 20 20 20 20 20 28 2a 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 66 6f 72 20   ┆= 2;      (*number of bytes for ┆
0x083780…0837a0             61 20 77 6f 72 64 2a 29 0a 61 64 64 72 73 69 7a 65 20 20 20 3d 20 33 3b 20 20 20 20 20 20 28 2a   ┆a word*) addrsize   = 3;      (*┆
0x0837a0…0837c0             20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 66 6f 72 20 61 20 6c 6f 6e 67 20 61 64 64 72   ┆ number of bytes for a long addr┆
0x0837c0…0837e0             65 73 73 20 2a 29 0a 6c 6f 6e 67 6a 75 6d 70 5f 73 69 7a 65 20 3d 20 34 3b 20 20 20 28 2a 20 6e   ┆ess *) longjump_size = 4;   (* n┆
0x0837e0…083800             75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 66 6f 72 20 61 20 6c 6f 6e 67 20 6a 75 6d 70 20 2a   ┆umber of bytes for a long jump *┆
0x083800…083820 (35, 0, 3)  29 0a 0a 6d 61 78 5f 63 6f 64 65 5f 6e 75 6d 62 65 72 20 20 20 3d 20 32 35 35 3b 0a 0a 68 61 73   ┆)  max_code_number   = 255;  has┆
0x083820…083840             68 31 20 3d 20 31 34 3b 20 68 61 73 68 32 20 3d 20 32 33 3b 20 68 61 73 68 33 20 3d 20 32 35 36   ┆h1 = 14; hash2 = 23; hash3 = 256┆
0x083840…083860             3b 0a 28 2a 20 68 61 73 68 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 66 6f 72 20 69 6e 73 74   ┆; (* hash function used for inst┆
0x083860…083880             72 75 63 74 69 6f 6e 20 6e 61 6d 65 20 74 61 62 6c 65 20 69 73 3a 0a 68 61 73 68 76 61 6c 75 65   ┆ruction name table is: hashvalue┆
0x083880…0838a0             3a 3d 20 61 62 73 28 20 6e 61 6d 65 28 31 2c 32 29 20 64 69 76 20 68 61 73 68 31 20 2b 20 6e 61   ┆:= abs( name(1,2) div hash1 + na┆
0x0838a0…0838c0             6d 65 28 33 2c 34 29 20 64 69 76 20 68 61 73 68 32 29 20 6d 6f 64 20 68 61 73 68 33 3b 0a 6e 6f   ┆me(3,4) div hash2) mod hash3; no┆
0x0838c0…0838e0             74 65 3a 20 20 68 61 73 68 33 20 3c 3d 20 6d 61 78 5f 63 6f 64 65 5f 6e 75 6d 62 65 72 20 20 21   ┆te:  hash3 <= max_code_number  !┆
0x0838e0…083900             21 20 2a 29 0a 0a 6d 61 78 5f 69 6e 74 65 72 76 61 6c 73 20 3d 20 39 30 3b 20 28 2a 20 69 6e 74   ┆! *)  max_intervals = 90; (* int┆
0x083900…083920             65 72 76 61 6c 73 20 66 6f 72 20 61 69 73 20 70 61 72 61 6d 65 74 65 72 73 20 2a 29 0a 0a 62 79   ┆ervals for ais parameters *)  by┆
0x083920…083940             74 65 73 5f 70 72 5f 77 6f 72 64 20 20 3d 20 32 3b 20 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20   ┆tes_pr_word  = 2;  (* number of ┆
0x083940…083960             62 79 74 65 73 20 70 61 63 6b 65 64 20 69 6e 74 6f 20 6f 6e 65 20 77 6f 72 64 20 6f 6e 20 74 68   ┆bytes packed into one word on th┆
0x083960…083980             65 20 63 6f 64 65 20 66 69 6c 65 20 2a 29 0a 0a 6d 61 78 5f 6e 6f 5f 6f 66 5f 74 72 61 69 6c 65   ┆e code file *)  max_no_of_traile┆
0x083980…0839a0             72 73 20 3d 20 32 3b 0a 0a 64 65 73 63 72 31 5f 73 69 7a 65 20 20 20 20 3d 20 38 32 3b 20 20 20   ┆rs = 2;  descr1_size    = 82;   ┆
0x0839a0…0839c0             28 2a 6d 61 78 69 6d 75 6d 20 6c 65 6e 67 74 68 20 6f 66 20 64 65 73 63 72 69 70 74 6f 72 20 70   ┆(*maximum length of descriptor p┆
0x0839c0…0839e0             61 72 74 20 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆art 1,                          ┆
0x0839e0…083a00             66 69 78 65 64 20 70 61 72 74 3a 20 20 30 2e 2e 32 31 20 28 32 32 20 77 6f 72 64 73 29 20 2b 20   ┆fixed part:  0..21 (22 words) + ┆
0x083a00…083a20 (35, 0, 4)  32 20 77 6f 72 64 73 20 70 65 72 20 70 61 72 61 6d 65 74 65 72 20 28 6d 61 78 20 33 30 20 70 61   ┆2 words per parameter (max 30 pa┆
0x083a20…083a40             72 61 6d 65 74 65 72 73 29 20 2a 29 0a 0a 65 6c 65 6d 73 5f 70 65 72 5f 6c 69 6e 65 20 3d 20 31   ┆rameters) *)  elems_per_line = 1┆
0x083a40…083a60             36 3b 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 64 65 20 77 6f 72 64 73 20 70 65 72 20 6c   ┆6; (* number of code words per l┆
0x083a60…083a80             69 6e 65 20 28 6f 70 74 69 6f 6e 20 70 72 69 6e 74 2e 79 65 73 29 20 2a 29 0a 0a 0a 74 79 70 65   ┆ine (option print.yes) *)   type┆
0x083a80…083aa0             0a 0a 6e 61 6d 65 73 74 72 69 6e 67 20 20 20 20 3d 20 70 61 63 6b 65 64 20 61 72 72 61 79 20 5b   ┆  namestring    = packed array [┆
0x083aa0…083ac0             20 31 20 2e 2e 20 6e 61 6d 65 6c 65 6e 67 74 68 20 5d 20 6f 66 20 63 68 61 72 3b 0a 6e 61 6d 65   ┆ 1 .. namelength ] of char; name┆
0x083ac0…083ae0             5f 70 74 72 20 20 20 20 20 20 20 3d 20 5e 20 6e 61 6d 65 6e 6f 64 65 73 3b 0a 75 6e 73 61 74 72   ┆_ptr       = ^ namenodes; unsatr┆
0x083ae0…083b00             65 66 5f 70 74 72 20 20 20 3d 20 5e 20 75 6e 73 61 74 72 65 66 6e 6f 64 65 3b 0a 69 6e 74 65 72   ┆ef_ptr   = ^ unsatrefnode; inter┆
0x083b00…083b20             76 61 6c 5f 69 6e 64 65 78 20 3d 20 20 20 20 30 20 2e 2e 20 6d 61 78 5f 69 6e 74 65 72 76 61 6c   ┆val_index =    0 .. max_interval┆
0x083b20…083b40             73 3b 0a 63 6f 64 65 5f 69 78 20 20 20 20 20 20 20 3d 20 20 20 20 30 20 2e 2e 20 63 6f 64 65 62   ┆s; code_ix       =    0 .. codeb┆
0x083b40…083b60             75 66 66 65 72 73 69 7a 65 3b 0a 63 68 62 75 66 5f 69 78 20 20 20 20 20 20 3d 20 20 20 20 30 20   ┆uffersize; chbuf_ix      =    0 ┆
0x083b60…083b80             2e 2e 20 63 68 62 75 66 6d 61 78 3b 0a 0a 75 6e 69 76 65 72 73 61 6c 5f 70 74 72 20 3d 20 5e 20   ┆.. chbufmax;  universal_ptr = ^ ┆
0x083b80…083ba0             69 6e 74 65 67 65 72 3b 0a 0a 0a 74 5f 62 75 66 66 65 72 3d 20 70 61 63 6b 65 64 20 61 72 72 61   ┆integer;   t_buffer= packed arra┆
0x083ba0…083bc0             79 20 5b 20 63 6f 64 65 5f 69 78 20 5d 20 6f 66 20 62 79 74 65 3b 0a 74 5f 62 75 66 5f 70 74 72   ┆y [ code_ix ] of byte; t_buf_ptr┆
0x083bc0…083be0             3d 20 5e 20 74 5f 62 75 66 66 65 72 3b 0a 0a 73 79 6d 62 6f 6c 5f 6b 69 6e 64 73 20 20 3d 20 28   ┆= ^ t_buffer;  symbol_kinds  = (┆
0x083be0…083c00             6c 61 62 65 6c 5f 64 65 66 2c 20 63 6f 6e 73 74 61 6e 74 5f 64 65 66 2c 20 75 6e 64 65 66 69 6e   ┆label_def, constant_def, undefin┆
0x083c00…083c20 (35, 0, 5)  65 64 29 3b 0a 0a 6e 61 6d 65 6e 6f 64 65 73 20 20 20 20 20 3d 20 72 65 63 6f 72 64 0a 6e 61 6d   ┆ed);  namenodes     = record nam┆
0x083c20…083c40             65 70 61 72 74 20 20 20 20 3a 20 6e 61 6d 65 73 74 72 69 6e 67 3b 0a 64 65 66 5f 73 65 67 6d 65   ┆epart    : namestring; def_segme┆
0x083c40…083c60             6e 74 20 3a 20 69 6e 74 65 67 65 72 3b 0a 64 65 66 5f 6f 66 66 73 65 74 20 20 3a 20 69 6e 74 65   ┆nt : integer; def_offset  : inte┆
0x083c60…083c80             67 65 72 3b 0a 6e 65 78 74 5f 6e 61 6d 65 20 20 20 3a 20 6e 61 6d 65 5f 70 74 72 3b 0a 75 73 65   ┆ger; next_name   : name_ptr; use┆
0x083c80…083ca0             5f 63 68 61 69 6e 20 20 20 3a 20 75 6e 73 61 74 72 65 66 5f 70 74 72 3b 0a 6b 69 6e 64 20 20 20   ┆_chain   : unsatref_ptr; kind   ┆
0x083ca0…083cc0             20 20 20 20 20 3a 20 73 79 6d 62 6f 6c 5f 6b 69 6e 64 73 3b 0a 65 6e 64 3b 0a 0a 75 6e 73 61 74   ┆     : symbol_kinds; end;  unsat┆
0x083cc0…083ce0             72 65 66 6e 6f 64 65 20 20 3d 20 72 65 63 6f 72 64 0a 6e 65 78 74 5f 72 65 66 20 20 20 20 3a 20   ┆refnode  = record next_ref    : ┆
0x083ce0…083d00             75 6e 73 61 74 72 65 66 5f 70 74 72 3b 0a 69 63 5f 72 65 6c 61 74 69 76 65 20 3a 20 62 6f 6f 6c   ┆unsatref_ptr; ic_relative : bool┆
0x083d00…083d20             65 61 6e 3b 20 20 28 2a 20 74 65 6c 6c 73 20 69 66 20 74 68 65 20 6f 70 63 6f 64 65 20 75 73 65   ┆ean;  (* tells if the opcode use┆
0x083d20…083d40             73 20 69 63 2d 72 65 6c 61 74 69 76 65 20 61 64 64 72 65 73 73 69 6e 67 20 2a 29 0a 75 73 65 5f   ┆s ic-relative addressing *) use_┆
0x083d40…083d60             73 65 67 6d 65 6e 74 20 3a 20 69 6e 74 65 67 65 72 3b 0a 75 73 65 5f 6f 66 66 73 65 74 20 20 3a   ┆segment : integer; use_offset  :┆
0x083d60…083d80             20 69 6e 74 65 67 65 72 3b 0a 73 69 7a 65 20 20 20 20 20 20 20 20 3a 20 69 6e 74 65 67 65 72 3b   ┆ integer; size        : integer;┆
0x083d80…083da0             0a 65 6e 64 3b 0a 0a 6c 65 76 65 6c 5f 70 74 72 3d 20 5e 20 6c 65 76 65 6c 5f 6e 6f 64 65 3b 0a   ┆ end;  level_ptr= ^ level_node; ┆
0x083da0…083dc0             6c 65 76 65 6c 5f 6e 6f 64 65 3d 20 72 65 63 6f 72 64 0a 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 3a   ┆level_node= record former_level:┆
0x083dc0…083de0             20 6c 65 76 65 6c 5f 70 74 72 3b 0a 6c 65 76 65 6c 5f 6c 69 73 74 3a 20 6e 61 6d 65 5f 70 74 72   ┆ level_ptr; level_list: name_ptr┆
0x083de0…083e00             3b 0a 65 6e 64 3b 0a 0a 6c 61 62 65 6c 5f 6c 69 73 74 5f 70 74 72 3d 20 5e 20 6c 61 62 65 6c 5f   ┆; end;  label_list_ptr= ^ label_┆
0x083e00…083e20 (35, 0, 6)  6c 69 73 74 5f 6e 6f 64 65 3b 0a 6c 61 62 65 6c 5f 6c 69 73 74 5f 6e 6f 64 65 3d 20 72 65 63 6f   ┆list_node; label_list_node= reco┆
0x083e20…083e40             72 64 0a 6e 65 78 74 5f 6c 61 62 65 6c 3a 20 6c 61 62 65 6c 5f 6c 69 73 74 5f 70 74 72 3b 0a 6c   ┆rd next_label: label_list_ptr; l┆
0x083e40…083e60             61 62 65 6c 5f 6e 61 6d 65 3a 20 6e 61 6d 65 5f 70 74 72 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 67 5f   ┆abel_name: name_ptr; end;  prog_┆
0x083e60…083e80             6b 69 6e 64 73 20 20 20 20 3d 20 28 63 6c 6f 73 65 64 5f 72 6f 75 74 69 6e 65 2c 20 6f 70 65 6e   ┆kinds    = (closed_routine, open┆
0x083e80…083ea0             5f 72 6f 75 74 69 6e 65 20 29 3b 0a 0a 74 6f 6b 65 6e 73 20 20 20 20 20 20 20 20 3d 20 28 20 62   ┆_routine );  tokens        = ( b┆
0x083ea0…083ec0             6c 6f 63 6b 62 65 67 69 6e 2c 20 62 6c 6f 63 6b 65 6e 64 2c 20 63 6f 6e 73 74 62 65 67 69 6e 2c   ┆lockbegin, blockend, constbegin,┆
0x083ec0…083ee0             20 65 6e 64 70 72 6f 67 72 61 6d 2c 20 6c 61 62 65 6c 64 65 66 2c 20 73 74 61 72 74 64 65 73 63   ┆ endprogram, labeldef, startdesc┆
0x083ee0…083f00             72 2c 0a 63 6f 6e 73 74 64 65 66 2c 20 63 6f 6d 6d 65 6e 74 2c 20 73 79 6d 62 6f 6c 2c 20 6f 70   ┆r, constdef, comment, symbol, op┆
0x083f00…083f20             74 69 6f 6e 2c 20 73 6f 75 72 63 65 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 20 6c 69 6e 65 5f 74   ┆tion, source_line_number, line_t┆
0x083f20…083f40             61 62 6c 65 2c 20 6f 74 68 65 72 20 29 3b 0a 0a 63 6f 64 65 72 61 6e 67 65 20 20 20 20 20 3d 20   ┆able, other );  coderange     = ┆
0x083f40…083f60             30 20 2e 2e 20 6d 61 78 5f 63 6f 64 65 5f 6e 75 6d 62 65 72 3b 0a 0a 6f 70 63 6f 64 65 5f 6b 69   ┆0 .. max_code_number;  opcode_ki┆
0x083f60…083f80             6e 64 73 20 20 3d 20 28 6a 75 6d 70 5f 6c 6f 6e 67 2c 20 6a 75 6d 70 5f 73 68 6f 72 74 2c 0a 66   ┆nds  = (jump_long, jump_short, f┆
0x083f80…083fa0             69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 20 73 65 63 6f 6e 64 5f 6f 66 5f 70 61 69 72 2c 20 61 64   ┆irst_of_pair, second_of_pair, ad┆
0x083fa0…083fc0             64 72 5f 6e 65 75 74 72 61 6c 2c 6e 65 67 61 74 69 76 65 5f 73 68 6f 72 74 20 29 3b 0a 0a 0a 6f   ┆dr_neutral,negative_short );   o┆
0x083fc0…083fe0             70 63 6f 64 65 5f 6e 6f 64 65 20 20 20 3d 20 72 65 63 6f 72 64 0a 6e 61 6d 65 70 61 72 74 20 20   ┆pcode_node   = record namepart  ┆
0x083fe0…084000             20 20 20 3a 20 6e 61 6d 65 73 74 72 69 6e 67 3b 0a 6f 70 63 6f 64 65 76 61 6c 20 20 20 20 3a 20   ┆   : namestring; opcodeval    : ┆
0x084000…084020 (35, 0, 7)  69 6e 74 65 67 65 72 3b 0a 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 66 6f 72 20   ┆integer; (* number of bytes for ┆
0x084020…084040             74 68 65 20 6f 70 65 72 61 6e 64 73 20 2a 29 0a 74 72 61 69 6c 65 72 73 20 20 20 20 20 3a 20 61   ┆the operands *) trailers     : a┆
0x084040…084060             72 72 61 79 20 5b 20 31 20 2e 2e 20 6d 61 78 5f 6e 6f 5f 6f 66 5f 74 72 61 69 6c 65 72 73 20 5d   ┆rray [ 1 .. max_no_of_trailers ]┆
0x084060…084080             20 6f 66 20 69 6e 74 65 67 65 72 3b 0a 74 6f 74 61 6c 5f 6c 65 6e 67 74 68 20 3a 20 69 6e 74 65   ┆ of integer; total_length : inte┆
0x084080…0840a0             67 65 72 3b 20 28 2a 20 74 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 74 6f   ┆ger; (* total number of bytes to┆
0x0840a0…0840c0             20 72 65 73 65 72 76 65 20 66 6f 72 20 74 68 69 73 20 63 6f 64 65 20 2a 29 0a 6f 70 63 6f 64 65   ┆ reserve for this code *) opcode┆
0x0840c0…0840e0             5f 6b 69 6e 64 20 20 3a 20 6f 70 63 6f 64 65 5f 6b 69 6e 64 73 3b 0a 65 78 63 5f 74 69 6d 65 2c   ┆_kind  : opcode_kinds; exc_time,┆
0x0840e0…084100             20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 65 78 65 63 75 74 69 6f 6e 20 74 69 6d 65 20   ┆              (* execution time ┆
0x084100…084120             69 6e 20 30 2e 31 20 6d 69 63 72 6f 20 73 65 63 73 20 2a 29 0a 75 73 65 5f 63 6f 75 6e 74 20 20   ┆in 0.1 micro secs *) use_count  ┆
0x084120…084140             20 20 3a 20 69 6e 74 65 67 65 72 3b 0a 65 6e 64 3b 0a 0a 6c 69 6e 65 5f 69 78 20 20 20 20 20 20   ┆  : integer; end;  line_ix      ┆
0x084140…084160             20 3d 20 30 20 2e 2e 20 6d 61 78 6c 69 6e 65 6c 65 6e 67 74 68 3b 0a 6c 69 6e 65 5f 74 79 70 65   ┆ = 0 .. maxlinelength; line_type┆
0x084160…084180             3d 20 61 72 72 61 79 20 5b 20 6c 69 6e 65 5f 69 78 20 5d 20 6f 66 20 63 68 61 72 3b 0a 0a 6a 75   ┆= array [ line_ix ] of char;  ju┆
0x084180…0841a0             6d 70 5f 74 61 62 6c 65 5f 70 74 72 20 3d 20 5e 20 6a 75 6d 70 5f 69 6e 66 6f 72 6d 61 74 69 6f   ┆mp_table_ptr = ^ jump_informatio┆
0x0841a0…0841c0             6e 3b 0a 6a 75 6d 70 5f 69 6e 66 6f 72 6d 61 74 69 6f 6e 3d 20 72 65 63 6f 72 64 0a 6e 65 78 74   ┆n; jump_information= record next┆
0x0841c0…0841e0             5f 6a 75 6d 70 20 20 20 3a 20 6a 75 6d 70 5f 74 61 62 6c 65 5f 70 74 72 3b 0a 6a 75 6d 70 5f 66   ┆_jump   : jump_table_ptr; jump_f┆
0x0841e0…084200             72 6f 6d 20 20 20 3a 20 63 6f 64 65 5f 69 78 3b 0a 64 65 73 74 69 6e 61 74 69 6f 6e 20 3a 20 6e   ┆rom   : code_ix; destination : n┆
0x084200…084220 (35, 0, 8)  61 6d 65 5f 70 74 72 3b 0a 65 6e 64 3b 0a 0a 0a 64 65 70 5f 63 68 61 69 6e 5f 70 74 72 20 20 3d   ┆ame_ptr; end;   dep_chain_ptr  =┆
0x084220…084240             20 5e 20 64 65 70 5f 63 68 61 69 6e 5f 65 6c 65 6d 65 6e 74 3b 0a 0a 64 65 70 5f 63 68 61 69 6e   ┆ ^ dep_chain_element;  dep_chain┆
0x084240…084260             5f 65 6c 65 6d 65 6e 74 20 3d 20 72 65 63 6f 72 64 0a 6e 65 78 74 5f 64 65 70 20 20 3a 20 64 65   ┆_element = record next_dep  : de┆
0x084260…084280             70 5f 63 68 61 69 6e 5f 70 74 72 3b 0a 64 65 70 65 6e 64 65 6e 74 2c 0a 64 65 70 65 6e 64 65 6e   ┆p_chain_ptr; dependent, dependen┆
0x084280…0842a0             63 65 3a 20 6e 61 6d 65 5f 70 74 72 3b 0a 65 6e 64 3b 0a 0a 0a 0a 0a 76 61 72 0a 6c 65 6e 67 74   ┆ce: name_ptr; end;     var lengt┆
0x0842a0…0842c0             68 5f 6f 66 5f 63 75 72 72 65 6e 74 5f 63 6f 64 65 2c 20 20 20 20 20 20 28 2a 20 75 73 65 64 20   ┆h_of_current_code,      (* used ┆
0x0842c0…0842e0             69 6e 20 70 72 69 6e 74 6c 69 6e 65 20 74 6f 20 61 64 6a 75 73 74 20 63 75 72 72 65 6e 74 20 6f   ┆in printline to adjust current o┆
0x0842e0…084300             66 66 73 65 74 20 2a 29 0a 65 6e 64 5f 6f 66 5f 63 6f 64 65 2c 0a 6c 69 6e 65 6e 75 6d 62 65 72   ┆ffset *) end_of_code, linenumber┆
0x084300…084320             2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 61 73 73 65 6d 62 6c 65 72 20   ┆,                  (* assembler ┆
0x084320…084340             6c 69 73 74 20 6c 69 6e 65 20 6e 75 6d 62 65 72 20 2a 29 0a 63 75 72 72 65 6e 74 5f 73 6f 75 72   ┆list line number *) current_sour┆
0x084340…084360             63 65 5f 6c 69 6e 65 2c 20 20 20 20 20 20 20 20 20 28 2a 20 70 61 73 63 61 6c 38 30 20 6c 69 6e   ┆ce_line,         (* pascal80 lin┆
0x084360…084380             65 20 6e 75 6d 62 65 72 20 2a 29 0a 6c 69 6e 65 5f 61 64 64 2c 20 20 20 20 20 20 20 20 20 20 20   ┆e number *) line_add,           ┆
0x084380…0843a0             20 20 20 20 20 20 20 20 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 73 6f 75 72 63 65 20 6c 69 6e   ┆         (* number of source lin┆
0x0843a0…0843c0             65 73 20 6d 65 74 20 73 69 6e 63 65 20 6c 61 73 74 20 6c 69 6e 65 20 74 61 62 6c 65 20 72 65 63   ┆es met since last line table rec┆
0x0843c0…0843e0             6f 72 64 20 2a 29 0a 63 6f 64 65 64 5f 74 69 6d 65 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ord *) coded_time,              ┆
0x0843e0…084400             20 20 20 20 20 28 2a 20 63 6f 6d 70 69 6c 65 72 20 76 65 72 73 69 6f 6e 20 2a 20 36 34 20 2a 20   ┆     (* compiler version * 64 * ┆
0x084400…084420 (35, 0, 9)  33 32 20 2b 20 68 6f 75 72 2a 36 34 20 2b 20 6d 69 6e 75 74 65 20 2a 29 0a 63 6f 64 65 64 5f 64   ┆32 + hour*64 + minute *) coded_d┆
0x084420…084440             61 74 65 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 28 79 65 61 72 20 2d   ┆ate,                  (* (year -┆
0x084440…084460             20 31 39 30 30 29 20 2a 20 28 31 36 20 2a 20 33 32 29 20 2b 20 6d 6f 6e 74 68 20 2a 20 33 32 20   ┆ 1900) * (16 * 32) + month * 32 ┆
0x084460…084480             2b 20 64 61 79 20 2a 29 0a 73 6f 75 72 63 65 5f 64 61 74 65 2c 20 20 20 20 20 20 20 20 20 20 20   ┆+ day *) source_date,           ┆
0x084480…0844a0             20 20 20 20 20 20 28 2a 20 64 61 74 65 20 6f 66 20 73 6f 75 72 63 65 20 74 65 78 74 2c 20 66 6f   ┆      (* date of source text, fo┆
0x0844a0…0844c0             75 6e 64 20 61 73 20 6f 70 74 69 6f 6e 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 20   ┆und as option values            ┆
0x0844c0…0844e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 30 2c 20 38 31 2e 2e 38 35   ┆                   pass0, 81..85┆
0x0844e0…084500             2c 20 28 79 65 61 72 2c 20 6d 6f 6e 74 68 2c 20 64 61 79 2c 20 68 6f 75 72 2c 20 6d 69 6e 75 74   ┆, (year, month, day, hour, minut┆
0x084500…084520             65 20 2a 29 0a 73 6f 75 72 63 65 5f 74 69 6d 65 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆e *) source_time,               ┆
0x084520…084540             20 20 28 2a 20 74 69 6d 65 20 6f 66 20 73 6f 75 72 63 65 20 74 65 78 74 2c 20 68 6f 75 72 20 61   ┆  (* time of source text, hour a┆
0x084540…084560             6e 64 20 6d 69 6e 75 74 65 20 2a 29 0a 75 73 65 72 73 5f 76 65 72 73 69 6f 6e 2c 20 20 20 20 20   ┆nd minute *) users_version,     ┆
0x084560…084580             20 20 20 20 20 20 20 20 20 20 28 2a 20 75 73 65 72 20 64 65 66 69 6e 65 64 20 76 65 72 73 69 6f   ┆          (* user defined versio┆
0x084580…0845a0             6e 20 6e 75 6d 62 65 72 2c 20 73 61 76 65 64 20 69 6e 20 64 65 73 63 72 20 70 61 72 74 20 6f 6e   ┆n number, saved in descr part on┆
0x0845a0…0845c0             65 20 2a 29 0a 65 72 72 6f 72 63 6f 75 6e 74 20 20 20 20 20 20 3a 20 69 6e 74 65 67 65 72 3b 0a   ┆e *) errorcount      : integer; ┆
0x0845c0…0845e0             73 6f 75 72 63 65 66 69 6c 65 6e 61 6d 65 2c 0a 63 75 72 5f 64 61 74 65 2c 20 63 75 72 5f 74 69   ┆sourcefilename, cur_date, cur_ti┆
0x0845e0…084600             6d 65 20 3a 20 61 6c 66 61 3b 0a 73 74 61 72 74 5f 63 6c 6f 63 6b 3a 20 64 61 74 65 74 69 6d 65   ┆me : alfa; start_clock: datetime┆
0x084600…084620 (35, 0, 10) 3b 0a 0a 63 6f 64 65 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆;  code,                        ┆
0x084620…084640             20 28 2a 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 64 65 20   ┆ (* file for the resulting code ┆
0x084640…084660             2a 29 0a 63 6f 64 65 66 69 6c 65 20 20 20 20 20 20 20 3a 20 66 69 6c 65 3b 20 20 20 20 20 20 20   ┆*) codefile       : file;       ┆
0x084660…084680             20 28 2a 20 66 69 6c 65 20 66 6f 72 20 74 65 6d 70 6f 72 61 72 79 20 63 6f 64 65 20 2a 29 0a 63   ┆ (* file for temporary code *) c┆
0x084680…0846a0             6f 64 65 5f 62 75 66 66 65 72 5f 70 74 72 3a 20 74 5f 62 75 66 5f 70 74 72 3b 0a 70 72 6f 67 72   ┆ode_buffer_ptr: t_buf_ptr; progr┆
0x0846a0…0846c0             61 6d 5f 6b 69 6e 64 20 20 20 3a 20 70 72 6f 67 5f 6b 69 6e 64 73 3b 0a 0a 0a 74 6f 6b 65 6e 20   ┆am_kind   : prog_kinds;   token ┆
0x0846c0…0846e0             20 20 20 20 20 20 20 20 20 20 3a 20 74 6f 6b 65 6e 73 3b 0a 0a 6e 69 6c 5f 6a 75 6d 70 5f 70 74   ┆          : tokens;  nil_jump_pt┆
0x0846e0…084700             72 2c 0a 63 75 72 72 65 6e 74 5f 6a 75 6d 70 5f 70 74 72 20 3a 20 6a 75 6d 70 5f 74 61 62 6c 65   ┆r, current_jump_ptr : jump_table┆
0x084700…084720             5f 70 74 72 3b 0a 0a 6e 69 6c 5f 6c 61 62 65 6c 5f 70 74 72 2c 20 28 2a 20 73 74 6f 70 20 65 6c   ┆_ptr;  nil_label_ptr, (* stop el┆
0x084720…084740             65 6d 65 6e 74 20 6f 66 20 61 6c 6c 6f 63 61 74 65 64 20 6c 61 62 65 6c 20 6c 69 73 74 20 6e 6f   ┆ement of allocated label list no┆
0x084740…084760             64 65 73 20 2a 29 0a 63 75 72 5f 6c 61 62 5f 70 74 72 20 20 20 20 20 3a 20 6c 61 62 65 6c 5f 6c   ┆des *) cur_lab_ptr     : label_l┆
0x084760…084780             69 73 74 5f 70 74 72 3b 20 28 2a 20 6c 69 73 74 20 6f 66 20 6c 61 62 65 6c 73 20 61 73 73 6f 63   ┆ist_ptr; (* list of labels assoc┆
0x084780…0847a0             69 61 74 65 64 20 77 69 74 68 20 63 75 72 72 65 6e 74 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 2a   ┆iated with current instruction *┆
0x0847a0…0847c0             29 0a 0a 63 75 72 72 65 6e 74 5f 73 65 67 6d 65 6e 74 20 3a 20 69 6e 74 65 67 65 72 3b 0a 63 75   ┆)  current_segment : integer; cu┆
0x0847c0…0847e0             72 72 65 6e 74 5f 6f 66 66 73 65 74 20 20 3a 20 63 6f 64 65 5f 69 78 3b 20 20 20 28 2a 20 66 69   ┆rrent_offset  : code_ix;   (* fi┆
0x0847e0…084800             72 73 74 20 66 72 65 65 20 62 79 74 65 20 69 6e 20 74 68 65 20 63 6f 64 65 20 62 75 66 66 65 72   ┆rst free byte in the code buffer┆
0x084800…084820 (35, 0, 11) 2c 20 69 2e 65 2e 20 74 68 65 0a 61 64 64 72 65 73 73 20 74 6f 20 61 73 73 6f 63 69 61 74 65 20   ┆, i.e. the address to associate ┆
0x084820…084840             77 69 74 68 20 61 20 6c 61 62 65 6c 20 77 68 65 6e 20 74 68 65 20 6c 61 62 65 6c 20 69 73 20 64   ┆with a label when the label is d┆
0x084840…084860             65 66 69 6e 65 64 0a 28 75 6e 6c 65 73 73 20 61 20 73 65 67 6d 65 6e 74 20 73 68 69 66 74 20 69   ┆efined (unless a segment shift i┆
0x084860…084880             73 20 6e 65 65 64 65 64 29 20 2a 29 0a 63 75 72 72 65 6e 74 5f 6e 61 6d 65 20 20 20 20 3a 20 6e   ┆s needed) *) current_name    : n┆
0x084880…0848a0             61 6d 65 73 74 72 69 6e 67 3b 0a 0a 63 68 62 75 66 20 20 20 20 20 20 20 20 20 20 20 3a 20 61 72   ┆amestring;  chbuf           : ar┆
0x0848a0…0848c0             72 61 79 20 5b 20 63 68 62 75 66 5f 69 78 20 5d 20 6f 66 20 63 68 61 72 3b 20 28 2a 20 63 75 72   ┆ray [ chbuf_ix ] of char; (* cur┆
0x0848c0…0848e0             72 65 6e 74 20 77 6f 72 64 20 74 6f 20 62 65 20 68 61 6e 64 6c 65 64 20 2a 29 0a 6c 61 73 74 63   ┆rent word to be handled *) lastc┆
0x0848e0…084900             68 61 72 20 20 20 20 20 20 20 20 3a 20 63 68 62 75 66 5f 69 78 3b 20 20 20 20 20 20 20 20 20 20   ┆har        : chbuf_ix;          ┆
0x084900…084920             20 20 20 20 20 20 20 20 20 28 2a 20 6c 65 6e 67 74 68 20 6f 66 20 63 75 72 72 65 6e 74 20 77 6f   ┆         (* length of current wo┆
0x084920…084940             72 64 20 2a 29 0a 0a 68 65 6c 70 2c 0a 73 74 65 70 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 69   ┆rd *)  help, step            : i┆
0x084940…084960             6e 74 65 67 65 72 3b 20 28 2a 20 68 65 6c 70 20 76 61 72 69 61 62 6c 65 2c 20 75 73 65 64 20 69   ┆nteger; (* help variable, used i┆
0x084960…084980             6e 20 66 6f 72 2d 73 74 61 74 65 6d 65 6e 74 73 20 2a 29 0a 0a 0a 6c 69 6e 65 5f 74 61 62 6c 65   ┆n for-statements *)   line_table┆
0x084980…0849a0             5f 64 65 73 63 72 69 70 74 6f 72 2c 0a 63 75 72 72 65 6e 74 5f 6c 69 6e 65 5f 72 65 63 6f 72 64   ┆_descriptor, current_line_record┆
0x0849a0…0849c0             2c 0a 6c 61 73 74 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 2c 0a 6c 65 6e 67 74 68 5f 6f 66 5f 6c 61   ┆, last_line_number, length_of_la┆
0x0849c0…0849e0             73 74 5f 73 65 67 6d 65 6e 74 2c 0a 69 6e 74 65 72 6e 61 6c 5f 6c 69 6e 6b 5f 6c 69 73 74 2c 0a   ┆st_segment, internal_link_list, ┆
0x0849e0…084a00             6e 69 6c 5f 6e 61 6d 65 2c 0a 6e 61 6d 65 66 72 65 65 6c 69 73 74 20 20 20 3a 20 6e 61 6d 65 5f   ┆nil_name, namefreelist   : name_┆
0x084a00…084a20 (35, 0, 12) 70 74 72 3b 0a 0a 75 6e 73 61 74 69 73 66 69 65 64 5f 6e 69 6c 2c 0a 75 6e 73 61 74 72 65 66 5f   ┆ptr;  unsatisfied_nil, unsatref_┆
0x084a20…084a40             66 72 65 65 6c 69 73 74 20 3a 20 75 6e 73 61 74 72 65 66 5f 70 74 72 3b 0a 0a 65 72 72 6f 72 69   ┆freelist : unsatref_ptr;  errori┆
0x084a40…084a60             6e 64 65 78 2c 0a 6c 69 6e 65 69 6e 64 65 78 2c 0a 6c 69 6e 65 6c 65 6e 67 74 68 20 20 20 20 20   ┆ndex, lineindex, linelength     ┆
0x084a60…084a80             20 3a 20 6c 69 6e 65 5f 69 78 3b 0a 6c 69 6e 65 3a 20 6c 69 6e 65 5f 74 79 70 65 3b 20 28 2a 20   ┆ : line_ix; line: line_type; (* ┆
0x084a80…084aa0             6c 69 6e 65 20 28 30 29 3d 73 70 20 21 21 21 20 2a 29 0a 65 72 72 6f 72 6d 61 72 6b 73 20 20 20   ┆line (0)=sp !!! *) errormarks   ┆
0x084aa0…084ac0             20 20 20 3a 20 70 61 63 6b 65 64 20 61 72 72 61 79 20 5b 20 30 20 2e 2e 20 68 69 67 68 65 72 72   ┆   : packed array [ 0 .. higherr┆
0x084ac0…084ae0             6f 72 20 5d 20 6f 66 20 62 6f 6f 6c 65 61 6e 3b 0a 6f 62 6a 65 63 74 5f 63 6f 64 65 5f 66 69 6c   ┆or ] of boolean; object_code_fil┆
0x084ae0…084b00             65 5f 6f 70 65 6e 65 64 2c 0a 6c 61 73 74 5f 70 61 67 65 2c 0a 63 6f 64 65 73 69 7a 65 5f 6d 65   ┆e_opened, last_page, codesize_me┆
0x084b00…084b20             74 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 6f 70 74 69 6f 6e 20 63 6f 64 65   ┆t,                (* option code┆
0x084b20…084b40             20 73 69 7a 65 20 6d 65 74 2c 20 6f 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 69 73 20 73 69 67   ┆ size met, only the first is sig┆
0x084b40…084b60             6e 69 66 69 63 61 6e 74 20 2a 29 0a 73 70 61 63 69 6e 67 5f 6d 65 74 2c 20 20 20 20 20 20 20 20   ┆nificant *) spacing_met,        ┆
0x084b60…084b80             20 20 20 20 20 20 20 20 20 28 2a 20 6f 70 74 69 6f 6e 20 73 70 61 63 69 6e 67 20 6d 65 74 2c 20   ┆         (* option spacing met, ┆
0x084b80…084ba0             20 2d 20 20 20 2d 20 2d 20 20 20 2d 20 20 20 20 20 20 2a 29 0a 6c 69 6e 65 69 6e 66 6f 5f 6d 65   ┆ -   - -   -      *) lineinfo_me┆
0x084ba0…084bc0             74 2c 0a 67 65 6e 65 72 61 74 65 5f 6c 69 6e 65 5f 69 6e 66 6f 2c 28 2a 20 6f 70 74 69 6f 6e 20   ┆t, generate_line_info,(* option ┆
0x084bc0…084be0             6c 69 6e 65 69 6e 66 6f 20 28 31 30 29 20 20 20 2a 29 0a 64 75 6d 70 5f 6e 61 6d 65 74 61 62 6c   ┆lineinfo (10)   *) dump_nametabl┆
0x084be0…084c00             65 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 6f 70 74 69 6f 6e 20 20 6e 61 6d 65 74   ┆e,              (* option  namet┆
0x084c00…084c20 (35, 0, 13) 61 62 6c 65 2c 20 64 65 66 61 75 6c 74 20 69 73 20 6e 61 6d 65 74 61 62 6c 65 2e 6e 6f 20 2a 29   ┆able, default is nametable.no *)┆
0x084c20…084c40             0a 70 72 69 6e 74 5f 63 6f 64 65 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a   ┆ print_code,                  (*┆
0x084c40…084c60             20 6f 70 74 69 6f 6e 20 20 70 72 69 6e 74 2c 20 64 65 66 61 75 6c 74 20 69 73 20 70 72 69 6e 74   ┆ option  print, default is print┆
0x084c60…084c80             2e 6e 6f 20 2a 29 0a 65 72 72 6f 72 72 65 70 6f 72 74 69 6e 67 2c 20 20 20 20 20 20 20 20 20 20   ┆.no *) errorreporting,          ┆
0x084c80…084ca0             20 20 20 20 28 2a 20 6f 70 74 69 6f 6e 20 20 65 72 72 6f 72 6d 65 73 73 2c 20 64 65 66 61 75 6c   ┆    (* option  errormess, defaul┆
0x084ca0…084cc0             74 20 69 73 20 65 72 72 6f 72 6d 65 73 73 2e 6e 6f 20 2a 29 0a 70 72 65 73 65 72 76 65 5f 6f 70   ┆t is errormess.no *) preserve_op┆
0x084cc0…084ce0             74 69 6f 6e 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 6f 70 74 69 6f 6e 20 70 72 65 73   ┆tion,             (* option pres┆
0x084ce0…084d00             65 72 76 65 2c 20 64 65 66 61 75 6c 74 20 69 73 20 6e 6f 20 2a 29 0a 74 65 73 74 2c 20 20 20 20   ┆erve, default is no *) test,    ┆
0x084d00…084d20             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 6f 70 74 69 6f 6e 20 20 74   ┆                    (* option  t┆
0x084d20…084d40             65 73 74 2c 20 64 65 66 61 75 6c 74 20 69 73 20 74 65 73 74 2e 6e 6f 20 2a 29 0a 70 72 69 6e 74   ┆est, default is test.no *) print┆
0x084d40…084d60             65 64 2c 0a 63 6f 64 65 6c 69 73 74 20 20 20 20 20 20 20 20 3a 20 62 6f 6f 6c 65 61 6e 3b 20 20   ┆ed, codelist        : boolean;  ┆
0x084d60…084d80             20 20 20 28 2a 20 6f 70 74 69 6f 6e 20 20 6c 69 73 74 2c 20 64 65 66 61 75 6c 74 20 69 73 20 6c   ┆   (* option  list, default is l┆
0x084d80…084da0             69 73 74 2e 6e 6f 20 2a 29 0a 0a 6e 69 6c 5f 6c 65 76 65 6c 2c 20 20 20 20 20 20 20 20 20 28 2a   ┆ist.no *)  nil_level,         (*┆
0x084da0…084dc0             20 62 6f 74 74 6f 6d 20 65 6c 65 6d 65 6e 74 20 6f 66 20 6c 65 76 65 6c 20 73 74 61 63 6b 20 2a   ┆ bottom element of level stack *┆
0x084dc0…084de0             29 0a 67 6c 6f 62 61 6c 5f 6c 65 76 65 6c 2c 20 20 20 20 20 20 28 2a 20 6c 65 76 65 6c 20 6f 66   ┆) global_level,      (* level of┆
0x084de0…084e00             20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 2a 29 0a 66 72 65 65 5f 6c 65 76 65 6c 5f 6c 69 73 74 2c   ┆ environment *) free_level_list,┆
0x084e00…084e20 (35, 0, 14) 0a 63 75 72 72 65 6e 74 5f 6c 65 76 65 6c 20 20 20 3a 20 6c 65 76 65 6c 5f 70 74 72 3b 0a 0a 64   ┆ current_level   : level_ptr;  d┆
0x084e20…084e40             65 70 5f 63 68 61 69 6e 5f 73 74 61 72 74 2c 0a 66 72 65 65 5f 64 65 70 5f 6c 69 73 74 20 20 20   ┆ep_chain_start, free_dep_list   ┆
0x084e40…084e60             3a 20 64 65 70 5f 63 68 61 69 6e 5f 70 74 72 3b 0a 0a 6c 61 73 74 63 6f 64 65 20 20 20 20 20 20   ┆: dep_chain_ptr;  lastcode      ┆
0x084e60…084e80             20 20 3a 20 69 6e 74 65 67 65 72 3b 20 20 20 20 20 20 28 2a 20 69 6e 64 65 78 20 6f 66 20 74 68   ┆  : integer;      (* index of th┆
0x084e80…084ea0             65 20 6c 61 73 74 20 64 65 66 69 6e 65 64 20 6f 70 2d 63 6f 64 65 20 2a 29 0a 6f 70 63 6f 64 65   ┆e last defined op-code *) opcode┆
0x084ea0…084ec0             73 20 20 20 20 20 20 20 20 20 3a 20 61 72 72 61 79 20 5b 20 63 6f 64 65 72 61 6e 67 65 20 5d 20   ┆s         : array [ coderange ] ┆
0x084ec0…084ee0             6f 66 20 6f 70 63 6f 64 65 5f 6e 6f 64 65 3b 0a 63 68 65 63 6b 5f 6f 70 65 6e 5f 63 6f 64 65 2c   ┆of opcode_node; check_open_code,┆
0x084ee0…084f00             0a 0a 6c 6f 6e 67 6a 75 6d 70 2c 0a 6e 6f 5f 6f 70 5f 69 78 20 20 20 20 20 20 20 20 3a 20 63 6f   ┆  longjump, no_op_ix        : co┆
0x084f00…084f20             64 65 72 61 6e 67 65 3b 0a 0a 61 69 73 5f 63 6f 64 65 73 20 3a 20 70 61 63 6b 65 64 20 61 72 72   ┆derange;  ais_codes : packed arr┆
0x084f20…084f40             61 79 20 5b 20 63 6f 64 65 72 61 6e 67 65 20 5d 20 6f 66 20 69 6e 74 65 72 76 61 6c 5f 69 6e 64   ┆ay [ coderange ] of interval_ind┆
0x084f40…084f60             65 78 3b 0a 0a 69 6e 74 65 72 76 61 6c 73 20 3a 20 61 72 72 61 79 20 5b 20 69 6e 74 65 72 76 61   ┆ex;  intervals : array [ interva┆
0x084f60…084f80             6c 5f 69 6e 64 65 78 20 5d 20 6f 66 20 70 61 63 6b 65 64 20 72 65 63 6f 72 64 0a 61 69 73 5f 63   ┆l_index ] of packed record ais_c┆
0x084f80…084fa0             6f 64 65 5f 76 61 6c 20 3a 20 63 6f 64 65 72 61 6e 67 65 3b 0a 74 72 61 69 6c 65 72 5f 6e 72 20   ┆ode_val : coderange; trailer_nr ┆
0x084fa0…084fc0             3a 20 31 20 2e 2e 20 32 3b 0a 74 72 61 69 6c 65 72 5f 73 69 7a 65 20 3a 20 30 20 2e 2e 20 32 3b   ┆: 1 .. 2; trailer_size : 0 .. 2;┆
0x084fc0…084fe0             20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 2a 29 0a 6e 65 78 74 5f 69 6e 74 65   ┆ (* number of bytes *) next_inte┆
0x084fe0…085000             72 76 61 6c 20 3a 20 69 6e 74 65 72 76 61 6c 5f 69 6e 64 65 78 3b 0a 69 6e 74 65 72 76 61 6c 5f   ┆rval : interval_index; interval_┆
0x085000…085020 (35, 0, 15) 6c 6f 77 2c 20 69 6e 74 65 72 76 61 6c 5f 68 69 67 68 20 3a 20 69 6e 74 65 67 65 72 3b 0a 65 6e   ┆low, interval_high : integer; en┆
0x085020…085040             64 3b 0a 0a 72 65 73 65 72 76 65 5f 6d 61 78 20 20 20 20 20 3a 20 69 6e 74 65 67 65 72 3b 20 28   ┆d;  reserve_max     : integer; (┆
0x085040…085060             2a 20 6d 61 78 20 75 73 65 64 20 63 6f 64 65 20 62 75 66 66 65 72 20 67 72 65 61 74 65 72 20 74   ┆* max used code buffer greater t┆
0x085060…085080             68 61 6e 20 73 65 67 6d 65 6e 74 5f 73 69 7a 65 20 2a 29 0a 0a 72 65 6d 5f 62 75 66 66 65 72 5f   ┆han segment_size *)  rem_buffer_┆
0x085080…0850a0             73 69 7a 65 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 72 65 6d 61 69 6e 69 6e 67 20 63   ┆size,             (* remaining c┆
0x0850a0…0850c0             6f 64 65 20 62 75 66 66 65 72 20 73 69 7a 65 20 2a 29 0a 6c 61 73 74 5f 74 6f 5f 65 6d 69 74 2c   ┆ode buffer size *) last_to_emit,┆
0x0850c0…0850e0             20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 6f 66 66 73 65 74 20 6f 66 20 6c 61 73   ┆                (* offset of las┆
0x0850e0…085100             74 20 62 79 74 65 20 6f 66 20 74 68 65 20 6c 61 73 74 20 70 61 67 65 20 66 72 6f 6d 20 63 6f 64   ┆t byte of the last page from cod┆
0x085100…085120             65 5f 66 69 6c 65 20 28 74 68 65 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 29 20 2a 29 0a 73   ┆e_file (the temporary file) *) s┆
0x085120…085140             74 61 72 74 5f 6f 66 5f 6c 69 6e 65 5f 74 61 62 6c 65 2c 0a 6e 65 78 74 5f 6c 69 6e 65 5f 74 61   ┆tart_of_line_table, next_line_ta┆
0x085140…085160             62 6c 65 5f 65 6e 74 72 79 2c 0a 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 69 7a 65 2c 20 20 20 20 20   ┆ble_entry, line_table_size,     ┆
0x085160…085180             20 20 20 20 20 20 20 20 28 2a 20 72 6f 6f 6d 20 72 65 73 65 72 76 65 64 20 66 6f 72 20 74 68 65   ┆        (* room reserved for the┆
0x085180…0851a0             20 6c 69 6e 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 2a 29 0a 6c 69 6e 65 5f 73 70 61 63 69 6e   ┆ line information *) line_spacin┆
0x0851a0…0851c0             67 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 64 69 73 74 61 6e 63 65 20 69 6e   ┆g,                (* distance in┆
0x0851c0…0851e0             20 62 79 74 65 73 20 62 65 74 77 65 65 6e 20 64 75 6d 70 20 6f 66 20 6c 69 6e 65 20 69 6e 66 6f   ┆ bytes between dump of line info┆
0x0851e0…085200             72 6d 61 74 69 6f 6e 20 2a 29 0a 73 65 67 6d 65 6e 74 5f 73 69 7a 65 20 20 20 20 3a 20 63 6f 64   ┆rmation *) segment_size    : cod┆
0x085200…085220 (35, 1, 1)  65 5f 69 78 3b 20 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 6c 61 73 74 20 62 79 74   ┆e_ix;  (* number of the last byt┆
0x085220…085240             65 20 69 6e 20 61 20 73 65 67 6d 65 6e 74 2c 0a 6e 6f 74 65 3a 20 28 73 65 67 6d 65 6e 74 5f 73   ┆e in a segment, note: (segment_s┆
0x085240…085260             69 7a 65 20 2b 20 31 29 20 6d 6f 64 20 62 79 74 65 73 5f 70 72 5f 77 6f 72 64 20 20 6d 75 73 74   ┆ize + 1) mod bytes_pr_word  must┆
0x085260…085280             20 62 65 20 20 30 20 20 2a 29 0a 0a 63 6f 64 65 5f 62 75 66 66 65 72 20 20 20 20 20 3a 20 74 5f   ┆ be  0  *)  code_buffer     : t_┆
0x085280…0852a0             62 75 66 5f 70 74 72 3b 0a 0a 64 65 73 63 72 31 20 20 20 20 20 20 20 20 20 20 3a 20 61 72 72 61   ┆buf_ptr;  descr1          : arra┆
0x0852a0…0852c0             79 20 5b 20 30 20 2e 2e 20 64 65 73 63 72 31 5f 73 69 7a 65 20 5d 20 6f 66 20 69 6e 74 65 67 65   ┆y [ 0 .. descr1_size ] of intege┆
0x0852c0…0852e0             72 3b 0a 28 2a 20 75 73 65 64 20 66 6f 72 20 70 61 72 74 20 31 20 6f 66 20 74 68 65 20 64 65 73   ┆r; (* used for part 1 of the des┆
0x0852e0…085300             63 72 69 70 74 6f 72 20 62 6c 6f 63 6b 20 2a 29 0a 0a 73 79 73 74 65 6d 70 61 72 61 6d 6e 6f 20   ┆criptor block *)  systemparamno ┆
0x085300…085320             3a 20 69 6e 74 65 67 65 72 3b 20 20 28 2a 20 63 75 72 72 65 6e 74 20 20 66 70 2d 70 61 72 61 6d   ┆: integer;  (* current  fp-param┆
0x085320…085340             65 74 65 72 20 2a 29 0a 63 6f 64 65 66 69 6c 65 6e 61 6d 65 2c 20 20 20 20 20 20 20 20 20 20 20   ┆eter *) codefilename,           ┆
0x085340…085360             20 28 2a 20 65 78 74 65 72 6e 61 6c 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 69   ┆ (* external name of the resulti┆
0x085360…085380             6e 67 20 63 6f 64 65 20 66 69 6c 65 20 2a 29 0a 70 72 6f 63 6e 61 6d 65 20 20 20 20 20 20 20 20   ┆ng code file *) procname        ┆
0x085380…0853a0             3a 20 61 6c 66 61 3b 20 20 28 2a 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 20   ┆: alfa;  (* name of the process ┆
0x0853a0…0853c0             2a 29 0a 0a 0a 28 2a 20 76 61 72 69 61 62 6c 65 73 20 66 6f 72 20 73 74 61 74 69 73 74 69 63 61   ┆*)   (* variables for statistica┆
0x0853c0…0853e0             6c 20 75 73 65 20 2a 29 0a 73 75 72 76 65 79 5f 6e 61 6d 65 5f 6e 6f 64 65 73 2c 20 20 20 20 20   ┆l use *) survey_name_nodes,     ┆
0x0853e0…085400             20 20 20 20 20 28 2a 20 63 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 6c 6c 6f 63 61 74 65   ┆     (* count number of allocate┆
0x085400…085420 (35, 1, 2)  64 20 6e 61 6d 65 6e 6f 64 65 73 20 2a 29 0a 73 75 72 76 65 79 5f 64 65 70 65 6e 64 65 6e 63 65   ┆d namenodes *) survey_dependence┆
0x085420…085440             5f 6e 6f 64 65 73 2c 20 20 20 20 28 2a 20 63 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 6c   ┆_nodes,    (* count number of al┆
0x085440…085460             6c 6f 63 61 74 65 64 20 64 65 70 5f 63 68 61 69 6e 5f 65 6c 65 6d 65 6e 74 73 20 2a 29 0a 73 75   ┆located dep_chain_elements *) su┆
0x085460…085480             72 76 65 79 5f 6a 75 6d 70 5f 6e 6f 64 65 73 2c 20 20 20 20 20 20 20 20 20 20 28 2a 20 63 6f 75   ┆rvey_jump_nodes,          (* cou┆
0x085480…0854a0             6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 6c 6c 6f 63 61 74 65 64 20 6a 75 6d 70 5f 69 6e 66 6f   ┆nt number of allocated jump_info┆
0x0854a0…0854c0             72 6d 61 74 69 6f 6e 20 6e 6f 64 65 73 20 2a 29 0a 73 75 72 76 65 79 5f 63 75 72 5f 6c 61 62 65   ┆rmation nodes *) survey_cur_labe┆
0x0854c0…0854e0             6c 5f 6e 6f 64 65 73 2c 20 20 20 20 20 28 2a 20 63 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20   ┆l_nodes,     (* count number of ┆
0x0854e0…085500             61 6c 6c 6f 63 61 74 65 64 20 6c 61 62 65 6c 5f 6c 69 73 74 5f 6e 6f 64 65 73 20 2a 29 0a 73 75   ┆allocated label_list_nodes *) su┆
0x085500…085520             72 76 65 79 5f 75 6e 73 61 74 5f 6e 6f 64 65 73 2c 20 20 20 20 20 20 20 20 20 28 2a 20 63 6f 75   ┆rvey_unsat_nodes,         (* cou┆
0x085520…085540             6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 6c 6c 6f 63 61 74 65 64 20 75 6e 73 61 74 72 65 66 6e   ┆nt number of allocated unsatrefn┆
0x085540…085560             6f 64 65 73 20 2a 29 0a 73 75 72 76 65 79 5f 6c 65 76 65 6c 5f 6e 6f 64 65 73 2c 20 20 20 20 20   ┆odes *) survey_level_nodes,     ┆
0x085560…085580             20 20 20 20 28 2a 20 63 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 6c 6c 6f 63 61 74 65 64   ┆    (* count number of allocated┆
0x085580…0855a0             20 6c 65 76 65 6c 5f 6e 6f 64 65 73 20 2a 29 0a 73 75 72 76 65 79 5f 67 72 65 61 74 65 73 74 5f   ┆ level_nodes *) survey_greatest_┆
0x0855a0…0855c0             63 6f 6e 73 74 2c 20 20 20 20 20 20 28 2a 20 73 69 7a 65 20 6f 66 20 6d 6f 73 74 20 65 78 74 65   ┆const,      (* size of most exte┆
0x0855c0…0855e0             6e 73 69 76 65 20 63 6f 6e 73 74 61 6e 74 20 69 6e 20 74 68 65 20 63 6f 64 65 20 2a 29 0a 62 61   ┆nsive constant in the code *) ba┆
0x0855e0…085600             72 72 69 65 72 2c 0a 63 75 72 72 65 6e 74 5f 74 69 6d 65 2c 20 20 28 2a 20 65 78 65 63 75 74 69   ┆rrier, current_time,  (* executi┆
0x085600…085620 (35, 1, 3)  6f 6e 20 74 69 6d 65 20 66 6f 72 20 63 75 72 72 65 6e 74 20 63 6f 64 65 2c 20 2d 31 20 69 66 20   ┆on time for current code, -1 if ┆
0x085620…085640             6e 6f 74 20 63 6f 64 65 20 6c 69 6e 65 20 2a 29 0a 74 6f 74 61 6c 5f 74 69 6d 65 2c 20 20 20 28   ┆not code line *) total_time,   (┆
0x085640…085660             2a 20 65 78 65 63 75 74 69 6f 6e 20 74 69 6d 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 2a 29 0a   ┆* execution time accumulator *) ┆
0x085660…085680             73 75 72 76 65 79 5f 6f 70 74 69 6f 6e 5f 6e 75 6d 62 65 72 20 20 3a 20 69 6e 74 65 67 65 72 3b   ┆survey_option_number  : integer;┆
0x085680…0856a0             0a 73 68 6f 72 74 5f 69 6e 73 74 72 75 63 74 69 6f 6e 73 2c 20 20 20 28 2a 20 6f 70 74 69 6f 6e   ┆ short_instructions,   (* option┆
0x0856a0…0856c0             28 31 33 29 2c 20 73 68 6f 72 74 2c 20 20 75 73 65 20 61 69 73 20 63 6f 64 65 73 20 2a 29 0a 73   ┆(13), short,  use ais codes *) s┆
0x0856c0…0856e0             75 72 76 65 79 5f 69 6e 66 6f 2c 20 20 20 20 20 20 20 20 20 28 2a 20 73 75 72 76 65 79 2e 79 65   ┆urvey_info,         (* survey.ye┆
0x0856e0…085700             73 2f 6e 6f 2c 20 69 66 20 79 65 73 20 74 68 65 6e 20 64 75 6d 70 20 72 65 73 6f 75 72 63 65 20   ┆s/no, if yes then dump resource ┆
0x085700…085720             73 74 61 74 69 73 74 69 63 73 20 2a 29 0a 67 65 6e 65 72 61 74 65 5f 73 74 61 74 69 73 74 69 63   ┆statistics *) generate_statistic┆
0x085720…085740             73 20 3a 20 62 6f 6f 6c 65 61 6e 3b 20 20 28 2a 20 6f 70 74 69 6f 6e 20 28 31 30 29 20 73 74 61   ┆s : boolean;  (* option (10) sta┆
0x085740…085760             74 69 73 74 69 63 73 20 2a 29 0a 0a 28 2a 20 65 6e 64 20 6f 66 20 76 61 72 69 61 62 6c 65 73 20   ┆tistics *)  (* end of variables ┆
0x085760…085780             66 6f 72 20 73 74 61 74 69 73 74 69 63 61 6c 20 75 73 65 20 2a 29 0a 0a 0a 6e 6f 5f 6f 66 5f 65   ┆for statistical use *)   no_of_e┆
0x085780…0857a0             6c 65 6d 73 5f 69 6e 5f 6c 69 6e 65 20 3a 20 69 6e 74 65 67 65 72 3b 20 28 2a 20 63 75 72 72 65   ┆lems_in_line : integer; (* curre┆
0x0857a0…0857c0             6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 65 6d 69 74 65 64 20 63 6f 64 65 20 77 6f 72 64 73 20 69   ┆nt number of emited code words i┆
0x0857c0…0857e0             6e 20 74 68 69 73 20 6c 69 6e 65 20 2a 29 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 72 69 6e 74   ┆n this line *)   procedure print┆
0x0857e0…085800             65 72 72 6f 72 73 3b 0a 76 61 72 0a 69 2c 20 63 75 72 72 65 6e 74 5f 74 65 78 74 5f 6e 6f 20 3a   ┆errors; var i, current_text_no :┆
0x085800…085820 (35, 1, 4)  20 69 6e 74 65 67 65 72 3b 0a 63 68 20 3a 20 63 68 61 72 3b 0a 0a 62 65 67 69 6e 0a 69 66 20 65   ┆ integer; ch : char;  begin if e┆
0x085820…085840             72 72 6f 72 63 6f 75 6e 74 20 3c 3e 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 72 69 74 65 6c   ┆rrorcount <> 0 then begin writel┆
0x085840…085860             6e 28 6f 75 74 70 75 74 2c 20 27 20 6e 75 6d 62 65 72 20 6f 66 20 65 72 72 6f 72 73 20 3a 20 27   ┆n(output, ' number of errors : '┆
0x085860…085880             2c 20 65 72 72 6f 72 63 6f 75 6e 74 20 3a 20 34 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75   ┆, errorcount : 4); writeln(outpu┆
0x085880…0858a0             74 29 3b 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 77 72 69 74 65 6c 6e 28 27 45 72   ┆t); writeln(output); writeln('Er┆
0x0858a0…0858c0             72 6f 72 20 64 65 73 63 72 69 70 74 69 6f 6e 27 29 3b 0a 61 73 73 69 67 6e 28 20 69 6e 70 75 74   ┆ror description'); assign( input┆
0x0858c0…0858e0             2c 20 63 6f 6e 63 61 74 28 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 2c 20 69 5f 70 61 73 73 78   ┆, concat(rtp35_pathname, i_passx┆
0x0858e0…085900             5f 65 72 72 32 6e 61 6d 65 29 29 3b 0a 28 2a 24 49 2d 2a 29 0a 72 65 73 65 74 28 69 6e 70 75 74   ┆_err2name)); (*$I-*) reset(input┆
0x085900…085920             29 3b 0a 69 66 20 69 6f 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6e   ┆); if ioresult <> 0 then begin n┆
0x085920…085940             6f 66 69 6c 65 28 63 6f 6e 63 61 74 28 72 74 70 33 35 5f 70 61 74 68 6e 61 6d 65 2c 20 69 5f 70   ┆ofile(concat(rtp35_pathname, i_p┆
0x085940…085960             61 73 73 78 5f 65 72 72 32 6e 61 6d 65 29 29 3b 0a 65 6e 64 3b 0a 28 2a 24 49 2b 2a 29 0a 72 65   ┆assx_err2name)); end; (*$I+*) re┆
0x085960…085980             70 65 61 74 0a 72 65 70 65 61 74 0a 72 65 61 64 6c 6e 28 69 6e 70 75 74 29 3b 0a 72 65 61 64 28   ┆peat repeat readln(input); read(┆
0x085980…0859a0             69 6e 70 75 74 2c 20 63 68 29 3b 0a 75 6e 74 69 6c 20 63 68 20 3d 20 27 36 27 3b 0a 72 65 61 64   ┆input, ch); until ch = '6'; read┆
0x0859a0…0859c0             6c 6e 28 69 6e 70 75 74 2c 20 69 20 29 3b 0a 75 6e 74 69 6c 20 69 20 3d 20 36 36 36 3b 0a 63 75   ┆ln(input, i ); until i = 666; cu┆
0x0859c0…0859e0             72 72 65 6e 74 5f 74 65 78 74 5f 6e 6f 3a 3d 20 2d 31 3b 0a 0a 66 6f 72 20 69 3a 3d 20 31 20 74   ┆rrent_text_no:= -1;  for i:= 1 t┆
0x0859e0…085a00             6f 20 68 69 67 68 65 72 72 6f 72 20 64 6f 0a 69 66 20 65 72 72 6f 72 6d 61 72 6b 73 20 5b 20 69   ┆o higherror do if errormarks [ i┆
0x085a00…085a20 (35, 1, 5)  20 5d 20 74 68 65 6e 0a 62 65 67 69 6e 0a 0a 28 2a 20 66 69 6e 64 20 74 68 65 20 74 65 78 74 20   ┆ ] then begin  (* find the text ┆
0x085a20…085a40             2a 29 0a 77 68 69 6c 65 20 69 20 3e 20 63 75 72 72 65 6e 74 5f 74 65 78 74 5f 6e 6f 20 64 6f 0a   ┆*) while i > current_text_no do ┆
0x085a40…085a60             62 65 67 69 6e 0a 69 66 20 6e 6f 74 20 65 6f 66 28 69 6e 70 75 74 29 20 74 68 65 6e 20 72 65 61   ┆begin if not eof(input) then rea┆
0x085a60…085a80             64 6c 6e 28 69 6e 70 75 74 29 3b 0a 69 66 20 6e 6f 74 20 65 6f 66 28 69 6e 70 75 74 29 20 74 68   ┆dln(input); if not eof(input) th┆
0x085a80…085aa0             65 6e 20 72 65 61 64 28 63 75 72 72 65 6e 74 5f 74 65 78 74 5f 6e 6f 29 0a 65 6c 73 65 20 63 75   ┆en read(current_text_no) else cu┆
0x085aa0…085ac0             72 72 65 6e 74 5f 74 65 78 74 5f 6e 6f 3a 3d 20 68 69 67 68 65 72 72 6f 72 20 2b 20 31 3b 0a 65   ┆rrent_text_no:= higherror + 1; e┆
0x085ac0…085ae0             6e 64 3b 0a 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 69 20 3a 20 34 2c 20 27 3a 20 27 29 3b   ┆nd;  write(output, i : 4, ': ');┆
0x085ae0…085b00             0a 69 66 20 69 20 3c 3e 20 63 75 72 72 65 6e 74 5f 74 65 78 74 5f 6e 6f 20 74 68 65 6e 0a 77 72   ┆ if i <> current_text_no then wr┆
0x085b00…085b20             69 74 65 28 6f 75 74 70 75 74 2c 20 27 20 28 20 6e 6f 20 74 65 78 74 20 29 20 27 20 29 0a 65 6c   ┆ite(output, ' ( no text ) ' ) el┆
0x085b20…085b40             73 65 0a 77 68 69 6c 65 20 6e 6f 74 20 65 6f 6c 6e 28 69 6e 70 75 74 29 20 64 6f 0a 62 65 67 69   ┆se while not eoln(input) do begi┆
0x085b40…085b60             6e 0a 72 65 61 64 28 63 68 29 3b 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 63 68 29 3b 0a 65   ┆n read(ch); write(output, ch); e┆
0x085b60…085b80             6e 64 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 65 6e 64 3b 20 28 2a 20 66 6f 72   ┆nd; writeln(output); end; (* for┆
0x085b80…085ba0             20 69 20 2e 2e 2e 20 2a 29 0a 63 6c 6f 73 65 28 69 6e 70 75 74 29 3b 0a 0a 65 6e 64 0a 65 6c 73   ┆ i ... *) close(input);  end els┆
0x085ba0…085bc0             65 0a 69 66 20 28 72 65 73 65 72 76 65 5f 6d 61 78 20 3d 20 30 29 20 61 6e 64 20 6e 6f 74 20 65   ┆e if (reserve_max = 0) and not e┆
0x085bc0…085be0             72 72 6f 72 6d 61 72 6b 73 5b 30 5d 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 63 6f 75   ┆rrormarks[0] then begin errorcou┆
0x085be0…085c00             6e 74 20 3a 3d 20 31 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 27 20 43 6f 6d 70 69 6c   ┆nt := 1; writeln(output,' Compil┆
0x085c00…085c20 (35, 1, 6)  65 72 20 65 72 72 6f 72 20 64 65 74 65 63 74 65 64 20 27 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75   ┆er error detected '); writeln(ou┆
0x085c20…085c40             74 70 75 74 2c 20 27 20 70 6c 65 61 73 65 20 69 6e 66 6f 72 6d 20 74 68 65 20 63 6f 6d 70 69 6c   ┆tput, ' please inform the compil┆
0x085c40…085c60             65 72 20 67 72 6f 75 70 27 20 29 3b 0a 65 6e 64 3b 0a 28 2a 24 52 2d 2a 29 0a 69 66 20 72 65 73   ┆er group' ); end; (*$R-*) if res┆
0x085c60…085c80             65 72 76 65 5f 6d 61 78 20 3c 3e 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 63 6f   ┆erve_max <> 0 then begin errorco┆
0x085c80…085ca0             75 6e 74 20 3a 3d 20 31 3b 0a 69 3a 3d 20 72 65 73 65 72 76 65 5f 6d 61 78 20 2b 20 6c 69 6e 65   ┆unt := 1; i:= reserve_max + line┆
0x085ca0…085cc0             5f 74 61 62 6c 65 5f 73 69 7a 65 20 2b 20 6c 6f 6e 67 6a 75 6d 70 5f 73 69 7a 65 3b 0a 69 3a 3d   ┆_table_size + longjump_size; i:=┆
0x085cc0…085ce0             20 69 20 2b 20 28 20 69 20 2d 20 73 65 67 6d 65 6e 74 5f 73 69 7a 65 20 2b 20 6c 69 6e 65 5f 73   ┆ i + ( i - segment_size + line_s┆
0x085ce0…085d00             70 61 63 69 6e 67 20 29 20 64 69 76 20 6c 69 6e 65 5f 73 70 61 63 69 6e 67 3b 0a 28 2a 24 52 2b   ┆pacing ) div line_spacing; (*$R+┆
0x085d00…085d20             2a 29 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 20 27 45 72 72 6f 72 20 69 6e 20 63 6f 6d   ┆*) writeln(output, 'Error in com┆
0x085d20…085d40             70 69 6c 61 74 69 6f 6e 27 29 3b 0a 77 72 69 74 65 6c 6e 28 27 20 55 73 65 20 6f 70 74 69 6f 6e   ┆pilation'); writeln(' Use option┆
0x085d40…085d60             20 63 6f 64 65 73 69 7a 65 2c 20 77 69 74 68 20 61 74 20 6c 65 61 73 74 20 27 2c 0a 69 20 3a 20   ┆ codesize, with at least ', i : ┆
0x085d60…085d80             31 2c 20 27 20 61 73 20 70 61 67 65 20 73 69 7a 65 27 29 3b 0a 65 6e 64 3b 0a 0a 69 66 20 65 72   ┆1, ' as page size'); end;  if er┆
0x085d80…085da0             72 6f 72 63 6f 75 6e 74 20 3c 3e 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 72 69 74 65 6c 6e   ┆rorcount <> 0 then begin writeln┆
0x085da0…085dc0             28 6f 75 74 70 75 74 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 2c 27 42 69 6e 61 72 79   ┆(output); writeln(output,'Binary┆
0x085dc0…085de0             20 6f 75 74 70 75 74 20 66 69 6c 65 20 64 65 6c 65 74 65 64 27 29 3b 0a 65 72 61 73 65 28 63 6f   ┆ output file deleted'); erase(co┆
0x085de0…085e00             64 65 29 3b 0a 65 6e 64 3b 0a 0a 72 74 70 68 61 6c 74 28 20 66 61 6c 73 65 20 28 2a 20 74 65 72   ┆de); end;  rtphalt( false (* ter┆
0x085e00…085e20 (35, 1, 7)  6d 69 6e 61 74 65 20 70 72 6f 67 72 61 6d 20 77 69 74 68 20 6f 6b 2e 6e 6f 20 2a 29 20 29 3b 0a   ┆minate program with ok.no *) ); ┆
0x085e20…085e40             0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 61 73 73 36 28 76 61 72 20 63 6f 64 65 5f   ┆ end;  procedure pass6(var code_┆
0x085e40…085e60             62 75 66 66 65 72 3a 20 74 5f 62 75 66 66 65 72 29 3b 0a 6c 61 62 65 6c 20 39 39 39 37 2c 20 39   ┆buffer: t_buffer); label 9997, 9┆
0x085e60…085e80             39 39 38 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 77 72 69 74 65 5f 68 65 78 5f 61 64 64 72 28   ┆998;   procedure write_hex_addr(┆
0x085e80…085ea0             20 61 64 64 72 65 73 73 20 3a 20 63 6f 64 65 5f 69 78 29 3b 0a 62 65 67 69 6e 0a 69 66 20 6e 6f   ┆ address : code_ix); begin if no┆
0x085ea0…085ec0             5f 6f 66 5f 65 6c 65 6d 73 5f 69 6e 5f 6c 69 6e 65 20 3d 20 65 6c 65 6d 73 5f 70 65 72 5f 6c 69   ┆_of_elems_in_line = elems_per_li┆
0x085ec0…085ee0             6e 65 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 6e   ┆ne then begin writeln(output); n┆
0x085ee0…085f00             6f 5f 6f 66 5f 65 6c 65 6d 73 5f 69 6e 5f 6c 69 6e 65 3a 3d 20 30 3b 0a 77 72 69 74 65 5f 68 65   ┆o_of_elems_in_line:= 0; write_he┆
0x085f00…085f20             78 28 20 63 75 72 72 65 6e 74 5f 73 65 67 6d 65 6e 74 20 2c 20 34 29 3b 20 77 72 69 74 65 28 27   ┆x( current_segment , 4); write('┆
0x085f20…085f40             2e 27 29 3b 0a 77 72 69 74 65 5f 68 65 78 28 20 61 64 64 72 65 73 73 20 20 20 20 20 20 20 20 20   ┆.'); write_hex( address         ┆
0x085f40…085f60             2c 20 34 29 3b 20 77 72 69 74 65 28 27 3a 20 20 27 29 3b 0a 65 6e 64 0a 65 6c 73 65 0a 77 72 69   ┆, 4); write(':  '); end else wri┆
0x085f60…085f80             74 65 28 27 20 27 20 3a 20 32 29 3b 0a 6e 6f 5f 6f 66 5f 65 6c 65 6d 73 5f 69 6e 5f 6c 69 6e 65   ┆te(' ' : 2); no_of_elems_in_line┆
0x085f80…085fa0             3a 3d 20 6e 6f 5f 6f 66 5f 65 6c 65 6d 73 5f 69 6e 5f 6c 69 6e 65 20 2b 20 31 3b 0a 65 6e 64 3b   ┆:= no_of_elems_in_line + 1; end;┆
0x085fa0…085fc0             20 28 2a 20 77 72 69 74 65 20 68 65 78 20 61 64 64 72 65 73 73 20 2a 29 0a 0a 70 72 6f 63 65 64   ┆ (* write hex address *)  proced┆
0x085fc0…085fe0             75 72 65 20 77 72 69 74 65 5f 68 65 78 5f 64 65 73 63 72 28 20 77 6f 72 64 20 3a 20 69 6e 74 65   ┆ure write_hex_descr( word : inte┆
0x085fe0…086000             67 65 72 20 29 3b 0a 62 65 67 69 6e 0a 69 66 20 6e 6f 5f 6f 66 5f 65 6c 65 6d 73 5f 69 6e 5f 6c   ┆ger ); begin if no_of_elems_in_l┆
0x086000…086020 (35, 1, 8)  69 6e 65 20 3d 20 65 6c 65 6d 73 5f 70 65 72 5f 6c 69 6e 65 20 74 68 65 6e 0a 62 65 67 69 6e 0a   ┆ine = elems_per_line then begin ┆
0x086020…086040             77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 6e 6f 5f 6f 66 5f 65 6c 65 6d 73 5f 69 6e 5f   ┆writeln(output); no_of_elems_in_┆
0x086040…086060             6c 69 6e 65 3a 3d 20 30 3b 0a 77 72 69 74 65 28 27 20 27 3a 31 32 29 3b 0a 65 6e 64 0a 65 6c 73   ┆line:= 0; write(' ':12); end els┆
0x086060…086080             65 0a 77 72 69 74 65 28 27 20 27 20 3a 20 32 29 3b 0a 0a 6e 6f 5f 6f 66 5f 65 6c 65 6d 73 5f 69   ┆e write(' ' : 2);  no_of_elems_i┆
0x086080…0860a0             6e 5f 6c 69 6e 65 3a 3d 20 6e 6f 5f 6f 66 5f 65 6c 65 6d 73 5f 69 6e 5f 6c 69 6e 65 20 2b 20 31   ┆n_line:= no_of_elems_in_line + 1┆
0x0860a0…0860c0             3b 0a 77 72 69 74 65 5f 68 65 78 28 20 77 6f 72 64 20 2c 20 34 20 29 3b 0a 65 6e 64 3b 0a 0a 0a   ┆; write_hex( word , 4 ); end;   ┆
0x0860c0…0860e0             0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 74 65 73 74 28 20 74 65 78 74 73 74 72 69 6e 67   ┆   procedure outtest( textstring┆
0x0860e0…086100             20 3a 20 73 74 72 69 6e 67 20 29 3b 0a 62 65 67 69 6e 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75   ┆ : string ); begin writeln(outpu┆
0x086100…086120             74 2c 20 27 6f 75 74 74 65 73 74 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 27 2c 20 74 65 78 74 73   ┆t, 'outtest called from ', texts┆
0x086120…086140             74 72 69 6e 67 29 3b 0a 65 6e 64 3b 0a 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 70 75 74 5f 6e   ┆tring); end;  procedure output_n┆
0x086140…086160             61 6d 65 73 3b 0a 28 2a 20 64 75 6d 70 20 74 68 65 20 6e 61 6d 65 74 61 62 6c 65 2c 20 6f 70 74   ┆ames; (* dump the nametable, opt┆
0x086160…086180             69 6f 6e 20 6e 61 6d 65 74 61 62 6c 65 2e 79 65 73 20 2a 29 0a 0a 76 61 72 0a 6c 65 76 65 6c 3a   ┆ion nametable.yes *)  var level:┆
0x086180…0861a0             20 6c 65 76 65 6c 5f 70 74 72 3b 0a 73 74 6f 70 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 6c 6f 63 61 6c   ┆ level_ptr; stop: boolean; local┆
0x0861a0…0861c0             5f 6e 61 6d 65 20 3a 20 6e 61 6d 65 5f 70 74 72 3b 0a 0a 62 65 67 69 6e 0a 28 2a 20 6f 75 74 70   ┆_name : name_ptr;  begin (* outp┆
0x0861c0…0861e0             75 74 20 61 6c 6c 20 74 68 65 20 6e 61 6d 65 73 20 64 65 63 6c 61 72 65 64 20 75 6e 74 69 6c 20   ┆ut all the names declared until ┆
0x0861e0…086200             6e 6f 77 20 2a 29 0a 77 72 69 74 65 6c 6e 3b 0a 77 72 69 74 65 6c 6e 28 27 20 6e 61 6d 65 20 74   ┆now *) writeln; writeln(' name t┆
0x086200…086220 (35, 1, 9)  61 62 6c 65 20 64 75 6d 70 20 27 29 3b 0a 77 72 69 74 65 6c 6e 3b 0a 6c 65 76 65 6c 3a 3d 20 63   ┆able dump '); writeln; level:= c┆
0x086220…086240             75 72 72 65 6e 74 5f 6c 65 76 65 6c 3b 0a 73 74 6f 70 3a 3d 20 66 61 6c 73 65 3b 0a 72 65 70 65   ┆urrent_level; stop:= false; repe┆
0x086240…086260             61 74 0a 69 66 20 6c 65 76 65 6c 3c 3e 6e 69 6c 5f 6c 65 76 65 6c 20 74 68 65 6e 0a 62 65 67 69   ┆at if level<>nil_level then begi┆
0x086260…086280             6e 0a 77 72 69 74 65 6c 6e 3b 0a 77 72 69 74 65 6c 6e 28 27 6c 65 76 65 6c 20 3d 20 27 2c 20 73   ┆n writeln; writeln('level = ', s┆
0x086280…0862a0             65 67 28 6c 65 76 65 6c 29 3a 20 31 2c 20 6f 66 73 28 6c 65 76 65 6c 29 3a 20 31 20 29 3b 0a 77   ┆eg(level): 1, ofs(level): 1 ); w┆
0x0862a0…0862c0             72 69 74 65 6c 6e 3b 0a 6c 6f 63 61 6c 5f 6e 61 6d 65 3a 3d 20 6c 65 76 65 6c 20 5e 2e 6c 65 76   ┆riteln; local_name:= level ^.lev┆
0x0862c0…0862e0             65 6c 5f 6c 69 73 74 20 3b 0a 65 6e 64 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 77 72 69 74 65 6c 6e   ┆el_list ; end else begin writeln┆
0x0862e0…086300             3b 0a 77 72 69 74 65 6c 6e 28 27 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 73 27 29 3b 0a 77 72 69   ┆; writeln('internal links'); wri┆
0x086300…086320             74 65 6c 6e 3b 0a 6c 6f 63 61 6c 5f 6e 61 6d 65 3a 3d 20 69 6e 74 65 72 6e 61 6c 5f 6c 69 6e 6b   ┆teln; local_name:= internal_link┆
0x086320…086340             5f 6c 69 73 74 3b 0a 73 74 6f 70 3a 3d 20 74 72 75 65 3b 0a 65 6e 64 3b 0a 0a 77 68 69 6c 65 20   ┆_list; stop:= true; end;  while ┆
0x086340…086360             6c 6f 63 61 6c 5f 6e 61 6d 65 20 3c 3e 20 6e 69 6c 5f 6e 61 6d 65 20 64 6f 0a 77 69 74 68 20 6c   ┆local_name <> nil_name do with l┆
0x086360…086380             6f 63 61 6c 5f 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 77 72 69 74 65 28 6e 61 6d 65 70   ┆ocal_name ^ do begin write(namep┆
0x086380…0863a0             61 72 74 29 3b 0a 69 66 20 6b 69 6e 64 20 3d 20 6c 61 62 65 6c 5f 64 65 66 20 74 68 65 6e 0a 62   ┆art); if kind = label_def then b┆
0x0863a0…0863c0             65 67 69 6e 0a 77 72 69 74 65 28 27 3a 20 27 2c 20 64 65 66 5f 73 65 67 6d 65 6e 74 2c 20 27 20   ┆egin write(': ', def_segment, ' ┆
0x0863c0…0863e0             20 27 29 3b 0a 77 72 69 74 65 5f 68 65 78 28 64 65 66 5f 6f 66 66 73 65 74 2c 20 34 29 3b 0a 65   ┆ '); write_hex(def_offset, 4); e┆
0x0863e0…086400             6e 64 0a 65 6c 73 65 0a 69 66 20 6b 69 6e 64 20 3d 20 63 6f 6e 73 74 61 6e 74 5f 64 65 66 20 74   ┆nd else if kind = constant_def t┆
0x086400…086420 (35, 1, 10) 68 65 6e 0a 62 65 67 69 6e 0a 77 72 69 74 65 28 27 3d 27 2c 20 27 20 27 20 3a 20 38 29 3b 0a 77   ┆hen begin write('=', ' ' : 8); w┆
0x086420…086440             72 69 74 65 5f 68 65 78 28 64 65 66 5f 6f 66 66 73 65 74 2c 20 34 29 3b 0a 65 6e 64 0a 65 6c 73   ┆rite_hex(def_offset, 4); end els┆
0x086440…086460             65 0a 77 72 69 74 65 28 27 20 20 20 20 20 20 75 6e 64 65 66 69 6e 65 64 27 29 3b 0a 69 66 20 74   ┆e write('      undefined'); if t┆
0x086460…086480             65 73 74 20 74 68 65 6e 0a 77 72 69 74 65 28 27 6e 65 78 74 3a 27 2c 20 73 65 67 28 6e 65 78 74   ┆est then write('next:', seg(next┆
0x086480…0864a0             5f 6e 61 6d 65 29 2c 20 6f 66 73 28 6e 65 78 74 5f 6e 61 6d 65 29 2c 0a 20 20 20 20 20 20 27 20   ┆_name), ofs(next_name),       ' ┆
0x0864a0…0864c0             75 73 65 3a 27 2c 20 73 65 67 28 75 73 65 5f 63 68 61 69 6e 29 2c 20 6f 66 73 28 75 73 65 5f 63   ┆use:', seg(use_chain), ofs(use_c┆
0x0864c0…0864e0             68 61 69 6e 29 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 6c 6f 63 61 6c 5f 6e   ┆hain)); writeln(output); local_n┆
0x0864e0…086500             61 6d 65 3a 3d 20 6e 65 78 74 5f 6e 61 6d 65 3b 0a 65 6e 64 3b 20 28 2a 20 77 68 69 6c 65 20 2e   ┆ame:= next_name; end; (* while .┆
0x086500…086520             2e 20 77 69 74 68 20 2a 29 0a 0a 6c 65 76 65 6c 3a 3d 20 6c 65 76 65 6c 5e 2e 66 6f 72 6d 65 72   ┆. with *)  level:= level^.former┆
0x086520…086540             5f 6c 65 76 65 6c 3b 0a 75 6e 74 69 6c 20 73 74 6f 70 3b 20 28 2a 20 75 6e 74 69 6c 20 61 6c 6c   ┆_level; until stop; (* until all┆
0x086540…086560             20 6c 65 76 65 6c 73 20 61 6e 64 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 6c 69 6e 6b 20 6c 69   ┆ levels and the internal link li┆
0x086560…086580             73 74 20 61 72 65 20 64 75 6d 70 65 64 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 6f 75 74 70 75 74   ┆st are dumped *)  end; (* output┆
0x086580…0865a0             20 6e 61 6d 65 20 2a 29 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 72 65 70 61 72 65 5f 6c 69   ┆ name *)    procedure prepare_li┆
0x0865a0…0865c0             6e 65 74 61 62 6c 65 3b 0a 0a 76 61 72 0a 73 74 65 70 20 3a 20 63 6f 64 65 5f 69 78 3b 0a 0a 62   ┆netable;  var step : code_ix;  b┆
0x0865c0…0865e0             65 67 69 6e 0a 66 6f 72 20 73 74 65 70 3a 3d 20 30 20 74 6f 20 61 64 64 72 73 69 7a 65 20 2d 20   ┆egin for step:= 0 to addrsize - ┆
0x0865e0…086600             31 20 64 6f 0a 28 2a 20 72 65 73 65 72 76 65 20 72 6f 6f 6d 20 66 6f 72 20 61 6e 20 61 64 64 72   ┆1 do (* reserve room for an addr┆
0x086600…086620 (35, 1, 11) 65 73 73 20 2a 29 0a 63 6f 64 65 5f 62 75 66 66 65 72 20 5b 20 73 74 61 72 74 5f 6f 66 5f 6c 69   ┆ess *) code_buffer [ start_of_li┆
0x086620…086640             6e 65 5f 74 61 62 6c 65 20 2b 20 73 74 65 70 20 5d 3a 3d 20 30 3b 0a 0a 63 6f 64 65 5f 62 75 66   ┆ne_table + step ]:= 0;  code_buf┆
0x086640…086660             66 65 72 20 5b 20 73 74 61 72 74 5f 6f 66 5f 6c 69 6e 65 5f 74 61 62 6c 65 20 2b 20 61 64 64 72   ┆fer [ start_of_line_table + addr┆
0x086660…086680             73 69 7a 65 20 5d 3a 3d 20 63 75 72 72 65 6e 74 5f 73 6f 75 72 63 65 5f 6c 69 6e 65 20 73 68 72   ┆size ]:= current_source_line shr┆
0x086680…0866a0             20 38 3b 0a 63 6f 64 65 5f 62 75 66 66 65 72 20 5b 20 73 74 61 72 74 5f 6f 66 5f 6c 69 6e 65 5f   ┆ 8; code_buffer [ start_of_line_┆
0x0866a0…0866c0             74 61 62 6c 65 20 2b 20 61 64 64 72 73 69 7a 65 20 2b 20 31 20 5d 3a 3d 20 63 75 72 72 65 6e 74   ┆table + addrsize + 1 ]:= current┆
0x0866c0…0866e0             5f 73 6f 75 72 63 65 5f 6c 69 6e 65 20 61 6e 64 20 32 35 35 3b 0a 0a 28 2a 24 52 2d 2a 29 0a 6e   ┆_source_line and 255;  (*$R-*) n┆
0x0866e0…086700             65 78 74 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 65 6e 74 72 79 3a 3d 20 73 74 61 72 74 5f 6f 66 5f   ┆ext_line_table_entry:= start_of_┆
0x086700…086720             6c 69 6e 65 5f 74 61 62 6c 65 20 2b 20 66 69 78 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 70 61 72 74   ┆line_table + fix_line_table_part┆
0x086720…086740             20 2d 20 32 3b 0a 0a 72 65 6d 5f 62 75 66 66 65 72 5f 73 69 7a 65 3a 3d 20 72 65 6d 5f 62 75 66   ┆ - 2;  rem_buffer_size:= rem_buf┆
0x086740…086760             66 65 72 5f 73 69 7a 65 20 2d 20 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 69 7a 65 3b 0a 28 2a 24 52   ┆fer_size - line_table_size; (*$R┆
0x086760…086780             2b 2a 29 0a 65 6e 64 3b 20 28 2a 20 70 72 65 70 61 72 65 20 6c 69 6e 65 20 74 61 62 6c 65 20 2a   ┆+*) end; (* prepare line table *┆
0x086780…0867a0             29 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 72 65 61 64 63 61 6c 6c 3b 0a 28 2a 20 72 65 61 64   ┆)    procedure readcall; (* read┆
0x0867a0…0867c0             20 74 68 65 20 63 61 6c 6c 20 6f 66 20 70 61 73 73 36 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20   ┆ the call of pass6 from current ┆
0x0867c0…0867e0             69 6e 70 75 74 20 2a 29 0a 63 6f 6e 73 74 0a 70 6f 77 65 72 31 32 3d 32 35 36 3b 0a 65 71 75 61   ┆input *) const power12=256; equa┆
0x0867e0…086800             6c 69 74 79 3d 36 3b 0a 70 6f 69 6e 74 3d 38 3b 0a 6c 69 73 74 20 20 20 20 20 20 3d 20 27 6c 69   ┆lity=6; point=8; list      = 'li┆
0x086800…086820 (35, 1, 12) 73 74 27 3b 0a 79 65 73 20 20 20 20 20 20 20 3d 20 27 79 65 73 27 3b 0a 6e 6f 20 20 20 20 20 20   ┆st'; yes       = 'yes'; no      ┆
0x086820…086840             20 20 3d 20 27 6e 6f 27 3b 0a 74 65 73 74 6f 75 74 20 20 20 3d 20 27 74 65 73 74 27 3b 0a 63 6f   ┆  = 'no'; testout   = 'test'; co┆
0x086840…086860             64 65 73 69 7a 65 20 20 3d 20 27 63 6f 64 65 73 69 7a 65 27 3b 0a 65 72 72 6f 72 6d 65 73 73 20   ┆desize  = 'codesize'; errormess ┆
0x086860…086880             3d 20 27 65 72 72 6f 72 6d 65 73 73 27 3b 0a 6e 61 6d 65 74 61 62 6c 65 20 3d 20 27 6e 61 6d 65   ┆= 'errormess'; nametable = 'name┆
0x086880…0868a0             74 61 62 6c 65 27 3b 0a 6c 69 6e 65 69 6e 66 6f 20 20 3d 20 27 6c 69 6e 65 69 6e 66 6f 27 3b 0a   ┆table'; lineinfo  = 'lineinfo'; ┆
0x0868a0…0868c0             73 70 61 63 69 6e 67 20 20 20 3d 20 27 73 70 61 63 69 6e 67 27 3b 0a 70 72 69 6e 74 20 20 20 20   ┆spacing   = 'spacing'; print    ┆
0x0868c0…0868e0             20 3d 20 27 70 72 69 6e 74 27 3b 0a 70 72 65 73 65 72 76 65 20 20 3d 20 27 70 72 65 73 65 72 76   ┆ = 'print'; preserve  = 'preserv┆
0x0868e0…086900             65 27 3b 0a 0a 0a 76 61 72 0a 69 2c 6a 2c 20 69 6e 74 2c 20 73 65 70 61 72 61 74 6f 72 2c 20 6c   ┆e';   var i,j, int, separator, l┆
0x086900…086920             65 6e 67 74 68 20 3a 20 69 6e 74 65 67 65 72 3b 0a 61 3a 20 61 6c 66 61 3b 0a 66 69 72 73 74 2c   ┆ength : integer; a: alfa; first,┆
0x086920…086940             20 64 65 66 61 75 6c 74 5f 75 73 65 64 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 70 61 72 61 6d 20 3a   ┆ default_used : boolean; param :┆
0x086940…086960             20 28 6c 69 73 74 5f 70 72 6f 67 72 61 6d 2c 20 66 69 6c 65 6e 61 6d 65 2c 20 63 6f 64 65 5f 73   ┆ (list_program, filename, code_s┆
0x086960…086980             69 7a 65 2c 20 6c 69 6e 65 5f 69 6e 66 6f 5f 70 61 72 61 6d 2c 20 73 70 61 63 69 6e 67 5f 70 61   ┆ize, line_info_param, spacing_pa┆
0x086980…0869a0             72 61 6d 2c 20 74 65 73 74 5f 67 65 6e 2c 0a 70 72 65 73 65 72 76 65 5f 70 61 72 61 6d 2c 20 65   ┆ram, test_gen, preserve_param, e┆
0x0869a0…0869c0             72 72 6f 72 5f 6d 65 73 73 2c 20 6e 61 6d 65 74 61 62 5f 70 61 72 61 6d 2c 20 70 72 69 6e 74 5f   ┆rror_mess, nametab_param, print_┆
0x0869c0…0869e0             70 61 72 61 6d 20 29 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 63 68 65 63 6b 6c 65 66 74 73 69   ┆param );   procedure checkleftsi┆
0x0869e0…086a00             64 65 3b 0a 62 65 67 69 6e 0a 73 79 73 74 65 6d 70 61 72 61 6d 6e 6f 3a 3d 20 31 3b 0a 69 66 20   ┆de; begin systemparamno:= 1; if ┆
0x086a00…086a20 (35, 1, 13) 70 61 72 61 6d 72 65 61 64 28 73 79 73 74 65 6d 70 61 72 61 6d 6e 6f 2c 20 69 6e 74 2c 20 61 29   ┆paramread(systemparamno, int, a)┆
0x086a20…086a40             20 64 69 76 20 70 6f 77 65 72 31 32 20 3d 20 65 71 75 61 6c 69 74 79 20 74 68 65 6e 0a 62 65 67   ┆ div power12 = equality then beg┆
0x086a40…086a60             69 6e 0a 28 2a 20 6c 65 66 74 20 68 61 6e 64 20 73 69 64 65 20 70 72 65 73 65 6e 74 20 2a 29 0a   ┆in (* left hand side present *) ┆
0x086a60…086a80             0a 69 3a 3d 20 70 61 72 61 6d 72 65 61 64 28 30 2c 20 69 6e 74 2c 20 63 6f 64 65 66 69 6c 65 6e   ┆ i:= paramread(0, int, codefilen┆
0x086a80…086aa0             61 6d 65 29 3b 0a 0a 73 79 73 74 65 6d 70 61 72 61 6d 6e 6f 3a 3d 20 73 79 73 74 65 6d 70 61 72   ┆ame);  systemparamno:= systempar┆
0x086aa0…086ac0             61 6d 6e 6f 20 2b 20 31 3b 20 28 2a 20 73 6b 69 70 20 6e 61 6d 65 20 72 74 70 33 35 30 32 32 70   ┆amno + 1; (* skip name rtp35022p┆
0x086ac0…086ae0             36 20 2a 29 0a 65 6e 64 3b 0a 0a 0a 65 6e 64 3b 20 28 2a 20 63 68 65 63 6b 63 61 6c 6c 20 2a 29   ┆6 *) end;   end; (* checkcall *)┆
0x086ae0…086b00             0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 65 72 72 6f 72 3b 0a 62 65 67 69 6e 0a 77 72 69 74 65   ┆    procedure error; begin write┆
0x086b00…086b20             6c 6e 28 27 20 3f 3f 3f 20 65 72 72 6f 72 20 69 6e 20 63 61 6c 6c 20 6f 66 20 72 74 70 33 35 32   ┆ln(' ??? error in call of rtp352┆
0x086b20…086b40             36 20 27 29 3b 0a 72 74 70 68 61 6c 74 28 20 66 61 6c 73 65 20 28 2a 20 74 65 72 6d 69 6e 61 74   ┆6 '); rtphalt( false (* terminat┆
0x086b40…086b60             65 20 70 72 6f 67 72 61 6d 20 77 69 74 68 20 6f 6b 2e 6e 6f 20 2a 29 20 29 3b 0a 65 6e 64 3b 0a   ┆e program with ok.no *) ); end; ┆
0x086b60…086b80             0a 62 65 67 69 6e 0a 61 73 73 69 67 6e 5f 61 6c 66 61 28 73 6f 75 72 63 65 66 69 6c 65 6e 61 6d   ┆ begin assign_alfa(sourcefilenam┆
0x086b80…086ba0             65 2c 20 6f 5f 70 61 73 73 35 5f 63 6f 64 65 6e 61 6d 65 29 3b 20 28 2a 20 64 65 66 61 75 6c 74   ┆e, o_pass5_codename); (* default┆
0x086ba0…086bc0             20 6e 61 6d 65 20 2a 29 0a 64 65 66 61 75 6c 74 5f 75 73 65 64 20 3a 3d 20 74 72 75 65 3b 0a 63   ┆ name *) default_used := true; c┆
0x086bc0…086be0             68 65 63 6b 6c 65 66 74 73 69 64 65 3b 0a 0a 0a 0a 6a 3a 3d 70 61 72 61 6d 72 65 61 64 28 73 79   ┆heckleftside;    j:=paramread(sy┆
0x086be0…086c00             73 74 65 6d 70 61 72 61 6d 6e 6f 2c 69 6e 74 2c 61 29 3b 0a 66 69 72 73 74 3a 3d 74 72 75 65 3b   ┆stemparamno,int,a); first:=true;┆
0x086c00…086c20 (35, 1, 14) 0a 70 61 72 61 6d 3a 3d 20 70 72 65 64 28 66 69 6c 65 6e 61 6d 65 29 3b 20 28 2a 20 70 61 72 61   ┆ param:= pred(filename); (* para┆
0x086c20…086c40             6d 20 3c 3e 20 66 69 6c 65 6e 61 6d 65 20 2a 29 0a 0a 77 68 69 6c 65 20 28 28 6a 20 6d 6f 64 20   ┆m <> filename *)  while ((j mod ┆
0x086c40…086c60             70 6f 77 65 72 31 32 29 20 3c 3e 20 30 29 20 61 6e 64 20 28 28 6a 20 64 69 76 20 70 6f 77 65 72   ┆power12) <> 0) and ((j div power┆
0x086c60…086c80             31 32 29 20 3c 3e 20 32 29 0a 61 6e 64 20 28 70 61 72 61 6d 20 3c 3e 20 66 69 6c 65 6e 61 6d 65   ┆12) <> 2) and (param <> filename┆
0x086c80…086ca0             29 20 64 6f 0a 62 65 67 69 6e 0a 73 65 70 61 72 61 74 6f 72 3a 3d 6a 20 64 69 76 20 70 6f 77 65   ┆) do begin separator:=j div powe┆
0x086ca0…086cc0             72 31 32 3b 0a 6c 65 6e 67 74 68 3a 3d 6a 20 6d 6f 64 20 70 6f 77 65 72 31 32 3b 0a 0a 69 66 20   ┆r12; length:=j mod power12;  if ┆
0x086cc0…086ce0             66 69 72 73 74 20 74 68 65 6e 0a 62 65 67 69 6e 0a 66 69 72 73 74 3a 3d 66 61 6c 73 65 3b 0a 69   ┆first then begin first:=false; i┆
0x086ce0…086d00             66 20 73 65 70 61 72 61 74 6f 72 20 3d 20 70 6f 69 6e 74 20 74 68 65 6e 20 65 72 72 6f 72 0a 65   ┆f separator = point then error e┆
0x086d00…086d20             6c 73 65 0a 69 66 20 61 20 3d 20 6c 69 73 74 20 74 68 65 6e 20 70 61 72 61 6d 3a 3d 6c 69 73 74   ┆lse if a = list then param:=list┆
0x086d20…086d40             5f 70 72 6f 67 72 61 6d 0a 65 6c 73 65 20 69 66 20 61 20 3d 20 74 65 73 74 6f 75 74 20 74 68 65   ┆_program else if a = testout the┆
0x086d40…086d60             6e 20 70 61 72 61 6d 3a 3d 20 74 65 73 74 5f 67 65 6e 0a 65 6c 73 65 20 69 66 20 61 20 3d 20 63   ┆n param:= test_gen else if a = c┆
0x086d60…086d80             6f 64 65 73 69 7a 65 20 74 68 65 6e 20 70 61 72 61 6d 3a 3d 20 63 6f 64 65 5f 73 69 7a 65 0a 65   ┆odesize then param:= code_size e┆
0x086d80…086da0             6c 73 65 20 69 66 20 61 20 3d 20 73 70 61 63 69 6e 67 20 74 68 65 6e 20 70 61 72 61 6d 3a 3d 20   ┆lse if a = spacing then param:= ┆
0x086da0…086dc0             73 70 61 63 69 6e 67 5f 70 61 72 61 6d 0a 65 6c 73 65 20 69 66 20 61 20 3d 20 6c 69 6e 65 69 6e   ┆spacing_param else if a = linein┆
0x086dc0…086de0             66 6f 20 74 68 65 6e 20 70 61 72 61 6d 3a 3d 20 6c 69 6e 65 5f 69 6e 66 6f 5f 70 61 72 61 6d 0a   ┆fo then param:= line_info_param ┆
0x086de0…086e00             65 6c 73 65 20 69 66 20 61 20 3d 20 70 72 69 6e 74 20 74 68 65 6e 20 70 61 72 61 6d 3a 3d 20 70   ┆else if a = print then param:= p┆
0x086e00…086e20 (35, 1, 15) 72 69 6e 74 5f 70 61 72 61 6d 0a 65 6c 73 65 20 69 66 20 61 20 3d 20 65 72 72 6f 72 6d 65 73 73   ┆rint_param else if a = errormess┆
0x086e20…086e40             20 74 68 65 6e 20 70 61 72 61 6d 3a 3d 20 65 72 72 6f 72 5f 6d 65 73 73 0a 65 6c 73 65 20 69 66   ┆ then param:= error_mess else if┆
0x086e40…086e60             20 61 20 3d 20 6e 61 6d 65 74 61 62 6c 65 20 74 68 65 6e 20 70 61 72 61 6d 3a 3d 20 6e 61 6d 65   ┆ a = nametable then param:= name┆
0x086e60…086e80             74 61 62 5f 70 61 72 61 6d 0a 65 6c 73 65 20 69 66 20 61 20 3d 20 70 72 65 73 65 72 76 65 20 74   ┆tab_param else if a = preserve t┆
0x086e80…086ea0             68 65 6e 20 70 61 72 61 6d 3a 3d 20 70 72 65 73 65 72 76 65 5f 70 61 72 61 6d 0a 65 6c 73 65 0a   ┆hen param:= preserve_param else ┆
0x086ea0…086ec0             62 65 67 69 6e 0a 70 61 72 61 6d 3a 3d 20 66 69 6c 65 6e 61 6d 65 3b 0a 73 6f 75 72 63 65 66 69   ┆begin param:= filename; sourcefi┆
0x086ec0…086ee0             6c 65 6e 61 6d 65 3a 3d 20 61 3b 0a 64 65 66 61 75 6c 74 5f 75 73 65 64 20 3a 3d 20 66 61 6c 73   ┆lename:= a; default_used := fals┆
0x086ee0…086f00             65 3b 0a 65 6e 64 3b 0a 65 6e 64 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 66 69 72 73 74 3a 3d 74 72   ┆e; end; end else begin first:=tr┆
0x086f00…086f20             75 65 3b 0a 69 66 20 28 73 65 70 61 72 61 74 6f 72 20 3c 3e 20 70 6f 69 6e 74 29 20 61 6e 64 20   ┆ue; if (separator <> point) and ┆
0x086f20…086f40             28 70 61 72 61 6d 20 3c 3e 20 66 69 6c 65 6e 61 6d 65 29 20 74 68 65 6e 20 65 72 72 6f 72 0a 65   ┆(param <> filename) then error e┆
0x086f40…086f60             6c 73 65 0a 63 61 73 65 20 70 61 72 61 6d 20 6f 66 0a 6c 69 73 74 5f 70 72 6f 67 72 61 6d 3a 69   ┆lse case param of list_program:i┆
0x086f60…086f80             66 20 6c 65 6e 67 74 68 20 3c 3e 20 31 30 20 74 68 65 6e 20 65 72 72 6f 72 0a 65 6c 73 65 0a 69   ┆f length <> 10 then error else i┆
0x086f80…086fa0             66 20 28 61 20 3d 20 79 65 73 29 20 6f 72 20 28 61 20 3d 20 6e 6f 29 20 74 68 65 6e 0a 62 65 67   ┆f (a = yes) or (a = no) then beg┆
0x086fa0…086fc0             69 6e 0a 63 6f 64 65 6c 69 73 74 3a 3d 20 61 3d 79 65 73 3b 0a 65 72 72 6f 72 72 65 70 6f 72 74   ┆in codelist:= a=yes; errorreport┆
0x086fc0…086fe0             69 6e 67 3a 3d 20 65 72 72 6f 72 72 65 70 6f 72 74 69 6e 67 20 6f 72 20 28 61 3d 79 65 73 29 3b   ┆ing:= errorreporting or (a=yes);┆
0x086fe0…087000             0a 65 6e 64 0a 65 6c 73 65 20 65 72 72 6f 72 3b 0a 0a 66 69 6c 65 6e 61 6d 65 3a 20 73 79 73 74   ┆ end else error;  filename: syst┆
0x087000…087020 (36, 0, 1)  65 6d 70 61 72 61 6d 6e 6f 3a 3d 20 73 79 73 74 65 6d 70 61 72 61 6d 6e 6f 20 2d 20 31 3b 20 28   ┆emparamno:= systemparamno - 1; (┆
0x087020…087040             2a 20 6d 61 6b 65 20 74 68 65 20 6e 65 78 74 20 69 6e 63 72 65 6d 65 6e 74 20 64 75 6d 6d 79 20   ┆* make the next increment dummy ┆
0x087040…087060             2a 29 0a 0a 74 65 73 74 5f 67 65 6e 3a 20 69 66 20 6c 65 6e 67 74 68 20 3c 3e 20 31 30 20 74 68   ┆*)  test_gen: if length <> 10 th┆
0x087060…087080             65 6e 20 65 72 72 6f 72 0a 65 6c 73 65 0a 69 66 20 28 61 20 3d 20 79 65 73 29 20 6f 72 20 28 61   ┆en error else if (a = yes) or (a┆
0x087080…0870a0             20 3d 20 6e 6f 29 20 74 68 65 6e 20 74 65 73 74 3a 3d 20 61 20 3d 20 79 65 73 0a 65 6c 73 65 20   ┆ = no) then test:= a = yes else ┆
0x0870a0…0870c0             65 72 72 6f 72 3b 0a 0a 63 6f 64 65 5f 73 69 7a 65 3a 20 69 66 20 6c 65 6e 67 74 68 20 3c 3e 20   ┆error;  code_size: if length <> ┆
0x0870c0…0870e0             34 20 74 68 65 6e 20 65 72 72 6f 72 0a 65 6c 73 65 0a 69 66 20 6e 6f 74 20 63 6f 64 65 73 69 7a   ┆4 then error else if not codesiz┆
0x0870e0…087100             65 5f 6d 65 74 20 74 68 65 6e 0a 62 65 67 69 6e 0a 63 6f 64 65 73 69 7a 65 5f 6d 65 74 3a 3d 20   ┆e_met then begin codesize_met:= ┆
0x087100…087120             74 72 75 65 3b 0a 28 2a 24 52 2d 2a 29 0a 73 65 67 6d 65 6e 74 5f 73 69 7a 65 3a 3d 20 28 69 6e   ┆true; (*$R-*) segment_size:= (in┆
0x087120…087140             74 20 73 68 6c 20 31 29 20 73 68 72 20 31 20 2d 20 31 3b 0a 28 2a 24 52 2b 2a 29 0a 65 6e 64 3b   ┆t shl 1) shr 1 - 1; (*$R+*) end;┆
0x087140…087160             0a 0a 65 72 72 6f 72 5f 6d 65 73 73 3a 20 69 66 20 6c 65 6e 67 74 68 20 3c 3e 20 31 30 20 74 68   ┆  error_mess: if length <> 10 th┆
0x087160…087180             65 6e 20 65 72 72 6f 72 0a 65 6c 73 65 0a 69 66 20 28 61 3d 79 65 73 29 20 6f 72 20 28 61 20 3d   ┆en error else if (a=yes) or (a =┆
0x087180…0871a0             20 6e 6f 29 20 74 68 65 6e 0a 65 72 72 6f 72 72 65 70 6f 72 74 69 6e 67 3a 3d 20 65 72 72 6f 72   ┆ no) then errorreporting:= error┆
0x0871a0…0871c0             72 65 70 6f 72 74 69 6e 67 20 6f 72 20 28 61 20 3d 20 79 65 73 29 0a 65 6c 73 65 20 65 72 72 6f   ┆reporting or (a = yes) else erro┆
0x0871c0…0871e0             72 3b 0a 0a 70 72 65 73 65 72 76 65 5f 70 61 72 61 6d 3a 20 69 66 20 6c 65 6e 67 74 68 3c 3e 31   ┆r;  preserve_param: if length<>1┆
0x0871e0…087200             30 20 74 68 65 6e 20 65 72 72 6f 72 0a 65 6c 73 65 0a 69 66 20 28 61 3d 79 65 73 29 20 6f 72 20   ┆0 then error else if (a=yes) or ┆
0x087200…087220 (36, 0, 2)  28 61 3d 6e 6f 29 20 74 68 65 6e 0a 70 72 65 73 65 72 76 65 5f 6f 70 74 69 6f 6e 3a 3d 20 61 3d   ┆(a=no) then preserve_option:= a=┆
0x087220…087240             79 65 73 0a 65 6c 73 65 0a 65 72 72 6f 72 3b 0a 0a 6e 61 6d 65 74 61 62 5f 70 61 72 61 6d 20 3a   ┆yes else error;  nametab_param :┆
0x087240…087260             20 69 66 20 6c 65 6e 67 74 68 20 3c 3e 20 31 30 20 74 68 65 6e 20 65 72 72 6f 72 0a 65 6c 73 65   ┆ if length <> 10 then error else┆
0x087260…087280             0a 69 66 20 28 61 20 3d 20 79 65 73 29 20 6f 72 20 28 61 20 3d 20 6e 6f 29 20 74 68 65 6e 20 64   ┆ if (a = yes) or (a = no) then d┆
0x087280…0872a0             75 6d 70 5f 6e 61 6d 65 74 61 62 6c 65 3a 3d 20 61 20 3d 20 79 65 73 0a 65 6c 73 65 20 65 72 72   ┆ump_nametable:= a = yes else err┆
0x0872a0…0872c0             6f 72 3b 0a 0a 70 72 69 6e 74 5f 70 61 72 61 6d 3a 20 69 66 20 6c 65 6e 67 74 68 20 3c 3e 20 31   ┆or;  print_param: if length <> 1┆
0x0872c0…0872e0             30 20 74 68 65 6e 20 65 72 72 6f 72 0a 65 6c 73 65 0a 69 66 20 28 61 20 3d 20 79 65 73 29 20 6f   ┆0 then error else if (a = yes) o┆
0x0872e0…087300             72 20 28 20 61 20 3d 20 6e 6f 20 29 20 74 68 65 6e 20 70 72 69 6e 74 5f 63 6f 64 65 3a 3d 20 61   ┆r ( a = no ) then print_code:= a┆
0x087300…087320             20 3d 20 79 65 73 0a 65 6c 73 65 20 65 72 72 6f 72 3b 0a 6c 69 6e 65 5f 69 6e 66 6f 5f 70 61 72   ┆ = yes else error; line_info_par┆
0x087320…087340             61 6d 3a 20 69 66 20 6c 65 6e 67 74 68 20 3c 3e 20 31 30 20 74 68 65 6e 20 65 72 72 6f 72 0a 65   ┆am: if length <> 10 then error e┆
0x087340…087360             6c 73 65 0a 69 66 20 28 61 3d 79 65 73 29 20 6f 72 20 28 61 20 3d 20 6e 6f 29 20 74 68 65 6e 0a   ┆lse if (a=yes) or (a = no) then ┆
0x087360…087380             62 65 67 69 6e 0a 69 66 20 6e 6f 74 20 6c 69 6e 65 69 6e 66 6f 5f 6d 65 74 20 74 68 65 6e 0a 62   ┆begin if not lineinfo_met then b┆
0x087380…0873a0             65 67 69 6e 0a 6c 69 6e 65 69 6e 66 6f 5f 6d 65 74 3a 3d 20 74 72 75 65 3b 0a 67 65 6e 65 72 61   ┆egin lineinfo_met:= true; genera┆
0x0873a0…0873c0             74 65 5f 6c 69 6e 65 5f 69 6e 66 6f 3a 3d 20 61 20 3d 20 79 65 73 3b 0a 69 66 20 61 20 3c 3e 20   ┆te_line_info:= a = yes; if a <> ┆
0x0873c0…0873e0             79 65 73 20 74 68 65 6e 0a 62 65 67 69 6e 0a 73 74 61 72 74 5f 6f 66 5f 6c 69 6e 65 5f 74 61 62   ┆yes then begin start_of_line_tab┆
0x0873e0…087400             6c 65 3a 3d 20 30 3b 0a 72 65 6d 5f 62 75 66 66 65 72 5f 73 69 7a 65 3a 3d 20 73 65 67 6d 65 6e   ┆le:= 0; rem_buffer_size:= segmen┆
0x087400…087420 (36, 0, 3)  74 5f 73 69 7a 65 20 2b 20 31 20 2d 20 6c 6f 6e 67 6a 75 6d 70 5f 73 69 7a 65 3b 0a 65 6e 64 3b   ┆t_size + 1 - longjump_size; end;┆
0x087420…087440             0a 65 6e 64 3b 0a 65 6e 64 0a 65 6c 73 65 20 65 72 72 6f 72 3b 0a 0a 73 70 61 63 69 6e 67 5f 70   ┆ end; end else error;  spacing_p┆
0x087440…087460             61 72 61 6d 20 3a 20 69 66 20 6c 65 6e 67 74 68 20 3c 3e 20 34 20 74 68 65 6e 20 65 72 72 6f 72   ┆aram : if length <> 4 then error┆
0x087460…087480             0a 65 6c 73 65 0a 69 66 20 6e 6f 74 20 73 70 61 63 69 6e 67 5f 6d 65 74 20 74 68 65 6e 0a 62 65   ┆ else if not spacing_met then be┆
0x087480…0874a0             67 69 6e 0a 73 70 61 63 69 6e 67 5f 6d 65 74 3a 3d 20 74 72 75 65 3b 0a 6c 69 6e 65 5f 73 70 61   ┆gin spacing_met:= true; line_spa┆
0x0874a0…0874c0             63 69 6e 67 3a 3d 20 69 6e 74 3b 0a 28 2a 20 6e 6f 20 63 68 65 63 6b 20 66 6f 72 20 72 65 61 73   ┆cing:= int; (* no check for reas┆
0x0874c0…0874e0             6f 6e 61 62 6c 65 20 72 65 73 75 6c 74 20 21 21 21 21 21 21 21 20 2a 29 0a 65 6e 64 3b 0a 0a 0a   ┆onable result !!!!!!! *) end;   ┆
0x0874e0…087500             65 6e 64 3b 20 28 2a 20 63 61 73 65 20 2a 29 0a 69 66 20 28 70 61 72 61 6d 20 3d 20 73 70 61 63   ┆end; (* case *) if (param = spac┆
0x087500…087520             69 6e 67 5f 70 61 72 61 6d 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 61 64 6a 75 73 74 20   ┆ing_param) then begin (* adjust ┆
0x087520…087540             74 68 65 20 6d 75 74 75 61 6c 20 64 65 70 65 6e 64 65 6e 74 20 76 61 72 69 61 62 6c 65 73 20 2a   ┆the mutual dependent variables *┆
0x087540…087560             29 0a 28 2a 24 52 2d 2a 29 0a 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 69 7a 65 3a 3d 20 28 73 65 67   ┆) (*$R-*) line_table_size:= (seg┆
0x087560…087580             6d 65 6e 74 5f 73 69 7a 65 20 2b 20 31 20 2d 20 66 69 78 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 70   ┆ment_size + 1 - fix_line_table_p┆
0x087580…0875a0             61 72 74 29 20 64 69 76 20 28 6c 69 6e 65 5f 73 70 61 63 69 6e 67 20 2b 20 31 29 20 2b 20 66 69   ┆art) div (line_spacing + 1) + fi┆
0x0875a0…0875c0             78 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 70 61 72 74 3b 0a 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 69   ┆x_line_table_part; line_table_si┆
0x0875c0…0875e0             7a 65 3a 3d 20 28 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 69 7a 65 20 2b 20 31 29 20 64 69 76 20 32   ┆ze:= (line_table_size + 1) div 2┆
0x0875e0…087600             20 2a 20 32 3b 20 28 2a 20 69 6e 74 65 67 72 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 77 6f 72 64   ┆ * 2; (* integral number of word┆
0x087600…087620 (36, 0, 4)  73 20 2a 29 0a 72 65 6d 5f 62 75 66 66 65 72 5f 73 69 7a 65 3a 3d 20 73 65 67 6d 65 6e 74 5f 73   ┆s *) rem_buffer_size:= segment_s┆
0x087620…087640             69 7a 65 20 2b 20 31 20 2d 20 6c 6f 6e 67 6a 75 6d 70 5f 73 69 7a 65 3b 0a 69 66 20 72 65 6d 5f   ┆ize + 1 - longjump_size; if rem_┆
0x087640…087660             62 75 66 66 65 72 5f 73 69 7a 65 20 3c 20 6d 69 6e 5f 62 75 66 66 65 72 5f 73 69 7a 65 20 74 68   ┆buffer_size < min_buffer_size th┆
0x087660…087680             65 6e 20 65 72 72 6f 72 3b 0a 69 66 20 67 65 6e 65 72 61 74 65 5f 6c 69 6e 65 5f 69 6e 66 6f 20   ┆en error; if generate_line_info ┆
0x087680…0876a0             74 68 65 6e 0a 62 65 67 69 6e 0a 73 74 61 72 74 5f 6f 66 5f 6c 69 6e 65 5f 74 61 62 6c 65 3a 3d   ┆then begin start_of_line_table:=┆
0x0876a0…0876c0             20 73 65 67 6d 65 6e 74 5f 73 69 7a 65 20 2b 20 31 20 2d 20 6c 69 6e 65 5f 74 61 62 6c 65 5f 73   ┆ segment_size + 1 - line_table_s┆
0x0876c0…0876e0             69 7a 65 3b 0a 28 2a 24 52 2b 2a 29 0a 70 72 65 70 61 72 65 5f 6c 69 6e 65 74 61 62 6c 65 3b 20   ┆ize; (*$R+*) prepare_linetable; ┆
0x0876e0…087700             28 2a 20 6c 69 6e 65 20 74 61 62 6c 65 20 73 65 74 2d 75 70 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e   ┆(* line table set-up *) end;  en┆
0x087700…087720             64 3b 20 28 2a 20 63 6f 64 65 20 73 69 7a 65 20 6f 72 20 73 70 61 63 69 6e 67 20 2a 29 0a 65 6e   ┆d; (* code size or spacing *) en┆
0x087720…087740             64 3b 20 28 2a 20 73 65 63 6f 6e 64 20 2a 29 0a 73 79 73 74 65 6d 70 61 72 61 6d 6e 6f 3a 3d 20   ┆d; (* second *) systemparamno:= ┆
0x087740…087760             73 79 73 74 65 6d 70 61 72 61 6d 6e 6f 20 2b 20 31 3b 0a 69 66 20 70 61 72 61 6d 20 3c 3e 20 66   ┆systemparamno + 1; if param <> f┆
0x087760…087780             69 6c 65 6e 61 6d 65 20 74 68 65 6e 20 6a 3a 3d 70 61 72 61 6d 72 65 61 64 28 73 79 73 74 65 6d   ┆ilename then j:=paramread(system┆
0x087780…0877a0             70 61 72 61 6d 6e 6f 2c 69 6e 74 2c 61 29 3b 0a 65 6e 64 3b 0a 0a 69 66 20 64 65 66 61 75 6c 74   ┆paramno,int,a); end;  if default┆
0x0877a0…0877c0             5f 75 73 65 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 20 20 61 73 73 69 67 6e 28 69 6e 70 75 74 2c   ┆_used then begin   assign(input,┆
0x0877c0…0877e0             20 63 6f 6e 63 61 74 28 70 61 74 68 32 5f 6e 61 6d 65 2c 73 6f 75 72 63 65 66 69 6c 65 6e 61 6d   ┆ concat(path2_name,sourcefilenam┆
0x0877e0…087800             65 29 29 3b 0a 65 6e 64 20 65 6c 73 65 0a 62 65 67 69 6e 0a 20 20 61 73 73 69 67 6e 28 69 6e 70   ┆e)); end else begin   assign(inp┆
0x087800…087820 (36, 0, 5)  75 74 2c 20 63 6f 6e 63 61 74 28 73 6f 75 72 63 65 5f 70 61 74 68 2c 73 6f 75 72 63 65 66 69 6c   ┆ut, concat(source_path,sourcefil┆
0x087820…087840             65 6e 61 6d 65 29 29 3b 0a 65 6e 64 3b 0a 73 65 74 74 65 78 74 62 75 66 28 69 6e 70 75 74 2c 20   ┆ename)); end; settextbuf(input, ┆
0x087840…087860             69 6e 5f 62 75 66 5f 70 74 72 5e 29 3b 0a 28 2a 24 49 2d 2a 29 0a 72 65 73 65 74 28 69 6e 70 75   ┆in_buf_ptr^); (*$I-*) reset(inpu┆
0x087860…087880             74 29 3b 0a 69 66 20 69 6f 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 68 65 6e 0a 62 65 67 69 6e 0a   ┆t); if ioresult <> 0 then begin ┆
0x087880…0878a0             69 66 20 64 65 66 61 75 6c 74 5f 75 73 65 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6e 6f 66 69 6c   ┆if default_used then begin nofil┆
0x0878a0…0878c0             65 28 63 6f 6e 63 61 74 28 70 61 74 68 32 5f 6e 61 6d 65 2c 20 73 6f 75 72 63 65 66 69 6c 65 6e   ┆e(concat(path2_name, sourcefilen┆
0x0878c0…0878e0             61 6d 65 29 29 3b 0a 65 6e 64 20 65 6c 73 65 0a 6e 6f 66 69 6c 65 28 63 6f 6e 63 61 74 28 73 6f   ┆ame)); end else nofile(concat(so┆
0x0878e0…087900             75 72 63 65 5f 70 61 74 68 2c 20 73 6f 75 72 63 65 66 69 6c 65 6e 61 6d 65 29 29 3b 0a 65 6e 64   ┆urce_path, sourcefilename)); end┆
0x087900…087920             3b 0a 28 2a 24 49 2b 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 72 65 61 64 20 63 61 6c 6c 20 2a 29 0a   ┆; (*$I+*)  end; (* read call *) ┆
0x087920…087940             0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 6f 75 74 70 75 74 5f 73 74 61 74 69 73 74 69 63 73 3b 0a   ┆   procedure output_statistics; ┆
0x087940…087960             62 65 67 69 6e 0a 0a 0a 65 6e 64 3b 20 28 2a 20 6f 75 74 70 75 74 20 73 74 61 74 69 73 74 69 63   ┆begin   end; (* output statistic┆
0x087960…087980             73 20 2a 29 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 70 72 69 6e 74 6c 69 6e 65 3b 0a 76 61 72   ┆s *)    procedure printline; var┆
0x087980…0879a0             20 73 74 65 70 20 3a 20 69 6e 74 65 67 65 72 3b 0a 0a 62 65 67 69 6e 0a 77 72 69 74 65 28 6f 75   ┆ step : integer;  begin write(ou┆
0x0879a0…0879c0             74 70 75 74 2c 20 6c 69 6e 65 6e 75 6d 62 65 72 20 3a 20 35 2c 20 27 20 20 27 29 3b 0a 69 66 20   ┆tput, linenumber : 5, '  '); if ┆
0x0879c0…0879e0             63 75 72 72 65 6e 74 5f 74 69 6d 65 20 3c 3e 20 2d 31 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 72   ┆current_time <> -1 then begin wr┆
0x0879e0…087a00             69 74 65 28 6f 75 74 70 75 74 2c 20 63 75 72 72 65 6e 74 5f 74 69 6d 65 20 64 69 76 20 31 30 20   ┆ite(output, current_time div 10 ┆
0x087a00…087a20 (36, 0, 6)  3a 20 33 2c 20 27 2e 27 2c 0a 63 75 72 72 65 6e 74 5f 74 69 6d 65 20 6d 6f 64 20 31 30 20 3a 20   ┆: 3, '.', current_time mod 10 : ┆
0x087a20…087a40             31 2c 20 77 6f 72 64 28 74 6f 74 61 6c 5f 74 69 6d 65 29 20 64 69 76 20 31 30 3a 38 2c 20 27 20   ┆1, word(total_time) div 10:8, ' ┆
0x087a40…087a60             27 20 3a 20 33 29 3b 0a 63 75 72 72 65 6e 74 5f 74 69 6d 65 3a 3d 20 2d 31 3b 0a 65 6e 64 0a 65   ┆' : 3); current_time:= -1; end e┆
0x087a60…087a80             6c 73 65 20 28 2a 20 6e 6f 74 20 63 6f 64 65 20 6c 69 6e 65 20 2a 29 0a 77 72 69 74 65 28 6f 75   ┆lse (* not code line *) write(ou┆
0x087a80…087aa0             74 70 75 74 2c 20 27 20 27 20 3a 20 33 20 2b 20 31 20 2b 20 31 20 2b 20 38 20 2b 20 33 20 29 3b   ┆tput, ' ' : 3 + 1 + 1 + 8 + 3 );┆
0x087aa0…087ac0             0a 0a 77 72 69 74 65 5f 68 65 78 28 20 63 75 72 72 65 6e 74 5f 73 65 67 6d 65 6e 74 2c 20 32 29   ┆  write_hex( current_segment, 2)┆
0x087ac0…087ae0             3b 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 20 27 29 3b 0a 77 72 69 74 65 5f 68 65 78 28 20   ┆; write(output,' '); write_hex( ┆
0x087ae0…087b00             63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 2d 20 6c 65 6e 67 74 68 5f 6f 66 5f 63 75 72 72 65   ┆current_offset - length_of_curre┆
0x087b00…087b20             6e 74 5f 63 6f 64 65 2c 20 34 29 3b 0a 6c 65 6e 67 74 68 5f 6f 66 5f 63 75 72 72 65 6e 74 5f 63   ┆nt_code, 4); length_of_current_c┆
0x087b20…087b40             6f 64 65 3a 3d 20 30 3b 20 28 2a 20 64 6f 20 6e 6f 74 20 61 64 6a 75 73 74 20 6e 6f 6e 2d 63 6f   ┆ode:= 0; (* do not adjust non-co┆
0x087b40…087b60             64 65 20 6c 69 6e 65 73 20 2a 29 0a 77 72 69 74 65 28 27 3a 20 20 27 29 3b 0a 66 6f 72 20 73 74   ┆de lines *) write(':  '); for st┆
0x087b60…087b80             65 70 3a 3d 20 31 20 74 6f 20 6c 69 6e 65 6c 65 6e 67 74 68 20 64 6f 0a 77 72 69 74 65 28 6f 75   ┆ep:= 1 to linelength do write(ou┆
0x087b80…087ba0             74 70 75 74 2c 20 6c 69 6e 65 20 5b 20 73 74 65 70 20 5d 20 29 3b 0a 77 72 69 74 65 6c 6e 28 6f   ┆tput, line [ step ] ); writeln(o┆
0x087ba0…087bc0             75 74 70 75 74 29 3b 0a 70 72 69 6e 74 65 64 3a 3d 20 74 72 75 65 3b 0a 65 6e 64 3b 20 28 2a 20   ┆utput); printed:= true; end; (* ┆
0x087bc0…087be0             70 72 69 6e 74 20 6c 69 6e 65 20 2a 29 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 6d 61 72 6b 65   ┆print line *)    procedure marke┆
0x087be0…087c00             72 72 6f 72 20 28 20 6e 6f 20 3a 20 69 6e 74 65 67 65 72 20 29 3b 0a 0a 28 2a 20 70 72 69 6e 74   ┆rror ( no : integer );  (* print┆
0x087c00…087c20 (36, 0, 7)  20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 61 6e 64 20 6d 61 72 6b 20 74 68 65 20 65 72 72 6f 6e   ┆ current line and mark the erron┆
0x087c20…087c40             65 6f 75 73 20 74 6f 6b 65 6e 20 2a 29 0a 76 61 72 0a 69 20 3a 20 69 6e 74 65 67 65 72 3b 0a 0a   ┆eous token *) var i : integer;  ┆
0x087c40…087c60             62 65 67 69 6e 0a 65 72 72 6f 72 63 6f 75 6e 74 3a 3d 20 65 72 72 6f 72 63 6f 75 6e 74 20 2b 20   ┆begin errorcount:= errorcount + ┆
0x087c60…087c80             31 3b 0a 65 72 72 6f 72 6d 61 72 6b 73 20 5b 20 6e 6f 20 5d 3a 3d 20 74 72 75 65 3b 0a 69 66 20   ┆1; errormarks [ no ]:= true; if ┆
0x087c80…087ca0             65 72 72 6f 72 72 65 70 6f 72 74 69 6e 67 20 74 68 65 6e 0a 62 65 67 69 6e 0a 69 66 20 6e 6f 74   ┆errorreporting then begin if not┆
0x087ca0…087cc0             20 70 72 69 6e 74 65 64 20 6f 72 20 28 70 72 6f 67 72 61 6d 5f 6b 69 6e 64 20 3d 20 6f 70 65 6e   ┆ printed or (program_kind = open┆
0x087cc0…087ce0             5f 72 6f 75 74 69 6e 65 29 20 74 68 65 6e 0a 70 72 69 6e 74 6c 69 6e 65 3b 0a 69 66 20 65 72 72   ┆_routine) then printline; if err┆
0x087ce0…087d00             6f 72 69 6e 64 65 78 20 3d 20 30 20 74 68 65 6e 0a 77 72 69 74 65 28 6f 75 74 70 75 74 2c 20 27   ┆orindex = 0 then write(output, '┆
0x087d00…087d20             2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 27   ┆*******************************'┆
0x087d20…087d40             29 3b 0a 66 6f 72 20 69 3a 3d 20 65 72 72 6f 72 69 6e 64 65 78 20 74 6f 20 6c 69 6e 65 69 6e 64   ┆); for i:= errorindex to lineind┆
0x087d40…087d60             65 78 20 64 6f 20 77 72 69 74 65 28 6f 75 74 70 75 74 2c 27 20 27 29 3b 0a 77 72 69 74 65 28 6f   ┆ex do write(output,' '); write(o┆
0x087d60…087d80             75 74 70 75 74 2c 27 5e 27 2c 20 6e 6f 3a 31 29 3b 0a 65 72 72 6f 72 69 6e 64 65 78 3a 3d 20 6c   ┆utput,'^', no:1); errorindex:= l┆
0x087d80…087da0             69 6e 65 69 6e 64 65 78 20 2b 20 32 3b 0a 65 6e 64 3b 20 28 2a 20 65 72 72 6f 72 20 72 65 70 6f   ┆ineindex + 2; end; (* error repo┆
0x087da0…087dc0             72 74 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 6d 61 72 6b 20 65 72 72 6f 72 20 2a 29 0a 0a 0a 0a 70   ┆rt *) end; (* mark error *)    p┆
0x087dc0…087de0             72 6f 63 65 64 75 72 65 20 6d 61 72 6b 65 72 72 6f 72 31 20 28 20 6e 6f 20 3a 20 69 6e 74 65 67   ┆rocedure markerror1 ( no : integ┆
0x087de0…087e00             65 72 3b 20 65 72 72 6f 72 74 65 78 74 20 3a 20 6e 61 6d 65 73 74 72 69 6e 67 20 29 3b 0a 0a 62   ┆er; errortext : namestring );  b┆
0x087e00…087e20 (36, 0, 8)  65 67 69 6e 0a 6d 61 72 6b 65 72 72 6f 72 20 28 20 6e 6f 20 29 3b 0a 69 66 20 74 65 73 74 20 74   ┆egin markerror ( no ); if test t┆
0x087e20…087e40             68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 69 6e 64 65 78 3a 3d 20 30 3b 0a 77 72 69 74 65 6c   ┆hen begin errorindex:= 0; writel┆
0x087e40…087e60             6e 28 6f 75 74 70 75 74 29 3b 77 72 69 74 65 6c 6e 28 27 6e 61 6d 65 20 69 73 3a 20 27 2c 20 65   ┆n(output);writeln('name is: ', e┆
0x087e60…087e80             72 72 6f 72 74 65 78 74 20 29 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 6d 61 72 6b 65 72 72   ┆rrortext ); end; end; (* markerr┆
0x087e80…087ea0             6f 72 31 20 2a 29 0a 0a 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 73 74 6f 70 28 20 63 6f 6e 73   ┆or1 *)      procedure stop( cons┆
0x087ea0…087ec0             74 6e 61 6d 65 2c 20 63 61 6c 6c 65 64 66 72 6f 6d 20 3a 20 61 6c 66 61 20 29 3b 0a 0a 28 2a 20   ┆tname, calledfrom : alfa );  (* ┆
0x087ec0…087ee0             66 61 74 61 6c 20 65 72 72 6f 72 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 27   ┆fatal error in connection with '┆
0x087ee0…087f00             63 6f 6e 73 74 6e 61 6d 27 2c 20 64 65 74 65 63 74 65 64 20 69 6e 0a 70 72 6f 63 65 64 75 72 65   ┆constnam', detected in procedure┆
0x087f00…087f20             20 27 63 61 6c 6c 65 64 66 72 6f 6d 27 2c 20 73 74 6f 70 20 74 68 65 20 70 72 6f 67 72 61 6d 20   ┆ 'calledfrom', stop the program ┆
0x087f20…087f40             2a 29 0a 0a 62 65 67 69 6e 0a 6d 61 72 6b 65 72 72 6f 72 28 30 29 3b 20 28 2a 20 66 61 74 61 6c   ┆*)  begin markerror(0); (* fatal┆
0x087f40…087f60             20 65 72 72 6f 72 20 2a 29 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 77 72 69 74 65 6c   ┆ error *) writeln(output);writel┆
0x087f60…087f80             6e 3b 0a 77 72 69 74 65 6c 6e 28 27 63 6f 6e 73 74 61 6e 74 20 27 2c 20 63 6f 6e 73 74 6e 61 6d   ┆n; writeln('constant ', constnam┆
0x087f80…087fa0             65 2c 20 27 20 74 6f 6f 20 73 6d 61 6c 6c 27 29 3b 0a 77 72 69 74 65 6c 6e 28 27 53 6f 75 72 63   ┆e, ' too small'); writeln('Sourc┆
0x087fa0…087fc0             65 20 6c 69 6e 65 20 6e 75 6d 62 65 72 20 3d 20 27 2c 20 63 75 72 72 65 6e 74 5f 73 6f 75 72 63   ┆e line number = ', current_sourc┆
0x087fc0…087fe0             65 5f 6c 69 6e 65 20 3a 31 29 3b 0a 69 66 20 74 65 73 74 20 74 68 65 6e 0a 77 72 69 74 65 28 6f   ┆e_line :1); if test then write(o┆
0x087fe0…088000             75 74 70 75 74 2c 20 27 20 64 65 74 65 63 74 65 64 20 69 6e 20 70 72 6f 63 65 64 75 72 65 20 27   ┆utput, ' detected in procedure '┆
0x088000…088020 (36, 0, 9)  2c 20 63 61 6c 6c 65 64 66 72 6f 6d 29 3b 0a 0a 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b   ┆, calledfrom);  writeln(output);┆
0x088020…088040             0a 70 72 69 6e 74 65 72 72 6f 72 73 3b 0a 0a 65 6e 64 3b 20 28 2a 20 73 74 6f 70 20 2a 29 0a 0a   ┆ printerrors;  end; (* stop *)  ┆
0x088040…088060             0a 70 72 6f 63 65 64 75 72 65 20 72 65 61 64 6c 69 6e 65 3b 0a 0a 28 2a 20 61 74 20 65 78 69 74   ┆ procedure readline;  (* at exit┆
0x088060…088080             20 6c 69 6e 65 69 6e 64 65 78 20 77 69 6c 6c 20 64 65 6e 6f 74 65 20 74 68 65 20 6c 61 73 74 20   ┆ lineindex will denote the last ┆
0x088080…0880a0             6c 65 61 64 69 6e 67 20 73 70 61 63 65 20 6f 66 20 74 68 65 20 6c 69 6e 65 0a 61 6e 64 20 6c 69   ┆leading space of the line and li┆
0x0880a0…0880c0             6e 65 6c 65 6e 67 74 68 20 64 65 6e 6f 74 65 73 20 74 68 65 20 6c 61 73 74 20 63 68 61 72 61 63   ┆nelength denotes the last charac┆
0x0880c0…0880e0             74 65 72 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 2a 29 0a 0a 76 61 72 0a 6e 65 78 74 5f 69 6e 70   ┆ter of the line *)  var next_inp┆
0x0880e0…088100             75 74 5f 63 68 61 72 61 63 74 65 72 3a 20 63 68 61 72 3b 0a 6c 67 74 20 3a 20 69 6e 74 65 67 65   ┆ut_character: char; lgt : intege┆
0x088100…088120             72 3b 20 28 2a 20 6c 6f 63 61 6c 20 6c 69 6e 65 6c 65 6e 67 74 68 20 2a 29 0a 0a 62 65 67 69 6e   ┆r; (* local linelength *)  begin┆
0x088120…088140             0a 6c 67 74 3a 3d 20 31 3b 0a 70 72 69 6e 74 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 65 72 72 6f 72   ┆ lgt:= 1; printed:= false; error┆
0x088140…088160             69 6e 64 65 78 3a 3d 20 30 3b 0a 6c 69 6e 65 6e 75 6d 62 65 72 3a 3d 20 6c 69 6e 65 6e 75 6d 62   ┆index:= 0; linenumber:= linenumb┆
0x088160…088180             65 72 20 2b 20 31 3b 0a 72 65 70 65 61 74 0a 72 65 70 65 61 74 0a 72 65 61 64 28 6e 65 78 74 5f   ┆er + 1; repeat repeat read(next_┆
0x088180…0881a0             69 6e 70 75 74 5f 63 68 61 72 61 63 74 65 72 29 3b 0a 75 6e 74 69 6c 20 6f 72 64 28 6e 65 78 74   ┆input_character); until ord(next┆
0x0881a0…0881c0             5f 69 6e 70 75 74 5f 63 68 61 72 61 63 74 65 72 29 20 3c 3e 20 30 3b 0a 69 66 20 6e 65 78 74 5f   ┆_input_character) <> 0; if next_┆
0x0881c0…0881e0             69 6e 70 75 74 5f 63 68 61 72 61 63 74 65 72 20 3c 20 27 20 27 20 74 68 65 6e 20 70 72 69 6e 74   ┆input_character < ' ' then print┆
0x0881e0…088200             65 64 20 3a 3d 20 74 72 75 65 20 65 6c 73 65 0a 69 66 20 6c 67 74 20 3d 20 6d 61 78 6c 69 6e 65   ┆ed := true else if lgt = maxline┆
0x088200…088220 (36, 0, 10) 6c 65 6e 67 74 68 20 74 68 65 6e 20 70 72 69 6e 74 65 64 20 3a 3d 20 74 72 75 65 20 65 6c 73 65   ┆length then printed := true else┆
0x088220…088240             0a 62 65 67 69 6e 0a 6c 69 6e 65 20 5b 20 6c 67 74 20 5d 3a 3d 20 6e 65 78 74 5f 69 6e 70 75 74   ┆ begin line [ lgt ]:= next_input┆
0x088240…088260             5f 63 68 61 72 61 63 74 65 72 3b 0a 6c 67 74 20 3a 3d 20 6c 67 74 20 2b 20 31 3b 0a 65 6e 64 3b   ┆_character; lgt := lgt + 1; end;┆
0x088260…088280             0a 75 6e 74 69 6c 20 70 72 69 6e 74 65 64 20 3b 0a 70 72 69 6e 74 65 64 20 3a 3d 20 66 61 6c 73   ┆ until printed ; printed := fals┆
0x088280…0882a0             65 3b 0a 69 66 20 65 6f 66 28 69 6e 70 75 74 29 20 74 68 65 6e 20 6c 69 6e 65 5b 6c 67 74 5d 20   ┆e; if eof(input) then line[lgt] ┆
0x0882a0…0882c0             3a 3d 20 27 2e 27 20 65 6c 73 65 0a 62 65 67 69 6e 0a 77 68 69 6c 65 20 6f 72 64 28 6e 65 78 74   ┆:= '.' else begin while ord(next┆
0x0882c0…0882e0             5f 69 6e 70 75 74 5f 63 68 61 72 61 63 74 65 72 29 20 3c 3e 20 31 30 20 64 6f 20 72 65 61 64 28   ┆_input_character) <> 10 do read(┆
0x0882e0…088300             6e 65 78 74 5f 69 6e 70 75 74 5f 63 68 61 72 61 63 74 65 72 29 3b 0a 6c 69 6e 65 5b 6c 67 74 5d   ┆next_input_character); line[lgt]┆
0x088300…088320             20 3a 3d 20 27 20 27 3b 0a 65 6e 64 3b 0a 6c 69 6e 65 69 6e 64 65 78 3a 3d 20 31 3b 0a 77 68 69   ┆ := ' '; end; lineindex:= 1; whi┆
0x088320…088340             6c 65 20 28 6c 69 6e 65 69 6e 64 65 78 3c 6c 67 74 29 20 61 6e 64 20 28 6c 69 6e 65 5b 20 6c 69   ┆le (lineindex<lgt) and (line[ li┆
0x088340…088360             6e 65 69 6e 64 65 78 20 5d 3d 27 20 27 29 20 64 6f 0a 6c 69 6e 65 69 6e 64 65 78 3a 3d 20 6c 69   ┆neindex ]=' ') do lineindex:= li┆
0x088360…088380             6e 65 69 6e 64 65 78 2b 31 3b 0a 6c 69 6e 65 69 6e 64 65 78 3a 3d 20 6c 69 6e 65 69 6e 64 65 78   ┆neindex+1; lineindex:= lineindex┆
0x088380…0883a0             2d 31 3b 0a 0a 6c 69 6e 65 6c 65 6e 67 74 68 3a 3d 20 6c 67 74 3b 0a 0a 65 6e 64 3b 20 28 2a 20   ┆-1;  linelength:= lgt;  end; (* ┆
0x0883a0…0883c0             72 65 61 64 20 6c 69 6e 65 20 2a 29 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 5f 6e 65 78   ┆read line *)    function get_nex┆
0x0883c0…0883e0             74 5f 74 6f 6b 65 6e 20 3a 20 74 6f 6b 65 6e 73 3b 0a 0a 28 2a 20 6d 6f 76 65 20 28 6c 65 73 73   ┆t_token : tokens;  (* move (less┆
0x0883e0…088400             20 74 68 61 6e 20 63 68 62 75 66 6d 61 78 29 20 63 68 61 72 61 63 74 65 72 73 20 66 72 6f 6d 20   ┆ than chbufmax) characters from ┆
0x088400…088420 (36, 0, 11) 27 6c 69 6e 65 27 0a 74 6f 20 27 63 68 62 75 66 27 2c 20 6c 65 74 20 6c 61 73 74 63 68 61 72 20   ┆'line' to 'chbuf', let lastchar ┆
0x088420…088440             64 65 6e 6f 74 65 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 77 6f 72 64 2c 20 74   ┆denote the length of the word, t┆
0x088440…088460             68 65 0a 66 75 6e 63 69 74 6f 6e 20 72 65 73 75 6c 74 20 69 73 20 73 65 74 20 61 63 63 6f 72 64   ┆he funciton result is set accord┆
0x088460…088480             69 6e 67 20 74 6f 20 74 68 65 20 64 65 6c 69 6d 69 74 65 72 20 66 6f 6c 6c 6f 77 69 6e 67 20 74   ┆ing to the delimiter following t┆
0x088480…0884a0             68 65 0a 77 6f 72 64 2c 20 69 2e 65 2e 20 27 6c 69 6e 65 20 5b 20 6c 69 6e 65 69 6e 64 65 78 20   ┆he word, i.e. 'line [ lineindex ┆
0x0884a0…0884c0             5d 20 27 20 2a 29 0a 0a 6c 61 62 65 6c 20 31 3b 0a 0a 76 61 72 0a 6c 6f 63 61 6c 74 6f 6b 65 6e   ┆] ' *)  label 1;  var localtoken┆
0x0884c0…0884e0             20 3a 20 74 6f 6b 65 6e 73 3b 0a 69 6e 73 65 72 74 2c 20 66 69 6e 69 73 68 65 64 20 3a 20 62 6f   ┆ : tokens; insert, finished : bo┆
0x0884e0…088500             6f 6c 65 61 6e 3b 0a 0a 62 65 67 69 6e 0a 6c 61 73 74 63 68 61 72 3a 3d 20 30 3b 0a 66 69 6e 69   ┆olean;  begin lastchar:= 0; fini┆
0x088500…088520             73 68 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 69 6e 73 65 72 74 20 20 3a 3d 20 74 72 75 65 3b 0a 0a   ┆shed:= false; insert  := true;  ┆
0x088520…088540             77 68 69 6c 65 20 6e 6f 74 20 66 69 6e 69 73 68 65 64 20 64 6f 0a 62 65 67 69 6e 0a 31 3a 0a 69   ┆while not finished do begin 1: i┆
0x088540…088560             66 20 6c 69 6e 65 69 6e 64 65 78 20 3e 3d 20 6c 69 6e 65 6c 65 6e 67 74 68 20 74 68 65 6e 0a 62   ┆f lineindex >= linelength then b┆
0x088560…088580             65 67 69 6e 0a 69 66 20 65 72 72 6f 72 69 6e 64 65 78 20 3e 20 30 20 74 68 65 6e 20 77 72 69 74   ┆egin if errorindex > 0 then writ┆
0x088580…0885a0             65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 69 66 20 63 6f 64 65 6c 69 73 74 20 61 6e 64 20 6e 6f 74   ┆eln(output); if codelist and not┆
0x0885a0…0885c0             20 70 72 69 6e 74 65 64 20 74 68 65 6e 20 70 72 69 6e 74 6c 69 6e 65 3b 0a 72 65 61 64 6c 69 6e   ┆ printed then printline; readlin┆
0x0885c0…0885e0             65 3b 0a 65 6e 64 3b 0a 0a 6c 69 6e 65 69 6e 64 65 78 3a 3d 20 6c 69 6e 65 69 6e 64 65 78 20 2b   ┆e; end;  lineindex:= lineindex +┆
0x0885e0…088600             20 31 3b 0a 63 61 73 65 20 6c 69 6e 65 20 5b 20 6c 69 6e 65 69 6e 64 65 78 20 5d 20 6f 66 0a 27   ┆ 1; case line [ lineindex ] of '┆
0x088600…088620 (36, 0, 12) 23 27 20 3a 0a 62 65 67 69 6e 0a 69 66 20 6c 61 73 74 63 68 61 72 20 3c 3e 20 31 20 74 68 65 6e   ┆#' : begin if lastchar <> 1 then┆
0x088620…088640             0a 62 65 67 69 6e 20 28 2a 20 23 20 69 73 20 61 20 64 65 6c 69 6d 69 74 65 72 2c 20 69 2e 65 2e   ┆ begin (* # is a delimiter, i.e.┆
0x088640…088660             20 73 74 6f 70 20 72 65 61 64 69 6e 67 20 2a 29 0a 66 69 6e 69 73 68 65 64 3a 3d 20 74 72 75 65   ┆ stop reading *) finished:= true┆
0x088660…088680             3b 0a 69 6e 73 65 72 74 3a 3d 20 66 61 6c 73 65 3b 0a 6c 6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 73   ┆; insert:= false; localtoken:= s┆
0x088680…0886a0             79 6d 62 6f 6c 3b 0a 65 6e 64 3b 0a 28 2a 20 65 6c 73 65 20 69 6e 73 65 72 74 20 3d 20 74 72 75   ┆ymbol; end; (* else insert = tru┆
0x0886a0…0886c0             65 20 2c 20 6f 6b 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 27 23 27 20 2a 29 0a 0a 27 2e 27 20 3a 0a   ┆e , ok *) end; (* '#' *)  '.' : ┆
0x0886c0…0886e0             62 65 67 69 6e 0a 69 6e 73 65 72 74 3a 3d 20 66 61 6c 73 65 3b 0a 66 69 6e 69 73 68 65 64 3a 3d   ┆begin insert:= false; finished:=┆
0x0886e0…088700             20 74 72 75 65 3b 0a 69 66 20 6c 61 73 74 63 68 61 72 20 3c 3e 20 30 20 74 68 65 6e 0a 6c 6f 63   ┆ true; if lastchar <> 0 then loc┆
0x088700…088720             61 6c 74 6f 6b 65 6e 3a 3d 20 73 79 6d 62 6f 6c 0a 65 6c 73 65 0a 6c 6f 63 61 6c 74 6f 6b 65 6e   ┆altoken:= symbol else localtoken┆
0x088720…088740             3a 3d 20 6f 74 68 65 72 3b 0a 69 66 20 6c 61 73 74 63 68 61 72 20 3d 20 31 20 74 68 65 6e 0a 62   ┆:= other; if lastchar = 1 then b┆
0x088740…088760             65 67 69 6e 0a 69 66 20 63 68 62 75 66 20 5b 20 31 20 5d 20 3d 20 27 6c 27 20 74 68 65 6e 0a 6c   ┆egin if chbuf [ 1 ] = 'l' then l┆
0x088760…088780             6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 73 6f 75 72 63 65 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 0a 65   ┆ocaltoken:= source_line_number e┆
0x088780…0887a0             6c 73 65 0a 69 66 20 63 68 62 75 66 20 5b 20 31 20 5d 20 3d 20 27 62 27 20 74 68 65 6e 0a 6c 6f   ┆lse if chbuf [ 1 ] = 'b' then lo┆
0x0887a0…0887c0             63 61 6c 74 6f 6b 65 6e 3a 3d 20 62 6c 6f 63 6b 62 65 67 69 6e 0a 65 6c 73 65 0a 69 66 20 63 68   ┆caltoken:= blockbegin else if ch┆
0x0887c0…0887e0             62 75 66 20 5b 20 31 20 5d 20 3d 20 27 65 27 20 74 68 65 6e 0a 62 65 67 69 6e 0a 69 66 20 63 75   ┆buf [ 1 ] = 'e' then begin if cu┆
0x0887e0…088800             72 72 65 6e 74 5f 6c 65 76 65 6c 20 3d 20 67 6c 6f 62 61 6c 5f 6c 65 76 65 6c 20 74 68 65 6e 0a   ┆rrent_level = global_level then ┆
0x088800…088820 (36, 0, 13) 6c 6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 65 6e 64 70 72 6f 67 72 61 6d 0a 65 6c 73 65 0a 6c 6f 63   ┆localtoken:= endprogram else loc┆
0x088820…088840             61 6c 74 6f 6b 65 6e 3a 3d 20 62 6c 6f 63 6b 65 6e 64 0a 65 6e 64 0a 65 6c 73 65 0a 69 66 20 63   ┆altoken:= blockend end else if c┆
0x088840…088860             68 62 75 66 20 5b 20 31 20 5d 20 3d 20 27 63 27 20 74 68 65 6e 0a 6c 6f 63 61 6c 74 6f 6b 65 6e   ┆hbuf [ 1 ] = 'c' then localtoken┆
0x088860…088880             3a 3d 20 63 6f 6e 73 74 62 65 67 69 6e 0a 65 6c 73 65 0a 69 66 20 63 68 62 75 66 20 5b 20 31 20   ┆:= constbegin else if chbuf [ 1 ┆
0x088880…0888a0             5d 20 3d 20 27 7a 27 20 74 68 65 6e 0a 6c 6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 6c 69 6e 65 5f 74   ┆] = 'z' then localtoken:= line_t┆
0x0888a0…0888c0             61 62 6c 65 0a 65 6c 73 65 0a 69 66 20 63 68 62 75 66 20 5b 20 31 20 5d 20 3d 20 27 6f 27 20 74   ┆able else if chbuf [ 1 ] = 'o' t┆
0x0888c0…0888e0             68 65 6e 0a 6c 6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 6f 70 74 69 6f 6e 0a 65 6c 73 65 0a 69 66 20   ┆hen localtoken:= option else if ┆
0x0888e0…088900             63 68 62 75 66 20 5b 20 31 20 5d 20 3d 20 27 64 27 20 74 68 65 6e 0a 6c 6f 63 61 6c 74 6f 6b 65   ┆chbuf [ 1 ] = 'd' then localtoke┆
0x088900…088920             6e 3a 3d 20 73 74 61 72 74 64 65 73 63 72 20 28 2a 20 73 74 61 72 74 20 6f 66 20 64 65 73 63 72   ┆n:= startdescr (* start of descr┆
0x088920…088940             69 70 74 6f 72 20 73 65 67 6d 65 6e 74 20 2a 29 0a 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 27   ┆iptor segment *)  end; end; (* '┆
0x088940…088960             2e 27 20 2a 29 0a 0a 27 20 27 20 3a 0a 62 65 67 69 6e 0a 69 66 20 6c 61 73 74 63 68 61 72 20 3d   ┆.' *)  ' ' : begin if lastchar =┆
0x088960…088980             20 30 20 74 68 65 6e 20 67 6f 74 6f 20 31 20 28 2a 20 73 6b 69 70 20 6c 65 61 64 69 6e 67 20 73   ┆ 0 then goto 1 (* skip leading s┆
0x088980…0889a0             70 61 63 65 73 20 2a 29 20 65 6c 73 65 0a 62 65 67 69 6e 0a 66 69 6e 69 73 68 65 64 3a 3d 20 6c   ┆paces *) else begin finished:= l┆
0x0889a0…0889c0             69 6e 65 69 6e 64 65 78 20 3d 20 6c 69 6e 65 6c 65 6e 67 74 68 3b 20 28 2a 20 6e 6c 20 69 73 20   ┆ineindex = linelength; (* nl is ┆
0x0889c0…0889e0             61 20 64 65 6c 69 6d 69 74 65 72 20 2a 29 0a 69 6e 73 65 72 74 3a 3d 20 66 61 6c 73 65 3b 20 28   ┆a delimiter *) insert:= false; (┆
0x0889e0…088a00             2a 20 73 6b 69 70 20 74 72 61 69 6c 69 6e 67 20 73 70 61 63 65 73 20 2a 29 0a 6c 6f 63 61 6c 74   ┆* skip trailing spaces *) localt┆
0x088a00…088a20 (36, 0, 14) 6f 6b 65 6e 3a 3d 20 73 79 6d 62 6f 6c 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 73 70 61 63   ┆oken:= symbol; end; end; (* spac┆
0x088a20…088a40             65 20 2a 29 0a 0a 27 2b 27 2c 20 27 2d 27 2c 20 27 2c 27 20 2c 20 27 2f 27 20 3a 0a 62 65 67 69   ┆e *)  '+', '-', ',' , '/' : begi┆
0x088a40…088a60             6e 0a 66 69 6e 69 73 68 65 64 3a 3d 20 74 72 75 65 3b 0a 69 6e 73 65 72 74 3a 3d 20 66 61 6c 73   ┆n finished:= true; insert:= fals┆
0x088a60…088a80             65 3b 0a 6c 6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 73 79 6d 62 6f 6c 3b 0a 65 6e 64 3b 20 28 2a 20   ┆e; localtoken:= symbol; end; (* ┆
0x088a80…088aa0             27 2c 27 20 27 2d 27 20 27 2b 27 20 2a 29 0a 0a 27 3b 27 20 3a 0a 62 65 67 69 6e 0a 69 6e 73 65   ┆',' '-' '+' *)  ';' : begin inse┆
0x088aa0…088ac0             72 74 3a 3d 20 66 61 6c 73 65 3b 0a 66 69 6e 69 73 68 65 64 3a 3d 20 74 72 75 65 3b 0a 69 66 20   ┆rt:= false; finished:= true; if ┆
0x088ac0…088ae0             6c 61 73 74 63 68 61 72 20 3e 20 30 20 74 68 65 6e 0a 6c 6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 73   ┆lastchar > 0 then localtoken:= s┆
0x088ae0…088b00             79 6d 62 6f 6c 0a 65 6c 73 65 0a 6c 6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 63 6f 6d 6d 65 6e 74 3b   ┆ymbol else localtoken:= comment;┆
0x088b00…088b20             0a 6c 69 6e 65 69 6e 64 65 78 3a 3d 20 6c 69 6e 65 6c 65 6e 67 74 68 3b 20 28 2a 20 66 6f 72 63   ┆ lineindex:= linelength; (* forc┆
0x088b20…088b40             65 20 6e 65 77 20 6c 69 6e 65 2c 20 64 65 6c 69 6d 20 3d 20 27 20 27 20 2a 29 0a 65 6e 64 3b 20   ┆e new line, delim = ' ' *) end; ┆
0x088b40…088b60             28 2a 20 27 3b 27 20 2a 29 0a 0a 27 3a 27 20 3a 0a 62 65 67 69 6e 0a 69 6e 73 65 72 74 3a 3d 20   ┆(* ';' *)  ':' : begin insert:= ┆
0x088b60…088b80             66 61 6c 73 65 3b 0a 66 69 6e 69 73 68 65 64 3a 3d 20 74 72 75 65 3b 0a 6c 6f 63 61 6c 74 6f 6b   ┆false; finished:= true; localtok┆
0x088b80…088ba0             65 6e 3a 3d 20 6c 61 62 65 6c 64 65 66 3b 0a 65 6e 64 3b 0a 0a 27 3d 27 20 3a 0a 62 65 67 69 6e   ┆en:= labeldef; end;  '=' : begin┆
0x088ba0…088bc0             0a 69 6e 73 65 72 74 3a 3d 20 66 61 6c 73 65 3b 0a 66 69 6e 69 73 68 65 64 3a 3d 20 74 72 75 65   ┆ insert:= false; finished:= true┆
0x088bc0…088be0             3b 0a 6c 6f 63 61 6c 74 6f 6b 65 6e 3a 3d 20 63 6f 6e 73 74 64 65 66 3b 0a 65 6e 64 3b 0a 0a 0a   ┆; localtoken:= constdef; end;   ┆
0x088be0…088c00             0a 65 6c 73 65 0a 62 65 67 69 6e 0a 69 66 20 6e 6f 74 20 69 6e 73 65 72 74 20 74 68 65 6e 20 28   ┆ else begin if not insert then (┆
0x088c00…088c20 (36, 0, 15) 2a 20 61 66 74 65 72 20 73 6b 69 70 20 73 70 61 63 65 73 20 2a 29 0a 62 65 67 69 6e 0a 66 69 6e   ┆* after skip spaces *) begin fin┆
0x088c20…088c40             69 73 68 65 64 3a 3d 20 74 72 75 65 3b 0a 6c 69 6e 65 69 6e 64 65 78 3a 3d 20 6c 69 6e 65 69 6e   ┆ished:= true; lineindex:= linein┆
0x088c40…088c60             64 65 78 20 2d 20 31 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 69 66 20 6e 6f 74 20 28   ┆dex - 1; end; end; end; if not (┆
0x088c60…088c80             28 6c 69 6e 65 20 5b 20 6c 69 6e 65 69 6e 64 65 78 20 5d 20 3d 20 27 30 27 29 20 61 6e 64 20 28   ┆(line [ lineindex ] = '0') and (┆
0x088c80…088ca0             63 68 62 75 66 20 5b 20 6c 61 73 74 63 68 61 72 20 5d 20 3d 20 27 23 27 29 29 20 74 68 65 6e 0a   ┆chbuf [ lastchar ] = '#')) then ┆
0x088ca0…088cc0             28 2a 20 6e 6f 74 20 6c 65 61 64 69 6e 67 20 27 30 27 20 6f 66 20 61 20 73 65 71 2d 6e 61 6d 65   ┆(* not leading '0' of a seq-name┆
0x088cc0…088ce0             20 2a 29 0a 0a 0a 69 66 20 69 6e 73 65 72 74 20 61 6e 64 20 28 6c 61 73 74 63 68 61 72 20 3c 20   ┆ *)   if insert and (lastchar < ┆
0x088ce0…088d00             63 68 62 75 66 6d 61 78 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6c 61 73 74 63 68 61 72 3a 3d 20   ┆chbufmax) then begin lastchar:= ┆
0x088d00…088d20             6c 61 73 74 63 68 61 72 20 2b 20 31 3b 0a 63 68 62 75 66 20 5b 20 6c 61 73 74 63 68 61 72 20 5d   ┆lastchar + 1; chbuf [ lastchar ]┆
0x088d20…088d40             3a 3d 20 6c 69 6e 65 20 5b 20 6c 69 6e 65 69 6e 64 65 78 20 5d 20 3b 0a 65 6e 64 3b 0a 0a 0a 65   ┆:= line [ lineindex ] ; end;   e┆
0x088d40…088d60             6e 64 3b 20 28 2a 20 77 68 69 6c 65 20 2a 29 0a 0a 67 65 74 5f 6e 65 78 74 5f 74 6f 6b 65 6e 3a   ┆nd; (* while *)  get_next_token:┆
0x088d60…088d80             3d 20 6c 6f 63 61 6c 74 6f 6b 65 6e 3b 0a 0a 69 66 20 74 65 73 74 20 74 68 65 6e 20 77 72 69 74   ┆= localtoken;  if test then writ┆
0x088d80…088da0             65 6c 6e 28 6f 75 74 70 75 74 2c 27 67 65 74 20 6e 65 78 74 20 74 6f 6b 65 6e 2c 20 74 6f 6b 65   ┆eln(output,'get next token, toke┆
0x088da0…088dc0             6e 20 3d 20 27 2c 20 6f 72 64 28 6c 6f 63 61 6c 74 6f 6b 65 6e 29 20 29 3b 0a 65 78 69 74 3b 0a   ┆n = ', ord(localtoken) ); exit; ┆
0x088dc0…088de0             0a 65 6e 64 3b 20 28 2a 20 67 65 74 20 6e 65 78 74 20 74 6f 6b 65 6e 20 2a 29 0a 0a 0a 0c 0a 66   ┆ end; (* get next token *)     f┆
0x088de0…088e00             75 6e 63 74 69 6f 6e 20 67 65 74 5f 63 6f 6e 73 74 61 6e 74 5f 76 61 6c 75 65 20 3a 20 69 6e 74   ┆unction get_constant_value : int┆
0x088e00…088e20 (36, 1, 1)  65 67 65 72 3b 0a 0a 28 2a 20 72 65 61 64 20 61 6e 20 31 36 20 62 69 74 20 75 6e 73 69 67 6e 65   ┆eger;  (* read an 16 bit unsigne┆
0x088e20…088e40             64 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 20 63 68 62 75 66 2c 20 69 2e 65 2e 20 63 6f 6e 76 65   ┆d integer from chbuf, i.e. conve┆
0x088e40…088e60             72 74 20 74 65 78 74 20 74 6f 20 69 6e 74 65 72 6e 61 6c 0a 72 65 70 72 65 73 65 6e 74 61 74 69   ┆rt text to internal representati┆
0x088e60…088e80             6f 6e 3b 20 69 66 20 63 68 62 75 66 20 3c 3e 20 69 6e 74 65 67 65 72 20 74 68 65 6e 20 74 68 65   ┆on; if chbuf <> integer then the┆
0x088e80…088ea0             20 66 75 6e 63 74 69 6f 6e 20 72 65 73 75 6c 74 20 62 65 63 6f 6d 65 73 20 30 20 2a 29 0a 0a 63   ┆ function result becomes 0 *)  c┆
0x088ea0…088ec0             6f 6e 73 74 0a 6c 69 6d 69 74 20 3d 20 36 35 35 33 3b 20 28 2a 20 6d 61 78 20 75 6e 73 69 67 6e   ┆onst limit = 6553; (* max unsign┆
0x088ec0…088ee0             65 64 20 69 6e 74 65 67 65 72 20 28 32 2a 2a 31 36 20 2d 20 31 29 20 64 69 76 20 31 30 20 2a 29   ┆ed integer (2**16 - 1) div 10 *)┆
0x088ee0…088f00             0a 6c 61 73 74 5f 6f 66 5f 6c 69 6d 69 74 20 3d 20 27 35 27 20 3b 20 28 2a 20 74 68 65 20 6c 61   ┆ last_of_limit = '5' ; (* the la┆
0x088f00…088f20             73 74 20 63 68 61 72 61 63 74 65 72 20 6f 66 20 6d 61 78 20 75 6e 73 69 67 6e 65 64 20 69 6e 74   ┆st character of max unsigned int┆
0x088f20…088f40             65 67 65 72 20 2a 29 0a 62 61 73 65 20 3d 20 31 30 3b 0a 0a 76 61 72 0a 6c 6f 63 61 6c 72 65 73   ┆eger *) base = 10;  var localres┆
0x088f40…088f60             75 6c 74 20 3a 20 69 6e 74 65 67 65 72 3b 0a 63 68 62 75 66 70 74 72 20 3a 20 63 68 62 75 66 5f   ┆ult : integer; chbufptr : chbuf_┆
0x088f60…088f80             69 78 3b 0a 63 75 72 72 65 6e 74 63 68 20 3a 20 63 68 61 72 3b 20 28 2a 20 68 6f 6c 64 73 20 74   ┆ix; currentch : char; (* holds t┆
0x088f80…088fa0             68 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 68 62 75 66 20 5b 20 63 68 62 75 66 70   ┆he character from chbuf [ chbufp┆
0x088fa0…088fc0             74 72 20 5d 20 2a 29 0a 0a 62 65 67 69 6e 0a 6c 6f 63 61 6c 72 65 73 75 6c 74 3a 3d 20 30 3b 0a   ┆tr ] *)  begin localresult:= 0; ┆
0x088fc0…088fe0             63 68 62 75 66 70 74 72 3a 3d 20 31 3b 0a 63 75 72 72 65 6e 74 63 68 3a 3d 20 63 68 62 75 66 20   ┆chbufptr:= 1; currentch:= chbuf ┆
0x088fe0…089000             5b 20 63 68 62 75 66 70 74 72 20 5d 20 3b 0a 0a 77 68 69 6c 65 20 28 63 75 72 72 65 6e 74 63 68   ┆[ chbufptr ] ;  while (currentch┆
0x089000…089020 (36, 1, 2)  20 3e 3d 20 27 30 27 29 20 61 6e 64 20 28 63 75 72 72 65 6e 74 63 68 20 3c 3d 20 27 39 27 29 20   ┆ >= '0') and (currentch <= '9') ┆
0x089020…089040             61 6e 64 20 28 63 68 62 75 66 70 74 72 20 3c 3d 20 6c 61 73 74 63 68 61 72 29 20 64 6f 0a 62 65   ┆and (chbufptr <= lastchar) do be┆
0x089040…089060             67 69 6e 0a 28 2a 24 52 2d 2a 29 0a 6c 6f 63 61 6c 72 65 73 75 6c 74 3a 3d 20 6c 6f 63 61 6c 72   ┆gin (*$R-*) localresult:= localr┆
0x089060…089080             65 73 75 6c 74 20 2a 20 62 61 73 65 20 2b 20 28 6f 72 64 28 63 75 72 72 65 6e 74 63 68 29 20 2d   ┆esult * base + (ord(currentch) -┆
0x089080…0890a0             20 6f 72 64 28 27 30 27 29 29 3b 0a 63 68 62 75 66 70 74 72 3a 3d 20 63 68 62 75 66 70 74 72 20   ┆ ord('0')); chbufptr:= chbufptr ┆
0x0890a0…0890c0             2b 20 31 3b 0a 63 75 72 72 65 6e 74 63 68 3a 3d 20 63 68 62 75 66 20 5b 20 63 68 62 75 66 70 74   ┆+ 1; currentch:= chbuf [ chbufpt┆
0x0890c0…0890e0             72 20 5d 20 3b 0a 65 6e 64 3b 20 28 2a 20 77 68 69 6c 65 20 2a 29 0a 0a 67 65 74 5f 63 6f 6e 73   ┆r ] ; end; (* while *)  get_cons┆
0x0890e0…089100             74 61 6e 74 5f 76 61 6c 75 65 3a 3d 20 6c 6f 63 61 6c 72 65 73 75 6c 74 3b 0a 0a 65 6e 64 3b 20   ┆tant_value:= localresult;  end; ┆
0x089100…089120             28 2a 20 67 65 74 20 63 6f 6e 73 74 61 6e 74 20 76 61 6c 75 65 20 2a 29 0a 0a 0c 0a 66 75 6e 63   ┆(* get constant value *)    func┆
0x089120…089140             74 69 6f 6e 20 67 65 74 6e 61 6d 65 6e 6f 64 65 20 3a 20 6e 61 6d 65 5f 70 74 72 3b 0a 0a 28 2a   ┆tion getnamenode : name_ptr;  (*┆
0x089140…089160             20 67 65 74 20 61 20 66 72 65 65 20 6e 61 6d 65 20 6e 6f 64 65 20 2a 29 0a 76 61 72 0a 6c 6f 63   ┆ get a free name node *) var loc┆
0x089160…089180             61 6c 6e 6f 64 65 20 3a 20 6e 61 6d 65 5f 70 74 72 3b 0a 0a 62 65 67 69 6e 0a 69 66 20 6e 61 6d   ┆alnode : name_ptr;  begin if nam┆
0x089180…0891a0             65 66 72 65 65 6c 69 73 74 20 3c 3e 20 6e 69 6c 5f 6e 61 6d 65 20 74 68 65 6e 0a 6c 6f 63 61 6c   ┆efreelist <> nil_name then local┆
0x0891a0…0891c0             6e 6f 64 65 3a 3d 20 6e 61 6d 65 66 72 65 65 6c 69 73 74 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 6e   ┆node:= namefreelist else begin n┆
0x0891c0…0891e0             65 77 28 6c 6f 63 61 6c 6e 6f 64 65 29 3b 0a 73 75 72 76 65 79 5f 6e 61 6d 65 5f 6e 6f 64 65 73   ┆ew(localnode); survey_name_nodes┆
0x0891e0…089200             3a 3d 20 73 75 72 76 65 79 5f 6e 61 6d 65 5f 6e 6f 64 65 73 2b 31 3b 0a 6c 6f 63 61 6c 6e 6f 64   ┆:= survey_name_nodes+1; localnod┆
0x089200…089220 (36, 1, 3)  65 5e 2e 6e 65 78 74 5f 6e 61 6d 65 3a 3d 20 6e 69 6c 5f 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 77   ┆e^.next_name:= nil_name; end;  w┆
0x089220…089240             69 74 68 20 6c 6f 63 61 6c 6e 6f 64 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 6e 61 6d 65 66 72 65   ┆ith localnode ^ do begin namefre┆
0x089240…089260             65 6c 69 73 74 3a 3d 20 6e 65 78 74 5f 6e 61 6d 65 3b 0a 6e 65 78 74 5f 6e 61 6d 65 3a 3d 20 6e   ┆elist:= next_name; next_name:= n┆
0x089260…089280             69 6c 5f 6e 61 6d 65 3b 0a 6e 61 6d 65 70 61 72 74 3a 3d 20 62 6c 61 6e 6b 3b 0a 64 65 66 5f 73   ┆il_name; namepart:= blank; def_s┆
0x089280…0892a0             65 67 6d 65 6e 74 3a 3d 20 6e 69 6c 6c 3b 20 28 2a 20 69 2e 65 2e 20 75 6e 64 65 66 69 6e 65 64   ┆egment:= nill; (* i.e. undefined┆
0x0892a0…0892c0             20 2a 29 0a 64 65 66 5f 6f 66 66 73 65 74 3a 3d 20 30 3b 0a 75 73 65 5f 63 68 61 69 6e 3a 3d 20   ┆ *) def_offset:= 0; use_chain:= ┆
0x0892c0…0892e0             75 6e 73 61 74 69 73 66 69 65 64 5f 6e 69 6c 3b 0a 6b 69 6e 64 3a 3d 20 75 6e 64 65 66 69 6e 65   ┆unsatisfied_nil; kind:= undefine┆
0x0892e0…089300             64 3b 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 2a 29 0a 0a 67 65 74 6e 61 6d 65 6e 6f 64 65 3a   ┆d; end; (* with *)  getnamenode:┆
0x089300…089320             3d 20 6c 6f 63 61 6c 6e 6f 64 65 3b 0a 0a 65 6e 64 20 3b 20 28 2a 20 67 65 74 20 6e 61 6d 65 20   ┆= localnode;  end ; (* get name ┆
0x089320…089340             6e 6f 64 65 20 2a 29 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 6e 61 6d 65 28 6e   ┆node *)   procedure returnname(n┆
0x089340…089360             61 6d 65 20 3a 20 6e 61 6d 65 5f 70 74 72 29 3b 0a 28 2a 20 69 6e 73 65 72 74 20 74 68 65 20 6e   ┆ame : name_ptr); (* insert the n┆
0x089360…089380             61 6d 65 20 69 6e 74 6f 20 74 68 65 20 6e 61 6d 65 20 66 72 65 65 20 6c 69 73 74 20 2a 29 0a 0a   ┆ame into the name free list *)  ┆
0x089380…0893a0             62 65 67 69 6e 0a 69 66 20 74 65 73 74 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 72 65 74 75   ┆begin if test then writeln('retu┆
0x0893a0…0893c0             72 6e 20 3d 27 2c 20 6e 61 6d 65 20 5e 20 2e 20 6e 61 6d 65 70 61 72 74 29 3b 0a 6e 61 6d 65 20   ┆rn =', name ^ . namepart); name ┆
0x0893c0…0893e0             5e 20 2e 20 6e 65 78 74 5f 6e 61 6d 65 3a 3d 20 6e 61 6d 65 66 72 65 65 6c 69 73 74 3b 0a 6e 61   ┆^ . next_name:= namefreelist; na┆
0x0893e0…089400             6d 65 66 72 65 65 6c 69 73 74 3a 3d 20 6e 61 6d 65 3b 0a 65 6e 64 3b 20 28 2a 20 72 65 74 75 72   ┆mefreelist:= name; end; (* retur┆
0x089400…089420 (36, 1, 4)  6e 20 6e 61 6d 65 20 2a 29 0a 0a 0c 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 5f 64 65 70 5f 63 68   ┆n name *)    function get_dep_ch┆
0x089420…089440             61 69 6e 5f 6e 6f 64 65 20 3a 20 64 65 70 5f 63 68 61 69 6e 5f 70 74 72 3b 0a 0a 28 2a 20 67 65   ┆ain_node : dep_chain_ptr;  (* ge┆
0x089440…089460             74 20 61 20 66 72 65 65 20 6e 6f 64 65 20 74 6f 20 64 65 73 63 72 69 62 65 20 74 68 65 20 69 6e   ┆t a free node to describe the in┆
0x089460…089480             74 65 72 64 65 70 65 6e 64 65 6e 63 65 0a 62 65 74 77 65 65 6e 20 74 77 6f 20 63 6f 6e 73 74 61   ┆terdependence between two consta┆
0x089480…0894a0             6e 74 73 2c 20 65 2e 67 2e 20 20 61 20 3d 20 62 20 2b 20 37 20 2a 29 0a 0a 76 61 72 0a 6c 6f 63   ┆nts, e.g.  a = b + 7 *)  var loc┆
0x0894a0…0894c0             61 6c 6e 6f 64 65 20 3a 20 64 65 70 5f 63 68 61 69 6e 5f 70 74 72 3b 0a 0a 62 65 67 69 6e 0a 69   ┆alnode : dep_chain_ptr;  begin i┆
0x0894c0…0894e0             66 20 66 72 65 65 5f 64 65 70 5f 6c 69 73 74 20 3d 20 64 65 70 5f 63 68 61 69 6e 5f 73 74 61 72   ┆f free_dep_list = dep_chain_star┆
0x0894e0…089500             74 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6e 65 77 28 6c 6f 63 61 6c 6e 6f 64 65 29 3b 0a 73 75 72   ┆t then begin new(localnode); sur┆
0x089500…089520             76 65 79 5f 64 65 70 65 6e 64 65 6e 63 65 5f 6e 6f 64 65 73 3a 3d 20 73 75 72 76 65 79 5f 64 65   ┆vey_dependence_nodes:= survey_de┆
0x089520…089540             70 65 6e 64 65 6e 63 65 5f 6e 6f 64 65 73 2b 31 3b 0a 6c 6f 63 61 6c 6e 6f 64 65 5e 2e 6e 65 78   ┆pendence_nodes+1; localnode^.nex┆
0x089540…089560             74 5f 64 65 70 3a 3d 20 64 65 70 5f 63 68 61 69 6e 5f 73 74 61 72 74 3b 0a 65 6e 64 0a 65 6c 73   ┆t_dep:= dep_chain_start; end els┆
0x089560…089580             65 0a 6c 6f 63 61 6c 6e 6f 64 65 3a 3d 20 66 72 65 65 5f 64 65 70 5f 6c 69 73 74 3b 0a 0a 66 72   ┆e localnode:= free_dep_list;  fr┆
0x089580…0895a0             65 65 5f 64 65 70 5f 6c 69 73 74 3a 3d 20 6c 6f 63 61 6c 6e 6f 64 65 20 5e 20 2e 20 6e 65 78 74   ┆ee_dep_list:= localnode ^ . next┆
0x0895a0…0895c0             5f 64 65 70 3b 0a 0a 6c 6f 63 61 6c 6e 6f 64 65 20 5e 2e 20 6e 65 78 74 5f 64 65 70 3a 3d 20 64   ┆_dep;  localnode ^. next_dep:= d┆
0x0895c0…0895e0             65 70 5f 63 68 61 69 6e 5f 73 74 61 72 74 20 5e 2e 20 6e 65 78 74 5f 64 65 70 3b 0a 64 65 70 5f   ┆ep_chain_start ^. next_dep; dep_┆
0x0895e0…089600             63 68 61 69 6e 5f 73 74 61 72 74 20 5e 2e 20 6e 65 78 74 5f 64 65 70 3a 3d 20 6c 6f 63 61 6c 6e   ┆chain_start ^. next_dep:= localn┆
0x089600…089620 (36, 1, 5)  6f 64 65 3b 0a 0a 67 65 74 5f 64 65 70 5f 63 68 61 69 6e 5f 6e 6f 64 65 3a 3d 20 6c 6f 63 61 6c   ┆ode;  get_dep_chain_node:= local┆
0x089620…089640             6e 6f 64 65 3b 0a 0a 65 6e 64 3b 20 28 2a 20 67 65 74 20 64 65 70 20 63 68 61 69 6e 20 6e 6f 64   ┆node;  end; (* get dep chain nod┆
0x089640…089660             65 20 2a 29 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 5f 64 65 70 65 6e 64 65 6e   ┆e *)   procedure return_dependen┆
0x089660…089680             63 65 5f 6e 6f 64 65 28 20 66 6f 72 6d 65 72 2c 20 61 63 74 75 61 6c 20 3a 20 64 65 70 5f 63 68   ┆ce_node( former, actual : dep_ch┆
0x089680…0896a0             61 69 6e 5f 70 74 72 29 3b 0a 0a 28 2a 20 6c 65 74 20 66 6f 72 6d 65 72 2e 6e 65 78 74 3a 3d 20   ┆ain_ptr);  (* let former.next:= ┆
0x0896a0…0896c0             61 63 74 75 61 6c 2e 6e 65 78 74 20 61 6e 64 20 69 6e 73 65 72 74 20 61 63 74 75 61 6c 20 69 6e   ┆actual.next and insert actual in┆
0x0896c0…0896e0             74 6f 20 74 68 65 20 66 72 65 65 20 6c 69 73 74 20 2a 29 0a 0a 62 65 67 69 6e 0a 77 69 74 68 20   ┆to the free list *)  begin with ┆
0x0896e0…089700             61 63 74 75 61 6c 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 20 66 6f 72 6d 65 72 20 5e 20 2e 20 6e 65   ┆actual ^ do begin  former ^ . ne┆
0x089700…089720             78 74 5f 64 65 70 3a 3d 20 6e 65 78 74 5f 64 65 70 3b 0a 6e 65 78 74 5f 64 65 70 3a 3d 20 66 72   ┆xt_dep:= next_dep; next_dep:= fr┆
0x089720…089740             65 65 5f 64 65 70 5f 6c 69 73 74 3b 0a 65 6e 64 3b 0a 66 72 65 65 5f 64 65 70 5f 6c 69 73 74 3a   ┆ee_dep_list; end; free_dep_list:┆
0x089740…089760             3d 20 61 63 74 75 61 6c 3b 0a 0a 65 6e 64 3b 20 28 2a 20 72 65 74 75 72 6e 20 64 65 70 65 6e 64   ┆= actual;  end; (* return depend┆
0x089760…089780             65 6e 63 65 20 6e 6f 64 65 20 2a 29 0a 0c 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 69 74 63 6f 64   ┆ence node *)   procedure initcod┆
0x089780…0897a0             65 73 28 63 6f 64 65 6e 61 6d 65 20 3a 20 6e 61 6d 65 73 74 72 69 6e 67 3b 20 63 6f 64 65 76 61   ┆es(codename : namestring; codeva┆
0x0897a0…0897c0             6c 75 65 20 3a 20 63 6f 64 65 72 61 6e 67 65 3b 0a 74 72 61 69 6c 65 72 62 79 74 65 31 2c 20 74   ┆lue : coderange; trailerbyte1, t┆
0x0897c0…0897e0             72 61 69 6c 65 72 62 79 74 65 32 20 3a 20 69 6e 74 65 67 65 72 3b 20 61 64 64 72 5f 6b 69 6e 64   ┆railerbyte2 : integer; addr_kind┆
0x0897e0…089800             20 3a 20 6f 70 63 6f 64 65 5f 6b 69 6e 64 73 3b 0a 65 78 65 63 75 74 69 6f 6e 5f 74 69 6d 65 20   ┆ : opcode_kinds; execution_time ┆
0x089800…089820 (36, 1, 6)  3a 20 69 6e 74 65 67 65 72 20 29 3b 0a 0a 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20   ┆: integer );  (* initialize the ┆
0x089820…089840             6f 70 5f 63 6f 64 65 20 73 74 72 75 63 74 75 72 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74   ┆op_code structure according to t┆
0x089840…089860             68 65 20 70 61 72 61 6d 65 74 65 72 73 0a 6f 66 20 74 68 65 20 63 61 6c 6c 20 2a 29 0a 28 2a 20   ┆he parameters of the call *) (* ┆
0x089860…089880             6e 62 3a 20 6c 61 73 74 63 6f 64 65 20 77 69 6c 6c 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 74 61   ┆nb: lastcode will contain the ta┆
0x089880…0898a0             62 6c 65 20 69 6e 64 65 78 20 75 73 65 64 20 2a 29 0a 74 79 70 65 0a 75 73 65 64 5f 6e 61 6d 65   ┆ble index used *) type used_name┆
0x0898a0…0898c0             20 3d 20 70 61 63 6b 65 64 20 61 72 72 61 79 5b 31 2e 2e 34 5d 20 6f 66 20 63 68 61 72 3b 0a 76   ┆ = packed array[1..4] of char; v┆
0x0898c0…0898e0             61 72 0a 69 3a 20 69 6e 74 65 67 65 72 3b 0a 75 73 5f 6e 61 6d 65 3a 20 75 73 65 64 5f 6e 61 6d   ┆ar i: integer; us_name: used_nam┆
0x0898e0…089900             65 3b 0a 68 61 73 68 5f 6e 61 6d 65 20 3a 20 70 61 63 6b 65 64 20 72 65 63 6f 72 64 0a 63 61 73   ┆e; hash_name : packed record cas┆
0x089900…089920             65 20 62 6f 6f 6c 65 61 6e 20 6f 66 0a 74 72 75 65 3a 20 28 20 6e 61 6d 65 20 3a 20 75 73 65 64   ┆e boolean of true: ( name : used┆
0x089920…089940             5f 6e 61 6d 65 3b 20 29 3b 0a 66 61 6c 73 65 3a 28 20 69 6e 74 31 2c 20 69 6e 74 32 20 3a 20 69   ┆_name; ); false:( int1, int2 : i┆
0x089940…089960             6e 74 65 67 65 72 3b 20 29 0a 65 6e 64 3b 0a 0a 62 65 67 69 6e 0a 66 6f 72 20 69 20 3a 3d 20 31   ┆nteger; ) end;  begin for i := 1┆
0x089960…089980             20 74 6f 20 34 20 64 6f 20 75 73 5f 6e 61 6d 65 5b 69 5d 20 3a 3d 20 63 6f 64 65 6e 61 6d 65 5b   ┆ to 4 do us_name[i] := codename[┆
0x089980…0899a0             69 5d 3b 0a 77 69 74 68 20 68 61 73 68 5f 6e 61 6d 65 20 64 6f 0a 62 65 67 69 6e 0a 6e 61 6d 65   ┆i]; with hash_name do begin name┆
0x0899a0…0899c0             3a 3d 20 75 73 5f 6e 61 6d 65 3b 0a 28 2a 20 74 68 65 20 68 61 73 68 20 66 75 6e 63 74 69 6f 6e   ┆:= us_name; (* the hash function┆
0x0899c0…0899e0             20 6d 75 73 74 20 62 65 20 74 68 65 20 73 61 6d 65 20 61 73 20 69 6e 20 27 66 75 6e 63 74 69 6f   ┆ must be the same as in 'functio┆
0x0899e0…089a00             6e 20 66 69 6e 64 5f 63 6f 64 65 27 20 2a 29 0a 6c 61 73 74 63 6f 64 65 3a 3d 20 61 62 73 20 28   ┆n find_code' *) lastcode:= abs (┆
0x089a00…089a20 (36, 1, 7)  20 69 6e 74 31 20 64 69 76 20 68 61 73 68 31 20 2b 20 69 6e 74 32 20 64 69 76 20 68 61 73 68 32   ┆ int1 div hash1 + int2 div hash2┆
0x089a20…089a40             20 29 20 6d 6f 64 20 68 61 73 68 33 3b 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 2a 29 0a 0a 77   ┆ ) mod hash3; end; (* with *)  w┆
0x089a40…089a60             68 69 6c 65 20 6f 70 63 6f 64 65 73 20 5b 20 6c 61 73 74 63 6f 64 65 20 5d 20 2e 20 6e 61 6d 65   ┆hile opcodes [ lastcode ] . name┆
0x089a60…089a80             70 61 72 74 20 3c 3e 20 62 6c 61 6e 6b 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 68 61 73 68 5f 66   ┆part <> blank do begin if hash_f┆
0x089a80…089aa0             75 6e 63 74 69 6f 6e 5f 74 65 73 74 20 74 68 65 6e 0a 77 72 69 74 65 6c 6e 28 20 63 6f 64 65 6e   ┆unction_test then writeln( coden┆
0x089aa0…089ac0             61 6d 65 2c 20 27 20 27 2c 20 6c 61 73 74 63 6f 64 65 2c 20 27 20 27 2c 20 6f 70 63 6f 64 65 73   ┆ame, ' ', lastcode, ' ', opcodes┆
0x089ac0…089ae0             20 5b 20 6c 61 73 74 63 6f 64 65 20 5d 2e 6e 61 6d 65 70 61 72 74 29 3b 0a 6c 61 73 74 63 6f 64   ┆ [ lastcode ].namepart); lastcod┆
0x089ae0…089b00             65 3a 3d 20 28 6c 61 73 74 63 6f 64 65 20 2b 20 31 29 20 6d 6f 64 20 68 61 73 68 33 3b 0a 65 6e   ┆e:= (lastcode + 1) mod hash3; en┆
0x089b00…089b20             64 3b 0a 0a 0a 77 69 74 68 20 6f 70 63 6f 64 65 73 20 5b 20 6c 61 73 74 63 6f 64 65 20 5d 20 64   ┆d;   with opcodes [ lastcode ] d┆
0x089b20…089b40             6f 0a 62 65 67 69 6e 0a 6e 61 6d 65 70 61 72 74 20 3a 3d 20 63 6f 64 65 6e 61 6d 65 3b 0a 6f 70   ┆o begin namepart := codename; op┆
0x089b40…089b60             63 6f 64 65 76 61 6c 3a 3d 20 63 6f 64 65 76 61 6c 75 65 3b 0a 74 72 61 69 6c 65 72 73 20 5b 20   ┆codeval:= codevalue; trailers [ ┆
0x089b60…089b80             31 20 5d 3a 3d 20 74 72 61 69 6c 65 72 62 79 74 65 31 3b 0a 74 72 61 69 6c 65 72 73 20 5b 20 32   ┆1 ]:= trailerbyte1; trailers [ 2┆
0x089b80…089ba0             20 5d 3a 3d 20 74 72 61 69 6c 65 72 62 79 74 65 32 3b 0a 74 6f 74 61 6c 5f 6c 65 6e 67 74 68 3a   ┆ ]:= trailerbyte2; total_length:┆
0x089ba0…089bc0             3d 20 31 20 28 2a 20 6f 70 63 6f 64 65 5f 6c 65 6e 67 74 68 20 2a 29 20 2b 20 74 72 61 69 6c 65   ┆= 1 (* opcode_length *) + traile┆
0x089bc0…089be0             72 62 79 74 65 31 20 2b 20 74 72 61 69 6c 65 72 62 79 74 65 32 3b 0a 6f 70 63 6f 64 65 5f 6b 69   ┆rbyte1 + trailerbyte2; opcode_ki┆
0x089be0…089c00             6e 64 3a 3d 20 61 64 64 72 5f 6b 69 6e 64 3b 0a 65 78 63 5f 74 69 6d 65 3a 3d 20 65 78 65 63 75   ┆nd:= addr_kind; exc_time:= execu┆
0x089c00…089c20 (36, 1, 8)  74 69 6f 6e 5f 74 69 6d 65 3b 0a 75 73 65 5f 63 6f 75 6e 74 3a 3d 20 30 3b 0a 0a 65 6e 64 3b 20   ┆tion_time; use_count:= 0;  end; ┆
0x089c20…089c40             28 2a 20 77 69 74 68 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 69 6e 69 74 20 63 6f 64 65 73 20 2a   ┆(* with *)  end; (* init codes *┆
0x089c40…089c60             29 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 3b 0a 76   ┆)    procedure initialization; v┆
0x089c60…089c80             61 72 0a 69 6e 74 20 3a 20 69 6e 74 65 67 65 72 3b 0a 63 68 20 3a 20 63 68 61 72 3b 0a 63 75 72   ┆ar int : integer; ch : char; cur┆
0x089c80…089ca0             72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 20 3a 20 69 6e 74 65 67 65 72 3b 0a 0a 70 72 6f 63 65 64   ┆rent_interval : integer;  proced┆
0x089ca0…089cc0             75 72 65 20 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 74 72 61 69 6c 65 72 2c 20 6c 6f 77 2c   ┆ure init_interval( trailer, low,┆
0x089cc0…089ce0             20 68 69 67 68 20 3a 20 69 6e 74 65 67 65 72 3b 20 6c 61 73 74 5f 6f 66 5f 63 68 61 69 6e 20 3a   ┆ high : integer; last_of_chain :┆
0x089ce0…089d00             20 62 6f 6f 6c 65 61 6e 20 29 3b 0a 0a 62 65 67 69 6e 0a 77 69 74 68 20 69 6e 74 65 72 76 61 6c   ┆ boolean );  begin with interval┆
0x089d00…089d20             73 20 5b 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 20 5d 20 64 6f 0a 62 65 67 69 6e 0a   ┆s [ current_interval ] do begin ┆
0x089d20…089d40             61 69 73 5f 63 6f 64 65 5f 76 61 6c 3a 3d 20 6c 61 73 74 63 6f 64 65 3b 20 28 2a 20 74 68 69 73   ┆ais_code_val:= lastcode; (* this┆
0x089d40…089d60             20 70 72 6f 63 65 64 75 72 65 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 6a 75 73 74 20 61   ┆ procedure must be called just a┆
0x089d60…089d80             66 74 65 72 0a 69 6e 73 65 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 61 69 73 5f 63 6f 64 65 20 2a   ┆fter insertion of the ais_code *┆
0x089d80…089da0             29 0a 69 6e 74 65 72 76 61 6c 5f 6c 6f 77 3a 3d 20 6c 6f 77 3b 0a 69 6e 74 65 72 76 61 6c 5f 68   ┆) interval_low:= low; interval_h┆
0x089da0…089dc0             69 67 68 3a 3d 20 68 69 67 68 3b 0a 74 72 61 69 6c 65 72 5f 6e 72 3a 3d 20 74 72 61 69 6c 65 72   ┆igh:= high; trailer_nr:= trailer┆
0x089dc0…089de0             3b 0a 69 66 20 6c 61 73 74 5f 6f 66 5f 63 68 61 69 6e 20 74 68 65 6e 0a 6e 65 78 74 5f 69 6e 74   ┆; if last_of_chain then next_int┆
0x089de0…089e00             65 72 76 61 6c 3a 3d 20 30 0a 65 6c 73 65 0a 6e 65 78 74 5f 69 6e 74 65 72 76 61 6c 3a 3d 20 63   ┆erval:= 0 else next_interval:= c┆
0x089e00…089e20 (36, 1, 9)  75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 20 2b 20 31 3b 0a 65 6e 64 3b 20 28 2a 20 77 69 74   ┆urrent_interval + 1; end; (* wit┆
0x089e20…089e40             68 20 2e 2e 20 2a 29 0a 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3a 3d 20 63 75 72 72 65   ┆h .. *) current_interval:= curre┆
0x089e40…089e60             6e 74 5f 69 6e 74 65 72 76 61 6c 20 2b 20 31 3b 0a 0a 65 6e 64 3b 20 28 2a 20 69 6e 69 74 20 69   ┆nt_interval + 1;  end; (* init i┆
0x089e60…089e80             6e 74 65 72 76 61 6c 20 2a 29 0a 0a 70 72 6f 63 65 64 75 72 65 20 63 6f 64 65 5f 6e 6f 64 65 5f   ┆nterval *)  procedure code_node_┆
0x089e80…089ea0             69 6e 69 74 3b 0a 28 2a 20 73 70 6c 69 74 20 74 68 65 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f   ┆init; (* split the initializatio┆
0x089ea0…089ec0             6e 20 63 6f 64 65 2c 20 74 68 69 73 20 69 73 20 64 6f 6e 65 0a 62 65 63 61 75 73 65 20 6f 66 20   ┆n code, this is done because of ┆
0x089ec0…089ee0             61 20 70 61 73 63 61 6c 2d 70 61 73 73 32 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 6d 61 78 20 70   ┆a pascal-pass2 constraint, max p┆
0x089ee0…089f00             72 6f 64 75 63 65 64 0a 63 6f 64 65 20 70 65 72 20 72 6f 75 74 69 6e 65 20 63 61 6e 20 6e 6f 74   ┆roduced code per routine can not┆
0x089f00…089f20             20 65 78 63 65 65 64 20 36 30 30 30 20 77 6f 72 64 73 20 21 21 21 20 2a 29 0a 62 65 67 69 6e 0a   ┆ exceed 6000 words !!! *) begin ┆
0x089f20…089f40             69 6e 69 74 63 6f 64 65 73 28 27 61 62 73 20 20 20 27 2c 24 30 35 31 2c 30 2c 30 2c 61 64 64 72   ┆initcodes('abs   ',$051,0,0,addr┆
0x089f40…089f60             5f 6e 65 75 74 72 61 6c 2c 20 31 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 61 64 64 20 20 20   ┆_neutral, 15); initcodes('add   ┆
0x089f60…089f80             27 2c 24 30 34 34 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 31 29 3b 0a 69 6e   ┆',$044,0,0,addr_neutral, 11); in┆
0x089f80…089fa0             69 74 63 6f 64 65 73 28 27 61 6e 64 20 20 20 27 2c 24 30 34 63 2c 30 2c 30 2c 61 64 64 72 5f 6e   ┆itcodes('and   ',$04c,0,0,addr_n┆
0x089fa0…089fc0             65 75 74 72 61 6c 2c 20 31 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 65 78 63 68 20 27 2c   ┆eutral, 11); initcodes('cexch ',┆
0x089fc0…089fe0             24 30 66 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 30 32 29 3b 0a 69 6e 69 74   ┆$0fe,0,0,addr_neutral,102); init┆
0x089fe0…08a000             63 6f 64 65 73 28 27 63 67 72 65 67 20 27 2c 24 30 31 66 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75   ┆codes('cgreg ',$01f,0,0,addr_neu┆
0x08a000…08a020 (36, 1, 10) 74 72 61 6c 2c 20 20 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 69 6e 77 71 20 27 2c 24 30   ┆tral,  8); initcodes('cinwq ',$0┆
0x08a020…08a040             31 33 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 30 29 3b 0a 69 6e 69 74 63 6f   ┆13,0,0,addr_neutral, 20); initco┆
0x08a040…08a060             64 65 73 28 27 63 6f 6d 70 6c 20 27 2c 24 30 35 32 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆des('compl ',$052,0,0,addr_neutr┆
0x08a060…08a080             61 6c 2c 20 31 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 6f 75 74 77 71 27 2c 24 30 31 34   ┆al, 11); initcodes('coutwq',$014┆
0x08a080…08a0a0             2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a 69 6e 69 74 63 6f 64 65   ┆,0,0,addr_neutral, 30); initcode┆
0x08a0a0…08a0c0             73 28 27 63 72 63 31 36 20 27 2c 24 30 34 66 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c   ┆s('crc16 ',$04f,0,0,addr_neutral┆
0x08a0c0…08a0e0             2c 20 36 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 72 65 6c 65 20 27 2c 24 30 31 31 2c 31   ┆, 65); initcodes('crele ',$011,1┆
0x08a0e0…08a100             2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 34 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28   ┆,0,addr_neutral,141); initcodes(┆
0x08a100…08a120             27 63 72 67 65 74 20 27 2c 24 30 39 31 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20   ┆'crget ',$091,0,0,addr_neutral, ┆
0x08a120…08a140             31 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 72 70 75 74 20 27 2c 24 30 62 31 2c 30 2c 30   ┆15); initcodes('crput ',$0b1,0,0┆
0x08a140…08a160             2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63   ┆,addr_neutral, 15); initcodes('c┆
0x08a160…08a180             72 72 61 6d 20 27 2c 24 30 64 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 30   ┆rram ',$0de,0,0,addr_neutral, 20┆
0x08a180…08a1a0             29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 73 65 6c 6c 20 27 2c 24 30 31 61 2c 30 2c 30 2c 61   ┆); initcodes('csell ',$01a,0,0,a┆
0x08a1a0…08a1c0             64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 36 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 73 65   ┆ddr_neutral, 61); initcodes('cse┆
0x08a1c0…08a1e0             6e 73 20 27 2c 24 30 31 35 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 30 31 29 3b   ┆ns ',$015,0,0,addr_neutral,101);┆
0x08a1e0…08a200             0a 69 6e 69 74 63 6f 64 65 73 28 27 63 73 69 67 6e 20 27 2c 24 30 31 30 2c 30 2c 30 2c 61 64 64   ┆ initcodes('csign ',$010,0,0,add┆
0x08a200…08a220 (36, 1, 11) 72 5f 6e 65 75 74 72 61 6c 2c 31 30 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 73 6c 65 76   ┆r_neutral,108); initcodes('cslev┆
0x08a220…08a240             20 27 2c 24 30 31 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 35 29 3b 0a 69   ┆ ',$01e,0,0,addr_neutral, 15); i┆
0x08a240…08a260             6e 69 74 63 6f 64 65 73 28 27 63 73 74 61 72 74 27 2c 24 30 31 63 2c 30 2c 30 2c 61 64 64 72 5f   ┆nitcodes('cstart',$01c,0,0,addr_┆
0x08a260…08a280             6e 65 75 74 72 61 6c 2c 20 33 32 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 73 74 6f 70 20 27   ┆neutral, 32); initcodes('cstop '┆
0x08a280…08a2a0             2c 24 30 31 62 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 32 36 29 3b 0a 69 6e 69   ┆,$01b,0,0,addr_neutral,126); ini┆
0x08a2a0…08a2c0             74 63 6f 64 65 73 28 27 63 77 61 69 74 20 27 2c 24 30 34 30 2c 30 2c 30 2c 61 64 64 72 5f 6e 65   ┆tcodes('cwait ',$040,0,0,addr_ne┆
0x08a2c0…08a2e0             75 74 72 61 6c 2c 31 33 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 63 77 72 61 6d 20 27 2c 24   ┆utral,130); initcodes('cwram ',$┆
0x08a2e0…08a300             30 64 66 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 37 29 3b 0a 69 6e 69 74 63   ┆0df,0,0,addr_neutral, 57); initc┆
0x08a300…08a320             6f 64 65 73 28 27 64 69 76 20 20 20 27 2c 24 30 34 61 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74   ┆odes('div   ',$04a,0,0,addr_neut┆
0x08a320…08a340             72 61 6c 2c 31 34 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 65 71 20 20 20 20 27 2c 24 30 33   ┆ral,145); initcodes('eq    ',$03┆
0x08a340…08a360             32 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 35 29 3b 0a 69 6e 69 74 63 6f 64   ┆2,0,0,addr_neutral, 15); initcod┆
0x08a360…08a380             65 73 28 27 65 73 63 61 70 65 27 2c 24 30 31 32 2c 31 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61   ┆es('escape',$012,1,0,addr_neutra┆
0x08a380…08a3a0             6c 2c 31 30 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 67 65 20 20 20 20 27 2c 24 30 33 37 2c   ┆l,100); initcodes('ge    ',$037,┆
0x08a3a0…08a3c0             30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73   ┆0,0,addr_neutral, 15); initcodes┆
0x08a3c0…08a3e0             28 27 67 74 20 20 20 20 27 2c 24 30 33 35 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆('gt    ',$035,0,0,addr_neutral,┆
0x08a3e0…08a400             20 31 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6e 64 65 78 20 27 2c 24 30 36 64 2c 30 2c   ┆ 15); initcodes('index ',$06d,0,┆
0x08a400…08a420 (36, 1, 12) 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 37 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆0,addr_neutral, 71); initcodes('┆
0x08a420…08a440             69 6e 64 68 30 20 27 2c 24 30 33 38 2c 32 2c 32 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34   ┆indh0 ',$038,2,2,addr_neutral, 4┆
0x08a440…08a460             38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6e 64 68 30 31 27 2c 24 30 38 64 2c 32 2c 30 2c   ┆8); initcodes('indh01',$08d,2,0,┆
0x08a460…08a480             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6e   ┆addr_neutral, 16); initcodes('in┆
0x08a480…08a4a0             64 68 30 32 27 2c 24 30 61 64 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 36 29   ┆dh02',$0ad,2,0,addr_neutral, 16)┆
0x08a4a0…08a4c0             3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6e 64 68 31 20 27 2c 24 30 33 39 2c 32 2c 32 2c 61 64   ┆; initcodes('indh1 ',$039,2,2,ad┆
0x08a4c0…08a4e0             64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6e 64 68   ┆dr_neutral, 50); initcodes('indh┆
0x08a4e0…08a500             31 31 27 2c 24 30 63 64 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 38 29 3b 0a   ┆11',$0cd,2,0,addr_neutral, 18); ┆
0x08a500…08a520             69 6e 69 74 63 6f 64 65 73 28 27 69 6e 64 68 31 32 27 2c 24 30 65 64 2c 32 2c 30 2c 61 64 64 72   ┆initcodes('indh12',$0ed,2,0,addr┆
0x08a520…08a540             5f 6e 65 75 74 72 61 6c 2c 20 31 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6e 70 64 76 20   ┆_neutral, 18); initcodes('inpdv ┆
0x08a540…08a560             27 2c 24 30 36 66 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 35 30 29 3b 0a 69 6e   ┆',$06f,0,0,addr_neutral,150); in┆
0x08a560…08a580             69 74 63 6f 64 65 73 28 27 69 6e 74 68 30 20 27 2c 24 30 63 31 2c 32 2c 30 2c 61 64 64 72 5f 6e   ┆itcodes('inth0 ',$0c1,2,0,addr_n┆
0x08a580…08a5a0             65 75 74 72 61 6c 2c 20 31 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6e 74 70 61 20 27 2c   ┆eutral, 16); initcodes('intpa ',┆
0x08a5a0…08a5c0             24 30 36 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 32 29 3b 0a 69 6e 69 74   ┆$06e,0,0,addr_neutral, 42); init┆
0x08a5c0…08a5e0             63 6f 64 65 73 28 27 69 6e 74 72 73 20 27 2c 24 30 36 63 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75   ┆codes('intrs ',$06c,0,0,addr_neu┆
0x08a5e0…08a600             74 72 61 6c 2c 20 33 39 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 63 63 69 20 27 2c 24 30   ┆tral, 39); initcodes('iocci ',$0┆
0x08a600…08a620 (36, 1, 13) 31 64 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 30 29 3b 0a 69 6e 69 74 63 6f   ┆1d,0,0,addr_neutral, 20); initco┆
0x08a620…08a640             64 65 73 28 27 69 6f 63 64 61 20 27 2c 24 30 32 61 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆des('iocda ',$02a,0,0,addr_neutr┆
0x08a640…08a660             61 6c 2c 20 34 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 67 69 20 20 27 2c 24 30 32 36   ┆al, 45); initcodes('iogi  ',$026┆
0x08a660…08a680             2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 34 35 29 3b 0a 69 6e 69 74 63 6f 64 65   ┆,0,0,addr_neutral,145); initcode┆
0x08a680…08a6a0             73 28 27 69 6f 67 6f 20 20 27 2c 24 30 32 35 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c   ┆s('iogo  ',$025,0,0,addr_neutral┆
0x08a6a0…08a6c0             2c 20 33 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 69 62 78 20 27 2c 24 30 32 62 2c 30   ┆, 30); initcodes('ioibx ',$02b,0┆
0x08a6c0…08a6e0             2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 38 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28   ┆,0,addr_neutral, 86); initcodes(┆
0x08a6e0…08a700             27 69 6f 6e 63 69 20 27 2c 24 30 32 37 2c 30 2c 30 2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c   ┆'ionci ',$027,0,0,first_of_pair,┆
0x08a700…08a720             20 31 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 72 62 62 20 27 2c 24 30 37 31 2c 30 2c   ┆ 17); initcodes('iorbb ',$071,0,┆
0x08a720…08a740             30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 36 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆0,addr_neutral,160); initcodes('┆
0x08a740…08a760             69 6f 72 62 62 63 27 2c 24 30 37 30 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 36   ┆iorbbc',$070,0,0,addr_neutral,16┆
0x08a760…08a780             30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 72 62 77 20 27 2c 24 30 37 35 2c 30 2c 30 2c   ┆0); initcodes('iorbw ',$075,0,0,┆
0x08a780…08a7a0             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 36 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f   ┆addr_neutral,165); initcodes('io┆
0x08a7a0…08a7c0             72 62 77 63 27 2c 24 30 37 34 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 36 35 29   ┆rbwc',$074,0,0,addr_neutral,165)┆
0x08a7c0…08a7e0             3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 72 73 20 20 27 2c 24 30 32 32 2c 30 2c 30 2c 61 64   ┆; initcodes('iors  ',$022,0,0,ad┆
0x08a7e0…08a800             64 72 5f 6e 65 75 74 72 61 6c 2c 31 33 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 72 73   ┆dr_neutral,138); initcodes('iors┆
0x08a800…08a820 (36, 1, 14) 63 20 27 2c 24 30 32 64 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 36 34 29 3b 0a   ┆c ',$02d,0,0,addr_neutral,164); ┆
0x08a820…08a840             69 6e 69 74 63 6f 64 65 73 28 27 69 6f 72 77 20 20 27 2c 24 30 32 33 2c 30 2c 30 2c 61 64 64 72   ┆initcodes('iorw  ',$023,0,0,addr┆
0x08a840…08a860             5f 6e 65 75 74 72 61 6c 2c 31 34 34 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 77 62 62 20   ┆_neutral,144); initcodes('iowbb ┆
0x08a860…08a880             27 2c 24 30 37 33 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 37 29 3b 0a 69 6e   ┆',$073,0,0,addr_neutral, 57); in┆
0x08a880…08a8a0             69 74 63 6f 64 65 73 28 27 69 6f 77 62 62 63 27 2c 24 30 37 32 2c 30 2c 30 2c 61 64 64 72 5f 6e   ┆itcodes('iowbbc',$072,0,0,addr_n┆
0x08a8a0…08a8c0             65 75 74 72 61 6c 2c 20 35 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 77 62 77 20 27 2c   ┆eutral, 57); initcodes('iowbw ',┆
0x08a8c0…08a8e0             24 30 37 37 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 36 33 29 3b 0a 69 6e 69 74   ┆$077,0,0,addr_neutral, 63); init┆
0x08a8e0…08a900             63 6f 64 65 73 28 27 69 6f 77 62 77 63 27 2c 24 30 37 36 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75   ┆codes('iowbwc',$076,0,0,addr_neu┆
0x08a900…08a920             74 72 61 6c 2c 20 36 33 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 69 6f 77 63 20 20 27 2c 24 30   ┆tral, 63); initcodes('iowc  ',$0┆
0x08a920…08a940             32 31 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 39 29 3b 0a 69 6e 69 74 63 6f   ┆21,0,0,addr_neutral, 29); initco┆
0x08a940…08a960             64 65 73 28 27 69 6f 77 77 20 20 27 2c 24 30 32 34 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆des('ioww  ',$024,0,0,addr_neutr┆
0x08a960…08a980             61 6c 2c 20 33 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6a 6d 63 68 74 20 27 2c 24 30 36 62   ┆al, 30); initcodes('jmcht ',$06b┆
0x08a980…08a9a0             2c 33 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 30 30 29 3b 0a 69 6e 69 74 63 6f 64 65   ┆,3,0,addr_neutral,100); initcode┆
0x08a9a0…08a9c0             73 28 27 6a 6d 70 67 61 20 27 2c 24 30 36 61 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c   ┆s('jmpga ',$06a,2,0,addr_neutral┆
0x08a9c0…08a9e0             2c 20 36 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6a 6d 70 68 63 20 27 2c 24 30 36 39 2c 33   ┆, 61); initcodes('jmphc ',$069,3┆
0x08a9e0…08aa00             2c 30 2c 6a 75 6d 70 5f 6c 6f 6e 67 2c 20 34 32 29 3b 0a 6c 6f 6e 67 6a 75 6d 70 20 3a 3d 20 6c   ┆,0,jump_long, 42); longjump := l┆
0x08aa00…08aa20 (36, 1, 15) 61 73 74 63 6f 64 65 3b 20 28 2a 72 65 6d 65 6d 62 65 72 20 74 68 65 20 69 6e 64 65 78 20 6f 66   ┆astcode; (*remember the index of┆
0x08aa20…08aa40             20 6c 6f 6e 67 6a 75 6d 70 2a 29 0a 69 6e 69 74 63 6f 64 65 73 28 27 6a 6d 70 72 77 20 27 2c 24   ┆ longjump*) initcodes('jmprw ',$┆
0x08aa40…08aa60             30 36 38 2c 32 2c 30 2c 6a 75 6d 70 5f 73 68 6f 72 74 2c 20 33 34 29 3b 0a 69 6e 69 74 63 6f 64   ┆068,2,0,jump_short, 34); initcod┆
0x08aa60…08aa80             65 73 28 27 6a 6d 7a 65 71 20 27 2c 24 30 36 32 2c 32 2c 30 2c 6a 75 6d 70 5f 73 68 6f 72 74 2c   ┆es('jmzeq ',$062,2,0,jump_short,┆
0x08aa80…08aaa0             20 32 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6a 6d 7a 67 65 20 27 2c 24 30 36 37 2c 32 2c   ┆ 26); initcodes('jmzge ',$067,2,┆
0x08aaa0…08aac0             30 2c 6a 75 6d 70 5f 73 68 6f 72 74 2c 20 32 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6a 6d   ┆0,jump_short, 26); initcodes('jm┆
0x08aac0…08aae0             7a 67 74 20 27 2c 24 30 36 35 2c 32 2c 30 2c 6a 75 6d 70 5f 73 68 6f 72 74 2c 20 32 36 29 3b 0a   ┆zgt ',$065,2,0,jump_short, 26); ┆
0x08aae0…08ab00             69 6e 69 74 63 6f 64 65 73 28 27 6a 6d 7a 6c 65 20 27 2c 24 30 36 36 2c 32 2c 30 2c 6a 75 6d 70   ┆initcodes('jmzle ',$066,2,0,jump┆
0x08ab00…08ab20             5f 73 68 6f 72 74 2c 20 32 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6a 6d 7a 6c 74 20 27 2c   ┆_short, 26); initcodes('jmzlt ',┆
0x08ab20…08ab40             24 30 36 34 2c 32 2c 30 2c 6a 75 6d 70 5f 73 68 6f 72 74 2c 20 32 36 29 3b 0a 69 6e 69 74 63 6f   ┆$064,2,0,jump_short, 26); initco┆
0x08ab40…08ab60             64 65 73 28 27 6a 6d 7a 6e 65 20 27 2c 24 30 36 33 2c 32 2c 30 2c 6a 75 6d 70 5f 73 68 6f 72 74   ┆des('jmzne ',$063,2,0,jump_short┆
0x08ab60…08ab80             2c 20 32 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6c 65 20 20 20 20 27 2c 24 30 33 36 2c 30   ┆, 26); initcodes('le    ',$036,0┆
0x08ab80…08aba0             2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28   ┆,0,addr_neutral, 16); initcodes(┆
0x08aba0…08abc0             27 6c 6c 6f 63 6b 20 27 2c 24 30 37 66 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31   ┆'llock ',$07f,2,0,addr_neutral,1┆
0x08abc0…08abe0             31 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6c 70 6f 70 20 20 27 2c 24 30 37 64 2c 30 2c 30   ┆18); initcodes('lpop  ',$07d,0,0┆
0x08abe0…08ac00             2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 33 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6c   ┆,addr_neutral,136); initcodes('l┆
0x08ac00…08ac20 (37, 0, 1)  70 75 73 68 20 27 2c 24 30 37 63 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 33 35   ┆push ',$07c,0,0,addr_neutral,135┆
0x08ac20…08ac40             29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6c 72 65 6c 65 20 27 2c 24 30 31 36 2c 30 2c 30 2c 61   ┆); initcodes('lrele ',$016,0,0,a┆
0x08ac40…08ac60             64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 34 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6c 72 65   ┆ddr_neutral, 34); initcodes('lre┆
0x08ac60…08ac80             73 65 20 27 2c 24 30 37 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 36 29 3b   ┆se ',$07e,0,0,addr_neutral, 36);┆
0x08ac80…08aca0             0a 69 6e 69 74 63 6f 64 65 73 28 27 6c 74 20 20 20 20 27 2c 24 30 33 34 2c 30 2c 30 2c 61 64 64   ┆ initcodes('lt    ',$034,0,0,add┆
0x08aca0…08acc0             72 5f 6e 65 75 74 72 61 6c 2c 20 31 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 61 64 64 20   ┆r_neutral, 15); initcodes('madd ┆
0x08acc0…08ace0             20 27 2c 24 30 33 66 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 37 29 3b 0a 69   ┆ ',$03f,0,0,addr_neutral, 17); i┆
0x08ace0…08ad00             6e 69 74 63 6f 64 65 73 28 27 6d 62 73 65 74 20 27 2c 24 30 64 30 2c 32 2c 30 2c 61 64 64 72 5f   ┆nitcodes('mbset ',$0d0,2,0,addr_┆
0x08ad00…08ad20             6e 65 75 74 72 61 6c 2c 20 31 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 62 74 65 73 20 27   ┆neutral, 17); initcodes('mbtes '┆
0x08ad20…08ad40             2c 24 30 64 31 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 39 29 3b 0a 69 6e 69   ┆,$0d1,2,0,addr_neutral, 19); ini┆
0x08ad40…08ad60             74 63 6f 64 65 73 28 27 6d 63 69 73 20 20 27 2c 24 30 36 31 2c 30 2c 30 2c 66 69 72 73 74 5f 6f   ┆tcodes('mcis  ',$061,0,0,first_o┆
0x08ad60…08ad80             66 5f 70 61 69 72 2c 31 38 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 63 69 73 74 20 27 2c   ┆f_pair,187); initcodes('mcist ',┆
0x08ad80…08ada0             24 30 65 31 2c 30 2c 30 2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 31 39 34 29 3b 0a 69 6e 69   ┆$0e1,0,0,first_of_pair,194); ini┆
0x08ada0…08adc0             74 63 6f 64 65 73 28 27 6d 63 69 74 20 20 27 2c 24 30 61 31 2c 30 2c 30 2c 66 69 72 73 74 5f 6f   ┆tcodes('mcit  ',$0a1,0,0,first_o┆
0x08adc0…08ade0             66 5f 70 61 69 72 2c 31 34 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 68 61 6c 74 20 27 2c   ┆f_pair,147); initcodes('mhalt ',┆
0x08ade0…08ae00             24 30 31 38 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 30 29 3b 0a 69 6e 69 74   ┆$018,0,0,addr_neutral, 50); init┆
0x08ae00…08ae20 (37, 0, 2)  63 6f 64 65 73 28 27 6d 6d 75 6c 20 20 27 2c 24 30 33 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75   ┆codes('mmul  ',$03e,0,0,addr_neu┆
0x08ae20…08ae40             74 72 61 6c 2c 31 35 34 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 6e 6f 6f 70 20 27 2c 24 30   ┆tral,154); initcodes('mnoop ',$0┆
0x08ae40…08ae60             32 66 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 6e 6f 5f 6f 70 5f   ┆2f,0,0,addr_neutral,  7); no_op_┆
0x08ae60…08ae80             69 78 20 3a 3d 20 6c 61 73 74 63 6f 64 65 3b 20 28 2a 72 65 6d 65 6d 62 65 72 20 74 68 65 20 69   ┆ix := lastcode; (*remember the i┆
0x08ae80…08aea0             6e 64 65 78 20 6f 66 20 6e 6f 6f 70 2a 29 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 6f 64 20 20 20   ┆ndex of noop*) initcodes('mod   ┆
0x08aea0…08aec0             27 2c 24 30 34 62 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 34 35 29 3b 0a 69 6e   ┆',$04b,0,0,addr_neutral,145); in┆
0x08aec0…08aee0             69 74 63 6f 64 65 73 28 27 6d 6f 76 65 62 20 27 2c 24 30 61 63 2c 30 2c 30 2c 61 64 64 72 5f 6e   ┆itcodes('moveb ',$0ac,0,0,addr_n┆
0x08aee0…08af00             65 75 74 72 61 6c 2c 31 35 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 6f 76 65 67 20 27 2c   ┆eutral,157); initcodes('moveg ',┆
0x08af00…08af20             24 30 61 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 33 39 29 3b 0a 69 6e 69 74   ┆$0ae,0,0,addr_neutral,139); init┆
0x08af20…08af40             63 6f 64 65 73 28 27 6d 72 65 63 68 61 27 2c 24 30 38 31 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75   ┆codes('mrecha',$081,0,0,addr_neu┆
0x08af40…08af60             74 72 61 6c 2c 31 31 39 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 72 65 73 74 20 27 2c 24 30   ┆tral,119); initcodes('mrest ',$0┆
0x08af60…08af80             32 38 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 37 37 29 3b 0a 69 6e 69 74 63 6f   ┆28,0,0,addr_neutral, 77); initco┆
0x08af80…08afa0             64 65 73 28 27 6d 73 74 73 74 20 27 2c 24 30 32 39 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆des('mstst ',$029,0,0,addr_neutr┆
0x08afa0…08afc0             61 6c 2c 20 36 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 73 75 62 20 20 27 2c 24 30 34 31   ┆al, 66); initcodes('msub  ',$041┆
0x08afc0…08afe0             2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 37 29 3b 0a 69 6e 69 74 63 6f 64 65   ┆,0,0,addr_neutral, 17); initcode┆
0x08afe0…08b000             73 28 27 6d 74 69 6d 65 20 27 2c 24 30 31 37 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c   ┆s('mtime ',$017,0,0,addr_neutral┆
0x08b000…08b020 (37, 0, 3)  2c 31 33 32 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 74 72 68 20 20 27 2c 24 30 32 63 2c 31   ┆,132); initcodes('mtrh  ',$02c,1┆
0x08b020…08b040             2c 31 2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 20 38 34 29 3b 0a 69 6e 69 74 63 6f 64 65 73   ┆,1,first_of_pair, 84); initcodes┆
0x08b040…08b060             28 27 6d 74 72 73 20 20 27 2c 24 30 32 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆('mtrs  ',$02e,0,0,addr_neutral,┆
0x08b060…08b080             20 38 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 75 6c 20 20 20 27 2c 24 30 34 39 2c 30 2c   ┆ 81); initcodes('mul   ',$049,0,┆
0x08b080…08b0a0             30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 36 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆0,addr_neutral, 67); initcodes('┆
0x08b0a0…08b0c0             6d 77 69 20 20 20 27 2c 24 30 32 30 2c 30 2c 30 2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 20   ┆mwi   ',$020,0,0,first_of_pair, ┆
0x08b0c0…08b0e0             38 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 77 69 73 20 20 27 2c 24 30 36 30 2c 30 2c 30   ┆88); initcodes('mwis  ',$060,0,0┆
0x08b0e0…08b100             2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 31 36 33 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆,first_of_pair,163); initcodes('┆
0x08b100…08b120             6d 77 69 73 74 20 27 2c 24 30 65 30 2c 30 2c 30 2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 31   ┆mwist ',$0e0,0,0,first_of_pair,1┆
0x08b120…08b140             37 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 77 69 74 20 20 27 2c 24 30 61 30 2c 30 2c 30   ┆70); initcodes('mwit  ',$0a0,0,0┆
0x08b140…08b160             2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 31 32 33 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆,first_of_pair,123); initcodes('┆
0x08b160…08b180             6d 77 73 74 20 20 27 2c 24 30 63 30 2c 30 2c 30 2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 31   ┆mwst  ',$0c0,0,0,first_of_pair,1┆
0x08b180…08b1a0             34 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6d 77 74 20 20 20 27 2c 24 30 38 30 2c 30 2c 30   ┆48); initcodes('mwt   ',$080,0,0┆
0x08b1a0…08b1c0             2c 66 69 72 73 74 5f 6f 66 5f 70 61 69 72 2c 20 38 32 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆,first_of_pair, 82); initcodes('┆
0x08b1c0…08b1e0             6e 65 20 20 20 20 27 2c 24 30 33 33 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31   ┆ne    ',$033,0,0,addr_neutral, 1┆
0x08b1e0…08b200             35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6e 65 67 20 20 20 27 2c 24 30 35 30 2c 30 2c 30 2c   ┆5); initcodes('neg   ',$050,0,0,┆
0x08b200…08b220 (37, 0, 4)  61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 32 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6e 6f   ┆addr_neutral, 12); initcodes('no┆
0x08b220…08b240             74 20 20 20 27 2c 24 30 35 35 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 31 29   ┆t   ',$055,0,0,addr_neutral, 11)┆
0x08b240…08b260             3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 6f 72 20 20 20 20 27 2c 24 30 34 64 2c 30 2c 30 2c 61 64   ┆; initcodes('or    ',$04d,0,0,ad┆
0x08b260…08b280             64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 70 63 61 6c   ┆dr_neutral, 11); initcodes('pcal┆
0x08b280…08b2a0             73 20 27 2c 24 30 37 61 2c 33 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 33 31 29 3b 0a   ┆s ',$07a,3,0,addr_neutral,131); ┆
0x08b2a0…08b2c0             69 6e 69 74 63 6f 64 65 73 28 27 70 63 61 6c 73 30 27 2c 24 30 37 38 2c 33 2c 30 2c 61 64 64 72   ┆initcodes('pcals0',$078,3,0,addr┆
0x08b2c0…08b2e0             5f 6e 65 75 74 72 61 6c 2c 31 33 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 70 63 61 6c 73 31   ┆_neutral,131); initcodes('pcals1┆
0x08b2e0…08b300             27 2c 24 30 37 39 2c 33 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 34 32 29 3b 0a 69 6e   ┆',$079,3,0,addr_neutral,142); in┆
0x08b300…08b320             69 74 63 6f 64 65 73 28 27 70 65 78 69 74 20 27 2c 24 30 37 62 2c 32 2c 30 2c 61 64 64 72 5f 6e   ┆itcodes('pexit ',$07b,2,0,addr_n┆
0x08b320…08b340             65 75 74 72 61 6c 2c 20 36 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 61 61 64 20 27 2c   ┆eutral, 61); initcodes('reaad ',┆
0x08b340…08b360             24 30 66 62 2c 33 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 30 29 3b 0a 69 6e 69 74   ┆$0fb,3,0,addr_neutral, 20); init┆
0x08b360…08b380             63 6f 64 65 73 28 27 72 65 61 64 62 20 27 2c 24 30 39 30 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75   ┆codes('readb ',$090,0,0,addr_neu┆
0x08b380…08b3a0             74 72 61 6c 2c 20 32 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 61 64 77 20 27 2c 24 30   ┆tral, 26); initcodes('readw ',$0┆
0x08b3a0…08b3c0             62 30 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 36 29 3b 0a 69 6e 69 74 63 6f   ┆b0,0,0,addr_neutral, 26); initco┆
0x08b3c0…08b3e0             64 65 73 28 27 72 65 61 67 64 20 27 2c 24 30 62 34 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆des('reagd ',$0b4,2,0,addr_neutr┆
0x08b3e0…08b400             61 6c 2c 20 32 36 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20   ┆al, 26); ais_codes[lastcode] := ┆
0x08b400…08b420 (37, 0, 5)  63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 61   ┆current_interval; initcodes('rea┆
0x08b420…08b440             67 64 73 27 2c 24 30 63 65 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 31 29   ┆gds',$0ce,1, 0,addr_neutral, 21)┆
0x08b440…08b460             3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75   ┆; init_interval( 1,   0, 255,tru┆
0x08b460…08b480             65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 61 69 64 20 27 2c 24 30 65 32 2c 31 2c 30 2c   ┆e); initcodes('reaid ',$0e2,1,0,┆
0x08b480…08b4a0             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 39 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65   ┆addr_neutral, 39); initcodes('re┆
0x08b4a0…08b4c0             61 69 73 64 27 2c 24 30 62 35 2c 31 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 37 29   ┆aisd',$0b5,1,0,addr_neutral, 37)┆
0x08b4c0…08b4e0             3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 61 6c 64 20 27 2c 24 30 65 34 2c 32 2c 30 2c 61 64   ┆; initcodes('reald ',$0e4,2,0,ad┆
0x08b4e0…08b500             64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 36 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63   ┆dr_neutral, 26); ais_codes[lastc┆
0x08b500…08b520             6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f   ┆ode] := current_interval; initco┆
0x08b520…08b540             64 65 73 28 27 72 65 61 6c 64 73 27 2c 24 30 63 66 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74   ┆des('realds',$0cf,1, 0,addr_neut┆
0x08b540…08b560             72 61 6c 2c 20 32 31 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c   ┆ral, 21); init_interval( 1,   0,┆
0x08b560…08b580             20 32 35 35 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 61 72 64 20 27 2c 24   ┆ 255,true); initcodes('reard ',$┆
0x08b580…08b5a0             30 66 63 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 36 29 3b 0a 69 6e 69 74 63   ┆0fc,2,0,addr_neutral, 26); initc┆
0x08b5a0…08b5c0             6f 64 65 73 28 27 72 65 61 73 64 20 27 2c 24 30 65 36 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74   ┆odes('reasd ',$0e6,2,0,addr_neut┆
0x08b5c0…08b5e0             72 61 6c 2c 20 31 36 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d   ┆ral, 16); ais_codes[lastcode] :=┆
0x08b5e0…08b600             20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65   ┆ current_interval; initcodes('re┆
0x08b600…08b620 (37, 0, 6)  61 73 64 31 27 2c 24 30 33 30 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 39   ┆asd1',$030,0, 0,addr_neutral,  9┆
0x08b620…08b640             29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 31 2c 20 20 20 31 2c 74 72   ┆); init_interval( 1,   1,   1,tr┆
0x08b640…08b660             75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 61 78 64 20 27 2c 24 30 66 64 2c 30 2c 30   ┆ue); initcodes('reaxd ',$0fd,0,0┆
0x08b660…08b680             2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72   ┆,addr_neutral, 58); initcodes('r┆
0x08b680…08b6a0             65 63 68 64 20 27 2c 24 30 65 38 2c 32 2c 32 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 36   ┆echd ',$0e8,2,2,addr_neutral, 26┆
0x08b6a0…08b6c0             29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 68 77 20 27 2c 24 30 61 38 2c 32 2c 30 2c 61   ┆); initcodes('rechw ',$0a8,2,0,a┆
0x08b6c0…08b6e0             64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 34 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74   ┆ddr_neutral, 14); ais_codes[last┆
0x08b6e0…08b700             63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63   ┆code] := current_interval; initc┆
0x08b700…08b720             6f 64 65 73 28 27 72 65 63 30 20 20 27 2c 24 30 38 38 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75   ┆odes('rec0  ',$088,0, 0,addr_neu┆
0x08b720…08b740             74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30   ┆tral,  7); init_interval( 1,   0┆
0x08b740…08b760             2c 20 20 20 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 31 20 20 27   ┆,   0,false); initcodes('rec1  '┆
0x08b760…08b780             2c 24 30 30 31 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e   ┆,$001,0, 0,addr_neutral,  7); in┆
0x08b780…08b7a0             69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 31 2c 20 20 20 31 2c 66 61 6c 73 65 29 3b   ┆it_interval( 1,   1,   1,false);┆
0x08b7a0…08b7c0             0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 32 20 20 27 2c 24 30 30 32 2c 30 2c 20 30 2c 61 64   ┆ initcodes('rec2  ',$002,0, 0,ad┆
0x08b7c0…08b7e0             64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20   ┆dr_neutral,  7); init_interval( ┆
0x08b7e0…08b800             31 2c 20 20 20 32 2c 20 20 20 32 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72   ┆1,   2,   2,false); initcodes('r┆
0x08b800…08b820 (37, 0, 7)  65 63 33 20 20 27 2c 24 30 30 33 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20   ┆ec3  ',$003,0, 0,addr_neutral,  ┆
0x08b820…08b840             37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 33 2c 20 20 20 33 2c 66   ┆7); init_interval( 1,   3,   3,f┆
0x08b840…08b860             61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 34 20 20 27 2c 24 30 30 34 2c 30   ┆alse); initcodes('rec4  ',$004,0┆
0x08b860…08b880             2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65   ┆, 0,addr_neutral,  7); init_inte┆
0x08b880…08b8a0             72 76 61 6c 28 20 31 2c 20 20 20 34 2c 20 20 20 34 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f   ┆rval( 1,   4,   4,false); initco┆
0x08b8a0…08b8c0             64 65 73 28 27 72 65 63 35 20 20 27 2c 24 30 30 35 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74   ┆des('rec5  ',$005,0, 0,addr_neut┆
0x08b8c0…08b8e0             72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 35 2c   ┆ral,  7); init_interval( 1,   5,┆
0x08b8e0…08b900             20 20 20 35 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 36 20 20 27 2c   ┆   5,false); initcodes('rec6  ',┆
0x08b900…08b920             24 30 30 36 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69   ┆$006,0, 0,addr_neutral,  7); ini┆
0x08b920…08b940             74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 36 2c 20 20 20 36 2c 66 61 6c 73 65 29 3b 0a   ┆t_interval( 1,   6,   6,false); ┆
0x08b940…08b960             69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 37 20 20 27 2c 24 30 30 37 2c 30 2c 20 30 2c 61 64 64   ┆initcodes('rec7  ',$007,0, 0,add┆
0x08b960…08b980             72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31   ┆r_neutral,  7); init_interval( 1┆
0x08b980…08b9a0             2c 20 20 20 37 2c 20 20 20 37 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65   ┆,   7,   7,false); initcodes('re┆
0x08b9a0…08b9c0             63 38 20 20 27 2c 24 30 30 38 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37   ┆c8  ',$008,0, 0,addr_neutral,  7┆
0x08b9c0…08b9e0             29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 38 2c 20 20 20 38 2c 66 61   ┆); init_interval( 1,   8,   8,fa┆
0x08b9e0…08ba00             6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 39 20 20 27 2c 24 30 30 39 2c 30 2c   ┆lse); initcodes('rec9  ',$009,0,┆
0x08ba00…08ba20 (37, 0, 8)  20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72   ┆ 0,addr_neutral,  7); init_inter┆
0x08ba20…08ba40             76 61 6c 28 20 31 2c 20 20 20 39 2c 20 20 20 39 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64   ┆val( 1,   9,   9,false); initcod┆
0x08ba40…08ba60             65 73 28 27 72 65 63 31 30 20 27 2c 24 30 30 61 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆es('rec10 ',$00a,0, 0,addr_neutr┆
0x08ba60…08ba80             61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 31 30 2c 20   ┆al,  7); init_interval( 1,  10, ┆
0x08ba80…08baa0             20 31 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 31 31 20 27 2c 24   ┆ 10,false); initcodes('rec11 ',$┆
0x08baa0…08bac0             30 30 62 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74   ┆00b,0, 0,addr_neutral,  7); init┆
0x08bac0…08bae0             5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 31 31 2c 20 20 31 31 2c 66 61 6c 73 65 29 3b 0a 69   ┆_interval( 1,  11,  11,false); i┆
0x08bae0…08bb00             6e 69 74 63 6f 64 65 73 28 27 72 65 63 31 32 20 27 2c 24 30 30 63 2c 30 2c 20 30 2c 61 64 64 72   ┆nitcodes('rec12 ',$00c,0, 0,addr┆
0x08bb00…08bb20             5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c   ┆_neutral,  7); init_interval( 1,┆
0x08bb20…08bb40             20 20 31 32 2c 20 20 31 32 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63   ┆  12,  12,false); initcodes('rec┆
0x08bb40…08bb60             31 33 20 27 2c 24 30 30 64 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29   ┆13 ',$00d,0, 0,addr_neutral,  7)┆
0x08bb60…08bb80             3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 31 33 2c 20 20 31 33 2c 66 61 6c   ┆; init_interval( 1,  13,  13,fal┆
0x08bb80…08bba0             73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 31 34 20 27 2c 24 30 30 65 2c 30 2c 20   ┆se); initcodes('rec14 ',$00e,0, ┆
0x08bba0…08bbc0             30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76   ┆0,addr_neutral,  7); init_interv┆
0x08bbc0…08bbe0             61 6c 28 20 31 2c 20 20 31 34 2c 20 20 31 34 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65   ┆al( 1,  14,  14,false); initcode┆
0x08bbe0…08bc00             73 28 27 72 65 63 31 35 20 27 2c 24 30 30 66 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61   ┆s('rec15 ',$00f,0, 0,addr_neutra┆
0x08bc00…08bc20 (37, 0, 9)  6c 2c 20 20 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 31 35 2c 20 20   ┆l,  7); init_interval( 1,  15,  ┆
0x08bc20…08bc40             31 35 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 63 68 77 73 27 2c 24 30   ┆15,false); initcodes('rechws',$0┆
0x08bc40…08bc60             63 38 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20 38 29 3b 0a 69 6e 69 74 5f   ┆c8,1, 0,addr_neutral,  8); init_┆
0x08bc60…08bc80             69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 31 36 2c 20 32 35 35 2c 74 72 75 65 29 3b 0a 69 6e 69   ┆interval( 1,  16, 255,true); ini┆
0x08bc80…08bca0             74 63 6f 64 65 73 28 27 72 65 6e 68 62 20 27 2c 24 30 38 66 2c 32 2c 30 2c 61 64 64 72 5f 6e 65   ┆tcodes('renhb ',$08f,2,0,addr_ne┆
0x08bca0…08bcc0             75 74 72 61 6c 2c 20 33 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 6e 70 62 20 27 2c 24   ┆utral, 31); initcodes('renpb ',$┆
0x08bcc0…08bce0             30 38 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 39 29 3b 0a 0a 65 6e 64 3b   ┆08e,0,0,addr_neutral, 29);  end;┆
0x08bce0…08bd00             20 28 2a 20 63 6f 64 65 20 6e 6f 64 65 20 69 6e 69 74 20 2a 29 0a 0a 0a 62 65 67 69 6e 0a 63 6f   ┆ (* code node init *)   begin co┆
0x08bd00…08bd20             64 65 64 5f 64 61 74 65 3a 3d 20 28 28 20 6f 72 64 28 20 63 75 72 5f 64 61 74 65 20 5b 20 34 20   ┆ded_date:= (( ord( cur_date [ 4 ┆
0x08bd20…08bd40             5d 20 29 20 2d 20 6f 72 64 20 28 20 27 30 27 20 29 20 29 20 2a 20 31 30 0a 2b 20 20 20 20 20 20   ┆] ) - ord ( '0' ) ) * 10 +      ┆
0x08bd40…08bd60             20 20 20 20 20 20 20 20 20 20 6f 72 64 28 20 63 75 72 5f 64 61 74 65 20 5b 20 35 20 5d 20 29 20   ┆          ord( cur_date [ 5 ] ) ┆
0x08bd60…08bd80             2d 20 6f 72 64 20 28 20 27 30 27 20 29 20 29 20 2a 20 31 36 20 2a 20 33 32 0a 2b 20 20 20 20 20   ┆- ord ( '0' ) ) * 16 * 32 +     ┆
0x08bd80…08bda0             20 20 20 20 20 20 20 20 28 28 20 6f 72 64 28 20 63 75 72 5f 64 61 74 65 20 5b 20 37 20 5d 20 29   ┆        (( ord( cur_date [ 7 ] )┆
0x08bda0…08bdc0             20 2d 20 6f 72 64 20 28 20 27 30 27 20 29 20 29 20 2a 20 31 30 0a 2b 20 20 20 20 20 20 20 20 20   ┆ - ord ( '0' ) ) * 10 +         ┆
0x08bdc0…08bde0             20 20 20 20 20 20 20 6f 72 64 28 20 63 75 72 5f 64 61 74 65 20 5b 20 38 20 5d 20 29 20 2d 20 6f   ┆       ord( cur_date [ 8 ] ) - o┆
0x08bde0…08be00             72 64 20 28 20 27 30 27 20 29 20 20 20 20 20 29 20 2a 20 33 32 0a 2b 20 20 20 20 20 20 20 20 20   ┆rd ( '0' )     ) * 32 +         ┆
0x08be00…08be20 (37, 0, 10) 20 20 20 20 20 28 20 6f 72 64 28 20 63 75 72 5f 64 61 74 65 20 5b 20 31 30 20 5d 20 29 20 2d 20   ┆     ( ord( cur_date [ 10 ] ) - ┆
0x08be20…08be40             6f 72 64 20 28 20 27 30 27 20 29 20 29 20 2a 20 31 30 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20   ┆ord ( '0' ) ) * 10 +            ┆
0x08be40…08be60             20 20 20 20 6f 72 64 28 20 63 75 72 5f 64 61 74 65 20 5b 20 31 31 20 5d 20 29 20 2d 20 6f 72 64   ┆    ord( cur_date [ 11 ] ) - ord┆
0x08be60…08be80             20 28 20 27 30 27 20 29 3b 0a 0a 63 6f 64 65 64 5f 74 69 6d 65 3a 3d 20 70 61 73 73 36 5f 76 65   ┆ ( '0' );  coded_time:= pass6_ve┆
0x08be80…08bea0             72 73 69 6f 6e 20 64 69 76 20 31 30 30 20 2a 20 36 34 20 2a 20 33 32 0a 2b 20 20 20 20 20 20 20   ┆rsion div 100 * 64 * 32 +       ┆
0x08bea0…08bec0             20 20 20 20 20 20 28 28 20 6f 72 64 28 20 63 75 72 5f 74 69 6d 65 20 5b 20 32 20 5d 20 29 20 2d   ┆      (( ord( cur_time [ 2 ] ) -┆
0x08bec0…08bee0             20 6f 72 64 28 20 27 30 27 20 29 20 29 20 2a 20 31 30 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20   ┆ ord( '0' ) ) * 10 +            ┆
0x08bee0…08bf00             20 20 20 20 6f 72 64 28 20 63 75 72 5f 74 69 6d 65 20 5b 20 33 20 5d 20 29 20 2d 20 6f 72 64 28   ┆    ord( cur_time [ 3 ] ) - ord(┆
0x08bf00…08bf20             20 27 30 27 20 29 20 29 20 2a 20 36 34 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 20 6f   ┆ '0' ) ) * 64 +              ( o┆
0x08bf20…08bf40             72 64 28 20 63 75 72 5f 74 69 6d 65 20 5b 20 35 20 5d 20 29 20 2d 20 6f 72 64 28 20 27 30 27 20   ┆rd( cur_time [ 5 ] ) - ord( '0' ┆
0x08bf40…08bf60             29 20 29 20 2a 20 31 30 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 64 28 20 63   ┆) ) * 10 +                ord( c┆
0x08bf60…08bf80             75 72 5f 74 69 6d 65 20 5b 20 36 20 5d 20 29 20 2d 20 6f 72 64 28 20 27 30 27 20 29 3b 0a 0a 0a   ┆ur_time [ 6 ] ) - ord( '0' );   ┆
0x08bf80…08bfa0             75 73 65 72 73 5f 76 65 72 73 69 6f 6e 3a 3d 20 30 3b 0a 0a 6c 65 6e 67 74 68 5f 6f 66 5f 63 75   ┆users_version:= 0;  length_of_cu┆
0x08bfa0…08bfc0             72 72 65 6e 74 5f 63 6f 64 65 3a 3d 20 30 3b 0a 0a 0a 0a 28 2a 20 63 72 65 61 74 65 20 20 73 74   ┆rrent_code:= 0;    (* create  st┆
0x08bfc0…08bfe0             61 72 74 20 6f 66 20 6e 61 6d 65 20 6c 69 73 74 2c 20 6e 69 6c 5f 6e 61 6d 65 20 69 73 20 73 74   ┆art of name list, nil_name is st┆
0x08bfe0…08c000             6f 70 20 6d 61 72 6b 20 2a 29 0a 6e 65 77 28 6e 69 6c 5f 6e 61 6d 65 29 3b 0a 77 69 74 68 20 20   ┆op mark *) new(nil_name); with  ┆
0x08c000…08c020 (37, 0, 11) 6e 69 6c 5f 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 6e 61 6d 65 70 61 72 74 3a 3d 20 62   ┆nil_name ^ do begin namepart:= b┆
0x08c020…08c040             6c 61 6e 6b 3b 0a 64 65 66 5f 73 65 67 6d 65 6e 74 3a 3d 20 6e 69 6c 6c 3b 20 28 2a 20 69 2e 65   ┆lank; def_segment:= nill; (* i.e┆
0x08c040…08c060             2e 20 75 6e 64 65 66 69 6e 65 64 20 2a 29 0a 64 65 66 5f 6f 66 66 73 65 74 3a 3d 20 30 3b 0a 6e   ┆. undefined *) def_offset:= 0; n┆
0x08c060…08c080             65 78 74 5f 6e 61 6d 65 3a 3d 20 6e 69 6c 3b 0a 75 73 65 5f 63 68 61 69 6e 3a 3d 20 75 6e 73 61   ┆ext_name:= nil; use_chain:= unsa┆
0x08c080…08c0a0             74 69 73 66 69 65 64 5f 6e 69 6c 3b 0a 6b 69 6e 64 20 20 20 20 20 3a 3d 20 75 6e 64 65 66 69 6e   ┆tisfied_nil; kind     := undefin┆
0x08c0a0…08c0c0             65 64 3b 0a 65 6e 64 3b 0a 0a 73 75 72 76 65 79 5f 6e 61 6d 65 5f 6e 6f 64 65 73 3a 3d 20 30 3b   ┆ed; end;  survey_name_nodes:= 0;┆
0x08c0c0…08c0e0             0a 6e 61 6d 65 66 72 65 65 6c 69 73 74 3a 3d 20 6e 69 6c 5f 6e 61 6d 65 3b 0a 0a 0a 28 2a 20 63   ┆ namefreelist:= nil_name;   (* c┆
0x08c0e0…08c100             72 65 61 74 65 20 6e 69 6c 20 64 65 70 65 6e 64 65 6e 63 65 20 65 6c 65 6d 65 6e 74 2c 20 73 74   ┆reate nil dependence element, st┆
0x08c100…08c120             6f 70 20 6d 61 72 6b 20 6f 66 20 64 65 70 5f 65 6c 65 6d 73 20 2a 29 0a 6e 65 77 28 64 65 70 5f   ┆op mark of dep_elems *) new(dep_┆
0x08c120…08c140             63 68 61 69 6e 5f 73 74 61 72 74 29 3b 0a 28 2a 20 64 65 70 5f 63 68 61 69 6e 5f 73 74 61 72 74   ┆chain_start); (* dep_chain_start┆
0x08c140…08c160             20 5e 20 69 73 20 64 75 6d 6d 79 20 28 73 74 6f 70 20 6d 61 72 6b 29 20 2a 29 0a 77 69 74 68 20   ┆ ^ is dummy (stop mark) *) with ┆
0x08c160…08c180             64 65 70 5f 63 68 61 69 6e 5f 73 74 61 72 74 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 6e 65 78 74 5f   ┆dep_chain_start ^ do begin next_┆
0x08c180…08c1a0             64 65 70 3a 3d 20 64 65 70 5f 63 68 61 69 6e 5f 73 74 61 72 74 3b 20 28 2a 20 63 79 63 6c 69 63   ┆dep:= dep_chain_start; (* cyclic┆
0x08c1a0…08c1c0             61 6c 20 6c 69 73 74 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 2a 29 0a 64 65 70 65 6e 64 65 6e 74   ┆al list of elements *) dependent┆
0x08c1c0…08c1e0             3a 3d 20 6e 69 6c 5f 6e 61 6d 65 3b 0a 64 65 70 65 6e 64 65 6e 63 65 3a 3d 20 6e 69 6c 5f 6e 61   ┆:= nil_name; dependence:= nil_na┆
0x08c1e0…08c200             6d 65 3b 0a 65 6e 64 3b 0a 0a 73 75 72 76 65 79 5f 64 65 70 65 6e 64 65 6e 63 65 5f 6e 6f 64 65   ┆me; end;  survey_dependence_node┆
0x08c200…08c220 (37, 0, 12) 73 3a 3d 20 30 3b 0a 66 72 65 65 5f 64 65 70 5f 6c 69 73 74 3a 3d 20 64 65 70 5f 63 68 61 69 6e   ┆s:= 0; free_dep_list:= dep_chain┆
0x08c220…08c240             5f 73 74 61 72 74 3b 0a 0a 28 2a 20 63 72 65 61 74 65 20 6e 69 6c 20 6a 75 6d 70 20 65 6c 65 6d   ┆_start;  (* create nil jump elem┆
0x08c240…08c260             2c 20 73 74 61 72 74 20 6f 66 20 6a 75 6d 70 20 63 68 61 69 6e 20 2a 29 0a 6e 65 77 28 6e 69 6c   ┆, start of jump chain *) new(nil┆
0x08c260…08c280             5f 6a 75 6d 70 5f 70 74 72 29 3b 0a 6e 69 6c 5f 6a 75 6d 70 5f 70 74 72 5e 2e 6e 65 78 74 5f 6a   ┆_jump_ptr); nil_jump_ptr^.next_j┆
0x08c280…08c2a0             75 6d 70 3a 3d 20 6e 69 6c 3b 0a 73 75 72 76 65 79 5f 6a 75 6d 70 5f 6e 6f 64 65 73 3a 3d 20 30   ┆ump:= nil; survey_jump_nodes:= 0┆
0x08c2a0…08c2c0             3b 0a 0a 28 2a 20 63 72 65 61 74 65 20 6e 69 6c 20 6c 61 62 65 6c 20 6c 69 73 74 2c 20 73 74 61   ┆;  (* create nil label list, sta┆
0x08c2c0…08c2e0             72 74 20 6f 66 20 63 75 72 72 65 6e 74 20 6c 61 62 65 6c 73 20 2a 29 0a 6e 65 77 28 6e 69 6c 5f   ┆rt of current labels *) new(nil_┆
0x08c2e0…08c300             6c 61 62 65 6c 5f 70 74 72 29 3b 0a 6e 69 6c 5f 6c 61 62 65 6c 5f 70 74 72 5e 2e 6e 65 78 74 5f   ┆label_ptr); nil_label_ptr^.next_┆
0x08c300…08c320             6c 61 62 65 6c 3a 3d 20 6e 69 6c 3b 0a 73 75 72 76 65 79 5f 63 75 72 5f 6c 61 62 65 6c 5f 6e 6f   ┆label:= nil; survey_cur_label_no┆
0x08c320…08c340             64 65 73 3a 3d 20 30 3b 0a 0a 28 2a 20 63 72 65 61 74 65 20 6e 69 6c 20 65 6c 65 6d 65 6e 74 20   ┆des:= 0;  (* create nil element ┆
0x08c340…08c360             66 6f 72 20 75 6e 73 61 74 69 73 66 69 65 64 20 72 65 66 65 72 65 6e 63 65 73 20 2a 29 0a 6e 65   ┆for unsatisfied references *) ne┆
0x08c360…08c380             77 28 75 6e 73 61 74 69 73 66 69 65 64 5f 6e 69 6c 29 3b 0a 77 69 74 68 20 75 6e 73 61 74 69 73   ┆w(unsatisfied_nil); with unsatis┆
0x08c380…08c3a0             66 69 65 64 5f 6e 69 6c 5e 20 64 6f 0a 62 65 67 69 6e 0a 6e 65 78 74 5f 72 65 66 3a 3d 20 6e 69   ┆fied_nil^ do begin next_ref:= ni┆
0x08c3a0…08c3c0             6c 3b 0a 65 6e 64 3b 0a 75 6e 73 61 74 72 65 66 5f 66 72 65 65 6c 69 73 74 3a 3d 20 75 6e 73 61   ┆l; end; unsatref_freelist:= unsa┆
0x08c3c0…08c3e0             74 69 73 66 69 65 64 5f 6e 69 6c 3b 0a 73 75 72 76 65 79 5f 75 6e 73 61 74 5f 6e 6f 64 65 73 3a   ┆tisfied_nil; survey_unsat_nodes:┆
0x08c3e0…08c400             3d 20 30 3b 0a 0a 28 2a 20 63 72 65 61 74 65 20 62 6f 74 74 6f 6d 20 6f 66 20 6e 61 6d 65 20 6c   ┆= 0;  (* create bottom of name l┆
0x08c400…08c420 (37, 0, 13) 65 76 65 6c 20 73 74 61 63 6b 20 2a 29 0a 6e 65 77 28 6e 69 6c 5f 6c 65 76 65 6c 29 3b 0a 77 69   ┆evel stack *) new(nil_level); wi┆
0x08c420…08c440             74 68 20 6e 69 6c 5f 6c 65 76 65 6c 5e 20 64 6f 0a 62 65 67 69 6e 0a 66 6f 72 6d 65 72 5f 6c 65   ┆th nil_level^ do begin former_le┆
0x08c440…08c460             76 65 6c 3a 3d 20 6e 69 6c 5f 6c 65 76 65 6c 3b 0a 6c 65 76 65 6c 5f 6c 69 73 74 3a 3d 20 6e 69   ┆vel:= nil_level; level_list:= ni┆
0x08c460…08c480             6c 5f 6e 61 6d 65 3b 0a 65 6e 64 3b 20 28 2a 20 73 74 6f 70 20 65 6c 65 6d 65 6e 74 20 2a 29 0a   ┆l_name; end; (* stop element *) ┆
0x08c480…08c4a0             63 75 72 72 65 6e 74 5f 6c 65 76 65 6c 3a 3d 20 6e 69 6c 5f 6c 65 76 65 6c 3b 0a 0a 6e 65 77 28   ┆current_level:= nil_level;  new(┆
0x08c4a0…08c4c0             67 6c 6f 62 61 6c 5f 6c 65 76 65 6c 29 3b 0a 67 6c 6f 62 61 6c 5f 6c 65 76 65 6c 5e 3a 3d 20 6e   ┆global_level); global_level^:= n┆
0x08c4c0…08c4e0             69 6c 5f 6c 65 76 65 6c 5e 3b 0a 66 72 65 65 5f 6c 65 76 65 6c 5f 6c 69 73 74 3a 3d 20 67 6c 6f   ┆il_level^; free_level_list:= glo┆
0x08c4e0…08c500             62 61 6c 5f 6c 65 76 65 6c 3b 20 28 2a 20 66 69 72 73 74 20 6c 65 76 65 6c 20 74 6f 20 62 65 20   ┆bal_level; (* first level to be ┆
0x08c500…08c520             61 6c 6c 6f 63 61 74 65 64 20 21 21 21 20 2a 29 0a 73 75 72 76 65 79 5f 6c 65 76 65 6c 5f 6e 6f   ┆allocated !!! *) survey_level_no┆
0x08c520…08c540             64 65 73 3a 3d 20 31 3b 0a 0a 73 75 72 76 65 79 5f 67 72 65 61 74 65 73 74 5f 63 6f 6e 73 74 3a   ┆des:= 1;  survey_greatest_const:┆
0x08c540…08c560             3d 20 30 3b 0a 0a 63 75 72 72 65 6e 74 5f 6e 61 6d 65 3a 3d 20 62 6c 61 6e 6b 3b 0a 0a 6c 61 73   ┆= 0;  current_name:= blank;  las┆
0x08c560…08c580             74 63 68 61 72 3a 3d 20 30 3b 0a 0a 65 72 72 6f 72 63 6f 75 6e 74 3a 3d 20 30 3b 0a 0a 6c 69 6e   ┆tchar:= 0;  errorcount:= 0;  lin┆
0x08c580…08c5a0             65 6e 75 6d 62 65 72 3a 3d 20 30 3b 0a 0a 65 72 72 6f 72 69 6e 64 65 78 3a 3d 20 30 3b 0a 0a 6c   ┆enumber:= 0;  errorindex:= 0;  l┆
0x08c5a0…08c5c0             69 6e 65 69 6e 64 65 78 3a 3d 20 30 3b 0a 0a 6c 69 6e 65 6c 65 6e 67 74 68 3a 3d 20 30 3b 0a 0a   ┆ineindex:= 0;  linelength:= 0;  ┆
0x08c5c0…08c5e0             6c 69 6e 65 20 5b 20 30 20 5d 3a 3d 20 27 20 27 3b 0a 63 68 62 75 66 5b 20 30 20 5d 3a 3d 20 27   ┆line [ 0 ]:= ' '; chbuf[ 0 ]:= '┆
0x08c5e0…08c600             20 27 3b 0a 0a 66 6f 72 20 73 74 65 70 3a 3d 20 30 20 74 6f 20 68 69 67 68 65 72 72 6f 72 20 64   ┆ ';  for step:= 0 to higherror d┆
0x08c600…08c620 (37, 0, 14) 6f 0a 65 72 72 6f 72 6d 61 72 6b 73 20 5b 20 73 74 65 70 20 5d 3a 3d 20 66 61 6c 73 65 3b 0a 0a   ┆o errormarks [ step ]:= false;  ┆
0x08c620…08c640             70 72 69 6e 74 65 64 3a 3d 20 74 72 75 65 3b 0a 0a 6f 62 6a 65 63 74 5f 63 6f 64 65 5f 66 69 6c   ┆printed:= true;  object_code_fil┆
0x08c640…08c660             65 5f 6f 70 65 6e 65 64 3a 3d 20 66 61 6c 73 65 3b 0a 0a 73 79 73 74 65 6d 70 61 72 61 6d 6e 6f   ┆e_opened:= false;  systemparamno┆
0x08c660…08c680             3a 3d 20 30 3b 0a 0a 65 72 72 6f 72 72 65 70 6f 72 74 69 6e 67 3a 3d 20 66 61 6c 73 65 3b 0a 0a   ┆:= 0;  errorreporting:= false;  ┆
0x08c680…08c6a0             70 72 65 73 65 72 76 65 5f 6f 70 74 69 6f 6e 3a 3d 20 66 61 6c 73 65 3b 0a 0a 74 65 73 74 3a 3d   ┆preserve_option:= false;  test:=┆
0x08c6a0…08c6c0             20 66 61 6c 73 65 3b 0a 0a 64 75 6d 70 5f 6e 61 6d 65 74 61 62 6c 65 3a 3d 20 66 61 6c 73 65 3b   ┆ false;  dump_nametable:= false;┆
0x08c6c0…08c6e0             0a 0a 70 72 69 6e 74 5f 63 6f 64 65 3a 3d 20 66 61 6c 73 65 3b 0a 0a 0a 63 6f 64 65 6c 69 73 74   ┆  print_code:= false;   codelist┆
0x08c6e0…08c700             3a 3d 20 74 65 73 74 3b 0a 0a 63 75 72 72 65 6e 74 5f 74 69 6d 65 3a 3d 20 2d 31 3b 20 28 2a 20   ┆:= test;  current_time:= -1; (* ┆
0x08c700…08c720             6e 6f 74 20 63 6f 64 65 20 6c 69 6e 65 20 2a 29 0a 0a 0a 63 6f 64 65 66 69 6c 65 6e 61 6d 65 3a   ┆not code line *)   codefilename:┆
0x08c720…08c740             3d 20 27 72 74 70 70 61 73 73 36 2e 63 6f 64 27 3b 20 28 2a 20 64 65 66 61 75 6c 74 20 6e 61 6d   ┆= 'rtppass6.cod'; (* default nam┆
0x08c740…08c760             65 20 2a 29 0a 0a 6e 6f 5f 6f 66 5f 65 6c 65 6d 73 5f 69 6e 5f 6c 69 6e 65 3a 3d 20 65 6c 65 6d   ┆e *)  no_of_elems_in_line:= elem┆
0x08c760…08c780             73 5f 70 65 72 5f 6c 69 6e 65 3b 20 28 2a 20 66 6f 72 63 65 20 6e 65 77 6c 69 6e 65 20 61 74 20   ┆s_per_line; (* force newline at ┆
0x08c780…08c7a0             73 74 61 72 74 20 2a 29 0a 0a 0a 28 2a 20 6f 70 63 6f 64 65 73 20 2e 2e 2e 2e 2e 2e 2e 2e 20 2a   ┆start *)   (* opcodes ........ *┆
0x08c7a0…08c7c0             29 0a 0a 66 6f 72 20 6c 61 73 74 63 6f 64 65 3a 3d 20 30 20 74 6f 20 6d 61 78 5f 63 6f 64 65 5f   ┆)  for lastcode:= 0 to max_code_┆
0x08c7c0…08c7e0             6e 75 6d 62 65 72 20 64 6f 0a 62 65 67 69 6e 0a 6f 70 63 6f 64 65 73 20 5b 20 6c 61 73 74 63 6f   ┆number do begin opcodes [ lastco┆
0x08c7e0…08c800             64 65 20 5d 20 2e 20 6e 61 6d 65 70 61 72 74 3a 3d 20 62 6c 61 6e 6b 3b 20 28 2a 20 75 6e 75 73   ┆de ] . namepart:= blank; (* unus┆
0x08c800…08c820 (37, 0, 15) 65 64 20 2a 29 0a 61 69 73 5f 63 6f 64 65 73 20 5b 20 6c 61 73 74 63 6f 64 65 20 5d 3a 3d 20 30   ┆ed *) ais_codes [ lastcode ]:= 0┆
0x08c820…08c840             3b 20 28 2a 20 6e 6f 74 20 75 73 65 64 20 2a 29 0a 65 6e 64 3b 0a 0a 63 75 72 72 65 6e 74 5f 69   ┆; (* not used *) end;  current_i┆
0x08c840…08c860             6e 74 65 72 76 61 6c 3a 3d 20 31 3b 0a 0a 73 68 6f 72 74 5f 69 6e 73 74 72 75 63 74 69 6f 6e 73   ┆nterval:= 1;  short_instructions┆
0x08c860…08c880             3a 3d 20 74 72 75 65 3b 0a 0a 73 75 72 76 65 79 5f 69 6e 66 6f 3a 3d 20 66 61 6c 73 65 3b 0a 67   ┆:= true;  survey_info:= false; g┆
0x08c880…08c8a0             65 6e 65 72 61 74 65 5f 73 74 61 74 69 73 74 69 63 73 3a 3d 20 66 61 6c 73 65 3b 0a 0a 28 2a 20   ┆enerate_statistics:= false;  (* ┆
0x08c8a0…08c8c0             69 6e 69 74 69 61 6c 69 7a 65 20 66 69 72 73 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 63 6f 64   ┆initialize first part of the cod┆
0x08c8c0…08c8e0             65 20 6e 6f 64 65 73 20 2a 29 0a 0a 63 6f 64 65 5f 6e 6f 64 65 5f 69 6e 69 74 3b 0a 69 6e 69 74   ┆e nodes *)  code_node_init; init┆
0x08c8e0…08c900             63 6f 64 65 73 28 27 72 65 73 74 61 20 27 2c 24 30 39 35 2c 31 2c 30 2c 61 64 64 72 5f 6e 65 75   ┆codes('resta ',$095,1,0,addr_neu┆
0x08c900…08c920             74 72 61 6c 2c 20 36 39 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 73 74 63 20 27 2c 24 30   ┆tral, 69); initcodes('restc ',$0┆
0x08c920…08c940             64 35 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 36 32 29 3b 0a 69 6e 69 74 63 6f   ┆d5,0,0,addr_neutral, 62); initco┆
0x08c940…08c960             64 65 73 28 27 72 65 76 67 61 20 27 2c 24 30 64 33 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆des('revga ',$0d3,2,0,addr_neutr┆
0x08c960…08c980             61 6c 2c 20 34 31 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20   ┆al, 41); ais_codes[lastcode] := ┆
0x08c980…08c9a0             63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76   ┆current_interval; initcodes('rev┆
0x08c9a0…08c9c0             67 61 73 27 2c 24 30 63 39 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 36 29   ┆gas',$0c9,1, 0,addr_neutral, 36)┆
0x08c9c0…08c9e0             3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75   ┆; init_interval( 1,   0, 255,tru┆
0x08c9e0…08ca00             65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 67 62 20 27 2c 24 30 39 33 2c 32 2c 30 2c   ┆e); initcodes('revgb ',$093,2,0,┆
0x08ca00…08ca20 (37, 1, 1)  61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73   ┆addr_neutral, 30); ais_codes[las┆
0x08ca20…08ca40             74 63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74   ┆tcode] := current_interval; init┆
0x08ca40…08ca60             63 6f 64 65 73 28 27 72 65 76 67 62 73 27 2c 24 30 38 39 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65   ┆codes('revgbs',$089,1, 0,addr_ne┆
0x08ca60…08ca80             75 74 72 61 6c 2c 20 32 33 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20   ┆utral, 23); init_interval( 1,   ┆
0x08ca80…08caa0             30 2c 20 32 35 35 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 67 64 20 27   ┆0, 255,true); initcodes('revgd '┆
0x08caa0…08cac0             2c 24 30 66 39 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 31 29 3b 0a 61 69 73   ┆,$0f9,2,0,addr_neutral, 51); ais┆
0x08cac0…08cae0             5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65   ┆_codes[lastcode] := current_inte┆
0x08cae0…08cb00             72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 67 64 73 27 2c 24 30 65 39 2c 31 2c   ┆rval; initcodes('revgds',$0e9,1,┆
0x08cb00…08cb20             20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 36 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72   ┆ 0,addr_neutral, 46); init_inter┆
0x08cb20…08cb40             76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65   ┆val( 1,   0, 255,true); initcode┆
0x08cb40…08cb60             73 28 27 72 65 76 67 77 20 27 2c 24 30 62 33 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c   ┆s('revgw ',$0b3,2,0,addr_neutral┆
0x08cb60…08cb80             2c 20 33 36 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75   ┆, 36); ais_codes[lastcode] := cu┆
0x08cb80…08cba0             72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 67 77   ┆rrent_interval; initcodes('revgw┆
0x08cba0…08cbc0             73 27 2c 24 30 61 39 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a   ┆s',$0a9,1, 0,addr_neutral, 30); ┆
0x08cbc0…08cbe0             69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29   ┆init_interval( 1,   0, 255,true)┆
0x08cbe0…08cc00             3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 6c 61 20 27 2c 24 30 64 37 2c 32 2c 30 2c 61 64   ┆; initcodes('revla ',$0d7,2,0,ad┆
0x08cc00…08cc20 (37, 1, 2)  64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 31 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63   ┆dr_neutral, 41); ais_codes[lastc┆
0x08cc20…08cc40             6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f   ┆ode] := current_interval; initco┆
0x08cc40…08cc60             64 65 73 28 27 72 76 6c 61 6e 73 27 2c 24 30 64 63 2c 31 2c 20 30 2c 6e 65 67 61 74 69 76 65 5f   ┆des('rvlans',$0dc,1, 0,negative_┆
0x08cc60…08cc80             73 68 6f 72 74 2c 20 33 36 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 2d 32 35   ┆short, 36); init_interval( 1,-25┆
0x08cc80…08cca0             35 2c 20 20 20 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 6c 61 73   ┆5,   0,false); initcodes('revlas┆
0x08cca0…08ccc0             27 2c 24 30 63 62 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 36 29 3b 0a 69   ┆',$0cb,1, 0,addr_neutral, 36); i┆
0x08ccc0…08cce0             6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29 3b   ┆nit_interval( 1,   0, 255,true);┆
0x08cce0…08cd00             0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 6c 62 20 27 2c 24 30 39 37 2c 32 2c 30 2c 61 64 64   ┆ initcodes('revlb ',$097,2,0,add┆
0x08cd00…08cd20             72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f   ┆r_neutral, 30); ais_codes[lastco┆
0x08cd20…08cd40             64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64   ┆de] := current_interval; initcod┆
0x08cd40…08cd60             65 73 28 27 72 76 6c 62 6e 73 27 2c 24 30 64 61 2c 31 2c 20 30 2c 6e 65 67 61 74 69 76 65 5f 73   ┆es('rvlbns',$0da,1, 0,negative_s┆
0x08cd60…08cd80             68 6f 72 74 2c 20 32 33 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 2d 32 35 35   ┆hort, 23); init_interval( 1,-255┆
0x08cd80…08cda0             2c 20 20 20 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 6c 62 73 27   ┆,   0,false); initcodes('revlbs'┆
0x08cda0…08cdc0             2c 24 30 38 62 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 33 29 3b 0a 69 6e   ┆,$08b,1, 0,addr_neutral, 23); in┆
0x08cdc0…08cde0             69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29 3b 0a   ┆it_interval( 1,   0, 255,true); ┆
0x08cde0…08ce00             69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 6c 64 20 27 2c 24 30 66 37 2c 32 2c 30 2c 61 64 64 72   ┆initcodes('revld ',$0f7,2,0,addr┆
0x08ce00…08ce20 (37, 1, 3)  5f 6e 65 75 74 72 61 6c 2c 20 35 31 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64   ┆_neutral, 51); ais_codes[lastcod┆
0x08ce20…08ce40             65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65   ┆e] := current_interval; initcode┆
0x08ce40…08ce60             73 28 27 72 76 6c 64 6e 73 27 2c 24 30 64 64 2c 31 2c 20 30 2c 6e 65 67 61 74 69 76 65 5f 73 68   ┆s('rvldns',$0dd,1, 0,negative_sh┆
0x08ce60…08ce80             6f 72 74 2c 20 34 36 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 2d 32 35 35 2c   ┆ort, 46); init_interval( 1,-255,┆
0x08ce80…08cea0             20 20 20 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 6c 64 73 27 2c   ┆   0,false); initcodes('revlds',┆
0x08cea0…08cec0             24 30 65 62 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 36 29 3b 0a 69 6e 69   ┆$0eb,1, 0,addr_neutral, 46); ini┆
0x08cec0…08cee0             74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29 3b 0a 69   ┆t_interval( 1,   0, 255,true); i┆
0x08cee0…08cf00             6e 69 74 63 6f 64 65 73 28 27 72 65 76 6c 77 20 27 2c 24 30 62 37 2c 32 2c 30 2c 61 64 64 72 5f   ┆nitcodes('revlw ',$0b7,2,0,addr_┆
0x08cf00…08cf20             6e 65 75 74 72 61 6c 2c 20 33 36 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65   ┆neutral, 36); ais_codes[lastcode┆
0x08cf20…08cf40             5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73   ┆] := current_interval; initcodes┆
0x08cf40…08cf60             28 27 72 76 6c 77 6e 73 27 2c 24 30 64 62 2c 31 2c 20 30 2c 6e 65 67 61 74 69 76 65 5f 73 68 6f   ┆('rvlwns',$0db,1, 0,negative_sho┆
0x08cf60…08cf80             72 74 2c 20 33 30 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 2d 32 35 35 2c 20   ┆rt, 30); init_interval( 1,-255, ┆
0x08cf80…08cfa0             20 20 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 6c 77 73 27 2c 24   ┆  0,false); initcodes('revlws',$┆
0x08cfa0…08cfc0             30 61 62 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a 69 6e 69 74   ┆0ab,1, 0,addr_neutral, 30); init┆
0x08cfc0…08cfe0             5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29 3b 0a 69 6e   ┆_interval( 1,   0, 255,true); in┆
0x08cfe0…08d000             69 74 63 6f 64 65 73 28 27 72 65 76 70 64 20 27 2c 24 30 65 66 2c 30 2c 30 2c 61 64 64 72 5f 6e   ┆itcodes('revpd ',$0ef,0,0,addr_n┆
0x08d000…08d020 (37, 1, 4)  65 75 74 72 61 6c 2c 20 31 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 70 77 20 27 2c   ┆eutral, 17); initcodes('revpw ',┆
0x08d020…08d040             24 30 61 66 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 31 29 3b 0a 69 6e 69 74   ┆$0af,0,0,addr_neutral, 11); init┆
0x08d040…08d060             63 6f 64 65 73 28 27 72 65 76 73 61 20 27 2c 24 30 62 63 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75   ┆codes('revsa ',$0bc,2,0,addr_neu┆
0x08d060…08d080             74 72 61 6c 2c 20 34 31 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a   ┆tral, 41); ais_codes[lastcode] :┆
0x08d080…08d0a0             3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72   ┆= current_interval; initcodes('r┆
0x08d0a0…08d0c0             76 73 61 30 20 27 2c 24 30 66 34 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33   ┆vsa0 ',$0f4,0, 0,addr_neutral, 3┆
0x08d0c0…08d0e0             32 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 20 20 30 2c 66   ┆2); init_interval( 1,   0,   0,f┆
0x08d0e0…08d100             61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 61 32 20 27 2c 24 30 63 33 2c 30   ┆alse); initcodes('rvsa2 ',$0c3,0┆
0x08d100…08d120             2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 34 29 3b 0a 69 6e 69 74 5f 69 6e 74 65   ┆, 0,addr_neutral, 34); init_inte┆
0x08d120…08d140             72 76 61 6c 28 20 31 2c 20 20 20 32 2c 20 20 20 32 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f   ┆rval( 1,   2,   2,false); initco┆
0x08d140…08d160             64 65 73 28 27 72 76 73 61 34 20 27 2c 24 30 63 35 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74   ┆des('rvsa4 ',$0c5,0, 0,addr_neut┆
0x08d160…08d180             72 61 6c 2c 20 33 34 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 34 2c   ┆ral, 34); init_interval( 1,   4,┆
0x08d180…08d1a0             20 20 20 34 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 61 36 20 27 2c   ┆   4,false); initcodes('rvsa6 ',┆
0x08d1a0…08d1c0             24 30 63 37 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 34 29 3b 0a 69 6e 69   ┆$0c7,0, 0,addr_neutral, 34); ini┆
0x08d1c0…08d1e0             74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 36 2c 20 20 20 36 2c 74 72 75 65 29 3b 0a 69   ┆t_interval( 1,   6,   6,true); i┆
0x08d1e0…08d200             6e 69 74 63 6f 64 65 73 28 27 72 65 76 73 62 20 27 2c 24 30 62 38 2c 32 2c 30 2c 61 64 64 72 5f   ┆nitcodes('revsb ',$0b8,2,0,addr_┆
0x08d200…08d220 (37, 1, 5)  6e 65 75 74 72 61 6c 2c 20 32 39 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65   ┆neutral, 29); ais_codes[lastcode┆
0x08d220…08d240             5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73   ┆] := current_interval; initcodes┆
0x08d240…08d260             28 27 72 76 73 62 30 20 27 2c 24 30 66 30 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c   ┆('rvsb0 ',$0f0,0, 0,addr_neutral┆
0x08d260…08d280             2c 20 32 30 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 20 20   ┆, 20); init_interval( 1,   0,   ┆
0x08d280…08d2a0             30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 62 31 20 27 2c 24 30 62   ┆0,false); initcodes('rvsb1 ',$0b┆
0x08d2a0…08d2c0             39 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 32 29 3b 0a 69 6e 69 74 5f 69   ┆9,0, 0,addr_neutral, 22); init_i┆
0x08d2c0…08d2e0             6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 31 2c 20 20 20 31 2c 66 61 6c 73 65 29 3b 0a 69 6e 69   ┆nterval( 1,   1,   1,false); ini┆
0x08d2e0…08d300             74 63 6f 64 65 73 28 27 72 76 73 62 32 20 27 2c 24 30 38 33 2c 30 2c 20 30 2c 61 64 64 72 5f 6e   ┆tcodes('rvsb2 ',$083,0, 0,addr_n┆
0x08d300…08d320             65 75 74 72 61 6c 2c 20 32 32 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20   ┆eutral, 22); init_interval( 1,  ┆
0x08d320…08d340             20 32 2c 20 20 20 32 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 62 33   ┆ 2,   2,false); initcodes('rvsb3┆
0x08d340…08d360             20 27 2c 24 30 62 62 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 32 29 3b 0a   ┆ ',$0bb,0, 0,addr_neutral, 22); ┆
0x08d360…08d380             69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 33 2c 20 20 20 33 2c 66 61 6c 73 65   ┆init_interval( 1,   3,   3,false┆
0x08d380…08d3a0             29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 62 34 20 27 2c 24 30 38 35 2c 30 2c 20 30 2c   ┆); initcodes('rvsb4 ',$085,0, 0,┆
0x08d3a0…08d3c0             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 32 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c   ┆addr_neutral, 22); init_interval┆
0x08d3c0…08d3e0             28 20 31 2c 20 20 20 34 2c 20 20 20 34 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28   ┆( 1,   4,   4,false); initcodes(┆
0x08d3e0…08d400             27 72 76 73 62 35 20 27 2c 24 30 62 64 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆'rvsb5 ',$0bd,0, 0,addr_neutral,┆
0x08d400…08d420 (37, 1, 6)  20 32 32 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 35 2c 20 20 20 35   ┆ 22); init_interval( 1,   5,   5┆
0x08d420…08d440             2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 62 36 20 27 2c 24 30 38 37   ┆,false); initcodes('rvsb6 ',$087┆
0x08d440…08d460             2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 32 29 3b 0a 69 6e 69 74 5f 69 6e   ┆,0, 0,addr_neutral, 22); init_in┆
0x08d460…08d480             74 65 72 76 61 6c 28 20 31 2c 20 20 20 36 2c 20 20 20 36 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74   ┆terval( 1,   6,   6,false); init┆
0x08d480…08d4a0             63 6f 64 65 73 28 27 72 76 73 62 37 20 27 2c 24 30 62 66 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65   ┆codes('rvsb7 ',$0bf,0, 0,addr_ne┆
0x08d4a0…08d4c0             75 74 72 61 6c 2c 20 32 32 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20   ┆utral, 22); init_interval( 1,   ┆
0x08d4c0…08d4e0             37 2c 20 20 20 37 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 73 64 20 27   ┆7,   7,true); initcodes('revsd '┆
0x08d4e0…08d500             2c 24 30 62 65 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 33 29 3b 0a 61 69 73   ┆,$0be,2,0,addr_neutral, 53); ais┆
0x08d500…08d520             5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65   ┆_codes[lastcode] := current_inte┆
0x08d520…08d540             72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 64 30 20 27 2c 24 30 66 36 2c 30 2c   ┆rval; initcodes('rvsd0 ',$0f6,0,┆
0x08d540…08d560             20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 36 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72   ┆ 0,addr_neutral, 46); init_inter┆
0x08d560…08d580             76 61 6c 28 20 31 2c 20 20 20 30 2c 20 20 20 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64   ┆val( 1,   0,   0,false); initcod┆
0x08d580…08d5a0             65 73 28 27 72 76 73 64 32 20 27 2c 24 30 65 33 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆es('rvsd2 ',$0e3,0, 0,addr_neutr┆
0x08d5a0…08d5c0             61 6c 2c 20 34 38 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 32 2c 20   ┆al, 48); init_interval( 1,   2, ┆
0x08d5c0…08d5e0             20 20 32 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 64 34 20 27 2c 24   ┆  2,false); initcodes('rvsd4 ',$┆
0x08d5e0…08d600             30 65 35 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 38 29 3b 0a 69 6e 69 74   ┆0e5,0, 0,addr_neutral, 48); init┆
0x08d600…08d620 (37, 1, 7)  5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 34 2c 20 20 20 34 2c 66 61 6c 73 65 29 3b 0a 69   ┆_interval( 1,   4,   4,false); i┆
0x08d620…08d640             6e 69 74 63 6f 64 65 73 28 27 72 76 73 64 36 20 27 2c 24 30 65 37 2c 30 2c 20 30 2c 61 64 64 72   ┆nitcodes('rvsd6 ',$0e7,0, 0,addr┆
0x08d640…08d660             5f 6e 65 75 74 72 61 6c 2c 20 34 38 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c   ┆_neutral, 48); init_interval( 1,┆
0x08d660…08d680             20 20 20 36 2c 20 20 20 36 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 73   ┆   6,   6,true); initcodes('revs┆
0x08d680…08d6a0             66 20 27 2c 24 30 64 39 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 39 29 3b 0a   ┆f ',$0d9,0,0,addr_neutral, 59); ┆
0x08d6a0…08d6c0             69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 73 6d 20 27 2c 24 30 63 63 2c 30 2c 30 2c 61 64 64 72   ┆initcodes('revsm ',$0cc,0,0,addr┆
0x08d6c0…08d6e0             5f 6e 65 75 74 72 61 6c 2c 31 38 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 65 76 73 77 20   ┆_neutral,181); initcodes('revsw ┆
0x08d6e0…08d700             27 2c 24 30 62 61 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 36 29 3b 0a 61 69   ┆',$0ba,2,0,addr_neutral, 36); ai┆
0x08d700…08d720             73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74   ┆s_codes[lastcode] := current_int┆
0x08d720…08d740             65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 77 30 20 27 2c 24 30 66 32 2c 30   ┆erval; initcodes('rvsw0 ',$0f2,0┆
0x08d740…08d760             2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 37 29 3b 0a 69 6e 69 74 5f 69 6e 74 65   ┆, 0,addr_neutral, 27); init_inte┆
0x08d760…08d780             72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 20 20 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f   ┆rval( 1,   0,   0,false); initco┆
0x08d780…08d7a0             64 65 73 28 27 72 76 73 77 32 20 27 2c 24 30 61 33 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74   ┆des('rvsw2 ',$0a3,0, 0,addr_neut┆
0x08d7a0…08d7c0             72 61 6c 2c 20 32 39 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 32 2c   ┆ral, 29); init_interval( 1,   2,┆
0x08d7c0…08d7e0             20 20 20 32 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 77 34 20 27 2c   ┆   2,false); initcodes('rvsw4 ',┆
0x08d7e0…08d800             24 30 61 35 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 39 29 3b 0a 69 6e 69   ┆$0a5,0, 0,addr_neutral, 29); ini┆
0x08d800…08d820 (37, 1, 8)  74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 34 2c 20 20 20 34 2c 66 61 6c 73 65 29 3b 0a   ┆t_interval( 1,   4,   4,false); ┆
0x08d820…08d840             69 6e 69 74 63 6f 64 65 73 28 27 72 76 73 77 36 20 27 2c 24 30 61 37 2c 30 2c 20 30 2c 61 64 64   ┆initcodes('rvsw6 ',$0a7,0, 0,add┆
0x08d840…08d860             72 5f 6e 65 75 74 72 61 6c 2c 20 32 39 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31   ┆r_neutral, 29); init_interval( 1┆
0x08d860…08d880             2c 20 20 20 36 2c 20 20 20 36 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 65 74   ┆,   6,   6,true); initcodes('set┆
0x08d880…08d8a0             61 64 20 27 2c 24 30 35 66 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b   ┆ad ',$05f,0,0,addr_neutral, 30);┆
0x08d8a0…08d8c0             0a 69 6e 69 74 63 6f 64 65 73 28 27 73 65 74 61 74 6d 27 2c 24 30 35 38 2c 30 2c 30 2c 61 64 64   ┆ initcodes('setatm',$058,0,0,add┆
0x08d8c0…08d8e0             72 5f 6e 65 75 74 72 61 6c 2c 20 36 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 65 74 63 72   ┆r_neutral, 65); initcodes('setcr┆
0x08d8e0…08d900             20 27 2c 24 30 35 36 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 34 37 29 3b 0a 69   ┆ ',$056,0,0,addr_neutral,147); i┆
0x08d900…08d920             6e 69 74 63 6f 64 65 73 28 27 73 65 74 64 69 20 27 2c 24 30 35 65 2c 30 2c 30 2c 61 64 64 72 5f   ┆nitcodes('setdi ',$05e,0,0,addr_┆
0x08d920…08d940             6e 65 75 74 72 61 6c 2c 31 38 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 65 74 65 71 20 27   ┆neutral,185); initcodes('seteq '┆
0x08d940…08d960             2c 24 30 35 39 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 32 36 29 3b 0a 69 6e 69   ┆,$059,0,0,addr_neutral,126); ini┆
0x08d960…08d980             74 63 6f 64 65 73 28 27 73 65 74 69 6e 20 27 2c 24 30 35 64 2c 30 2c 30 2c 61 64 64 72 5f 6e 65   ┆tcodes('setin ',$05d,0,0,addr_ne┆
0x08d980…08d9a0             75 74 72 61 6c 2c 31 38 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 65 74 72 65 20 27 2c 24   ┆utral,185); initcodes('setre ',$┆
0x08d9a0…08d9c0             30 39 34 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 38 37 29 3b 0a 69 6e 69 74 63   ┆094,0,0,addr_neutral,187); initc┆
0x08d9c0…08d9e0             6f 64 65 73 28 27 73 65 74 73 62 20 27 2c 24 30 35 61 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74   ┆odes('setsb ',$05a,0,0,addr_neut┆
0x08d9e0…08da00             72 61 6c 2c 31 32 36 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 65 74 73 70 20 27 2c 24 30 35   ┆ral,126); initcodes('setsp ',$05┆
0x08da00…08da20 (37, 1, 9)  62 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 32 36 29 3b 0a 69 6e 69 74 63 6f 64   ┆b,0,0,addr_neutral,126); initcod┆
0x08da20…08da40             65 73 28 27 73 65 74 73 74 20 27 2c 24 30 65 63 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61   ┆es('setst ',$0ec,0,0,addr_neutra┆
0x08da40…08da60             6c 2c 31 38 33 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 65 74 74 6d 20 27 2c 24 30 35 37 2c   ┆l,183); initcodes('settm ',$057,┆
0x08da60…08da80             30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 38 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73   ┆0,0,addr_neutral, 80); initcodes┆
0x08da80…08daa0             28 27 73 65 74 75 6e 20 27 2c 24 30 35 63 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆('setun ',$05c,0,0,addr_neutral,┆
0x08daa0…08dac0             31 38 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 68 63 20 20 20 27 2c 24 30 35 33 2c 30 2c   ┆185); initcodes('shc   ',$053,0,┆
0x08dac0…08dae0             30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆0,addr_neutral, 35); initcodes('┆
0x08dae0…08db00             73 68 63 38 20 20 27 2c 24 30 35 34 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 20   ┆shc8  ',$054,0,0,addr_neutral,  ┆
0x08db00…08db20             39 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 63 65 61 20 27 2c 24 30 65 65 2c 30 2c 30 2c   ┆9); initcodes('stcea ',$0ee,0,0,┆
0x08db20…08db40             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 31 38 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74   ┆addr_neutral,118); initcodes('st┆
0x08db40…08db60             6e 68 62 20 27 2c 24 30 38 63 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 32 29   ┆nhb ',$08c,2,0,addr_neutral, 52)┆
0x08db60…08db80             3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 73 74 63 20 27 2c 24 30 64 34 2c 30 2c 30 2c 61 64   ┆; initcodes('ststc ',$0d4,0,0,ad┆
0x08db80…08dba0             64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 31 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 67   ┆dr_neutral, 51); initcodes('stvg┆
0x08dba0…08dbc0             61 20 27 2c 24 30 64 32 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 36 29 3b 0a   ┆a ',$0d2,2,0,addr_neutral, 46); ┆
0x08dbc0…08dbe0             69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 67 62 20 27 2c 24 30 39 32 2c 32 2c 30 2c 61 64 64 72   ┆initcodes('stvgb ',$092,2,0,addr┆
0x08dbe0…08dc00             5f 6e 65 75 74 72 61 6c 2c 20 32 39 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 67 64 20   ┆_neutral, 29); initcodes('stvgd ┆
0x08dc00…08dc20 (37, 1, 10) 27 2c 24 30 66 61 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 31 29 3b 0a 69 6e   ┆',$0fa,2,0,addr_neutral, 51); in┆
0x08dc20…08dc40             69 74 63 6f 64 65 73 28 27 73 74 76 67 77 20 27 2c 24 30 62 32 2c 32 2c 30 2c 61 64 64 72 5f 6e   ┆itcodes('stvgw ',$0b2,2,0,addr_n┆
0x08dc40…08dc60             65 75 74 72 61 6c 2c 20 33 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 6c 61 20 27 2c   ┆eutral, 35); initcodes('stvla ',┆
0x08dc60…08dc80             24 30 64 36 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 36 29 3b 0a 61 69 73 5f   ┆$0d6,2,0,addr_neutral, 46); ais_┆
0x08dc80…08dca0             63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72   ┆codes[lastcode] := current_inter┆
0x08dca0…08dcc0             76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 6c 61 73 27 2c 24 30 63 61 2c 31 2c 20   ┆val; initcodes('stvlas',$0ca,1, ┆
0x08dcc0…08dce0             30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 32 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76   ┆0,addr_neutral, 42); init_interv┆
0x08dce0…08dd00             61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73   ┆al( 1,   0, 255,true); initcodes┆
0x08dd00…08dd20             28 27 73 74 76 6c 62 20 27 2c 24 30 39 36 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆('stvlb ',$096,2,0,addr_neutral,┆
0x08dd20…08dd40             20 32 39 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75 72   ┆ 29); ais_codes[lastcode] := cur┆
0x08dd40…08dd60             72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 6c 62 73   ┆rent_interval; initcodes('stvlbs┆
0x08dd60…08dd80             27 2c 24 30 38 61 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 34 29 3b 0a 69   ┆',$08a,1, 0,addr_neutral, 24); i┆
0x08dd80…08dda0             6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29 3b   ┆nit_interval( 1,   0, 255,true);┆
0x08dda0…08ddc0             0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 6c 64 20 27 2c 24 30 66 38 2c 32 2c 30 2c 61 64 64   ┆ initcodes('stvld ',$0f8,2,0,add┆
0x08ddc0…08dde0             72 5f 6e 65 75 74 72 61 6c 2c 20 35 31 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f   ┆r_neutral, 51); ais_codes[lastco┆
0x08dde0…08de00             64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64   ┆de] := current_interval; initcod┆
0x08de00…08de20 (37, 1, 11) 65 73 28 27 73 74 76 6c 64 73 27 2c 24 30 65 61 2c 31 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72   ┆es('stvlds',$0ea,1, 0,addr_neutr┆
0x08de20…08de40             61 6c 2c 20 34 36 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20   ┆al, 46); init_interval( 1,   0, ┆
0x08de40…08de60             32 35 35 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 6c 77 20 27 2c 24 30   ┆255,true); initcodes('stvlw ',$0┆
0x08de60…08de80             62 36 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 35 29 3b 0a 61 69 73 5f 63 6f   ┆b6,2,0,addr_neutral, 35); ais_co┆
0x08de80…08dea0             64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61   ┆des[lastcode] := current_interva┆
0x08dea0…08dec0             6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 6c 77 73 27 2c 24 30 61 61 2c 31 2c 20 30 2c   ┆l; initcodes('stvlws',$0aa,1, 0,┆
0x08dec0…08dee0             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c   ┆addr_neutral, 30); init_interval┆
0x08dee0…08df00             28 20 31 2c 20 20 20 30 2c 20 32 35 35 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆( 1,   0, 255,true); initcodes('┆
0x08df00…08df20             73 74 76 73 61 20 27 2c 24 30 39 63 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34   ┆stvsa ',$09c,2,0,addr_neutral, 4┆
0x08df20…08df40             38 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65   ┆8); ais_codes[lastcode] := curre┆
0x08df40…08df60             6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 61 30 20 27 2c   ┆nt_interval; initcodes('svsa0 ',┆
0x08df60…08df80             24 30 66 35 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 31 29 3b 0a 69 6e 69   ┆$0f5,0, 0,addr_neutral, 41); ini┆
0x08df80…08dfa0             74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 20 20 30 2c 66 61 6c 73 65 29 3b 0a   ┆t_interval( 1,   0,   0,false); ┆
0x08dfa0…08dfc0             69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 61 32 20 27 2c 24 30 63 32 2c 30 2c 20 30 2c 61 64 64   ┆initcodes('svsa2 ',$0c2,0, 0,add┆
0x08dfc0…08dfe0             72 5f 6e 65 75 74 72 61 6c 2c 20 34 33 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31   ┆r_neutral, 43); init_interval( 1┆
0x08dfe0…08e000             2c 20 20 20 32 2c 20 20 20 32 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76   ┆,   2,   2,false); initcodes('sv┆
0x08e000…08e020 (37, 1, 12) 73 61 34 20 27 2c 24 30 63 34 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 33   ┆sa4 ',$0c4,0, 0,addr_neutral, 43┆
0x08e020…08e040             29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 34 2c 20 20 20 34 2c 66 61   ┆); init_interval( 1,   4,   4,fa┆
0x08e040…08e060             6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 61 36 20 27 2c 24 30 63 36 2c 30 2c   ┆lse); initcodes('svsa6 ',$0c6,0,┆
0x08e060…08e080             20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 34 33 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72   ┆ 0,addr_neutral, 43); init_inter┆
0x08e080…08e0a0             76 61 6c 28 20 31 2c 20 20 20 36 2c 20 20 20 36 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65   ┆val( 1,   6,   6,true); initcode┆
0x08e0a0…08e0c0             73 28 27 73 74 76 73 62 20 27 2c 24 30 39 38 2c 32 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c   ┆s('stvsb ',$098,2,0,addr_neutral┆
0x08e0c0…08e0e0             2c 20 33 30 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63 6f 64 65 5d 20 3a 3d 20 63 75   ┆, 30); ais_codes[lastcode] := cu┆
0x08e0e0…08e100             72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 62 30   ┆rrent_interval; initcodes('svsb0┆
0x08e100…08e120             20 27 2c 24 30 66 31 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 32 29 3b 0a   ┆ ',$0f1,0, 0,addr_neutral, 22); ┆
0x08e120…08e140             69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 30 2c 20 20 20 30 2c 66 61 6c 73 65   ┆init_interval( 1,   0,   0,false┆
0x08e140…08e160             29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 62 31 20 27 2c 24 30 39 39 2c 30 2c 20 30 2c   ┆); initcodes('svsb1 ',$099,0, 0,┆
0x08e160…08e180             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 34 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c   ┆addr_neutral, 24); init_interval┆
0x08e180…08e1a0             28 20 31 2c 20 20 20 31 2c 20 20 20 31 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28   ┆( 1,   1,   1,false); initcodes(┆
0x08e1a0…08e1c0             27 73 76 73 62 32 20 27 2c 24 30 38 32 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆'svsb2 ',$082,0, 0,addr_neutral,┆
0x08e1c0…08e1e0             20 32 34 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 32 2c 20 20 20 32   ┆ 24); init_interval( 1,   2,   2┆
0x08e1e0…08e200             2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 62 33 20 27 2c 24 30 39 62   ┆,false); initcodes('svsb3 ',$09b┆
0x08e200…08e220 (37, 1, 13) 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 34 29 3b 0a 69 6e 69 74 5f 69 6e   ┆,0, 0,addr_neutral, 24); init_in┆
0x08e220…08e240             74 65 72 76 61 6c 28 20 31 2c 20 20 20 33 2c 20 20 20 33 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74   ┆terval( 1,   3,   3,false); init┆
0x08e240…08e260             63 6f 64 65 73 28 27 73 76 73 62 34 20 27 2c 24 30 38 34 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65   ┆codes('svsb4 ',$084,0, 0,addr_ne┆
0x08e260…08e280             75 74 72 61 6c 2c 20 32 34 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20   ┆utral, 24); init_interval( 1,   ┆
0x08e280…08e2a0             34 2c 20 20 20 34 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 62 35 20   ┆4,   4,false); initcodes('svsb5 ┆
0x08e2a0…08e2c0             27 2c 24 30 39 64 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 34 29 3b 0a 69   ┆',$09d,0, 0,addr_neutral, 24); i┆
0x08e2c0…08e2e0             6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 35 2c 20 20 20 35 2c 66 61 6c 73 65 29   ┆nit_interval( 1,   5,   5,false)┆
0x08e2e0…08e300             3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 62 36 20 27 2c 24 30 38 36 2c 30 2c 20 30 2c 61   ┆; initcodes('svsb6 ',$086,0, 0,a┆
0x08e300…08e320             64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32 34 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28   ┆ddr_neutral, 24); init_interval(┆
0x08e320…08e340             20 31 2c 20 20 20 36 2c 20 20 20 36 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆ 1,   6,   6,false); initcodes('┆
0x08e340…08e360             73 76 73 62 37 20 27 2c 24 30 39 66 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20   ┆svsb7 ',$09f,0, 0,addr_neutral, ┆
0x08e360…08e380             32 34 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 37 2c 20 20 20 37 2c   ┆24); init_interval( 1,   7,   7,┆
0x08e380…08e3a0             74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 73 64 20 27 2c 24 30 39 65 2c 32   ┆true); initcodes('stvsd ',$09e,2┆
0x08e3a0…08e3c0             2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 35 33 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28   ┆,0,addr_neutral, 53); initcodes(┆
0x08e3c0…08e3e0             27 73 74 76 73 66 20 27 2c 24 30 64 38 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20   ┆'stvsf ',$0d8,0,0,addr_neutral, ┆
0x08e3e0…08e400             38 39 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 74 76 73 77 20 27 2c 24 30 39 61 2c 32 2c 30   ┆89); initcodes('stvsw ',$09a,2,0┆
0x08e400…08e420 (37, 1, 14) 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 36 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61   ┆,addr_neutral, 36); ais_codes[la┆
0x08e420…08e440             73 74 63 6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69   ┆stcode] := current_interval; ini┆
0x08e440…08e460             74 63 6f 64 65 73 28 27 73 76 73 77 30 20 27 2c 24 30 66 33 2c 30 2c 20 30 2c 61 64 64 72 5f 6e   ┆tcodes('svsw0 ',$0f3,0, 0,addr_n┆
0x08e460…08e480             65 75 74 72 61 6c 2c 20 32 38 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20   ┆eutral, 28); init_interval( 1,  ┆
0x08e480…08e4a0             20 30 2c 20 20 20 30 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 77 32   ┆ 0,   0,false); initcodes('svsw2┆
0x08e4a0…08e4c0             20 27 2c 24 30 61 32 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a   ┆ ',$0a2,0, 0,addr_neutral, 30); ┆
0x08e4c0…08e4e0             69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 32 2c 20 20 20 32 2c 66 61 6c 73 65   ┆init_interval( 1,   2,   2,false┆
0x08e4e0…08e500             29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 76 73 77 34 20 27 2c 24 30 61 34 2c 30 2c 20 30 2c   ┆); initcodes('svsw4 ',$0a4,0, 0,┆
0x08e500…08e520             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c   ┆addr_neutral, 30); init_interval┆
0x08e520…08e540             28 20 31 2c 20 20 20 34 2c 20 20 20 34 2c 66 61 6c 73 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28   ┆( 1,   4,   4,false); initcodes(┆
0x08e540…08e560             27 73 76 73 77 36 20 27 2c 24 30 61 36 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆'svsw6 ',$0a6,0, 0,addr_neutral,┆
0x08e560…08e580             20 33 30 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 36 2c 20 20 20 36   ┆ 30); init_interval( 1,   6,   6┆
0x08e580…08e5a0             2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 73 75 62 20 20 20 27 2c 24 30 34 35 2c   ┆,true); initcodes('sub   ',$045,┆
0x08e5a0…08e5c0             30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 33 29 3b 0a 69 6e 69 74 63 6f 64 65 73   ┆0,0,addr_neutral, 13); initcodes┆
0x08e5c0…08e5e0             28 27 74 65 71 61 64 20 27 2c 24 30 33 63 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆('teqad ',$03c,0,0,addr_neutral,┆
0x08e5e0…08e600             20 31 37 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 74 6c 6f 63 6b 20 27 2c 24 30 33 62 2c 30 2c   ┆ 17); initcodes('tlock ',$03b,0,┆
0x08e600…08e620 (37, 1, 15) 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 32 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27   ┆0,addr_neutral, 32); initcodes('┆
0x08e620…08e640             74 6e 69 6c 6c 20 27 2c 24 30 33 64 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 32   ┆tnill ',$03d,0,0,addr_neutral, 2┆
0x08e640…08e660             35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 74 6f 70 65 6e 20 27 2c 24 30 33 61 2c 30 2c 30 2c   ┆5); initcodes('topen ',$03a,0,0,┆
0x08e660…08e680             61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 33 30 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 75 61   ┆addr_neutral, 30); initcodes('ua┆
0x08e680…08e6a0             64 64 20 20 27 2c 24 30 34 32 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 35 29   ┆dd  ',$042,0,0,addr_neutral, 15)┆
0x08e6a0…08e6c0             3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 75 61 64 68 77 20 27 2c 24 30 65 36 2c 32 2c 30 2c 61 64   ┆; initcodes('uadhw ',$0e6,2,0,ad┆
0x08e6c0…08e6e0             64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 36 29 3b 0a 61 69 73 5f 63 6f 64 65 73 5b 6c 61 73 74 63   ┆dr_neutral, 16); ais_codes[lastc┆
0x08e6e0…08e700             6f 64 65 5d 20 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 74 65 72 76 61 6c 3b 0a 69 6e 69 74 63 6f   ┆ode] := current_interval; initco┆
0x08e700…08e720             64 65 73 28 27 75 61 64 68 77 31 27 2c 24 30 33 30 2c 30 2c 20 30 2c 61 64 64 72 5f 6e 65 75 74   ┆des('uadhw1',$030,0, 0,addr_neut┆
0x08e720…08e740             72 61 6c 2c 20 20 39 29 3b 0a 69 6e 69 74 5f 69 6e 74 65 72 76 61 6c 28 20 31 2c 20 20 20 31 2c   ┆ral,  9); init_interval( 1,   1,┆
0x08e740…08e760             20 20 20 31 2c 74 72 75 65 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 75 64 69 76 20 20 27 2c 24   ┆   1,true); initcodes('udiv  ',$┆
0x08e760…08e780             30 34 37 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 33 37 29 3b 0a 69 6e 69 74 63   ┆047,0,0,addr_neutral,137); initc┆
0x08e780…08e7a0             6f 64 65 73 28 27 75 6c 74 20 20 20 27 2c 24 30 33 31 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74   ┆odes('ult   ',$031,0,0,addr_neut┆
0x08e7a0…08e7c0             72 61 6c 2c 20 31 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 75 6d 6f 64 20 20 27 2c 24 30 34   ┆ral, 15); initcodes('umod  ',$04┆
0x08e7c0…08e7e0             38 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 31 33 37 29 3b 0a 69 6e 69 74 63 6f 64   ┆8,0,0,addr_neutral,137); initcod┆
0x08e7e0…08e800             65 73 28 27 75 6d 75 6c 20 20 27 2c 24 30 34 36 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61   ┆es('umul  ',$046,0,0,addr_neutra┆
0x08e800…08e820 (38, 0, 1)  6c 2c 31 35 33 29 3b 0a 69 6e 69 74 63 6f 64 65 73 28 27 75 73 75 62 20 20 27 2c 24 30 34 33 2c   ┆l,153); initcodes('usub  ',$043,┆
0x08e820…08e840             30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c 20 31 35 29 3b 0a 69 6e 69 74 63 6f 64 65 73   ┆0,0,addr_neutral, 15); initcodes┆
0x08e840…08e860             28 27 78 6f 72 20 20 20 27 2c 24 30 34 65 2c 30 2c 30 2c 61 64 64 72 5f 6e 65 75 74 72 61 6c 2c   ┆('xor   ',$04e,0,0,addr_neutral,┆
0x08e860…08e880             20 31 31 29 3b 0a 0a 0a 72 65 73 65 72 76 65 5f 6d 61 78 3a 3d 20 30 3b 0a 0a 6c 69 6e 65 5f 73   ┆ 11);   reserve_max:= 0;  line_s┆
0x08e880…08e8a0             70 61 63 69 6e 67 3a 3d 20 64 65 66 61 75 6c 74 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 70 61 63   ┆pacing:= default_line_table_spac┆
0x08e8a0…08e8c0             69 6e 67 3b 0a 0a 73 65 67 6d 65 6e 74 5f 73 69 7a 65 3a 3d 20 64 65 66 61 75 6c 74 5f 62 75 66   ┆ing;  segment_size:= default_buf┆
0x08e8c0…08e8e0             66 65 72 5f 73 69 7a 65 20 2d 20 31 3b 0a 63 6f 64 65 73 69 7a 65 5f 6d 65 74 3a 3d 20 66 61 6c   ┆fer_size - 1; codesize_met:= fal┆
0x08e8e0…08e900             73 65 3b 0a 0a 6c 69 6e 65 5f 61 64 64 3a 3d 20 30 3b 0a 0a 63 75 72 72 65 6e 74 5f 73 6f 75 72   ┆se;  line_add:= 0;  current_sour┆
0x08e900…08e920             63 65 5f 6c 69 6e 65 3a 3d 20 30 3b 0a 6c 69 6e 65 5f 74 61 62 6c 65 5f 64 65 73 63 72 69 70 74   ┆ce_line:= 0; line_table_descript┆
0x08e920…08e940             6f 72 3a 3d 20 6e 69 6c 5f 6e 61 6d 65 3b 0a 0a 65 6e 64 3b 20 20 28 2a 20 69 6e 69 74 69 61 6c   ┆or:= nil_name;  end;  (* initial┆
0x08e940…08e960             69 7a 61 74 69 6f 6e 20 2a 29 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 69 74 5f 62 65 74 77   ┆ization *)   procedure init_betw┆
0x08e960…08e980             65 65 6e 5f 63 6f 64 65 5f 62 6c 6f 63 6b 73 3b 0a 0a 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20   ┆een_code_blocks;  (* initialize ┆
0x08e980…08e9a0             76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 69 6e 74 65 72 6e 61 6c 20 73 74 72 75 63 74 75 72 65   ┆variables and internal structure┆
0x08e9a0…08e9c0             73 2c 20 72 65 61 64 79 20 66 6f 72 0a 61 20 6e 65 77 20 62 6c 6f 63 6b 20 6f 66 20 63 6f 64 65   ┆s, ready for a new block of code┆
0x08e9c0…08e9e0             20 2a 29 0a 0a 62 65 67 69 6e 0a 0a 69 6e 74 65 72 6e 61 6c 5f 6c 69 6e 6b 5f 6c 69 73 74 3a 3d   ┆ *)  begin  internal_link_list:=┆
0x08e9e0…08ea00             20 6e 69 6c 5f 6e 61 6d 65 3b 0a 0a 74 6f 74 61 6c 5f 74 69 6d 65 3a 3d 20 30 3b 0a 0a 70 72 6f   ┆ nil_name;  total_time:= 0;  pro┆
0x08ea00…08ea20 (38, 0, 2)  67 72 61 6d 5f 6b 69 6e 64 3a 3d 20 63 6c 6f 73 65 64 5f 72 6f 75 74 69 6e 65 3b 0a 0a 63 75 72   ┆gram_kind:= closed_routine;  cur┆
0x08ea20…08ea40             72 65 6e 74 5f 6a 75 6d 70 5f 70 74 72 3a 3d 20 6e 69 6c 5f 6a 75 6d 70 5f 70 74 72 3b 0a 0a 63   ┆rent_jump_ptr:= nil_jump_ptr;  c┆
0x08ea40…08ea60             75 72 5f 6c 61 62 5f 70 74 72 3a 3d 20 6e 69 6c 5f 6c 61 62 65 6c 5f 70 74 72 3b 0a 0a 63 75 72   ┆ur_lab_ptr:= nil_label_ptr;  cur┆
0x08ea60…08ea80             72 65 6e 74 5f 73 65 67 6d 65 6e 74 3a 3d 20 31 3b 0a 0a 63 75 72 72 65 6e 74 5f 6f 66 66 73 65   ┆rent_segment:= 1;  current_offse┆
0x08ea80…08eaa0             74 3a 3d 20 30 3b 0a 0a 72 65 77 72 69 74 65 28 20 63 6f 64 65 66 69 6c 65 2c 20 31 20 29 3b 20   ┆t:= 0;  rewrite( codefile, 1 ); ┆
0x08eaa0…08eac0             28 2a 20 77 6f 72 6b 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 63 6f 64 65 20 2a 29 0a 0a 6c 61   ┆(* work file for the code *)  la┆
0x08eac0…08eae0             73 74 5f 70 61 67 65 3a 3d 20 66 61 6c 73 65 3b 0a 0a 67 65 6e 65 72 61 74 65 5f 6c 69 6e 65 5f   ┆st_page:= false;  generate_line_┆
0x08eae0…08eb00             69 6e 66 6f 3a 3d 20 74 72 75 65 3b 0a 0a 73 70 61 63 69 6e 67 5f 6d 65 74 3a 3d 20 66 61 6c 73   ┆info:= true;  spacing_met:= fals┆
0x08eb00…08eb20             65 3b 0a 0a 6c 69 6e 65 69 6e 66 6f 5f 6d 65 74 3a 3d 20 66 61 6c 73 65 3b 0a 28 2a 24 52 2d 2a   ┆e;  lineinfo_met:= false; (*$R-*┆
0x08eb20…08eb40             29 0a 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 69 7a 65 3a 3d 20 28 73 65 67 6d 65 6e 74 5f 73 69 7a   ┆) line_table_size:= (segment_siz┆
0x08eb40…08eb60             65 20 2b 20 31 20 2d 20 66 69 78 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 70 61 72 74 29 20 64 69 76   ┆e + 1 - fix_line_table_part) div┆
0x08eb60…08eb80             0a 28 6c 69 6e 65 5f 73 70 61 63 69 6e 67 20 2b 20 31 29 20 2b 20 66 69 78 5f 6c 69 6e 65 5f 74   ┆ (line_spacing + 1) + fix_line_t┆
0x08eb80…08eba0             61 62 6c 65 5f 70 61 72 74 3b 0a 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 69 7a 65 3a 3d 20 28 6c 69   ┆able_part; line_table_size:= (li┆
0x08eba0…08ebc0             6e 65 5f 74 61 62 6c 65 5f 73 69 7a 65 20 2b 20 31 29 20 64 69 76 20 32 20 2a 20 32 3b 20 28 2a   ┆ne_table_size + 1) div 2 * 2; (*┆
0x08ebc0…08ebe0             20 69 6e 74 65 67 72 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 77 6f 72 64 73 20 2a 29 0a 0a 72 65   ┆ integral number of words *)  re┆
0x08ebe0…08ec00             6d 5f 62 75 66 66 65 72 5f 73 69 7a 65 3a 3d 20 73 65 67 6d 65 6e 74 5f 73 69 7a 65 20 2b 20 31   ┆m_buffer_size:= segment_size + 1┆
0x08ec00…08ec20 (38, 0, 3)  20 2d 20 6c 6f 6e 67 6a 75 6d 70 5f 73 69 7a 65 3b 20 28 2a 20 70 72 65 70 61 72 65 64 20 66 6f   ┆ - longjump_size; (* prepared fo┆
0x08ec20…08ec40             72 20 61 20 63 6c 6f 73 65 64 20 72 6f 75 74 69 6e 65 20 6f 72 20 70 72 6f 63 65 73 73 20 2a 29   ┆r a closed routine or process *)┆
0x08ec40…08ec60             0a 0a 6c 69 6e 65 5f 74 61 62 6c 65 5f 64 65 73 63 72 69 70 74 6f 72 3a 3d 20 67 65 74 6e 61 6d   ┆  line_table_descriptor:= getnam┆
0x08ec60…08ec80             65 6e 6f 64 65 3b 0a 0a 73 74 61 72 74 5f 6f 66 5f 6c 69 6e 65 5f 74 61 62 6c 65 3a 3d 20 73 65   ┆enode;  start_of_line_table:= se┆
0x08ec80…08eca0             67 6d 65 6e 74 5f 73 69 7a 65 20 2b 20 31 20 2d 20 6c 69 6e 65 5f 74 61 62 6c 65 5f 73 69 7a 65   ┆gment_size + 1 - line_table_size┆
0x08eca0…08ecc0             3b 0a 0a 70 72 65 70 61 72 65 5f 6c 69 6e 65 74 61 62 6c 65 3b 20 28 2a 20 6f 74 68 65 72 77 69   ┆;  prepare_linetable; (* otherwi┆
0x08ecc0…08ece0             73 65 20 74 68 65 20 6c 69 6e 65 20 74 61 62 6c 65 20 69 73 20 73 65 74 20 75 70 20 61 66 74 65   ┆se the line table is set up afte┆
0x08ece0…08ed00             72 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 2a 29 0a 0a 0a 65 6e 64 3b 20 28 2a 20 69 6e 69 74 69 61   ┆r allocation *)   end; (* initia┆
0x08ed00…08ed20             6c 69 7a 61 74 69 6f 6e 20 6f 66 20 76 61 72 69 61 62 6c 65 73 20 75 73 65 64 20 70 65 72 2d 62   ┆lization of variables used per-b┆
0x08ed20…08ed40             6c 6f 63 6b 20 6f 66 20 63 6f 64 65 20 2a 29 0a 0a 0a 0a 0a 0c 0a 66 75 6e 63 74 69 6f 6e 20 61   ┆lock of code *)       function a┆
0x08ed40…08ed60             64 64 5f 75 6e 73 61 74 69 73 66 69 65 64 5f 6e 6f 64 65 20 28 20 63 68 61 69 6e 73 74 61 72 74   ┆dd_unsatisfied_node ( chainstart┆
0x08ed60…08ed80             20 3a 20 75 6e 73 61 74 72 65 66 5f 70 74 72 3b 0a 69 63 5f 72 65 6c 20 3a 20 62 6f 6f 6c 65 61   ┆ : unsatref_ptr; ic_rel : boolea┆
0x08ed80…08eda0             6e 3b 20 62 79 74 65 5f 73 69 7a 65 20 3a 20 69 6e 74 65 67 65 72 29 3a 20 75 6e 73 61 74 72 65   ┆n; byte_size : integer): unsatre┆
0x08eda0…08edc0             66 5f 70 74 72 3b 0a 0a 28 2a 20 67 65 74 20 61 20 6e 65 77 20 6e 6f 64 65 20 66 6f 72 20 61 20   ┆f_ptr;  (* get a new node for a ┆
0x08edc0…08ede0             75 73 65 20 6f 66 20 61 20 6c 61 62 65 6c 20 6f 72 20 61 20 63 6f 6e 73 74 61 6e 74 2c 20 61 6e   ┆use of a label or a constant, an┆
0x08ede0…08ee00             64 20 69 6e 69 74 69 61 6c 69 7a 65 0a 74 68 65 20 6e 6f 64 65 2c 20 62 79 74 65 5f 73 69 7a 65   ┆d initialize the node, byte_size┆
0x08ee00…08ee20 (38, 0, 4)  20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 74 6f 20 63 68 61 6e 67   ┆ is the number of bytes to chang┆
0x08ee20…08ee40             65 20 77 68 65 6e 20 74 68 65 20 73 79 6d 62 6f 6c 20 69 73 20 64 65 66 69 6e 65 64 20 2a 29 0a   ┆e when the symbol is defined *) ┆
0x08ee40…08ee60             76 61 72 0a 6c 6f 63 61 6c 6e 6f 64 65 20 3a 20 75 6e 73 61 74 72 65 66 5f 70 74 72 3b 0a 0a 62   ┆var localnode : unsatref_ptr;  b┆
0x08ee60…08ee80             65 67 69 6e 0a 69 66 20 75 6e 73 61 74 72 65 66 5f 66 72 65 65 6c 69 73 74 20 3d 20 75 6e 73 61   ┆egin if unsatref_freelist = unsa┆
0x08ee80…08eea0             74 69 73 66 69 65 64 5f 6e 69 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6e 65 77 28 6c 6f 63 61 6c   ┆tisfied_nil then begin new(local┆
0x08eea0…08eec0             6e 6f 64 65 29 3b 0a 73 75 72 76 65 79 5f 75 6e 73 61 74 5f 6e 6f 64 65 73 3a 3d 20 73 75 72 76   ┆node); survey_unsat_nodes:= surv┆
0x08eec0…08eee0             65 79 5f 75 6e 73 61 74 5f 6e 6f 64 65 73 2b 31 3b 0a 6c 6f 63 61 6c 6e 6f 64 65 5e 2e 6e 65 78   ┆ey_unsat_nodes+1; localnode^.nex┆
0x08eee0…08ef00             74 5f 72 65 66 3a 3d 20 75 6e 73 61 74 69 73 66 69 65 64 5f 6e 69 6c 3b 0a 65 6e 64 0a 65 6c 73   ┆t_ref:= unsatisfied_nil; end els┆
0x08ef00…08ef20             65 0a 6c 6f 63 61 6c 6e 6f 64 65 3a 3d 20 75 6e 73 61 74 72 65 66 5f 66 72 65 65 6c 69 73 74 3b   ┆e localnode:= unsatref_freelist;┆
0x08ef20…08ef40             0a 0a 77 69 74 68 20 20 6c 6f 63 61 6c 6e 6f 64 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 75 6e 73   ┆  with  localnode ^ do begin uns┆
0x08ef40…08ef60             61 74 72 65 66 5f 66 72 65 65 6c 69 73 74 3a 3d 20 6e 65 78 74 5f 72 65 66 3b 0a 6e 65 78 74 5f   ┆atref_freelist:= next_ref; next_┆
0x08ef60…08ef80             72 65 66 3a 3d 20 63 68 61 69 6e 73 74 61 72 74 3b 0a 69 63 5f 72 65 6c 61 74 69 76 65 3a 3d 20   ┆ref:= chainstart; ic_relative:= ┆
0x08ef80…08efa0             69 63 5f 72 65 6c 3b 0a 75 73 65 5f 73 65 67 6d 65 6e 74 3a 3d 20 63 75 72 72 65 6e 74 5f 73 65   ┆ic_rel; use_segment:= current_se┆
0x08efa0…08efc0             67 6d 65 6e 74 3b 0a 28 2a 24 52 2d 2a 29 0a 75 73 65 5f 6f 66 66 73 65 74 3a 3d 20 63 75 72 72   ┆gment; (*$R-*) use_offset:= curr┆
0x08efc0…08efe0             65 6e 74 5f 6f 66 66 73 65 74 20 2b 20 62 79 74 65 5f 73 69 7a 65 20 2d 20 31 3b 20 28 2a 20 6c   ┆ent_offset + byte_size - 1; (* l┆
0x08efe0…08f000             65 61 73 74 20 73 69 67 6e 69 66 69 63 61 6e 74 20 62 79 74 65 20 2a 29 0a 28 2a 24 52 2b 2a 29   ┆east significant byte *) (*$R+*)┆
0x08f000…08f020 (38, 0, 5)  0a 73 69 7a 65 3a 3d 20 62 79 74 65 5f 73 69 7a 65 3b 0a 65 6e 64 3b 0a 0a 61 64 64 5f 75 6e 73   ┆ size:= byte_size; end;  add_uns┆
0x08f020…08f040             61 74 69 73 66 69 65 64 5f 6e 6f 64 65 3a 3d 20 6c 6f 63 61 6c 6e 6f 64 65 3b 0a 0a 65 6e 64 3b   ┆atisfied_node:= localnode;  end;┆
0x08f040…08f060             20 28 2a 20 61 64 64 20 75 6e 73 61 74 69 73 66 69 65 64 20 6e 6f 64 65 20 2a 29 0a 0a 0a 70 72   ┆ (* add unsatisfied node *)   pr┆
0x08f060…08f080             6f 63 65 64 75 72 65 20 72 65 6d 6f 76 65 5f 75 6e 73 61 74 69 73 66 69 65 64 5f 6e 6f 64 65 28   ┆ocedure remove_unsatisfied_node(┆
0x08f080…08f0a0             20 76 61 72 20 63 68 61 69 6e 73 74 61 72 74 20 3a 20 75 6e 73 61 74 72 65 66 5f 70 74 72 29 3b   ┆ var chainstart : unsatref_ptr);┆
0x08f0a0…08f0c0             0a 0a 28 2a 20 69 6e 73 65 72 74 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 73 70 65 63 69 66 69 65   ┆  (* insert the element specifie┆
0x08f0c0…08f0e0             64 20 62 79 20 63 68 61 69 6e 73 74 61 72 74 20 69 6e 74 6f 20 74 68 65 20 66 72 65 65 20 6c 69   ┆d by chainstart into the free li┆
0x08f0e0…08f100             73 74 20 61 6e 64 0a 6c 65 74 20 63 68 61 69 6e 73 74 61 72 74 20 64 65 6e 6f 74 65 20 74 68 65   ┆st and let chainstart denote the┆
0x08f100…08f120             20 73 75 63 63 65 73 73 6f 72 20 6f 66 20 74 68 65 20 72 65 6d 6f 76 65 64 20 65 6c 65 6d 65 6e   ┆ successor of the removed elemen┆
0x08f120…08f140             74 20 2a 29 0a 0a 76 61 72 0a 6c 6f 63 61 6c 72 65 73 75 6c 74 20 3a 20 75 6e 73 61 74 72 65 66   ┆t *)  var localresult : unsatref┆
0x08f140…08f160             5f 70 74 72 3b 0a 0a 62 65 67 69 6e 0a 77 69 74 68 20 20 63 68 61 69 6e 73 74 61 72 74 20 5e 20   ┆_ptr;  begin with  chainstart ^ ┆
0x08f160…08f180             64 6f 0a 62 65 67 69 6e 0a 6c 6f 63 61 6c 72 65 73 75 6c 74 3a 3d 20 6e 65 78 74 5f 72 65 66 3b   ┆do begin localresult:= next_ref;┆
0x08f180…08f1a0             0a 6e 65 78 74 5f 72 65 66 3a 3d 20 75 6e 73 61 74 72 65 66 5f 66 72 65 65 6c 69 73 74 3b 0a 75   ┆ next_ref:= unsatref_freelist; u┆
0x08f1a0…08f1c0             6e 73 61 74 72 65 66 5f 66 72 65 65 6c 69 73 74 3a 3d 20 63 68 61 69 6e 73 74 61 72 74 3b 0a 65   ┆nsatref_freelist:= chainstart; e┆
0x08f1c0…08f1e0             6e 64 3b 0a 0a 63 68 61 69 6e 73 74 61 72 74 3a 3d 20 6c 6f 63 61 6c 72 65 73 75 6c 74 3b 0a 0a   ┆nd;  chainstart:= localresult;  ┆
0x08f1e0…08f200             65 6e 64 3b 20 28 2a 20 72 65 6d 6f 76 65 20 75 6e 73 61 74 69 73 66 69 65 64 20 6e 6f 64 65 20   ┆end; (* remove unsatisfied node ┆
0x08f200…08f220 (38, 0, 6)  2a 29 0a 0c 0a 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 5f 6e 61 6d 65 28 6e 61 6d 65 20 3a   ┆*)   function search_name(name :┆
0x08f220…08f240             20 6e 61 6d 65 73 74 72 69 6e 67 3b 20 6e 61 6d 65 6c 69 73 74 20 3a 20 6e 61 6d 65 5f 70 74 72   ┆ namestring; namelist : name_ptr┆
0x08f240…08f260             3b 0a 69 6e 73 65 72 74 20 3a 20 62 6f 6f 6c 65 61 6e 20 29 20 3a 20 6e 61 6d 65 5f 70 74 72 3b   ┆; insert : boolean ) : name_ptr;┆
0x08f260…08f280             0a 0a 28 2a 20 6c 6f 6f 6b 75 70 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 6c 69 73 74 20 73 74 61   ┆  (* lookup name in the list sta┆
0x08f280…08f2a0             72 74 69 6e 67 20 61 74 20 6e 61 6d 65 6c 69 73 74 20 5e 2c 0a 69 66 20 6e 6f 74 20 66 6f 75 6e   ┆rting at namelist ^, if not foun┆
0x08f2a0…08f2c0             64 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 6e 20 61 64 64 20 61 20 6e 65 77 20 6e 61 6d 65   ┆d and insert then add a new name┆
0x08f2c0…08f2e0             20 6e 6f 64 65 20 61 73 20 74 68 65 0a 73 75 63 63 65 73 73 6f 72 20 6f 66 20 6e 61 6d 65 6c 69   ┆ node as the successor of nameli┆
0x08f2e0…08f300             73 74 20 5e 2c 0a 69 66 20 6e 6f 74 20 66 6f 75 6e 64 20 61 6e 64 20 6e 6f 74 20 69 6e 73 65 72   ┆st ^, if not found and not inser┆
0x08f300…08f320             74 20 74 68 65 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 75 6c 74 0a 62 65 63 6f 6d   ┆t then the function result becom┆
0x08f320…08f340             65 73 20 6e 69 6c 5f 6e 61 6d 65 2c 20 69 66 20 66 6f 75 6e 64 20 6f 72 20 69 6e 73 65 72 74 65   ┆es nil_name, if found or inserte┆
0x08f340…08f360             64 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 75 6c 74 0a 62 65 63 6f 6d 65 73 20 74 68   ┆d the function result becomes th┆
0x08f360…08f380             65 20 6e 61 6d 65 20 74 61 62 6c 65 20 65 6e 74 72 79 20 6f 66 20 74 68 65 20 73 65 61 72 63 68   ┆e name table entry of the search┆
0x08f380…08f3a0             65 64 20 6e 61 6d 65 20 2a 29 0a 0a 76 61 72 0a 6c 6f 63 61 6c 72 65 73 75 6c 74 20 3a 20 6e 61   ┆ed name *)  var localresult : na┆
0x08f3a0…08f3c0             6d 65 5f 70 74 72 3b 0a 66 6f 75 6e 64 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 0a 62 65 67 69 6e 0a   ┆me_ptr; found : boolean;  begin ┆
0x08f3c0…08f3e0             6c 6f 63 61 6c 72 65 73 75 6c 74 3a 3d 20 6e 61 6d 65 6c 69 73 74 3b 0a 66 6f 75 6e 64 3a 3d 20   ┆localresult:= namelist; found:= ┆
0x08f3e0…08f400             66 61 6c 73 65 3b 0a 0a 77 68 69 6c 65 20 28 6c 6f 63 61 6c 72 65 73 75 6c 74 20 3c 3e 20 6e 69   ┆false;  while (localresult <> ni┆
0x08f400…08f420 (38, 0, 7)  6c 5f 6e 61 6d 65 29 20 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 20 64 6f 0a 77 69 74 68 20 6c 6f   ┆l_name) and not found do with lo┆
0x08f420…08f440             63 61 6c 72 65 73 75 6c 74 20 5e 20 64 6f 0a 69 66 20 6e 61 6d 65 70 61 72 74 20 3d 20 6e 61 6d   ┆calresult ^ do if namepart = nam┆
0x08f440…08f460             65 20 74 68 65 6e 0a 66 6f 75 6e 64 3a 3d 20 74 72 75 65 0a 65 6c 73 65 0a 6c 6f 63 61 6c 72 65   ┆e then found:= true else localre┆
0x08f460…08f480             73 75 6c 74 3a 3d 20 6e 65 78 74 5f 6e 61 6d 65 3b 0a 0a 69 66 20 6e 6f 74 20 66 6f 75 6e 64 20   ┆sult:= next_name;  if not found ┆
0x08f480…08f4a0             61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 6e 0a 62 65 67 69 6e 20 28 2a 20 69 6e 73 65 72 20 74   ┆and insert then begin (* inser t┆
0x08f4a0…08f4c0             68 65 20 6e 61 6d 65 20 61 73 20 73 75 63 63 65 73 73 6f 72 20 6f 66 20 6e 61 6d 65 6c 69 73 74   ┆he name as successor of namelist┆
0x08f4c0…08f4e0             20 2a 29 0a 6c 6f 63 61 6c 72 65 73 75 6c 74 3a 3d 20 67 65 74 6e 61 6d 65 6e 6f 64 65 3b 0a 77   ┆ *) localresult:= getnamenode; w┆
0x08f4e0…08f500             69 74 68 20 6c 6f 63 61 6c 72 65 73 75 6c 74 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 6e 61 6d 65 70   ┆ith localresult ^ do begin namep┆
0x08f500…08f520             61 72 74 3a 3d 20 6e 61 6d 65 3b 0a 6e 65 78 74 5f 6e 61 6d 65 3a 3d 20 6e 61 6d 65 6c 69 73 74   ┆art:= name; next_name:= namelist┆
0x08f520…08f540             20 5e 20 2e 20 6e 65 78 74 5f 6e 61 6d 65 3b 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 2a 29 0a   ┆ ^ . next_name; end; (* with *) ┆
0x08f540…08f560             20 6e 61 6d 65 6c 69 73 74 20 5e 20 2e 20 6e 65 78 74 5f 6e 61 6d 65 3a 3d 20 6c 6f 63 61 6c 72   ┆ namelist ^ . next_name:= localr┆
0x08f560…08f580             65 73 75 6c 74 3b 0a 65 6e 64 3b 20 28 2a 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 20 61 6e 64 20   ┆esult; end; (* if not found and ┆
0x08f580…08f5a0             69 6e 73 65 72 74 20 2a 29 0a 0a 28 2a 20 6e 6f 77 20 6c 6f 63 61 6c 72 65 73 75 6c 74 20 64 65   ┆insert *)  (* now localresult de┆
0x08f5a0…08f5c0             6e 6f 74 65 73 20 74 68 65 20 73 65 61 72 63 68 65 64 20 6e 6f 64 65 20 69 66 20 74 68 65 20 6e   ┆notes the searched node if the n┆
0x08f5c0…08f5e0             61 6d 65 20 69 73 0a 69 6e 20 74 68 65 20 6c 69 73 74 2c 20 6f 74 68 65 72 77 69 73 77 20 6c 6f   ┆ame is in the list, otherwisw lo┆
0x08f5e0…08f600             63 61 6c 72 65 73 75 6c 74 20 69 73 20 6e 75 6c 6c 2c 20 69 2e 65 2e 20 6c 6f 63 61 6c 72 65 73   ┆calresult is null, i.e. localres┆
0x08f600…08f620 (38, 0, 8)  75 6c 74 20 69 73 0a 74 68 65 20 77 61 6e 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 75 6c   ┆ult is the wanted function resul┆
0x08f620…08f640             74 20 2a 29 0a 0a 73 65 61 72 63 68 5f 6e 61 6d 65 3a 3d 20 6c 6f 63 61 6c 72 65 73 75 6c 74 3b   ┆t *)  search_name:= localresult;┆
0x08f640…08f660             0a 0a 65 6e 64 3b 20 28 2a 20 73 65 61 72 63 68 20 6e 61 6d 65 20 2a 29 0a 0a 0a 66 75 6e 63 74   ┆  end; (* search name *)   funct┆
0x08f660…08f680             69 6f 6e 20 66 69 6e 64 5f 6e 61 6d 65 20 3a 20 6e 61 6d 65 5f 70 74 72 3b 0a 0a 28 2a 20 66 69   ┆ion find_name : name_ptr;  (* fi┆
0x08f680…08f6a0             6e 64 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 6e 61 6d 65 20 6b 65 70 74 20 69 6e   ┆nd the index of the name kept in┆
0x08f6a0…08f6c0             20 63 68 62 75 66 2c 20 69 66 20 6e 6f 74 20 64 65 63 6c 61 72 65 64 20 74 68 65 0a 66 75 6e 63   ┆ chbuf, if not declared the func┆
0x08f6c0…08f6e0             74 69 6f 6e 20 72 65 73 75 6c 74 20 62 65 63 6f 6d 65 73 20 6e 69 6c 5f 6e 61 6d 65 2e 20 69 66   ┆tion result becomes nil_name. if┆
0x08f6e0…08f700             20 74 68 65 20 6e 61 6d 65 20 69 73 20 6f 66 20 74 68 65 0a 73 65 71 75 65 6e 74 69 61 6c 20 74   ┆ the name is of the sequential t┆
0x08f700…08f720             79 70 65 20 74 68 65 20 6e 61 6d 65 70 61 72 74 20 28 20 61 23 20 29 20 69 73 20 73 65 61 72 63   ┆ype the namepart ( a# ) is searc┆
0x08f720…08f740             68 65 64 20 28 69 66 20 6e 6f 74 0a 66 6f 75 6e 64 20 74 68 65 6e 20 65 72 72 6f 72 29 20 61 66   ┆hed (if not found then error) af┆
0x08f740…08f760             74 65 72 20 74 68 61 74 20 74 68 65 20 65 6e 74 69 72 65 20 6e 61 6d 65 20 69 73 20 73 65 61 72   ┆ter that the entire name is sear┆
0x08f760…08f780             63 68 65 64 20 2d 0a 61 6e 64 20 70 6f 73 73 69 62 6c 79 20 69 6e 73 65 72 74 65 64 20 2d 20 61   ┆ched - and possibly inserted - a┆
0x08f780…08f7a0             74 20 74 68 65 20 6c 65 76 65 6c 20 6f 66 20 74 68 65 20 6e 61 6d 65 70 61 72 74 20 2a 29 0a 0a   ┆t the level of the namepart *)  ┆
0x08f7a0…08f7c0             76 61 72 0a 6e 61 6d 65 73 74 72 20 3a 20 6e 61 6d 65 73 74 72 69 6e 67 3b 0a 73 65 71 5f 6e 61   ┆var namestr : namestring; seq_na┆
0x08f7c0…08f7e0             6d 65 20 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 6c 65 76 65 6c 3a 20 6c 65 76 65 6c 5f 70 74 72 3b 0a   ┆me : boolean; level: level_ptr; ┆
0x08f7e0…08f800             73 74 65 70 20 3a 20 69 6e 74 65 67 65 72 3b 0a 6e 61 6d 65 70 74 72 20 3a 20 6e 61 6d 65 5f 70   ┆step : integer; nameptr : name_p┆
0x08f800…08f820 (38, 0, 9)  74 72 3b 0a 0a 62 65 67 69 6e 0a 6e 61 6d 65 73 74 72 3a 3d 20 62 6c 61 6e 6b 3b 0a 73 65 71 5f   ┆tr;  begin namestr:= blank; seq_┆
0x08f820…08f840             6e 61 6d 65 3a 3d 20 28 63 68 62 75 66 20 5b 20 32 20 5d 20 3d 20 27 23 27 29 20 61 6e 64 20 28   ┆name:= (chbuf [ 2 ] = '#') and (┆
0x08f840…08f860             6c 61 73 74 63 68 61 72 20 3e 3d 20 32 29 3b 0a 0a 69 66 20 73 65 71 5f 6e 61 6d 65 20 74 68 65   ┆lastchar >= 2);  if seq_name the┆
0x08f860…08f880             6e 0a 62 65 67 69 6e 0a 6e 61 6d 65 73 74 72 20 5b 20 31 20 5d 3a 3d 20 63 68 62 75 66 20 5b 20   ┆n begin namestr [ 1 ]:= chbuf [ ┆
0x08f880…08f8a0             31 20 5d 3b 0a 6e 61 6d 65 73 74 72 20 5b 20 32 20 5d 3a 3d 20 27 23 27 3b 20 28 2a 20 3d 20 63   ┆1 ]; namestr [ 2 ]:= '#'; (* = c┆
0x08f8a0…08f8c0             68 62 75 66 20 5b 20 32 20 5d 20 2a 29 0a 65 6e 64 0a 65 6c 73 65 0a 66 6f 72 20 73 74 65 70 3a   ┆hbuf [ 2 ] *) end else for step:┆
0x08f8c0…08f8e0             3d 20 31 20 74 6f 20 6c 61 73 74 63 68 61 72 20 64 6f 0a 69 66 20 73 74 65 70 20 3c 3d 20 6e 61   ┆= 1 to lastchar do if step <= na┆
0x08f8e0…08f900             6d 65 6c 65 6e 67 74 68 20 74 68 65 6e 0a 6e 61 6d 65 73 74 72 20 5b 20 73 74 65 70 20 5d 3a 3d   ┆melength then namestr [ step ]:=┆
0x08f900…08f920             20 63 68 62 75 66 20 5b 20 73 74 65 70 20 5d 20 3b 0a 0a 6c 65 76 65 6c 3a 3d 20 63 75 72 72 65   ┆ chbuf [ step ] ;  level:= curre┆
0x08f920…08f940             6e 74 5f 6c 65 76 65 6c 3b 0a 0a 72 65 70 65 61 74 0a 6e 61 6d 65 70 74 72 3a 3d 20 73 65 61 72   ┆nt_level;  repeat nameptr:= sear┆
0x08f940…08f960             63 68 5f 6e 61 6d 65 28 6e 61 6d 65 73 74 72 2c 20 20 20 6c 65 76 65 6c 20 5e 2e 6c 65 76 65 6c   ┆ch_name(namestr,   level ^.level┆
0x08f960…08f980             5f 6c 69 73 74 2c 20 66 61 6c 73 65 29 3b 0a 6c 65 76 65 6c 3a 3d 20 6c 65 76 65 6c 5e 2e 66 6f   ┆_list, false); level:= level^.fo┆
0x08f980…08f9a0             72 6d 65 72 5f 6c 65 76 65 6c 3b 0a 75 6e 74 69 6c 20 28 6e 61 6d 65 70 74 72 20 3c 3e 20 6e 69   ┆rmer_level; until (nameptr <> ni┆
0x08f9a0…08f9c0             6c 5f 6e 61 6d 65 29 20 6f 72 20 28 6c 65 76 65 6c 3d 6e 69 6c 5f 6c 65 76 65 6c 29 3b 0a 0a 69   ┆l_name) or (level=nil_level);  i┆
0x08f9c0…08f9e0             66 20 28 6e 61 6d 65 70 74 72 20 3c 3e 20 6e 69 6c 5f 6e 61 6d 65 29 20 61 6e 64 20 73 65 71 5f   ┆f (nameptr <> nil_name) and seq_┆
0x08f9e0…08fa00             6e 61 6d 65 20 74 68 65 6e 0a 62 65 67 69 6e 0a 66 6f 72 20 73 74 65 70 3a 3d 20 33 20 74 6f 20   ┆name then begin for step:= 3 to ┆
0x08fa00…08fa20 (38, 0, 10) 6c 61 73 74 63 68 61 72 20 64 6f 0a 6e 61 6d 65 73 74 72 20 5b 20 73 74 65 70 20 5d 3a 3d 20 63   ┆lastchar do namestr [ step ]:= c┆
0x08fa20…08fa40             68 62 75 66 20 5b 20 73 74 65 70 20 5d 20 3b 0a 28 2a 20 69 66 20 6e 61 6d 65 73 74 72 20 6e 6f   ┆hbuf [ step ] ; (* if namestr no┆
0x08fa40…08fa60             74 20 64 65 66 69 6e 65 64 20 79 65 74 20 74 68 65 6e 20 69 6e 73 65 72 74 20 61 20 64 65 66 69   ┆t defined yet then insert a defi┆
0x08fa60…08fa80             6e 69 74 69 6f 6e 20 61 73 20 73 75 63 63 65 73 73 6f 72 0a 6f 66 20 6e 61 6d 65 70 74 72 20 2a   ┆nition as successor of nameptr *┆
0x08fa80…08faa0             29 0a 6e 61 6d 65 70 74 72 3a 3d 20 73 65 61 72 63 68 5f 6e 61 6d 65 28 6e 61 6d 65 73 74 72 2c   ┆) nameptr:= search_name(namestr,┆
0x08faa0…08fac0             20 6e 61 6d 65 70 74 72 2c 20 74 72 75 65 29 3b 0a 65 6e 64 3b 0a 0a 66 69 6e 64 5f 6e 61 6d 65   ┆ nameptr, true); end;  find_name┆
0x08fac0…08fae0             3a 3d 20 6e 61 6d 65 70 74 72 3b 0a 69 66 20 74 65 73 74 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6f   ┆:= nameptr; if test then begin o┆
0x08fae0…08fb00             75 74 74 65 73 74 28 27 66 69 6e 64 5f 6e 61 6d 65 27 29 3b 0a 77 72 69 74 65 6c 6e 28 6f 75 74   ┆uttest('find_name'); writeln(out┆
0x08fb00…08fb20             70 75 74 2c 27 20 6e 61 6d 65 20 69 73 20 3a 20 27 2c 20 6e 61 6d 65 73 74 72 2c 0a 20 20 20 20   ┆put,' name is : ', namestr,     ┆
0x08fb20…08fb40             20 20 20 20 20 20 20 20 20 20 20 27 69 6e 64 65 78 20 3d 20 27 2c 20 73 65 67 28 6e 61 6d 65 70   ┆           'index = ', seg(namep┆
0x08fb40…08fb60             74 72 29 2c 20 6f 66 73 28 6e 61 6d 65 70 74 72 29 29 3b 0a 65 6e 64 3b 0a 0a 0a 65 6e 64 3b 20   ┆tr), ofs(nameptr)); end;   end; ┆
0x08fb60…08fb80             28 2a 20 66 69 6e 64 20 6e 61 6d 65 20 2a 29 0a 0a 0a 0c 0a 0a 70 72 6f 63 65 64 75 72 65 20 6f   ┆(* find name *)      procedure o┆
0x08fb80…08fba0             75 74 70 75 74 5f 6c 69 6e 65 5f 69 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0a 28 2a 20 67 65 6e 65 72   ┆utput_line_information; (* gener┆
0x08fba0…08fbc0             61 74 65 20 6e 65 78 74 20 6c 69 6e 65 20 74 61 62 6c 65 20 65 6e 74 72 79 20 2a 29 0a 0a 62 65   ┆ate next line table entry *)  be┆
0x08fbc0…08fbe0             67 69 6e 0a 69 66 20 67 65 6e 65 72 61 74 65 5f 6c 69 6e 65 5f 69 6e 66 6f 20 74 68 65 6e 0a 62   ┆gin if generate_line_info then b┆
0x08fbe0…08fc00             65 67 69 6e 0a 69 66 20 6c 69 6e 65 5f 61 64 64 20 3c 3d 20 6d 61 78 5f 6c 69 6e 65 20 74 68 65   ┆egin if line_add <= max_line the┆
0x08fc00…08fc20 (38, 0, 11) 6e 0a 62 65 67 69 6e 0a 63 6f 64 65 5f 62 75 66 66 65 72 20 5b 20 6e 65 78 74 5f 6c 69 6e 65 5f   ┆n begin code_buffer [ next_line_┆
0x08fc20…08fc40             74 61 62 6c 65 5f 65 6e 74 72 79 20 5d 3a 3d 20 6c 69 6e 65 5f 61 64 64 3b 0a 6c 69 6e 65 5f 61   ┆table_entry ]:= line_add; line_a┆
0x08fc40…08fc60             64 64 3a 3d 20 30 3b 0a 65 6e 64 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 63 6f 64 65 5f 62 75 66 66   ┆dd:= 0; end else begin code_buff┆
0x08fc60…08fc80             65 72 20 5b 20 6e 65 78 74 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 65 6e 74 72 79 20 5d 3a 3d 20 6d   ┆er [ next_line_table_entry ]:= m┆
0x08fc80…08fca0             61 78 5f 6c 69 6e 65 3b 0a 6c 69 6e 65 5f 61 64 64 3a 3d 20 6c 69 6e 65 5f 61 64 64 20 2d 20 6d   ┆ax_line; line_add:= line_add - m┆
0x08fca0…08fcc0             61 78 5f 6c 69 6e 65 3b 0a 65 6e 64 3b 0a 0a 28 2a 24 52 2d 2a 29 0a 6e 65 78 74 5f 6c 69 6e 65   ┆ax_line; end;  (*$R-*) next_line┆
0x08fcc0…08fce0             5f 74 61 62 6c 65 5f 65 6e 74 72 79 3a 3d 20 6e 65 78 74 5f 6c 69 6e 65 5f 74 61 62 6c 65 5f 65   ┆_table_entry:= next_line_table_e┆
0x08fce0…08fd00             6e 74 72 79 20 2b 20 31 3b 0a 28 2a 24 52 2b 2a 29 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 6f   ┆ntry + 1; (*$R+*) end; end; (* o┆
0x08fd00…08fd20             75 74 70 75 74 20 6c 69 6e 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 2a 29 0a 0a 0a 70 72 6f 63   ┆utput line information *)   proc┆
0x08fd20…08fd40             65 64 75 72 65 20 6f 75 74 62 79 74 65 28 62 79 74 65 5f 6f 70 65 72 61 6e 64 20 3a 20 69 6e 74   ┆edure outbyte(byte_operand : int┆
0x08fd40…08fd60             65 67 65 72 29 3b 0a 0a 28 2a 20 63 68 65 63 6b 20 74 68 65 20 73 69 7a 65 20 6f 66 20 62 79 74   ┆eger);  (* check the size of byt┆
0x08fd60…08fd80             65 5f 6f 70 65 72 61 6e 64 20 28 20 2d 31 32 38 20 3c 3d 20 62 79 74 65 5f 6f 70 65 72 61 6e 64   ┆e_operand ( -128 <= byte_operand┆
0x08fd80…08fda0             20 3c 3d 20 32 35 35 29 0a 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 20 6f 70 65 72 61 6e 64 20   ┆ <= 255) and insert the operand ┆
0x08fda0…08fdc0             61 73 20 63 75 72 72 65 6e 74 20 62 79 74 65 20 6f 66 20 74 68 65 20 63 6f 64 65 20 62 75 66 66   ┆as current byte of the code buff┆
0x08fdc0…08fde0             65 72 0a 61 6e 64 20 75 70 64 61 74 65 20 74 68 65 20 63 6f 64 65 20 62 75 66 66 65 72 20 70 6f   ┆er and update the code buffer po┆
0x08fde0…08fe00             69 6e 74 65 72 20 2a 29 0a 0a 62 65 67 69 6e 0a 0a 69 66 20 28 62 79 74 65 5f 6f 70 65 72 61 6e   ┆inter *)  begin  if (byte_operan┆
0x08fe00…08fe20 (38, 0, 12) 64 20 3e 3d 20 2d 31 32 38 29 20 61 6e 64 20 28 62 79 74 65 5f 6f 70 65 72 61 6e 64 20 3c 3d 20   ┆d >= -128) and (byte_operand <= ┆
0x08fe20…08fe40             32 35 35 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 69 66 20 62 79 74 65 5f 6f 70 65 72 61 6e 64 20   ┆255) then begin if byte_operand ┆
0x08fe40…08fe60             3c 20 30 20 74 68 65 6e 0a 62 79 74 65 5f 6f 70 65 72 61 6e 64 3a 3d 20 62 79 74 65 5f 6f 70 65   ┆< 0 then byte_operand:= byte_ope┆
0x08fe60…08fe80             72 61 6e 64 20 2b 20 6d 61 78 62 79 74 65 3b 20 28 2a 20 6c 65 74 20 74 68 65 20 62 79 74 65 20   ┆rand + maxbyte; (* let the byte ┆
0x08fe80…08fea0             62 65 20 69 6e 73 69 64 65 20 28 30 2e 2e 32 35 35 29 20 2a 29 0a 65 6e 64 0a 65 6c 73 65 0a 62   ┆be inside (0..255) *) end else b┆
0x08fea0…08fec0             65 67 69 6e 0a 6d 61 72 6b 65 72 72 6f 72 28 20 31 29 3b 20 28 2a 20 62 79 74 65 20 6f 70 65 72   ┆egin markerror( 1); (* byte oper┆
0x08fec0…08fee0             61 6e 64 20 6f 75 74 20 6f 66 20 62 6f 75 6e 64 73 20 28 2d 31 32 38 2e 2e 31 32 37 29 20 2a 29   ┆and out of bounds (-128..127) *)┆
0x08fee0…08ff00             0a 62 79 74 65 5f 6f 70 65 72 61 6e 64 3a 3d 20 30 3b 0a 65 6e 64 3b 0a 0a 63 6f 64 65 5f 62 75   ┆ byte_operand:= 0; end;  code_bu┆
0x08ff00…08ff20             66 66 65 72 20 5b 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 5d 3a 3d 20 62 79 74 65 5f 6f   ┆ffer [ current_offset ]:= byte_o┆
0x08ff20…08ff40             70 65 72 61 6e 64 3b 0a 69 66 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 6d 6f 64 20 6c 69   ┆perand; if current_offset mod li┆
0x08ff40…08ff60             6e 65 5f 73 70 61 63 69 6e 67 20 3d 20 30 20 74 68 65 6e 0a 6f 75 74 70 75 74 5f 6c 69 6e 65 5f   ┆ne_spacing = 0 then output_line_┆
0x08ff60…08ff80             69 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0a 28 2a 24 52 2d 2a 29 0a 63 75 72 72 65 6e 74 5f 6f 66 66   ┆information; (*$R-*) current_off┆
0x08ff80…08ffa0             73 65 74 3a 3d 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 2b 20 31 3b 0a 28 2a 24 52 2b 2a   ┆set:= current_offset + 1; (*$R+*┆
0x08ffa0…08ffc0             29 0a 65 6e 64 3b 20 28 2a 20 6f 75 74 20 62 79 74 65 20 2a 29 0a 0a 0a 70 72 6f 63 65 64 75 72   ┆) end; (* out byte *)   procedur┆
0x08ffc0…08ffe0             65 20 6f 75 74 77 6f 72 64 20 28 20 77 6f 72 64 5f 6f 70 65 72 61 6e 64 20 3a 20 69 6e 74 65 67   ┆e outword ( word_operand : integ┆
0x08ffe0…090000             65 72 20 29 3b 0a 0a 28 2a 20 63 68 65 63 6b 20 74 68 65 20 73 69 7a 65 20 6f 66 20 77 6f 72 64   ┆er );  (* check the size of word┆
0x090000…090020 (38, 0, 13) 20 6f 70 65 72 61 6e 64 20 28 2d 32 2a 2a 31 35 20 3c 3d 20 6f 70 65 72 61 6e 64 20 3c 3d 20 32   ┆ operand (-2**15 <= operand <= 2┆
0x090020…090040             2a 2a 31 36 20 2d 31 29 0a 69 6e 73 65 72 74 20 74 68 65 20 6f 70 65 72 61 6e 64 20 61 73 20 74   ┆**16 -1) insert the operand as t┆
0x090040…090060             77 6f 20 62 79 74 65 73 20 28 20 30 2e 2e 20 32 35 35 20 29 20 69 6e 74 6f 20 74 68 65 20 63 6f   ┆wo bytes ( 0.. 255 ) into the co┆
0x090060…090080             64 65 20 62 75 66 66 65 72 0a 61 6e 64 20 61 64 6a 75 73 74 20 74 68 65 20 63 6f 64 65 20 62 75   ┆de buffer and adjust the code bu┆
0x090080…0900a0             66 66 65 72 20 70 6f 69 6e 74 65 72 20 2a 29 0a 0a 0a 62 65 67 69 6e 0a 0a 63 6f 64 65 5f 62 75   ┆ffer pointer *)   begin  code_bu┆
0x0900a0…0900c0             66 66 65 72 20 5b 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 5d 3a 3d 20 77 6f 72 64 5f 6f   ┆ffer [ current_offset ]:= word_o┆
0x0900c0…0900e0             70 65 72 61 6e 64 20 73 68 72 20 38 3b 0a 28 2a 24 52 2d 2a 29 0a 63 75 72 72 65 6e 74 5f 6f 66   ┆perand shr 8; (*$R-*) current_of┆
0x0900e0…090100             66 73 65 74 3a 3d 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 2b 20 31 3b 0a 63 6f 64 65 5f   ┆fset:= current_offset + 1; code_┆
0x090100…090120             62 75 66 66 65 72 20 5b 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 5d 3a 3d 20 77 6f 72 64   ┆buffer [ current_offset ]:= word┆
0x090120…090140             5f 6f 70 65 72 61 6e 64 20 61 6e 64 20 32 35 35 3b 0a 69 66 20 63 75 72 72 65 6e 74 5f 6f 66 66   ┆_operand and 255; if current_off┆
0x090140…090160             73 65 74 20 6d 6f 64 20 6c 69 6e 65 5f 73 70 61 63 69 6e 67 20 3c 3d 20 31 20 74 68 65 6e 0a 6f   ┆set mod line_spacing <= 1 then o┆
0x090160…090180             75 74 70 75 74 5f 6c 69 6e 65 5f 69 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0a 63 75 72 72 65 6e 74 5f   ┆utput_line_information; current_┆
0x090180…0901a0             6f 66 66 73 65 74 3a 3d 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 2b 20 31 3b 0a 28 2a 24   ┆offset:= current_offset + 1; (*$┆
0x0901a0…0901c0             52 2b 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 6f 75 74 20 77 6f 72 64 20 2a 29 0a 0a 0a 0a 0a 0a 0a   ┆R+*)  end; (* out word *)       ┆
0x0901c0…0901e0             70 72 6f 63 65 64 75 72 65 20 6f 75 74 63 6f 64 65 28 20 63 75 72 5f 63 6f 64 65 20 3a 20 63 6f   ┆procedure outcode( cur_code : co┆
0x0901e0…090200             64 65 72 61 6e 67 65 20 29 3b 0a 62 65 67 69 6e 0a 0a 77 69 74 68 20 6f 70 63 6f 64 65 73 20 5b   ┆derange ); begin  with opcodes [┆
0x090200…090220 (38, 0, 14) 20 63 75 72 5f 63 6f 64 65 20 5d 20 64 6f 0a 62 65 67 69 6e 0a 75 73 65 5f 63 6f 75 6e 74 3a 3d   ┆ cur_code ] do begin use_count:=┆
0x090220…090240             20 75 73 65 5f 63 6f 75 6e 74 20 2b 20 31 3b 0a 0a 63 6f 64 65 5f 62 75 66 66 65 72 20 5b 20 63   ┆ use_count + 1;  code_buffer [ c┆
0x090240…090260             75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 5d 3a 3d 20 6f 70 63 6f 64 65 76 61 6c 3b 0a 65 6e 64   ┆urrent_offset ]:= opcodeval; end┆
0x090260…090280             3b 20 28 2a 20 77 69 74 68 20 2a 29 0a 28 2a 24 52 2d 2a 29 0a 69 66 20 63 75 72 72 65 6e 74 5f   ┆; (* with *) (*$R-*) if current_┆
0x090280…0902a0             6f 66 66 73 65 74 20 6d 6f 64 20 6c 69 6e 65 5f 73 70 61 63 69 6e 67 20 3d 20 30 20 74 68 65 6e   ┆offset mod line_spacing = 0 then┆
0x0902a0…0902c0             0a 6f 75 74 70 75 74 5f 6c 69 6e 65 5f 69 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0a 63 75 72 72 65 6e   ┆ output_line_information; curren┆
0x0902c0…0902e0             74 5f 6f 66 66 73 65 74 3a 3d 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 2b 20 31 3b 0a 28   ┆t_offset:= current_offset + 1; (┆
0x0902e0…090300             2a 24 52 2b 2a 29 0a 65 6e 64 3b 20 28 2a 20 6f 75 74 63 6f 64 65 20 2a 29 0a 0a 0a 70 72 6f 63   ┆*$R+*) end; (* outcode *)   proc┆
0x090300…090320             65 64 75 72 65 20 70 75 74 5f 77 6f 72 64 28 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 20 3a 20 63   ┆edure put_word( displacement : c┆
0x090320…090340             6f 64 65 5f 69 78 3b 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 3a 20 69 6e 74 65 67 65 72 20 29 3b   ┆ode_ix; destination : integer );┆
0x090340…090360             0a 0a 28 2a 20 61 64 64 20 27 64 65 73 74 69 6e 61 74 69 6f 6e 27 20 28 74 77 6f 20 62 79 74 65   ┆  (* add 'destination' (two byte┆
0x090360…090380             73 29 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 63 6f 64 65 20 62 75 66 66 65   ┆s) to the contents of code buffe┆
0x090380…0903a0             72 2c 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 0a 62 79 74 65 73 20 66 72 6f 6d 20 74 68 65 20 73   ┆r, displacement bytes from the s┆
0x0903a0…0903c0             74 61 72 74 20 2a 29 0a 76 61 72 20 74 65 6d 70 20 3a 20 69 6e 74 65 67 65 72 3b 0a 0a 62 65 67   ┆tart *) var temp : integer;  beg┆
0x0903c0…0903e0             69 6e 0a 28 2a 24 52 2d 2a 29 0a 0a 74 65 6d 70 20 3a 3d 20 63 6f 64 65 5f 62 75 66 66 65 72 5b   ┆in (*$R-*)  temp := code_buffer[┆
0x0903e0…090400             64 69 73 70 6c 61 63 65 6d 65 6e 74 2d 31 5d 20 73 68 6c 20 38 20 2b 20 63 6f 64 65 5f 62 75 66   ┆displacement-1] shl 8 + code_buf┆
0x090400…090420 (38, 0, 15) 66 65 72 5b 64 69 73 70 6c 61 63 65 6d 65 6e 74 5d 3b 0a 74 65 6d 70 20 3a 3d 20 74 65 6d 70 20   ┆fer[displacement]; temp := temp ┆
0x090420…090440             2b 20 64 65 73 74 69 6e 61 74 69 6f 6e 3b 0a 0a 63 6f 64 65 5f 62 75 66 66 65 72 20 5b 20 64 69   ┆+ destination;  code_buffer [ di┆
0x090440…090460             73 70 6c 61 63 65 6d 65 6e 74 20 2d 20 31 20 5d 20 3a 3d 20 74 65 6d 70 20 73 68 72 20 38 3b 0a   ┆splacement - 1 ] := temp shr 8; ┆
0x090460…090480             63 6f 64 65 5f 62 75 66 66 65 72 20 5b 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 20 5d 20 20 20 20   ┆code_buffer [ displacement ]    ┆
0x090480…0904a0             20 3a 3d 20 74 65 6d 70 20 61 6e 64 20 32 35 35 3b 0a 0a 28 2a 24 52 2b 2a 29 0a 65 6e 64 3b 20   ┆ := temp and 255;  (*$R+*) end; ┆
0x0904a0…0904c0             28 2a 20 70 75 74 20 77 6f 72 64 20 2a 29 0a 0a 0a 72 6d 61 74 69 6f 6e 3b 0a 63 75 72 72 65 6e   ┆(* put word *)   rmation; curren┆
0x0904c0…0904e0             74 5f 6f 66 66 73 65 74 3a 3d 20 63 75 72 72 65 6e 74 5f 6f 66 66 73 65 74 20 2b 20 31 3b 0a 28   ┆t_offset:= current_offset + 1; (┆
0x0904e0…090500             2a 24 52 2b 2a 29 0a 65 6e 64 3b 20 28 2a 20 6f 75 74 63 6f 64 65 20 2a 29 0a 0a 0a 70 72 6f 63   ┆*$R+*) end; (* outcode *)   proc┆
0x090500…090520             65 64 75 72 65 20 70 75 74 5f 77 6f 72 64 28 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 20 3a 20 63   ┆edure put_word( displacement : c┆
0x090520…090540             6f 64 65 5f 69 78 3b 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 3a 20 69 6e 74 65 67 65 72 20 29 3b   ┆ode_ix; destination : integer );┆
0x090540…090560             0a 0a 28 2a 20 61 64 64 20 27 64 65 73 74 69 6e 61 74 69 6f 6e 27 20 28 74 77 6f 20 62 79 74 65   ┆  (* add 'destination' (two byte┆
0x090560…090580             73 29 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 63 6f 64 65 20 62 75 66 66 65   ┆s) to the contents of code buffe┆
0x090580…0905a0             72 2c 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 0a 62 79 74 65 73 20 66 72 6f 6d 20 74 68 65 20 73   ┆r, displacement bytes from the s┆
0x0905a0…0905c0             74 61 72 74 20 2a 29 0a 76 61 72 20 74 65 6d 70 20 3a 20 69 6e 74 65 67 65 72 3b 0a 0a 62 65 67   ┆tart *) var temp : integer;  beg┆
0x0905c0…0905e0             69 6e 0a 28 2a 24 52 2d 2a 29 0a 0a 74 65 6d 70 20 3a 3d 20 63 6f 64 65 5f 62 75 66 66 65 72 5b   ┆in (*$R-*)  temp := code_buffer[┆
0x0905e0…090600             64 69 73 70 6c 61 63 65 6d 65 6e 74 2d 31 5d 20 73 68 6c 20 38 20 2b 20 63 6f 64 65 5f 62 75 66   ┆displacement-1] shl 8 + code_buf┆
0x090600…090620 (38, 1, 1)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 72 74 70 2f 73 2e 72 74 70 33 35 32 33 2e 70 61 73 00   ┆../sw2103/src/rtp/s.rtp3523.pas ┆
0x090620…090640             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x090660…090680             00 00 00 00 20 20 20 34 34 34 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       444     255     146      ┆
0x090680…0906a0             20 31 31 34 34 33 30 20 20 35 32 36 37 30 31 33 34 37 35 20 20 31 31 30 34 34 00 20 00 00 00 00   ┆ 114430  5267013475  11044      ┆
0x0906a0…0906c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x090800…090820 (38, 1, 2)  01 68 30 39 35 38 31 0a 01 73 20 30 30 30 30 35 2f 30 30 30 30 33 2f 30 32 30 35 38 0a 01 64 20   ┆ h09581  s 00005/00003/02058  d ┆
0x090820…090840             44 20 31 2e 32 20 39 32 2f 31 30 2f 31 34 20 31 33 3a 34 38 3a 35 37 20 73 77 32 31 30 33 20 32   ┆D 1.2 92/10/14 13:48:57 sw2103 2┆
0x090840…090860             20 31 0a 01 63 20 52 65 6c 65 61 73 65 2e 70 61 73 20 75 73 65 64 2e 0a 01 65 0a 01 73 20 30 32   ┆ 1  c Release.pas used.  e  s 02┆
0x090860…090880             30 36 31 2f 30 30 30 30 30 2f 30 30 30 30 30 0a 01 64 20 44 20 31 2e 31 20 39 32 2f 31 30 2f 31   ┆061/00000/00000  d D 1.1 92/10/1┆
0x090880…0908a0             34 20 30 39 3a 32 36 3a 32 32 20 73 77 32 31 30 33 20 31 20 30 0a 01 63 20 53 43 43 53 20 61 6e   ┆4 09:26:22 sw2103 1 0  c SCCS an┆
0x0908a0…0908c0             64 20 55 4e 49 58 20 75 73 65 64 2c 20 73 6f 75 72 63 65 20 66 69 6c 65 20 39 32 2e 30 31 2e 32   ┆d UNIX used, source file 92.01.2┆
0x0908c0…0908e0             32 2e 0a 01 65 0a 01 75 0a 01 55 0a 01 74 0a 01 54 0a 01 49 20 31 0a 70 72 6f 67 72 61 6d 20 72   ┆2.  e  u  U  t  T  I 1 program r┆
0x0908e0…090900             74 70 70 61 73 73 33 20 28 0a 69 6e 70 75 74 2c 20 20 28 2a 20 75 73 65 64 20 77 68 65 6e 20 72   ┆tppass3 ( input,  (* used when r┆
0x090900…090920             65 61 64 69 6e 67 20 70 61 73 73 33 65 72 72 6f 72 73 20 2a 29 0a 6f 75 74 70 75 74 2c 20 28 2a   ┆eading pass3errors *) output, (*┆
0x090920…090940             20 75 73 65 64 20 66 6f 72 20 74 65 73 74 6f 75 74 70 75 74 20 2a 29 0a 70 61 73 73 31 66 69 6c   ┆ used for testoutput *) pass1fil┆
0x090940…090960             65 2c 20 28 2a 20 63 6f 6e 74 61 69 6e 73 20 70 61 73 73 31 2d 6f 75 74 70 75 74 20 2a 29 0a 70   ┆e, (* contains pass1-output *) p┆
0x090960…090980             61 73 73 31 6c 61 62 65 6c 73 20 2c 20 28 2a 20 63 6f 6e 74 61 69 6e 73 20 6c 61 62 65 6c 64 65   ┆ass1labels , (* contains labelde┆
0x090980…0909a0             66 73 20 66 72 6f 6d 20 70 61 73 73 31 20 2a 29 0a 70 61 73 73 33 66 69 6c 65 20 28 2a 20 63 6f   ┆fs from pass1 *) pass3file (* co┆
0x0909a0…0909c0             6e 74 61 69 6e 73 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 70 61 73 73 33 20 2a 29 0a 29 3b 0a 0a   ┆ntains output from pass3 *) );  ┆
0x0909c0…0909e0             28 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆(*------------------------------┆
0x0909e0…090a00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x090a00…090a20 (38, 1, 3)  2d 2d 2d 0a 2d 2d 0a 2d 2d 20 28 43 29 20 43 6f 70 79 72 69 67 74 68 20 31 39 39 32 20 20 44 41   ┆--- -- -- (C) Copyrigth 1992  DA┆
0x090a20…090a40             4e 4f 53 49 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆NOSI -- ------------------------┆
0x090a40…090a60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x090a60…090a80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 09 52 65 76 69 73 69 6f 6e 73 0a 2d 2d 09 2d   ┆----------- -- -- Revisions -- -┆
0x090a80…090aa0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a   ┆------------------------------- ┆
0x090aa0…090ac0             2d 2d 20 20 20 20 20 20 20 20 39 32 2e 30 31 2e 32 32 20 20 45 42 4b 20 20 20 55 73 65 64 20 69   ┆--        92.01.22  EBK   Used i┆
0x090ac0…090ae0             6e 20 72 65 6c 65 61 73 65 20 31 2e 31 32 0a 2d 2d 20 20 31 2e 31 20 20 20 39 32 2e 31 30 2e 31   ┆n release 1.12 --  1.1   92.10.1┆
0x090ae0…090b00             34 20 20 48 45 4a 20 20 20 53 43 43 53 20 61 6e 64 20 55 4e 49 58 20 75 73 65 64 2e 0a 01 49 20   ┆4  HEJ   SCCS and UNIX used.  I ┆
0x090b00…090b20             32 0a 2d 2d 20 20 31 2e 32 20 20 20 39 32 2e 31 30 2e 31 34 20 20 48 45 4a 20 20 20 52 65 6c 65   ┆2 --  1.2   92.10.14  HEJ   Rele┆
0x090b20…090b40             61 73 65 2e 70 61 73 20 75 73 65 64 2e 0a 01 45 20 32 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ase.pas used.  E 2 -- ----------┆
0x090b40…090b60             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x090b60…090b80             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43   ┆------------------------- -- SCC┆
0x090b80…090ba0             53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d   ┆S information -- File   :  %P% -┆
0x090ba0…090bc0             2d 09 4d 6f 64 75 6c 65 20 3a 20 20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25   ┆- Module :  %M% -- Version:  %I%┆
0x090bc0…090be0             0a 2d 2d 09 44 61 74 65 20 20 20 3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ -- Date   :  %E%  %U% ---------┆
0x090be0…090c00             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x090c00…090c20 (38, 1, 4)  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 75   ┆-------------------------- *)  u┆
0x090c20…090c40             73 65 73 20 72 74 70 75 6e 69 74 2c 20 64 6f 73 3b 0a 28 2a 24 4d 20 32 35 30 30 30 2c 30 2c 36   ┆ses rtpunit, dos; (*$M 25000,0,6┆
0x090c40…090c60             35 35 33 36 30 20 2a 29 0a 28 2a 24 52 2b 2a 29 0a 0a 76 61 72 20 65 78 69 74 73 61 76 65 3a 20   ┆55360 *) (*$R+*)  var exitsave: ┆
0x090c60…090c80             70 6f 69 6e 74 65 72 3b 0a 0a 01 44 20 32 0a 28 2a 24 49 20 70 33 69 6e 69 74 2a 29 0a 28 2a 24   ┆pointer;   D 2 (*$I p3init*) (*$┆
0x090c80…090ca0             49 20 70 33 65 78 70 72 2a 29 0a 28 2a 24 49 20 70 33 70 72 6f 63 2a 29 0a 01 45 20 32 0a 01 49   ┆I p3expr*) (*$I p3proc*)  E 2  I┆
0x090ca0…090cc0             20 32 0a 28 2a 24 49 20 72 65 6c 65 61 73 65 20 20 2a 29 0a 28 2a 24 49 20 70 33 69 6e 69 74 20   ┆ 2 (*$I release  *) (*$I p3init ┆
0x090cc0…090ce0             20 20 2a 29 0a 28 2a 24 49 20 70 33 65 78 70 72 20 20 20 2a 29 0a 28 2a 24 49 20 70 33 70 72 6f   ┆  *) (*$I p3expr   *) (*$I p3pro┆
0x090ce0…090d00             63 20 20 20 2a 29 0a 01 45 20 32 0a 0a 0a 28 2a 24 46 2b 2a 29 70 72 6f 63 65 64 75 72 65 20 6d   ┆c   *)  E 2   (*$F+*)procedure m┆
0x090d00…090d20             79 65 78 69 74 3b 20 28 2a 24 46 2d 2a 29 0a 62 65 67 69 6e 0a 0a 65 78 69 74 70 72 6f 63 20 3a   ┆yexit; (*$F-*) begin  exitproc :┆
0x090d20…090d40             3d 20 65 78 69 74 73 61 76 65 3b 0a 0a 69 66 20 65 78 69 74 63 6f 64 65 20 3d 20 30 20 74 68 65   ┆= exitsave;  if exitcode = 0 the┆
0x090d40…090d60             6e 0a 62 65 67 69 6e 0a 74 65 72 6d 69 6e 61 74 65 3b 0a 0a 69 66 20 63 61 6c 6c 5f 70 61 73 73   ┆n begin terminate;  if call_pass┆
0x090d60…090d80             34 20 74 68 65 6e 0a 63 61 73 65 20 74 61 72 67 65 74 5f 6d 61 63 68 69 6e 65 20 6f 66 0a 74 61   ┆4 then case target_machine of ta┆
0x090d80…090da0             72 67 65 74 7a 38 30 3a 20 72 65 70 6c 61 63 65 28 27 70 61 73 73 34 7a 38 30 2e 65 78 65 27 29   ┆rgetz80: replace('pass4z80.exe')┆
0x090da0…090dc0             3b 0a 74 61 72 67 65 74 33 35 30 32 31 3a 20 72 65 70 6c 61 63 65 28 27 72 74 70 33 35 31 34 2e   ┆; target35021: replace('rtp3514.┆
0x090dc0…090de0             65 78 65 27 29 3b 0a 74 61 72 67 65 74 33 35 30 32 32 3a 20 72 65 70 6c 61 63 65 28 27 72 74 70   ┆exe'); target35022: replace('rtp┆
0x090de0…090e00             33 35 32 34 2e 65 78 65 27 29 3b 0a 65 6c 73 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 72 75   ┆3524.exe'); else; end;  end;  ru┆
0x090e00…090e20 (38, 1, 5)  6e 74 69 6d 65 5f 65 72 72 6f 72 28 27 2a 2a 2a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 74 65 72   ┆ntime_error('*** compilation ter┆
0x090e20…090e40             6d 69 6e 61 74 65 64 20 61 66 74 65 72 20 70 61 73 73 33 20 27 29 3b 0a 0a 65 6e 64 3b 0a 0a 62   ┆minated after pass3 ');  end;  b┆
0x090e40…090e60             65 67 69 6e 0a 0a 65 78 69 74 73 61 76 65 20 3a 3d 20 65 78 69 74 70 72 6f 63 3b 0a 65 78 69 74   ┆egin  exitsave := exitproc; exit┆
0x090e60…090e80             70 72 6f 63 20 3a 3d 20 40 6d 79 65 78 69 74 3b 0a 0a 0a 69 6e 69 74 69 61 6c 69 7a 65 3b 0a 0a   ┆proc := @myexit;   initialize;  ┆
0x090e80…090ea0             65 6e 64 70 61 73 73 31 3a 3d 20 66 61 6c 73 65 3b 0a 0a 28 2a 20 74 68 65 20 6d 61 69 6e 6c 6f   ┆endpass1:= false;  (* the mainlo┆
0x090ea0…090ec0             6f 70 20 72 65 61 64 73 20 74 68 65 20 6e 65 78 74 20 72 65 63 6f 72 64 2d 6b 65 79 77 6f 72 64   ┆op reads the next record-keyword┆
0x090ec0…090ee0             20 2a 29 0a 0a 72 65 70 65 61 74 20 28 2a 20 75 6e 74 69 6c 20 65 6e 64 70 61 73 73 31 2c 20 69   ┆ *)  repeat (* until endpass1, i┆
0x090ee0…090f00             2e 65 2e 20 65 6f 6d 2d 72 65 63 6f 72 64 20 66 72 6f 6d 20 70 61 73 73 31 20 2a 29 0a 0a 69 66   ┆.e. eom-record from pass1 *)  if┆
0x090f00…090f20             20 74 65 73 74 69 6e 67 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 6f 75 74 70 75 74 29 3b 0a 0a   ┆ testing then writeln(output);  ┆
0x090f20…090f40             72 65 63 74 79 70 65 3a 3d 20 70 61 73 73 77 6f 72 64 3b 0a 0a 28 2a 20 73 77 69 74 63 68 20 6f   ┆rectype:= password;  (* switch o┆
0x090f40…090f60             75 74 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 72 65 63 74 79 70 65 20 2a 29 0a 0a 63 61 73   ┆ut, depending on rectype *)  cas┆
0x090f60…090f80             65 20 72 65 63 74 79 70 65 20 6f 66 0a 0a 63 6e 65 77 6c 69 6e 65 3a 0a 62 65 67 69 6e 0a 6c 69   ┆e rectype of  cnewline: begin li┆
0x090f80…090fa0             6e 65 6e 6f 3a 3d 20 70 61 73 73 69 6e 3b 0a 69 66 20 6c 69 6e 65 6e 6f 20 3c 3e 20 63 75 72 5f   ┆neno:= passin; if lineno <> cur_┆
0x090fa0…090fc0             6c 69 6e 65 6e 6f 20 74 68 65 6e 0a 62 65 67 69 6e 0a 63 75 72 5f 6c 69 6e 65 6e 6f 3a 3d 20 6c   ┆lineno then begin cur_lineno:= l┆
0x090fc0…090fe0             69 6e 65 6e 6f 3b 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 30 3b 20 20 28 2a 20 6c 65 74 20   ┆ineno; cur_opandno:= 0;  (* let ┆
0x090fe0…091000             6f 70 61 6e 64 73 20 62 65 20 63 6f 75 6e 74 65 64 20 66 72 6f 6d 20 7a 65 72 6f 20 2a 29 0a 65   ┆opands be counted from zero *) e┆
0x091000…091020 (38, 1, 6)  6d 69 74 20 28 78 6e 65 77 6c 69 6e 65 29 3b 0a 65 6d 69 74 69 6e 20 28 63 75 72 5f 6c 69 6e 65   ┆mit (xnewline); emitin (cur_line┆
0x091020…091040             6e 6f 29 3b 0a 65 6d 69 74 5f 6c 69 6e 65 6e 6f 3a 3d 20 63 75 72 5f 6c 69 6e 65 6e 6f 3b 0a 65   ┆no); emit_lineno:= cur_lineno; e┆
0x091040…091060             6e 64 3b 0a 65 6e 64 3b 0a 0a 63 6f 70 74 69 6f 6e 3a 0a 72 65 61 64 6f 70 74 69 6f 6e 3b 0a 0a   ┆nd; end;  coption: readoption;  ┆
0x091060…091080             0c 0a 63 73 74 61 6e 64 61 72 64 6e 61 6d 65 3a 0a 73 74 61 6e 64 61 72 64 6e 61 6d 65 3b 20 28   ┆  cstandardname: standardname; (┆
0x091080…0910a0             2a 20 6d 65 72 65 6c 79 20 74 6f 20 73 6b 69 70 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 2e   ┆* merely to skip the parameters.┆
0x0910a0…0910c0             2e 2e 20 2a 29 0a 0a 63 65 6e 64 70 72 65 66 69 78 3a 20 0a 72 65 6c 65 61 73 65 6e 61 6d 65 73   ┆.. *)  cendprefix:  releasenames┆
0x0910c0…0910e0             28 6e 61 6d 65 6c 65 76 65 6c 20 5e 2e 20 66 69 72 73 74 6e 61 6d 65 29 3b 0a 0a 0a 63 69 6e 63   ┆(namelevel ^. firstname);   cinc┆
0x0910e0…091100             6c 75 64 65 2c 0a 63 63 6f 6e 74 65 78 74 3a 0a 62 65 67 69 6e 0a 63 75 72 5f 6f 70 61 6e 64 6e   ┆lude, ccontext: begin cur_opandn┆
0x091100…091120             6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f 20 2b 20 31 3b 0a 65 6e 76 69 72 5f 73 70 69 78 3a   ┆o:= cur_opandno + 1; envir_spix:┆
0x091120…091140             3d 20 70 61 73 73 69 6e 3b 20 20 28 2a 20 73 6b 69 70 20 74 68 65 20 73 70 69 78 20 2a 29 0a 63   ┆= passin;  (* skip the spix *) c┆
0x091140…091160             75 72 5f 63 6f 6e 74 65 78 74 5f 6e 6f 3a 3d 20 63 75 72 5f 63 6f 6e 74 65 78 74 5f 6e 6f 20 2b   ┆ur_context_no:= cur_context_no +┆
0x091160…091180             20 31 3b 0a 65 6e 64 3b 0a 0a 63 65 72 72 63 6f 6e 74 65 78 74 3a 20 3b 20 28 2a 20 62 6c 69 6e   ┆ 1; end;  cerrcontext: ; (* blin┆
0x091180…0911a0             64 20 2a 29 0a 0a 63 65 6e 64 63 6f 6e 74 65 78 74 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29   ┆d *)  cendcontext: ; (* blind *)┆
0x0911a0…0911c0             0a 0a 63 65 6e 64 69 6e 63 6c 75 64 65 3a 0a 62 65 67 69 6e 0a 6c 61 73 74 67 6c 6f 62 61 6c 6c   ┆  cendinclude: begin lastgloball┆
0x0911c0…0911e0             65 76 65 6c 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6d 69 74 20 28 78 65 6e 64 70 72 65 6c   ┆evel:= namelevel; emit (xendprel┆
0x0911e0…091200             75 64 65 29 3b 0a 63 75 72 5f 63 6f 6e 74 65 78 74 5f 6e 6f 3a 3d 20 2d 31 3b 20 28 2a 20 65 6e   ┆ude); cur_context_no:= -1; (* en┆
0x091200…091220 (38, 1, 7)  64 20 6f 66 20 63 6f 6e 74 65 78 74 73 2c 20 69 2e 65 2e 20 63 68 61 6e 67 65 20 66 6f 72 6d 61   ┆d of contexts, i.e. change forma┆
0x091220…091240             74 20 6f 66 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 2a 29 0a 65 6e 64 3b 0a 0a 63 62 65   ┆t of error messages *) end;  cbe┆
0x091240…091260             67 69 6e 6c 65 76 65 6c 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 6e 63 72 65 61 73 65 20 74 68 65 20   ┆ginlevel: begin (* increase the ┆
0x091260…091280             6e 61 6d 65 6c 65 76 65 6c 2c 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 6e 65 77 20   ┆namelevel, and initialize a new ┆
0x091280…0912a0             6e 61 6d 65 6c 69 73 74 20 2a 29 0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20   ┆namelist *) cur_dyn_var_level:= ┆
0x0912a0…0912c0             6e 61 6d 65 6c 65 76 65 6c 3b 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 63   ┆namelevel; newnamelevel; end;  c┆
0x0912c0…0912e0             65 6e 64 6c 65 76 65 6c 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 66 20 61 6e 79 20 67 6c 6f 62 61 6c   ┆endlevel: begin (* if any global┆
0x0912e0…091300             20 6e 61 6d 65 73 20 68 61 76 65 20 62 65 65 6e 20 75 73 65 64 20 61 74 20 74 68 69 73 20 6c 65   ┆ names have been used at this le┆
0x091300…091320             76 65 6c 2c 20 2a 29 0a 28 2a 20 20 20 74 68 65 6e 20 70 72 65 74 65 6e 64 20 74 68 61 74 20 74   ┆vel, *) (*   then pretend that t┆
0x091320…091340             68 65 79 20 77 65 72 65 20 75 73 65 64 20 61 74 20 74 68 65 20 6e 65 78 74 2c 20 6f 75 74 65 72   ┆hey were used at the next, outer┆
0x091340…091360             2c 20 6c 65 76 65 6c 20 2a 29 0a 65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b 0a 63 75 72 5f 64 79 6e   ┆, level *) endnamelevel; cur_dyn┆
0x091360…091380             5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 0c 0a   ┆_var_level:= namelevel; end;    ┆
0x091380…0913a0             63 64 65 63 6c 61 72 61 74 69 6f 6e 3a 0a 62 65 67 69 6e 0a 69 66 20 65 78 70 65 63 74 69 6e 67   ┆cdeclaration: begin if expecting┆
0x0913a0…0913c0             5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e 5f 62 6c 6f 63 6b 3b 0a 63 75 72 5f 6e 61 6d   ┆_block then begin_block; cur_nam┆
0x0913c0…0913e0             65 6b 69 6e 64 3a 3d 20 70 61 73 73 77 6f 72 64 3b 0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20   ┆ekind:= password;  (* test that ┆
0x0913e0…091400             27 70 72 6f 63 65 73 73 27 20 6f 6e 6c 79 20 6f 63 63 75 72 73 20 61 74 20 70 72 6f 63 65 73 73   ┆'process' only occurs at process┆
0x091400…091420 (38, 1, 8)  2d 6c 65 76 65 6c 20 2a 29 0a 28 2a 20 2e 2e 2e 20 65 6c 73 65 20 62 68 61 6e 67 65 20 69 74 20   ┆-level *) (* ... else bhange it ┆
0x091420…091440             74 6f 3a 20 27 70 72 6f 63 65 64 75 72 65 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29   ┆to: 'procedure'               *)┆
0x091440…091460             0a 0a 69 66 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 70 72 6f 63 65 73 73 20 74 68 65   ┆  if cur_namekind = cprocess the┆
0x091460…091480             6e 0a 69 66 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 3c 3e 20 70 72 6f 63 65 73 73 5f 62 6c 6f 63   ┆n if cur_blockno <> process_bloc┆
0x091480…0914a0             6b 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 70 72 6f 63 65 73 73 5f 6f 6e 6c 79   ┆k then begin error (process_only┆
0x0914a0…0914c0             5f 61 6c 6c 6f 77 65 64 5f 61 74 5f 70 72 6f 63 65 73 73 6c 65 76 65 6c 29 3b 0a 63 75 72 5f 6e   ┆_allowed_at_processlevel); cur_n┆
0x0914c0…0914e0             61 6d 65 6b 69 6e 64 3a 3d 20 63 70 72 6f 63 65 64 75 72 65 3b 0a 65 6e 64 3b 0a 0a 69 66 20 63   ┆amekind:= cprocedure; end;  if c┆
0x0914e0…091500             6f 6d 70 69 6c 65 72 74 65 73 74 20 74 68 65 6e 0a 28 2a 20 74 65 73 74 20 6c 65 67 61 6c 69 74   ┆ompilertest then (* test legalit┆
0x091500…091520             79 20 6f 66 20 6e 61 6d 65 6b 69 6e 64 20 2a 29 0a 63 61 73 65 20 63 75 72 5f 6e 61 6d 65 6b 69   ┆y of namekind *) case cur_nameki┆
0x091520…091540             6e 64 20 6f 66 0a 63 70 72 6f 63 65 73 73 2c 20 63 70 72 6f 63 65 64 75 72 65 2c 20 63 66 75 6e   ┆nd of cprocess, cprocedure, cfun┆
0x091540…091560             63 74 69 6f 6e 2c 20 63 74 79 70 65 2c 0a 63 73 63 61 6c 61 72 65 6c 65 6d 2c 20 63 72 65 63 66   ┆ction, ctype, cscalarelem, crecf┆
0x091560…091580             69 65 6c 64 2c 20 63 63 6f 6e 73 74 61 6e 74 2c 20 63 76 61 72 2c 0a 63 76 61 72 70 2c 20 63 76   ┆ield, cconstant, cvar, cvarp, cv┆
0x091580…0915a0             61 6c 75 65 70 2c 0a 63 6c 61 62 65 6c 2c 0a 63 70 72 65 66 69 78 3a 20 3b 20 28 2a 20 6f 6b 20   ┆aluep, clabel, cprefix: ; (* ok ┆
0x0915a0…0915c0             2a 29 0a 65 6c 73 65 0a 63 6f 6d 70 5f 65 72 72 6f 72 20 28 75 6e 6b 6e 6f 77 6e 5f 6e 61 6d 65   ┆*) else comp_error (unknown_name┆
0x0915c0…0915e0             6b 69 6e 64 29 3b 0a 65 6e 64 3b 0a 0a 28 2a 20 63 65 72 74 61 69 6e 20 64 65 63 6c 61 72 61 74   ┆kind); end;  (* certain declarat┆
0x0915e0…091600             69 6f 6e 73 20 61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 6c 69 74 65 72 61 6c 20 77   ┆ions are followed by a literal w┆
0x091600…091620 (38, 1, 9)  69 74 68 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 6e 61 6d 65 20 2a 29 0a 28 2a 20 61 64 6a 75   ┆ith the external name *) (* adju┆
0x091620…091640             73 74 20 74 68 65 20 6f 70 61 6e 64 2d 6e 75 6d 62 65 72 20 69 6e 20 61 64 76 61 6e 63 65 2e 2e   ┆st the opand-number in advance..┆
0x091640…091660             2e 20 2a 29 0a 63 61 73 65 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 6f 66 0a 63 76 61 72 3a 20   ┆. *) case cur_namekind of cvar: ┆
0x091660…091680             76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 3a 3d 20 66 61 6c 73 65 3b 0a 63 70 72   ┆var_initialization := false; cpr┆
0x091680…0916a0             6f 63 65 73 73 2c 0a 63 70 72 6f 63 65 64 75 72 65 2c 0a 63 66 75 6e 63 74 69 6f 6e 2c 0a 63 70   ┆ocess, cprocedure, cfunction, cp┆
0x0916a0…0916c0             72 65 66 69 78 3a 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f   ┆refix: cur_opandno:= cur_opandno┆
0x0916c0…0916e0             20 2d 20 31 3b 0a 65 6c 73 65 20 28 2a 20 64 6f 6e 27 74 20 63 61 72 65 20 2a 29 3b 0a 65 6e 64   ┆ - 1; else (* don't care *); end┆
0x0916e0…091700             3b 0a 0a 28 2a 20 70 72 65 70 61 72 65 20 65 6e 64 6c 69 73 74 2d 61 63 74 69 6f 6e 73 2c 20 62   ┆;  (* prepare endlist-actions, b┆
0x091700…091720             79 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 20 6c 69 73 74 2d 70 6f 69 6e 74 65 72 73 20 2a 29 0a   ┆y initializing list-pointers *) ┆
0x091720…091740             6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 69 6c 6e 61 6d 65 3b 0a 6c 69 73 74 6c 61 73 74 20 3a 3d   ┆listfirst:= nilname; listlast :=┆
0x091740…091760             20 6e 69 6c 6e 61 6d 65 3b 0a 0a 65 6e 64 3b 0a 0a 63 64 65 63 6c 61 72 65 2c 0a 63 64 65 63 6c   ┆ nilname;  end;  cdeclare, cdecl┆
0x091760…091780             61 72 65 6c 69 73 74 3a 0a 62 65 67 69 6e 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72   ┆arelist: begin cur_opandno:= cur┆
0x091780…0917a0             5f 6f 70 61 6e 64 6e 6f 20 2b 20 31 3b 0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20   ┆_opandno + 1; curname:= newname ┆
0x0917a0…0917c0             28 20 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20 2a 29 20 29 3b 0a 0a 28 2a 20 69 6e 73   ┆( passin (* = spix *) );  (* ins┆
0x0917c0…0917e0             65 72 74 20 74 68 65 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 6c 69 73 74 20 2a 29 0a 69 66 20 6c   ┆ert the name in the list *) if l┆
0x0917e0…091800             69 73 74 66 69 72 73 74 20 3d 20 6e 69 6c 6e 61 6d 65 20 74 68 65 6e 0a 6c 69 73 74 66 69 72 73   ┆istfirst = nilname then listfirs┆
0x091800…091820 (38, 1, 10) 74 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 6c 69 73 74 6c 61 73 74 3a 3d 20 63 75 72 6e 61 6d 65 3b   ┆t:= curname; listlast:= curname;┆
0x091820…091840             0a 0a 63 61 73 65 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 6f 66 0a 63 70 72 6f 63 65 73 73 2c   ┆  case cur_namekind of cprocess,┆
0x091840…091860             0a 63 70 72 6f 63 65 64 75 72 65 2c 0a 63 66 75 6e 63 74 69 6f 6e 3a 0a 62 65 67 69 6e 0a 28 2a   ┆ cprocedure, cfunction: begin (*┆
0x091860…091880             20 74 68 65 20 6e 61 6d 65 20 77 69 6c 6c 20 62 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20   ┆ the name will be followed by a ┆
0x091880…0918a0             66 6f 72 6d 61 6c 20 6c 69 73 74 20 2a 29 0a 28 2a 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 72   ┆formal list *) (* remember the r┆
0x0918a0…0918c0             6f 75 74 69 6e 65 20 6e 61 6d 65 20 2a 29 0a 63 75 72 5f 72 6f 75 74 69 6e 65 3a 3d 20 63 75 72   ┆outine name *) cur_routine:= cur┆
0x0918c0…0918e0             6e 61 6d 65 3b 0a 28 2a 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 72 6f 75 74 69 6e 65   ┆name; (* the name of the routine┆
0x0918e0…091900             20 77 61 73 20 70 72 65 63 65 64 65 64 20 62 79 20 61 20 6c 69 74 65 72 61 6c 20 6e 61 6d 65 20   ┆ was preceded by a literal name ┆
0x091900…091920             2a 29 0a 28 2a 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 20 6f 70 61 6e 64 20 68 6f 6c 64 69 6e   ┆*) (* remember the  opand holdin┆
0x091920…091940             67 20 74 68 69 73 20 6e 61 6d 65 20 2a 29 0a 6f 70 61 6e 64 5f 70 72 6f 63 6e 61 6d 65 3a 3d 20   ┆g this name *) opand_procname:= ┆
0x091940…091960             74 61 6b 65 5f 73 74 61 63 6b 74 6f 70 3b 0a 0a 28 2a 20 70 72 65 70 61 72 65 20 66 6f 72 20 27   ┆take_stacktop;  (* prepare for '┆
0x091960…091980             62 65 67 69 6e 6c 65 76 65 6c 27 3a 20 70 72 6f 63 65 73 73 2d 6c 65 76 65 6c 20 69 73 20 73 70   ┆beginlevel': process-level is sp┆
0x091980…0919a0             65 63 69 61 6c 20 2a 29 0a 69 66 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 70 72 6f 63   ┆ecial *) if cur_namekind = cproc┆
0x0919a0…0919c0             65 73 73 20 74 68 65 6e 0a 62 65 67 69 6e 0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 76   ┆ess then begin cur_namekind:= cv┆
0x0919c0…0919e0             61 72 3b 20 20 28 2a 20 73 65 74 20 75 70 20 66 6f 72 20 76 61 72 69 61 62 6c 65 20 2a 29 0a 63   ┆ar;  (* set up for variable *) c┆
0x0919e0…091a00             75 72 6e 61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78   ┆urname:= newname (anonymous_spix┆
0x091a00…091a20 (38, 1, 11) 29 3b 20 28 2a 20 75 73 65 64 20 66 6f 72 20 27 73 6f 6e 2d 76 61 72 69 61 62 6c 65 20 2a 29 0a   ┆); (* used for 'son-variable *) ┆
0x091a20…091a40             77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 73 6f   ┆with  curname ^ do typename:= so┆
0x091a40…091a60             6e 5f 74 79 70 65 6e 61 6d 65 3b 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 70 72 6f 63 65 73 73 6c   ┆n_typename; levelkind:= processl┆
0x091a60…091a80             65 76 65 6c 3b 0a 65 6e 64 0a 65 6c 73 65 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 69 72 72 65 6c   ┆evel; end else levelkind:= irrel┆
0x091a80…091aa0             6c 5f 6c 65 76 65 6c 3b 0a 0a 65 6e 64 3b 0a 0a 63 70 72 65 66 69 78 3a 0a 62 65 67 69 6e 0a 65   ┆l_level;  end;  cprefix: begin e┆
0x091aa0…091ac0             6d 69 74 20 28 78 70 72 65 66 69 78 29 3b 0a 65 6d 69 74 5f 65 78 74 6e 61 6d 65 20 28 74 61 6b   ┆mit (xprefix); emit_extname (tak┆
0x091ac0…091ae0             65 5f 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6e 64 3b 0a 0a 63 63 6f 6e 73 74 61 6e 74 3a 20 73 65   ┆e_stacktop); end;  cconstant: se┆
0x091ae0…091b00             74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 20 28 2a 20 69 6e 20 63 61 73 65 20 6f 66 20 6d 69 73 73   ┆t_error_type; (* in case of miss┆
0x091b00…091b20             69 6e 67 20 74 79 70 65 6e 61 6d 65 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 73 74 72 75 63 74 75   ┆ing typename in front of structu┆
0x091b20…091b40             72 65 64 20 63 6f 6e 73 74 20 2a 29 0a 0a 63 6c 61 62 65 6c 3a 0a 65 6d 69 74 69 64 20 28 78 6c   ┆red const *)  clabel: emitid (xl┆
0x091b40…091b60             61 62 65 6c 69 64 2c 20 63 75 72 6e 61 6d 65 29 3b 0a 0a 65 6c 73 65 3b 20 28 2a 20 6e 6f 74 68   ┆abelid, curname);  else; (* noth┆
0x091b60…091b80             69 6e 67 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 63 65 6e 64 65 78 74 70 72 6f 63 65 73   ┆ing *) end;  end;  cendextproces┆
0x091b80…091ba0             73 3a 0a 62 65 67 69 6e 0a 77 69 74 68 20 63 75 72 5f 72 6f 75 74 69 6e 65 5e 20 64 6f 0a 62 65   ┆s: begin with cur_routine^ do be┆
0x091ba0…091bc0             67 69 6e 0a 77 69 74 68 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 70 61 72 61 6d 73 20 28 2a   ┆gin with namelevel^ do params (*┆
0x091bc0…091be0             20 6f 66 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 63 65 73 73 20 2a 29 3a 3d 20 66 69 72 73 74 6e   ┆ of external process *):= firstn┆
0x091be0…091c00             61 6d 65 3b 20 28 2a 20 6f 66 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 0a 65 6d 69 74 69 64 28   ┆ame; (* of namelevel *)  emitid(┆
0x091c00…091c20 (38, 1, 12) 78 65 78 74 70 72 6f 63 65 73 73 2c 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 28 2a 20 6d 61 79 20   ┆xextprocess, cur_routine (* may ┆
0x091c20…091c40             62 65 20 61 6e 6f 6e 79 6d 6f 75 73 20 2a 29 29 3b 0a 65 6d 69 74 69 6e 28 73 6f 6e 5f 74 79 70   ┆be anonymous *)); emitin(son_typ┆
0x091c40…091c60             65 6e 61 6d 65 5e 2e 6e 69 78 20 28 2a 20 74 68 65 20 74 79 70 65 20 2a 29 29 3b 0a 0a 65 6d 69   ┆ename^.nix (* the type *));  emi┆
0x091c60…091c80             74 66 6f 72 6d 61 6c 28 70 61 72 61 6d 73 29 3b 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75   ┆tformal(params); end; (* with cu┆
0x091c80…091ca0             72 20 72 6f 75 74 69 6e 65 20 2a 29 0a 0a 65 6d 69 74 69 64 28 78 65 78 74 70 72 6f 63 64 65 66   ┆r routine *)  emitid(xextprocdef┆
0x091ca0…091cc0             2c 20 63 75 72 5f 72 6f 75 74 69 6e 65 29 3b 0a 0a 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b   ┆, cur_routine);  expecting_block┆
0x091cc0…091ce0             3a 3d 20 66 61 6c 73 65 3b 0a 65 6e 64 3b 20 28 2a 20 65 6e 64 65 78 74 70 72 6f 63 65 73 73 20   ┆:= false; end; (* endextprocess ┆
0x091ce0…091d00             2a 29 0a 0a 0c 0a 63 65 78 74 65 72 6e 61 6c 2c 0a 63 66 6f 72 77 61 72 64 3a 0a 62 65 67 69 6e   ┆*)    cexternal, cforward: begin┆
0x091d00…091d20             0a 0a 0a 77 69 74 68 20 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a   ┆   with  cur_routine ^ do begin ┆
0x091d20…091d40             69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72   ┆if forward_decl then begin error┆
0x091d40…091d60             73 70 69 78 3a 3d 20 73 70 69 78 3b 20 28 2a 20 6f 66 20 63 75 72 20 72 6f 75 74 69 6e 65 20 2a   ┆spix:= spix; (* of cur routine *┆
0x091d60…091d80             29 0a 65 72 72 6f 72 20 28 64 6f 75 62 6c 65 5f 64 65 63 6c 61 72 61 74 69 6f 6e 29 20 28 2a 20   ┆) error (double_declaration) (* ┆
0x091d80…091da0             69 2e 65 2e 20 69 74 20 77 61 73 20 61 6c 72 65 61 64 79 20 66 6f 72 77 61 72 64 20 64 65 63 6c   ┆i.e. it was already forward decl┆
0x091da0…091dc0             61 72 65 64 20 2a 29 0a 65 6e 64 0a 65 6c 73 65 0a 0a 28 2a 20 73 65 74 20 74 68 65 20 70 72 6f   ┆ared *) end else  (* set the pro┆
0x091dc0…091de0             70 65 72 20 66 6c 61 67 20 61 6e 64 20 65 6d 69 74 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64   ┆per flag and emit the correspond┆
0x091de0…091e00             69 6e 67 20 72 65 63 6f 72 64 20 2a 29 0a 63 61 73 65 20 72 65 63 74 79 70 65 20 6f 66 0a 0a 63   ┆ing record *) case rectype of  c┆
0x091e00…091e20 (38, 1, 13) 65 78 74 65 72 6e 61 6c 3a 0a 62 65 67 69 6e 0a 65 78 74 65 72 6e 61 6c 5f 64 65 63 6c 3a 3d 20   ┆external: begin external_decl:= ┆
0x091e20…091e40             74 72 75 65 3b 0a 65 6d 69 74 20 28 78 65 78 74 65 72 6e 61 6c 29 3b 0a 65 6e 64 3b 0a 0a 63 66   ┆true; emit (xexternal); end;  cf┆
0x091e40…091e60             6f 72 77 61 72 64 3a 0a 62 65 67 69 6e 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 70 72 6f   ┆orward: begin if namekind = cpro┆
0x091e60…091e80             63 65 73 73 20 74 68 65 6e 0a 65 72 72 6f 72 28 66 6f 72 77 61 72 64 5f 70 72 6f 63 65 73 73 5f   ┆cess then error(forward_process_┆
0x091e80…091ea0             6e 6f 74 5f 61 6c 6c 6f 77 65 64 29 3b 0a 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 74 72 75   ┆not_allowed); forward_decl:= tru┆
0x091ea0…091ec0             65 3b 0a 65 6d 69 74 20 28 78 66 6f 72 77 61 72 64 29 3b 0a 65 6e 64 3b 0a 0a 65 6c 73 65 3b 20   ┆e; emit (xforward); end;  else; ┆
0x091ec0…091ee0             28 2a 20 63 61 73 65 20 72 65 63 74 79 70 65 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28 2a   ┆(* case rectype *) end;  end; (*┆
0x091ee0…091f00             20 77 69 74 68 20 6e 61 6d 65 73 20 2a 29 0a 0a 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 3a   ┆ with names *)  expecting_block:┆
0x091f00…091f20             3d 20 66 61 6c 73 65 3b 20 28 2a 20 66 6c 61 67 20 74 6f 20 6f 6d 69 74 20 27 62 6c 6f 63 6b 6e   ┆= false; (* flag to omit 'blockn┆
0x091f20…091f40             6f 27 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 66 6f 72 6d 61 6c 6c 69 73 74 3a 0a 0a   ┆o' *)  end;    cendformallist:  ┆
0x091f40…091f60             62 65 67 69 6e 0a 0a 28 2a 20 27 63 75 72 5f 72 6f 75 74 69 6e 65 27 20 20 69 73 20 74 68 65 20   ┆begin  (* 'cur_routine'  is the ┆
0x091f60…091f80             6e 61 6d 65 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 2f 70 72 6f 63 65 64 75 72 65 2f 66 75   ┆name of the process/procedure/fu┆
0x091f80…091fa0             6e 63 74 69 6f 6e 20 2a 29 0a 28 2a 20 27 63 75 72 5f 74 79 70 65 6e 61 6d 65 27 20 69 73 20 74   ┆nction *) (* 'cur_typename' is t┆
0x091fa0…091fc0             68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 20 2a 29 0a 28 2a   ┆he name of the common type *) (*┆
0x091fc0…091fe0             20 27 63 75 72 5f 74 79 70 65 6e 6f 64 65 27 20 69 73 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e   ┆ 'cur_typenode' is the correspon┆
0x091fe0…092000             64 69 6e 67 20 74 79 70 65 6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 27 6c 69 73 74 66 69 72 73 74 27   ┆ding typenode *)  (* 'listfirst'┆
0x092000…092020 (38, 1, 14) 20 61 6e 64 20 27 6c 69 73 74 6c 61 73 74 27 20 6f 75 74 70 6f 69 6e 74 20 74 68 65 20 6c 69 73   ┆ and 'listlast' outpoint the lis┆
0x092020…092040             74 20 6f 66 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 73 20 2a 29 0a 0a 70 61 72 61 6d 6b 69 6e 64   ┆t of formal params *)  paramkind┆
0x092040…092060             3a 3d 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 2e 20 6e 61 6d 65 6b 69 6e 64 3b 0a 28 2a 20 6d   ┆:=  listfirst ^ . namekind; (* m┆
0x092060…092080             61 79 20 62 65 20 76 61 6c 75 65 2f 76 61 72 20 70 61 72 61 6d 20 2a 29 0a 0a 28 2a 20 63 68 65   ┆ay be value/var param *)  (* che┆
0x092080…0920a0             63 6b 20 70 61 72 61 6d 6b 69 6e 64 20 76 65 72 73 75 73 20 72 6f 75 74 69 6e 65 6b 69 6e 64 20   ┆ck paramkind versus routinekind ┆
0x0920a0…0920c0             74 6f 20 74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20 70 61 72 61 6d 65 74 65 72 2d 74 79   ┆to test legality of parameter-ty┆
0x0920c0…0920e0             70 65 20 2a 29 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 77 69   ┆pe *) with  cur_typenode ^ do wi┆
0x0920e0…092100             74 68 20 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 0a 6e 6f 74 5f   ┆th  cur_routine ^ do begin  not_┆
0x092100…092120             61 6c 6c 6f 77 65 64 3a 3d 20 5b 5d 3b 0a 0a 63 61 73 65 20 6e 61 6d 65 6b 69 6e 64 20 28 2a 20   ┆allowed:= [];  case namekind (* ┆
0x092120…092140             6f 66 20 72 6f 75 74 69 6e 65 20 2a 29 20 6f 66 0a 0a 63 74 79 70 65 3a 20 3b 20 28 2a 20 6e 6f   ┆of routine *) of  ctype: ; (* no┆
0x092140…092160             74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 2a 29 0a 0a 63 66 75 6e 63 74 69 6f 6e 2c 0a 63 70 72   ┆t implemented *)  cfunction, cpr┆
0x092160…092180             6f 63 65 64 75 72 65 3a 0a 28 2a 20 73 65 6d 61 70 68 6f 72 65 2c 20 72 65 66 65 72 65 6e 63 65   ┆ocedure: (* semaphore, reference┆
0x092180…0921a0             2c 20 65 78 74 20 70 72 6f 63 65 73 73 2c 20 73 68 61 64 6f 77 2c 20 70 6f 6f 6c 20 6e 6f 74 20   ┆, ext process, shadow, pool not ┆
0x0921a0…0921c0             61 6c 6c 6f 77 65 64 20 61 73 20 76 61 6c 75 65 20 70 61 72 61 6d 20 2a 29 0a 69 66 20 70 61 72   ┆allowed as value param *) if par┆
0x0921c0…0921e0             61 6d 6b 69 6e 64 20 3d 20 63 76 61 6c 75 65 70 20 74 68 65 6e 0a 6e 6f 74 5f 61 6c 6c 6f 77 65   ┆amkind = cvaluep then not_allowe┆
0x0921e0…092200             64 3a 3d 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20   ┆d:= [ t_semaphore, t_reference, ┆
0x092200…092220 (38, 1, 15) 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 20 74 5f 73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 20 5d   ┆t_extprocess, t_shadow, t_pool ]┆
0x092220…092240             3b 0a 0a 63 65 78 74 70 72 6f 63 65 73 73 2c 0a 63 70 72 6f 63 65 73 73 3a 0a 28 2a 20 72 65 66   ┆;  cextprocess, cprocess: (* ref┆
0x092240…092260             65 72 65 6e 63 65 2c 20 73 68 61 64 6f 77 2c 20 65 78 74 20 70 72 6f 63 65 73 73 2c 20 70 6f 6f   ┆erence, shadow, ext process, poo┆
0x092260…092280             6c 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 61 74 20 61 6c 6c 20 2a 29 0a 28 2a 20 73 65 6d 61 70   ┆l not allowed at all *) (* semap┆
0x092280…0922a0             68 6f 72 65 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 61 73 20 76 61 6c 75 65 20 70 61 72 61 6d 20   ┆hore not allowed as value param ┆
0x0922a0…0922c0             2a 29 0a 28 2a 20 70 6f 69 6e 74 65 72 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 6d 6f 64 69 66 69   ┆*) (* pointers may not be modifi┆
0x0922c0…0922e0             65 64 20 62 79 20 63 68 69 6c 64 20 2a 29 0a 69 66 20 74 65 73 74 70 72 6f 63 65 73 73 70 61 72   ┆ed by child *) if testprocesspar┆
0x0922e0…092300             61 6d 20 28 63 75 72 5f 74 79 70 65 6e 61 6d 65 2c 20 70 61 72 61 6d 6b 69 6e 64 20 3d 20 63 76   ┆am (cur_typename, paramkind = cv┆
0x092300…092320             61 72 70 29 20 74 68 65 6e 0a 6e 6f 74 5f 61 6c 6c 6f 77 65 64 3a 3d 20 63 6f 6e 74 65 6e 74 73   ┆arp) then not_allowed:= contents┆
0x092320…092340             20 28 2a 20 69 2e 65 2e 20 70 72 6f 76 6f 6b 65 20 65 72 72 6f 72 20 62 65 6c 6f 77 20 2a 29 0a   ┆ (* i.e. provoke error below *) ┆
0x092340…092360             65 6c 73 65 0a 69 66 20 70 61 72 61 6d 6b 69 6e 64 20 3d 20 63 76 61 6c 75 65 70 20 74 68 65 6e   ┆else if paramkind = cvaluep then┆
0x092360…092380             0a 6e 6f 74 5f 61 6c 6c 6f 77 65 64 3a 3d 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 20 5d 3b 0a   ┆ not_allowed:= [ t_semaphore ]; ┆
0x092380…0923a0             0a 65 6c 73 65 3b 20 28 2a 20 63 61 73 65 20 6e 61 6d 65 6b 69 6e 64 20 2a 29 0a 65 6e 64 3b 0a   ┆ else; (* case namekind *) end; ┆
0x0923a0…0923c0             0a 69 66 20 6e 6f 74 5f 61 6c 6c 6f 77 65 64 20 2a 20 63 6f 6e 74 65 6e 74 73 20 28 2a 20 6f 66   ┆ if not_allowed * contents (* of┆
0x0923c0…0923e0             20 70 61 72 61 6d 20 74 79 70 65 20 2a 29 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67 69 6e 0a   ┆ param type *) <> [] then begin ┆
0x0923e0…092400             28 2a 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 77 61 73 20 69 6c 6c 65 67 61   ┆(* the parameter type was illega┆
0x092400…092420 (39, 0, 1)  6c 2c 20 72 65 70 6c 61 63 65 20 69 74 20 2a 29 0a 65 72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f   ┆l, replace it *) error (illegal_┆
0x092420…092440             66 6f 72 6d 61 6c 5f 74 79 70 65 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e   ┆formal_type); set_error_type; en┆
0x092440…092460             64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 2a 29 20   ┆d;  end; (* with cur_routine *) ┆
0x092460…092480             28 2a 20 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 70 61 73 73   ┆(* with cur_typenode *)  (* pass┆
0x092480…0924a0             20 74 68 65 20 74 79 70 65 20 74 6f 20 61 6c 6c 20 66 6f 72 6d 61 6c 73 20 69 6e 20 74 68 65 20   ┆ the type to all formals in the ┆
0x0924a0…0924c0             6c 69 73 74 20 2a 29 0a 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69 73   ┆list *)  with  listlast ^ do lis┆
0x0924c0…0924e0             74 74 6f 70 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72 73   ┆ttop:= nextname;  while listfirs┆
0x0924e0…092500             74 20 3c 3e 20 6c 69 73 74 74 6f 70 20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20   ┆t <> listtop do with  listfirst ┆
0x092500…092520             5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61   ┆^ do begin typename:= cur_typena┆
0x092520…092540             6d 65 3b 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a   ┆me; listfirst:= nextname; end;  ┆
0x092540…092560             70 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 66 6f 72 6d 61 6c 3a 20 3b 20   ┆poptype;  end;    cendformal: ; ┆
0x092560…092580             28 2a 20 62 6c 69 6e 64 2c 20 74 68 65 20 61 63 74 69 6f 6e 20 69 73 20 64 65 6c 61 79 65 64 20   ┆(* blind, the action is delayed ┆
0x092580…0925a0             75 6e 74 69 6c 20 65 6e 64 2d 72 6f 75 74 69 6e 65 2d 64 65 63 6c 20 2a 29 0a 0a 0a 0c 0a 63 65   ┆until end-routine-decl *)     ce┆
0x0925a0…0925c0             6e 64 70 72 6f 63 64 65 63 6c 2c 0a 63 65 6e 64 66 75 6e 63 64 65 63 6c 3a 0a 0a 62 65 67 69 6e   ┆ndprocdecl, cendfuncdecl:  begin┆
0x0925c0…0925e0             0a 0a 28 2a 20 69 6e 20 63 61 73 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 2c 20 61 64 64 20 74 68   ┆  (* in case of function, add th┆
0x0925e0…092600             65 20 74 79 70 65 20 2a 29 0a 0a 28 2a 20 65 6d 69 74 20 74 68 65 20 72 6f 75 74 69 6e 65 68 65   ┆e type *)  (* emit the routinehe┆
0x092600…092620 (39, 0, 2)  61 64 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 5e 20 64 6f 0a 62 65   ┆ad *)  with  cur_routine ^ do be┆
0x092620…092640             67 69 6e 0a 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 66 75 6e 63 64 65 63 6c 20 74   ┆gin  if rectype = cendfuncdecl t┆
0x092640…092660             68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 65 20 6d 61 79 20 6e   ┆hen begin (* function type may n┆
0x092660…092680             6f 74 20 63 6f 6e 74 61 69 6e 20 2e 2e 2e 20 2a 29 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65   ┆ot contain ... *) with  cur_type┆
0x092680…0926a0             6e 6f 64 65 20 5e 20 64 6f 20 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 66 75 6e 63 74 69   ┆node ^ do  (* typenode of functi┆
0x0926a0…0926c0             6f 6e 20 74 79 70 65 20 2a 29 0a 69 66 20 63 6f 6e 74 65 6e 74 73 20 2a 20 5b 20 74 5f 73 65 6d   ┆on type *) if contents * [ t_sem┆
0x0926c0…0926e0             61 70 68 6f 72 65 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65 73   ┆aphore, t_reference, t_extproces┆
0x0926e0…092700             73 2c 20 74 5f 73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 20 5d 20 3c 3e 20 5b 5d 20 74 68 65 6e   ┆s, t_shadow, t_pool ] <> [] then┆
0x092700…092720             0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f 66 75 6e 63 74 69 6f 6e 5f 74   ┆ begin error (illegal_function_t┆
0x092720…092740             79 70 65 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 74 79 70 65   ┆ype); set_error_type; end;  type┆
0x092740…092760             6e 61 6d 65 20 28 2a 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 2a 29 3a 3d 20 63 75   ┆name (* of function name *):= cu┆
0x092760…092780             72 5f 74 79 70 65 6e 61 6d 65 3b 0a 0a 28 2a 20 61 6c 6c 6f 63 61 74 65 20 61 20 6e 61 6d 65 6e   ┆r_typename;  (* allocate a namen┆
0x092780…0927a0             6f 64 65 20 66 6f 72 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c   ┆ode for holding the function val┆
0x0927a0…0927c0             75 65 20 2a 29 0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 66 75 6e 63 76 61 6c 3b 0a 69   ┆ue *) cur_namekind:= cfuncval; i┆
0x0927c0…0927e0             6e 73 65 72 74 5f 69 6e 5f 66 72 6f 6e 74 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 6e 6f 74 65 3a   ┆nsert_in_front:= true;  (* note:┆
0x0927e0…092800             20 69 74 20 6d 75 73 74 20 62 65 20 74 68 65 20 76 65 72 79 20 66 69 72 73 74 20 69 6e 20 66 6f   ┆ it must be the very first in fo┆
0x092800…092820 (39, 0, 3)  72 6d 61 6c 20 6c 69 73 74 20 2a 29 0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28   ┆rmal list *) curname:= newname (┆
0x092820…092840             61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 29 3b 0a 69 6e 73 65 72 74 5f 69 6e 5f 66 72 6f 6e 74   ┆anonymous_spix); insert_in_front┆
0x092840…092860             3a 3d 20 66 61 6c 73 65 3b 20 28 2a 20 61 6c 6c 20 6f 74 68 65 72 20 6e 61 6d 65 73 20 65 74 63   ┆:= false; (* all other names etc┆
0x092860…092880             20 61 72 65 20 69 6e 73 65 72 74 65 64 20 69 6e 20 72 65 61 72 20 2a 29 0a 77 69 74 68 20 20 63   ┆ are inserted in rear *) with  c┆
0x092880…0928a0             75 72 6e 61 6d 65 20 5e 20 64 6f 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e   ┆urname ^ do typename:= cur_typen┆
0x0928a0…0928c0             61 6d 65 3b 0a 0a 70 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 20 28 2a 20 69 66 20 66 75 6e 63 74   ┆ame;  poptype;  end; (* if funct┆
0x0928c0…0928e0             69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 2a 29 0a 0a 28 2a 20 74 68 65 20 77 68 6f 6c 65   ┆ion declaration *)  (* the whole┆
0x0928e0…092900             20 70 61 72 61 6d 6c 69 73 74 20 28 69 6e 63 6c 75 64 69 6e 67 20 69 6d 70 6c 69 63 69 74 20 74   ┆ paramlist (including implicit t┆
0x092900…092920             79 70 65 73 29 20 61 72 65 20 69 6e 20 74 68 65 20 2a 29 0a 28 2a 20 20 20 63 75 72 72 65 6e 74   ┆ypes) are in the *) (*   current┆
0x092920…092940             20 6e 61 6d 65 6c 65 76 65 6c 20 69 6e 20 6e 61 6d 65 73 74 61 63 6b 20 2a 29 0a 0a 28 2a 20 74   ┆ namelevel in namestack *)  (* t┆
0x092940…092960             72 61 6e 73 66 65 72 20 74 68 65 20 70 61 72 61 6d 6c 69 73 74 20 70 6f 69 6e 74 65 72 20 74 6f   ┆ransfer the paramlist pointer to┆
0x092960…092980             20 74 68 69 73 20 72 6f 75 74 69 6e 65 20 2a 29 0a 0a 28 2a 20 62 75 74 20 66 69 72 73 74 20 63   ┆ this routine *)  (* but first c┆
0x092980…0929a0             6f 6d 70 61 72 65 20 74 68 65 20 6e 65 77 20 70 61 72 61 6d 6c 69 73 74 20 61 67 61 69 6e 73 74   ┆ompare the new paramlist against┆
0x0929a0…0929c0             20 74 68 65 20 6f 6c 64 20 70 61 72 61 6d 6c 69 73 74 20 2a 29 0a 28 2a 20 28 69 6e 20 63 61 73   ┆ the old paramlist *) (* (in cas┆
0x0929c0…0929e0             65 20 6f 66 20 65 61 72 6c 69 65 72 20 66 6f 72 77 61 72 64 20 64 65 63 6c 61 72 61 74 69 6f 6e   ┆e of earlier forward declaration┆
0x0929e0…092a00             29 20 2a 29 0a 69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 63 6f 6d 70 61 72   ┆) *) if forward_decl then compar┆
0x092a00…092a20 (39, 0, 4)  65 5f 70 61 72 61 6d 6c 69 73 74 73 3b 20 28 2a 20 74 68 65 20 6e 65 77 20 6c 69 73 74 20 6d 75   ┆e_paramlists; (* the new list mu┆
0x092a20…092a40             73 74 20 62 65 20 65 6d 70 74 79 20 6f 72 20 6d 61 74 63 68 20 65 78 61 63 74 6c 79 20 2a 29 0a   ┆st be empty or match exactly *) ┆
0x092a40…092a60             0a 77 69 74 68 20 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 70 61 72 61 6d 73 20 28 2a 20 6f   ┆ with  namelevel^ do params (* o┆
0x092a60…092a80             66 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 2a 29 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 20 28 2a   ┆f cur_routine *):= firstname; (*┆
0x092a80…092aa0             20 6f 66 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 0a 65 6d 69 74 72 6f 75 74 69 6e 65 68 65 61   ┆ of namelevel *)  emitroutinehea┆
0x092aa0…092ac0             64 20 28 63 75 72 5f 72 6f 75 74 69 6e 65 29 3b 0a 0a 28 2a 20 74 68 65 20 72 6f 75 74 69 6e 65   ┆d (cur_routine);  (* the routine┆
0x092ac0…092ae0             20 69 73 20 6f 66 20 73 70 65 63 69 61 6c 20 69 6e 74 65 72 72 65 73 74 2c 20 69 66 20 69 74 20   ┆ is of special interrest, if it ┆
0x092ae0…092b00             69 73 3a 20 27 6f 72 64 27 2c 20 27 73 75 63 63 27 2c 20 65 74 63 20 2a 29 0a 69 66 20 73 70 69   ┆is: 'ord', 'succ', etc *) if spi┆
0x092b00…092b20             78 20 3c 3d 20 6d 61 78 73 74 64 73 70 69 78 20 74 68 65 6e 0a 73 70 65 63 69 61 6c 73 70 69 78   ┆x <= maxstdspix then specialspix┆
0x092b20…092b40             20 28 63 75 72 5f 72 6f 75 74 69 6e 65 29 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75   ┆ (cur_routine);  end; (* with cu┆
0x092b40…092b60             72 5f 72 6f 75 74 69 6e 65 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 63 6f 6e 73 74 61   ┆r_routine *)  end;    cendconsta┆
0x092b60…092b80             6e 74 64 65 63 6c 3a 0a 0a 62 65 67 69 6e 0a 0a 74 65 73 74 76 61 6c 75 65 20 28 73 74 61 63 6b   ┆ntdecl:  begin  testvalue (stack┆
0x092b80…092ba0             74 6f 70 29 3b 0a 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f 20 28 2a 20 6e   ┆top);  with  listfirst ^ do (* n┆
0x092ba0…092bc0             62 20 6a 75 73 74 20 6f 6e 65 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 6c 69 73 74 20 2a 29 0a 62   ┆b just one name in the list *) b┆
0x092bc0…092be0             65 67 69 6e 0a 75 73 65 64 6c 65 76 65 6c 3a 3d 20 6c 6f 77 65 73 74 6c 65 76 65 6c 3b 20 20 28   ┆egin usedlevel:= lowestlevel;  (┆
0x092be0…092c00             2a 20 6c 65 74 20 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 20 62 65 20 64 65 66 69 6e 65 64 20   ┆* let the identifier be defined ┆
0x092c00…092c20 (39, 0, 5)  6e 6f 77 2e 2e 2e 20 2a 29 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 74 79   ┆now... *) with  stacktop ^ do ty┆
0x092c20…092c40             70 65 6e 61 6d 65 20 28 2a 20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 2a 29 3a 3d 20 6f 70 5f 74 79   ┆pename (* of constant *):= op_ty┆
0x092c40…092c60             70 65 6e 61 6d 65 3b 20 20 28 2a 69 2e 65 2e 20 63 6f 70 79 20 66 72 6f 6d 20 65 78 70 72 65 73   ┆pename;  (*i.e. copy from expres┆
0x092c60…092c80             73 69 6f 6e 20 74 79 70 65 20 2a 29 0a 65 6e 64 3b 0a 0a 63 6f 6e 73 74 5f 64 65 63 6c 3a 3d 20   ┆sion type *) end;  const_decl:= ┆
0x092c80…092ca0             74 72 75 65 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70   ┆true; emit_and_release (stacktop┆
0x092ca0…092cc0             29 3b 0a 63 6f 6e 73 74 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 0a 65 6d 69 74 69 64 20 28   ┆); const_decl:= false;  emitid (┆
0x092cc0…092ce0             78 63 6f 6e 73 74 69 64 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63   ┆xconstid, listfirst);  end;    c┆
0x092ce0…092d00             65 6e 64 74 79 70 65 64 65 63 6c 3a 0a 0a 62 65 67 69 6e 0a 65 6d 69 74 74 79 70 65 20 28 63 75   ┆endtypedecl:  begin emittype (cu┆
0x092d00…092d20             72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 65 6d 69 74 20 28 78 74 79 70 65 64 65 66 29 3b 0a 0a 28   ┆r_typename); emit (xtypedef);  (┆
0x092d20…092d40             2a 20 74 68 65 20 74 79 70 65 20 69 73 20 6f 66 20 73 70 65 63 69 61 6c 20 69 6e 74 65 72 72 65   ┆* the type is of special interre┆
0x092d40…092d60             73 74 20 69 6e 20 63 61 73 65 20 6f 66 20 27 72 65 66 65 72 65 6e 63 65 27 20 65 74 63 20 2a 29   ┆st in case of 'reference' etc *)┆
0x092d60…092d80             0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78   ┆ with  cur_typename ^ do if spix┆
0x092d80…092da0             20 3c 3d 20 6d 61 78 73 74 64 73 70 69 78 20 74 68 65 6e 0a 73 70 65 63 69 61 6c 73 70 69 78 20   ┆ <= maxstdspix then specialspix ┆
0x092da0…092dc0             28 63 75 72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 0a 70 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 0a   ┆(cur_typename);  poptype;  end; ┆
0x092dc0…092de0             0a 0a 0a 63 6e 6f 69 6e 69 74 2c 0a 63 69 6e 69 74 3a 0a 62 65 67 69 6e 0a 69 66 20 28 72 65 63   ┆   cnoinit, cinit: begin if (rec┆
0x092de0…092e00             74 79 70 65 20 3d 20 63 6e 6f 69 6e 69 74 29 20 61 6e 64 20 28 76 61 72 5f 69 6e 69 74 69 61 6c   ┆type = cnoinit) and (var_initial┆
0x092e00…092e20 (39, 0, 6)  69 7a 61 74 69 6f 6e 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 20 20 77 61 72 6e 69 6e 67 28 61 73   ┆ization) then begin   warning(as┆
0x092e20…092e40             73 69 67 6e 5f 6d 69 73 73 69 6e 67 29 3b 0a 20 20 72 65 63 74 79 70 65 20 3a 3d 20 63 69 6e 69   ┆sign_missing);   rectype := cini┆
0x092e40…092e60             74 3b 0a 65 6e 64 3b 0a 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 3a 3d 20 72 65 63   ┆t; end; var_initialization:= rec┆
0x092e60…092e80             74 79 70 65 20 3d 20 63 69 6e 69 74 3b 0a 65 6e 64 3b 0a 0a 0a 63 65 6e 64 76 61 72 64 65 63 6c   ┆type = cinit; end;   cendvardecl┆
0x092e80…092ea0             3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 73 65 6d 61 70 68 6f 72 65 20 61 6e 64 20 70 6f 6f 6c 20   ┆:  begin  (* semaphore and pool ┆
0x092ea0…092ec0             6d 61 79 20 6f 6e 6c 79 20 2a 29 0a 28 2a 20 20 20 62 65 20 64 65 63 6c 61 72 65 64 20 6f 6e 20   ┆may only *) (*   be declared on ┆
0x092ec0…092ee0             70 72 6f 63 65 73 73 2d 6c 65 76 65 6c 20 2a 29 0a 0a 69 66 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f   ┆process-level *)  if cur_blockno┆
0x092ee0…092f00             20 3c 3e 20 70 72 6f 63 65 73 73 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 69 74   ┆ <> process_block then begin wit┆
0x092f00…092f20             68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 69 66 20 5b 20 74 5f 73 65 6d 61   ┆h  cur_typenode ^ do if [ t_sema┆
0x092f20…092f40             70 68 6f 72 65 2c 20 74 5f 70 6f 6f 6c 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 20 5d 20 2a 20   ┆phore, t_pool, t_extprocess ] * ┆
0x092f40…092f60             63 6f 6e 74 65 6e 74 73 20 28 2a 20 6f 66 20 74 79 70 65 20 2a 29 20 3c 3e 20 5b 5d 20 74 68 65   ┆contents (* of type *) <> [] the┆
0x092f60…092f80             6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 74 79 70 65 5f 6d 61 79 5f 6f 6e 6c 79 5f 62 65 5f   ┆n begin error (type_may_only_be_┆
0x092f80…092fa0             75 73 65 64 5f 61 74 5f 70 72 6f 63 65 73 73 5f 6c 65 76 65 6c 29 3b 0a 73 65 74 5f 65 72 72 6f   ┆used_at_process_level); set_erro┆
0x092fa0…092fc0             72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 74   ┆r_type; end; end;  (* transfer t┆
0x092fc0…092fe0             68 65 20 74 79 70 65 20 74 6f 20 61 6c 6c 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20 74 68 65 20   ┆he type to all variables in the ┆
0x092fe0…093000             6e 61 6d 65 6c 69 73 74 20 2a 29 0a 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f   ┆namelist *)  with  listlast ^ do┆
0x093000…093020 (39, 0, 7)  20 6c 69 73 74 74 6f 70 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74   ┆ listtop:= nextname;  while list┆
0x093020…093040             66 69 72 73 74 20 3c 3e 20 6c 69 73 74 74 6f 70 20 64 6f 0a 62 65 67 69 6e 0a 65 6d 69 74 69 64   ┆first <> listtop do begin emitid┆
0x093040…093060             20 28 78 76 61 72 69 64 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 0a 77 69 74 68 20 20 6c 69 73 74   ┆ (xvarid, listfirst); with  list┆
0x093060…093080             66 69 72 73 74 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f   ┆first ^ do begin typename:= cur_┆
0x093080…0930a0             74 79 70 65 6e 61 6d 65 3b 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a   ┆typename; listfirst:= nextname; ┆
0x0930a0…0930c0             65 6e 64 3b 0a 65 6e 64 3b 0a 0a 65 6d 69 74 74 79 70 65 20 28 63 75 72 5f 74 79 70 65 6e 61 6d   ┆end; end;  emittype (cur_typenam┆
0x0930c0…0930e0             65 29 3b 0a 0a 69 66 20 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 74 68 65 6e 0a   ┆e);  if var_initialization then ┆
0x0930e0…093100             62 65 67 69 6e 0a 74 65 73 74 69 6e 69 74 69 61 6c 69 7a 65 20 28 63 75 72 5f 74 79 70 65 6e 61   ┆begin testinitialize (cur_typena┆
0x093100…093120             6d 65 2c 20 76 61 72 5f 69 6e 69 74 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 65 6d 69 74   ┆me, var_init_incompatible); emit┆
0x093120…093140             5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6d 69 74 20 28 78   ┆_and_release (stacktop); emit (x┆
0x093140…093160             69 6e 69 74 63 6f 6e 73 74 29 3b 0a 65 6e 64 3b 0a 0a 65 6d 69 74 20 28 78 76 61 72 6c 69 73 74   ┆initconst); end;  emit (xvarlist┆
0x093160…093180             29 3b 0a 0a 70 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 0a 63 65 78 70 6f 72 74 2c 0a   ┆);  poptype;  end;     cexport, ┆
0x093180…0931a0             63 65 78 70 6f 72 74 76 61 6c 75 65 2c 0a 63 65 78 70 6f 72 74 73 69 7a 65 2c 0a 63 65 78 70 6f   ┆cexportvalue, cexportsize, cexpo┆
0x0931a0…0931c0             72 74 64 69 73 70 2c 0a 63 65 78 70 6f 72 74 6f 66 66 73 65 74 2c 0a 63 65 78 70 6f 72 74 61 64   ┆rtdisp, cexportoffset, cexportad┆
0x0931c0…0931e0             64 72 3a 0a 65 78 70 6f 72 74 5f 70 72 6f 63 65 64 75 72 65 3b 0a 0a 63 65 6e 64 64 65 63 6c 61   ┆dr: export_procedure;  cenddecla┆
0x0931e0…093200             72 61 74 69 6f 6e 73 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68 69 73 20 72 65 63 6f 72 64 20   ┆rations:  begin  (* this record ┆
0x093200…093220 (39, 0, 8)  63 6f 6d 65 73 20 61 74 20 65 6e 64 20 6f 66 20 65 61 63 68 20 63 6f 6e 74 65 78 74 20 2a 29 0a   ┆comes at end of each context *) ┆
0x093220…093240             28 2a 20 20 20 61 6e 64 20 61 74 20 74 68 65 20 66 69 72 73 74 20 27 62 65 67 69 6e 27 20 69 6e   ┆(*   and at the first 'begin' in┆
0x093240…093260             20 61 20 72 6f 75 74 69 6e 65 20 2a 29 0a 0a 28 2a 20 74 68 65 20 73 65 70 61 72 61 74 69 6f 6e   ┆ a routine *)  (* the separation┆
0x093260…093280             20 6f 66 20 74 68 65 73 65 20 74 77 6f 20 77 69 6c 6c 20 62 65 20 64 6f 6e 65 20 62 79 20 27 73   ┆ of these two will be done by 's┆
0x093280…0932a0             74 61 72 74 6c 61 62 65 6c 73 63 6f 70 65 27 20 2a 29 0a 0a 61 66 74 65 72 64 65 63 6c 3a 3d 20   ┆tartlabelscope' *)  afterdecl:= ┆
0x0932a0…0932c0             74 72 75 65 3b 0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 61 6c 6c 20 66 6f 72 77 61 72 64 2d   ┆true;  (* test that all forward-┆
0x0932c0…0932e0             64 65 63 6c 61 72 65 64 20 72 6f 75 74 69 6e 65 73 20 68 61 76 65 20 62 65 65 6e 20 73 6f 6c 76   ┆declared routines have been solv┆
0x0932e0…093300             65 64 20 2a 29 0a 77 69 74 68 20 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 63 75 72 6e 61 6d   ┆ed *) with  namelevel^ do curnam┆
0x093300…093320             65 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 20 20 20 28 2a 20 66 69 72 73 74 20 6e 61 6d 65 20 69   ┆e:= firstname;   (* first name i┆
0x093320…093340             6e 20 6e 61 6d 65 20 6c 69 73 74 20 2a 29 0a 77 68 69 6c 65 20 63 75 72 6e 61 6d 65 20 3c 3e 20   ┆n name list *) while curname <> ┆
0x093340…093360             6e 69 6c 6e 61 6d 65 20 64 6f 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 62 65   ┆nilname do with  curname ^ do be┆
0x093360…093380             67 69 6e 0a 69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65   ┆gin if forward_decl then begin e┆
0x093380…0933a0             72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 2a   ┆rrorspix:= spix; (* of curname *┆
0x0933a0…0933c0             29 0a 65 72 72 6f 72 20 28 66 6f 72 77 61 72 64 5f 6e 6f 74 5f 73 6f 6c 76 65 64 29 3b 0a 65 6e   ┆) error (forward_not_solved); en┆
0x0933c0…0933e0             64 3b 0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 63 75 72   ┆d; curname:= nextname; end;  cur┆
0x0933e0…093400             5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 69 6c 5f 6e 61 6d 65 73 74 61 63 6b 5f 70   ┆_dyn_var_level:= nil_namestack_p┆
0x093400…093420 (39, 0, 9)  74 72 3b 20 28 2a 20 61 6c 6c 20 76 61 72 69 61 62 6c 65 20 6c 65 76 65 6c 73 20 61 72 65 20 6c   ┆tr; (* all variable levels are l┆
0x093420…093440             65 67 61 6c 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 73 74 61 72 74 6c 61 62 65 6c 73 63 6f 70   ┆egal *)  end;    cstartlabelscop┆
0x093440…093460             65 2c 0a 63 65 6e 64 6c 61 62 65 6c 73 63 6f 70 65 3a 0a 0a 62 65 67 69 6e 0a 0a 63 75 72 5f 6c   ┆e, cendlabelscope:  begin  cur_l┆
0x093460…093480             61 62 65 6c 73 63 6f 70 65 3a 3d 20 70 61 73 73 69 6e 3b 0a 0a 69 66 20 61 66 74 65 72 64 65 63   ┆abelscope:= passin;  if afterdec┆
0x093480…0934a0             6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 74 68 69 73 20 69 73 20 74 68 65 20 27 62 65 67   ┆l then begin (* this is the 'beg┆
0x0934a0…0934c0             69 6e 27 20 6f 66 20 61 20 72 6f 75 74 69 6e 65 20 2a 29 0a 61 66 74 65 72 64 65 63 6c 3a 3d 20   ┆in' of a routine *) afterdecl:= ┆
0x0934c0…0934e0             66 61 6c 73 65 3b 0a 0a 69 66 20 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a   ┆false;  if expecting_block then ┆
0x0934e0…093500             62 65 67 69 6e 5f 62 6c 6f 63 6b 3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 68 65 72 65 20 77 65   ┆begin_block; (* because there we┆
0x093500…093520             72 65 20 6e 6f 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 74 20 61 6c 6c 20 2a 29 0a 0a 69 66   ┆re no declarations at all *)  if┆
0x093520…093540             20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 3d 20 70 72 6f 63 65 73 73 5f 62 6c 6f 63 6b 20 74 68 65   ┆ cur_blockno = process_block the┆
0x093540…093560             6e 0a 62 65 67 69 6e 0a 28 2a 20 70 72 6f 63 65 73 73 20 6c 65 76 65 6c 20 2a 29 0a 28 2a 20 66   ┆n begin (* process level *) (* f┆
0x093560…093580             69 6e 64 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 65 78 63 65 70 74 69 6f 6e 20 70 72 6f 63 65   ┆ind the relevant exception proce┆
0x093580…0935a0             64 75 72 65 20 2a 29 0a 0a 63 75 72 6e 61 6d 65 3a 3d 20 66 69 6e 64 6e 61 6d 65 20 28 65 78 63   ┆dure *)  curname:= findname (exc┆
0x0935a0…0935c0             65 70 74 69 6f 6e 5f 73 70 69 78 29 3b 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f   ┆eption_spix); with  curname ^ do┆
0x0935c0…0935e0             20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 65 78 63 65 70 74 69 6f 6e 20 70 72 6f 63 65 64   ┆ (* namenode of exception proced┆
0x0935e0…093600             75 72 65 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3c 3e 20 63 70 72 6f 63 65 64 75 72 65   ┆ure *) if namekind <> cprocedure┆
0x093600…093620 (39, 0, 10) 20 74 68 65 6e 0a 63 75 72 6e 61 6d 65 3a 3d 20 65 78 63 65 70 74 69 6f 6e 5f 70 72 6f 63 6e 61   ┆ then curname:= exception_procna┆
0x093620…093640             6d 65 3b 0a 28 2a 20 6e 62 20 6e 62 20 6e 62 20 6e 62 3a 20 74 65 73 74 20 6b 6f 72 72 65 6b 74   ┆me; (* nb nb nb nb: test korrekt┆
0x093640…093660             20 70 61 72 61 6d 6c 69 73 74 65 20 2a 29 0a 0a 65 6d 69 74 69 64 20 28 78 65 78 63 65 70 74 69   ┆ paramliste *)  emitid (xexcepti┆
0x093660…093680             6f 6e 2c 20 63 75 72 6e 61 6d 65 29 3b 0a 65 6e 64 3b 0a 0a 65 6d 69 74 20 28 78 69 6e 69 74 62   ┆on, curname); end;  emit (xinitb┆
0x093680…0936a0             6c 6f 63 6b 29 3b 0a 0a 69 6e 69 74 6c 61 62 65 6c 73 3b 0a 0a 65 6e 64 3b 0a 0a 73 65 74 5f 6c   ┆lock);  initlabels;  end;  set_l┆
0x0936a0…0936c0             61 62 65 6c 5f 73 74 61 74 65 20 28 72 65 63 74 79 70 65 20 3d 20 63 73 74 61 72 74 6c 61 62 65   ┆abel_state (rectype = cstartlabe┆
0x0936c0…0936e0             6c 73 63 6f 70 65 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 62 65 67 69 6e 63 6f 64 65 3a 0a 62 65   ┆lscope);  end;    cbegincode: be┆
0x0936e0…093700             67 69 6e 0a 62 65 67 69 6e 5f 62 6c 6f 63 6b 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73   ┆gin begin_block; emit_and_releas┆
0x093700…093720             65 20 28 73 74 61 63 6b 74 6f 70 29 3b 20 20 28 2a 20 6c 69 74 65 72 61 6c 20 3d 3d 20 73 74 61   ┆e (stacktop);  (* literal == sta┆
0x093720…093740             63 6b 20 61 70 70 65 74 69 74 65 20 2a 29 0a 65 6d 69 74 20 28 78 62 65 67 69 6e 63 6f 64 65 29   ┆ck appetite *) emit (xbegincode)┆
0x093740…093760             3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 6f 64 65 6c 69 6e 65 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20   ┆; end;    ccodeline: begin emit ┆
0x093760…093780             28 78 63 6f 64 65 6c 69 6e 65 29 3b 0a 6c 69 6e 65 6e 6f 3a 3d 20 70 61 73 73 69 6e 3b 20 20 28   ┆(xcodeline); lineno:= passin;  (┆
0x093780…0937a0             2a 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 73 20 69 6e 20 6c 69 6e 65 20 2a 29 0a 65 6d 69   ┆* number of chars in line *) emi┆
0x0937a0…0937c0             74 69 6e 20 28 6c 69 6e 65 6e 6f 29 3b 0a 66 6f 72 20 6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e   ┆tin (lineno); for lineno:= linen┆
0x0937c0…0937e0             6f 20 64 6f 77 6e 74 6f 20 31 20 64 6f 20 65 6d 69 74 69 6e 20 28 70 61 73 73 69 6e 29 3b 0a 65   ┆o downto 1 do emitin (passin); e┆
0x0937e0…093800             6e 64 3b 0a 0a 0c 0a 63 65 6e 64 63 6f 64 65 2c 0a 63 65 6e 64 62 6c 6f 63 6b 3a 0a 0a 62 65 67   ┆nd;    cendcode, cendblock:  beg┆
0x093800…093820 (39, 0, 11) 69 6e 0a 0a 28 2a 20 72 65 6c 65 61 73 65 20 61 6c 6c 20 6c 6f 63 61 6c 20 6e 61 6d 65 6e 6f 64   ┆in  (* release all local namenod┆
0x093820…093840             65 73 20 61 6e 64 20 74 68 65 69 72 20 74 79 70 65 6e 6f 64 65 73 20 2a 29 0a 0a 28 2a 20 6e 6f   ┆es and their typenodes *)  (* no┆
0x093840…093860             74 69 63 65 3a 20 74 68 65 20 6e 61 6d 65 6e 6f 64 65 73 20 6f 66 20 74 68 65 20 70 61 72 61 6d   ┆tice: the namenodes of the param┆
0x093860…093880             65 74 65 72 73 20 74 6f 20 61 20 62 6c 6f 63 6b 20 2a 29 0a 28 2a 20 20 20 20 20 20 20 20 20 61   ┆eters to a block *) (*         a┆
0x093880…0938a0             72 65 20 72 65 6c 65 61 73 65 64 20 62 79 20 74 68 65 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 62   ┆re released by the surrounding b┆
0x0938a0…0938c0             6c 6f 63 6b 20 2a 29 0a 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 63 6f 64 65 20 74   ┆lock *)  if rectype = cendcode t┆
0x0938c0…0938e0             68 65 6e 0a 65 6d 69 74 20 28 78 65 6e 64 63 6f 64 65 29 0a 65 6c 73 65 0a 65 6d 69 74 20 28 78   ┆hen emit (xendcode) else emit (x┆
0x0938e0…093900             65 6e 64 62 6c 6f 63 6b 29 3b 0a 69 66 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 3c 3e 20 70 72 6f   ┆endblock); if cur_blockno <> pro┆
0x093900…093920             63 65 73 73 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 63 75 72 5f 62 6c 6f 63 6b 6e 6f 3a 3d 20 63 75   ┆cess_block then cur_blockno:= cu┆
0x093920…093940             72 5f 62 6c 6f 63 6b 6e 6f 20 2d 20 31 3b 0a 28 2a 20 72 65 6c 65 61 73 65 20 6c 6f 63 61 6c 20   ┆r_blockno - 1; (* release local ┆
0x093940…093960             64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 73 2c 20 6e 62 20 21 20 6f 6e 6c 79 20 70 72   ┆declared variables, nb ! only pr┆
0x093960…093980             65 63 65 6e 74 20 69 66 20 22 65 6e 64 62 6c 6f 63 6b 22 20 2a 29 0a 69 66 20 72 65 63 74 79 70   ┆ecent if "endblock" *) if rectyp┆
0x093980…0939a0             65 20 3d 20 63 65 6e 64 62 6c 6f 63 6b 20 74 68 65 6e 0a 0a 72 65 6c 65 61 73 65 6e 61 6d 65 73   ┆e = cendblock then  releasenames┆
0x0939a0…0939c0             20 28 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 2e 20 66 69 72 73 74 6e 61 6d 65 29 3b 0a 0a 28 2a 20   ┆ ( namelevel^ . firstname);  (* ┆
0x0939c0…0939e0             74 65 73 74 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 73 20 68 61 76 65 20 68 61 64 20 61 20 63   ┆test that functions have had a c┆
0x0939e0…093a00             68 61 6e 63 65 20 66 6f 72 20 61 73 73 69 67 6e 69 6e 67 20 61 20 76 61 6c 75 65 20 2a 29 0a 69   ┆hance for assigning a value *) i┆
0x093a00…093a20 (39, 0, 12) 66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 62 6c 6f 63 6b 20 74 68 65 6e 0a 77 69 74 68 20   ┆f rectype = cendblock then with ┆
0x093a20…093a40             20 6e 61 6d 65 6c 65 76 65 6c 5e 2e 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 5e 20 64 6f 20 20 28 2a   ┆ namelevel^.former_level^ do  (*┆
0x093a40…093a60             20 70 61 72 61 6d 65 74 65 72 2d 6c 65 76 65 6c 20 2a 29 0a 77 69 74 68 20 20 66 69 72 73 74 6e   ┆ parameter-level *) with  firstn┆
0x093a60…093a80             61 6d 65 20 5e 20 64 6f 20 20 20 20 20 20 20 20 28 2a 20 66 69 72 73 74 20 66 6f 72 6d 61 6c 20   ┆ame ^ do        (* first formal ┆
0x093a80…093aa0             6e 61 6d 65 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 66 75 6e 63 76 61 6c 20 74   ┆name *) if namekind = cfuncval t┆
0x093aa0…093ac0             68 65 6e 20 20 20 20 20 20 28 2a 20 69 74 20 6d 75 73 74 20 68 61 76 65 20 62 65 65 6e 20 61 20   ┆hen      (* it must have been a ┆
0x093ac0…093ae0             66 75 6e 63 74 69 6f 6e 20 2a 29 0a 69 66 20 6e 6f 74 20 66 75 6e 63 5f 61 73 73 69 67 6e 65 64   ┆function *) if not func_assigned┆
0x093ae0…093b00             20 74 68 65 6e 0a 65 72 72 6f 72 20 28 66 75 6e 63 76 61 6c 5f 6e 6f 74 5f 75 73 65 64 29 3b 0a   ┆ then error (funcval_not_used); ┆
0x093b00…093b20             0a 65 6e 64 3b 0a 0a 0c 0a 63 74 79 70 65 69 64 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 6e 20   ┆ end;    ctypeid:  begin  (* an ┆
0x093b20…093b40             65 78 69 73 74 69 6e 67 20 74 79 70 65 6e 6f 64 65 20 77 69 6c 6c 20 62 65 20 72 65 75 73 65 64   ┆existing typenode will be reused┆
0x093b40…093b60             20 2a 29 0a 0a 70 75 73 68 74 79 70 65 3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 79 70 65 73 20   ┆ *)  pushtype; (* because types ┆
0x093b60…093b80             6d 61 79 20 62 65 20 6e 65 73 74 65 64 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 3a 3d   ┆may be nested *)  cur_typename:=┆
0x093b80…093ba0             20 75 73 65 6e 61 6d 65 20 28 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20 2a 29 20 29 3b   ┆ usename (passin (* = spix *) );┆
0x093ba0…093bc0             0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 0a 62 65 67 69 6e   ┆  with  cur_typename ^ do  begin┆
0x093bc0…093be0             0a 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d 20 74 79 70 3b 0a 0a 28 2a 20 74 65 73 74 20 74   ┆  cur_typenode:= typ;  (* test t┆
0x093be0…093c00             68 61 74 20 74 68 65 20 6e 61 6d 65 6e 6f 64 65 20 72 65 61 6c 6c 79 20 77 61 73 20 61 20 74 79   ┆hat the namenode really was a ty┆
0x093c00…093c20 (39, 0, 13) 70 65 6e 61 6d 65 20 6e 6f 64 65 20 2a 29 0a 69 66 20 28 6e 61 6d 65 6b 69 6e 64 3c 3e 63 74 79   ┆pename node *) if (namekind<>cty┆
0x093c20…093c40             70 65 29 20 61 6e 64 20 28 6e 61 6d 65 6b 69 6e 64 3c 3e 63 65 78 74 70 72 6f 63 65 73 73 29 20   ┆pe) and (namekind<>cextprocess) ┆
0x093c40…093c60             74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 0a 65 72 72   ┆then begin errorspix:= spix; err┆
0x093c60…093c80             6f 72 20 28 6e 6f 74 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70   ┆or (not_typename); set_error_typ┆
0x093c80…093ca0             65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 61   ┆e; end;  end; (* with cur_typena┆
0x093ca0…093cc0             6d 65 20 2a 29 0a 0a 69 66 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 74 79 70 65 20 74   ┆me *)  if cur_namekind = ctype t┆
0x093cc0…093ce0             68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 74 68 69 73 20 69 73 3a 20 20 20 3c 6e 61 6d 65 3e 20 3d   ┆hen begin (* this is:   <name> =┆
0x093ce0…093d00             20 3c 74 79 70 65 6e 61 6d 65 3e 3b 20 20 2a 29 0a 28 2a 20 73 65 74 75 70 20 61 6e 20 27 61 6c   ┆ <typename>;  *) (* setup an 'al┆
0x093d00…093d20             69 61 73 27 20 6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 69 74 20 69 73 20 6e 6f 74 20 6e 65 73 63 65   ┆ias' node *)  (* it is not nesce┆
0x093d20…093d40             73 73 61 72 79 20 74 6f 20 74 65 73 74 20 66 6f 72 20 72 65 63 75 72 73 69 76 65 20 75 73 65 2c   ┆ssary to test for recursive use,┆
0x093d40…093d60             20 62 65 63 61 75 73 65 20 69 74 20 2a 29 0a 28 2a 20 68 61 73 20 62 65 65 6e 20 74 65 73 74 65   ┆ because it *) (* has been teste┆
0x093d60…093d80             64 20 74 68 61 74 20 72 69 67 74 68 68 61 6e 64 20 6e 61 6d 65 20 77 61 73 20 74 68 65 20 6e 61   ┆d that rigthhand name was the na┆
0x093d80…093da0             6d 65 20 6f 66 20 61 20 64 65 66 69 6e 65 64 20 74 79 70 65 20 2a 29 0a 0a 63 75 72 5f 74 79 70   ┆me of a defined type *)  cur_typ┆
0x093da0…093dc0             65 6e 6f 64 65 3a 3d 20 61 6c 6c 6f 63 5f 74 79 70 65 6e 6f 64 65 3b 0a 77 69 74 68 20 20 63 75   ┆enode:= alloc_typenode; with  cu┆
0x093dc0…093de0             72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6b 69 6e 64 3a 3d   ┆r_typenode ^ do begin typekind:=┆
0x093de0…093e00             20 63 61 6c 69 61 73 3b 0a 65 6c 65 6d 65 6e 74 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b   ┆ calias; element:= cur_typename;┆
0x093e00…093e20 (39, 0, 14) 0a 69 6e 64 65 78 20 20 20 3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79 70 20 5e 20   ┆ index   :=   element ^ . typ ^ ┆
0x093e20…093e40             2e 20 69 6e 64 65 78 3b 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20   ┆. index; contents:=   element ^ ┆
0x093e40…093e60             2e 20 74 79 70 20 5e 20 2e 20 63 6f 6e 74 65 6e 74 73 3b 0a 70 61 63 6b 66 6c 61 67 3a 3d 20 20   ┆. typ ^ . contents; packflag:=  ┆
0x093e60…093e80             20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 70 61 63 6b 66 6c 61 67 3b 0a 65   ┆ element ^ . typ ^ . packflag; e┆
0x093e80…093ea0             6e 64 3b 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 0a 77 69   ┆nd;  cur_typename:= curname;  wi┆
0x093ea0…093ec0             74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 3a   ┆th  cur_typename ^ do begin typ:┆
0x093ec0…093ee0             3d 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 3b 0a 69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20   ┆= cur_typenode; if forward_decl ┆
0x093ee0…093f00             61 6e 64 20 28 74 79 70 5e 2e 65 6c 65 6d 65 6e 74 5e 2e 74 79 70 5e 2e 74 79 70 65 6b 69 6e 64   ┆and (typ^.element^.typ^.typekind┆
0x093f00…093f20             3c 3e 63 70 6f 69 6e 74 65 72 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78   ┆<>cpointer) then begin errorspix┆
0x093f20…093f40             3a 3d 20 73 70 69 78 3b 0a 65 72 72 6f 72 28 66 6f 72 77 61 72 64 5f 6d 75 73 74 5f 62 65 5f 70   ┆:= spix; error(forward_must_be_p┆
0x093f40…093f60             6f 69 6e 74 65 72 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 66 6f   ┆ointer); set_error_type; end; fo┆
0x093f60…093f80             72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 65 6e 64 3b 0a 0a 0a 65 6e 64 3b 20   ┆rward_decl:= false; end;   end; ┆
0x093f80…093fa0             28 2a 20 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 74 79 70 65 20 2a 29 0a 0a 65 6e 64 3b 0a   ┆(* if namekind = ctype *)  end; ┆
0x093fa0…093fc0             0a 0a 0a 0a 63 65 6e 64 74 79 70 65 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 0c 0a 63   ┆    cendtype: ; (* blind *)    c┆
0x093fc0…093fe0             77 69 74 68 6f 75 74 5f 64 61 74 61 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68 69 73 20 73 70   ┆without_data:  begin  (* this sp┆
0x093fe0…094000             65 63 69 61 6c 20 74 79 70 65 20 69 73 20 75 73 65 64 20 62 79 20 27 70 6f 6f 6c 20 64 65 66 69   ┆ecial type is used by 'pool defi┆
0x094000…094020 (39, 0, 15) 6e 69 74 69 6f 6e 27 20 74 6f 20 73 69 6d 75 6c 61 74 65 20 6e 6f 74 79 70 65 20 2a 29 0a 0a 70   ┆nition' to simulate notype *)  p┆
0x094020…094040             75 73 68 74 79 70 65 3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 68 69 73 20 74 79 70 65 20 69 73   ┆ushtype; (* because this type is┆
0x094040…094060             20 6e 65 73 74 65 64 20 69 6e 20 27 70 6f 6f 6c 2d 64 65 66 27 20 2a 29 0a 0a 63 75 72 5f 74 79   ┆ nested in 'pool-def' *)  cur_ty┆
0x094060…094080             70 65 6e 61 6d 65 3a 3d 20 6e 69 6c 5f 74 79 70 65 6e 61 6d 65 3b 0a 63 75 72 5f 74 79 70 65 6e   ┆pename:= nil_typename; cur_typen┆
0x094080…0940a0             6f 64 65 3a 3d 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 2e 20 74 79 70 3b 0a 0a 65 6e   ┆ode:=  cur_typename ^ . typ;  en┆
0x0940a0…0940c0             64 3b 0a 0a 0c 0a 63 6e 65 77 74 79 70 65 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 20 6e 65 77   ┆d;    cnewtype:  begin  (* a new┆
0x0940c0…0940e0             20 74 79 70 65 20 77 69 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 2a 29 0a 0a 70 75   ┆ type will be constructed *)  pu┆
0x0940e0…094100             73 68 74 79 70 65 3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 79 70 65 73 20 6d 61 79 20 62 65 20   ┆shtype; (* because types may be ┆
0x094100…094120             6e 65 73 74 65 64 20 2a 29 0a 0a 69 66 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3c 3e 20 63 74   ┆nested *)  if cur_namekind <> ct┆
0x094120…094140             79 70 65 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 69 6d 70 6c 69 63 69 74 20 74 79 70 65 2c   ┆ype then begin (* implicit type,┆
0x094140…094160             20 69 6e 73 65 72 74 20 70 73 65 75 64 6f 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 0a 63 75 72 5f   ┆ insert pseudo typename *)  cur_┆
0x094160…094180             74 79 70 65 6e 61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70   ┆typename:= newname (anonymous_sp┆
0x094180…0941a0             69 78 29 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 6e 61   ┆ix);  with  cur_typename ^ do na┆
0x0941a0…0941c0             6d 65 6b 69 6e 64 3a 3d 20 63 74 79 70 65 3b 0a 0a 65 6e 64 0a 0a 65 6c 73 65 0a 0a 62 65 67 69   ┆mekind:= ctype;  end  else  begi┆
0x0941c0…0941e0             6e 0a 28 2a 20 65 78 70 6c 69 63 69 74 20 74 79 70 65 2c 20 75 73 65 20 27 63 75 72 6e 61 6d 65   ┆n (* explicit type, use 'curname┆
0x0941e0…094200             27 20 61 73 20 27 63 75 72 5f 74 79 70 65 6e 61 6d 65 27 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65   ┆' as 'cur_typename' *)  cur_type┆
0x094200…094220 (39, 1, 1)  6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63   ┆name:= curname; cur_namekind:= c┆
0x094220…094240             6e 6f 63 6f 64 65 3b 20 28 2a 20 6f 6e 6c 79 20 74 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 6e 65   ┆nocode; (* only the outermost ne┆
0x094240…094260             77 74 79 70 65 20 69 73 20 65 78 70 6c 69 63 69 74 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 28 2a 20 70   ┆wtype is explicit *)  end;  (* p┆
0x094260…094280             72 65 70 61 72 65 20 74 68 65 20 73 75 63 63 65 64 69 6e 67 20 74 79 70 65 64 65 66 69 6e 69 74   ┆repare the succeding typedefinit┆
0x094280…0942a0             69 6f 6e 73 20 2a 29 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d 20 61 6c 6c 6f 63 5f 74 79 70   ┆ions *) cur_typenode:= alloc_typ┆
0x0942a0…0942c0             65 6e 6f 64 65 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a   ┆enode;  with  cur_typename ^ do ┆
0x0942c0…0942e0             74 79 70 3a 3d 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 3b 0a 0a 65 6e 64 3b 0a 0a 63 65 78 74 70   ┆typ:= cur_typenode;  end;  cextp┆
0x0942e0…094300             72 6f 63 65 73 73 3a 0a 62 65 67 69 6e 0a 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 5e   ┆rocess: begin with cur_typename^┆
0x094300…094320             20 64 6f 0a 62 65 67 69 6e 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 65 78 74 70 72 6f 63 65 73 73   ┆ do begin namekind:= cextprocess┆
0x094320…094340             3b 20 28 2a 20 63 68 61 6e 67 65 20 66 72 6f 6d 20 63 74 79 70 65 20 74 6f 20 63 65 78 74 70 72   ┆; (* change from ctype to cextpr┆
0x094340…094360             6f 63 65 73 73 20 2a 29 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 73 6f 6e 5f 74 79 70 65 6e 61 6d 65   ┆ocess *) typename:= son_typename┆
0x094360…094380             3b 0a 72 65 6c 65 61 73 65 5f 74 79 70 65 6e 6f 64 65 28 74 79 70 29 3b 0a 74 79 70 3a 3d 20 73   ┆; release_typenode(typ); typ:= s┆
0x094380…0943a0             6f 6e 5f 74 79 70 65 6e 61 6d 65 5e 2e 74 79 70 3b 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d   ┆on_typename^.typ; cur_typenode:=┆
0x0943a0…0943c0             20 74 79 70 3b 0a 65 6e 64 3b 0a 63 75 72 5f 72 6f 75 74 69 6e 65 3a 3d 20 63 75 72 5f 74 79 70   ┆ typ; end; cur_routine:= cur_typ┆
0x0943c0…0943e0             65 6e 61 6d 65 3b 20 28 2a 20 70 72 65 70 61 72 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74   ┆ename; (* prepare formal paramet┆
0x0943e0…094400             65 72 73 20 2a 29 0a 65 6e 64 3b 0a 0a 0c 0a 63 73 63 61 6c 61 72 2c 0a 63 73 75 62 72 61 6e 67   ┆ers *) end;    cscalar, csubrang┆
0x094400…094420 (39, 1, 2)  65 2c 0a 63 61 72 72 61 79 2c 0a 63 72 65 63 6f 72 64 2c 0a 63 73 65 74 2c 0a 63 70 6f 6f 6c 2c   ┆e, carray, crecord, cset, cpool,┆
0x094420…094440             0a 63 70 6f 69 6e 74 65 72 2c 0a 63 72 65 61 64 6f 6e 6c 79 2c 0a 63 69 6e 74 65 67 65 72 2c 0a   ┆ cpointer, creadonly, cinteger, ┆
0x094440…094460             63 72 65 61 6c 2c 0a 63 6e 69 6c 74 79 70 65 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 6e 73 65 72 74   ┆creal, cniltype: begin (* insert┆
0x094460…094480             20 74 68 65 20 72 65 63 74 79 70 65 20 69 6e 20 74 68 65 20 27 63 75 72 5f 74 79 70 65 6e 6f 64   ┆ the rectype in the 'cur_typenod┆
0x094480…0944a0             65 27 20 2a 29 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 74 79   ┆e' *) with  cur_typenode ^ do ty┆
0x0944a0…0944c0             70 65 6b 69 6e 64 3a 3d 20 72 65 63 74 79 70 65 3b 0a 0a 28 2a 20 6d 61 79 62 65 20 70 75 73 68   ┆pekind:= rectype;  (* maybe push┆
0x0944c0…0944e0             20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 61 6d 65 6c 69 73 74 2c 20 69 6e 20 63 61 73 65 20 6f   ┆ the current namelist, in case o┆
0x0944e0…094500             66 20 69 6e 6e 65 72 20 6e 61 6d 65 6c 69 73 74 73 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20   ┆f inner namelists *) if rectype ┆
0x094500…094520             3d 20 63 72 65 63 6f 72 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 70 75 73 68 6c 69 73 74 3b 0a 6e   ┆= crecord then begin pushlist; n┆
0x094520…094540             65 77 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20   ┆ewnamelevel; end;  if rectype = ┆
0x094540…094560             63 73 63 61 6c 61 72 20 74 68 65 6e 0a 62 65 67 69 6e 0a 70 75 73 68 6c 69 73 74 3b 0a 77 69 74   ┆cscalar then begin pushlist; wit┆
0x094560…094580             68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78 20 3c 3e 20   ┆h  cur_typename ^ do if spix <> ┆
0x094580…0945a0             61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 20 74 68 65 6e 20 20 20 28 2a 20 6b 65 65 70 20 73 63   ┆anonymous_spix then   (* keep sc┆
0x0945a0…0945c0             61 6c 61 72 65 6c 65 6d 73 20 6f 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20 6e 61 6d 65 6c 65 76   ┆alarelems on the correct namelev┆
0x0945c0…0945e0             65 6c 20 2a 29 0a 65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 0a 77 69 74 68 20   ┆el *) endnamelevel; end;   with ┆
0x0945e0…094600             20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 28 72 65 63 74 79 70 65 3c 3e   ┆ cur_typename ^ do if (rectype<>┆
0x094600…094620 (39, 1, 3)  63 70 6f 69 6e 74 65 72 29 20 61 6e 64 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a   ┆cpointer) and forward_decl then ┆
0x094620…094640             62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 0a 65 72 72 6f 72 28 66 6f   ┆begin errorspix:= spix; error(fo┆
0x094640…094660             72 77 61 72 64 5f 6d 75 73 74 5f 62 65 5f 70 6f 69 6e 74 65 72 29 3b 0a 73 65 74 5f 65 72 72 6f   ┆rward_must_be_pointer); set_erro┆
0x094660…094680             72 5f 74 79 70 65 3b 0a 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 65 6e   ┆r_type; forward_decl:= false; en┆
0x094680…0946a0             64 3b 0a 0a 69 66 20 72 65 63 74 79 70 65 3d 63 70 6f 69 6e 74 65 72 20 74 68 65 6e 0a 63 75 72   ┆d;  if rectype=cpointer then cur┆
0x0946a0…0946c0             5f 74 79 70 65 6e 61 6d 65 5e 2e 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 0a   ┆_typename^.forward_decl:= false ┆
0x0946c0…0946e0             65 6c 73 65 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 69 6e 74 65 67 65 72 20 74 68 65 6e 0a   ┆else if rectype = cinteger then ┆
0x0946e0…094700             69 6e 74 65 67 65 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 0a   ┆integer_typename:= cur_typename ┆
0x094700…094720             65 6c 73 65 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 6e 69 6c 74 79 70 65 20 74 68 65 6e 0a   ┆else if rectype = cniltype then ┆
0x094720…094740             6e 69 6c 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64   ┆nil_typename:= cur_typename; end┆
0x094740…094760             3b 0a 0a 63 66 6f 72 77 61 72 64 70 6f 69 6e 74 65 72 3a 0a 77 69 74 68 20 63 75 72 5f 74 79 70   ┆;  cforwardpointer: with cur_typ┆
0x094760…094780             65 6e 61 6d 65 5e 20 64 6f 0a 62 65 67 69 6e 0a 72 65 6c 65 61 73 65 5f 74 79 70 65 6e 6f 64 65   ┆ename^ do begin release_typenode┆
0x094780…0947a0             28 74 79 70 29 3b 20 28 2a 20 6e 6f 74 20 75 73 65 64 2c 20 61 20 6e 65 77 20 6e 6f 64 65 20 77   ┆(typ); (* not used, a new node w┆
0x0947a0…0947c0             69 6c 6c 20 62 65 20 61 6c 6c 6f 63 61 74 65 64 20 77 68 65 6e 20 74 68 65 20 72 65 61 6c 20 64   ┆ill be allocated when the real d┆
0x0947c0…0947e0             65 63 6c 61 72 61 74 69 6f 6e 20 69 73 20 6d 65 74 20 2a 29 0a 74 79 70 3a 3d 20 64 75 6d 6d 79   ┆eclaration is met *) typ:= dummy┆
0x0947e0…094800             5f 74 79 70 65 6e 6f 64 65 3b 0a 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b 0a   ┆_typenode; forward_decl:= true; ┆
0x094800…094820 (39, 1, 4)  65 6e 64 3b 20 28 2a 20 66 6f 72 77 61 72 64 20 70 6f 69 6e 74 65 72 20 2a 29 0a 0c 0a 63 65 6e   ┆end; (* forward pointer *)   cen┆
0x094820…094840             64 73 63 61 6c 61 72 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 64 64 20 74 68 65 20 73 63 61 6c   ┆dscalar:  begin  (* add the scal┆
0x094840…094860             61 72 2d 6c 69 73 74 20 74 6f 20 74 68 65 20 73 63 61 6c 61 72 20 74 79 70 65 20 6e 6f 64 65 20   ┆ar-list to the scalar type node ┆
0x094860…094880             2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74   ┆*)  with  cur_typenode ^ do (* t┆
0x094880…0948a0             79 70 65 6e 6f 64 65 20 6f 66 20 73 63 61 6c 61 72 20 74 79 70 65 20 2a 29 0a 62 65 67 69 6e 0a   ┆ypenode of scalar type *) begin ┆
0x0948a0…0948c0             65 6c 65 6d 65 6e 74 3a 3d 20 6c 69 73 74 66 69 72 73 74 3b 0a 28 2a 20 63 6f 6e 74 65 6e 74 73   ┆element:= listfirst; (* contents┆
0x0948c0…0948e0             3a 3d 20 5b 20 74 5f 73 69 6d 70 6c 65 20 5d 3b 20 20 2a 29 0a 65 6e 64 3b 0a 0a 28 2a 20 69 6e   ┆:= [ t_simple ];  *) end;  (* in┆
0x0948e0…094900             73 65 72 74 20 74 79 70 65 6e 61 6d 65 20 69 6e 20 74 68 65 20 77 68 6f 6c 65 20 73 63 61 6c 61   ┆sert typename in the whole scala┆
0x094900…094920             72 2d 6c 69 73 74 20 2a 29 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69   ┆r-list *) with  listlast ^ do li┆
0x094920…094940             73 74 74 6f 70 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72   ┆sttop:= nextname;  while listfir┆
0x094940…094960             73 74 20 3c 3e 20 6c 69 73 74 74 6f 70 20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74   ┆st <> listtop do with  listfirst┆
0x094960…094980             20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e   ┆ ^ do begin typename:= cur_typen┆
0x094980…0949a0             61 6d 65 3b 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a   ┆ame; listfirst:= nextname; end; ┆
0x0949a0…0949c0             0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78   ┆ with  cur_typename ^ do if spix┆
0x0949c0…0949e0             20 3c 3e 20 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 20 74 68 65 6e 20 20 28 2a 20 6b 65 65 70   ┆ <> anonymous_spix then  (* keep┆
0x0949e0…094a00             20 73 63 61 6c 61 72 65 6c 65 6d 73 20 6f 6e 20 63 6f 72 72 65 63 74 20 6e 61 6d 65 6c 65 76 65   ┆ scalarelems on correct nameleve┆
0x094a00…094a20 (39, 1, 5)  6c 20 2a 29 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 70 6f 70 6c 69 73 74 3b 20 28 2a 20   ┆l *) newnamelevel;  poplist; (* ┆
0x094a20…094a40             72 65 74 75 72 6e 20 74 6f 20 6f 75 74 65 72 20 6e 61 6d 65 6c 69 73 74 20 2a 29 0a 0a 65 6e 64   ┆return to outer namelist *)  end┆
0x094a40…094a60             3b 0a 0a 0c 0a 63 65 6e 64 73 75 62 72 61 6e 67 65 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68   ┆;    cendsubrange:  begin  (* th┆
0x094a60…094a80             65 20 74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 69 6e 20 27 73 74 61 63 6b 74   ┆e two expressions are in 'stackt┆
0x094a80…094aa0             6f 70 27 20 61 6e 64 20 27 6e 65 78 74 74 6f 70 27 20 2a 29 0a 0a 28 2a 20 74 68 65 20 74 77 6f   ┆op' and 'nexttop' *)  (* the two┆
0x094aa0…094ac0             20 65 78 70 72 65 73 73 69 6f 6e 73 20 6d 75 73 74 20 62 65 20 3c 73 61 6d 65 3e 20 65 6e 75 6d   ┆ expressions must be <same> enum┆
0x094ac0…094ae0             65 72 61 74 69 6f 6e 20 74 79 70 65 20 2a 29 0a 6c 65 66 74 74 79 70 65 6e 61 6d 65 20 28 2a 20   ┆eration type *) lefttypename (* ┆
0x094ae0…094b00             64 75 6d 6d 79 20 61 73 73 69 67 6e 6d 65 6e 74 20 2a 29 3a 3d 20 74 65 73 74 65 6e 75 6d 65 72   ┆dummy assignment *):= testenumer┆
0x094b00…094b20             61 74 69 6f 6e 20 28 6e 65 78 74 74 6f 70 29 3b 20 28 2a 20 6e 62 3a 20 65 78 70 72 74 79 70 65   ┆ation (nexttop); (* nb: exprtype┆
0x094b20…094b40             6e 61 6d 65 20 3d 20 73 69 6d 70 6c 69 66 69 65 64 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 72 65   ┆name = simplified typename *) re┆
0x094b40…094b60             73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 72 69 67 74 68 74 79 70 65 6e 61   ┆solvetype (stacktop, rigthtypena┆
0x094b60…094b80             6d 65 2c 20 72 69 67 74 68 65 6c 65 6d 65 6e 74 2c 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 29   ┆me, rigthelement, rigthbasekind)┆
0x094b80…094ba0             3b 0a 69 66 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 3c 3e 20 72 69 67 74 68 74 79 70 65 6e 61   ┆; if exprtypename <> rigthtypena┆
0x094ba0…094bc0             6d 65 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 73 75 62 72 61 6e 67 65 5f 65 6c   ┆me then begin error (subrange_el┆
0x094bc0…094be0             65 6d 73 5f 6d 75 73 74 5f 62 65 5f 65 6e 75 6d 65 72 61 74 69 6f 6e 29 3b 0a 65 78 70 72 74 79   ┆ems_must_be_enumeration); exprty┆
0x094be0…094c00             70 65 6e 61 6d 65 3a 3d 20 65 72 72 6f 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 28   ┆pename:= error_typename; end;  (┆
0x094c00…094c20 (39, 1, 6)  2a 20 62 69 6e 64 20 74 68 65 20 74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 20 61 20   ┆* bind the two expressions to a ┆
0x094c20…094c40             73 69 6e 67 6c 65 20 6f 6e 65 20 2a 29 0a 6f 70 65 72 20 28 62 69 6e 61 72 79 2c 20 63 72 61 6e   ┆single one *) oper (binary, cran┆
0x094c40…094c60             67 65 66 69 72 73 74 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 29 3b 0a 0a 77 69 74 68 20 20 63   ┆gefirst, exprtypename);  with  c┆
0x094c60…094c80             75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 73 75 62 65 78 70 72 3a 3d   ┆ur_typenode ^ do begin subexpr:=┆
0x094c80…094ca0             20 74 61 6b 65 5f 73 74 61 63 6b 74 6f 70 3b 20 28 2a 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20   ┆ take_stacktop; (* remember the ┆
0x094ca0…094cc0             74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 2a 29 0a 69 6e 64 65 78 20 20 3a 3d 20 65 78 70   ┆two expressions *) index  := exp┆
0x094cc0…094ce0             72 74 79 70 65 6e 61 6d 65 3b 0a 28 2a 20 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 73 69 6d   ┆rtypename; (* contents:= [ t_sim┆
0x094ce0…094d00             70 6c 65 20 5d 3b 20 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 61 72 72   ┆ple ];  *) end;  end;    cendarr┆
0x094d00…094d20             61 79 3a 0a 0a 62 65 67 69 6e 0a 0a 74 65 73 74 5f 72 65 63 75 72 73 69 76 65 5f 74 79 70 65 3b   ┆ay:  begin  test_recursive_type;┆
0x094d20…094d40             0a 0a 65 6c 65 6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 20 70 6f 70 74 79   ┆  elemname:= cur_typename; popty┆
0x094d40…094d60             70 65 3b 0a 69 6e 64 65 78 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 20 70 6f   ┆pe; indexname:= cur_typename; po┆
0x094d60…094d80             70 74 79 70 65 3b 0a 0a 74 65 73 74 69 6e 64 65 78 20 28 69 6e 64 65 78 6e 61 6d 65 29 3b 0a 0a   ┆ptype;  testindex (indexname);  ┆
0x094d80…094da0             77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e   ┆with  cur_typenode ^ do (* typen┆
0x094da0…094dc0             6f 64 65 20 6f 66 20 61 72 72 61 79 20 2a 29 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20   ┆ode of array *) begin element:= ┆
0x094dc0…094de0             65 6c 65 6d 6e 61 6d 65 3b 0a 69 6e 64 65 78 20 20 3a 3d 20 69 6e 64 65 78 6e 61 6d 65 3b 0a 63   ┆elemname; index  := indexname; c┆
0x094de0…094e00             6f 6e 74 65 6e 74 73 3a 3d 20 20 20 65 6c 65 6d 6e 61 6d 65 20 5e 20 2e 20 74 79 70 20 5e 20 2e   ┆ontents:=   elemname ^ . typ ^ .┆
0x094e00…094e20 (39, 1, 7)  20 63 6f 6e 74 65 6e 74 73 3b 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 63 6f 6e 74 65 6e 74 73 20   ┆ contents; (* transfer contents ┆
0x094e20…094e40             66 72 6f 6d 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a   ┆from element type *) end;  end; ┆
0x094e40…094e60             0a 0c 0a 63 65 6e 64 66 69 65 6c 64 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 79 70 65 73 20 6d   ┆   cendfield:  begin  (* types m┆
0x094e60…094e80             61 79 20 6e 6f 74 20 62 65 20 72 65 63 75 72 73 69 76 65 20 2a 29 0a 74 65 73 74 5f 72 65 63 75   ┆ay not be recursive *) test_recu┆
0x094e80…094ea0             72 73 69 76 65 5f 74 79 70 65 3b 0a 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f   ┆rsive_type;  with  listlast ^ do┆
0x094ea0…094ec0             20 6c 69 73 74 74 6f 70 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 77 68 69 6c 65 20 6c 69 73 74 66   ┆ listtop:= nextname; while listf┆
0x094ec0…094ee0             69 72 73 74 20 3c 3e 20 6c 69 73 74 74 6f 70 20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72   ┆irst <> listtop do with  listfir┆
0x094ee0…094f00             73 74 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70   ┆st ^ do begin typename:= cur_typ┆
0x094f00…094f20             65 6e 61 6d 65 3b 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64   ┆ename; listfirst:= nextname; end┆
0x094f20…094f40             3b 0a 0a 65 6c 65 6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 70 6f 70 74   ┆;  elemname:= cur_typename; popt┆
0x094f40…094f60             79 70 65 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 72 65 63 6f 72 64 20 74 79 70 65 6e 61 6d   ┆ype; (* return to record typenam┆
0x094f60…094f80             65 2f 74 79 70 65 6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 66 69 65 6c 64   ┆e/typenode *)  (* transfer field┆
0x094f80…094fa0             2d 63 6f 6e 74 65 6e 74 73 20 74 6f 20 72 65 63 6f 72 64 2d 63 6f 6e 74 65 6e 74 73 20 2a 29 0a   ┆-contents to record-contents *) ┆
0x094fa0…094fc0             77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e   ┆with  cur_typenode ^ do (* typen┆
0x094fc0…094fe0             6f 64 65 20 6f 66 20 72 65 63 6f 72 64 20 2a 29 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 63 6f 6e 74   ┆ode of record *) contents:= cont┆
0x094fe0…095000             65 6e 74 73 20 2b 20 20 20 65 6c 65 6d 6e 61 6d 65 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 63 6f   ┆ents +   elemname ^ . typ ^ . co┆
0x095000…095020 (39, 1, 8)  6e 74 65 6e 74 73 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 72 65 63 6f 72 64 3a 0a 0a 62 65   ┆ntents;  end;    cendrecord:  be┆
0x095020…095040             67 69 6e 0a 0a 65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20   ┆gin  endnamelevel;  (* transfer ┆
0x095040…095060             74 68 65 20 77 68 6f 6c 65 20 63 75 72 72 65 6e 74 20 6e 61 6d 65 6c 69 73 74 2c 20 69 2e 65 2e   ┆the whole current namelist, i.e.┆
0x095060…095080             20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 65 6c 64 2d 6e 61 6d 65 73 20 2a 29 0a 28 2a 20 20   ┆ the list of field-names *) (*  ┆
0x095080…0950a0             20 61 6e 64 20 74 68 65 69 72 20 69 6d 70 6c 69 63 69 74 20 74 79 70 65 73 2c 20 74 6f 20 74 68   ┆ and their implicit types, to th┆
0x0950a0…0950c0             65 20 72 65 63 6f 72 64 2d 74 79 70 65 6e 6f 64 65 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f   ┆e record-typenode *)  with  cur_┆
0x0950c0…0950e0             74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 72 65 63   ┆typenode ^ do (* typenode of rec┆
0x0950e0…095100             6f 72 64 20 2a 29 0a 77 69 74 68 20 20 6e 61 6d 65 6c 65 76 65 6c 5e 2e 6e 65 78 74 5f 6c 65 76   ┆ord *) with  namelevel^.next_lev┆
0x095100…095120             65 6c 5e 20 64 6f 20 28 2a 20 6a 75 73 74 20 74 65 72 6d 69 6e 61 74 65 64 20 66 69 65 6c 64 20   ┆el^ do (* just terminated field ┆
0x095120…095140             6c 69 73 74 20 2a 29 0a 65 6c 65 6d 65 6e 74 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 0a 0a 70 6f   ┆list *) element:= firstname;  po┆
0x095140…095160             70 6c 69 73 74 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 6f 75 74 65 72 20 6e 61 6d 65 6c 69   ┆plist; (* return to outer nameli┆
0x095160…095180             73 74 20 2a 29 0a 0a 65 6e 64 3b 0a 0c 63 65 6e 64 73 65 74 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a   ┆st *)  end;  cendset:  begin  (*┆
0x095180…0951a0             20 69 6e 64 65 78 6e 61 6d 65 20 6d 75 73 74 20 62 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74   ┆ indexname must be enumeration t┆
0x0951a0…0951c0             79 70 65 20 2a 29 0a 0a 69 6e 64 65 78 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65   ┆ype *)  indexname:= cur_typename┆
0x0951c0…0951e0             3b 0a 70 6f 70 74 79 70 65 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 73 65 74 2d 74 79 70 65   ┆; poptype; (* return to set-type┆
0x0951e0…095200             20 2a 29 0a 0a 74 65 73 74 69 6e 64 65 78 20 28 69 6e 64 65 78 6e 61 6d 65 29 3b 0a 0a 77 69 74   ┆ *)  testindex (indexname);  wit┆
0x095200…095220 (39, 1, 9)  68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65   ┆h  cur_typenode ^ do (* typenode┆
0x095220…095240             20 6f 66 20 73 65 74 20 2a 29 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 69 6e 64 65 78   ┆ of set *) begin element:= index┆
0x095240…095260             6e 61 6d 65 3b 0a 28 2a 20 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 73 69 6d 70 6c 65 20 5d   ┆name; (* contents:= [ t_simple ]┆
0x095260…095280             3b 20 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 70 6f 6f 6c 3a 0a 0a 62   ┆;  *) end;  end;    cendpool:  b┆
0x095280…0952a0             65 67 69 6e 0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 3c 63 61 72 64 69 6e 61 6c 69 74 79 3e   ┆egin  (* test that <cardinality>┆
0x0952a0…0952c0             20 69 73 20 3c 69 6e 74 65 67 65 72 3e 20 2a 29 0a 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73   ┆ is <integer> *)  resolvetype (s┆
0x0952c0…0952e0             74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d 65   ┆tacktop, exprtypename, expreleme┆
0x0952e0…095300             6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 65 78 70 72 62 61 73 65 6b 69   ┆nt, exprbasekind); if exprbaseki┆
0x095300…095320             6e 64 20 3c 3e 20 63 69 6e 74 65 67 65 72 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20   ┆nd <> cinteger then begin error ┆
0x095320…095340             28 70 6f 6f 6c 5f 63 61 72 64 69 6e 61 6c 69 74 79 5f 6d 75 73 74 5f 62 65 5f 69 6e 74 65 67 65   ┆(pool_cardinality_must_be_intege┆
0x095340…095360             72 29 3b 0a 65 6e 64 3b 0a 0a 28 2a 20 74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20 74 79   ┆r); end;  (* test legality of ty┆
0x095360…095380             70 65 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28   ┆pe *)  with  cur_typenode ^ do (┆
0x095380…0953a0             2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 70 6f 6f 6c 2d 73 69 7a 65 74 79 70 65 20 2a 29 0a 28   ┆* typenode of pool-sizetype *) (┆
0x0953a0…0953c0             2a 20 69 74 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 3a 20 73 65 6d 61 70 68 6f 72 65 2c   ┆* it may not contain: semaphore,┆
0x0953c0…0953e0             20 73 68 61 64 6f 77 2c 20 72 65 66 65 72 65 6e 63 65 2c 20 70 6f 6f 6c 2c 20 70 6f 69 6e 74 65   ┆ shadow, reference, pool, pointe┆
0x0953e0…095400             72 20 2a 29 0a 69 66 20 63 6f 6e 74 65 6e 74 73 20 2a 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65   ┆r *) if contents * [ t_semaphore┆
0x095400…095420 (39, 1, 10) 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 20 74 5f 73   ┆, t_reference, t_extprocess, t_s┆
0x095420…095440             68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 2c 20 74 5f 70 6f 69 6e 74 65 72 20 5d 20 3c 3e 20 5b 5d   ┆hadow, t_pool, t_pointer ] <> []┆
0x095440…095460             20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f 70 6f 6f 6c 5f   ┆ then begin error (illegal_pool_┆
0x095460…095480             74 79 70 65 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 65 6c 65   ┆type); set_error_type; end;  ele┆
0x095480…0954a0             6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 70 6f 70 74 79 70 65 3b 20 28   ┆mname:= cur_typename; poptype; (┆
0x0954a0…0954c0             2a 20 72 65 74 75 72 6e 20 74 6f 20 70 6f 6f 6c 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74   ┆* return to pool *)  with  cur_t┆
0x0954c0…0954e0             79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 70 6f 6f 6c   ┆ypenode ^ do (* typenode of pool┆
0x0954e0…095500             20 2a 29 0a 62 65 67 69 6e 0a 73 75 62 65 78 70 72 3a 3d 20 74 61 6b 65 5f 73 74 61 63 6b 74 6f   ┆ *) begin subexpr:= take_stackto┆
0x095500…095520             70 3b 0a 65 6c 65 6d 65 6e 74 3a 3d 20 65 6c 65 6d 6e 61 6d 65 3b 0a 63 6f 6e 74 65 6e 74 73 3a   ┆p; element:= elemname; contents:┆
0x095520…095540             3d 20 5b 20 74 5f 70 6f 6f 6c 20 5d 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64   ┆= [ t_pool ]; end;  end;    cend┆
0x095540…095560             72 65 61 64 6f 6e 6c 79 2c 0a 63 65 6e 64 70 6f 69 6e 74 65 72 3a 0a 0a 62 65 67 69 6e 0a 0a 69   ┆readonly, cendpointer:  begin  i┆
0x095560…095580             66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 72 65 61 64 6f 6e 6c 79 20 74 68 65 6e 0a 74 65   ┆f rectype = cendreadonly then te┆
0x095580…0955a0             73 74 5f 72 65 63 75 72 73 69 76 65 5f 74 79 70 65 3b 0a 28 2a 20 6e 6f 74 69 63 65 3a 20 70 6f   ┆st_recursive_type; (* notice: po┆
0x0955a0…0955c0             69 6e 74 65 72 2d 74 6f 2d 74 79 70 65 20 69 73 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72 65 64 20   ┆inter-to-type is not considered ┆
0x0955c0…0955e0             72 65 63 75 72 73 69 6f 6e 20 2a 29 0a 0a 65 6c 65 6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70   ┆recursion *)  elemname:= cur_typ┆
0x0955e0…095600             65 6e 61 6d 65 3b 0a 70 6f 70 74 79 70 65 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 72 65 61   ┆ename; poptype; (* return to rea┆
0x095600…095620 (39, 1, 11) 64 6f 6e 6c 79 2f 70 6f 69 6e 74 65 72 20 74 79 70 65 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72   ┆donly/pointer type *)  with  cur┆
0x095620…095640             5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 65   ┆_typenode ^ do begin element:= e┆
0x095640…095660             6c 65 6d 6e 61 6d 65 3b 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 70 6f 69 6e 74 65   ┆lemname; if rectype = cendpointe┆
0x095660…095680             72 20 74 68 65 6e 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 70 6f 69 6e 74 65 72 20 5d 0a   ┆r then contents:= [ t_pointer ] ┆
0x095680…0956a0             65 6c 73 65 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79   ┆else contents:=   element ^ . ty┆
0x0956a0…0956c0             70 20 5e 20 2e 20 63 6f 6e 74 65 6e 74 73 20 2b 20 5b 20 74 5f 72 65 61 64 6f 6e 6c 79 20 5d 3b   ┆p ^ . contents + [ t_readonly ];┆
0x0956c0…0956e0             0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 70 61 63 6b 65 64 3a 0a 0a 62 65 67 69 6e 0a 28   ┆ end;  end;    cpacked:  begin (┆
0x0956e0…095700             2a 20 27 63 75 72 5f 74 79 70 65 6e 61 6d 65 2f 6e 6f 64 65 27 20 61 72 65 20 6e 6f 64 65 73 20   ┆* 'cur_typename/node' are nodes ┆
0x095700…095720             6f 66 20 72 65 63 6f 72 64 2f 61 72 72 61 79 20 28 6f 72 20 73 65 74 29 20 2a 29 0a 0a 77 69 74   ┆of record/array (or set) *)  wit┆
0x095720…095740             68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 70 61 63 6b 66 6c 61 67 3a 3d 20   ┆h  cur_typenode ^ do packflag:= ┆
0x095740…095760             74 72 75 65 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 62 65 67 69 6e 3a 0a 70 72 65 70 61 72 65 5f 73   ┆true;  end;    cbegin: prepare_s┆
0x095760…095780             74 61 74 65 6d 65 6e 74 3b 0a 0a 63 65 6e 64 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a   ┆tatement;  cend: ; (* blind *)  ┆
0x095780…0957a0             63 6c 61 62 65 6c 64 65 66 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 6c 61 62 65 6c 20 64 65 66 20   ┆clabeldef:  begin  (* label def ┆
0x0957a0…0957c0             73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 64 65 66 69 6e 65 6c 61 62 65 6c 20 28 20 70 61 73 73 69   ┆statement *) definelabel ( passi┆
0x0957c0…0957e0             6e 20 28 2a 20 3d 20 73 63 6f 70 65 6e 6f 20 2a 29 20 2c 20 70 61 73 73 69 6e 20 28 2a 20 3d 20   ┆n (* = scopeno *) , passin (* = ┆
0x0957e0…095800             73 70 69 78 20 2a 29 20 29 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 63 61 73 65 73 74 61 74 3a 0a 70   ┆spix *) );  end;    ccasestat: p┆
0x095800…095820 (39, 1, 12) 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 63 63 61 73 65 65 78 70 72 3a 0a 62   ┆repare_expression;  ccaseexpr: b┆
0x095820…095840             65 67 69 6e 0a 70 75 73 68 6e 61 6d 65 20 28 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 29 3b 20 28   ┆egin pushname (case_typename); (┆
0x095840…095860             2a 20 62 65 63 61 75 73 65 20 63 61 73 65 20 6d 61 79 20 62 65 20 6e 65 73 74 65 64 20 2a 29 0a   ┆* because case may be nested *) ┆
0x095860…095880             63 61 73 65 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 74 65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e 20   ┆case_typename:= testenumeration ┆
0x095880…0958a0             28 73 74 61 63 6b 74 6f 70 29 3b 0a 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 65 78 70 72   ┆(stacktop); case_typename:= expr┆
0x0958a0…0958c0             74 79 70 65 6e 61 6d 65 3b 20 20 28 2a 20 6e 62 6e 62 6e 62 6e 62 3a 20 67 65 74 20 73 69 6d 70   ┆typename;  (* nbnbnbnb: get simp┆
0x0958c0…0958e0             6c 69 66 69 65 64 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 0a 65 6d 69 74 20 28 78 63 61 73 65 73   ┆lified typename *)  emit (xcases┆
0x0958e0…095900             74 61 74 29 3b 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f   ┆tat);  emit_and_release (stackto┆
0x095900…095920             70 29 3b 0a 0a 65 6d 69 74 20 28 78 63 61 73 65 29 3b 0a 65 6e 64 3b 0a 0a 0a 63 63 61 73 65 6c   ┆p);  emit (xcase); end;   ccasel┆
0x095920…095940             61 62 65 6c 3a 0a 62 65 67 69 6e 0a 28 2a 20 74 68 65 20 63 61 73 65 6c 61 62 65 6c 20 6d 75 73   ┆abel: begin (* the caselabel mus┆
0x095940…095960             74 20 68 61 76 65 20 73 61 6d 65 20 74 79 70 65 20 61 73 20 74 68 65 20 63 61 73 65 2d 65 78 70   ┆t have same type as the case-exp┆
0x095960…095980             72 65 73 73 69 6f 6e 20 2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70   ┆ression *) resolvetype (stacktop┆
0x095980…0959a0             2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 2c 20 65 78 70   ┆, exprtypename, exprelement, exp┆
0x0959a0…0959c0             72 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20   ┆rbasekind); if case_typename <> ┆
0x0959c0…0959e0             65 78 70 72 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 20 20 65 72 72 6f 72 20 28 63 61 73 65 5f   ┆exprtypename then   error (case_┆
0x0959e0…095a00             69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65   ┆incompatible);  emit_and_release┆
0x095a00…095a20 (39, 1, 13) 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74 20 28 78 63 61 73 65 6c 61 62 65 6c 29 3b   ┆ (stacktop);  emit (xcaselabel);┆
0x095a20…095a40             0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 61 73 65 6c 61 62 65 6c 72 61 6e 67 65 3a 0a 62 65 67 69 6e   ┆  end;    ccaselabelrange: begin┆
0x095a40…095a60             0a 28 2a 20 62 6f 74 68 20 63 61 73 65 6c 61 62 65 6c 73 20 6d 75 73 74 20 6d 61 74 63 68 20 74   ┆ (* both caselabels must match t┆
0x095a60…095a80             68 65 20 63 61 73 65 2d 65 78 70 72 65 73 73 69 6f 6e 20 2a 29 0a 65 71 75 61 6c 74 79 70 65 73   ┆he case-expression *) equaltypes┆
0x095a80…095aa0             20 28 6e 65 78 74 74 6f 70 2c 20 73 74 61 63 6b 74 6f 70 2c 20 63 61 73 65 5f 74 79 70 65 6e 61   ┆ (nexttop, stacktop, case_typena┆
0x095aa0…095ac0             6d 65 2c 20 63 61 73 65 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 0a 28 2a 20 62 69 6e 64   ┆me, case_incompatible);  (* bind┆
0x095ac0…095ae0             20 74 68 65 20 74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 67 65 74 68 65 72 20 2a 29   ┆ the two expressions together *)┆
0x095ae0…095b00             0a 6f 70 65 72 20 28 62 69 6e 61 72 79 2c 20 63 72 61 6e 67 65 66 69 72 73 74 2c 20 6e 69 6c 6e   ┆ oper (binary, crangefirst, niln┆
0x095b00…095b20             61 6d 65 20 28 2a 20 69 72 72 65 6c 6c 20 74 79 70 65 6e 61 6d 65 20 2a 29 20 29 3b 0a 65 6d 69   ┆ame (* irrell typename *) ); emi┆
0x095b20…095b40             74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74 20   ┆t_and_release (stacktop);  emit ┆
0x095b40…095b60             28 78 63 61 73 65 72 61 6e 67 65 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 6f 74 68 65 72 77 69 73   ┆(xcaserange);  end;    cotherwis┆
0x095b60…095b80             65 3a 0a 65 6d 69 74 20 28 78 6f 74 68 65 72 77 69 73 65 29 3b 0a 0a 0a 0a 63 63 61 73 65 6c 69   ┆e: emit (xotherwise);    ccaseli┆
0x095b80…095ba0             73 74 3a 0a 62 65 67 69 6e 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 65 6d 69   ┆st: begin prepare_statement; emi┆
0x095ba0…095bc0             74 20 28 78 65 6e 64 63 61 73 65 6c 69 73 74 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 61 73 65 65   ┆t (xendcaselist); end;    ccasee┆
0x095bc0…095be0             6c 65 6d 65 6e 74 3a 0a 62 65 67 69 6e 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e   ┆lement: begin prepare_expression┆
0x095be0…095c00             3b 0a 65 6d 69 74 20 28 78 65 6e 64 63 61 73 65 73 74 61 74 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63   ┆; emit (xendcasestat); end;    c┆
0x095c00…095c20 (39, 1, 14) 65 6e 64 63 61 73 65 3a 0a 62 65 67 69 6e 0a 0a 65 6d 69 74 20 28 78 65 6e 64 63 61 73 65 29 3b   ┆endcase: begin  emit (xendcase);┆
0x095c20…095c40             0a 0a 28 2a 20 75 6e 73 74 61 63 6b 20 63 61 73 65 20 74 79 70 65 20 6e 61 6d 65 20 2a 29 0a 63   ┆  (* unstack case type name *) c┆
0x095c40…095c60             61 73 65 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 70 6f 70 6e 61 6d 65 3b 0a 0a 70 72 65 70 61 72 65   ┆ase_typename:= popname;  prepare┆
0x095c60…095c80             5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 66 6f 72 73 74 61 74 3a 0a 70   ┆_statement;  end;    cforstat: p┆
0x095c80…095ca0             72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 63 66 6f 72 76 61 72 3a 0a 62 65 67   ┆repare_expression;  cforvar: beg┆
0x095ca0…095cc0             69 6e 0a 28 2a 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 76 61 72 69 61 62 6c 65 20 6d   ┆in (* the controlling variable m┆
0x095cc0…095ce0             75 73 74 20 62 65 3a 20 61 73 73 69 67 6e 61 62 6c 65 2c 20 75 6e 70 61 63 6b 65 64 20 76 61 72   ┆ust be: assignable, unpacked var┆
0x095ce0…095d00             69 61 62 6c 65 20 2a 29 0a 74 65 73 74 61 73 73 69 67 6e 61 62 6c 65 20 28 73 74 61 63 6b 74 6f   ┆iable *) testassignable (stackto┆
0x095d00…095d20             70 29 3b 0a 74 65 73 74 75 6e 70 61 63 6b 65 64 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 66 6f 72   ┆p); testunpacked (stacktop); for┆
0x095d20…095d40             5f 74 79 70 65 6e 61 6d 65 3a 3d 20 74 65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e 20 28 73 74 61   ┆_typename:= testenumeration (sta┆
0x095d40…095d60             63 6b 74 6f 70 29 3b 0a 66 6f 72 5f 62 61 73 65 74 79 70 65 6e 61 6d 65 3a 3d 20 65 78 70 72 74   ┆cktop); for_basetypename:= exprt┆
0x095d60…095d80             79 70 65 6e 61 6d 65 3b 20 20 28 2a 20 6e 62 6e 62 6e 62 6e 62 3a 20 67 65 74 20 73 69 6d 70 6c   ┆ypename;  (* nbnbnbnb: get simpl┆
0x095d80…095da0             69 66 69 65 64 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 0a 65 6d 69 74 20 28 78 66 6f 72 73 74 61   ┆ified typename *)  emit (xforsta┆
0x095da0…095dc0             74 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b   ┆t); emit_and_release (stacktop);┆
0x095dc0…095de0             0a 65 6d 69 74 20 28 78 66 6f 72 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 75 70 2c 0a 63 64 6f 77   ┆ emit (xfor);  end;    cup, cdow┆
0x095de0…095e00             6e 3a 0a 62 65 67 69 6e 0a 65 71 75 61 6c 74 79 70 65 73 20 28 6e 65 78 74 74 6f 70 2c 20 73 74   ┆n: begin equaltypes (nexttop, st┆
0x095e00…095e20 (39, 1, 15) 61 63 6b 74 6f 70 2c 20 66 6f 72 5f 62 61 73 65 74 79 70 65 6e 61 6d 65 2c 20 66 6f 72 5f 69 6e   ┆acktop, for_basetypename, for_in┆
0x095e20…095e40             63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 0a 28 2a 20 69 6e 73 65 72 74 20 61 20 70 6f 73 73 69 62   ┆compatible);  (* insert a possib┆
0x095e40…095e60             6c 65 20 72 61 6e 67 65 2d 74 65 73 74 20 61 66 74 65 72 20 65 61 63 68 20 6f 66 20 74 68 65 20   ┆le range-test after each of the ┆
0x095e60…095e80             74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 2a 29 0a 74 65 73 74 72 61 6e 67 65 20 28 66 6f   ┆two expressions *) testrange (fo┆
0x095e80…095ea0             72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 66 6f 72 5f 65 78 70 72 3a 3d 20 74 61 6b 65 5f 73 74 61   ┆r_typename); for_expr:= take_sta┆
0x095ea0…095ec0             63 6b 74 6f 70 3b 0a 74 65 73 74 72 61 6e 67 65 20 28 66 6f 72 5f 74 79 70 65 6e 61 6d 65 29 3b   ┆cktop; testrange (for_typename);┆
0x095ec0…095ee0             0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 20 28   ┆  emit_and_release (stacktop); (┆
0x095ee0…095f00             2a 20 73 74 61 72 74 2d 76 61 6c 75 65 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 75   ┆* start-value *) if rectype = cu┆
0x095f00…095f20             70 20 74 68 65 6e 0a 65 6d 69 74 20 28 78 75 70 29 0a 65 6c 73 65 0a 65 6d 69 74 20 28 78 64 6f   ┆p then emit (xup) else emit (xdo┆
0x095f20…095f40             77 6e 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 66 6f 72 5f 65 78 70 72 29   ┆wn); emit_and_release (for_expr)┆
0x095f40…095f60             3b 20 28 2a 20 65 6e 64 2d 76 61 6c 75 65 20 2a 29 0a 0a 65 6d 69 74 20 28 78 64 6f 29 3b 0a 0a   ┆; (* end-value *)  emit (xdo);  ┆
0x095f60…095f80             70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0a 63 65 6e 64 66 6f   ┆prepare_statement;  end;  cendfo┆
0x095f80…095fa0             72 3a 0a 65 6d 69 74 20 28 78 65 6e 64 66 6f 72 29 3b 0a 0c 63 69 66 73 74 61 74 3a 0a 70 72 65   ┆r: emit (xendfor);  cifstat: pre┆
0x095fa0…095fc0             70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 63 69 66 65 78 70 72 3a 0a 62 65 67   ┆pare_expression;    cifexpr: beg┆
0x095fc0…095fe0             69 6e 0a 0a 61 73 73 75 72 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 62 6f 6f 6c 65 61 6e 5f 74 79   ┆in  assure (stacktop, boolean_ty┆
0x095fe0…096000             70 65 6e 61 6d 65 2c 20 69 66 5f 74 79 70 65 29 3b 0a 0a 65 6d 69 74 20 28 78 69 66 73 74 61 74   ┆pename, if_type);  emit (xifstat┆
0x096000…096020 (40, 0, 1)  29 3b 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b   ┆);  emit_and_release (stacktop);┆
0x096020…096040             0a 0a 65 6d 69 74 20 28 78 69 66 65 78 70 72 29 3b 0a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65   ┆  emit (xifexpr);  prepare_state┆
0x096040…096060             6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6c 73 65 3a 0a 65 6d 69 74 20 28 78 65 6c 73   ┆ment;  end;    celse: emit (xels┆
0x096060…096080             65 29 3b 0a 0a 0a 0a 63 65 6e 64 69 66 3a 0a 65 6d 69 74 20 28 78 69 66 29 3b 0a 0a 0c 63 72 65   ┆e);    cendif: emit (xif);   cre┆
0x096080…0960a0             70 65 61 74 73 74 61 74 3a 0a 65 6d 69 74 20 28 78 72 65 70 65 61 74 29 3b 0a 0a 0a 0a 63 75 6e   ┆peatstat: emit (xrepeat);    cun┆
0x0960a0…0960c0             74 69 6c 3a 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 63 65 6e 64   ┆til: prepare_expression;    cend┆
0x0960c0…0960e0             72 65 70 65 61 74 3a 0a 62 65 67 69 6e 0a 0a 61 73 73 75 72 65 20 28 73 74 61 63 6b 74 6f 70 2c   ┆repeat: begin  assure (stacktop,┆
0x0960e0…096100             20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e 61 6d 65 2c 20 72 65 70 65 61 74 5f 74 79 70 65 29 3b   ┆ boolean_typename, repeat_type);┆
0x096100…096120             0a 0a 65 6d 69 74 20 28 78 75 6e 74 69 6c 29 3b 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61   ┆  emit (xuntil);  emit_and_relea┆
0x096120…096140             73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74 20 28 78 65 6e 64 72 65 70 65 61 74   ┆se (stacktop);  emit (xendrepeat┆
0x096140…096160             29 3b 0a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0c 63 6c   ┆);  prepare_statement;  end;  cl┆
0x096160…096180             6f 6f 70 73 74 61 74 3a 0a 65 6d 69 74 28 78 6c 6f 6f 70 73 74 61 74 29 3b 0a 0a 63 65 6e 64 6c   ┆oopstat: emit(xloopstat);  cendl┆
0x096180…0961a0             6f 6f 70 73 74 61 74 3a 0a 65 6d 69 74 28 78 65 6e 64 6c 6f 6f 70 73 74 61 74 29 3b 0a 0a 63 63   ┆oopstat: emit(xendloopstat);  cc┆
0x0961a0…0961c0             6f 6e 74 6c 6f 6f 70 73 74 61 74 2c 0a 63 65 78 69 74 6c 6f 6f 70 73 74 61 74 3a 0a 62 65 67 69   ┆ontloopstat, cexitloopstat: begi┆
0x0961c0…0961e0             6e 0a 69 66 20 72 65 63 74 79 70 65 3d 63 63 6f 6e 74 6c 6f 6f 70 73 74 61 74 20 74 68 65 6e 0a   ┆n if rectype=ccontloopstat then ┆
0x0961e0…096200             65 6d 69 74 28 78 63 6f 6e 74 6c 6f 6f 70 73 74 61 74 29 0a 65 6c 73 65 0a 65 6d 69 74 28 78 65   ┆emit(xcontloopstat) else emit(xe┆
0x096200…096220 (40, 0, 2)  78 69 74 6c 6f 6f 70 73 74 61 74 29 3b 0a 63 61 73 65 20 70 61 73 73 77 6f 72 64 20 28 2a 20 6b   ┆xitloopstat); case password (* k┆
0x096220…096240             69 6e 64 20 6f 66 20 72 65 70 65 74 69 74 69 76 65 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 20 6f   ┆ind of repetitive statement *) o┆
0x096240…096260             66 0a 63 6c 6f 6f 70 73 74 61 74 3a 20 65 6d 69 74 28 78 6c 6f 6f 70 73 74 61 74 29 3b 0a 63 72   ┆f cloopstat: emit(xloopstat); cr┆
0x096260…096280             65 70 65 61 74 73 74 61 74 3a 20 65 6d 69 74 28 78 72 65 70 65 61 74 29 3b 0a 63 66 6f 72 73 74   ┆epeatstat: emit(xrepeat); cforst┆
0x096280…0962a0             61 74 3a 20 65 6d 69 74 28 78 66 6f 72 73 74 61 74 29 3b 0a 63 77 68 69 6c 65 73 74 61 74 3a 20   ┆at: emit(xforstat); cwhilestat: ┆
0x0962a0…0962c0             65 6d 69 74 28 78 77 68 69 6c 65 29 3b 0a 65 6c 73 65 0a 63 6f 6d 70 5f 65 72 72 6f 72 28 75 6e   ┆emit(xwhile); else comp_error(un┆
0x0962c0…0962e0             6b 6e 6f 77 6e 5f 72 65 63 74 79 70 65 29 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 63 6f 6e   ┆known_rectype); end; end; (* con┆
0x0962e0…096300             74 6c 6f 6f 70 73 74 61 74 2f 65 78 69 74 6c 6f 6f 70 73 74 61 74 20 2a 29 0a 0a 63 65 78 69 74   ┆tloopstat/exitloopstat *)  cexit┆
0x096300…096320             6c 6f 63 6b 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 28 78 65 78 69 74 6c 6f 63 6b 29 3b 0a 63 61 73   ┆lock: begin emit(xexitlock); cas┆
0x096320…096340             65 20 70 61 73 73 77 6f 72 64 20 28 2a 20 6b 69 6e 64 3a 6c 6f 63 6b 20 6f 72 20 63 68 61 6e 6e   ┆e password (* kind:lock or chann┆
0x096340…096360             65 6c 20 2a 29 20 6f 66 0a 63 6c 6f 63 6b 73 74 61 74 3a 20 28 2a 20 62 6f 74 68 20 6b 69 6e 64   ┆el *) of clockstat: (* both kind┆
0x096360…096380             73 20 6f 66 20 6c 6f 63 6b 20 2a 29 20 65 6d 69 74 28 78 6c 6f 63 6b 73 74 61 74 29 3b 0a 63 63   ┆s of lock *) emit(xlockstat); cc┆
0x096380…0963a0             68 61 6e 6e 65 6c 73 74 61 74 3a 20 65 6d 69 74 28 78 63 68 61 6e 6e 65 6c 29 3b 0a 65 6c 73 65   ┆hannelstat: emit(xchannel); else┆
0x0963a0…0963c0             0a 63 6f 6d 70 5f 65 72 72 6f 72 28 75 6e 6b 6e 6f 77 6e 5f 72 65 63 74 79 70 65 29 3b 0a 65 6e   ┆ comp_error(unknown_rectype); en┆
0x0963c0…0963e0             64 3b 0a 65 6e 64 3b 20 28 2a 20 65 78 69 74 6c 6f 63 6b 20 2a 29 0a 0a 63 65 78 69 74 73 74 61   ┆d; end; (* exitlock *)  cexitsta┆
0x0963e0…096400             74 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 28 78 65 78 69 74 73 74 61 74 29 3b 0a 65 6e 64 3b 0a 0c   ┆t: begin emit(xexitstat); end;  ┆
0x096400…096420 (40, 0, 3)  0a 63 77 68 69 6c 65 73 74 61 74 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20 28 78 77 68 69 6c 65 29   ┆ cwhilestat: begin emit (xwhile)┆
0x096420…096440             3b 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 77   ┆; prepare_expression; end;    cw┆
0x096440…096460             68 69 6c 65 65 78 70 72 3a 0a 62 65 67 69 6e 0a 0a 61 73 73 75 72 65 20 28 73 74 61 63 6b 74 6f   ┆hileexpr: begin  assure (stackto┆
0x096460…096480             70 2c 20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e 61 6d 65 2c 20 77 68 69 6c 65 5f 74 79 70 65 29   ┆p, boolean_typename, while_type)┆
0x096480…0964a0             3b 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a   ┆;  emit_and_release (stacktop); ┆
0x0964a0…0964c0             0a 65 6d 69 74 20 28 78 77 68 69 6c 65 65 78 70 72 29 3b 0a 0a 70 72 65 70 61 72 65 5f 73 74 61   ┆ emit (xwhileexpr);  prepare_sta┆
0x0964c0…0964e0             74 65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 77 68 69 6c 65 3a 0a 65 6d 69 74   ┆tement;  end;    cendwhile: emit┆
0x0964e0…096500             20 28 78 65 6e 64 77 68 69 6c 65 29 3b 0a 0a 0c 0a 63 6c 6f 63 6b 73 74 61 74 2c 0a 63 6c 6f 63   ┆ (xendwhile);    clockstat, cloc┆
0x096500…096520             6b 6d 65 73 73 74 61 74 2c 0a 63 77 69 74 68 63 6f 6d 6d 61 2c 0a 63 77 69 74 68 73 74 61 74 3a   ┆kmesstat, cwithcomma, cwithstat:┆
0x096520…096540             0a 0a 62 65 67 69 6e 0a 0a 63 61 73 65 20 72 65 63 74 79 70 65 20 6f 66 0a 63 6c 6f 63 6b 73 74   ┆  begin  case rectype of clockst┆
0x096540…096560             61 74 3a 0a 62 65 67 69 6e 0a 73 74 61 72 74 5f 6f 66 5f 70 72 6f 74 65 63 74 65 64 3a 3d 20 74   ┆at: begin start_of_protected:= t┆
0x096560…096580             72 75 65 3b 20 20 28 2a 20 70 72 65 70 61 72 65 3a 20 67 6f 74 6f 20 6e 6f 74 20 6f 75 74 20 6f   ┆rue;  (* prepare: goto not out o┆
0x096580…0965a0             66 20 6c 6f 63 6b 2d 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 65 6d 69 74 20 28 78 6c 6f 63 6b 73   ┆f lock-statement *) emit (xlocks┆
0x0965a0…0965c0             74 61 74 29 3b 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 66 69 72 73 74 6c 6f 63 6b 3b 0a 65 6e 64   ┆tat); levelkind:= firstlock; end┆
0x0965c0…0965e0             3b 0a 63 6c 6f 63 6b 6d 65 73 73 74 61 74 3a 0a 62 65 67 69 6e 0a 73 74 61 72 74 5f 6f 66 5f 70   ┆; clockmesstat: begin start_of_p┆
0x0965e0…096600             72 6f 74 65 63 74 65 64 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 70 72 65 70 61 72 65 3a 20 67 6f   ┆rotected:= true;  (* prepare: go┆
0x096600…096620 (40, 0, 4)  74 6f 20 6e 6f 74 20 6f 75 74 20 6f 66 20 6c 6f 63 6b 2d 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a   ┆to not out of lock-statement *) ┆
0x096620…096640             65 6d 69 74 20 28 78 6c 6f 63 6b 6d 65 73 73 74 61 74 29 3b 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d   ┆emit (xlockmesstat); levelkind:=┆
0x096640…096660             20 66 69 72 73 74 6c 6f 63 6b 3b 0a 65 6e 64 3b 0a 63 77 69 74 68 63 6f 6d 6d 61 2c 0a 63 77 69   ┆ firstlock; end; cwithcomma, cwi┆
0x096660…096680             74 68 73 74 61 74 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20 28 78 77 69 74 68 29 3b 0a 69 66 20 72   ┆thstat: begin emit (xwith); if r┆
0x096680…0966a0             65 63 74 79 70 65 20 3d 20 63 77 69 74 68 73 74 61 74 20 74 68 65 6e 0a 6c 65 76 65 6c 6b 69 6e   ┆ectype = cwithstat then levelkin┆
0x0966a0…0966c0             64 3a 3d 20 66 69 72 73 74 77 69 74 68 0a 65 6c 73 65 0a 69 66 20 6c 65 76 65 6c 6b 69 6e 64 3d   ┆d:= firstwith else if levelkind=┆
0x0966c0…0966e0             6e 65 78 74 6c 6f 63 6b 20 74 68 65 6e 20 28 2a 20 77 69 74 68 63 6f 6d 6d 61 20 6f 6e 6c 79 20   ┆nextlock then (* withcomma only ┆
0x0966e0…096700             61 6c 6c 6f 77 65 64 20 69 6e 20 57 49 54 48 20 73 74 61 74 65 6d 65 6e 74 73 20 2a 29 0a 65 72   ┆allowed in WITH statements *) er┆
0x096700…096720             72 6f 72 28 73 68 6f 72 74 5f 66 6f 72 6d 5f 6f 66 5f 6d 75 6c 74 69 70 6c 65 5f 6c 6f 63 6b 73   ┆ror(short_form_of_multiple_locks┆
0x096720…096740             5f 6e 6f 74 5f 61 6c 6c 6f 77 65 64 29 3b 0a 65 6e 64 3b 0a 65 6c 73 65 3b 0a 65 6e 64 3b 20 28   ┆_not_allowed); end; else; end; (┆
0x096740…096760             2a 20 63 61 73 65 20 2a 29 0a 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a   ┆* case *)  prepare_expression;  ┆
0x096760…096780             65 6e 64 3b 0a 0a 0a 0a 63 77 69 74 68 76 61 72 3a 0a 0a 62 65 67 69 6e 0a 28 2a 20 6d 6f 73 74   ┆end;    cwithvar:  begin (* most┆
0x096780…0967a0             20 6f 66 20 74 68 69 73 20 61 63 74 69 6f 6e 20 69 73 20 63 6f 6d 6d 6f 6e 20 66 6f 72 20 6c 6f   ┆ of this action is common for lo┆
0x0967a0…0967c0             63 6b 2d 20 61 6e 64 20 77 69 74 68 2d 73 74 61 74 65 6d 65 6e 74 73 20 2a 29 0a 0a 72 65 73 6f   ┆ck- and with-statements *)  reso┆
0x0967c0…0967e0             6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c   ┆lvetype (stacktop, exprtypename,┆
0x0967e0…096800             20 65 78 70 72 65 6c 65 6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 77 69 74   ┆ exprelement, exprbasekind); wit┆
0x096800…096820 (40, 0, 5)  68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 77 69 74 68 5f 74 79 70 65 6e 61 6d 65 3a 3d   ┆h  stacktop ^ do with_typename:=┆
0x096820…096840             20 6f 70 5f 74 79 70 65 6e 61 6d 65 3b 0a 0a 66 69 6e 64 5f 77 69 74 68 5f 6e 61 6d 65 6b 69 6e   ┆ op_typename;  find_with_namekin┆
0x096840…096860             64 28 73 74 61 63 6b 74 6f 70 29 3b 20 28 2a 20 77 69 74 68 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20   ┆d(stacktop); (* with_namekind:= ┆
0x096860…096880             63 6f 6e 73 74 61 6e 74 20 6f 72 20 76 61 72 2c 0a 77 69 74 68 76 61 72 5f 73 70 69 78 3a 3d 20   ┆constant or var, withvar_spix:= ┆
0x096880…0968a0             73 70 69 78 20 6f 66 20 77 69 74 68 20 76 61 72 69 61 62 6c 65 20 28 20 66 6f 72 20 65 72 72 6f   ┆spix of with variable ( for erro┆
0x0968a0…0968c0             72 72 65 70 6f 72 74 69 6e 67 20 29 20 2a 29 0a 74 65 73 74 75 6e 70 61 63 6b 65 64 28 73 74 61   ┆rreporting ) *) testunpacked(sta┆
0x0968c0…0968e0             63 6b 74 6f 70 29 3b 20 28 2a 20 77 69 74 68 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65   ┆cktop); (* with variable must be┆
0x0968e0…096900             20 72 65 67 75 6c 61 72 20 2a 29 0a 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 63 75 72 5f   ┆ regular *)  newnamelevel;  cur_┆
0x096900…096920             64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a 77 69 74 68   ┆dyn_var_level:= namelevel;  with┆
0x096920…096940             20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 65 73 74 20 74   ┆ namelevel^ do  begin  (* test t┆
0x096940…096960             68 65 20 6c 6f 63 6b 76 61 72 2f 77 69 74 68 76 61 72 20 2a 29 0a 0a 63 61 73 65 20 6e 61 6d 65   ┆he lockvar/withvar *)  case name┆
0x096960…096980             6c 69 73 74 6b 69 6e 64 20 6f 66 0a 0a 66 69 72 73 74 6c 6f 63 6b 2c 0a 6e 65 78 74 6c 6f 63 6b   ┆listkind of  firstlock, nextlock┆
0x096980…0969a0             3a 0a 62 65 67 69 6e 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 6e 65 78 74 6c 6f 63 6b 3b 0a 28 2a   ┆: begin levelkind:= nextlock; (*┆
0x0969a0…0969c0             20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 6f 66 20 74 79 70 65 20 72 65 66 65 72 65   ┆ variable must be of type refere┆
0x0969c0…0969e0             6e 63 65 20 2a 29 0a 69 66 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 3c 3e 20 72 65 66 65 72 65   ┆nce *) if exprtypename <> refere┆
0x0969e0…096a00             6e 63 65 5f 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 69 66 20 65 78 70 72 62 61 73 65 6b 69 6e   ┆nce_typename then if exprbasekin┆
0x096a00…096a20 (40, 0, 6)  64 20 3c 3e 20 63 65 72 72 6f 72 6b 69 6e 64 20 74 68 65 6e 20 20 28 2a 20 73 75 70 70 72 65 73   ┆d <> cerrorkind then  (* suppres┆
0x096a20…096a40             73 20 69 66 20 61 6c 72 65 61 64 79 20 69 6e 20 65 72 72 6f 72 20 2a 29 0a 65 72 72 6f 72 20 28   ┆s if already in error *) error (┆
0x096a40…096a60             6c 6f 63 6b 5f 74 79 70 65 29 3b 0a 65 6e 64 3b 0a 0a 66 69 72 73 74 77 69 74 68 2c 0a 6e 65 78   ┆lock_type); end;  firstwith, nex┆
0x096a60…096a80             74 77 69 74 68 3a 0a 62 65 67 69 6e 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 6e 65 78 74 77 69 74   ┆twith: begin levelkind:= nextwit┆
0x096a80…096aa0             68 3b 0a 28 2a 20 69 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 6f 66 20 61 20 72 65   ┆h; (* if the variable is of a re┆
0x096aa0…096ac0             63 6f 72 64 20 74 79 70 65 20 74 68 65 6e 20 6f 70 65 6e 20 66 6f 72 20 74 68 65 20 66 69 65 6c   ┆cord type then open for the fiel┆
0x096ac0…096ae0             64 20 6e 61 6d 65 73 20 2a 29 0a 69 66 20 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3d 20 63 72 65   ┆d names *) if exprbasekind = cre┆
0x096ae0…096b00             63 6f 72 64 20 74 68 65 6e 0a 69 6e 73 65 72 74 5f 6e 61 6d 65 6c 69 73 74 20 28 65 78 70 72 65   ┆cord then insert_namelist (expre┆
0x096b00…096b20             6c 65 6d 65 6e 74 20 28 2a 20 3d 20 66 69 65 6c 64 20 6e 61 6d 65 20 6c 69 73 74 20 6f 66 20 72   ┆lement (* = field name list of r┆
0x096b20…096b40             65 63 6f 72 64 20 2a 29 20 29 3b 0a 65 6e 64 3b 0a 0a 65 6c 73 65 3b 0a 65 6e 64 3b 20 28 2a 20   ┆ecord *) ); end;  else; end; (* ┆
0x096b40…096b60             63 61 73 65 20 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 20 2a 29 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72   ┆case namelistkind *)  emit_and_r┆
0x096b60…096b80             65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 20 28 2a 20 76 61 72 69 61 62 6c 65 20 2a   ┆elease (stacktop); (* variable *┆
0x096b80…096ba0             29 0a 0a 69 66 20 6c 65 76 65 6c 6b 69 6e 64 20 3d 20 6e 65 78 74 77 69 74 68 20 74 68 65 6e 0a   ┆)  if levelkind = nextwith then ┆
0x096ba0…096bc0             62 65 67 69 6e 0a 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29   ┆begin (* initialize namelevel *)┆
0x096bc0…096be0             0a 77 69 74 68 6e 61 6d 65 3a 3d 20 61 6c 6c 6f 63 5f 6e 61 6d 65 6e 6f 64 65 3b 0a 77 69 74 68   ┆ withname:= alloc_namenode; with┆
0x096be0…096c00             20 20 77 69 74 68 6e 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 73 70 69 78 3a 3d 20 77 69 74   ┆  withname ^ do begin spix:= wit┆
0x096c00…096c20 (40, 0, 7)  68 76 61 72 5f 73 70 69 78 3b 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 77 69 74 68 5f 6e 61 6d 65 6b   ┆hvar_spix; namekind:= with_namek┆
0x096c20…096c40             69 6e 64 3b 20 28 2a 20 63 6f 6e 73 74 61 6e 74 20 6f 72 20 76 61 72 2c 20 64 65 70 65 6e 64 69   ┆ind; (* constant or var, dependi┆
0x096c40…096c60             6e 67 20 6f 6e 20 6e 61 6d 65 6b 69 6e 64 20 6f 66 20 77 69 74 68 76 61 72 20 2a 29 0a 74 79 70   ┆ng on namekind of withvar *) typ┆
0x096c60…096c80             65 6e 61 6d 65 3a 3d 20 77 69 74 68 5f 74 79 70 65 6e 61 6d 65 3b 20 20 28 2a 20 69 6e 73 65 72   ┆ename:= with_typename;  (* inser┆
0x096c80…096ca0             74 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 69 66 20 77 69   ┆t typename *) end; end; (* if wi┆
0x096ca0…096cc0             74 68 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 6e 61 6d   ┆th statement *) end; (* with nam┆
0x096cc0…096ce0             65 6c 65 76 65 6c 20 2a 29 0a 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 20 28 2a 20 77 69 74 68   ┆elevel *)  newnamelevel; (* with┆
0x096ce0…096d00             2f 6c 6f 63 6b 20 73 74 61 74 65 6d 65 6e 74 73 20 68 61 73 20 61 20 6e 61 6d 65 20 6c 65 76 65   ┆/lock statements has a name leve┆
0x096d00…096d20             6c 20 66 6f 72 20 74 68 65 20 77 69 74 68 2d 6f 62 6a 65 63 74 20 61 6e 64 0a 6f 6e 65 20 66 6f   ┆l for the with-object and one fo┆
0x096d20…096d40             72 20 74 68 65 20 6e 65 77 20 6e 61 6d 65 2c 20 65 76 65 6e 20 69 66 20 74 68 65 72 65 20 69 73   ┆r the new name, even if there is┆
0x096d40…096d60             20 6e 6f 20 72 65 6e 61 6d 69 6e 67 20 69 6e 76 6f 6c 76 65 64 20 2a 29 0a 6c 65 76 65 6c 6b 69   ┆ no renaming involved *) levelki┆
0x096d60…096d80             6e 64 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 5e 2e 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 3b 20 28 2a   ┆nd:= namelevel^.namelistkind; (*┆
0x096d80…096da0             20 72 65 73 65 74 20 6c 65 76 65 6c 6b 69 6e 64 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68   ┆ reset levelkind *) end; (* with┆
0x096da0…096dc0             76 61 72 20 2a 29 0a 0a 0a 63 6e 6f 6c 6f 63 61 6c 64 65 63 6c 3a 0a 62 65 67 69 6e 0a 77 69 74   ┆var *)   cnolocaldecl: begin wit┆
0x096dc0…096de0             68 20 6e 61 6d 65 6c 65 76 65 6c 20 5e 20 2e 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 20 5e 20 28 2a   ┆h namelevel ^ .former_level ^ (*┆
0x096de0…096e00             20 77 69 74 68 2f 6c 6f 63 6b 2d 6f 62 6a 65 63 74 20 6c 65 76 65 6c 20 2a 29 20 64 6f 0a 69 66   ┆ with/lock-object level *) do if┆
0x096e00…096e20 (40, 0, 8)  20 28 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 3d 66 69 72 73 74 6c 6f 63 6b 29 20 6f 72 20 28 6e 61   ┆ (namelistkind=firstlock) or (na┆
0x096e20…096e40             6d 65 6c 69 73 74 6b 69 6e 64 3d 6e 65 78 74 6c 6f 63 6b 29 20 74 68 65 6e 0a 65 72 72 6f 72 28   ┆melistkind=nextlock) then error(┆
0x096e40…096e60             6c 6f 63 6b 5f 6e 61 6d 65 5f 6d 69 73 73 69 6e 67 29 0a 65 6c 73 65 0a 62 65 67 69 6e 0a 65 6d   ┆lock_name_missing) else begin em┆
0x096e60…096e80             69 74 69 64 20 28 78 77 69 74 68 76 61 72 2c 20 77 69 74 68 6e 61 6d 65 29 3b 0a 65 6d 69 74 28   ┆itid (xwithvar, withname); emit(┆
0x096e80…096ea0             78 6e 6f 72 65 74 79 70 65 29 3b 0a 65 6e 64 3b 20 28 2a 20 69 66 20 77 69 74 68 2d 73 74 61 74   ┆xnoretype); end; (* if with-stat┆
0x096ea0…096ec0             65 6d 65 6e 74 20 2a 29 0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 69 6c   ┆ement *) cur_dyn_var_level:= nil┆
0x096ec0…096ee0             5f 6e 61 6d 65 73 74 61 63 6b 5f 70 74 72 3b 20 28 2a 20 61 6c 6c 20 6c 65 76 65 6c 73 20 61 72   ┆_namestack_ptr; (* all levels ar┆
0x096ee0…096f00             65 20 6c 65 67 61 6c 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 6e 6f 6c 6f 63 61 6c 64 65 63 6c 20 2a   ┆e legal *) end; (* nolocaldecl *┆
0x096f00…096f20             29 0a 0a 0a 63 6e 6f 6c 6f 63 61 6c 74 79 70 65 3a 20 62 65 67 69 6e 0a 77 69 74 68 20 6c 69 73   ┆)   cnolocaltype: begin with lis┆
0x096f20…096f40             74 66 69 72 73 74 5e 20 64 6f 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 6c 6f 63 61 6c 20   ┆tfirst^ do (* namenode of local ┆
0x096f40…096f60             76 61 72 20 2a 29 0a 62 65 67 69 6e 0a 69 66 20 6c 65 76 65 6c 6b 69 6e 64 3d 6e 65 78 74 77 69   ┆var *) begin if levelkind=nextwi┆
0x096f60…096f80             74 68 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 77 69 74 68 5f 6e 61   ┆th then begin namekind:= with_na┆
0x096f80…096fa0             6d 65 6b 69 6e 64 3b 20 28 2a 20 63 6f 6e 73 74 61 6e 74 20 6f 72 20 76 61 72 2c 20 64 65 70 65   ┆mekind; (* constant or var, depe┆
0x096fa0…096fc0             6e 64 69 6e 67 20 6f 6e 20 6e 61 6d 65 6b 69 6e 64 20 6f 66 20 77 69 74 68 76 61 72 20 2a 29 0a   ┆nding on namekind of withvar *) ┆
0x096fc0…096fe0             75 73 65 64 6c 65 76 65 6c 3a 3d 20 6c 6f 77 65 73 74 6c 65 76 65 6c 3b 20 28 2a 20 69 6e 20 63   ┆usedlevel:= lowestlevel; (* in c┆
0x096fe0…097000             61 73 65 20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 2a 29 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 77 69   ┆ase of constant *) typename:= wi┆
0x097000…097020 (40, 0, 9)  74 68 5f 74 79 70 65 6e 61 6d 65 3b 20 28 2a 20 73 61 6d 65 20 74 79 70 65 20 61 73 20 74 68 65   ┆th_typename; (* same type as the┆
0x097020…097040             20 77 69 74 68 2d 6f 62 6a 65 63 74 20 2a 29 0a 65 6d 69 74 69 64 20 28 78 77 69 74 68 76 61 72   ┆ with-object *) emitid (xwithvar┆
0x097040…097060             2c 20 6c 69 73 74 66 69 72 73 74 29 3b 0a 65 6d 69 74 28 78 6e 6f 72 65 74 79 70 65 29 3b 0a 6e   ┆, listfirst); emit(xnoretype); n┆
0x097060…097080             61 6d 65 6c 65 76 65 6c 5e 2e 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 5e 2e 66 69 72 73 74 6e 61 6d   ┆amelevel^.former_level^.firstnam┆
0x097080…0970a0             65 3a 3d 20 6e 69 6c 6e 61 6d 65 3b 0a 65 6e 64 0a 65 6c 73 65 0a 65 72 72 6f 72 28 62 75 66 66   ┆e:= nilname; end else error(buff┆
0x0970a0…0970c0             65 72 5f 74 79 70 65 5f 6d 69 73 73 69 6e 67 29 3b 0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65   ┆er_type_missing); cur_dyn_var_le┆
0x0970c0…0970e0             76 65 6c 3a 3d 20 6e 69 6c 5f 6e 61 6d 65 73 74 61 63 6b 5f 70 74 72 3b 20 28 2a 20 61 6c 6c 20   ┆vel:= nil_namestack_ptr; (* all ┆
0x0970e0…097100             6c 65 76 65 6c 73 20 61 72 65 20 6c 65 67 61 6c 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68   ┆levels are legal *) end; (* with┆
0x097100…097120             20 6c 69 73 74 66 69 72 73 74 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 6e 6f 6c 6f 63 61 6c 74 79 70   ┆ listfirst *) end; (* nolocaltyp┆
0x097120…097140             65 2c 20 69 2e 65 2e 20 72 65 6e 61 6d 69 6e 67 20 2a 29 0a 0a 0a 63 65 6e 64 6c 6f 63 61 6c 64   ┆e, i.e. renaming *)   cendlocald┆
0x097140…097160             65 63 6c 61 72 65 3a 0a 62 65 67 69 6e 0a 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e   ┆eclare: begin  with  listfirst ^┆
0x097160…097180             20 64 6f 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 6c 6f 63 61 6c 20 76 61 72 20 2a 29 0a   ┆ do (* namenode of local var *) ┆
0x097180…0971a0             62 65 67 69 6e 0a 0a 28 2a 20 74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20 6c 6f 63 61 6c   ┆begin  (* test legality of local┆
0x0971a0…0971c0             20 74 79 70 65 20 2a 29 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f   ┆ type *) with  cur_typenode ^ do┆
0x0971c0…0971e0             0a 69 66 20 63 6f 6e 74 65 6e 74 73 20 2a 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 2c 20 74 5f   ┆ if contents * [ t_semaphore, t_┆
0x0971e0…097200             70 6f 69 6e 74 65 72 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65   ┆pointer, t_reference, t_extproce┆
0x097200…097220 (40, 0, 10) 73 73 2c 20 74 5f 73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 20 5d 20 3c 3e 20 5b 5d 20 74 68 65   ┆ss, t_shadow, t_pool ] <> [] the┆
0x097220…097240             6e 0a 62 65 67 69 6e 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 72 72 6f 72 73 70 69   ┆n begin set_error_type; errorspi┆
0x097240…097260             78 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 5e 2e 73 70 69 78 3b 0a 65 72 72 6f 72 20 28 74   ┆x:= cur_typename^.spix; error (t┆
0x097260…097280             79 70 65 5f 68 61 73 5f 73 79 73 74 65 6d 74 79 70 65 73 29 3b 0a 65 6e 64 3b 0a 0a 69 66 20 6e   ┆ype_has_systemtypes); end;  if n┆
0x097280…0972a0             61 6d 65 6c 65 76 65 6c 5e 2e 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 3d 6e 65 78 74 77 69 74 68 20   ┆amelevel^.namelistkind=nextwith ┆
0x0972a0…0972c0             74 68 65 6e 0a 62 65 67 69 6e 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 77 69 74 68 5f 6e 61 6d 65 6b   ┆then begin namekind:= with_namek┆
0x0972c0…0972e0             69 6e 64 3b 20 28 2a 20 63 6f 6e 73 74 61 6e 74 20 6f 72 20 76 61 72 2c 20 64 65 70 65 6e 64 69   ┆ind; (* constant or var, dependi┆
0x0972e0…097300             6e 67 20 6f 6e 20 6e 61 6d 65 6b 69 6e 64 20 6f 66 20 77 69 74 68 76 61 72 20 2a 29 0a 75 73 65   ┆ng on namekind of withvar *) use┆
0x097300…097320             64 6c 65 76 65 6c 3a 3d 20 6c 6f 77 65 73 74 6c 65 76 65 6c 3b 20 28 2a 20 69 6e 20 63 61 73 65   ┆dlevel:= lowestlevel; (* in case┆
0x097320…097340             20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 2a 29 0a 77 69 74 68 20 77 69 74 68 5f 74 79 70 65 6e 61   ┆ of constant *) with with_typena┆
0x097340…097360             6d 65 5e 2e 74 79 70 5e 20 64 6f 0a 28 2a 20 74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20   ┆me^.typ^ do (* test legality of ┆
0x097360…097380             6f 72 69 67 69 6e 61 6c 20 74 79 70 65 20 2a 29 0a 69 66 20 63 6f 6e 74 65 6e 74 73 20 2a 20 5b   ┆original type *) if contents * [┆
0x097380…0973a0             20 74 5f 73 65 6d 61 70 68 6f 72 65 2c 20 74 5f 70 6f 69 6e 74 65 72 2c 20 74 5f 72 65 66 65 72   ┆ t_semaphore, t_pointer, t_refer┆
0x0973a0…0973c0             65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 0a 74 5f 73 68 61 64 6f 77 2c 20 74 5f   ┆ence, t_extprocess, t_shadow, t_┆
0x0973c0…0973e0             70 6f 6f 6c 2c 20 74 5f 72 65 61 64 6f 6e 6c 79 20 5d 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65   ┆pool, t_readonly ] <> [] then be┆
0x0973e0…097400             67 69 6e 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20   ┆gin set_error_type; errorspix:= ┆
0x097400…097420 (40, 0, 11) 77 69 74 68 5f 74 79 70 65 6e 61 6d 65 5e 2e 73 70 69 78 3b 0a 65 72 72 6f 72 20 28 74 79 70 65   ┆with_typename^.spix; error (type┆
0x097420…097440             5f 68 61 73 5f 73 79 73 74 65 6d 74 79 70 65 73 29 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 74 79   ┆_has_systemtypes); end; end;  ty┆
0x097440…097460             70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 0a 65 6e 64 3b 0a 0a 63 61   ┆pename:= cur_typename;  end;  ca┆
0x097460…097480             73 65 20 6e 61 6d 65 6c 65 76 65 6c 5e 2e 6e 61 6d 65 6c 69 73 74 6b 69 6e 64 20 6f 66 0a 66 69   ┆se namelevel^.namelistkind of fi┆
0x097480…0974a0             72 73 74 6c 6f 63 6b 2c 0a 6e 65 78 74 6c 6f 63 6b 3a 20 62 65 67 69 6e 0a 65 6d 69 74 69 64 20   ┆rstlock, nextlock: begin emitid ┆
0x0974a0…0974c0             28 78 6c 6f 63 6b 76 61 72 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 20 20 28 2a 20 6e 6f 74 69 63   ┆(xlockvar, listfirst);  (* notic┆
0x0974c0…0974e0             65 3a 20 66 69 72 73 74 20 6e 61 6d 65 20 69 6e 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 65 6d   ┆e: first name in namelevel *) em┆
0x0974e0…097500             69 74 74 79 70 65 20 28 63 75 72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 65 6d 69 74 20 28 78 6c 6f   ┆ittype (cur_typename); emit (xlo┆
0x097500…097520             63 6b 29 3b 0a 65 6e 64 3b 0a 66 69 72 73 74 77 69 74 68 2c 0a 6e 65 78 74 77 69 74 68 3a 20 62   ┆ck); end; firstwith, nextwith: b┆
0x097520…097540             65 67 69 6e 0a 65 6d 69 74 69 64 20 28 78 77 69 74 68 76 61 72 2c 20 6c 69 73 74 66 69 72 73 74   ┆egin emitid (xwithvar, listfirst┆
0x097540…097560             29 3b 20 20 28 2a 20 6e 6f 74 69 63 65 3a 20 66 69 72 73 74 20 6e 61 6d 65 20 69 6e 20 6e 61 6d   ┆);  (* notice: first name in nam┆
0x097560…097580             65 6c 65 76 65 6c 20 2a 29 0a 65 6d 69 74 74 79 70 65 20 28 63 75 72 5f 74 79 70 65 6e 61 6d 65   ┆elevel *) emittype (cur_typename┆
0x097580…0975a0             29 3b 0a 65 6d 69 74 20 28 78 72 65 74 79 70 65 29 3b 0a 6e 61 6d 65 6c 65 76 65 6c 5e 2e 66 6f   ┆); emit (xretype); namelevel^.fo┆
0x0975a0…0975c0             72 6d 65 72 5f 6c 65 76 65 6c 5e 2e 66 69 72 73 74 6e 61 6d 65 3a 3d 20 6e 69 6c 6e 61 6d 65 3b   ┆rmer_level^.firstname:= nilname;┆
0x0975c0…0975e0             0a 65 6e 64 3b 0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 2a 29 0a 0a 70 6f 70 74 79 70 65 3b 0a   ┆ end; end; (* case *)  poptype; ┆
0x0975e0…097600             0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 69 6c 5f 6e 61 6d 65 73 74 61   ┆ cur_dyn_var_level:= nil_namesta┆
0x097600…097620 (40, 0, 12) 63 6b 5f 70 74 72 3b 20 28 2a 20 61 6c 6c 20 6c 65 76 65 6c 73 20 61 72 65 20 6c 65 67 61 6c 20   ┆ck_ptr; (* all levels are legal ┆
0x097620…097640             2a 29 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 64 6f 3a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65   ┆*)  end;    cdo: prepare_stateme┆
0x097640…097660             6e 74 3b 0a 0a 0a 63 65 6e 64 6c 6f 63 6b 2c 0a 63 65 6e 64 77 69 74 68 3a 0a 62 65 67 69 6e 0a   ┆nt;   cendlock, cendwith: begin ┆
0x097660…097680             0a 72 65 70 65 61 74 0a 0a 28 2a 20 75 6e 73 74 61 63 6b 20 74 77 6f 20 6e 61 6d 65 20 6c 65 76   ┆ repeat  (* unstack two name lev┆
0x097680…0976a0             65 6c 73 20 70 65 72 20 6c 6f 63 6b 2f 77 69 74 68 20 2a 29 0a 72 65 6c 65 61 73 65 6e 61 6d 65   ┆els per lock/with *) releasename┆
0x0976a0…0976c0             73 28 6e 61 6d 65 6c 65 76 65 6c 5e 2e 66 69 72 73 74 6e 61 6d 65 29 3b 20 28 2a 20 6c 6f 63 61   ┆s(namelevel^.firstname); (* loca┆
0x0976c0…0976e0             6c 20 6f 62 6a 65 63 74 20 6e 61 6d 65 20 2a 29 0a 65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b 0a 0a   ┆l object name *) endnamelevel;  ┆
0x0976e0…097700             77 69 74 68 20 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 20 28 2a 20 6f 66 20 77 69 74 68 2d 6f   ┆with  namelevel^ do (* of with-o┆
0x097700…097720             62 6a 65 63 74 20 2a 29 0a 62 65 67 69 6e 0a 0a 63 61 73 65 20 6e 61 6d 65 6c 69 73 74 6b 69 6e   ┆bject *) begin  case namelistkin┆
0x097720…097740             64 20 6f 66 0a 0a 66 69 72 73 74 6c 6f 63 6b 2c 0a 6e 65 78 74 6c 6f 63 6b 3a 0a 65 6d 69 74 20   ┆d of  firstlock, nextlock: emit ┆
0x097740…097760             28 78 65 6e 64 6c 6f 63 6b 29 3b 0a 66 69 72 73 74 77 69 74 68 2c 0a 6e 65 78 74 77 69 74 68 3a   ┆(xendlock); firstwith, nextwith:┆
0x097760…097780             0a 65 6d 69 74 20 28 78 65 6e 64 77 69 74 68 29 3b 0a 0a 65 6c 73 65 3b 0a 65 6e 64 3b 20 28 2a   ┆ emit (xendwith);  else; end; (*┆
0x097780…0977a0             20 63 61 73 65 20 2a 29 0a 0a 6c 65 76 65 6c 6b 69 6e 64 3a 3d 20 6e 61 6d 65 6c 69 73 74 6b 69   ┆ case *)  levelkind:= namelistki┆
0x0977a0…0977c0             6e 64 3b 0a 0a 72 65 6c 65 61 73 65 6e 61 6d 65 73 20 28 77 69 74 68 6e 61 6d 65 29 3b 0a 0a 65   ┆nd;  releasenames (withname);  e┆
0x0977c0…0977e0             6e 64 3b 20 28 2a 20 77 69 74 68 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 0a 65 6e 64 6e 61 6d   ┆nd; (* with namelevel *)  endnam┆
0x0977e0…097800             65 6c 65 76 65 6c 3b 0a 0a 75 6e 74 69 6c 20 28 6c 65 76 65 6c 6b 69 6e 64 20 3d 20 66 69 72 73   ┆elevel;  until (levelkind = firs┆
0x097800…097820 (40, 0, 13) 74 6c 6f 63 6b 29 20 6f 72 20 28 6c 65 76 65 6c 6b 69 6e 64 20 3d 20 66 69 72 73 74 77 69 74 68   ┆tlock) or (levelkind = firstwith┆
0x097820…097840             29 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 67 6f 74 6f 73 74 61 74 3a 0a 70 72 65 70 61 72 65 5f 65   ┆);  end;    cgotostat: prepare_e┆
0x097840…097860             78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 63 65 6e 64 67 6f 74 6f 3a 0a 0a 62 65 67 69 6e 0a 77   ┆xpression;    cendgoto:  begin w┆
0x097860…097880             69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 0a 65 72 72 6f 72 63   ┆ith  stacktop ^ do begin  errorc┆
0x097880…0978a0             6f 64 65 3a 3d 20 63 68 65 63 6b 5f 6c 61 62 65 6c 20 28 6f 70 5f 6e 61 6d 65 29 3b 0a 0a 69 66   ┆ode:= check_label (op_name);  if┆
0x0978a0…0978c0             20 65 72 72 6f 72 63 6f 64 65 20 3c 3e 20 6e 6f 65 72 72 6f 72 20 74 68 65 6e 0a 20 20 65 72 72   ┆ errorcode <> noerror then   err┆
0x0978c0…0978e0             6f 72 20 28 65 72 72 6f 72 63 6f 64 65 29 0a 65 6c 73 65 0a 65 6d 69 74 69 64 20 28 78 67 6f 74   ┆or (errorcode) else emitid (xgot┆
0x0978e0…097900             6f 2c 20 6f 70 5f 6e 61 6d 65 29 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 73 74 61 63 6b   ┆o, op_name);  end; (* with stack┆
0x097900…097920             74 6f 70 20 2a 29 0a 72 65 6c 65 61 73 65 5f 65 78 70 72 20 28 74 61 6b 65 5f 73 74 61 63 6b 74   ┆top *) release_expr (take_stackt┆
0x097920…097940             6f 70 29 3b 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 65 6e 64 3b 0a 0a 0c 0a   ┆op); prepare_statement; end;    ┆
0x097940…097960             63 63 68 61 6e 6e 65 6c 73 74 61 74 3a 0a 62 65 67 69 6e 0a 73 74 61 72 74 5f 6f 66 5f 70 72 6f   ┆cchannelstat: begin start_of_pro┆
0x097960…097980             74 65 63 74 65 64 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 70 72 65 70 61 72 65 3a 20 67 6f 74 6f   ┆tected:= true;  (* prepare: goto┆
0x097980…0979a0             20 6e 6f 74 20 6f 75 74 20 6f 66 20 63 68 61 6e 6e 65 6c 2d 73 74 61 74 65 6d 65 6e 74 20 2a 29   ┆ not out of channel-statement *)┆
0x0979a0…0979c0             0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 68   ┆ prepare_expression; end;    cch┆
0x0979c0…0979e0             61 6e 76 61 72 3a 0a 0a 62 65 67 69 6e 0a 0a 74 65 73 74 76 61 72 69 61 62 6c 65 20 28 73 74 61   ┆anvar:  begin  testvariable (sta┆
0x0979e0…097a00             63 6b 74 6f 70 29 3b 0a 61 73 73 75 72 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 72 65 66 65 72 65   ┆cktop); assure (stacktop, refere┆
0x097a00…097a20 (40, 0, 14) 6e 63 65 5f 74 79 70 65 6e 61 6d 65 2c 20 63 68 61 6e 6e 65 6c 5f 74 79 70 65 29 3b 0a 0a 65 6d   ┆nce_typename, channel_type);  em┆
0x097a20…097a40             69 74 20 28 78 63 68 61 6e 6e 65 6c 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20   ┆it (xchannel); emit_and_release ┆
0x097a40…097a60             28 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6d 69 74 20 28 78 63 68 61 6e 76 61 72 29 3b 0a 0a 70 72   ┆(stacktop); emit (xchanvar);  pr┆
0x097a60…097a80             65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 63 68   ┆epare_statement;  end;    cendch┆
0x097a80…097aa0             61 6e 6e 65 6c 3a 0a 65 6d 69 74 20 28 78 65 6e 64 63 68 61 6e 6e 65 6c 29 3b 0a 0a 0a 0a 63 65   ┆annel: emit (xendchannel);    ce┆
0x097aa0…097ac0             6e 64 61 73 73 69 67 6e 3a 0a 62 65 67 69 6e 0a 28 2a 20 6c 65 66 74 68 61 6e 64 73 69 64 65 20   ┆ndassign: begin (* lefthandside ┆
0x097ac0…097ae0             6d 75 73 74 20 62 65 20 61 73 73 69 67 6e 61 62 6c 65 20 76 61 72 69 61 62 6c 65 20 2a 29 0a 74   ┆must be assignable variable *) t┆
0x097ae0…097b00             65 73 74 61 73 73 69 67 6e 61 62 6c 65 20 28 6e 65 78 74 74 6f 70 29 3b 0a 28 2a 20 74 68 65 20   ┆estassignable (nexttop); (* the ┆
0x097b00…097b20             72 69 67 74 68 68 61 6e 64 73 69 64 65 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 75 65 20 2a 29   ┆rigthhandside must be a value *)┆
0x097b20…097b40             0a 28 2a 20 69 6d 70 6c 69 63 69 74 6c 79 20 74 65 73 74 65 64 20 62 79 20 72 65 73 6f 6c 76 65   ┆ (* implicitly tested by resolve┆
0x097b40…097b60             74 79 70 65 20 2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 6e 65 78 74 74 6f 70 2c 20 6c 65   ┆type *) resolvetype (nexttop, le┆
0x097b60…097b80             66 74 74 79 70 65 6e 61 6d 65 2c 20 6c 65 66 74 65 6c 65 6d 65 6e 74 2c 20 6c 65 66 74 62 61 73   ┆fttypename, leftelement, leftbas┆
0x097b80…097ba0             65 6b 69 6e 64 29 3b 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 72   ┆ekind); resolvetype (stacktop, r┆
0x097ba0…097bc0             69 67 74 68 74 79 70 65 6e 61 6d 65 2c 20 72 69 67 74 68 65 6c 65 6d 65 6e 74 2c 20 72 69 67 74   ┆igthtypename, rigthelement, rigt┆
0x097bc0…097be0             68 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 6c 65 66 74 74 79 70 65 6e 61 6d 65 20 3c 3e 20 72   ┆hbasekind); if lefttypename <> r┆
0x097be0…097c00             69 67 74 68 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 74 65 73 74 5f 76 61 6c 75 65 5f 63 6f 6d   ┆igthtypename then test_value_com┆
0x097c00…097c20 (40, 0, 15) 70 61 74 69 62 6c 65 20 28 61 73 73 69 67 6e 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 69   ┆patible (assign_incompatible); i┆
0x097c20…097c40             66 20 20 6e 65 78 74 74 6f 70 20 5e 20 2e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20 20 73   ┆f  nexttop ^ . op_typename <>  s┆
0x097c40…097c60             74 61 63 6b 74 6f 70 20 5e 20 2e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 77 69 74   ┆tacktop ^ . op_typename then wit┆
0x097c60…097c80             68 20 20 6e 65 78 74 74 6f 70 20 5e 20 64 6f 0a 74 65 73 74 72 61 6e 67 65 20 28 6f 70 5f 74 79   ┆h  nexttop ^ do testrange (op_ty┆
0x097c80…097ca0             70 65 6e 61 6d 65 29 3b 20 20 28 2a 20 6d 61 6b 65 20 72 61 6e 67 65 74 65 73 74 2c 20 77 68 65   ┆pename);  (* make rangetest, whe┆
0x097ca0…097cc0             6e 20 61 73 73 69 67 6e 69 6e 67 20 74 6f 20 73 75 62 72 61 6e 67 65 20 2a 29 0a 6f 70 65 72 20   ┆n assigning to subrange *) oper ┆
0x097cc0…097ce0             28 62 69 6e 61 72 79 2c 20 72 65 63 74 79 70 65 2c 20 6e 69 6c 6e 61 6d 65 29 3b 0a 65 6d 69 74   ┆(binary, rectype, nilname); emit┆
0x097ce0…097d00             5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 70 72 65 70 61 72 65   ┆_and_release (stacktop); prepare┆
0x097d00…097d20             5f 73 74 61 74 65 6d 65 6e 74 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 65 78 63 68 61 6e 67 65   ┆_statement; end;    cendexchange┆
0x097d20…097d40             3a 0a 62 65 67 69 6e 0a 28 2a 20 62 6f 74 68 20 6c 65 66 74 2d 20 61 6e 64 20 72 69 67 74 68 68   ┆: begin (* both left- and rigthh┆
0x097d40…097d60             61 6e 64 73 69 64 65 20 6d 75 73 74 20 62 65 20 61 73 73 69 67 6e 61 62 6c 65 20 76 61 72 69 61   ┆andside must be assignable varia┆
0x097d60…097d80             62 6c 65 73 20 2a 29 0a 28 2a 20 6f 66 20 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 74   ┆bles *) (* of exactly the same t┆
0x097d80…097da0             79 70 65 20 2a 29 0a 74 65 73 74 65 78 63 68 61 6e 67 61 62 6c 65 20 28 6e 65 78 74 74 6f 70 29   ┆ype *) testexchangable (nexttop)┆
0x097da0…097dc0             3b 0a 74 65 73 74 65 78 63 68 61 6e 67 61 62 6c 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 77 69   ┆; testexchangable (stacktop); wi┆
0x097dc0…097de0             74 68 20 20 6e 65 78 74 74 6f 70 20 5e 20 64 6f 0a 28 2a 20 74 79 70 65 20 6d 75 73 74 20 62 65   ┆th  nexttop ^ do (* type must be┆
0x097de0…097e00             20 72 65 66 65 72 65 6e 63 65 20 6f 72 20 73 68 61 64 6f 77 20 2a 29 0a 69 66 20 28 6f 70 5f 74   ┆ reference or shadow *) if (op_t┆
0x097e00…097e20 (40, 1, 1)  79 70 65 6e 61 6d 65 20 3c 3e 20 72 65 66 65 72 65 6e 63 65 5f 74 79 70 65 6e 61 6d 65 29 20 61   ┆ypename <> reference_typename) a┆
0x097e20…097e40             6e 64 0a 28 6f 70 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20 73 68 61 64 6f 77 5f 74 79 70 65 6e 61   ┆nd (op_typename <> shadow_typena┆
0x097e40…097e60             6d 65 29 20 74 68 65 6e 0a 65 72 72 6f 72 20 28 65 78 63 68 61 6e 67 65 5f 74 79 70 65 29 0a 65   ┆me) then error (exchange_type) e┆
0x097e60…097e80             6c 73 65 0a 69 66 20 6f 70 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20 20 73 74 61 63 6b 74 6f 70 20   ┆lse if op_typename <>  stacktop ┆
0x097e80…097ea0             5e 20 2e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 65 72 72 6f 72 20 28 65 78 63 68   ┆^ . op_typename then error (exch┆
0x097ea0…097ec0             61 6e 67 65 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 6f 70 65 72 20 28 62 69 6e 61 72 79   ┆ange_incompatible); oper (binary┆
0x097ec0…097ee0             2c 20 72 65 63 74 79 70 65 2c 20 6e 69 6c 6e 61 6d 65 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65   ┆, rectype, nilname); emit_and_re┆
0x097ee0…097f00             6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d   ┆lease (stacktop); prepare_statem┆
0x097f00…097f20             65 6e 74 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 69 64 3a 0a 62 65 67 69 6e 0a 0a 63 75 72 6e 61 6d 65   ┆ent; end;    cid: begin  curname┆
0x097f20…097f40             3a 3d 20 75 73 65 6e 61 6d 65 20 28 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20 2a 29 20   ┆:= usename (passin (* = spix *) ┆
0x097f40…097f60             29 3b 0a 0a 69 66 20 62 65 66 6f 72 65 5f 61 73 73 69 67 6e 20 74 68 65 6e 0a 62 65 67 69 6e 0a   ┆);  if before_assign then begin ┆
0x097f60…097f80             28 2a 20 62 65 20 70 72 65 70 61 72 65 64 20 66 6f 72 20 64 6f 69 6e 67 20 73 70 65 63 69 61 6c   ┆(* be prepared for doing special┆
0x097f80…097fa0             20 77 68 65 6e 20 61 73 73 69 67 6e 69 6e 67 20 74 6f 20 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65   ┆ when assigning to function-name┆
0x097fa0…097fc0             20 2a 29 0a 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 77 69 74 68 20 20   ┆ *)  prepare_expression;  with  ┆
0x097fc0…097fe0             63 75 72 6e 61 6d 65 20 5e 20 64 6f 20 20 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 69 64   ┆curname ^ do   (* namenode of id┆
0x097fe0…098000             65 6e 74 69 66 69 65 72 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 66 75 6e 63 74   ┆entifier *) if namekind = cfunct┆
0x098000…098020 (40, 1, 2)  69 6f 6e 20 74 68 65 6e 0a 28 2a 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 77 61 73 20   ┆ion then (* a function name was ┆
0x098020…098040             75 73 65 64 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 61 6e 20 61 73 73 69 67 6e 6d 65 6e 74 20 2a   ┆used in front of an assignment *┆
0x098040…098060             29 0a 0a 0a 69 66 20 72 65 74 72 69 65 76 65 64 5f 6c 65 76 65 6c 5e 2e 6c 65 76 65 6c 5f 6e 75   ┆)   if retrieved_level^.level_nu┆
0x098060…098080             6d 62 65 72 3c 3d 6e 61 6d 65 6c 65 76 65 6c 5e 2e 66 6f 72 6d 65 72 5f 6c 65 76 65 6c 5e 2e 6c   ┆mber<=namelevel^.former_level^.l┆
0x098080…0980a0             65 76 65 6c 5f 6e 75 6d 62 65 72 20 74 68 65 6e 0a 28 2a 20 74 65 73 74 20 69 66 20 72 65 74 72   ┆evel_number then (* test if retr┆
0x0980a0…0980c0             69 65 76 65 64 20 6c 65 76 65 6c 20 69 73 20 6c 6f 77 65 72 20 74 68 61 6e 20 66 6f 72 6d 65 72   ┆ieved level is lower than former┆
0x0980c0…0980e0             20 6f 66 20 63 75 72 72 65 6e 74 20 6c 65 76 65 6c 20 2a 29 0a 28 2a 20 69 2e 65 2e 20 74 65 73   ┆ of current level *) (* i.e. tes┆
0x0980e0…098100             74 20 69 66 20 77 65 20 61 72 65 20 69 6e 73 69 64 65 20 74 68 65 20 62 6f 64 79 20 6f 66 20 74   ┆t if we are inside the body of t┆
0x098100…098120             68 65 20 66 75 6e 63 74 69 6f 6e 20 2a 29 0a 77 69 74 68 20 20 72 65 74 72 69 65 76 65 64 5f 6c   ┆he function *) with  retrieved_l┆
0x098120…098140             65 76 65 6c 5e 2e 6e 65 78 74 5f 6c 65 76 65 6c 5e 20 64 6f 20 20 28 2a 20 6c 65 76 65 6c 20 6f   ┆evel^.next_level^ do  (* level o┆
0x098140…098160             66 20 70 6f 73 73 69 62 6c 65 20 70 61 72 61 6d 6c 69 73 74 20 2a 29 0a 69 66 20 66 69 72 73 74   ┆f possible paramlist *) if first┆
0x098160…098180             6e 61 6d 65 20 28 2a 20 6f 66 20 6e 61 6d 65 73 74 61 63 6b 20 2a 29 20 3d 20 70 61 72 61 6d 73   ┆name (* of namestack *) = params┆
0x098180…0981a0             20 28 2a 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 2a 29 20 74 68 65 6e 0a 28 2a 20 65 78 63 68 61   ┆ (* of function *) then (* excha┆
0x0981a0…0981c0             6e 67 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 62 79 20 74 68 65 20 72 65 74   ┆nge the function name by the ret┆
0x0981c0…0981e0             75 72 6e 76 61 6c 75 65 20 6e 61 6d 65 20 2a 29 0a 62 65 67 69 6e 0a 63 75 72 6e 61 6d 65 3a 3d   ┆urnvalue name *) begin curname:=┆
0x0981e0…098200             20 70 61 72 61 6d 73 3b 20 20 28 2a 20 66 69 72 73 74 20 6f 66 20 70 61 72 61 6d 6c 69 73 74 20   ┆ params;  (* first of paramlist ┆
0x098200…098220 (40, 1, 3)  2a 29 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 66 75 6e 63 5f 61 73 73 69 67   ┆*) with  curname ^ do func_assig┆
0x098220…098240             6e 65 64 3a 3d 20 74 72 75 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 20 28 2a 20 62 65 66 6f 72 65   ┆ned:= true; end;  end; (* before┆
0x098240…098260             20 61 73 73 69 67 6e 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 62   ┆ assign *)  with  curname ^ do b┆
0x098260…098280             65 67 69 6e 0a 69 66 20 28 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3c 3e 6e 69 6c 5f   ┆egin if (cur_dyn_var_level<>nil_┆
0x098280…0982a0             6e 61 6d 65 73 74 61 63 6b 5f 70 74 72 20 28 2a 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 6f 6e   ┆namestack_ptr (* restrictions on┆
0x0982a0…0982c0             20 6c 65 67 61 6c 20 6c 65 76 65 6c 73 20 66 6f 72 20 64 79 6e 61 6d 69 63 20 6f 62 6a 65 63 74   ┆ legal levels for dynamic object┆
0x0982c0…0982e0             73 20 2a 29 29 0a 20 61 6e 64 20 28 72 65 74 72 69 65 76 65 64 5f 6c 65 76 65 6c 5e 2e 6c 65 76   ┆s *))  and (retrieved_level^.lev┆
0x0982e0…098300             65 6c 5f 6e 75 6d 62 65 72 3e 3d 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 5e 2e 6c 65   ┆el_number>=cur_dyn_var_level^.le┆
0x098300…098320             76 65 6c 5f 6e 75 6d 62 65 72 29 20 74 68 65 6e 0a 0a 62 65 67 69 6e 0a 69 66 20 28 6e 61 6d 65   ┆vel_number) then  begin if (name┆
0x098320…098340             6b 69 6e 64 20 3c 3e 20 63 63 6f 6e 73 74 61 6e 74 29 20 61 6e 64 20 28 6e 61 6d 65 6b 69 6e 64   ┆kind <> cconstant) and (namekind┆
0x098340…098360             20 3c 3e 20 63 73 63 61 6c 61 72 65 6c 65 6d 29 0a 61 6e 64 20 28 6e 61 6d 65 6b 69 6e 64 20 3c   ┆ <> cscalarelem) and (namekind <┆
0x098360…098380             3e 20 63 74 79 70 65 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20   ┆> ctype) then begin errorspix:= ┆
0x098380…0983a0             73 70 69 78 3b 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 2a 29 0a 65 72 72 6f 72 28 20 69 6c   ┆spix; (* of curname *) error( il┆
0x0983a0…0983c0             6c 65 67 61 6c 5f 73 63 6f 70 65 5f 6f 66 5f 74 79 70 65 5f 63 6f 6d 70 6f 6e 65 6e 74 20 29 3b   ┆legal_scope_of_type_component );┆
0x0983c0…0983e0             0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 63 6f 6e 73 74 61 6e 74 3b 20 28 2a 20 61 73 73 75 72 65   ┆ namekind:= cconstant; (* assure┆
0x0983e0…098400             20 63 61 6c 6c 20 6f 66 20 6e 65 77 6f 70 61 6e 64 2c 20 65 76 65 6e 20 69 66 20 6e 61 6d 65 6b   ┆ call of newopand, even if namek┆
0x098400…098420 (40, 1, 4)  69 6e 64 20 69 73 20 72 65 63 66 69 65 6c 64 20 2a 29 0a 65 6e 64 3b 20 28 2a 20 65 72 72 6f 72   ┆ind is recfield *) end; (* error┆
0x098420…098440             20 2a 29 0a 65 6e 64 0a 65 6c 73 65 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 72 65 63 66   ┆ *) end else if namekind = crecf┆
0x098440…098460             69 65 6c 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 74 68 65 72 65 20 68 61 73 20 62 65 65   ┆ield then begin (* there has bee┆
0x098460…098480             6e 20 61 20 70 72 65 76 69 6f 75 73 20 27 77 69 74 68 27 20 2a 29 0a 28 2a 20 73 69 6d 75 6c 61   ┆n a previous 'with' *) (* simula┆
0x098480…0984a0             74 65 3a 20 3c 77 69 74 68 6e 61 6d 65 3e 2e 3c 66 69 65 6c 64 6e 61 6d 65 3e 20 2a 29 0a 77 69   ┆te: <withname>.<fieldname> *) wi┆
0x0984a0…0984c0             74 68 20 72 65 74 72 69 65 76 65 64 5f 6c 65 76 65 6c 5e 20 64 6f 20 20 28 2a 20 2e 2e 2e 20 64   ┆th retrieved_level^ do  (* ... d┆
0x0984c0…0984e0             65 66 69 6e 65 64 20 62 79 3a 20 27 75 73 65 6e 61 6d 65 27 20 2a 29 0a 62 65 67 69 6e 0a 77 69   ┆efined by: 'usename' *) begin wi┆
0x0984e0…098500             74 68 20 20 77 69 74 68 6e 61 6d 65 20 5e 20 64 6f 0a 6e 65 77 6f 70 61 6e 64 20 28 63 69 64 2c   ┆th  withname ^ do newopand (cid,┆
0x098500…098520             20 74 79 70 65 6e 61 6d 65 20 28 2a 20 6f 66 20 77 69 74 68 6e 61 6d 65 20 2a 29 20 29 3b 0a 77   ┆ typename (* of withname *) ); w┆
0x098520…098540             69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 6f 70 5f 6e 61 6d 65 3a 3d 20 77 69 74   ┆ith  stacktop ^ do op_name:= wit┆
0x098540…098560             68 6e 61 6d 65 3b 0a 6f 70 65 72 20 28 75 6e 61 72 79 2c 20 63 66 69 65 6c 64 2c 20 74 79 70 65   ┆hname; oper (unary, cfield, type┆
0x098560…098580             6e 61 6d 65 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 28 20 3d 20 66 69 65 6c 64 6e 61 6d 65   ┆name (* of curname ( = fieldname┆
0x098580…0985a0             20 29 20 2a 29 20 29 3b 0a 0a 28 2a 20 69 6e 73 65 72 74 20 74 68 65 20 70 61 63 6b 66 6c 61 67   ┆ ) *) );  (* insert the packflag┆
0x0985a0…0985c0             20 66 72 6f 6d 20 74 68 65 20 72 65 63 6f 72 64 2d 74 79 70 65 20 6f 66 20 74 68 65 20 77 69 74   ┆ from the record-type of the wit┆
0x0985c0…0985e0             68 76 61 72 20 2a 29 0a 77 69 74 68 20 20 77 69 74 68 6e 61 6d 65 20 5e 20 64 6f 0a 77 69 74 68   ┆hvar *) with  withname ^ do with┆
0x0985e0…098600             20 20 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 20 20 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66   ┆  typename ^ do   (* namenode of┆
0x098600…098620 (40, 1, 5)  20 72 65 63 6f 72 64 2d 74 79 70 65 20 66 6f 72 20 77 69 74 68 76 61 72 20 2a 29 0a 77 69 74 68   ┆ record-type for withvar *) with┆
0x098620…098640             20 20 74 79 70 20 5e 20 64 6f 20 20 20 20 20 20 28 2a 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67   ┆  typ ^ do      (* corresponding┆
0x098640…098660             20 74 79 70 65 6e 6f 64 65 20 2a 29 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f   ┆ typenode *) with  stacktop ^ do┆
0x098660…098680             0a 6f 70 5f 70 61 63 6b 66 6c 61 67 3a 3d 20 70 61 63 6b 66 6c 61 67 3b 20 28 2a 20 66 72 6f 6d   ┆ op_packflag:= packflag; (* from┆
0x098680…0986a0             20 74 79 70 65 6e 6f 64 65 20 6f 66 20 77 69 74 68 76 61 72 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 65   ┆ typenode of withvar *)  end;  e┆
0x0986a0…0986c0             6e 64 3b 20 28 2a 20 69 66 20 72 65 63 66 69 65 6c 64 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e   ┆nd; (* if recfield *) if namekin┆
0x0986c0…0986e0             64 20 3c 3e 20 63 72 65 63 66 69 65 6c 64 20 74 68 65 6e 0a 6e 65 77 6f 70 61 6e 64 20 28 63 69   ┆d <> crecfield then newopand (ci┆
0x0986e0…098700             64 2c 20 74 79 70 65 6e 61 6d 65 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 2a 29 20 29 3b 0a   ┆d, typename (* of curname *) ); ┆
0x098700…098720             0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 2a 29 0a 0a 77 69 74   ┆ end; (* with  curname ^ *)  wit┆
0x098720…098740             68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 6f 70 5f 6e 61 6d 65 3a 3d 20 63 75 72 6e 61   ┆h  stacktop ^ do op_name:= curna┆
0x098740…098760             6d 65 3b 0a 0a 65 6e 64 3b 20 28 2a 20 63 69 64 20 2a 29 0a 0a 0a 0a 63 6c 69 74 65 72 61 6c 3a   ┆me;  end; (* cid *)    cliteral:┆
0x098760…098780             0a 62 65 67 69 6e 0a 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e   ┆ begin  cur_opandno:= cur_opandn┆
0x098780…0987a0             6f 20 2b 20 31 3b 0a 0a 72 65 63 74 79 70 65 3a 3d 20 70 61 73 73 77 6f 72 64 3b 20 20 28 2a 20   ┆o + 1;  rectype:= password;  (* ┆
0x0987a0…0987c0             67 65 74 20 74 79 70 65 20 6f 66 20 6c 69 74 65 72 61 6c 20 2a 29 0a 0a 6e 65 77 6f 70 61 6e 64   ┆get type of literal *)  newopand┆
0x0987c0…0987e0             20 28 63 6c 69 74 65 72 61 6c 2c 20 6e 69 6c 6e 61 6d 65 20 28 2a 20 74 79 70 65 6e 61 6d 65 20   ┆ (cliteral, nilname (* typename ┆
0x0987e0…098800             6e 6f 74 20 64 65 66 69 6e 65 64 20 79 65 74 20 2a 29 20 29 3b 0a 0a 77 69 74 68 20 20 73 74 61   ┆not defined yet *) );  with  sta┆
0x098800…098820 (40, 1, 6)  63 6b 74 6f 70 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 69   ┆cktop ^ do begin if rectype = ci┆
0x098820…098840             6e 74 65 67 65 72 20 74 68 65 6e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 69 6e 74 65 67 65   ┆nteger then op_typename:= intege┆
0x098840…098860             72 5f 74 79 70 65 6e 61 6d 65 0a 65 6c 73 65 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 72 65   ┆r_typename else if rectype = cre┆
0x098860…098880             61 6c 20 20 20 20 74 68 65 6e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 6e 69 6c 5f 74 79 70   ┆al    then op_typename:= nil_typ┆
0x098880…0988a0             65 6e 61 6d 65 0a 65 6c 73 65 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 74 65 78 74 20 20 20   ┆ename else if rectype = ctext   ┆
0x0988a0…0988c0             20 74 68 65 6e 20 6f 70 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 74 65 78 74 5f 74 79 70 65 6e 61 6d   ┆ then op_typename:= text_typenam┆
0x0988c0…0988e0             65 0a 65 6c 73 65 0a 69 66 20 63 6f 6d 70 69 6c 65 72 74 65 73 74 20 74 68 65 6e 0a 63 6f 6d 70   ┆e else if compilertest then comp┆
0x0988e0…098900             5f 65 72 72 6f 72 20 28 75 6e 6b 6e 6f 77 6e 5f 72 65 63 74 79 70 65 29 3b 0a 0a 6f 70 5f 76 61   ┆_error (unknown_rectype);  op_va┆
0x098900…098920             6c 75 65 3a 3d 20 72 65 61 64 73 74 72 69 6e 67 3b 0a 28 2a 20 6d 69 64 6c 65 72 74 69 64 69 67   ┆lue:= readstring; (* midlertidig┆
0x098920…098940             20 73 69 6d 70 6c 69 66 69 6b 61 74 69 6f 6e 2c 20 66 6f 72 20 61 74 20 6b 75 6e 6e 65 20 6f 70   ┆ simplifikation, for at kunne op┆
0x098940…098960             66 61 74 74 65 20 6c 69 74 65 72 61 6c 2d 63 68 61 72 73 20 2a 29 0a 69 66 20 72 65 63 74 79 70   ┆fatte literal-chars *) if rectyp┆
0x098960…098980             65 20 3d 20 63 74 65 78 74 20 74 68 65 6e 0a 77 69 74 68 20 20 6f 70 5f 76 61 6c 75 65 20 5e 20   ┆e = ctext then with  op_value ^ ┆
0x098980…0989a0             64 6f 0a 69 66 20 73 74 72 69 6e 67 6c 67 74 20 3d 20 31 20 74 68 65 6e 0a 6f 70 5f 74 79 70 65   ┆do if stringlgt = 1 then op_type┆
0x0989a0…0989c0             6e 61 6d 65 3a 3d 20 63 68 61 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b   ┆name:= char_typename; end;  end;┆
0x0989c0…0989e0             20 28 2a 20 6c 69 74 65 72 61 6c 20 2a 29 0a 0a 0a 0a 63 76 61 72 73 69 7a 65 63 61 6c 6c 2c 0a   ┆ (* literal *)    cvarsizecall, ┆
0x0989e0…098a00             63 74 79 70 65 73 69 7a 65 63 61 6c 6c 3a 0a 62 65 67 69 6e 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f   ┆ctypesizecall: begin cur_opandno┆
0x098a00…098a20 (40, 1, 7)  3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f 2b 31 3b 0a 63 75 72 6e 61 6d 65 3a 3d 20 75 73 65 6e   ┆:= cur_opandno+1; curname:= usen┆
0x098a20…098a40             61 6d 65 28 70 61 73 73 69 6e 20 28 2a 20 73 70 69 78 20 2a 29 29 3b 0a 77 69 74 68 20 63 75 72   ┆ame(passin (* spix *)); with cur┆
0x098a40…098a60             6e 61 6d 65 5e 20 64 6f 0a 69 66 20 72 65 63 74 79 70 65 3d 63 76 61 72 73 69 7a 65 63 61 6c 6c   ┆name^ do if rectype=cvarsizecall┆
0x098a60…098a80             20 74 68 65 6e 0a 69 66 20 28 6e 61 6d 65 6b 69 6e 64 3c 3e 63 76 61 72 29 20 61 6e 64 20 28 6e   ┆ then if (namekind<>cvar) and (n┆
0x098a80…098aa0             61 6d 65 6b 69 6e 64 3c 3e 63 72 65 63 66 69 65 6c 64 29 20 74 68 65 6e 0a 65 72 72 6f 72 28 6e   ┆amekind<>crecfield) then error(n┆
0x098aa0…098ac0             6f 74 5f 76 61 72 6e 61 6d 65 29 0a 65 6c 73 65 0a 28 2a 20 63 68 61 6e 67 65 20 63 61 6c 6c 20   ┆ot_varname) else (* change call ┆
0x098ac0…098ae0             74 6f 20 74 79 70 65 73 69 7a 65 63 61 6c 6c 20 2a 29 0a 63 75 72 6e 61 6d 65 3a 3d 20 74 79 70   ┆to typesizecall *) curname:= typ┆
0x098ae0…098b00             65 6e 61 6d 65 0a 65 6c 73 65 20 28 2a 20 74 79 70 65 73 69 7a 65 63 61 6c 6c 20 2a 29 0a 69 66   ┆ename else (* typesizecall *) if┆
0x098b00…098b20             20 6e 61 6d 65 6b 69 6e 64 3c 3e 63 74 79 70 65 20 74 68 65 6e 0a 65 72 72 6f 72 28 6e 6f 74 5f   ┆ namekind<>ctype then error(not_┆
0x098b20…098b40             74 79 70 65 6e 61 6d 65 29 3b 0a 0a 6e 65 77 6f 70 61 6e 64 28 63 74 79 70 65 73 69 7a 65 63 61   ┆typename);  newopand(ctypesizeca┆
0x098b40…098b60             6c 6c 2c 20 69 6e 74 65 67 65 72 5f 74 79 70 65 6e 61 6d 65 20 28 2a 20 72 65 73 75 6c 74 20 74   ┆ll, integer_typename (* result t┆
0x098b60…098b80             79 70 65 20 2a 29 29 3b 0a 73 74 61 63 6b 74 6f 70 5e 2e 6f 70 5f 6e 61 6d 65 3a 3d 20 63 75 72   ┆ype *)); stacktop^.op_name:= cur┆
0x098b80…098ba0             6e 61 6d 65 3b 0a 65 6e 64 3b 20 28 2a 20 76 61 72 73 69 7a 65 63 61 6c 6c 2f 74 79 70 65 73 69   ┆name; end; (* varsizecall/typesi┆
0x098ba0…098bc0             7a 65 63 61 6c 6c 20 2a 29 0a 0a 63 73 6b 69 70 70 61 72 61 6d 3a 0a 62 65 67 69 6e 0a 63 75 72   ┆zecall *)  cskipparam: begin cur┆
0x098bc0…098be0             5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f 20 2b 20 31 3b 0a 6e 65 77 6f   ┆_opandno:= cur_opandno + 1; newo┆
0x098be0…098c00             70 61 6e 64 20 28 63 73 6b 69 70 70 61 72 61 6d 2c 20 6e 69 6c 6e 61 6d 65 20 28 2a 20 69 72 72   ┆pand (cskipparam, nilname (* irr┆
0x098c00…098c20 (40, 1, 8)  65 6c 6c 20 74 79 70 65 6e 61 6d 65 20 2a 29 20 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 28 2a 20 70 69   ┆ell typename *) ); end;    (* pi┆
0x098c20…098c40             63 6b 75 70 20 6f 66 20 73 65 74 73 20 2a 29 0a 63 73 65 74 6c 69 73 74 2c 0a 63 73 5f 65 6c 65   ┆ckup of sets *) csetlist, cs_ele┆
0x098c40…098c60             6d 65 6e 74 2c 0a 63 6d 5f 65 6c 65 6d 65 6e 74 2c 0a 63 65 6e 64 73 65 74 6c 69 73 74 3a 0a 73   ┆ment, cm_element, cendsetlist: s┆
0x098c60…098c80             65 74 5f 70 72 6f 63 65 64 75 72 65 3b 0a 0a 0a 0a 63 66 69 65 6c 64 3a 0a 62 65 67 69 6e 0a 28   ┆et_procedure;    cfield: begin (┆
0x098c80…098ca0             2a 20 73 74 61 63 6b 74 6f 70 20 63 6f 6e 74 61 69 6e 73 20 70 72 65 76 69 6f 75 73 20 27 76 61   ┆* stacktop contains previous 'va┆
0x098ca0…098cc0             72 69 61 62 6c 65 27 20 2a 29 0a 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70   ┆riable' *)  cur_opandno:= cur_op┆
0x098cc0…098ce0             61 6e 64 6e 6f 20 2b 20 31 3b 0a 0a 6e 65 77 73 70 69 78 3a 3d 20 70 61 73 73 69 6e 3b 0a 0a 28   ┆andno + 1;  newspix:= passin;  (┆
0x098ce0…098d00             2a 20 69 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 27 76 61 72 69 61 62 6c 65 27 20 69 73 20   ┆* if the previous 'variable' is ┆
0x098d00…098d20             70 61 72 61 6d 65 74 65 72 6c 65 73 73 20 66 75 6e 63 74 69 6f 6e 63 61 6c 6c 2c 20 74 68 65 6e   ┆parameterless functioncall, then┆
0x098d20…098d40             2e 2e 2e 20 2a 29 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 69 66 20 6f 70   ┆... *) with  stacktop ^ do if op┆
0x098d40…098d60             63 6f 64 65 20 3d 20 63 69 64 20 74 68 65 6e 0a 77 69 74 68 20 20 6f 70 5f 6e 61 6d 65 20 5e 20   ┆code = cid then with  op_name ^ ┆
0x098d60…098d80             64 6f 20 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 28 70 6f 73 73 69 62 6c 65 29 20 66 75   ┆do  (* namenode of (possible) fu┆
0x098d80…098da0             6e 63 74 69 6f 6e 20 6e 61 6d 65 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 66 75   ┆nction name *) if namekind = cfu┆
0x098da0…098dc0             6e 63 74 69 6f 6e 20 74 68 65 6e 0a 62 65 67 69 6e 0a 70 75 73 68 63 61 6c 6c 3b 0a 70 72 65 70   ┆nction then begin pushcall; prep┆
0x098dc0…098de0             61 72 65 5f 63 61 6c 6c 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 74 65 72 6d 69 6e 61 74 65 5f 63   ┆are_call (stacktop); terminate_c┆
0x098de0…098e00             61 6c 6c 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6e 64 3b 0a 0a 72 65 73 6f 6c 76 65 74 79 70   ┆all (stacktop); end;  resolvetyp┆
0x098e00…098e20 (40, 1, 9)  65 20 28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65   ┆e (stacktop, exprtypename, expre┆
0x098e20…098e40             6c 65 6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 0a 77 69 74 68 20 20 65 78   ┆lement, exprbasekind);  with  ex┆
0x098e40…098e60             70 72 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 20 20 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66   ┆prtypename ^ do   (* namenode of┆
0x098e60…098e80             20 3c 76 61 72 69 61 62 6c 65 3e 20 74 79 70 65 20 2a 29 0a 77 69 74 68 20 20 74 79 70 20 5e 20   ┆ <variable> type *) with  typ ^ ┆
0x098e80…098ea0             64 6f 20 20 20 20 20 20 20 20 20 20 28 2a 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 79 70   ┆do          (* corresponding typ┆
0x098ea0…098ec0             65 6e 6f 64 65 20 2a 29 0a 28 2a 20 6e 6f 74 65 3a 20 69 6e 20 63 61 73 65 20 6f 66 20 61 6c 69   ┆enode *) (* note: in case of ali┆
0x098ec0…098ee0             61 73 2d 74 79 70 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 20 61 6e 64 20 65 78 70 72 62 61 73   ┆as-type, exprelement and exprbas┆
0x098ee0…098f00             65 6b 69 6e 64 20 61 72 65 20 74 68 65 20 62 65 73 74 20 6f 6e 65 73 20 2a 29 0a 69 66 20 65 78   ┆ekind are the best ones *) if ex┆
0x098f00…098f20             70 72 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 72 65 63 6f 72 64 20 74 68 65 6e 0a 73 75 70 70 72   ┆prbasekind <> crecord then suppr┆
0x098f20…098f40             65 73 73 5f 65 72 72 6f 72 20 28 65 78 70 72 62 61 73 65 6b 69 6e 64 2c 20 66 69 65 6c 64 5f 6d   ┆ess_error (exprbasekind, field_m┆
0x098f40…098f60             75 73 74 5f 66 6f 6c 6c 6f 77 5f 72 65 63 6f 72 64 74 79 70 65 29 0a 65 6c 73 65 0a 62 65 67 69   ┆ust_follow_recordtype) else begi┆
0x098f60…098f80             6e 0a 28 2a 20 66 69 6e 64 20 74 68 65 20 73 70 69 78 20 61 6d 6f 6e 67 20 74 68 65 20 66 69 65   ┆n (* find the spix among the fie┆
0x098f80…098fa0             6c 64 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 72 65 63 6f 72 64 20 2a 29 0a 63 75 72 6e 61 6d 65   ┆ldnames of the record *) curname┆
0x098fa0…098fc0             3a 3d 20 65 78 70 72 65 6c 65 6d 65 6e 74 3b 20 20 28 2a 20 66 69 72 73 74 20 6f 66 20 66 69 65   ┆:= exprelement;  (* first of fie┆
0x098fc0…098fe0             6c 64 20 6e 61 6d 65 20 6c 69 73 74 20 2a 29 0a 77 68 69 6c 65 20 28 6e 65 77 73 70 69 78 20 3c   ┆ld name list *) while (newspix <┆
0x098fe0…099000             3e 20 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 20 28 2a 20 69 2e 65 2e 20 6e 6f 74 20 66 6f 75   ┆> anonymous_spix (* i.e. not fou┆
0x099000…099020 (40, 1, 10) 6e 64 20 79 65 74 20 2a 29 20 29 0a 61 6e 64 20 28 63 75 72 6e 61 6d 65 20 3c 3e 20 6e 69 6c 6e   ┆nd yet *) ) and (curname <> niln┆
0x099020…099040             61 6d 65 20 28 2a 20 69 2e 65 2e 20 6d 6f 72 65 20 6e 61 6d 65 73 20 74 6f 20 63 6f 6d 70 61 72   ┆ame (* i.e. more names to compar┆
0x099040…099060             65 20 74 6f 20 2a 29 20 29 20 64 6f 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a   ┆e to *) ) do with  curname ^ do ┆
0x099060…099080             69 66 20 6e 65 77 73 70 69 78 20 3d 20 73 70 69 78 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20   ┆if newspix = spix (* of curname ┆
0x099080…0990a0             2a 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6f 70 65 72 20 28 75 6e 61 72 79 2c 20 63 66 69 65 6c   ┆*) then begin oper (unary, cfiel┆
0x0990a0…0990c0             64 2c 20 74 79 70 65 6e 61 6d 65 20 28 2a 20 6f 66 20 66 69 65 6c 64 6e 61 6d 65 20 2a 29 20 29   ┆d, typename (* of fieldname *) )┆
0x0990c0…0990e0             3b 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 6f 70 5f 6e   ┆; with  stacktop ^ do begin op_n┆
0x0990e0…099100             61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 6f 70 5f 70 61 63 6b 66 6c 61 67 3a 3d 20 70 61 63   ┆ame:= curname; op_packflag:= pac┆
0x099100…099120             6b 66 6c 61 67 3b 20 28 2a 20 66 72 6f 6d 20 72 65 63 6f 72 64 20 74 79 70 65 6e 6f 64 65 20 2a   ┆kflag; (* from record typenode *┆
0x099120…099140             29 0a 65 6e 64 3b 0a 6e 65 77 73 70 69 78 3a 3d 20 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 3b   ┆) end; newspix:= anonymous_spix;┆
0x099140…099160             20 28 2a 20 69 6e 64 69 63 61 74 65 20 73 75 63 63 65 73 20 2a 29 0a 65 6e 64 20 0a 65 6c 73 65   ┆ (* indicate succes *) end  else┆
0x099160…099180             0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 20 28 2a 20 66 6f 6c 6c 6f 77 20 63   ┆ curname:= nextname; (* follow c┆
0x099180…0991a0             68 61 69 6e 2c 20 61 6e 64 20 74 65 73 74 20 6e 65 78 74 20 6e 61 6d 65 20 69 6e 20 6c 69 73 74   ┆hain, and test next name in list┆
0x0991a0…0991c0             20 2a 29 0a 0a 69 66 20 63 75 72 6e 61 6d 65 20 3d 20 6e 69 6c 6e 61 6d 65 20 74 68 65 6e 0a 65   ┆ *)  if curname = nilname then e┆
0x0991c0…0991e0             72 72 6f 72 20 28 6e 61 6d 65 5f 6e 6f 74 5f 66 69 65 6c 64 6e 61 6d 65 29 3b 0a 0a 65 6e 64 3b   ┆rror (name_not_fieldname);  end;┆
0x0991e0…099200             20 28 2a 20 77 69 74 68 20 6e 61 6d 65 73 2c 20 74 79 70 65 73 20 65 74 63 20 6f 66 20 73 74 61   ┆ (* with names, types etc of sta┆
0x099200…099220 (40, 1, 11) 63 6b 74 6f 70 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 63 66 69 65 6c 64 20 2a 29 0a 0a 0a 0a 63   ┆cktop *)  end; (* cfield *)    c┆
0x099220…099240             75 70 61 72 72 6f 77 3a 0a 62 65 67 69 6e 0a 28 2a 20 73 74 61 63 6b 74 6f 70 20 69 73 20 3c 76   ┆uparrow: begin (* stacktop is <v┆
0x099240…099260             61 72 69 61 62 6c 65 3e 2c 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 70 6f 69 6e 74 65 72 74   ┆ariable>, which must be pointert┆
0x099260…099280             79 70 65 20 2a 29 0a 28 2a 20 69 66 20 74 68 65 20 70 72 65 76 69 6f 73 20 27 76 61 72 69 61 62   ┆ype *) (* if the previos 'variab┆
0x099280…0992a0             6c 65 27 20 69 73 20 70 61 72 61 6d 65 74 65 72 6c 65 73 73 20 66 75 6e 63 74 69 6f 6e 63 61 6c   ┆le' is parameterless functioncal┆
0x0992a0…0992c0             6c 2c 20 74 68 65 6e 20 2e 2e 2e 20 2a 29 0a 77 69 74 68 20 73 74 61 63 6b 74 6f 70 5e 20 64 6f   ┆l, then ... *) with stacktop^ do┆
0x0992c0…0992e0             0a 69 66 20 6f 70 63 6f 64 65 3d 63 69 64 20 74 68 65 6e 0a 77 69 74 68 20 6f 70 5f 6e 61 6d 65   ┆ if opcode=cid then with op_name┆
0x0992e0…099300             20 5e 20 64 6f 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20 6f 66 20 28 70 6f 73 73 69 62 6c 65 20 66   ┆ ^ do (* namenode of (possible f┆
0x099300…099320             75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 2a 29 0a 69 66 20 6e 61 6d 65 6b 69 6e 64 3d 63 66 75 6e   ┆unction name *) if namekind=cfun┆
0x099320…099340             63 74 69 6f 6e 20 74 68 65 6e 0a 62 65 67 69 6e 0a 70 75 73 68 63 61 6c 6c 3b 0a 70 72 65 70 61   ┆ction then begin pushcall; prepa┆
0x099340…099360             72 65 5f 63 61 6c 6c 28 73 74 61 63 6b 74 6f 70 29 3b 0a 74 65 72 6d 69 6e 61 74 65 5f 63 61 6c   ┆re_call(stacktop); terminate_cal┆
0x099360…099380             6c 28 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6e 64 3b 0a 0a 0a 72 65 73 6f 6c 76 65 74 79 70 65 20   ┆l(stacktop); end;   resolvetype ┆
0x099380…0993a0             28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65   ┆(stacktop, exprtypename, exprele┆
0x0993a0…0993c0             6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 65 78 70 72 62 61 73 65   ┆ment, exprbasekind); if exprbase┆
0x0993c0…0993e0             6b 69 6e 64 20 3c 3e 20 63 70 6f 69 6e 74 65 72 20 74 68 65 6e 0a 73 75 70 70 72 65 73 73 5f 65   ┆kind <> cpointer then suppress_e┆
0x0993e0…099400             72 72 6f 72 20 28 65 78 70 72 62 61 73 65 6b 69 6e 64 2c 20 6d 75 73 74 5f 62 65 5f 70 6f 69 6e   ┆rror (exprbasekind, must_be_poin┆
0x099400…099420 (40, 1, 12) 74 65 72 74 79 70 65 5f 62 65 66 6f 72 65 5f 75 70 61 72 72 6f 77 29 0a 65 6c 73 65 0a 6f 70 65   ┆tertype_before_uparrow) else ope┆
0x099420…099440             72 20 28 75 6e 61 72 79 2c 20 63 75 70 61 72 72 6f 77 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 20   ┆r (unary, cuparrow, exprelement ┆
0x099440…099460             28 2a 20 66 6f 6c 6c 6f 77 20 70 6f 69 6e 74 65 72 2d 74 79 70 65 20 2a 29 20 29 3b 0a 20 73 74   ┆(* follow pointer-type *) );  st┆
0x099460…099480             61 63 6b 74 6f 70 20 5e 20 2e 20 6f 70 5f 70 61 63 6b 66 6c 61 67 3a 3d 20 66 61 6c 73 65 3b 20   ┆acktop ^ . op_packflag:= false; ┆
0x099480…0994a0             28 2a 20 70 6f 69 6e 74 65 64 20 76 61 72 69 61 62 6c 65 20 6e 6f 74 20 70 61 63 6b 65 64 20 2a   ┆(* pointed variable not packed *┆
0x0994a0…0994c0             29 0a 0a 65 6e 64 3b 20 28 2a 20 63 70 6f 69 6e 74 65 72 20 2a 29 0a 0a 0a 0a 63 65 71 2c 0a 63   ┆)  end; (* cpointer *)    ceq, c┆
0x0994c0…0994e0             6e 65 2c 0a 63 6c 74 2c 0a 63 6c 65 2c 0a 63 67 74 2c 0a 63 67 65 3a 0a 72 65 6c 61 74 69 6f 6e   ┆ne, clt, cle, cgt, cge: relation┆
0x0994e0…099500             20 28 72 65 63 74 79 70 65 29 3b 0a 0a 0a 0a 63 61 6e 64 2c 0a 63 6f 72 2c 0a 63 78 6f 72 2c 0a   ┆ (rectype);    cand, cor, cxor, ┆
0x099500…099520             63 70 6c 75 73 2c 0a 63 6d 69 6e 75 73 2c 0a 63 73 74 61 72 2c 0a 63 73 68 69 66 74 2c 0a 63 73   ┆cplus, cminus, cstar, cshift, cs┆
0x099520…099540             6c 61 73 68 3a 0a 61 72 69 74 68 6f 70 20 28 72 65 63 74 79 70 65 29 3b 0a 0a 0a 0a 63 65 6e 64   ┆lash: arithop (rectype);    cend┆
0x099540…099560             65 78 70 72 65 73 73 69 6f 6e 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 0a 0a 63 62 65   ┆expression: ; (* blind *)    cbe┆
0x099560…099580             67 69 6e 61 63 74 75 61 6c 3a 0a 62 65 67 69 6e 61 63 74 75 61 6c 3b 0a 0a 0a 0a 63 61 63 74 75   ┆ginactual: beginactual;    cactu┆
0x099580…0995a0             61 6c 70 61 72 61 6d 2c 0a 63 64 6f 75 62 6c 65 70 61 72 61 6d 3a 0a 61 63 74 5f 70 61 72 61 6d   ┆alparam, cdoubleparam: act_param┆
0x0995a0…0995c0             3b 0a 0a 0a 0a 63 65 6e 64 73 74 72 75 63 2c 0a 63 65 6e 64 61 63 74 75 61 6c 3a 0a 74 65 72 6d   ┆;    cendstruc, cendactual: term┆
0x0995c0…0995e0             69 6e 61 74 65 5f 63 61 6c 6c 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 0a 0a 63 62 65 67 69 6e   ┆inate_call (stacktop);    cbegin┆
0x0995e0…099600             73 74 72 75 63 3a 0a 62 65 67 69 6e 20 28 2a 20 61 64 64 20 61 20 74 79 70 65 20 6e 61 6d 65 20   ┆struc: begin (* add a type name ┆
0x099600…099620 (40, 1, 13) 75 6e 6c 65 73 73 20 65 78 70 6c 69 63 69 74 20 73 74 61 74 65 64 20 69 6e 20 66 72 6f 6e 74 20   ┆unless explicit stated in front ┆
0x099620…099640             6f 66 20 28 3a 2c 20 61 6e 64 0a 70 72 6f 63 65 65 64 20 61 73 20 62 65 67 69 6e 61 63 74 75 61   ┆of (:, and proceed as beginactua┆
0x099640…099660             6c 20 2a 29 0a 77 69 74 68 20 73 74 61 63 6b 74 6f 70 5e 20 64 6f 0a 69 66 20 28 6f 70 63 6f 64   ┆l *) with stacktop^ do if (opcod┆
0x099660…099680             65 3c 3e 63 69 64 29 20 6f 72 20 28 6f 70 5f 6e 61 6d 65 5e 2e 6e 61 6d 65 6b 69 6e 64 3c 3e 63   ┆e<>cid) or (op_name^.namekind<>c┆
0x099680…0996a0             74 79 70 65 29 20 74 68 65 6e 0a 28 2a 20 28 3a 20 77 69 74 68 6f 75 74 20 6c 65 61 64 69 6e 67   ┆type) then (* (: without leading┆
0x0996a0…0996c0             20 74 79 70 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2c 20 61 73 73 75 6d 65 20 63 75 72 5f   ┆ type specification, assume cur_┆
0x0996c0…0996e0             74 79 70 65 6e 61 6d 65 20 69 66 20 6f 75 74 65 72 6d 6f 73 74 0a 62 65 67 69 6e 73 74 72 75 63   ┆typename if outermost beginstruc┆
0x0996e0…099700             20 6f 74 68 65 72 77 69 73 65 20 75 73 65 20 74 68 65 20 22 66 6f 72 6d 61 6c 22 20 74 79 70 65   ┆ otherwise use the "formal" type┆
0x099700…099720             20 28 74 68 65 20 73 74 72 75 63 74 75 72 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61 73 20 69 66   ┆ (the structure is handled as if┆
0x099720…099740             0a 69 74 20 77 65 72 65 20 61 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 29 20 2a 29 0a 62 65   ┆ it were a parameter list) *) be┆
0x099740…099760             67 69 6e 0a 69 66 20 61 72 67 6b 69 6e 64 3d 63 6e 6f 63 6f 64 65 20 28 2a 20 6f 75 74 65 72 6d   ┆gin if argkind=cnocode (* outerm┆
0x099760…099780             6f 73 74 20 62 65 67 69 6e 73 74 72 75 63 20 2a 29 20 74 68 65 6e 0a 63 75 72 6e 61 6d 65 3a 3d   ┆ost beginstruc *) then curname:=┆
0x099780…0997a0             20 63 75 72 5f 74 79 70 65 6e 61 6d 65 0a 65 6c 73 65 0a 69 66 20 61 72 67 6b 69 6e 64 3d 63 73   ┆ cur_typename else if argkind=cs┆
0x0997a0…0997c0             74 72 75 63 72 65 63 6f 72 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 68 69 6c 65 20 28 63 75 72   ┆trucrecord then begin while (cur┆
0x0997c0…0997e0             66 6f 72 6d 61 6c 5e 2e 6e 61 6d 65 6b 69 6e 64 3c 3e 63 72 65 63 66 69 65 6c 64 29 20 61 6e 64   ┆formal^.namekind<>crecfield) and┆
0x0997e0…099800             20 28 63 75 72 66 6f 72 6d 61 6c 3c 3e 6e 69 6c 6e 61 6d 65 29 20 64 6f 0a 28 2a 20 62 79 70 61   ┆ (curformal<>nilname) do (* bypa┆
0x099800…099820 (40, 1, 14) 73 73 20 61 6e 6f 6e 79 6d 6f 75 73 20 74 79 70 65 73 20 69 6e 20 74 68 65 20 66 69 65 6c 64 20   ┆ss anonymous types in the field ┆
0x099820…099840             6c 69 73 74 20 2a 29 0a 63 75 72 66 6f 72 6d 61 6c 3a 3d 20 63 75 72 66 6f 72 6d 61 6c 5e 2e 6e   ┆list *) curformal:= curformal^.n┆
0x099840…099860             65 78 74 6e 61 6d 65 3b 0a 63 75 72 6e 61 6d 65 3a 3d 20 63 75 72 66 6f 72 6d 61 6c 5e 20 28 2a   ┆extname; curname:= curformal^ (*┆
0x099860…099880             20 66 69 65 6c 64 20 6e 61 6d 65 20 2a 29 20 2e 20 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 0a 65   ┆ field name *) . typename; end e┆
0x099880…0998a0             6c 73 65 0a 63 75 72 6e 61 6d 65 3a 3d 20 63 75 72 66 6f 72 6d 61 6c 3b 20 28 2a 20 61 72 72 61   ┆lse curname:= curformal; (* arra┆
0x0998a0…0998c0             79 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 20 2a 29 0a 0a 6e 65 77 6f 70 61 6e 64 28 63 74 79 70   ┆y element type *)  newopand(ctyp┆
0x0998c0…0998e0             65 69 64 2c 20 63 75 72 6e 61 6d 65 5e 2e 74 79 70 65 6e 61 6d 65 29 3b 0a 73 74 61 63 6b 74 6f   ┆eid, curname^.typename); stackto┆
0x0998e0…099900             70 5e 2e 6f 70 5f 6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 65 6e 64 3b 20 28 2a 20 73 69   ┆p^.op_name:= curname; end; (* si┆
0x099900…099920             6d 75 6c 61 74 65 20 69 64 28 73 70 69 78 29 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 28 3a 20 20   ┆mulate id(spix) in front of (:  ┆
0x099920…099940             2a 29 0a 0a 62 65 67 69 6e 61 63 74 75 61 6c 3b 0a 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74   ┆*)  beginactual; var_initializat┆
0x099940…099960             69 6f 6e 20 3a 3d 20 74 72 75 65 3b 0a 65 6e 64 3b 20 28 2a 20 62 65 67 69 6e 73 74 72 75 63 20   ┆ion := true; end; (* beginstruc ┆
0x099960…099980             2a 29 0a 0a 0a 63 65 6e 64 76 61 72 69 61 62 6c 65 3a 0a 74 65 72 6d 69 6e 61 74 65 5f 66 75 6e   ┆*)   cendvariable: terminate_fun┆
0x099980…0999a0             63 63 61 6c 6c 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 0a 0a 63 63 61 6c 6c 70 72 6f 63 65 64   ┆ccall (stacktop);    ccallproced┆
0x0999a0…0999c0             75 72 65 3a 0a 62 65 67 69 6e 0a 74 65 72 6d 69 6e 61 74 65 5f 66 75 6e 63 63 61 6c 6c 20 28 73   ┆ure: begin terminate_funccall (s┆
0x0999c0…0999e0             74 61 63 6b 74 6f 70 29 3b 20 20 28 2a 20 74 65 72 6d 69 6e 61 74 65 20 61 6e 79 20 65 72 72 6f   ┆tacktop);  (* terminate any erro┆
0x0999e0…099a00             6e 65 6f 75 73 20 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 2a 29 0a 6d 61 6b 65 5f 63 61 6c 6c   ┆neous function-call *) make_call┆
0x099a00…099a20 (40, 1, 15) 20 28 73 74 61 63 6b 74 6f 70 29 3b 20 28 2a 20 6d 61 6b 65 20 73 75 72 65 20 65 76 65 6e 20 61   ┆ (stacktop); (* make sure even a┆
0x099a20…099a40             20 70 61 72 61 6d 65 74 65 72 2d 6c 65 73 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 63 61 6c   ┆ parameter-less procedure is cal┆
0x099a40…099a60             6c 65 64 20 2a 29 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 74 68 65 20 73 74 61 63 6b 74 6f 70   ┆led *) (* test that the stacktop┆
0x099a60…099a80             20 69 64 65 6e 74 69 66 69 65 73 20 61 20 70 72 6f 63 65 64 75 72 65 20 63 61 6c 6c 20 2a 29 0a   ┆ identifies a procedure call *) ┆
0x099a80…099aa0             77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 69 66 20 6f 70 63 6f 64 65 20 3c 3e   ┆with  stacktop ^ do if opcode <>┆
0x099aa0…099ac0             20 63 65 6e 64 70 72 6f 63 20 74 68 65 6e 0a 65 72 72 6f 72 20 28 6e 6f 74 5f 70 72 6f 63 65 64   ┆ cendproc then error (not_proced┆
0x099ac0…099ae0             75 72 65 5f 63 61 6c 6c 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61   ┆ure_call); emit_and_release (sta┆
0x099ae0…099b00             63 6b 74 6f 70 29 3b 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 65 6e 64 3b 0a   ┆cktop); prepare_statement; end; ┆
0x099b00…099b20             0a 0a 0a 63 75 70 6c 75 73 2c 0a 63 75 6d 69 6e 75 73 3a 0a 62 65 67 69 6e 0a 72 65 73 6f 6c 76   ┆   cuplus, cuminus: begin resolv┆
0x099b20…099b40             65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65   ┆etype (stacktop, exprtypename, e┆
0x099b40…099b60             78 70 72 65 6c 65 6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 28 2a 20 65 78   ┆xprelement, exprbasekind); (* ex┆
0x099b60…099b80             70 72 65 73 73 69 6f 6e 20 6d 75 73 74 20 62 65 20 6f 66 20 69 6e 74 65 67 65 72 20 6f 72 20 72   ┆pression must be of integer or r┆
0x099b80…099ba0             65 61 6c 20 74 79 70 65 73 20 2a 29 0a 69 66 20 28 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3d 20   ┆eal types *) if (exprbasekind = ┆
0x099ba0…099bc0             63 69 6e 74 65 67 65 72 29 20 6f 72 20 28 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3d 20 63 72 65   ┆cinteger) or (exprbasekind = cre┆
0x099bc0…099be0             61 6c 29 20 74 68 65 6e 0a 6f 70 65 72 20 28 75 6e 61 72 79 2c 20 72 65 63 74 79 70 65 2c 20 65   ┆al) then oper (unary, rectype, e┆
0x099be0…099c00             78 70 72 74 79 70 65 6e 61 6d 65 29 0a 65 6c 73 65 0a 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72   ┆xprtypename) else suppress_error┆
0x099c00…099c20 (41, 0, 1)  20 28 65 78 70 72 62 61 73 65 6b 69 6e 64 2c 20 6d 6f 6e 61 64 69 63 5f 65 72 72 6f 72 29 3b 0a   ┆ (exprbasekind, monadic_error); ┆
0x099c20…099c40             65 6e 64 3b 0a 0a 0a 0a 63 64 69 76 2c 0a 63 6d 6f 64 3a 0a 62 65 67 69 6e 0a 28 2a 20 62 6f 74   ┆end;    cdiv, cmod: begin (* bot┆
0x099c40…099c60             68 20 6f 70 65 72 61 6e 64 73 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 73 20 2a 29 0a 65   ┆h operands must be integers *) e┆
0x099c60…099c80             71 75 61 6c 74 79 70 65 73 20 28 6e 65 78 74 74 6f 70 2c 20 73 74 61 63 6b 74 6f 70 2c 20 69 6e   ┆qualtypes (nexttop, stacktop, in┆
0x099c80…099ca0             74 65 67 65 72 5f 74 79 70 65 6e 61 6d 65 2c 20 61 72 69 74 68 6d 65 74 69 63 5f 65 72 72 6f 72   ┆teger_typename, arithmetic_error┆
0x099ca0…099cc0             29 3b 0a 6f 70 65 72 20 28 62 69 6e 61 72 79 2c 20 72 65 63 74 79 70 65 2c 20 69 6e 74 65 67 65   ┆); oper (binary, rectype, intege┆
0x099cc0…099ce0             72 5f 74 79 70 65 6e 61 6d 65 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 6e 6f 74 3a 0a 62 65 67 69 6e   ┆r_typename); end;    cnot: begin┆
0x099ce0…099d00             0a 28 2a 20 73 74 61 63 6b 74 6f 70 20 6d 75 73 74 20 62 65 20 6f 66 20 62 6f 6f 6c 65 61 6e 20   ┆ (* stacktop must be of boolean ┆
0x099d00…099d20             6f 72 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28   ┆or integer type *) resolvetype (┆
0x099d20…099d40             73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d   ┆stacktop, exprtypename, exprelem┆
0x099d40…099d60             65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 0a 69 66 20 28 74 61 72 67 65 74 5f   ┆ent, exprbasekind);  if (target_┆
0x099d60…099d80             6d 61 63 68 69 6e 65 20 3d 20 74 61 72 67 65 74 7a 38 30 29 20 61 6e 64 20 28 65 78 70 72 74 79   ┆machine = targetz80) and (exprty┆
0x099d80…099da0             70 65 6e 61 6d 65 20 3c 3e 20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e 61 6d 65 29 20 74 68 65 6e   ┆pename <> boolean_typename) then┆
0x099da0…099dc0             0a 65 72 72 6f 72 28 20 6d 6f 6e 61 64 69 63 5f 65 72 72 6f 72 20 29 3b 0a 0a 69 66 20 28 65 78   ┆ error( monadic_error );  if (ex┆
0x099dc0…099de0             70 72 74 79 70 65 6e 61 6d 65 20 3d 20 69 6e 74 65 67 65 72 5f 74 79 70 65 6e 61 6d 65 29 20 6f   ┆prtypename = integer_typename) o┆
0x099de0…099e00             72 20 28 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 3d 20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e   ┆r ( exprtypename = boolean_typen┆
0x099e00…099e20 (41, 0, 2)  61 6d 65 20 29 20 74 68 65 6e 0a 6f 70 65 72 28 20 75 6e 61 72 79 2c 20 72 65 63 74 79 70 65 2c   ┆ame ) then oper( unary, rectype,┆
0x099e20…099e40             20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 29 0a 65 6c 73 65 0a 73 75 70 70 72 65 73 73 5f 65 72   ┆ exprtypename ) else suppress_er┆
0x099e40…099e60             72 6f 72 28 20 65 78 70 72 62 61 73 65 6b 69 6e 64 2c 20 6d 6f 6e 61 64 69 63 5f 65 72 72 6f 72   ┆ror( exprbasekind, monadic_error┆
0x099e60…099e80             29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 69 6e 3a 0a 62 65 67 69 6e 0a 28 2a 20 72 69 67 74 68 20 6f   ┆); end;    cin: begin (* rigth o┆
0x099e80…099ea0             70 61 6e 64 20 6d 75 73 74 20 62 65 20 6f 66 20 73 65 74 2d 74 79 70 65 20 2a 29 0a 6c 65 66 74   ┆pand must be of set-type *) left┆
0x099ea0…099ec0             74 79 70 65 6e 61 6d 65 20 28 2a 20 64 75 6d 6d 79 20 61 73 73 69 67 6e 6d 65 6e 74 20 2a 29 3a   ┆typename (* dummy assignment *):┆
0x099ec0…099ee0             3d 20 74 65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e 20 28 6e 65 78 74 74 6f 70 29 3b 0a 28 2a 20   ┆= testenumeration (nexttop); (* ┆
0x099ee0…099f00             6e 6f 74 65 3a 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 69 73 20 73 69 6d 70 6c 69 66 69 65 64   ┆note: exprtypename is simplified┆
0x099f00…099f20             20 74 79 70 65 6e 61 6d 65 20 6f 66 20 6e 65 78 74 74 6f 70 20 2a 29 0a 72 65 73 6f 6c 76 65 74   ┆ typename of nexttop *) resolvet┆
0x099f20…099f40             79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 72 69 67 74 68 74 79 70 65 6e 61 6d 65 2c 20 72 69   ┆ype (stacktop, rigthtypename, ri┆
0x099f40…099f60             67 74 68 65 6c 65 6d 65 6e 74 2c 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 28   ┆gthelement, rigthbasekind); if (┆
0x099f60…099f80             65 78 70 72 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 65 72 72 6f 72 6b 69 6e 64 29 20 61 6e 64 20   ┆exprbasekind <> cerrorkind) and ┆
0x099f80…099fa0             28 72 69 67 74 68 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 65 72 72 6f 72 6b 69 6e 64 29 20 74 68   ┆(rigthbasekind <> cerrorkind) th┆
0x099fa0…099fc0             65 6e 0a 69 66 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 73 65 74 20 74 68 65 6e   ┆en if rigthbasekind <> cset then┆
0x099fc0…099fe0             0a 65 72 72 6f 72 20 28 72 65 6c 61 74 69 6f 6e 5f 65 72 72 6f 72 29 0a 65 6c 73 65 0a 69 66 20   ┆ error (relation_error) else if ┆
0x099fe0…09a000             72 69 67 74 68 65 6c 65 6d 65 6e 74 20 3c 3e 20 6e 69 6c 5f 74 79 70 65 6e 61 6d 65 20 74 68 65   ┆rigthelement <> nil_typename the┆
0x09a000…09a020 (41, 0, 3)  6e 20 20 20 28 2a 20 6f 6d 69 74 20 65 72 72 6f 72 2c 20 69 66 20 65 6d 70 74 79 20 73 65 74 20   ┆n   (* omit error, if empty set ┆
0x09a020…09a040             2a 29 0a 69 66 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 3c 3e 20 72 69 67 74 68 65 6c 65 6d 65   ┆*) if exprtypename <> rigtheleme┆
0x09a040…09a060             6e 74 20 74 68 65 6e 0a 65 72 72 6f 72 20 28 72 65 6c 61 74 69 6f 6e 5f 65 72 72 6f 72 29 3b 0a   ┆nt then error (relation_error); ┆
0x09a060…09a080             6f 70 65 72 20 28 62 69 6e 61 72 79 2c 20 63 69 6e 2c 20 62 6f 6f 6c 65 61 6e 5f 74 79 70 65 6e   ┆oper (binary, cin, boolean_typen┆
0x09a080…09a0a0             61 6d 65 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 0a 63 65 6f 6d 3a 0a 65 6e 64 70 61 73 73 31 3a 3d 20   ┆ame); end;     ceom: endpass1:= ┆
0x09a0a0…09a0c0             74 72 75 65 3b 0a 0a 0a 0a 0a 65 6c 73 65 0a 63 6f 6d 70 5f 65 72 72 6f 72 20 28 75 6e 6b 6e 6f   ┆true;     else comp_error (unkno┆
0x09a0c0…09a0e0             77 6e 5f 72 65 63 74 79 70 65 29 3b 0a 65 6e 64 3b 20 28 2a 20 63 61 73 65 20 72 65 63 74 79 70   ┆wn_rectype); end; (* case rectyp┆
0x09a0e0…09a100             65 20 2a 29 0a 0a 75 6e 74 69 6c 20 65 6e 64 70 61 73 73 31 3b 0a 0a 0a 0a 28 2a 20 65 6e 64 20   ┆e *)  until endpass1;    (* end ┆
0x09a100…09a120             6f 66 20 70 72 6f 67 72 61 6d 20 2a 29 0a 65 6e 64 2e 0a 01 45 20 31 0a 72 65 73 6f 6c 76 65 74   ┆of program *) end.  E 1 resolvet┆
0x09a120…09a140             79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 72 69 67 74 68 74 79 70 65 6e 61 6d 65 2c 20 72 69   ┆ype (stacktop, rigthtypename, ri┆
0x09a140…09a160             67 74 68 65 6c 65 6d 65 6e 74 2c 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 28   ┆gthelement, rigthbasekind); if (┆
0x09a160…09a180             65 78 70 72 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 65 72 72 6f 72 6b 69 6e 64 29 20 61 6e 64 20   ┆exprbasekind <> cerrorkind) and ┆
0x09a180…09a1a0             28 72 69 67 74 68 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 65 72 72 6f 72 6b 69 6e 64 29 20 74 68   ┆(rigthbasekind <> cerrorkind) th┆
0x09a1a0…09a1c0             65 6e 0a 69 66 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 73 65 74 20 74 68 65 6e   ┆en if rigthbasekind <> cset then┆
0x09a1c0…09a1e0             0a 65 72 72 6f 72 20 28 72 65 6c 61 74 69 6f 6e 5f 65 72 72 6f 72 29 0a 65 6c 73 65 0a 69 66 20   ┆ error (relation_error) else if ┆
0x09a1e0…09a200             72 69 67 74 68 65 6c 65 6d 65 6e 74 20 3c 3e 20 6e 69 6c 5f 74 79 70 65 6e 61 6d 65 20 74 68 65   ┆rigthelement <> nil_typename the┆
0x09a200…09a220 (41, 0, 4)  2e 2e 2f 73 77 32 31 30 33 2f 73 72 63 2f 72 74 70 2f 78 70 33 6d 61 69 6e 7a 7a 7a 7a 00 00 00   ┆../sw2103/src/rtp/xp3mainzzzz   ┆
0x09a220…09a240             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0x1…]
0x09a260…09a280             00 00 00 00 20 20 20 37 35 35 20 00 20 20 20 32 35 35 20 00 20 20 20 31 34 36 20 00 20 20 20 20   ┆       755     255     146      ┆
0x09a280…09a2a0             20 31 31 34 32 37 31 20 20 35 32 36 36 37 36 36 34 31 33 20 20 31 31 32 34 34 00 20 00 00 00 00   ┆ 114271  5266766413  11244      ┆
0x09a2a0…09a2c0             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
                            […0xa…]
0x09a400…09a420 (41, 0, 5)  73 74 61 72 74 20 6f 66 20 6d 61 69 6e 20 70 72 6f 67 72 61 6d 20 2a 29 0a 0a 28 2a 2d 2d 2d 2d   ┆start of main program *)  (*----┆
0x09a420…09a440             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x09a440…09a460             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d   ┆----------------------------- --┆
0x09a460…09a480             0a 2d 2d 20 28 43 29 20 43 6f 70 79 72 69 67 74 68 20 31 39 39 32 20 20 44 41 4e 4f 53 49 0a 2d   ┆ -- (C) Copyrigth 1992  DANOSI -┆
0x09a480…09a4a0             2d 0a 2d 2d 09 50 33 4d 41 49 4e 2e 50 41 53 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆- -- P3MAIN.PAS -- -------------┆
0x09a4a0…09a4c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x09a4c0…09a4e0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 0a 2d 2d 09 52 65 76   ┆---------------------- -- -- Rev┆
0x09a4e0…09a500             69 73 69 6f 6e 73 0a 2d 2d 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆isions -- ----------------------┆
0x09a500…09a520             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 20 20 20 20 20 20 20 20 38 39 2e 30 31 2e 31 32 20 20 45   ┆---------- --        89.01.12  E┆
0x09a520…09a540             42 4b 20 20 20 55 73 65 64 20 69 6e 20 72 65 6c 65 61 73 65 20 31 2e 31 32 0a 2d 2d 20 20 31 2e   ┆BK   Used in release 1.12 --  1.┆
0x09a540…09a560             31 20 20 20 39 32 2e 31 30 2e 31 34 20 20 48 45 4a 20 20 20 53 43 43 53 20 61 6e 64 20 55 4e 49   ┆1   92.10.14  HEJ   SCCS and UNI┆
0x09a560…09a580             58 20 75 73 65 64 2e 0a 2d 2d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆X used. -- ---------------------┆
0x09a580…09a5a0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x09a5a0…09a5c0             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2d 2d 09 53 43 43 53 20 69 6e 66 6f 72 6d 61 74 69   ┆-------------- -- SCCS informati┆
0x09a5c0…09a5e0             6f 6e 0a 2d 2d 09 46 69 6c 65 20 20 20 3a 20 20 25 50 25 0a 2d 2d 09 4d 6f 64 75 6c 65 20 3a 20   ┆on -- File   :  %P% -- Module : ┆
0x09a5e0…09a600             20 25 4d 25 0a 2d 2d 09 56 65 72 73 69 6f 6e 3a 20 20 25 49 25 0a 2d 2d 09 44 61 74 65 20 20 20   ┆ %M% -- Version:  %I% -- Date   ┆
0x09a600…09a620 (41, 0, 6)  3a 20 20 25 45 25 20 20 25 55 25 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆:  %E%  %U% --------------------┆
0x09a620…09a640             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x09a640…09a660             2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2a 29 0a 0a 62 65 67 69 6e 0a 0a 69 6e 69 74 69   ┆--------------- *)  begin  initi┆
0x09a660…09a680             61 6c 69 7a 65 3b 0a 0a 65 6e 64 70 61 73 73 31 3a 3d 20 66 61 6c 73 65 3b 0a 0a 28 2a 20 74 68   ┆alize;  endpass1:= false;  (* th┆
0x09a680…09a6a0             65 20 6d 61 69 6e 6c 6f 6f 70 20 72 65 61 64 73 20 74 68 65 20 6e 65 78 74 20 72 65 63 6f 72 64   ┆e mainloop reads the next record┆
0x09a6a0…09a6c0             2d 6b 65 79 77 6f 72 64 20 2a 29 0a 0a 72 65 70 65 61 74 20 28 2a 20 75 6e 74 69 6c 20 65 6e 64   ┆-keyword *)  repeat (* until end┆
0x09a6c0…09a6e0             70 61 73 73 31 2c 20 69 2e 65 2e 20 65 6f 6d 2d 72 65 63 6f 72 64 20 66 72 6f 6d 20 70 61 73 73   ┆pass1, i.e. eom-record from pass┆
0x09a6e0…09a700             31 20 2a 29 0a 0a 69 66 20 74 65 73 74 69 6e 67 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 6f 75   ┆1 *)  if testing then writeln(ou┆
0x09a700…09a720             74 70 75 74 29 3b 0a 0a 72 65 63 74 79 70 65 3a 3d 20 70 61 73 73 77 6f 72 64 3b 0a 0a 28 2a 20   ┆tput);  rectype:= password;  (* ┆
0x09a720…09a740             73 77 69 74 63 68 20 6f 75 74 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 72 65 63 74 79 70 65   ┆switch out, depending on rectype┆
0x09a740…09a760             20 2a 29 0a 0a 63 61 73 65 20 72 65 63 74 79 70 65 20 6f 66 0a 0a 63 6e 65 77 6c 69 6e 65 3a 0a   ┆ *)  case rectype of  cnewline: ┆
0x09a760…09a780             62 65 67 69 6e 0a 6c 69 6e 65 6e 6f 3a 3d 20 70 61 73 73 69 6e 3b 0a 69 66 20 6c 69 6e 65 6e 6f   ┆begin lineno:= passin; if lineno┆
0x09a780…09a7a0             20 3c 3e 20 63 75 72 5f 6c 69 6e 65 6e 6f 20 74 68 65 6e 0a 62 65 67 69 6e 0a 63 75 72 5f 6c 69   ┆ <> cur_lineno then begin cur_li┆
0x09a7a0…09a7c0             6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f 3b 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 30 3b 20   ┆neno:= lineno; cur_opandno:= 0; ┆
0x09a7c0…09a7e0             20 28 2a 20 6c 65 74 20 6f 70 61 6e 64 73 20 62 65 20 63 6f 75 6e 74 65 64 20 66 72 6f 6d 20 7a   ┆ (* let opands be counted from z┆
0x09a7e0…09a800             65 72 6f 20 2a 29 0a 65 6d 69 74 20 28 78 6e 65 77 6c 69 6e 65 29 3b 0a 65 6d 69 74 69 6e 20 28   ┆ero *) emit (xnewline); emitin (┆
0x09a800…09a820 (41, 0, 7)  63 75 72 5f 6c 69 6e 65 6e 6f 29 3b 0a 65 6d 69 74 5f 6c 69 6e 65 6e 6f 3a 3d 20 63 75 72 5f 6c   ┆cur_lineno); emit_lineno:= cur_l┆
0x09a820…09a840             69 6e 65 6e 6f 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 63 6f 70 74 69 6f 6e 3a 0a 72 65 61 64 6f   ┆ineno; end; end;  coption: reado┆
0x09a840…09a860             70 74 69 6f 6e 3b 0a 0a 0c 0a 63 73 74 61 6e 64 61 72 64 6e 61 6d 65 3a 0a 73 74 61 6e 64 61 72   ┆ption;    cstandardname: standar┆
0x09a860…09a880             64 6e 61 6d 65 3b 20 28 2a 20 6d 65 72 65 6c 79 20 74 6f 20 73 6b 69 70 20 74 68 65 20 70 61 72   ┆dname; (* merely to skip the par┆
0x09a880…09a8a0             61 6d 65 74 65 72 73 2e 2e 2e 20 2a 29 0a 0a 63 65 6e 64 70 72 65 66 69 78 3a 20 0a 72 65 6c 65   ┆ameters... *)  cendprefix:  rele┆
0x09a8a0…09a8c0             61 73 65 6e 61 6d 65 73 28 6e 61 6d 65 6c 65 76 65 6c 20 5e 2e 20 66 69 72 73 74 6e 61 6d 65 29   ┆asenames(namelevel ^. firstname)┆
0x09a8c0…09a8e0             3b 0a 0a 0a 63 69 6e 63 6c 75 64 65 2c 0a 63 63 6f 6e 74 65 78 74 3a 0a 62 65 67 69 6e 0a 63 75   ┆;   cinclude, ccontext: begin cu┆
0x09a8e0…09a900             72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f 20 2b 20 31 3b 0a 65 6e 76   ┆r_opandno:= cur_opandno + 1; env┆
0x09a900…09a920             69 72 5f 73 70 69 78 3a 3d 20 70 61 73 73 69 6e 3b 20 20 28 2a 20 73 6b 69 70 20 74 68 65 20 73   ┆ir_spix:= passin;  (* skip the s┆
0x09a920…09a940             70 69 78 20 2a 29 0a 63 75 72 5f 63 6f 6e 74 65 78 74 5f 6e 6f 3a 3d 20 63 75 72 5f 63 6f 6e 74   ┆pix *) cur_context_no:= cur_cont┆
0x09a940…09a960             65 78 74 5f 6e 6f 20 2b 20 31 3b 0a 65 6e 64 3b 0a 0a 63 65 72 72 63 6f 6e 74 65 78 74 3a 20 3b   ┆ext_no + 1; end;  cerrcontext: ;┆
0x09a960…09a980             20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 63 65 6e 64 63 6f 6e 74 65 78 74 3a 20 3b 20 28 2a 20   ┆ (* blind *)  cendcontext: ; (* ┆
0x09a980…09a9a0             62 6c 69 6e 64 20 2a 29 0a 0a 63 65 6e 64 69 6e 63 6c 75 64 65 3a 0a 62 65 67 69 6e 0a 6c 61 73   ┆blind *)  cendinclude: begin las┆
0x09a9a0…09a9c0             74 67 6c 6f 62 61 6c 6c 65 76 65 6c 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a 65 6d 69 74 20 28   ┆tgloballevel:= namelevel; emit (┆
0x09a9c0…09a9e0             78 65 6e 64 70 72 65 6c 75 64 65 29 3b 0a 63 75 72 5f 63 6f 6e 74 65 78 74 5f 6e 6f 3a 3d 20 2d   ┆xendprelude); cur_context_no:= -┆
0x09a9e0…09aa00             31 3b 20 28 2a 20 65 6e 64 20 6f 66 20 63 6f 6e 74 65 78 74 73 2c 20 69 2e 65 2e 20 63 68 61 6e   ┆1; (* end of contexts, i.e. chan┆
0x09aa00…09aa20 (41, 0, 8)  67 65 20 66 6f 72 6d 61 74 20 6f 66 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 2a 29 0a 65   ┆ge format of error messages *) e┆
0x09aa20…09aa40             6e 64 3b 0a 0a 63 62 65 67 69 6e 6c 65 76 65 6c 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 6e 63 72 65   ┆nd;  cbeginlevel: begin (* incre┆
0x09aa40…09aa60             61 73 65 20 74 68 65 20 6e 61 6d 65 6c 65 76 65 6c 2c 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 7a   ┆ase the namelevel, and initializ┆
0x09aa60…09aa80             65 20 61 20 6e 65 77 20 6e 61 6d 65 6c 69 73 74 20 2a 29 0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f   ┆e a new namelist *) cur_dyn_var_┆
0x09aa80…09aaa0             6c 65 76 65 6c 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b   ┆level:= namelevel; newnamelevel;┆
0x09aaa0…09aac0             0a 65 6e 64 3b 0a 0a 63 65 6e 64 6c 65 76 65 6c 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 66 20 61 6e   ┆ end;  cendlevel: begin (* if an┆
0x09aac0…09aae0             79 20 67 6c 6f 62 61 6c 20 6e 61 6d 65 73 20 68 61 76 65 20 62 65 65 6e 20 75 73 65 64 20 61 74   ┆y global names have been used at┆
0x09aae0…09ab00             20 74 68 69 73 20 6c 65 76 65 6c 2c 20 2a 29 0a 28 2a 20 20 20 74 68 65 6e 20 70 72 65 74 65 6e   ┆ this level, *) (*   then preten┆
0x09ab00…09ab20             64 20 74 68 61 74 20 74 68 65 79 20 77 65 72 65 20 75 73 65 64 20 61 74 20 74 68 65 20 6e 65 78   ┆d that they were used at the nex┆
0x09ab20…09ab40             74 2c 20 6f 75 74 65 72 2c 20 6c 65 76 65 6c 20 2a 29 0a 65 6e 64 6e 61 6d 65 6c 65 76 65 6c 3b   ┆t, outer, level *) endnamelevel;┆
0x09ab40…09ab60             0a 63 75 72 5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 61 6d 65 6c 65 76 65 6c 3b 0a   ┆ cur_dyn_var_level:= namelevel; ┆
0x09ab60…09ab80             65 6e 64 3b 0a 0a 0c 0a 63 64 65 63 6c 61 72 61 74 69 6f 6e 3a 0a 62 65 67 69 6e 0a 69 66 20 65   ┆end;    cdeclaration: begin if e┆
0x09ab80…09aba0             78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e 5f 62 6c 6f 63 6b 3b   ┆xpecting_block then begin_block;┆
0x09aba0…09abc0             0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 70 61 73 73 77 6f 72 64 3b 0a 0a 28 2a 20 74 65   ┆ cur_namekind:= password;  (* te┆
0x09abc0…09abe0             73 74 20 74 68 61 74 20 27 70 72 6f 63 65 73 73 27 20 6f 6e 6c 79 20 6f 63 63 75 72 73 20 61 74   ┆st that 'process' only occurs at┆
0x09abe0…09ac00             20 70 72 6f 63 65 73 73 2d 6c 65 76 65 6c 20 2a 29 0a 28 2a 20 2e 2e 2e 20 65 6c 73 65 20 62 68   ┆ process-level *) (* ... else bh┆
0x09ac00…09ac20 (41, 0, 9)  61 6e 67 65 20 69 74 20 74 6f 3a 20 27 70 72 6f 63 65 64 75 72 65 27 20 20 20 20 20 20 20 20 20   ┆ange it to: 'procedure'         ┆
0x09ac20…09ac40             20 20 20 20 20 20 2a 29 0a 0a 69 66 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 70 72 6f   ┆      *)  if cur_namekind = cpro┆
0x09ac40…09ac60             63 65 73 73 20 74 68 65 6e 0a 69 66 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 3c 3e 20 70 72 6f 63   ┆cess then if cur_blockno <> proc┆
0x09ac60…09ac80             65 73 73 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 70 72 6f 63   ┆ess_block then begin error (proc┆
0x09ac80…09aca0             65 73 73 5f 6f 6e 6c 79 5f 61 6c 6c 6f 77 65 64 5f 61 74 5f 70 72 6f 63 65 73 73 6c 65 76 65 6c   ┆ess_only_allowed_at_processlevel┆
0x09aca0…09acc0             29 3b 0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 70 72 6f 63 65 64 75 72 65 3b 0a 65 6e   ┆); cur_namekind:= cprocedure; en┆
0x09acc0…09ace0             64 3b 0a 0a 69 66 20 63 6f 6d 70 69 6c 65 72 74 65 73 74 20 74 68 65 6e 0a 28 2a 20 74 65 73 74   ┆d;  if compilertest then (* test┆
0x09ace0…09ad00             20 6c 65 67 61 6c 69 74 79 20 6f 66 20 6e 61 6d 65 6b 69 6e 64 20 2a 29 0a 63 61 73 65 20 63 75   ┆ legality of namekind *) case cu┆
0x09ad00…09ad20             72 5f 6e 61 6d 65 6b 69 6e 64 20 6f 66 0a 63 70 72 6f 63 65 73 73 2c 20 63 70 72 6f 63 65 64 75   ┆r_namekind of cprocess, cprocedu┆
0x09ad20…09ad40             72 65 2c 20 63 66 75 6e 63 74 69 6f 6e 2c 20 63 74 79 70 65 2c 0a 63 73 63 61 6c 61 72 65 6c 65   ┆re, cfunction, ctype, cscalarele┆
0x09ad40…09ad60             6d 2c 20 63 72 65 63 66 69 65 6c 64 2c 20 63 63 6f 6e 73 74 61 6e 74 2c 20 63 76 61 72 2c 0a 63   ┆m, crecfield, cconstant, cvar, c┆
0x09ad60…09ad80             76 61 72 70 2c 20 63 76 61 6c 75 65 70 2c 0a 63 6c 61 62 65 6c 2c 0a 63 70 72 65 66 69 78 3a 20   ┆varp, cvaluep, clabel, cprefix: ┆
0x09ad80…09ada0             3b 20 28 2a 20 6f 6b 20 2a 29 0a 65 6e 64 0a 6f 74 68 65 72 77 69 73 65 0a 63 6f 6d 70 5f 65 72   ┆; (* ok *) end otherwise comp_er┆
0x09ada0…09adc0             72 6f 72 20 28 75 6e 6b 6e 6f 77 6e 5f 6e 61 6d 65 6b 69 6e 64 29 3b 0a 0a 28 2a 20 63 65 72 74   ┆ror (unknown_namekind);  (* cert┆
0x09adc0…09ade0             61 69 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79   ┆ain declarations are followed by┆
0x09ade0…09ae00             20 61 20 6c 69 74 65 72 61 6c 20 77 69 74 68 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 6e 61 6d   ┆ a literal with the external nam┆
0x09ae00…09ae20 (41, 0, 10) 65 20 2a 29 0a 28 2a 20 61 64 6a 75 73 74 20 74 68 65 20 6f 70 61 6e 64 2d 6e 75 6d 62 65 72 20   ┆e *) (* adjust the opand-number ┆
0x09ae20…09ae40             69 6e 20 61 64 76 61 6e 63 65 2e 2e 2e 20 2a 29 0a 63 61 73 65 20 63 75 72 5f 6e 61 6d 65 6b 69   ┆in advance... *) case cur_nameki┆
0x09ae40…09ae60             6e 64 20 6f 66 0a 63 70 72 6f 63 65 73 73 2c 0a 63 70 72 6f 63 65 64 75 72 65 2c 0a 63 66 75 6e   ┆nd of cprocess, cprocedure, cfun┆
0x09ae60…09ae80             63 74 69 6f 6e 2c 0a 63 70 72 65 66 69 78 3a 0a 63 75 72 5f 6f 70 61 6e 64 6e 6f 3a 3d 20 63 75   ┆ction, cprefix: cur_opandno:= cu┆
0x09ae80…09aea0             72 5f 6f 70 61 6e 64 6e 6f 20 2d 20 31 3b 0a 65 6e 64 20 6f 74 68 65 72 77 69 73 65 20 28 2a 20   ┆r_opandno - 1; end otherwise (* ┆
0x09aea0…09aec0             64 6f 6e 27 74 20 63 61 72 65 20 2a 29 3b 0a 0a 28 2a 20 70 72 65 70 61 72 65 20 65 6e 64 6c 69   ┆don't care *);  (* prepare endli┆
0x09aec0…09aee0             73 74 2d 61 63 74 69 6f 6e 73 2c 20 62 79 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 20 6c 69 73 74   ┆st-actions, by initializing list┆
0x09aee0…09af00             2d 70 6f 69 6e 74 65 72 73 20 2a 29 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 69 6c 6e 61 6d 65   ┆-pointers *) listfirst:= nilname┆
0x09af00…09af20             3b 0a 6c 69 73 74 6c 61 73 74 20 3a 3d 20 6e 69 6c 6e 61 6d 65 3b 0a 0a 65 6e 64 3b 0a 0a 63 64   ┆; listlast := nilname;  end;  cd┆
0x09af20…09af40             65 63 6c 61 72 65 2c 0a 63 64 65 63 6c 61 72 65 6c 69 73 74 3a 0a 62 65 67 69 6e 0a 63 75 72 5f   ┆eclare, cdeclarelist: begin cur_┆
0x09af40…09af60             6f 70 61 6e 64 6e 6f 3a 3d 20 63 75 72 5f 6f 70 61 6e 64 6e 6f 20 2b 20 31 3b 0a 63 75 72 6e 61   ┆opandno:= cur_opandno + 1; curna┆
0x09af60…09af80             6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 20 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20   ┆me:= newname ( passin (* = spix ┆
0x09af80…09afa0             2a 29 20 29 3b 0a 0a 28 2a 20 69 6e 73 65 72 74 20 74 68 65 20 6e 61 6d 65 20 69 6e 20 74 68 65   ┆*) );  (* insert the name in the┆
0x09afa0…09afc0             20 6c 69 73 74 20 2a 29 0a 69 66 20 6c 69 73 74 66 69 72 73 74 20 3d 20 6e 69 6c 6e 61 6d 65 20   ┆ list *) if listfirst = nilname ┆
0x09afc0…09afe0             74 68 65 6e 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 6c 69 73 74 6c 61   ┆then listfirst:= curname; listla┆
0x09afe0…09b000             73 74 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 0a 63 61 73 65 20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64   ┆st:= curname;  case cur_namekind┆
0x09b000…09b020 (41, 0, 11) 20 6f 66 0a 63 70 72 6f 63 65 73 73 2c 0a 63 70 72 6f 63 65 64 75 72 65 2c 0a 63 66 75 6e 63 74   ┆ of cprocess, cprocedure, cfunct┆
0x09b020…09b040             69 6f 6e 3a 0a 62 65 67 69 6e 0a 28 2a 20 74 68 65 20 6e 61 6d 65 20 77 69 6c 6c 20 62 65 20 66   ┆ion: begin (* the name will be f┆
0x09b040…09b060             6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 66 6f 72 6d 61 6c 20 6c 69 73 74 20 2a 29 0a 28 2a 20 72   ┆ollowed by a formal list *) (* r┆
0x09b060…09b080             65 6d 65 6d 62 65 72 20 74 68 65 20 72 6f 75 74 69 6e 65 20 6e 61 6d 65 20 2a 29 0a 63 75 72 5f   ┆emember the routine name *) cur_┆
0x09b080…09b0a0             72 6f 75 74 69 6e 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 28 2a 20 74 68 65 20 6e 61 6d 65 20 6f   ┆routine:= curname; (* the name o┆
0x09b0a0…09b0c0             66 20 74 68 65 20 72 6f 75 74 69 6e 65 20 77 61 73 20 70 72 65 63 65 64 65 64 20 62 79 20 61 20   ┆f the routine was preceded by a ┆
0x09b0c0…09b0e0             6c 69 74 65 72 61 6c 20 6e 61 6d 65 20 2a 29 0a 28 2a 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20   ┆literal name *) (* remember the ┆
0x09b0e0…09b100             20 6f 70 61 6e 64 20 68 6f 6c 64 69 6e 67 20 74 68 69 73 20 6e 61 6d 65 20 2a 29 0a 6f 70 61 6e   ┆ opand holding this name *) opan┆
0x09b100…09b120             64 5f 70 72 6f 63 6e 61 6d 65 3a 3d 20 74 61 6b 65 5f 73 74 61 63 6b 74 6f 70 3b 0a 0a 28 2a 20   ┆d_procname:= take_stacktop;  (* ┆
0x09b120…09b140             70 72 65 70 61 72 65 20 66 6f 72 20 27 62 65 67 69 6e 6c 65 76 65 6c 27 3a 20 70 72 6f 63 65 73   ┆prepare for 'beginlevel': proces┆
0x09b140…09b160             73 2d 6c 65 76 65 6c 20 69 73 20 73 70 65 63 69 61 6c 20 2a 29 0a 69 66 20 63 75 72 5f 6e 61 6d   ┆s-level is special *) if cur_nam┆
0x09b160…09b180             65 6b 69 6e 64 20 3d 20 63 70 72 6f 63 65 73 73 20 74 68 65 6e 0a 62 65 67 69 6e 0a 63 75 72 5f   ┆ekind = cprocess then begin cur_┆
0x09b180…09b1a0             6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 76 61 72 3b 20 20 28 2a 20 73 65 74 20 75 70 20 66 6f 72 20   ┆namekind:= cvar;  (* set up for ┆
0x09b1a0…09b1c0             76 61 72 69 61 62 6c 65 20 2a 29 0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 61   ┆variable *) curname:= newname (a┆
0x09b1c0…09b1e0             6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 29 3b 20 28 2a 20 75 73 65 64 20 66 6f 72 20 27 73 6f 6e   ┆nonymous_spix); (* used for 'son┆
0x09b1e0…09b200             2d 76 61 72 69 61 62 6c 65 20 2a 29 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a   ┆-variable *) with  curname ^ do ┆
0x09b200…09b220 (41, 0, 12) 74 79 70 65 6e 61 6d 65 3a 3d 20 73 6f 6e 5f 74 79 70 65 6e 61 6d 65 3b 0a 6c 65 76 65 6c 6b 69   ┆typename:= son_typename; levelki┆
0x09b220…09b240             6e 64 3a 3d 20 70 72 6f 63 65 73 73 6c 65 76 65 6c 3b 0a 65 6e 64 0a 65 6c 73 65 0a 6c 65 76 65   ┆nd:= processlevel; end else leve┆
0x09b240…09b260             6c 6b 69 6e 64 3a 3d 20 69 72 72 65 6c 6c 5f 6c 65 76 65 6c 3b 0a 0a 65 6e 64 3b 0a 0a 63 70 72   ┆lkind:= irrell_level;  end;  cpr┆
0x09b260…09b280             65 66 69 78 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20 28 78 70 72 65 66 69 78 29 3b 0a 65 6d 69 74   ┆efix: begin emit (xprefix); emit┆
0x09b280…09b2a0             5f 65 78 74 6e 61 6d 65 20 28 74 61 6b 65 5f 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6e 64 3b 0a 0a   ┆_extname (take_stacktop); end;  ┆
0x09b2a0…09b2c0             63 63 6f 6e 73 74 61 6e 74 3a 20 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 20 28 2a 20 69 6e   ┆cconstant: set_error_type; (* in┆
0x09b2c0…09b2e0             20 63 61 73 65 20 6f 66 20 6d 69 73 73 69 6e 67 20 74 79 70 65 6e 61 6d 65 20 69 6e 20 66 72 6f   ┆ case of missing typename in fro┆
0x09b2e0…09b300             6e 74 20 6f 66 20 73 74 72 75 63 74 75 72 65 64 20 63 6f 6e 73 74 20 2a 29 0a 0a 63 6c 61 62 65   ┆nt of structured const *)  clabe┆
0x09b300…09b320             6c 3a 0a 65 6d 69 74 69 64 20 28 78 6c 61 62 65 6c 69 64 2c 20 63 75 72 6e 61 6d 65 29 3b 0a 0a   ┆l: emitid (xlabelid, curname);  ┆
0x09b320…09b340             65 6e 64 20 6f 74 68 65 72 77 69 73 65 3b 20 28 2a 20 6e 6f 74 68 69 6e 67 20 2a 29 0a 0a 65 6e   ┆end otherwise; (* nothing *)  en┆
0x09b340…09b360             64 3b 0a 0a 63 65 6e 64 65 78 74 70 72 6f 63 65 73 73 3a 0a 62 65 67 69 6e 0a 77 69 74 68 20 63   ┆d;  cendextprocess: begin with c┆
0x09b360…09b380             75 72 5f 72 6f 75 74 69 6e 65 5e 20 64 6f 0a 62 65 67 69 6e 0a 77 69 74 68 20 6e 61 6d 65 6c 65   ┆ur_routine^ do begin with namele┆
0x09b380…09b3a0             76 65 6c 5e 20 64 6f 0a 70 61 72 61 6d 73 20 28 2a 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 70 72   ┆vel^ do params (* of external pr┆
0x09b3a0…09b3c0             6f 63 65 73 73 20 2a 29 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 20 28 2a 20 6f 66 20 6e 61 6d 65   ┆ocess *):= firstname; (* of name┆
0x09b3c0…09b3e0             6c 65 76 65 6c 20 2a 29 0a 0a 65 6d 69 74 69 64 28 78 65 78 74 70 72 6f 63 65 73 73 2c 20 63 75   ┆level *)  emitid(xextprocess, cu┆
0x09b3e0…09b400             72 5f 72 6f 75 74 69 6e 65 20 28 2a 20 6d 61 79 20 62 65 20 61 6e 6f 6e 79 6d 6f 75 73 20 2a 29   ┆r_routine (* may be anonymous *)┆
0x09b400…09b420 (41, 0, 13) 29 3b 0a 65 6d 69 74 69 6e 28 73 6f 6e 5f 74 79 70 65 6e 61 6d 65 5e 2e 6e 69 78 20 28 2a 20 74   ┆); emitin(son_typename^.nix (* t┆
0x09b420…09b440             68 65 20 74 79 70 65 20 2a 29 29 3b 0a 0a 65 6d 69 74 66 6f 72 6d 61 6c 28 70 61 72 61 6d 73 29   ┆he type *));  emitformal(params)┆
0x09b440…09b460             3b 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75 72 20 72 6f 75 74 69 6e 65 20 2a 29 0a 0a 65   ┆; end; (* with cur routine *)  e┆
0x09b460…09b480             6d 69 74 69 64 28 78 65 78 74 70 72 6f 63 64 65 66 2c 20 63 75 72 5f 72 6f 75 74 69 6e 65 29 3b   ┆mitid(xextprocdef, cur_routine);┆
0x09b480…09b4a0             0a 0a 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 3a 3d 20 66 61 6c 73 65 3b 0a 65 6e 64 3b 20   ┆  expecting_block:= false; end; ┆
0x09b4a0…09b4c0             28 2a 20 65 6e 64 65 78 74 70 72 6f 63 65 73 73 20 2a 29 0a 0a 0c 0a 63 65 78 74 65 72 6e 61 6c   ┆(* endextprocess *)    cexternal┆
0x09b4c0…09b4e0             2c 0a 63 66 6f 72 77 61 72 64 3a 0a 62 65 67 69 6e 0a 0a 0a 77 69 74 68 20 20 63 75 72 5f 72 6f   ┆, cforward: begin   with  cur_ro┆
0x09b4e0…09b500             75 74 69 6e 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c   ┆utine ^ do begin if forward_decl┆
0x09b500…09b520             20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 20 28 2a   ┆ then begin errorspix:= spix; (*┆
0x09b520…09b540             20 6f 66 20 63 75 72 20 72 6f 75 74 69 6e 65 20 2a 29 0a 65 72 72 6f 72 20 28 64 6f 75 62 6c 65   ┆ of cur routine *) error (double┆
0x09b540…09b560             5f 64 65 63 6c 61 72 61 74 69 6f 6e 29 20 28 2a 20 69 2e 65 2e 20 69 74 20 77 61 73 20 61 6c 72   ┆_declaration) (* i.e. it was alr┆
0x09b560…09b580             65 61 64 79 20 66 6f 72 77 61 72 64 20 64 65 63 6c 61 72 65 64 20 2a 29 0a 65 6e 64 0a 65 6c 73   ┆eady forward declared *) end els┆
0x09b580…09b5a0             65 0a 0a 28 2a 20 73 65 74 20 74 68 65 20 70 72 6f 70 65 72 20 66 6c 61 67 20 61 6e 64 20 65 6d   ┆e  (* set the proper flag and em┆
0x09b5a0…09b5c0             69 74 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 72 65 63 6f 72 64 20 2a 29 0a 63   ┆it the corresponding record *) c┆
0x09b5c0…09b5e0             61 73 65 20 72 65 63 74 79 70 65 20 6f 66 0a 0a 63 65 78 74 65 72 6e 61 6c 3a 0a 62 65 67 69 6e   ┆ase rectype of  cexternal: begin┆
0x09b5e0…09b600             0a 65 78 74 65 72 6e 61 6c 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b 0a 65 6d 69 74 20 28 78 65 78   ┆ external_decl:= true; emit (xex┆
0x09b600…09b620 (41, 0, 14) 74 65 72 6e 61 6c 29 3b 0a 65 6e 64 3b 0a 0a 63 66 6f 72 77 61 72 64 3a 0a 62 65 67 69 6e 0a 69   ┆ternal); end;  cforward: begin i┆
0x09b620…09b640             66 20 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 70 72 6f 63 65 73 73 20 74 68 65 6e 0a 65 72 72 6f 72   ┆f namekind = cprocess then error┆
0x09b640…09b660             28 66 6f 72 77 61 72 64 5f 70 72 6f 63 65 73 73 5f 6e 6f 74 5f 61 6c 6c 6f 77 65 64 29 3b 0a 66   ┆(forward_process_not_allowed); f┆
0x09b660…09b680             6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b 0a 65 6d 69 74 20 28 78 66 6f 72 77 61   ┆orward_decl:= true; emit (xforwa┆
0x09b680…09b6a0             72 64 29 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 20 6f 74 68 65 72 77 69 73 65 3b 20 28 2a 20 63 61 73   ┆rd); end;  end otherwise; (* cas┆
0x09b6a0…09b6c0             65 20 72 65 63 74 79 70 65 20 2a 29 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 6e 61 6d 65 73   ┆e rectype *)  end; (* with names┆
0x09b6c0…09b6e0             20 2a 29 0a 0a 65 78 70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 3a 3d 20 66 61 6c 73 65 3b 20 28 2a   ┆ *)  expecting_block:= false; (*┆
0x09b6e0…09b700             20 66 6c 61 67 20 74 6f 20 6f 6d 69 74 20 27 62 6c 6f 63 6b 6e 6f 27 20 2a 29 0a 0a 65 6e 64 3b   ┆ flag to omit 'blockno' *)  end;┆
0x09b700…09b720             0a 0a 0c 0a 63 65 6e 64 66 6f 72 6d 61 6c 6c 69 73 74 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 27   ┆    cendformallist:  begin  (* '┆
0x09b720…09b740             63 75 72 5f 72 6f 75 74 69 6e 65 27 20 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65   ┆cur_routine'  is the name of the┆
0x09b740…09b760             20 70 72 6f 63 65 73 73 2f 70 72 6f 63 65 64 75 72 65 2f 66 75 6e 63 74 69 6f 6e 20 2a 29 0a 28   ┆ process/procedure/function *) (┆
0x09b760…09b780             2a 20 27 63 75 72 5f 74 79 70 65 6e 61 6d 65 27 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20   ┆* 'cur_typename' is the name of ┆
0x09b780…09b7a0             74 68 65 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 20 2a 29 0a 28 2a 20 27 63 75 72 5f 74 79 70 65 6e   ┆the common type *) (* 'cur_typen┆
0x09b7a0…09b7c0             6f 64 65 27 20 69 73 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 79 70 65 6e 6f   ┆ode' is the corresponding typeno┆
0x09b7c0…09b7e0             64 65 20 2a 29 0a 0a 28 2a 20 27 6c 69 73 74 66 69 72 73 74 27 20 61 6e 64 20 27 6c 69 73 74 6c   ┆de *)  (* 'listfirst' and 'listl┆
0x09b7e0…09b800             61 73 74 27 20 6f 75 74 70 6f 69 6e 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 6f 72 6d 61 6c   ┆ast' outpoint the list of formal┆
0x09b800…09b820 (41, 0, 15) 20 70 61 72 61 6d 73 20 2a 29 0a 0a 70 61 72 61 6d 6b 69 6e 64 3a 3d 20 20 6c 69 73 74 66 69 72   ┆ params *)  paramkind:=  listfir┆
0x09b820…09b840             73 74 20 5e 20 2e 20 6e 61 6d 65 6b 69 6e 64 3b 0a 28 2a 20 6d 61 79 20 62 65 20 76 61 6c 75 65   ┆st ^ . namekind; (* may be value┆
0x09b840…09b860             2f 76 61 72 20 70 61 72 61 6d 20 2a 29 0a 0a 28 2a 20 63 68 65 63 6b 20 70 61 72 61 6d 6b 69 6e   ┆/var param *)  (* check paramkin┆
0x09b860…09b880             64 20 76 65 72 73 75 73 20 72 6f 75 74 69 6e 65 6b 69 6e 64 20 74 6f 20 74 65 73 74 20 6c 65 67   ┆d versus routinekind to test leg┆
0x09b880…09b8a0             61 6c 69 74 79 20 6f 66 20 70 61 72 61 6d 65 74 65 72 2d 74 79 70 65 20 2a 29 0a 77 69 74 68 20   ┆ality of parameter-type *) with ┆
0x09b8a0…09b8c0             20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 77 69 74 68 20 20 63 75 72 5f 72 6f 75   ┆ cur_typenode ^ do with  cur_rou┆
0x09b8c0…09b8e0             74 69 6e 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 0a 6e 6f 74 5f 61 6c 6c 6f 77 65 64 3a 3d 20 5b   ┆tine ^ do begin  not_allowed:= [┆
0x09b8e0…09b900             5d 3b 0a 0a 63 61 73 65 20 6e 61 6d 65 6b 69 6e 64 20 28 2a 20 6f 66 20 72 6f 75 74 69 6e 65 20   ┆];  case namekind (* of routine ┆
0x09b900…09b920             2a 29 20 6f 66 0a 0a 63 74 79 70 65 3a 20 3b 20 28 2a 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74   ┆*) of  ctype: ; (* not implement┆
0x09b920…09b940             65 64 20 2a 29 0a 0a 63 66 75 6e 63 74 69 6f 6e 2c 0a 63 70 72 6f 63 65 64 75 72 65 3a 0a 28 2a   ┆ed *)  cfunction, cprocedure: (*┆
0x09b940…09b960             20 73 65 6d 61 70 68 6f 72 65 2c 20 72 65 66 65 72 65 6e 63 65 2c 20 65 78 74 20 70 72 6f 63 65   ┆ semaphore, reference, ext proce┆
0x09b960…09b980             73 73 2c 20 73 68 61 64 6f 77 2c 20 70 6f 6f 6c 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 61 73 20   ┆ss, shadow, pool not allowed as ┆
0x09b980…09b9a0             76 61 6c 75 65 20 70 61 72 61 6d 20 2a 29 0a 69 66 20 70 61 72 61 6d 6b 69 6e 64 20 3d 20 63 76   ┆value param *) if paramkind = cv┆
0x09b9a0…09b9c0             61 6c 75 65 70 20 74 68 65 6e 0a 6e 6f 74 5f 61 6c 6c 6f 77 65 64 3a 3d 20 5b 20 74 5f 73 65 6d   ┆aluep then not_allowed:= [ t_sem┆
0x09b9c0…09b9e0             61 70 68 6f 72 65 2c 20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65 73   ┆aphore, t_reference, t_extproces┆
0x09b9e0…09ba00             73 2c 20 74 5f 73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 20 5d 3b 0a 0a 63 65 78 74 70 72 6f 63   ┆s, t_shadow, t_pool ];  cextproc┆
0x09ba00…09ba20 (41, 1, 1)  65 73 73 2c 0a 63 70 72 6f 63 65 73 73 3a 0a 28 2a 20 72 65 66 65 72 65 6e 63 65 2c 20 73 68 61   ┆ess, cprocess: (* reference, sha┆
0x09ba20…09ba40             64 6f 77 2c 20 65 78 74 20 70 72 6f 63 65 73 73 2c 20 70 6f 6f 6c 20 6e 6f 74 20 61 6c 6c 6f 77   ┆dow, ext process, pool not allow┆
0x09ba40…09ba60             65 64 20 61 74 20 61 6c 6c 20 2a 29 0a 28 2a 20 73 65 6d 61 70 68 6f 72 65 20 6e 6f 74 20 61 6c   ┆ed at all *) (* semaphore not al┆
0x09ba60…09ba80             6c 6f 77 65 64 20 61 73 20 76 61 6c 75 65 20 70 61 72 61 6d 20 2a 29 0a 28 2a 20 70 6f 69 6e 74   ┆lowed as value param *) (* point┆
0x09ba80…09baa0             65 72 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 63 68 69 6c 64   ┆ers may not be modified by child┆
0x09baa0…09bac0             20 2a 29 0a 69 66 20 74 65 73 74 70 72 6f 63 65 73 73 70 61 72 61 6d 20 28 63 75 72 5f 74 79 70   ┆ *) if testprocessparam (cur_typ┆
0x09bac0…09bae0             65 6e 61 6d 65 2c 20 70 61 72 61 6d 6b 69 6e 64 20 3d 20 63 76 61 72 70 29 20 74 68 65 6e 0a 6e   ┆ename, paramkind = cvarp) then n┆
0x09bae0…09bb00             6f 74 5f 61 6c 6c 6f 77 65 64 3a 3d 20 63 6f 6e 74 65 6e 74 73 20 28 2a 20 69 2e 65 2e 20 70 72   ┆ot_allowed:= contents (* i.e. pr┆
0x09bb00…09bb20             6f 76 6f 6b 65 20 65 72 72 6f 72 20 62 65 6c 6f 77 20 2a 29 0a 65 6c 73 65 0a 69 66 20 70 61 72   ┆ovoke error below *) else if par┆
0x09bb20…09bb40             61 6d 6b 69 6e 64 20 3d 20 63 76 61 6c 75 65 70 20 74 68 65 6e 0a 6e 6f 74 5f 61 6c 6c 6f 77 65   ┆amkind = cvaluep then not_allowe┆
0x09bb40…09bb60             64 3a 3d 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 20 5d 3b 0a 0a 65 6e 64 20 6f 74 68 65 72 77   ┆d:= [ t_semaphore ];  end otherw┆
0x09bb60…09bb80             69 73 65 3b 20 28 2a 20 63 61 73 65 20 6e 61 6d 65 6b 69 6e 64 20 2a 29 0a 0a 69 66 20 6e 6f 74   ┆ise; (* case namekind *)  if not┆
0x09bb80…09bba0             5f 61 6c 6c 6f 77 65 64 20 2a 20 63 6f 6e 74 65 6e 74 73 20 28 2a 20 6f 66 20 70 61 72 61 6d 20   ┆_allowed * contents (* of param ┆
0x09bba0…09bbc0             74 79 70 65 20 2a 29 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 74 68 65 20   ┆type *) <> [] then begin (* the ┆
0x09bbc0…09bbe0             70 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 77 61 73 20 69 6c 6c 65 67 61 6c 2c 20 72 65 70 6c   ┆parameter type was illegal, repl┆
0x09bbe0…09bc00             61 63 65 20 69 74 20 2a 29 0a 65 72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f 66 6f 72 6d 61 6c 5f   ┆ace it *) error (illegal_formal_┆
0x09bc00…09bc20 (41, 1, 2)  74 79 70 65 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64   ┆type); set_error_type; end;  end┆
0x09bc20…09bc40             3b 20 28 2a 20 77 69 74 68 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 2a 29 20 28 2a 20 77 69 74 68   ┆; (* with cur_routine *) (* with┆
0x09bc40…09bc60             20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 2a 29 0a 0a 28 2a 20 70 61 73 73 20 74 68 65 20 74 79   ┆ cur_typenode *)  (* pass the ty┆
0x09bc60…09bc80             70 65 20 74 6f 20 61 6c 6c 20 66 6f 72 6d 61 6c 73 20 69 6e 20 74 68 65 20 6c 69 73 74 20 2a 29   ┆pe to all formals in the list *)┆
0x09bc80…09bca0             0a 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69 73 74 74 6f 70 3a 3d 20   ┆  with  listlast ^ do listtop:= ┆
0x09bca0…09bcc0             6e 65 78 74 6e 61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72 73 74 20 3c 3e 20 6c 69   ┆nextname;  while listfirst <> li┆
0x09bcc0…09bce0             73 74 74 6f 70 20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f 0a 62 65   ┆sttop do with  listfirst ^ do be┆
0x09bce0…09bd00             67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 6c 69 73   ┆gin typename:= cur_typename; lis┆
0x09bd00…09bd20             74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 70 6f 70 74 79 70 65   ┆tfirst:= nextname; end;  poptype┆
0x09bd20…09bd40             3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 66 6f 72 6d 61 6c 3a 20 3b 20 28 2a 20 62 6c 69 6e   ┆;  end;    cendformal: ; (* blin┆
0x09bd40…09bd60             64 2c 20 74 68 65 20 61 63 74 69 6f 6e 20 69 73 20 64 65 6c 61 79 65 64 20 75 6e 74 69 6c 20 65   ┆d, the action is delayed until e┆
0x09bd60…09bd80             6e 64 2d 72 6f 75 74 69 6e 65 2d 64 65 63 6c 20 2a 29 0a 0a 0a 0c 0a 63 65 6e 64 70 72 6f 63 64   ┆nd-routine-decl *)     cendprocd┆
0x09bd80…09bda0             65 63 6c 2c 0a 63 65 6e 64 66 75 6e 63 64 65 63 6c 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 69 6e   ┆ecl, cendfuncdecl:  begin  (* in┆
0x09bda0…09bdc0             20 63 61 73 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 2c 20 61 64 64 20 74 68 65 20 74 79 70 65 20   ┆ case of function, add the type ┆
0x09bdc0…09bde0             2a 29 0a 0a 28 2a 20 65 6d 69 74 20 74 68 65 20 72 6f 75 74 69 6e 65 68 65 61 64 20 2a 29 0a 0a   ┆*)  (* emit the routinehead *)  ┆
0x09bde0…09be00             77 69 74 68 20 20 63 75 72 5f 72 6f 75 74 69 6e 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 0a 69 66   ┆with  cur_routine ^ do begin  if┆
0x09be00…09be20 (41, 1, 3)  20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 66 75 6e 63 64 65 63 6c 20 74 68 65 6e 0a 62 65 67   ┆ rectype = cendfuncdecl then beg┆
0x09be20…09be40             69 6e 0a 28 2a 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 65 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 74   ┆in (* function type may not cont┆
0x09be40…09be60             61 69 6e 20 2e 2e 2e 20 2a 29 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20   ┆ain ... *) with  cur_typenode ^ ┆
0x09be60…09be80             64 6f 20 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 65   ┆do  (* typenode of function type┆
0x09be80…09bea0             20 2a 29 0a 69 66 20 63 6f 6e 74 65 6e 74 73 20 2a 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 2c   ┆ *) if contents * [ t_semaphore,┆
0x09bea0…09bec0             20 74 5f 72 65 66 65 72 65 6e 63 65 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 20 74 5f 73 68   ┆ t_reference, t_extprocess, t_sh┆
0x09bec0…09bee0             61 64 6f 77 2c 20 74 5f 70 6f 6f 6c 20 5d 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67 69 6e 0a   ┆adow, t_pool ] <> [] then begin ┆
0x09bee0…09bf00             65 72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70 65 29 3b 0a 73   ┆error (illegal_function_type); s┆
0x09bf00…09bf20             65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 74 79 70 65 6e 61 6d 65 20 28 2a   ┆et_error_type; end;  typename (*┆
0x09bf20…09bf40             20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 2a 29 3a 3d 20 63 75 72 5f 74 79 70 65 6e   ┆ of function name *):= cur_typen┆
0x09bf40…09bf60             61 6d 65 3b 0a 0a 28 2a 20 61 6c 6c 6f 63 61 74 65 20 61 20 6e 61 6d 65 6e 6f 64 65 20 66 6f 72   ┆ame;  (* allocate a namenode for┆
0x09bf60…09bf80             20 68 6f 6c 64 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 75 65 20 2a 29 0a 63   ┆ holding the function value *) c┆
0x09bf80…09bfa0             75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 66 75 6e 63 76 61 6c 3b 0a 69 6e 73 65 72 74 5f 69   ┆ur_namekind:= cfuncval; insert_i┆
0x09bfa0…09bfc0             6e 5f 66 72 6f 6e 74 3a 3d 20 74 72 75 65 3b 20 20 28 2a 20 6e 6f 74 65 3a 20 69 74 20 6d 75 73   ┆n_front:= true;  (* note: it mus┆
0x09bfc0…09bfe0             74 20 62 65 20 74 68 65 20 76 65 72 79 20 66 69 72 73 74 20 69 6e 20 66 6f 72 6d 61 6c 20 6c 69   ┆t be the very first in formal li┆
0x09bfe0…09c000             73 74 20 2a 29 0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 77 6e 61 6d 65 20 28 61 6e 6f 6e 79 6d 6f   ┆st *) curname:= newname (anonymo┆
0x09c000…09c020 (41, 1, 4)  75 73 5f 73 70 69 78 29 3b 0a 69 6e 73 65 72 74 5f 69 6e 5f 66 72 6f 6e 74 3a 3d 20 66 61 6c 73   ┆us_spix); insert_in_front:= fals┆
0x09c020…09c040             65 3b 20 28 2a 20 61 6c 6c 20 6f 74 68 65 72 20 6e 61 6d 65 73 20 65 74 63 20 61 72 65 20 69 6e   ┆e; (* all other names etc are in┆
0x09c040…09c060             73 65 72 74 65 64 20 69 6e 20 72 65 61 72 20 2a 29 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20   ┆serted in rear *) with  curname ┆
0x09c060…09c080             5e 20 64 6f 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 0a 70   ┆^ do typename:= cur_typename;  p┆
0x09c080…09c0a0             6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 20 28 2a 20 69 66 20 66 75 6e 63 74 69 6f 6e 20 64 65 63   ┆optype;  end; (* if function dec┆
0x09c0a0…09c0c0             6c 61 72 61 74 69 6f 6e 20 2a 29 0a 0a 28 2a 20 74 68 65 20 77 68 6f 6c 65 20 70 61 72 61 6d 6c   ┆laration *)  (* the whole paraml┆
0x09c0c0…09c0e0             69 73 74 20 28 69 6e 63 6c 75 64 69 6e 67 20 69 6d 70 6c 69 63 69 74 20 74 79 70 65 73 29 20 61   ┆ist (including implicit types) a┆
0x09c0e0…09c100             72 65 20 69 6e 20 74 68 65 20 2a 29 0a 28 2a 20 20 20 63 75 72 72 65 6e 74 20 6e 61 6d 65 6c 65   ┆re in the *) (*   current namele┆
0x09c100…09c120             76 65 6c 20 69 6e 20 6e 61 6d 65 73 74 61 63 6b 20 2a 29 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72   ┆vel in namestack *)  (* transfer┆
0x09c120…09c140             20 74 68 65 20 70 61 72 61 6d 6c 69 73 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 69 73 20 72   ┆ the paramlist pointer to this r┆
0x09c140…09c160             6f 75 74 69 6e 65 20 2a 29 0a 0a 28 2a 20 62 75 74 20 66 69 72 73 74 20 63 6f 6d 70 61 72 65 20   ┆outine *)  (* but first compare ┆
0x09c160…09c180             74 68 65 20 6e 65 77 20 70 61 72 61 6d 6c 69 73 74 20 61 67 61 69 6e 73 74 20 74 68 65 20 6f 6c   ┆the new paramlist against the ol┆
0x09c180…09c1a0             64 20 70 61 72 61 6d 6c 69 73 74 20 2a 29 0a 28 2a 20 28 69 6e 20 63 61 73 65 20 6f 66 20 65 61   ┆d paramlist *) (* (in case of ea┆
0x09c1a0…09c1c0             72 6c 69 65 72 20 66 6f 72 77 61 72 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 29 20 2a 29 0a 69 66   ┆rlier forward declaration) *) if┆
0x09c1c0…09c1e0             20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 63 6f 6d 70 61 72 65 5f 70 61 72 61 6d   ┆ forward_decl then compare_param┆
0x09c1e0…09c200             6c 69 73 74 73 3b 20 28 2a 20 74 68 65 20 6e 65 77 20 6c 69 73 74 20 6d 75 73 74 20 62 65 20 65   ┆lists; (* the new list must be e┆
0x09c200…09c220 (41, 1, 5)  6d 70 74 79 20 6f 72 20 6d 61 74 63 68 20 65 78 61 63 74 6c 79 20 2a 29 0a 0a 77 69 74 68 20 20   ┆mpty or match exactly *)  with  ┆
0x09c220…09c240             6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 70 61 72 61 6d 73 20 28 2a 20 6f 66 20 63 75 72 5f 72   ┆namelevel^ do params (* of cur_r┆
0x09c240…09c260             6f 75 74 69 6e 65 20 2a 29 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 20 28 2a 20 6f 66 20 6e 61 6d   ┆outine *):= firstname; (* of nam┆
0x09c260…09c280             65 6c 65 76 65 6c 20 2a 29 0a 0a 65 6d 69 74 72 6f 75 74 69 6e 65 68 65 61 64 20 28 63 75 72 5f   ┆elevel *)  emitroutinehead (cur_┆
0x09c280…09c2a0             72 6f 75 74 69 6e 65 29 3b 0a 0a 28 2a 20 74 68 65 20 72 6f 75 74 69 6e 65 20 69 73 20 6f 66 20   ┆routine);  (* the routine is of ┆
0x09c2a0…09c2c0             73 70 65 63 69 61 6c 20 69 6e 74 65 72 72 65 73 74 2c 20 69 66 20 69 74 20 69 73 3a 20 27 6f 72   ┆special interrest, if it is: 'or┆
0x09c2c0…09c2e0             64 27 2c 20 27 73 75 63 63 27 2c 20 65 74 63 20 2a 29 0a 69 66 20 73 70 69 78 20 3c 3d 20 6d 61   ┆d', 'succ', etc *) if spix <= ma┆
0x09c2e0…09c300             78 73 74 64 73 70 69 78 20 74 68 65 6e 0a 73 70 65 63 69 61 6c 73 70 69 78 20 28 63 75 72 5f 72   ┆xstdspix then specialspix (cur_r┆
0x09c300…09c320             6f 75 74 69 6e 65 29 3b 0a 0a 65 6e 64 3b 20 28 2a 20 77 69 74 68 20 63 75 72 5f 72 6f 75 74 69   ┆outine);  end; (* with cur_routi┆
0x09c320…09c340             6e 65 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 63 6f 6e 73 74 61 6e 74 64 65 63 6c 3a   ┆ne *)  end;    cendconstantdecl:┆
0x09c340…09c360             0a 0a 62 65 67 69 6e 0a 0a 74 65 73 74 76 61 6c 75 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a   ┆  begin  testvalue (stacktop);  ┆
0x09c360…09c380             77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f 20 28 2a 20 6e 62 20 6a 75 73 74 20   ┆with  listfirst ^ do (* nb just ┆
0x09c380…09c3a0             6f 6e 65 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 6c 69 73 74 20 2a 29 0a 62 65 67 69 6e 0a 75 73   ┆one name in the list *) begin us┆
0x09c3a0…09c3c0             65 64 6c 65 76 65 6c 3a 3d 20 6c 6f 77 65 73 74 6c 65 76 65 6c 3b 20 20 28 2a 20 6c 65 74 20 74   ┆edlevel:= lowestlevel;  (* let t┆
0x09c3c0…09c3e0             68 65 20 69 64 65 6e 74 69 66 69 65 72 20 62 65 20 64 65 66 69 6e 65 64 20 6e 6f 77 2e 2e 2e 20   ┆he identifier be defined now... ┆
0x09c3e0…09c400             2a 29 0a 77 69 74 68 20 20 73 74 61 63 6b 74 6f 70 20 5e 20 64 6f 0a 74 79 70 65 6e 61 6d 65 20   ┆*) with  stacktop ^ do typename ┆
0x09c400…09c420 (41, 1, 6)  28 2a 20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 2a 29 3a 3d 20 6f 70 5f 74 79 70 65 6e 61 6d 65 3b   ┆(* of constant *):= op_typename;┆
0x09c420…09c440             20 20 28 2a 69 2e 65 2e 20 63 6f 70 79 20 66 72 6f 6d 20 65 78 70 72 65 73 73 69 6f 6e 20 74 79   ┆  (*i.e. copy from expression ty┆
0x09c440…09c460             70 65 20 2a 29 0a 65 6e 64 3b 0a 0a 63 6f 6e 73 74 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b 0a 65   ┆pe *) end;  const_decl:= true; e┆
0x09c460…09c480             6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 63 6f 6e 73   ┆mit_and_release (stacktop); cons┆
0x09c480…09c4a0             74 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 0a 65 6d 69 74 69 64 20 28 78 63 6f 6e 73 74 69   ┆t_decl:= false;  emitid (xconsti┆
0x09c4a0…09c4c0             64 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 74 79 70 65   ┆d, listfirst);  end;    cendtype┆
0x09c4c0…09c4e0             64 65 63 6c 3a 0a 0a 62 65 67 69 6e 0a 65 6d 69 74 74 79 70 65 20 28 63 75 72 5f 74 79 70 65 6e   ┆decl:  begin emittype (cur_typen┆
0x09c4e0…09c500             61 6d 65 29 3b 0a 65 6d 69 74 20 28 78 74 79 70 65 64 65 66 29 3b 0a 0a 28 2a 20 74 68 65 20 74   ┆ame); emit (xtypedef);  (* the t┆
0x09c500…09c520             79 70 65 20 69 73 20 6f 66 20 73 70 65 63 69 61 6c 20 69 6e 74 65 72 72 65 73 74 20 69 6e 20 63   ┆ype is of special interrest in c┆
0x09c520…09c540             61 73 65 20 6f 66 20 27 72 65 66 65 72 65 6e 63 65 27 20 65 74 63 20 2a 29 0a 77 69 74 68 20 20   ┆ase of 'reference' etc *) with  ┆
0x09c540…09c560             63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78 20 3c 3d 20 6d 61 78   ┆cur_typename ^ do if spix <= max┆
0x09c560…09c580             73 74 64 73 70 69 78 20 74 68 65 6e 0a 73 70 65 63 69 61 6c 73 70 69 78 20 28 63 75 72 5f 74 79   ┆stdspix then specialspix (cur_ty┆
0x09c580…09c5a0             70 65 6e 61 6d 65 29 3b 0a 0a 70 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 6e 6f 69   ┆pename);  poptype;  end;    cnoi┆
0x09c5a0…09c5c0             6e 69 74 2c 0a 63 69 6e 69 74 3a 0a 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 3a 3d   ┆nit, cinit: var_initialization:=┆
0x09c5c0…09c5e0             20 72 65 63 74 79 70 65 20 3d 20 63 69 6e 69 74 3b 0a 0a 0a 0a 63 65 6e 64 76 61 72 64 65 63 6c   ┆ rectype = cinit;    cendvardecl┆
0x09c5e0…09c600             3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 73 65 6d 61 70 68 6f 72 65 20 61 6e 64 20 70 6f 6f 6c 20   ┆:  begin  (* semaphore and pool ┆
0x09c600…09c620 (41, 1, 7)  6d 61 79 20 6f 6e 6c 79 20 2a 29 0a 28 2a 20 20 20 62 65 20 64 65 63 6c 61 72 65 64 20 6f 6e 20   ┆may only *) (*   be declared on ┆
0x09c620…09c640             70 72 6f 63 65 73 73 2d 6c 65 76 65 6c 20 2a 29 0a 0a 69 66 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f   ┆process-level *)  if cur_blockno┆
0x09c640…09c660             20 3c 3e 20 70 72 6f 63 65 73 73 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e 0a 77 69 74   ┆ <> process_block then begin wit┆
0x09c660…09c680             68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 69 66 20 5b 20 74 5f 73 65 6d 61   ┆h  cur_typenode ^ do if [ t_sema┆
0x09c680…09c6a0             70 68 6f 72 65 2c 20 74 5f 70 6f 6f 6c 2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 20 5d 20 2a 20   ┆phore, t_pool, t_extprocess ] * ┆
0x09c6a0…09c6c0             63 6f 6e 74 65 6e 74 73 20 28 2a 20 6f 66 20 74 79 70 65 20 2a 29 20 3c 3e 20 5b 5d 20 74 68 65   ┆contents (* of type *) <> [] the┆
0x09c6c0…09c6e0             6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 74 79 70 65 5f 6d 61 79 5f 6f 6e 6c 79 5f 62 65 5f   ┆n begin error (type_may_only_be_┆
0x09c6e0…09c700             75 73 65 64 5f 61 74 5f 70 72 6f 63 65 73 73 5f 6c 65 76 65 6c 29 3b 0a 73 65 74 5f 65 72 72 6f   ┆used_at_process_level); set_erro┆
0x09c700…09c720             72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 74   ┆r_type; end; end;  (* transfer t┆
0x09c720…09c740             68 65 20 74 79 70 65 20 74 6f 20 61 6c 6c 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20 74 68 65 20   ┆he type to all variables in the ┆
0x09c740…09c760             6e 61 6d 65 6c 69 73 74 20 2a 29 0a 0a 77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f   ┆namelist *)  with  listlast ^ do┆
0x09c760…09c780             20 6c 69 73 74 74 6f 70 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74   ┆ listtop:= nextname;  while list┆
0x09c780…09c7a0             66 69 72 73 74 20 3c 3e 20 6c 69 73 74 74 6f 70 20 64 6f 0a 62 65 67 69 6e 0a 65 6d 69 74 69 64   ┆first <> listtop do begin emitid┆
0x09c7a0…09c7c0             20 28 78 76 61 72 69 64 2c 20 6c 69 73 74 66 69 72 73 74 29 3b 0a 77 69 74 68 20 20 6c 69 73 74   ┆ (xvarid, listfirst); with  list┆
0x09c7c0…09c7e0             66 69 72 73 74 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f   ┆first ^ do begin typename:= cur_┆
0x09c7e0…09c800             74 79 70 65 6e 61 6d 65 3b 0a 6c 69 73 74 66 69 72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a   ┆typename; listfirst:= nextname; ┆
0x09c800…09c820 (41, 1, 8)  65 6e 64 3b 0a 65 6e 64 3b 0a 0a 65 6d 69 74 74 79 70 65 20 28 63 75 72 5f 74 79 70 65 6e 61 6d   ┆end; end;  emittype (cur_typenam┆
0x09c820…09c840             65 29 3b 0a 0a 69 66 20 76 61 72 5f 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 74 68 65 6e 0a   ┆e);  if var_initialization then ┆
0x09c840…09c860             62 65 67 69 6e 0a 74 65 73 74 69 6e 69 74 69 61 6c 69 7a 65 20 28 63 75 72 5f 74 79 70 65 6e 61   ┆begin testinitialize (cur_typena┆
0x09c860…09c880             6d 65 2c 20 76 61 72 5f 69 6e 69 74 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29 3b 0a 65 6d 69 74   ┆me, var_init_incompatible); emit┆
0x09c880…09c8a0             5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 65 6d 69 74 20 28 78   ┆_and_release (stacktop); emit (x┆
0x09c8a0…09c8c0             69 6e 69 74 63 6f 6e 73 74 29 3b 0a 65 6e 64 3b 0a 0a 65 6d 69 74 20 28 78 76 61 72 6c 69 73 74   ┆initconst); end;  emit (xvarlist┆
0x09c8c0…09c8e0             29 3b 0a 0a 70 6f 70 74 79 70 65 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 0a 63 65 78 70 6f 72 74 2c 0a   ┆);  poptype;  end;     cexport, ┆
0x09c8e0…09c900             63 65 78 70 6f 72 74 76 61 6c 75 65 2c 0a 63 65 78 70 6f 72 74 73 69 7a 65 2c 0a 63 65 78 70 6f   ┆cexportvalue, cexportsize, cexpo┆
0x09c900…09c920             72 74 64 69 73 70 2c 0a 63 65 78 70 6f 72 74 6f 66 66 73 65 74 2c 0a 63 65 78 70 6f 72 74 61 64   ┆rtdisp, cexportoffset, cexportad┆
0x09c920…09c940             64 72 3a 0a 65 78 70 6f 72 74 5f 70 72 6f 63 65 64 75 72 65 3b 0a 0a 63 65 6e 64 64 65 63 6c 61   ┆dr: export_procedure;  cenddecla┆
0x09c940…09c960             72 61 74 69 6f 6e 73 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68 69 73 20 72 65 63 6f 72 64 20   ┆rations:  begin  (* this record ┆
0x09c960…09c980             63 6f 6d 65 73 20 61 74 20 65 6e 64 20 6f 66 20 65 61 63 68 20 63 6f 6e 74 65 78 74 20 2a 29 0a   ┆comes at end of each context *) ┆
0x09c980…09c9a0             28 2a 20 20 20 61 6e 64 20 61 74 20 74 68 65 20 66 69 72 73 74 20 27 62 65 67 69 6e 27 20 69 6e   ┆(*   and at the first 'begin' in┆
0x09c9a0…09c9c0             20 61 20 72 6f 75 74 69 6e 65 20 2a 29 0a 0a 28 2a 20 74 68 65 20 73 65 70 61 72 61 74 69 6f 6e   ┆ a routine *)  (* the separation┆
0x09c9c0…09c9e0             20 6f 66 20 74 68 65 73 65 20 74 77 6f 20 77 69 6c 6c 20 62 65 20 64 6f 6e 65 20 62 79 20 27 73   ┆ of these two will be done by 's┆
0x09c9e0…09ca00             74 61 72 74 6c 61 62 65 6c 73 63 6f 70 65 27 20 2a 29 0a 0a 61 66 74 65 72 64 65 63 6c 3a 3d 20   ┆tartlabelscope' *)  afterdecl:= ┆
0x09ca00…09ca20 (41, 1, 9)  74 72 75 65 3b 0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 61 6c 6c 20 66 6f 72 77 61 72 64 2d   ┆true;  (* test that all forward-┆
0x09ca20…09ca40             64 65 63 6c 61 72 65 64 20 72 6f 75 74 69 6e 65 73 20 68 61 76 65 20 62 65 65 6e 20 73 6f 6c 76   ┆declared routines have been solv┆
0x09ca40…09ca60             65 64 20 2a 29 0a 77 69 74 68 20 20 6e 61 6d 65 6c 65 76 65 6c 5e 20 64 6f 0a 63 75 72 6e 61 6d   ┆ed *) with  namelevel^ do curnam┆
0x09ca60…09ca80             65 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 20 20 20 28 2a 20 66 69 72 73 74 20 6e 61 6d 65 20 69   ┆e:= firstname;   (* first name i┆
0x09ca80…09caa0             6e 20 6e 61 6d 65 20 6c 69 73 74 20 2a 29 0a 77 68 69 6c 65 20 63 75 72 6e 61 6d 65 20 3c 3e 20   ┆n name list *) while curname <> ┆
0x09caa0…09cac0             6e 69 6c 6e 61 6d 65 20 64 6f 0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 0a 62 65   ┆nilname do with  curname ^ do be┆
0x09cac0…09cae0             67 69 6e 0a 69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65   ┆gin if forward_decl then begin e┆
0x09cae0…09cb00             72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 20 28 2a 20 6f 66 20 63 75 72 6e 61 6d 65 20 2a   ┆rrorspix:= spix; (* of curname *┆
0x09cb00…09cb20             29 0a 65 72 72 6f 72 20 28 66 6f 72 77 61 72 64 5f 6e 6f 74 5f 73 6f 6c 76 65 64 29 3b 0a 65 6e   ┆) error (forward_not_solved); en┆
0x09cb20…09cb40             64 3b 0a 63 75 72 6e 61 6d 65 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 63 75 72   ┆d; curname:= nextname; end;  cur┆
0x09cb40…09cb60             5f 64 79 6e 5f 76 61 72 5f 6c 65 76 65 6c 3a 3d 20 6e 69 6c 3b 20 28 2a 20 61 6c 6c 20 76 61 72   ┆_dyn_var_level:= nil; (* all var┆
0x09cb60…09cb80             69 61 6e 62 6c 65 20 6c 65 76 65 6c 73 20 61 72 65 20 6c 65 67 61 6c 20 2a 29 0a 0a 65 6e 64 3b   ┆ianble levels are legal *)  end;┆
0x09cb80…09cba0             0a 0a 0a 0a 63 73 74 61 72 74 6c 61 62 65 6c 73 63 6f 70 65 2c 0a 63 65 6e 64 6c 61 62 65 6c 73   ┆    cstartlabelscope, cendlabels┆
0x09cba0…09cbc0             63 6f 70 65 3a 0a 0a 62 65 67 69 6e 0a 0a 63 75 72 5f 6c 61 62 65 6c 73 63 6f 70 65 3a 3d 20 70   ┆cope:  begin  cur_labelscope:= p┆
0x09cbc0…09cbe0             61 73 73 69 6e 3b 0a 0a 69 66 20 61 66 74 65 72 64 65 63 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a   ┆assin;  if afterdecl then begin ┆
0x09cbe0…09cc00             28 2a 20 74 68 69 73 20 69 73 20 74 68 65 20 27 62 65 67 69 6e 27 20 6f 66 20 61 20 72 6f 75 74   ┆(* this is the 'begin' of a rout┆
0x09cc00…09cc20 (41, 1, 10) 69 6e 65 20 2a 29 0a 61 66 74 65 72 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 65 78   ┆ine *) afterdecl:= false;  if ex┆
0x09cc20…09cc40             70 65 63 74 69 6e 67 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e 5f 62 6c 6f 63 6b 3b 20   ┆pecting_block then begin_block; ┆
0x09cc40…09cc60             28 2a 20 62 65 63 61 75 73 65 20 74 68 65 72 65 20 77 65 72 65 20 6e 6f 20 64 65 63 6c 61 72 61   ┆(* because there were no declara┆
0x09cc60…09cc80             74 69 6f 6e 73 20 61 74 20 61 6c 6c 20 2a 29 0a 0a 69 66 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20   ┆tions at all *)  if cur_blockno ┆
0x09cc80…09cca0             3d 20 70 72 6f 63 65 73 73 5f 62 6c 6f 63 6b 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20 70 72   ┆= process_block then begin (* pr┆
0x09cca0…09ccc0             6f 63 65 73 73 20 6c 65 76 65 6c 20 2a 29 0a 28 2a 20 66 69 6e 64 20 74 68 65 20 72 65 6c 65 76   ┆ocess level *) (* find the relev┆
0x09ccc0…09cce0             61 6e 74 20 65 78 63 65 70 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 20 2a 29 0a 0a 63 75 72 6e   ┆ant exception procedure *)  curn┆
0x09cce0…09cd00             61 6d 65 3a 3d 20 66 69 6e 64 6e 61 6d 65 20 28 65 78 63 65 70 74 69 6f 6e 5f 73 70 69 78 29 3b   ┆ame:= findname (exception_spix);┆
0x09cd00…09cd20             0a 77 69 74 68 20 20 63 75 72 6e 61 6d 65 20 5e 20 64 6f 20 28 2a 20 6e 61 6d 65 6e 6f 64 65 20   ┆ with  curname ^ do (* namenode ┆
0x09cd20…09cd40             6f 66 20 65 78 63 65 70 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 20 2a 29 0a 69 66 20 6e 61 6d   ┆of exception procedure *) if nam┆
0x09cd40…09cd60             65 6b 69 6e 64 20 3c 3e 20 63 70 72 6f 63 65 64 75 72 65 20 74 68 65 6e 0a 63 75 72 6e 61 6d 65   ┆ekind <> cprocedure then curname┆
0x09cd60…09cd80             3a 3d 20 65 78 63 65 70 74 69 6f 6e 5f 70 72 6f 63 6e 61 6d 65 3b 0a 28 2a 20 6e 62 20 6e 62 20   ┆:= exception_procname; (* nb nb ┆
0x09cd80…09cda0             6e 62 20 6e 62 3a 20 74 65 73 74 20 6b 6f 72 72 65 6b 74 20 70 61 72 61 6d 6c 69 73 74 65 20 2a   ┆nb nb: test korrekt paramliste *┆
0x09cda0…09cdc0             29 0a 0a 65 6d 69 74 69 64 20 28 78 65 78 63 65 70 74 69 6f 6e 2c 20 63 75 72 6e 61 6d 65 29 3b   ┆)  emitid (xexception, curname);┆
0x09cdc0…09cde0             0a 65 6e 64 3b 0a 0a 65 6d 69 74 20 28 78 69 6e 69 74 62 6c 6f 63 6b 29 3b 0a 0a 69 6e 69 74 6c   ┆ end;  emit (xinitblock);  initl┆
0x09cde0…09ce00             61 62 65 6c 73 3b 0a 0a 65 6e 64 3b 0a 0a 73 65 74 5f 6c 61 62 65 6c 5f 73 74 61 74 65 20 28 72   ┆abels;  end;  set_label_state (r┆
0x09ce00…09ce20 (41, 1, 11) 65 63 74 79 70 65 20 3d 20 63 73 74 61 72 74 6c 61 62 65 6c 73 63 6f 70 65 29 3b 0a 0a 65 6e 64   ┆ectype = cstartlabelscope);  end┆
0x09ce20…09ce40             3b 0a 0a 0a 0a 63 62 65 67 69 6e 63 6f 64 65 3a 0a 62 65 67 69 6e 0a 62 65 67 69 6e 5f 62 6c 6f   ┆;    cbegincode: begin begin_blo┆
0x09ce40…09ce60             63 6b 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b   ┆ck; emit_and_release (stacktop);┆
0x09ce60…09ce80             20 20 28 2a 20 6c 69 74 65 72 61 6c 20 3d 3d 20 73 74 61 63 6b 20 61 70 70 65 74 69 74 65 20 2a   ┆  (* literal == stack appetite *┆
0x09ce80…09cea0             29 0a 65 6d 69 74 20 28 78 62 65 67 69 6e 63 6f 64 65 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 6f   ┆) emit (xbegincode); end;    cco┆
0x09cea0…09cec0             64 65 6c 69 6e 65 3a 0a 62 65 67 69 6e 0a 65 6d 69 74 20 28 78 63 6f 64 65 6c 69 6e 65 29 3b 0a   ┆deline: begin emit (xcodeline); ┆
0x09cec0…09cee0             6c 69 6e 65 6e 6f 3a 3d 20 70 61 73 73 69 6e 3b 20 20 28 2a 20 6e 75 6d 62 65 72 20 6f 66 20 63   ┆lineno:= passin;  (* number of c┆
0x09cee0…09cf00             68 61 72 73 20 69 6e 20 6c 69 6e 65 20 2a 29 0a 65 6d 69 74 69 6e 20 28 6c 69 6e 65 6e 6f 29 3b   ┆hars in line *) emitin (lineno);┆
0x09cf00…09cf20             0a 66 6f 72 20 6c 69 6e 65 6e 6f 3a 3d 20 6c 69 6e 65 6e 6f 20 64 6f 77 6e 74 6f 20 31 20 64 6f   ┆ for lineno:= lineno downto 1 do┆
0x09cf20…09cf40             20 65 6d 69 74 69 6e 20 28 70 61 73 73 69 6e 29 3b 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 63 6f   ┆ emitin (passin); end;    cendco┆
0x09cf40…09cf60             64 65 2c 0a 63 65 6e 64 62 6c 6f 63 6b 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 72 65 6c 65 61 73   ┆de, cendblock:  begin  (* releas┆
0x09cf60…09cf80             65 20 61 6c 6c 20 6c 6f 63 61 6c 20 6e 61 6d 65 6e 6f 64 65 73 20 61 6e 64 20 74 68 65 69 72 20   ┆e all local namenodes and their ┆
0x09cf80…09cfa0             74 79 70 65 6e 6f 64 65 73 20 2a 29 0a 0a 28 2a 20 6e 6f 74 69 63 65 3a 20 74 68 65 20 6e 61 6d   ┆typenodes *)  (* notice: the nam┆
0x09cfa0…09cfc0             65 6e 6f 64 65 73 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 61 20 62 6c   ┆enodes of the parameters to a bl┆
0x09cfc0…09cfe0             6f 63 6b 20 2a 29 0a 28 2a 20 20 20 20 20 20 20 20 20 61 72 65 20 72 65 6c 65 61 73 65 64 20 62   ┆ock *) (*         are released b┆
0x09cfe0…09d000             79 20 74 68 65 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 62 6c 6f 63 6b 20 2a 29 0a 0a 69 66 20 72   ┆y the surrounding block *)  if r┆
0x09d000…09d020 (41, 1, 12) 65 63 74 79 70 65 20 3d 20 63 65 6e 64 63 6f 64 65 20 74 68 65 6e 0a 65 6d 69 74 20 28 78 65 6e   ┆ectype = cendcode then emit (xen┆
0x09d020…09d040             64 63 6f 64 65 29 0a 65 6c 73 65 0a 65 6d 69 74 20 28 78 65 6e 64 62 6c 6f 63 6b 29 3b 0a 69 66   ┆dcode) else emit (xendblock); if┆
0x09d040…09d060             20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 3c 3e 20 70 72 6f 63 65 73 73 5f 62 6c 6f 63 6b 20 74 68   ┆ cur_blockno <> process_block th┆
0x09d060…09d080             65 6e 0a 63 75 72 5f 62 6c 6f 63 6b 6e 6f 3a 3d 20 63 75 72 5f 62 6c 6f 63 6b 6e 6f 20 2d 20 31   ┆en cur_blockno:= cur_blockno - 1┆
0x09d080…09d0a0             3b 0a 28 2a 20 72 65 6c 65 61 73 65 20 6c 6f 63 61 6c 20 64 65 63 6c 61 72 65 64 20 76 61 72 69   ┆; (* release local declared vari┆
0x09d0a0…09d0c0             61 62 6c 65 73 2c 20 6e 62 20 21 20 6f 6e 6c 79 20 70 72 65 63 65 6e 74 20 69 66 20 22 65 6e 64   ┆ables, nb ! only precent if "end┆
0x09d0c0…09d0e0             62 6c 6f 63 6b 22 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 65 6e 64 62 6c 6f 63 6b   ┆block" *) if rectype = cendblock┆
0x09d0e0…09d100             20 74 68 65 6e 0a 0a 72 65 6c 65 61 73 65 6e 61 6d 65 73 20 28 20 6e 61 6d 65 6c 65 76 65 6c 5e   ┆ then  releasenames ( namelevel^┆
0x09d100…09d120             20 2e 20 66 69 72 73 74 6e 61 6d 65 29 3b 0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 66 75 6e   ┆ . firstname);  (* test that fun┆
0x09d120…09d140             63 74 69 6f 6e 73 20 68 61 76 65 20 68 61 64 20 61 20 63 68 61 6e 63 65 20 66 6f 72 20 61 73 73   ┆ctions have had a chance for ass┆
0x09d140…09d160             69 67 6e 69 6e 67 20 61 20 76 61 6c 75 65 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63   ┆igning a value *) if rectype = c┆
0x09d160…09d180             65 6e 64 62 6c 6f 63 6b 20 74 68 65 6e 0a 77 69 74 68 20 20 6e 61 6d 65 6c 65 76 65 6c 5e 2e 66   ┆endblock then with  namelevel^.f┆
0x09d180…09d1a0             6f 72 6d 65 72 5f 6c 65 76 65 6c 5e 20 64 6f 20 20 28 2a 20 70 61 72 61 6d 65 74 65 72 2d 6c 65   ┆ormer_level^ do  (* parameter-le┆
0x09d1a0…09d1c0             76 65 6c 20 2a 29 0a 77 69 74 68 20 20 66 69 72 73 74 6e 61 6d 65 20 5e 20 64 6f 20 20 20 20 20   ┆vel *) with  firstname ^ do     ┆
0x09d1c0…09d1e0             20 20 20 28 2a 20 66 69 72 73 74 20 66 6f 72 6d 61 6c 20 6e 61 6d 65 20 2a 29 0a 69 66 20 6e 61   ┆   (* first formal name *) if na┆
0x09d1e0…09d200             6d 65 6b 69 6e 64 20 3d 20 63 66 75 6e 63 76 61 6c 20 74 68 65 6e 20 20 20 20 20 20 28 2a 20 69   ┆mekind = cfuncval then      (* i┆
0x09d200…09d220 (41, 1, 13) 74 20 6d 75 73 74 20 68 61 76 65 20 62 65 65 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 2a 29 0a 69   ┆t must have been a function *) i┆
0x09d220…09d240             66 20 6e 6f 74 20 66 75 6e 63 5f 61 73 73 69 67 6e 65 64 20 74 68 65 6e 0a 65 72 72 6f 72 20 28   ┆f not func_assigned then error (┆
0x09d240…09d260             66 75 6e 63 76 61 6c 5f 6e 6f 74 5f 75 73 65 64 29 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 74 79 70   ┆funcval_not_used);  end;    ctyp┆
0x09d260…09d280             65 69 64 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 6e 20 65 78 69 73 74 69 6e 67 20 74 79 70 65   ┆eid:  begin  (* an existing type┆
0x09d280…09d2a0             6e 6f 64 65 20 77 69 6c 6c 20 62 65 20 72 65 75 73 65 64 20 2a 29 0a 0a 70 75 73 68 74 79 70 65   ┆node will be reused *)  pushtype┆
0x09d2a0…09d2c0             3b 20 28 2a 20 62 65 63 61 75 73 65 20 74 79 70 65 73 20 6d 61 79 20 62 65 20 6e 65 73 74 65 64   ┆; (* because types may be nested┆
0x09d2c0…09d2e0             20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 75 73 65 6e 61 6d 65 20 28 70 61 73   ┆ *)  cur_typename:= usename (pas┆
0x09d2e0…09d300             73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20 2a 29 20 29 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74   ┆sin (* = spix *) );  with  cur_t┆
0x09d300…09d320             79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 0a 62 65 67 69 6e 0a 0a 63 75 72 5f 74 79 70 65 6e 6f 64   ┆ypename ^ do  begin  cur_typenod┆
0x09d320…09d340             65 3a 3d 20 74 79 70 3b 0a 0a 28 2a 20 74 65 73 74 20 74 68 61 74 20 74 68 65 20 6e 61 6d 65 6e   ┆e:= typ;  (* test that the namen┆
0x09d340…09d360             6f 64 65 20 72 65 61 6c 6c 79 20 77 61 73 20 61 20 74 79 70 65 6e 61 6d 65 20 6e 6f 64 65 20 2a   ┆ode really was a typename node *┆
0x09d360…09d380             29 0a 69 66 20 28 6e 61 6d 65 6b 69 6e 64 3c 3e 63 74 79 70 65 29 20 61 6e 64 20 28 6e 61 6d 65   ┆) if (namekind<>ctype) and (name┆
0x09d380…09d3a0             6b 69 6e 64 3c 3e 63 65 78 74 70 72 6f 63 65 73 73 29 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72   ┆kind<>cextprocess) then begin er┆
0x09d3a0…09d3c0             72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 0a 65 72 72 6f 72 20 28 6e 6f 74 5f 74 79 70 65 6e   ┆rorspix:= spix; error (not_typen┆
0x09d3c0…09d3e0             61 6d 65 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b   ┆ame); set_error_type; end;  end;┆
0x09d3e0…09d400             20 28 2a 20 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 2a 29 0a 0a 69 66 20 63 75 72   ┆ (* with cur_typename *)  if cur┆
0x09d400…09d420 (41, 1, 14) 5f 6e 61 6d 65 6b 69 6e 64 20 3d 20 63 74 79 70 65 20 74 68 65 6e 0a 62 65 67 69 6e 0a 28 2a 20   ┆_namekind = ctype then begin (* ┆
0x09d420…09d440             74 68 69 73 20 69 73 3a 20 20 20 3c 6e 61 6d 65 3e 20 3d 20 3c 74 79 70 65 6e 61 6d 65 3e 3b 20   ┆this is:   <name> = <typename>; ┆
0x09d440…09d460             20 2a 29 0a 28 2a 20 73 65 74 75 70 20 61 6e 20 27 61 6c 69 61 73 27 20 6e 6f 64 65 20 2a 29 0a   ┆ *) (* setup an 'alias' node *) ┆
0x09d460…09d480             0a 28 2a 20 69 74 20 69 73 20 6e 6f 74 20 6e 65 73 63 65 73 73 61 72 79 20 74 6f 20 74 65 73 74   ┆ (* it is not nescessary to test┆
0x09d480…09d4a0             20 66 6f 72 20 72 65 63 75 72 73 69 76 65 20 75 73 65 2c 20 62 65 63 61 75 73 65 20 69 74 20 2a   ┆ for recursive use, because it *┆
0x09d4a0…09d4c0             29 0a 28 2a 20 68 61 73 20 62 65 65 6e 20 74 65 73 74 65 64 20 74 68 61 74 20 72 69 67 74 68 68   ┆) (* has been tested that rigthh┆
0x09d4c0…09d4e0             61 6e 64 20 6e 61 6d 65 20 77 61 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 64 65 66 69 6e   ┆and name was the name of a defin┆
0x09d4e0…09d500             65 64 20 74 79 70 65 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d 20 61 6c 6c 6f 63   ┆ed type *)  cur_typenode:= alloc┆
0x09d500…09d520             5f 74 79 70 65 6e 6f 64 65 3b 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20   ┆_typenode; with  cur_typenode ^ ┆
0x09d520…09d540             64 6f 0a 62 65 67 69 6e 0a 74 79 70 65 6b 69 6e 64 3a 3d 20 63 61 6c 69 61 73 3b 0a 65 6c 65 6d   ┆do begin typekind:= calias; elem┆
0x09d540…09d560             65 6e 74 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 69 6e 64 65 78 20 20 20 3a 3d 20 20   ┆ent:= cur_typename; index   :=  ┆
0x09d560…09d580             20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 69 6e 64 65 78 3b 0a 63 6f 6e 74   ┆ element ^ . typ ^ . index; cont┆
0x09d580…09d5a0             65 6e 74 73 3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 63 6f 6e   ┆ents:=   element ^ . typ ^ . con┆
0x09d5a0…09d5c0             74 65 6e 74 73 3b 0a 70 61 63 6b 66 6c 61 67 3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20   ┆tents; packflag:=   element ^ . ┆
0x09d5c0…09d5e0             74 79 70 20 5e 20 2e 20 70 61 63 6b 66 6c 61 67 3b 0a 65 6e 64 3b 0a 0a 63 75 72 5f 74 79 70 65   ┆typ ^ . packflag; end;  cur_type┆
0x09d5e0…09d600             6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d 65 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e   ┆name:= curname;  with  cur_typen┆
0x09d600…09d620 (41, 1, 15) 61 6d 65 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74 79 70 3a 3d 20 63 75 72 5f 74 79 70 65 6e 6f 64   ┆ame ^ do begin typ:= cur_typenod┆
0x09d620…09d640             65 3b 0a 69 66 20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 61 6e 64 20 28 74 79 70 5e 2e 65 6c 65   ┆e; if forward_decl and (typ^.ele┆
0x09d640…09d660             6d 65 6e 74 5e 2e 74 79 70 5e 2e 74 79 70 65 6b 69 6e 64 3c 3e 63 70 6f 69 6e 74 65 72 29 20 74   ┆ment^.typ^.typekind<>cpointer) t┆
0x09d660…09d680             68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70 69 78 3a 3d 20 73 70 69 78 3b 0a 65 72 72 6f   ┆hen begin errorspix:= spix; erro┆
0x09d680…09d6a0             72 28 66 6f 72 77 61 72 64 5f 6d 75 73 74 5f 62 65 5f 70 6f 69 6e 74 65 72 29 3b 0a 73 65 74 5f   ┆r(forward_must_be_pointer); set_┆
0x09d6a0…09d6c0             65 72 72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 66 6f 72 77 61 72 64 5f 64 65 63 6c 3a 3d 20   ┆error_type; end; forward_decl:= ┆
0x09d6c0…09d6e0             66 61 6c 73 65 3b 0a 65 6e 64 3b 0a 0a 0a 65 6e 64 3b 20 28 2a 20 69 66 20 6e 61 6d 65 6b 69 6e   ┆false; end;   end; (* if namekin┆
0x09d6e0…09d700             64 20 3d 20 63 74 79 70 65 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0a 0a 0a 63 65 6e 64 74 79 70 65 3a   ┆d = ctype *)  end;     cendtype:┆
0x09d700…09d720             20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 0c 0a 63 77 69 74 68 6f 75 74 5f 64 61 74 61 3a   ┆ ; (* blind *)    cwithout_data:┆
0x09d720…09d740             0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68 69 73 20 73 70 65 63 69 61 6c 20 74 79 70 65 20 69 73   ┆  begin  (* this special type is┆
0x09d740…09d760             20 75 73 65 64 20 62 79 20 27 70 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f 6e 27 20 74 6f 20 73 69   ┆ used by 'pool definition' to si┆
0x09d760…09d780             6d 75 6c 61 74 65 20 6e 6f 74 79 70 65 20 2a 29 0a 0a 70 75 73 68 74 79 70 65 3b 20 28 2a 20 62   ┆mulate notype *)  pushtype; (* b┆
0x09d780…09d7a0             65 63 61 75 73 65 20 74 68 69 73 20 74 79 70 65 20 69 73 20 6e 65 73 74 65 64 20 69 6e 20 27 70   ┆ecause this type is nested in 'p┆
0x09d7a0…09d7c0             6f 6f 6c 2d 64 65 66 27 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 6e 69 6c 5f   ┆ool-def' *)  cur_typename:= nil_┆
0x09d7c0…09d7e0             74 79 70 65 6e 61 6d 65 3b 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d 20 20 63 75 72 5f 74 79   ┆typename; cur_typenode:=  cur_ty┆
0x09d7e0…09d800             70 65 6e 61 6d 65 20 5e 20 2e 20 74 79 70 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 6e 65 77 74 79 70   ┆pename ^ . typ;  end;    cnewtyp┆
0x09d800…09d820 (42, 0, 1)  65 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 61 20 6e 65 77 20 74 79 70 65 20 77 69 6c 6c 20 62 65   ┆e:  begin  (* a new type will be┆
0x09d820…09d840             20 63 6f 6e 73 74 72 75 63 74 65 64 20 2a 29 0a 0a 70 75 73 68 74 79 70 65 3b 20 28 2a 20 62 65   ┆ constructed *)  pushtype; (* be┆
0x09d840…09d860             63 61 75 73 65 20 74 79 70 65 73 20 6d 61 79 20 62 65 20 6e 65 73 74 65 64 20 2a 29 0a 0a 69 66   ┆cause types may be nested *)  if┆
0x09d860…09d880             20 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 20 3c 3e 20 63 74 79 70 65 20 74 68 65 6e 0a 62 65 67 69   ┆ cur_namekind <> ctype then begi┆
0x09d880…09d8a0             6e 0a 28 2a 20 69 6d 70 6c 69 63 69 74 20 74 79 70 65 2c 20 69 6e 73 65 72 74 20 70 73 65 75 64   ┆n (* implicit type, insert pseud┆
0x09d8a0…09d8c0             6f 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 6e 65   ┆o typename *)  cur_typename:= ne┆
0x09d8c0…09d8e0             77 6e 61 6d 65 20 28 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69 78 29 3b 0a 0a 77 69 74 68 20 20 63   ┆wname (anonymous_spix);  with  c┆
0x09d8e0…09d900             75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 74 79 70   ┆ur_typename ^ do namekind:= ctyp┆
0x09d900…09d920             65 3b 0a 0a 65 6e 64 0a 0a 65 6c 73 65 0a 0a 62 65 67 69 6e 0a 28 2a 20 65 78 70 6c 69 63 69 74   ┆e;  end  else  begin (* explicit┆
0x09d920…09d940             20 74 79 70 65 2c 20 75 73 65 20 27 63 75 72 6e 61 6d 65 27 20 61 73 20 27 63 75 72 5f 74 79 70   ┆ type, use 'curname' as 'cur_typ┆
0x09d940…09d960             65 6e 61 6d 65 27 20 2a 29 0a 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 6e 61 6d   ┆ename' *)  cur_typename:= curnam┆
0x09d960…09d980             65 3b 0a 63 75 72 5f 6e 61 6d 65 6b 69 6e 64 3a 3d 20 63 6e 6f 63 6f 64 65 3b 20 28 2a 20 6f 6e   ┆e; cur_namekind:= cnocode; (* on┆
0x09d980…09d9a0             6c 79 20 74 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 6e 65 77 74 79 70 65 20 69 73 20 65 78 70 6c   ┆ly the outermost newtype is expl┆
0x09d9a0…09d9c0             69 63 69 74 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 28 2a 20 70 72 65 70 61 72 65 20 74 68 65 20 73 75   ┆icit *)  end;  (* prepare the su┆
0x09d9c0…09d9e0             63 63 65 64 69 6e 67 20 74 79 70 65 64 65 66 69 6e 69 74 69 6f 6e 73 20 2a 29 0a 63 75 72 5f 74   ┆cceding typedefinitions *) cur_t┆
0x09d9e0…09da00             79 70 65 6e 6f 64 65 3a 3d 20 61 6c 6c 6f 63 5f 74 79 70 65 6e 6f 64 65 3b 0a 0a 77 69 74 68 20   ┆ypenode:= alloc_typenode;  with ┆
0x09da00…09da20 (42, 0, 2)  20 63 75 72 5f 74 79 70 65 6e 61 6d 65 20 5e 20 64 6f 0a 74 79 70 3a 3d 20 63 75 72 5f 74 79 70   ┆ cur_typename ^ do typ:= cur_typ┆
0x09da20…09da40             65 6e 6f 64 65 3b 0a 0a 65 6e 64 3b 0a 0a 63 65 78 74 70 72 6f 63 65 73 73 3a 0a 62 65 67 69 6e   ┆enode;  end;  cextprocess: begin┆
0x09da40…09da60             0a 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 5e 20 64 6f 0a 62 65 67 69 6e 0a 6e 61 6d   ┆ with cur_typename^ do begin nam┆
0x09da60…09da80             65 6b 69 6e 64 3a 3d 20 63 65 78 74 70 72 6f 63 65 73 73 3b 20 28 2a 20 63 68 61 6e 67 65 20 66   ┆ekind:= cextprocess; (* change f┆
0x09da80…09daa0             72 6f 6d 20 63 74 79 70 65 20 74 6f 20 63 65 78 74 70 72 6f 63 65 73 73 20 2a 29 0a 74 79 70 65   ┆rom ctype to cextprocess *) type┆
0x09daa0…09dac0             6e 61 6d 65 3a 3d 20 73 6f 6e 5f 74 79 70 65 6e 61 6d 65 3b 0a 72 65 6c 65 61 73 65 5f 74 79 70   ┆name:= son_typename; release_typ┆
0x09dac0…09dae0             65 6e 6f 64 65 28 74 79 70 29 3b 0a 74 79 70 3a 3d 20 73 6f 6e 5f 74 79 70 65 6e 61 6d 65 5e 2e   ┆enode(typ); typ:= son_typename^.┆
0x09dae0…09db00             74 79 70 3b 0a 63 75 72 5f 74 79 70 65 6e 6f 64 65 3a 3d 20 74 79 70 3b 0a 65 6e 64 3b 0a 63 75   ┆typ; cur_typenode:= typ; end; cu┆
0x09db00…09db20             72 5f 72 6f 75 74 69 6e 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 20 28 2a 20 70 72 65   ┆r_routine:= cur_typename; (* pre┆
0x09db20…09db40             70 61 72 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 2a 29 0a 65 6e 64 3b 0a 0a   ┆pare formal parameters *) end;  ┆
0x09db40…09db60             0c 0a 63 73 63 61 6c 61 72 2c 0a 63 73 75 62 72 61 6e 67 65 2c 0a 63 61 72 72 61 79 2c 0a 63 72   ┆  cscalar, csubrange, carray, cr┆
0x09db60…09db80             65 63 6f 72 64 2c 0a 63 73 65 74 2c 0a 63 70 6f 6f 6c 2c 0a 63 70 6f 69 6e 74 65 72 2c 0a 63 72   ┆ecord, cset, cpool, cpointer, cr┆
0x09db80…09dba0             65 61 64 6f 6e 6c 79 2c 0a 63 69 6e 74 65 67 65 72 2c 0a 63 72 65 61 6c 2c 0a 63 6e 69 6c 74 79   ┆eadonly, cinteger, creal, cnilty┆
0x09dba0…09dbc0             70 65 3a 0a 62 65 67 69 6e 0a 28 2a 20 69 6e 73 65 72 74 20 74 68 65 20 72 65 63 74 79 70 65 20   ┆pe: begin (* insert the rectype ┆
0x09dbc0…09dbe0             69 6e 20 74 68 65 20 27 63 75 72 5f 74 79 70 65 6e 6f 64 65 27 20 2a 29 0a 77 69 74 68 20 20 63   ┆in the 'cur_typenode' *) with  c┆
0x09dbe0…09dc00             75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 0a 74 79 70 65 6b 69 6e 64 3a 3d 20 72 65 63 74   ┆ur_typenode ^ do typekind:= rect┆
0x09dc00…09dc20 (42, 0, 3)  79 70 65 3b 0a 0a 28 2a 20 6d 61 79 62 65 20 70 75 73 68 20 74 68 65 20 63 75 72 72 65 6e 74 20   ┆ype;  (* maybe push the current ┆
0x09dc20…09dc40             6e 61 6d 65 6c 69 73 74 2c 20 69 6e 20 63 61 73 65 20 6f 66 20 69 6e 6e 65 72 20 6e 61 6d 65 6c   ┆namelist, in case of inner namel┆
0x09dc40…09dc60             69 73 74 73 20 2a 29 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 72 65 63 6f 72 64 20 74 68 65   ┆ists *) if rectype = crecord the┆
0x09dc60…09dc80             6e 0a 62 65 67 69 6e 0a 70 75 73 68 6c 69 73 74 3b 0a 6e 65 77 6e 61 6d 65 6c 65 76 65 6c 3b 0a   ┆n begin pushlist; newnamelevel; ┆
0x09dc80…09dca0             65 6e 64 3b 0a 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63 73 63 61 6c 61 72 20 74 68 65 6e 0a   ┆end;  if rectype = cscalar then ┆
0x09dca0…09dcc0             62 65 67 69 6e 0a 70 75 73 68 6c 69 73 74 3b 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61   ┆begin pushlist; with  cur_typena┆
0x09dcc0…09dce0             6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78 20 3c 3e 20 61 6e 6f 6e 79 6d 6f 75 73 5f 73 70 69   ┆me ^ do if spix <> anonymous_spi┆
0x09dce0…09dd00             78 20 74 68 65 6e 20 20 20 28 2a 20 6b 65 65 70 20 73 63 61 6c 61 72 65 6c 65 6d 73 20 6f 6e 20   ┆x then   (* keep scalarelems on ┆
0x09dd00…09dd20             74 68 65 20 63 6f 72 72 65 63 74 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 65 6e 64 6e 61 6d 65   ┆the correct namelevel *) endname┆
0x09dd20…09dd40             6c 65 76 65 6c 3b 0a 65 6e 64 3b 0a 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 61 6d 65   ┆level; end;   with  cur_typename┆
0x09dd40…09dd60             20 5e 20 64 6f 0a 69 66 20 28 72 65 63 74 79 70 65 3c 3e 63 70 6f 69 6e 74 65 72 29 20 61 6e 64   ┆ ^ do if (rectype<>cpointer) and┆
0x09dd60…09dd80             20 66 6f 72 77 61 72 64 5f 64 65 63 6c 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 73 70   ┆ forward_decl then begin errorsp┆
0x09dd80…09dda0             69 78 3a 3d 20 73 70 69 78 3b 0a 65 72 72 6f 72 28 66 6f 72 77 61 72 64 5f 6d 75 73 74 5f 62 65   ┆ix:= spix; error(forward_must_be┆
0x09dda0…09ddc0             5f 70 6f 69 6e 74 65 72 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 74 79 70 65 3b 0a 66 6f 72 77 61   ┆_pointer); set_error_type; forwa┆
0x09ddc0…09dde0             72 64 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 3b 0a 65 6e 64 3b 0a 0a 69 66 20 72 65 63 74 79 70   ┆rd_decl:= false; end;  if rectyp┆
0x09dde0…09de00             65 3d 63 70 6f 69 6e 74 65 72 20 74 68 65 6e 0a 63 75 72 5f 74 79 70 65 6e 61 6d 65 5e 2e 66 6f   ┆e=cpointer then cur_typename^.fo┆
0x09de00…09de20 (42, 0, 4)  72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 66 61 6c 73 65 0a 65 6c 73 65 0a 69 66 20 72 65 63 74 79   ┆rward_decl:= false else if recty┆
0x09de20…09de40             70 65 20 3d 20 63 69 6e 74 65 67 65 72 20 74 68 65 6e 0a 69 6e 74 65 67 65 72 5f 74 79 70 65 6e   ┆pe = cinteger then integer_typen┆
0x09de40…09de60             61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 0a 65 6c 73 65 0a 69 66 20 72 65 63 74 79   ┆ame:= cur_typename else if recty┆
0x09de60…09de80             70 65 20 3d 20 63 6e 69 6c 74 79 70 65 20 74 68 65 6e 0a 6e 69 6c 5f 74 79 70 65 6e 61 6d 65 3a   ┆pe = cniltype then nil_typename:┆
0x09de80…09dea0             3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 63 66 6f 72 77 61 72 64 70 6f   ┆= cur_typename; end;  cforwardpo┆
0x09dea0…09dec0             69 6e 74 65 72 3a 0a 77 69 74 68 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 5e 20 64 6f 0a 62 65 67   ┆inter: with cur_typename^ do beg┆
0x09dec0…09dee0             69 6e 0a 72 65 6c 65 61 73 65 5f 74 79 70 65 6e 6f 64 65 28 74 79 70 29 3b 20 28 2a 20 6e 6f 74   ┆in release_typenode(typ); (* not┆
0x09dee0…09df00             20 75 73 65 64 2c 20 61 20 6e 65 77 20 6e 6f 64 65 20 77 69 6c 6c 20 62 65 20 61 6c 6c 6f 63 61   ┆ used, a new node will be alloca┆
0x09df00…09df20             74 65 64 20 77 68 65 6e 20 74 68 65 20 72 65 61 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 73   ┆ted when the real declaration is┆
0x09df20…09df40             20 6d 65 74 20 2a 29 0a 74 79 70 3a 3d 20 64 75 6d 6d 79 5f 74 79 70 65 6e 6f 64 65 3b 0a 66 6f   ┆ met *) typ:= dummy_typenode; fo┆
0x09df40…09df60             72 77 61 72 64 5f 64 65 63 6c 3a 3d 20 74 72 75 65 3b 0a 65 6e 64 3b 20 28 2a 20 66 6f 72 77 61   ┆rward_decl:= true; end; (* forwa┆
0x09df60…09df80             72 64 20 70 6f 69 6e 74 65 72 20 2a 29 0a 0c 0a 63 65 6e 64 73 63 61 6c 61 72 3a 0a 0a 62 65 67   ┆rd pointer *)   cendscalar:  beg┆
0x09df80…09dfa0             69 6e 0a 0a 28 2a 20 61 64 64 20 74 68 65 20 73 63 61 6c 61 72 2d 6c 69 73 74 20 74 6f 20 74 68   ┆in  (* add the scalar-list to th┆
0x09dfa0…09dfc0             65 20 73 63 61 6c 61 72 20 74 79 70 65 20 6e 6f 64 65 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72   ┆e scalar type node *)  with  cur┆
0x09dfc0…09dfe0             5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 73 63   ┆_typenode ^ do (* typenode of sc┆
0x09dfe0…09e000             61 6c 61 72 20 74 79 70 65 20 2a 29 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 6c 69 73   ┆alar type *) begin element:= lis┆
0x09e000…09e020 (42, 0, 5)  74 66 69 72 73 74 3b 0a 28 2a 20 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 73 69 6d 70 6c 65   ┆tfirst; (* contents:= [ t_simple┆
0x09e020…09e040             20 5d 3b 20 20 2a 29 0a 65 6e 64 3b 0a 0a 28 2a 20 69 6e 73 65 72 74 20 74 79 70 65 6e 61 6d 65   ┆ ];  *) end;  (* insert typename┆
0x09e040…09e060             20 69 6e 20 74 68 65 20 77 68 6f 6c 65 20 73 63 61 6c 61 72 2d 6c 69 73 74 20 2a 29 0a 77 69 74   ┆ in the whole scalar-list *) wit┆
0x09e060…09e080             68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69 73 74 74 6f 70 3a 3d 20 6e 65 78 74 6e   ┆h  listlast ^ do listtop:= nextn┆
0x09e080…09e0a0             61 6d 65 3b 0a 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72 73 74 20 3c 3e 20 6c 69 73 74 74 6f 70   ┆ame;  while listfirst <> listtop┆
0x09e0a0…09e0c0             20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f 0a 62 65 67 69 6e 0a 74   ┆ do with  listfirst ^ do begin t┆
0x09e0c0…09e0e0             79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 6c 69 73 74 66 69 72 73   ┆ypename:= cur_typename; listfirs┆
0x09e0e0…09e100             74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79   ┆t:= nextname; end;  with  cur_ty┆
0x09e100…09e120             70 65 6e 61 6d 65 20 5e 20 64 6f 0a 69 66 20 73 70 69 78 20 3c 3e 20 61 6e 6f 6e 79 6d 6f 75 73   ┆pename ^ do if spix <> anonymous┆
0x09e120…09e140             5f 73 70 69 78 20 74 68 65 6e 20 20 28 2a 20 6b 65 65 70 20 73 63 61 6c 61 72 65 6c 65 6d 73 20   ┆_spix then  (* keep scalarelems ┆
0x09e140…09e160             6f 6e 20 63 6f 72 72 65 63 74 20 6e 61 6d 65 6c 65 76 65 6c 20 2a 29 0a 6e 65 77 6e 61 6d 65 6c   ┆on correct namelevel *) newnamel┆
0x09e160…09e180             65 76 65 6c 3b 0a 0a 70 6f 70 6c 69 73 74 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 6f 75 74   ┆evel;  poplist; (* return to out┆
0x09e180…09e1a0             65 72 20 6e 61 6d 65 6c 69 73 74 20 2a 29 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 73 75 62 72   ┆er namelist *)  end;    cendsubr┆
0x09e1a0…09e1c0             61 6e 67 65 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 68 65 20 74 77 6f 20 65 78 70 72 65 73 73   ┆ange:  begin  (* the two express┆
0x09e1c0…09e1e0             69 6f 6e 73 20 61 72 65 20 69 6e 20 27 73 74 61 63 6b 74 6f 70 27 20 61 6e 64 20 27 6e 65 78 74   ┆ions are in 'stacktop' and 'next┆
0x09e1e0…09e200             74 6f 70 27 20 2a 29 0a 0a 28 2a 20 74 68 65 20 74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20   ┆top' *)  (* the two expressions ┆
0x09e200…09e220 (42, 0, 6)  6d 75 73 74 20 62 65 20 3c 73 61 6d 65 3e 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74 79 70 65 20   ┆must be <same> enumeration type ┆
0x09e220…09e240             2a 29 0a 6c 65 66 74 74 79 70 65 6e 61 6d 65 20 28 2a 20 64 75 6d 6d 79 20 61 73 73 69 67 6e 6d   ┆*) lefttypename (* dummy assignm┆
0x09e240…09e260             65 6e 74 20 2a 29 3a 3d 20 74 65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e 20 28 6e 65 78 74 74 6f   ┆ent *):= testenumeration (nextto┆
0x09e260…09e280             70 29 3b 20 28 2a 20 6e 62 3a 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20 3d 20 73 69 6d 70 6c 69   ┆p); (* nb: exprtypename = simpli┆
0x09e280…09e2a0             66 69 65 64 20 74 79 70 65 6e 61 6d 65 20 2a 29 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74   ┆fied typename *) resolvetype (st┆
0x09e2a0…09e2c0             61 63 6b 74 6f 70 2c 20 72 69 67 74 68 74 79 70 65 6e 61 6d 65 2c 20 72 69 67 74 68 65 6c 65 6d   ┆acktop, rigthtypename, rigthelem┆
0x09e2c0…09e2e0             65 6e 74 2c 20 72 69 67 74 68 62 61 73 65 6b 69 6e 64 29 3b 0a 69 66 20 65 78 70 72 74 79 70 65   ┆ent, rigthbasekind); if exprtype┆
0x09e2e0…09e300             6e 61 6d 65 20 3c 3e 20 72 69 67 74 68 74 79 70 65 6e 61 6d 65 20 74 68 65 6e 0a 62 65 67 69 6e   ┆name <> rigthtypename then begin┆
0x09e300…09e320             0a 65 72 72 6f 72 20 28 73 75 62 72 61 6e 67 65 5f 65 6c 65 6d 73 5f 6d 75 73 74 5f 62 65 5f 65   ┆ error (subrange_elems_must_be_e┆
0x09e320…09e340             6e 75 6d 65 72 61 74 69 6f 6e 29 3b 0a 65 78 70 72 74 79 70 65 6e 61 6d 65 3a 3d 20 65 72 72 6f   ┆numeration); exprtypename:= erro┆
0x09e340…09e360             72 5f 74 79 70 65 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 28 2a 20 62 69 6e 64 20 74 68 65 20 74 77   ┆r_typename; end;  (* bind the tw┆
0x09e360…09e380             6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 6f 6e 65 20 2a 29   ┆o expressions to a single one *)┆
0x09e380…09e3a0             0a 6f 70 65 72 20 28 62 69 6e 61 72 79 2c 20 63 72 61 6e 67 65 66 69 72 73 74 2c 20 65 78 70 72   ┆ oper (binary, crangefirst, expr┆
0x09e3a0…09e3c0             74 79 70 65 6e 61 6d 65 29 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e   ┆typename);  with  cur_typenode ^┆
0x09e3c0…09e3e0             20 64 6f 0a 62 65 67 69 6e 0a 73 75 62 65 78 70 72 3a 3d 20 74 61 6b 65 5f 73 74 61 63 6b 74 6f   ┆ do begin subexpr:= take_stackto┆
0x09e3e0…09e400             70 3b 20 28 2a 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 74 77 6f 20 65 78 70 72 65 73 73 69 6f   ┆p; (* remember the two expressio┆
0x09e400…09e420 (42, 0, 7)  6e 73 20 2a 29 0a 69 6e 64 65 78 20 20 3a 3d 20 65 78 70 72 74 79 70 65 6e 61 6d 65 3b 0a 28 2a   ┆ns *) index  := exprtypename; (*┆
0x09e420…09e440             20 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 73 69 6d 70 6c 65 20 5d 3b 20 20 2a 29 0a 65 6e   ┆ contents:= [ t_simple ];  *) en┆
0x09e440…09e460             64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 61 72 72 61 79 3a 0a 0a 62 65 67 69 6e 0a 0a 74   ┆d;  end;    cendarray:  begin  t┆
0x09e460…09e480             65 73 74 5f 72 65 63 75 72 73 69 76 65 5f 74 79 70 65 3b 0a 0a 65 6c 65 6d 6e 61 6d 65 3a 3d 20   ┆est_recursive_type;  elemname:= ┆
0x09e480…09e4a0             63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 20 70 6f 70 74 79 70 65 3b 0a 69 6e 64 65 78 6e 61 6d 65   ┆cur_typename; poptype; indexname┆
0x09e4a0…09e4c0             3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 20 70 6f 70 74 79 70 65 3b 0a 0a 74 65 73 74 69   ┆:= cur_typename; poptype;  testi┆
0x09e4c0…09e4e0             6e 64 65 78 20 28 69 6e 64 65 78 6e 61 6d 65 29 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70   ┆ndex (indexname);  with  cur_typ┆
0x09e4e0…09e500             65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 61 72 72 61 79 20   ┆enode ^ do (* typenode of array ┆
0x09e500…09e520             2a 29 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 65 6c 65 6d 6e 61 6d 65 3b 0a 69 6e 64   ┆*) begin element:= elemname; ind┆
0x09e520…09e540             65 78 20 20 3a 3d 20 69 6e 64 65 78 6e 61 6d 65 3b 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 20 20 65   ┆ex  := indexname; contents:=   e┆
0x09e540…09e560             6c 65 6d 6e 61 6d 65 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 63 6f 6e 74 65 6e 74 73 3b 0a 28 2a   ┆lemname ^ . typ ^ . contents; (*┆
0x09e560…09e580             20 74 72 61 6e 73 66 65 72 20 63 6f 6e 74 65 6e 74 73 20 66 72 6f 6d 20 65 6c 65 6d 65 6e 74 20   ┆ transfer contents from element ┆
0x09e580…09e5a0             74 79 70 65 20 2a 29 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 66 69 65 6c 64 3a   ┆type *) end;  end;    cendfield:┆
0x09e5a0…09e5c0             0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 79 70 65 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 72 65 63   ┆  begin  (* types may not be rec┆
0x09e5c0…09e5e0             75 72 73 69 76 65 20 2a 29 0a 74 65 73 74 5f 72 65 63 75 72 73 69 76 65 5f 74 79 70 65 3b 0a 0a   ┆ursive *) test_recursive_type;  ┆
0x09e5e0…09e600             77 69 74 68 20 20 6c 69 73 74 6c 61 73 74 20 5e 20 64 6f 20 6c 69 73 74 74 6f 70 3a 3d 20 6e 65   ┆with  listlast ^ do listtop:= ne┆
0x09e600…09e620 (42, 0, 8)  78 74 6e 61 6d 65 3b 0a 77 68 69 6c 65 20 6c 69 73 74 66 69 72 73 74 20 3c 3e 20 6c 69 73 74 74   ┆xtname; while listfirst <> listt┆
0x09e620…09e640             6f 70 20 64 6f 0a 77 69 74 68 20 20 6c 69 73 74 66 69 72 73 74 20 5e 20 64 6f 0a 62 65 67 69 6e   ┆op do with  listfirst ^ do begin┆
0x09e640…09e660             0a 74 79 70 65 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 6c 69 73 74 66 69   ┆ typename:= cur_typename; listfi┆
0x09e660…09e680             72 73 74 3a 3d 20 6e 65 78 74 6e 61 6d 65 3b 0a 65 6e 64 3b 0a 0a 65 6c 65 6d 6e 61 6d 65 3a 3d   ┆rst:= nextname; end;  elemname:=┆
0x09e680…09e6a0             20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 70 6f 70 74 79 70 65 3b 20 28 2a 20 72 65 74 75 72   ┆ cur_typename; poptype; (* retur┆
0x09e6a0…09e6c0             6e 20 74 6f 20 72 65 63 6f 72 64 20 74 79 70 65 6e 61 6d 65 2f 74 79 70 65 6e 6f 64 65 20 2a 29   ┆n to record typename/typenode *)┆
0x09e6c0…09e6e0             0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 66 69 65 6c 64 2d 63 6f 6e 74 65 6e 74 73 20 74 6f 20   ┆  (* transfer field-contents to ┆
0x09e6e0…09e700             72 65 63 6f 72 64 2d 63 6f 6e 74 65 6e 74 73 20 2a 29 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70   ┆record-contents *) with  cur_typ┆
0x09e700…09e720             65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 72 65 63 6f 72 64   ┆enode ^ do (* typenode of record┆
0x09e720…09e740             20 2a 29 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 63 6f 6e 74 65 6e 74 73 20 2b 20 20 20 65 6c 65 6d   ┆ *) contents:= contents +   elem┆
0x09e740…09e760             6e 61 6d 65 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 63 6f 6e 74 65 6e 74 73 3b 0a 0a 65 6e 64 3b   ┆name ^ . typ ^ . contents;  end;┆
0x09e760…09e780             0a 0a 0c 0a 63 65 6e 64 72 65 63 6f 72 64 3a 0a 0a 62 65 67 69 6e 0a 0a 65 6e 64 6e 61 6d 65 6c   ┆    cendrecord:  begin  endnamel┆
0x09e780…09e7a0             65 76 65 6c 3b 0a 0a 28 2a 20 74 72 61 6e 73 66 65 72 20 74 68 65 20 77 68 6f 6c 65 20 63 75 72   ┆evel;  (* transfer the whole cur┆
0x09e7a0…09e7c0             72 65 6e 74 20 6e 61 6d 65 6c 69 73 74 2c 20 69 2e 65 2e 20 74 68 65 20 6c 69 73 74 20 6f 66 20   ┆rent namelist, i.e. the list of ┆
0x09e7c0…09e7e0             66 69 65 6c 64 2d 6e 61 6d 65 73 20 2a 29 0a 28 2a 20 20 20 61 6e 64 20 74 68 65 69 72 20 69 6d   ┆field-names *) (*   and their im┆
0x09e7e0…09e800             70 6c 69 63 69 74 20 74 79 70 65 73 2c 20 74 6f 20 74 68 65 20 72 65 63 6f 72 64 2d 74 79 70 65   ┆plicit types, to the record-type┆
0x09e800…09e820 (42, 0, 9)  6e 6f 64 65 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f   ┆node *)  with  cur_typenode ^ do┆
0x09e820…09e840             20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 72 65 63 6f 72 64 20 2a 29 0a 77 69 74 68 20 20   ┆ (* typenode of record *) with  ┆
0x09e840…09e860             6e 61 6d 65 6c 65 76 65 6c 5e 2e 6e 65 78 74 5f 6c 65 76 65 6c 5e 20 64 6f 20 28 2a 20 6a 75 73   ┆namelevel^.next_level^ do (* jus┆
0x09e860…09e880             74 20 74 65 72 6d 69 6e 61 74 65 64 20 66 69 65 6c 64 20 6c 69 73 74 20 2a 29 0a 65 6c 65 6d 65   ┆t terminated field list *) eleme┆
0x09e880…09e8a0             6e 74 3a 3d 20 66 69 72 73 74 6e 61 6d 65 3b 0a 0a 70 6f 70 6c 69 73 74 3b 20 28 2a 20 72 65 74   ┆nt:= firstname;  poplist; (* ret┆
0x09e8a0…09e8c0             75 72 6e 20 74 6f 20 6f 75 74 65 72 20 6e 61 6d 65 6c 69 73 74 20 2a 29 0a 0a 65 6e 64 3b 0a 0c   ┆urn to outer namelist *)  end;  ┆
0x09e8c0…09e8e0             63 65 6e 64 73 65 74 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 69 6e 64 65 78 6e 61 6d 65 20 6d 75   ┆cendset:  begin  (* indexname mu┆
0x09e8e0…09e900             73 74 20 62 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74 79 70 65 20 2a 29 0a 0a 69 6e 64 65 78   ┆st be enumeration type *)  index┆
0x09e900…09e920             6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 70 6f 70 74 79 70 65 3b 20 28 2a   ┆name:= cur_typename; poptype; (*┆
0x09e920…09e940             20 72 65 74 75 72 6e 20 74 6f 20 73 65 74 2d 74 79 70 65 20 2a 29 0a 0a 74 65 73 74 69 6e 64 65   ┆ return to set-type *)  testinde┆
0x09e940…09e960             78 20 28 69 6e 64 65 78 6e 61 6d 65 29 3b 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f   ┆x (indexname);  with  cur_typeno┆
0x09e960…09e980             64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 73 65 74 20 2a 29 0a 62 65   ┆de ^ do (* typenode of set *) be┆
0x09e980…09e9a0             67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 69 6e 64 65 78 6e 61 6d 65 3b 0a 28 2a 20 63 6f 6e 74   ┆gin element:= indexname; (* cont┆
0x09e9a0…09e9c0             65 6e 74 73 3a 3d 20 5b 20 74 5f 73 69 6d 70 6c 65 20 5d 3b 20 20 2a 29 0a 65 6e 64 3b 0a 0a 65   ┆ents:= [ t_simple ];  *) end;  e┆
0x09e9c0…09e9e0             6e 64 3b 0a 0a 0c 0a 63 65 6e 64 70 6f 6f 6c 3a 0a 0a 62 65 67 69 6e 0a 0a 28 2a 20 74 65 73 74   ┆nd;    cendpool:  begin  (* test┆
0x09e9e0…09ea00             20 74 68 61 74 20 3c 63 61 72 64 69 6e 61 6c 69 74 79 3e 20 69 73 20 3c 69 6e 74 65 67 65 72 3e   ┆ that <cardinality> is <integer>┆
0x09ea00…09ea20 (42, 0, 10) 20 2a 29 0a 0a 72 65 73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72   ┆ *)  resolvetype (stacktop, expr┆
0x09ea20…09ea40             74 79 70 65 6e 61 6d 65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b   ┆typename, exprelement, exprbasek┆
0x09ea40…09ea60             69 6e 64 29 3b 0a 69 66 20 65 78 70 72 62 61 73 65 6b 69 6e 64 20 3c 3e 20 63 69 6e 74 65 67 65   ┆ind); if exprbasekind <> cintege┆
0x09ea60…09ea80             72 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65 72 72 6f 72 20 28 70 6f 6f 6c 5f 63 61 72 64 69 6e 61   ┆r then begin error (pool_cardina┆
0x09ea80…09eaa0             6c 69 74 79 5f 6d 75 73 74 5f 62 65 5f 69 6e 74 65 67 65 72 29 3b 0a 65 6e 64 3b 0a 0a 28 2a 20   ┆lity_must_be_integer); end;  (* ┆
0x09eaa0…09eac0             74 65 73 74 20 6c 65 67 61 6c 69 74 79 20 6f 66 20 74 79 70 65 20 2a 29 0a 0a 77 69 74 68 20 20   ┆test legality of type *)  with  ┆
0x09eac0…09eae0             63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20 28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66   ┆cur_typenode ^ do (* typenode of┆
0x09eae0…09eb00             20 70 6f 6f 6c 2d 73 69 7a 65 74 79 70 65 20 2a 29 0a 28 2a 20 69 74 20 6d 61 79 20 6e 6f 74 20   ┆ pool-sizetype *) (* it may not ┆
0x09eb00…09eb20             63 6f 6e 74 61 69 6e 3a 20 73 65 6d 61 70 68 6f 72 65 2c 20 73 68 61 64 6f 77 2c 20 72 65 66 65   ┆contain: semaphore, shadow, refe┆
0x09eb20…09eb40             72 65 6e 63 65 2c 20 70 6f 6f 6c 2c 20 70 6f 69 6e 74 65 72 20 2a 29 0a 69 66 20 63 6f 6e 74 65   ┆rence, pool, pointer *) if conte┆
0x09eb40…09eb60             6e 74 73 20 2a 20 5b 20 74 5f 73 65 6d 61 70 68 6f 72 65 2c 20 74 5f 72 65 66 65 72 65 6e 63 65   ┆nts * [ t_semaphore, t_reference┆
0x09eb60…09eb80             2c 20 74 5f 65 78 74 70 72 6f 63 65 73 73 2c 20 74 5f 73 68 61 64 6f 77 2c 20 74 5f 70 6f 6f 6c   ┆, t_extprocess, t_shadow, t_pool┆
0x09eb80…09eba0             2c 20 74 5f 70 6f 69 6e 74 65 72 20 5d 20 3c 3e 20 5b 5d 20 74 68 65 6e 0a 62 65 67 69 6e 0a 65   ┆, t_pointer ] <> [] then begin e┆
0x09eba0…09ebc0             72 72 6f 72 20 28 69 6c 6c 65 67 61 6c 5f 70 6f 6f 6c 5f 74 79 70 65 29 3b 0a 73 65 74 5f 65 72   ┆rror (illegal_pool_type); set_er┆
0x09ebc0…09ebe0             72 6f 72 5f 74 79 70 65 3b 0a 65 6e 64 3b 0a 0a 65 6c 65 6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74   ┆ror_type; end;  elemname:= cur_t┆
0x09ebe0…09ec00             79 70 65 6e 61 6d 65 3b 0a 70 6f 70 74 79 70 65 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 70   ┆ypename; poptype; (* return to p┆
0x09ec00…09ec20 (42, 0, 11) 6f 6f 6c 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64 6f 20   ┆ool *)  with  cur_typenode ^ do ┆
0x09ec20…09ec40             28 2a 20 74 79 70 65 6e 6f 64 65 20 6f 66 20 70 6f 6f 6c 20 2a 29 0a 62 65 67 69 6e 0a 73 75 62   ┆(* typenode of pool *) begin sub┆
0x09ec40…09ec60             65 78 70 72 3a 3d 20 74 61 6b 65 5f 73 74 61 63 6b 74 6f 70 3b 0a 65 6c 65 6d 65 6e 74 3a 3d 20   ┆expr:= take_stacktop; element:= ┆
0x09ec60…09ec80             65 6c 65 6d 6e 61 6d 65 3b 0a 63 6f 6e 74 65 6e 74 73 3a 3d 20 5b 20 74 5f 70 6f 6f 6c 20 5d 3b   ┆elemname; contents:= [ t_pool ];┆
0x09ec80…09eca0             0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a 0c 0a 63 65 6e 64 72 65 61 64 6f 6e 6c 79 2c 0a 63 65 6e   ┆ end;  end;    cendreadonly, cen┆
0x09eca0…09ecc0             64 70 6f 69 6e 74 65 72 3a 0a 0a 62 65 67 69 6e 0a 0a 69 66 20 72 65 63 74 79 70 65 20 3d 20 63   ┆dpointer:  begin  if rectype = c┆
0x09ecc0…09ece0             65 6e 64 72 65 61 64 6f 6e 6c 79 20 74 68 65 6e 0a 74 65 73 74 5f 72 65 63 75 72 73 69 76 65 5f   ┆endreadonly then test_recursive_┆
0x09ece0…09ed00             74 79 70 65 3b 0a 28 2a 20 6e 6f 74 69 63 65 3a 20 70 6f 69 6e 74 65 72 2d 74 6f 2d 74 79 70 65   ┆type; (* notice: pointer-to-type┆
0x09ed00…09ed20             20 69 73 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72 65 64 20 72 65 63 75 72 73 69 6f 6e 20 2a 29 0a   ┆ is not considered recursion *) ┆
0x09ed20…09ed40             0a 65 6c 65 6d 6e 61 6d 65 3a 3d 20 63 75 72 5f 74 79 70 65 6e 61 6d 65 3b 0a 70 6f 70 74 79 70   ┆ elemname:= cur_typename; poptyp┆
0x09ed40…09ed60             65 3b 20 28 2a 20 72 65 74 75 72 6e 20 74 6f 20 72 65 61 64 6f 6e 6c 79 2f 70 6f 69 6e 74 65 72   ┆e; (* return to readonly/pointer┆
0x09ed60…09ed80             20 74 79 70 65 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f 64 65 20 5e 20 64   ┆ type *)  with  cur_typenode ^ d┆
0x09ed80…09eda0             6f 0a 62 65 67 69 6e 0a 65 6c 65 6d 65 6e 74 3a 3d 20 65 6c 65 6d 6e 61 6d 65 3b 0a 69 66 20 72   ┆o begin element:= elemname; if r┆
0x09eda0…09edc0             65 63 74 79 70 65 20 3d 20 63 65 6e 64 70 6f 69 6e 74 65 72 20 74 68 65 6e 0a 63 6f 6e 74 65 6e   ┆ectype = cendpointer then conten┆
0x09edc0…09ede0             74 73 3a 3d 20 5b 20 74 5f 70 6f 69 6e 74 65 72 20 5d 0a 65 6c 73 65 0a 63 6f 6e 74 65 6e 74 73   ┆ts:= [ t_pointer ] else contents┆
0x09ede0…09ee00             3a 3d 20 20 20 65 6c 65 6d 65 6e 74 20 5e 20 2e 20 74 79 70 20 5e 20 2e 20 63 6f 6e 74 65 6e 74   ┆:=   element ^ . typ ^ . content┆
0x09ee00…09ee20 (42, 0, 12) 73 20 2b 20 5b 20 74 5f 72 65 61 64 6f 6e 6c 79 20 5d 3b 0a 65 6e 64 3b 0a 0a 65 6e 64 3b 0a 0a   ┆s + [ t_readonly ]; end;  end;  ┆
0x09ee20…09ee40             0c 0a 63 70 61 63 6b 65 64 3a 0a 0a 62 65 67 69 6e 0a 28 2a 20 27 63 75 72 5f 74 79 70 65 6e 61   ┆  cpacked:  begin (* 'cur_typena┆
0x09ee40…09ee60             6d 65 2f 6e 6f 64 65 27 20 61 72 65 20 6e 6f 64 65 73 20 6f 66 20 72 65 63 6f 72 64 2f 61 72 72   ┆me/node' are nodes of record/arr┆
0x09ee60…09ee80             61 79 20 28 6f 72 20 73 65 74 29 20 2a 29 0a 0a 77 69 74 68 20 20 63 75 72 5f 74 79 70 65 6e 6f   ┆ay (or set) *)  with  cur_typeno┆
0x09ee80…09eea0             64 65 20 5e 20 64 6f 0a 70 61 63 6b 66 6c 61 67 3a 3d 20 74 72 75 65 3b 0a 0a 65 6e 64 3b 0a 0a   ┆de ^ do packflag:= true;  end;  ┆
0x09eea0…09eec0             0c 0a 63 62 65 67 69 6e 3a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a 63 65   ┆  cbegin: prepare_statement;  ce┆
0x09eec0…09eee0             6e 64 3a 20 3b 20 28 2a 20 62 6c 69 6e 64 20 2a 29 0a 0a 63 6c 61 62 65 6c 64 65 66 3a 0a 0a 62   ┆nd: ; (* blind *)  clabeldef:  b┆
0x09eee0…09ef00             65 67 69 6e 0a 0a 28 2a 20 6c 61 62 65 6c 20 64 65 66 20 73 74 61 74 65 6d 65 6e 74 20 2a 29 0a   ┆egin  (* label def statement *) ┆
0x09ef00…09ef20             64 65 66 69 6e 65 6c 61 62 65 6c 20 28 20 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 63 6f 70 65 6e   ┆definelabel ( passin (* = scopen┆
0x09ef20…09ef40             6f 20 2a 29 20 2c 20 70 61 73 73 69 6e 20 28 2a 20 3d 20 73 70 69 78 20 2a 29 20 29 3b 0a 0a 65   ┆o *) , passin (* = spix *) );  e┆
0x09ef40…09ef60             6e 64 3b 0a 0a 0c 0a 63 63 61 73 65 73 74 61 74 3a 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73   ┆nd;    ccasestat: prepare_expres┆
0x09ef60…09ef80             73 69 6f 6e 3b 0a 0a 63 63 61 73 65 65 78 70 72 3a 0a 62 65 67 69 6e 0a 70 75 73 68 6e 61 6d 65   ┆sion;  ccaseexpr: begin pushname┆
0x09ef80…09efa0             20 28 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 29 3b 20 28 2a 20 62 65 63 61 75 73 65 20 63 61 73   ┆ (case_typename); (* because cas┆
0x09efa0…09efc0             65 20 6d 61 79 20 62 65 20 6e 65 73 74 65 64 20 2a 29 0a 63 61 73 65 5f 74 79 70 65 6e 61 6d 65   ┆e may be nested *) case_typename┆
0x09efc0…09efe0             3a 3d 20 74 65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 63   ┆:= testenumeration (stacktop); c┆
0x09efe0…09f000             61 73 65 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 65 78 70 72 74 79 70 65 6e 61 6d 65 3b 20 20 28 2a   ┆ase_typename:= exprtypename;  (*┆
0x09f000…09f020 (42, 0, 13) 20 6e 62 6e 62 6e 62 6e 62 3a 20 67 65 74 20 73 69 6d 70 6c 69 66 69 65 64 20 74 79 70 65 6e 61   ┆ nbnbnbnb: get simplified typena┆
0x09f020…09f040             6d 65 20 2a 29 0a 0a 65 6d 69 74 20 28 78 63 61 73 65 73 74 61 74 29 3b 0a 0a 65 6d 69 74 5f 61   ┆me *)  emit (xcasestat);  emit_a┆
0x09f040…09f060             6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74 20 28 78 63   ┆nd_release (stacktop);  emit (xc┆
0x09f060…09f080             61 73 65 29 3b 0a 65 6e 64 3b 0a 0a 0a 63 63 61 73 65 6c 61 62 65 6c 3a 0a 62 65 67 69 6e 0a 28   ┆ase); end;   ccaselabel: begin (┆
0x09f080…09f0a0             2a 20 74 68 65 20 63 61 73 65 6c 61 62 65 6c 20 6d 75 73 74 20 68 61 76 65 20 73 61 6d 65 20 74   ┆* the caselabel must have same t┆
0x09f0a0…09f0c0             79 70 65 20 61 73 20 74 68 65 20 63 61 73 65 2d 65 78 70 72 65 73 73 69 6f 6e 20 2a 29 0a 72 65   ┆ype as the case-expression *) re┆
0x09f0c0…09f0e0             73 6f 6c 76 65 74 79 70 65 20 28 73 74 61 63 6b 74 6f 70 2c 20 65 78 70 72 74 79 70 65 6e 61 6d   ┆solvetype (stacktop, exprtypenam┆
0x09f0e0…09f100             65 2c 20 65 78 70 72 65 6c 65 6d 65 6e 74 2c 20 65 78 70 72 62 61 73 65 6b 69 6e 64 29 3b 0a 69   ┆e, exprelement, exprbasekind); i┆
0x09f100…09f120             66 20 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 20 3c 3e 20 65 78 70 72 74 79 70 65 6e 61 6d 65 20   ┆f case_typename <> exprtypename ┆
0x09f120…09f140             74 68 65 6e 0a 20 20 65 72 72 6f 72 20 28 63 61 73 65 5f 69 6e 63 6f 6d 70 61 74 69 62 6c 65 29   ┆then   error (case_incompatible)┆
0x09f140…09f160             3b 0a 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a   ┆;  emit_and_release (stacktop); ┆
0x09f160…09f180             0a 65 6d 69 74 20 28 78 63 61 73 65 6c 61 62 65 6c 29 3b 0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 61   ┆ emit (xcaselabel);  end;    cca┆
0x09f180…09f1a0             73 65 6c 61 62 65 6c 72 61 6e 67 65 3a 0a 62 65 67 69 6e 0a 28 2a 20 62 6f 74 68 20 63 61 73 65   ┆selabelrange: begin (* both case┆
0x09f1a0…09f1c0             6c 61 62 65 6c 73 20 6d 75 73 74 20 6d 61 74 63 68 20 74 68 65 20 63 61 73 65 2d 65 78 70 72 65   ┆labels must match the case-expre┆
0x09f1c0…09f1e0             73 73 69 6f 6e 20 2a 29 0a 65 71 75 61 6c 74 79 70 65 73 20 28 6e 65 78 74 74 6f 70 2c 20 73 74   ┆ssion *) equaltypes (nexttop, st┆
0x09f1e0…09f200             61 63 6b 74 6f 70 2c 20 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 2c 20 63 61 73 65 5f 69 6e 63 6f   ┆acktop, case_typename, case_inco┆
0x09f200…09f220 (42, 0, 14) 6d 70 61 74 69 62 6c 65 29 3b 0a 0a 28 2a 20 62 69 6e 64 20 74 68 65 20 74 77 6f 20 65 78 70 72   ┆mpatible);  (* bind the two expr┆
0x09f220…09f240             65 73 73 69 6f 6e 73 20 74 6f 67 65 74 68 65 72 20 2a 29 0a 6f 70 65 72 20 28 62 69 6e 61 72 79   ┆essions together *) oper (binary┆
0x09f240…09f260             2c 20 63 72 61 6e 67 65 66 69 72 73 74 2c 20 6e 69 6c 6e 61 6d 65 20 28 2a 20 69 72 72 65 6c 6c   ┆, crangefirst, nilname (* irrell┆
0x09f260…09f280             20 74 79 70 65 6e 61 6d 65 20 2a 29 20 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f 72 65 6c 65 61 73 65   ┆ typename *) ); emit_and_release┆
0x09f280…09f2a0             20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 0a 65 6d 69 74 20 28 78 63 61 73 65 72 61 6e 67 65 29 3b   ┆ (stacktop);  emit (xcaserange);┆
0x09f2a0…09f2c0             0a 0a 65 6e 64 3b 0a 0a 0a 0a 63 6f 74 68 65 72 77 69 73 65 3a 0a 65 6d 69 74 20 28 78 6f 74 68   ┆  end;    cotherwise: emit (xoth┆
0x09f2c0…09f2e0             65 72 77 69 73 65 29 3b 0a 0a 0a 0a 63 63 61 73 65 6c 69 73 74 3a 0a 62 65 67 69 6e 0a 70 72 65   ┆erwise);    ccaselist: begin pre┆
0x09f2e0…09f300             70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 65 6d 69 74 20 28 78 65 6e 64 63 61 73 65 6c 69   ┆pare_statement; emit (xendcaseli┆
0x09f300…09f320             73 74 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 63 61 73 65 65 6c 65 6d 65 6e 74 3a 0a 62 65 67 69 6e   ┆st); end;    ccaseelement: begin┆
0x09f320…09f340             0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73 73 69 6f 6e 3b 0a 65 6d 69 74 20 28 78 65 6e 64 63   ┆ prepare_expression; emit (xendc┆
0x09f340…09f360             61 73 65 73 74 61 74 29 3b 0a 65 6e 64 3b 0a 0a 0a 0a 63 65 6e 64 63 61 73 65 3a 0a 62 65 67 69   ┆asestat); end;    cendcase: begi┆
0x09f360…09f380             6e 0a 0a 65 6d 69 74 20 28 78 65 6e 64 63 61 73 65 29 3b 0a 0a 28 2a 20 75 6e 73 74 61 63 6b 20   ┆n  emit (xendcase);  (* unstack ┆
0x09f380…09f3a0             63 61 73 65 20 74 79 70 65 20 6e 61 6d 65 20 2a 29 0a 63 61 73 65 5f 74 79 70 65 6e 61 6d 65 3a   ┆case type name *) case_typename:┆
0x09f3a0…09f3c0             3d 20 70 6f 70 6e 61 6d 65 3b 0a 0a 70 72 65 70 61 72 65 5f 73 74 61 74 65 6d 65 6e 74 3b 0a 0a   ┆= popname;  prepare_statement;  ┆
0x09f3c0…09f3e0             65 6e 64 3b 0a 0a 0c 0a 63 66 6f 72 73 74 61 74 3a 0a 70 72 65 70 61 72 65 5f 65 78 70 72 65 73   ┆end;    cforstat: prepare_expres┆
0x09f3e0…09f400             73 69 6f 6e 3b 0a 0a 63 66 6f 72 76 61 72 3a 0a 62 65 67 69 6e 0a 28 2a 20 74 68 65 20 63 6f 6e   ┆sion;  cforvar: begin (* the con┆
0x09f400…09f420 (42, 0, 15) 74 72 6f 6c 6c 69 6e 67 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 3a 20 61 73 73 69 67   ┆trolling variable must be: assig┆
0x09f420…09f440             6e 61 62 6c 65 2c 20 75 6e 70 61 63 6b 65 64 20 76 61 72 69 61 62 6c 65 20 2a 29 0a 74 65 73 74   ┆nable, unpacked variable *) test┆
0x09f440…09f460             61 73 73 69 67 6e 61 62 6c 65 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 74 65 73 74 75 6e 70 61 63   ┆assignable (stacktop); testunpac┆
0x09f460…09f480             6b 65 64 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 66 6f 72 5f 74 79 70 65 6e 61 6d 65 3a 3d 20 74   ┆ked (stacktop); for_typename:= t┆
0x09f480…09f4a0             65 73 74 65 6e 75 6d 65 72 61 74 69 6f 6e 20 28 73 74 61 63 6b 74 6f 70 29 3b 0a 66 6f 72 5f 62   ┆estenumeration (stacktop); for_b┆
0x09f4a0…09f4c0             61 73 65 74 79 70 65 6e 61 6d 65 3a 3d 20 65 78 70 72 74 79 70 65 6e 61 6d 65 3b 20 20 28 2a 20   ┆asetypename:= exprtypename;  (* ┆
0x09f4c0…09f4e0             6e 62 6e 62 6e 62 6e 62 3a 20 67 65 74 20 73 69 6d 70 6c 69 66 69 65 64 20 74 79 70 65 6e 61 6d   ┆nbnbnbnb: get simplified typenam┆
0x09f4e0…09f500             65 20 2a 29 0a 0a 65 6d 69 74 20 28 78 66 6f 72 73 74 61 74 29 3b 0a 65 6d 69 74 5f 61 6e 64 5f   ┆e *)  emit (xforstat); emit_and_┆
[…truncated at 20000 lines…]