|
|
DataMuseum.dkPresents historical artifacts from the history of: DANOSI |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DANOSI Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics
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
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…]