|
DataMuseum.dkPresents historical artifacts from the history of: Jet Computer Jet80 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Jet Computer Jet80 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ 5 A C D I T Z ┃
Length: 819200 (0xc8000) Description: Bits:30005858 dBase II komplet med Zip formularer Types: 5¼" Floppy Disk, CP/M Filesystem - JET80, CpmFileSystem_Jet80, ImdContainer
bytes | name | artifact |
---|---|---|
1024 | ADRESSE.DBF | ⟦22c0fbed4⟧ |
19712 | DBASE.COM | ⟦4206b9f3b⟧ |
52736 | DBASEMSG.TXT | ⟦22b3a61f6⟧ TextFile |
40192 | DBASEOVR.COM | ⟦4308502a3⟧ |
13568 | DBINS.COM | ⟦50dacba2d⟧ |
6656 | DGEN.OVL | ⟦2beba358b⟧ |
13312 | ZIP.COM | ⟦f95f948a4⟧ |
29952 | ZIPIN.COM | ⟦690cb83c3⟧ |
20352 | ZSCRN.OVL | ⟦a9b3ae608⟧ |
0x00000…00020 (0, 0, 1) e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x13f…] 0x02800…02820 (1, 0, 1) DirEnt {status=0x00, name=»DBASE COM«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02820…02840 DirEnt {status=0x00, name=»DBASE COM«, xl=0x01, bc=0x00, xh=0x00, rc=0x1a, al=[0x000a, 0x000b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02840…02860 DirEnt {status=0x00, name=»DBASEMSGTXT«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02860…02880 DirEnt {status=0x00, name=»DBASEMSGTXT«, xl=0x01, bc=0x00, xh=0x00, rc=0x80, al=[0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02880…028a0 DirEnt {status=0x00, name=»DBASEMSGTXT«, xl=0x02, bc=0x00, xh=0x00, rc=0x80, al=[0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x028a0…028c0 DirEnt {status=0x00, name=»DBASEMSGTXT«, xl=0x03, bc=0x00, xh=0x00, rc=0x1c, al=[0x0024, 0x0025, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x028c0…028e0 DirEnt {status=0x00, name=»DBASEOVRCOM«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x028e0…02900 DirEnt {status=0x00, name=»DBASEOVRCOM«, xl=0x01, bc=0x00, xh=0x00, rc=0x80, al=[0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02900…02920 DirEnt {status=0x00, name=»DBASEOVRCOM«, xl=0x02, bc=0x00, xh=0x00, rc=0x3a, al=[0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02920…02940 DirEnt {status=0x00, name=»ZIP COM«, xl=0x00, bc=0x00, xh=0x00, rc=0x68, al=[0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0000], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02940…02960 DirEnt {status=0x00, name=»ZIPIN COM«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02960…02980 DirEnt {status=0x00, name=»ZIPIN COM«, xl=0x01, bc=0x00, xh=0x00, rc=0x6a, al=[0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0000], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x02980…029a0 DirEnt {status=0x00, name=»DGEN OVL«, xl=0x00, bc=0x00, xh=0x00, rc=0x34, al=[0x0050, 0x0051, 0x0052, 0x0053, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,1,0,0]} 0x029a0…029c0 DirEnt {status=0x00, name=»DBINS COM«, xl=0x00, bc=0x00, xh=0x00, rc=0x6a, al=[0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000], flags=[0,0,0,0,0,0,0,0,0,0,0]} 0x029c0…029e0 DirEnt {status=0x00, name=»ADRESSE DBF«, xl=0x00, bc=0x00, xh=0x00, rc=0x08, al=[0x005b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,0,0]} 0x029e0…02a00 DirEnt {status=0x00, name=»ZSCRN OVL«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063], flags=[0,0,0,0,0,0,0,0,0,0,0]} 0x02a00…02a20 DirEnt {status=0x00, name=»ZSCRN OVL«, xl=0x01, bc=0x00, xh=0x00, rc=0x1f, al=[0x0064, 0x0065, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,0,0]} 0x02a20…02a40 UnusedDirEnt {status=0xe5} […0x6e…] 0x03800…03c00 (1, 0, 5) DataBlock {»DBASE.COM«} […0x13…] 0x08800…08c00 (3, 0, 5) DataBlock {»DBASEMSG.TXT«} […0x33…] 0x15800…15c00 (8, 1, 2) DataBlock {»DBASEOVR.COM«} […0x27…] 0x1f800…1fc00 (12, 1, 2) DataBlock {»ZIP.COM«} […0xd…] 0x23000…23400 (14, 0, 1) DataBlock {»ZIPIN.COM«} […0x1d…] 0x2a800…2ac00 (17, 0, 1) DataBlock {»DGEN.OVL«} […0x7…] 0x2c800…2cc00 (17, 1, 4) DataBlock {»DBINS.COM«} […0xd…] 0x30000…30400 (19, 0, 3) DataBlock {»ADRESSE.DBF«} […0x1…] 0x30800…30c00 (19, 0, 5) DataBlock {»ZSCRN.OVL«} […0x13…] 0x35800…35820 (21, 0, 5) 30 34 44 38 0d 0a 4c 30 34 44 35 3a 09 4d 4f 56 09 42 58 2c 4f 46 46 53 45 54 20 55 53 5f 4c 43 ┆04D8 L04D5: MOV BX,OFFSET US_LC┆ 0x35820…35840 5f 54 41 42 0d 0a 4c 30 34 44 38 3a 09 44 45 43 09 41 4c 0d 0a 09 44 42 09 32 45 48 09 3b 43 53 ┆_TAB L04D8: DEC AL DB 2EH ;CS┆ 0x35840…35860 3a 0d 0a 09 58 4c 41 54 0d 0a 4c 30 34 44 43 3a 09 43 4d 50 09 41 4c 2c 30 46 46 48 0d 0a 09 4a ┆: XLAT L04DC: CMP AL,0FFH J┆ 0x35860…35880 45 09 4c 30 35 32 37 0d 0a 09 43 4d 50 09 41 48 2c 30 46 46 48 0d 0a 09 4a 45 09 4c 30 35 32 37 ┆E L0527 CMP AH,0FFH JE L0527┆ 0x35880…358a0 0d 0a 4c 30 34 45 35 3a 09 54 45 53 54 09 42 59 54 45 20 50 54 52 20 44 53 3a 5b 4b 42 5f 46 4c ┆ L04E5: TEST BYTE PTR DS:ÆKB_FL┆ 0x358a0…358c0 41 47 5d 2c 43 41 50 53 5f 53 54 41 54 45 0d 0a 09 4a 45 09 4c 30 35 35 43 0d 0a 09 54 45 53 54 ┆AGÅ,CAPS_STATE JE L055C TEST┆ 0x358c0…358e0 09 42 59 54 45 20 50 54 52 20 44 53 3a 5b 4b 42 5f 46 4c 41 47 5d 2c 4c 45 46 54 5f 53 48 49 46 ┆ BYTE PTR DS:ÆKB_FLAGÅ,LEFT_SHIF┆ 0x358e0…35900 54 2b 52 49 47 48 54 5f 53 48 49 46 54 0d 0a 09 4a 45 09 4c 30 35 32 41 0d 0a 09 43 4d 50 09 41 ┆T+RIGHT_SHIFT JE L052A CMP A┆ 0x35900…35920 4c 2c 38 45 48 0d 0a 09 4a 4e 45 09 4c 30 34 46 42 0d 0a 09 4d 4f 56 09 41 4c 2c 38 34 48 0d 0a ┆L,8EH JNE L04FB MOV AL,84H ┆ 0x35920…35940 09 4a 4d 50 09 53 48 4f 52 54 20 4c 30 35 35 43 0d 0a 4c 30 34 46 42 3a 09 43 4d 50 09 41 4c 2c ┆ JMP SHORT L055C L04FB: CMP AL,┆ 0x35940…35960 39 32 48 0d 0a 09 4a 4e 45 09 4c 30 35 30 33 0d 0a 09 4d 4f 56 09 41 4c 2c 39 31 48 0d 0a 09 4a ┆92H JNE L0503 MOV AL,91H J┆ 0x35960…35980 4d 50 09 53 48 4f 52 54 20 4c 30 35 35 43 0d 0a 4c 30 35 30 33 3a 09 43 4d 50 09 41 4c 2c 39 39 ┆MP SHORT L055C L0503: CMP AL,99┆ 0x35980…359a0 48 0d 0a 09 4a 4e 45 09 4c 30 35 30 42 0d 0a 09 4d 4f 56 09 41 4c 2c 39 34 48 0d 0a 09 4a 4d 50 ┆H JNE L050B MOV AL,94H JMP┆ 0x359a0…359c0 09 53 48 4f 52 54 20 4c 30 35 35 43 0d 0a 4c 30 35 30 42 3a 09 43 4d 50 09 41 4c 2c 39 44 48 0d ┆ SHORT L055C L050B: CMP AL,9DH ┆ 0x359c0…359e0 0a 09 4a 4e 45 09 4c 30 35 31 33 0d 0a 09 4d 4f 56 09 41 4c 2c 39 42 48 0d 0a 09 4a 4d 50 09 53 ┆ JNE L0513 MOV AL,9BH JMP S┆ 0x359e0…35a00 48 4f 52 54 20 4c 30 35 35 43 0d 0a 4c 30 35 31 33 3a 09 43 4d 50 09 41 4c 2c 38 46 48 0d 0a 09 ┆HORT L055C L0513: CMP AL,8FH ┆ 0x35a00…35a20 4a 4e 45 09 4c 30 35 31 42 0d 0a 09 4d 4f 56 09 41 4c 2c 38 36 48 0d 0a 09 4a 4d 50 09 53 48 4f ┆JNE L051B MOV AL,86H JMP SHO┆ 0x35a20…35a40 52 54 20 4c 30 35 35 43 0d 0a 4c 30 35 31 42 3a 09 43 4d 50 09 41 4c 2c 34 31 48 0d 0a 09 4a 42 ┆RT L055C L051B: CMP AL,41H JB┆ 0x35a40…35a60 09 4c 30 35 35 43 0d 0a 09 43 4d 50 09 41 4c 2c 35 41 48 0d 0a 09 4a 4e 42 45 09 4c 30 35 35 43 ┆ L055C CMP AL,5AH JNBE L055C┆ 0x35a60…35a80 0d 0a 09 41 44 44 09 41 4c 2c 32 30 48 0d 0a 09 4a 4d 50 09 53 48 4f 52 54 20 4c 30 35 35 43 0d ┆ ADD AL,20H JMP SHORT L055C ┆ 0x35a80…35aa0 0a 4c 30 35 32 37 3a 09 4a 4d 50 09 4c 30 31 43 32 0d 0a 4c 30 35 32 41 3a 09 43 4d 50 09 41 4c ┆ L0527: JMP L01C2 L052A: CMP AL┆ 0x35aa0…35ac0 2c 38 34 48 0d 0a 09 4a 4e 45 09 4c 30 35 33 32 0d 0a 09 4d 4f 56 09 41 4c 2c 38 45 48 0d 0a 09 ┆,84H JNE L0532 MOV AL,8EH ┆ 0x35ac0…35ae0 4a 4d 50 09 53 48 4f 52 54 20 4c 30 35 35 43 0d 0a 4c 30 35 33 32 3a 09 43 4d 50 09 41 4c 2c 39 ┆JMP SHORT L055C L0532: CMP AL,9┆ 0x35ae0…35b00 31 48 0d 0a 09 4a 4e 45 09 4c 30 35 33 41 0d 0a 09 4d 4f 56 09 41 4c 2c 39 32 48 0d 0a 09 4a 4d ┆1H JNE L053A MOV AL,92H JM┆ 0x35b00…35b20 50 09 53 48 4f 52 54 20 4c 30 35 35 43 0d 0a 4c 30 35 33 41 3a 09 43 4d 50 09 41 4c 2c 39 34 48 ┆P SHORT L055C L053A: CMP AL,94H┆ 0x35b20…35b40 0d 0a 09 4a 4e 45 09 4c 30 35 34 32 0d 0a 09 4d 4f 56 09 41 4c 2c 39 39 48 0d 0a 09 4a 4d 50 09 ┆ JNE L0542 MOV AL,99H JMP ┆ 0x35b40…35b60 53 48 4f 52 54 20 4c 30 35 35 43 0d 0a 4c 30 35 34 32 3a 09 43 4d 50 09 41 4c 2c 39 42 48 0d 0a ┆SHORT L055C L0542: CMP AL,9BH ┆ 0x35b60…35b80 09 4a 4e 45 09 4c 30 35 34 41 0d 0a 09 4d 4f 56 09 41 4c 2c 39 44 48 0d 0a 09 4a 4d 50 09 53 48 ┆ JNE L054A MOV AL,9DH JMP SH┆ 0x35b80…35ba0 4f 52 54 20 4c 30 35 35 43 0d 0a 4c 30 35 34 41 3a 09 43 4d 50 09 41 4c 2c 38 36 48 0d 0a 09 4a ┆ORT L055C L054A: CMP AL,86H J┆ 0x35ba0…35bc0 4e 45 09 4c 30 35 35 32 0d 0a 09 4d 4f 56 09 41 4c 2c 38 46 48 0d 0a 09 4a 4d 50 09 53 48 4f 52 ┆NE L0552 MOV AL,8FH JMP SHOR┆ 0x35bc0…35be0 54 20 4c 30 35 35 43 0d 0a 4c 30 35 35 32 3a 09 43 4d 50 09 41 4c 2c 36 31 48 0d 0a 09 4a 42 09 ┆T L055C L0552: CMP AL,61H JB ┆ 0x35be0…35c00 4c 30 35 35 43 0d 0a 09 43 4d 50 09 41 4c 2c 37 41 48 0d 0a 09 4a 4e 42 45 09 4c 30 35 35 43 0d ┆L055C CMP AL,7AH JNBE L055C ┆ 0x35c00…35c20 (21, 1, 1) 0a 09 53 55 42 09 41 4c 2c 32 30 48 0d 0a 4c 30 35 35 43 3a 09 4d 4f 56 09 44 49 2c 4f 46 46 53 ┆ SUB AL,20H L055C: MOV DI,OFFS┆ 0x35c20…35c40 45 54 20 54 41 42 31 39 38 0d 0a 09 50 55 53 48 09 43 53 0d 0a 09 50 4f 50 09 45 53 0d 0a 09 4d ┆ET TAB198 PUSH CS POP ES M┆ 0x35c40…35c60 4f 56 09 43 58 2c 30 30 30 34 48 0d 0a 09 52 45 50 4e 5a 09 53 43 41 53 57 0d 0a 09 4a 4e 45 09 ┆OV CX,0004H REPNZ SCASW JNE ┆ 0x35c60…35c80 4c 30 35 37 42 0d 0a 09 53 55 42 09 44 49 2c 4f 46 46 53 45 54 20 54 41 42 31 39 38 0d 0a 09 4d ┆L057B SUB DI,OFFSET TAB198 M┆ 0x35c80…35ca0 4f 56 09 57 4f 52 44 20 50 54 52 20 43 53 3a 5b 54 41 42 31 45 38 5d 2c 41 58 0d 0a 09 4d 4f 56 ┆OV WORD PTR CS:ÆTAB1E8Å,AX MOV┆ 0x35ca0…35cc0 09 41 58 2c 44 49 0d 0a 09 53 48 52 09 41 58 2c 31 0d 0a 09 4d 4f 56 09 42 59 54 45 20 50 54 52 ┆ AX,DI SHR AX,1 MOV BYTE PTR┆ 0x35cc0…35ce0 20 43 53 3a 5b 54 41 42 31 45 38 2b 32 5d 2c 41 4c 0d 0a 09 4a 4d 50 09 4c 30 31 43 32 0d 0a 4c ┆ CS:ÆTAB1E8+2Å,AL JMP L01C2 L┆ 0x35ce0…35d00 30 35 37 42 3a 0d 0a 09 43 4d 50 09 42 59 54 45 20 50 54 52 20 43 53 3a 5b 54 41 42 31 45 38 5d ┆057B: CMP BYTE PTR CS:ÆTAB1E8Å┆ 0x35d00…35d20 2c 30 30 48 0d 0a 09 4a 45 09 4c 30 35 46 30 0d 0a 09 50 55 53 48 09 41 58 0d 0a 09 4d 4f 56 09 ┆,00H JE L05F0 PUSH AX MOV ┆ 0x35d20…35d40 41 4c 2c 42 59 54 45 20 50 54 52 20 43 53 3a 5b 54 41 42 31 45 38 2b 32 5d 0d 0a 09 4d 4f 56 09 ┆AL,BYTE PTR CS:ÆTAB1E8+2Å MOV ┆ 0x35d40…35d60 41 48 2c 30 39 48 0d 0a 09 44 45 43 09 41 4c 0d 0a 09 4d 55 4c 09 41 48 0d 0a 09 4d 4f 56 09 44 ┆AH,09H DEC AL MUL AH MOV D┆ 0x35d60…35d80 49 2c 4f 46 46 53 45 54 20 54 41 42 31 41 30 0d 0a 09 41 44 44 09 44 49 2c 41 58 0d 0a 09 4d 4f ┆I,OFFSET TAB1A0 ADD DI,AX MO┆ 0x35d80…35da0 56 09 43 58 2c 30 30 30 39 48 0d 0a 09 50 4f 50 09 41 58 0d 0a 09 52 45 50 4e 5a 09 53 43 41 53 ┆V CX,0009H POP AX REPNZ SCAS┆ 0x35da0…35dc0 42 0d 0a 09 4a 4e 45 09 4c 30 35 42 30 0d 0a 09 53 55 42 09 44 49 2c 4f 46 46 53 45 54 20 54 41 ┆B JNE L05B0 SUB DI,OFFSET TA┆ 0x35dc0…35de0 42 31 41 30 2b 31 0d 0a 09 4d 4f 56 09 41 4c 2c 45 53 3a 5b 44 49 2b 4f 46 46 53 45 54 20 54 41 ┆B1A0+1 MOV AL,ES:ÆDI+OFFSET TA┆ 0x35de0…35e00 42 31 43 34 5d 0d 0a 09 53 55 42 09 41 48 2c 41 48 0d 0a 09 4d 4f 56 09 57 4f 52 44 20 50 54 52 ┆B1C4Å SUB AH,AH MOV WORD PTR┆ 0x35e00…35e20 20 43 53 3a 5b 54 41 42 31 45 38 5d 2c 30 30 30 30 48 0d 0a 09 4a 4d 50 09 53 48 4f 52 54 20 4c ┆ CS:ÆTAB1E8Å,0000H JMP SHORT L┆ 0x35e20…35e40 30 35 46 30 0d 0a 09 4e 4f 50 0d 0a 4c 30 35 42 30 3a 09 43 4d 50 09 41 4c 2c 32 30 48 0d 0a 09 ┆05F0 NOP L05B0: CMP AL,20H ┆ 0x35e40…35e60 4a 4e 45 09 4c 30 35 43 39 0d 0a 09 4d 4f 56 09 41 58 2c 57 4f 52 44 20 50 54 52 20 43 53 3a 5b ┆JNE L05C9 MOV AX,WORD PTR CS:Æ┆ 0x35e60…35e80 54 41 42 31 45 38 5d 0d 0a 09 4d 4f 56 09 57 4f 52 44 20 50 54 52 20 43 53 3a 5b 54 41 42 31 45 ┆TAB1E8Å MOV WORD PTR CS:ÆTAB1E┆ 0x35e80…35ea0 38 5d 2c 30 30 30 30 48 0d 0a 09 43 4d 50 09 41 4c 2c 30 46 45 48 0d 0a 09 4a 4e 45 09 4c 30 35 ┆8Å,0000H CMP AL,0FEH JNE L05┆ 0x35ea0…35ec0 46 30 0d 0a 09 43 41 4c 4c 09 4c 30 36 32 35 0d 0a 09 4a 4d 50 09 53 48 4f 52 54 20 4c 30 35 46 ┆F0 CALL L0625 JMP SHORT L05F┆ 0x35ec0…35ee0 30 0d 0a 09 4e 4f 50 0d 0a 4c 30 35 43 39 3a 09 50 55 53 48 09 41 58 0d 0a 09 43 41 4c 4c 09 4c ┆0 NOP L05C9: PUSH AX CALL L┆ 0x35ee0…35f00 30 36 32 35 0d 0a 09 4d 4f 56 09 41 58 2c 57 4f 52 44 20 50 54 52 20 43 53 3a 5b 54 41 42 31 45 ┆0625 MOV AX,WORD PTR CS:ÆTAB1E┆ 0x35f00…35f20 38 5d 0d 0a 09 4d 4f 56 09 57 4f 52 44 20 50 54 52 20 43 53 3a 5b 54 41 42 31 45 38 5d 2c 30 30 ┆8Å MOV WORD PTR CS:ÆTAB1E8Å,00┆ 0x35f20…35f40 30 30 48 0d 0a 09 4d 4f 56 09 42 58 2c 44 53 3a 5b 42 55 46 46 45 52 5f 54 41 49 4c 5d 0d 0a 09 ┆00H MOV BX,DS:ÆBUFFER_TAILÅ ┆ 0x35f40…35f60 4d 4f 56 09 53 49 2c 42 58 0d 0a 09 43 41 4c 4c 09 4c 30 36 31 39 0d 0a 09 43 4d 50 09 42 58 2c ┆MOV SI,BX CALL L0619 CMP BX,┆ 0x35f60…35f80 44 53 3a 5b 42 55 46 46 45 52 5f 48 45 41 44 5d 0d 0a 09 50 4f 50 09 44 49 0d 0a 09 4a 45 09 4c ┆DS:ÆBUFFER_HEADÅ POP DI JE L┆ 0x35f80…35fa0 30 36 30 38 0d 0a 09 4d 4f 56 09 5b 53 49 5d 2c 41 58 0d 0a 09 4d 4f 56 09 44 53 3a 5b 42 55 46 ┆0608 MOV ÆSIÅ,AX MOV DS:ÆBUF┆ 0x35fa0…35fc0 46 45 52 5f 54 41 49 4c 5d 2c 42 58 0d 0a 09 4d 4f 56 09 41 58 2c 44 49 0d 0a 4c 30 35 46 30 3a ┆FER_TAILÅ,BX MOV AX,DI L05F0:┆ 0x35fc0…35fe0 09 4d 4f 56 09 42 58 2c 44 53 3a 5b 42 55 46 46 45 52 5f 54 41 49 4c 5d 0d 0a 09 4d 4f 56 09 53 ┆ MOV BX,DS:ÆBUFFER_TAILÅ MOV S┆ 0x35fe0…36000 49 2c 42 58 0d 0a 09 43 41 4c 4c 09 4c 30 36 31 39 0d 0a 09 43 4d 50 09 42 58 2c 44 53 3a 5b 42 ┆I,BX CALL L0619 CMP BX,DS:ÆB┆ 0x36000…36020 (21, 1, 2) 55 46 46 45 52 5f 48 45 41 44 5d 0d 0a 09 4a 45 09 4c 30 36 30 38 0d 0a 09 4d 4f 56 09 5b 53 49 ┆UFFER_HEADÅ JE L0608 MOV ÆSI┆ 0x36020…36040 5d 2c 41 58 0d 0a 09 4d 4f 56 09 44 53 3a 5b 42 55 46 46 45 52 5f 54 41 49 4c 5d 2c 42 58 0d 0a ┆Å,AX MOV DS:ÆBUFFER_TAILÅ,BX ┆ 0x36040…36060 09 4a 4d 50 09 4c 30 31 43 32 0d 0a 4c 30 36 30 38 3a 09 43 41 4c 4c 09 4c 30 36 32 35 0d 0a 09 ┆ JMP L01C2 L0608: CALL L0625 ┆ 0x36060…36080 4a 4d 50 09 4c 30 31 43 32 0d 0a 4c 30 36 30 45 3a 09 53 55 42 09 41 4c 2c 33 42 48 0d 0a 4c 30 ┆JMP L01C2 L060E: SUB AL,3BH L0┆ 0x36080…360a0 36 31 30 3a 09 44 42 09 32 45 48 09 3b 43 53 3a 0d 0a 09 58 4c 41 54 0d 0a 09 4d 4f 56 09 41 48 ┆610: DB 2EH ;CS: XLAT MOV AH┆ 0x360a0…360c0 2c 41 4c 0d 0a 09 4d 4f 56 09 41 4c 2c 30 30 48 0d 0a 09 4a 4d 50 09 4c 30 34 44 43 0d 0a 4c 30 ┆,AL MOV AL,00H JMP L04DC L0┆ 0x360c0…360e0 36 31 39 3a 09 41 44 44 09 42 58 2c 2b 30 32 48 0d 0a 09 43 4d 50 09 42 58 2c 2b 33 45 48 0d 0a ┆619: ADD BX,+02H CMP BX,+3EH ┆ 0x360e0…36100 09 4a 4e 45 09 4c 30 36 32 34 0d 0a 09 4d 4f 56 09 42 58 2c 30 30 31 45 48 0d 0a 4c 30 36 32 34 ┆ JNE L0624 MOV BX,001EH L0624┆ 0x36100…36120 3a 09 44 42 09 30 43 33 48 3b 20 52 45 54 20 20 0d 0a 4c 30 36 32 35 3a 09 50 55 53 48 09 41 58 ┆: DB 0C3H; RET L0625: PUSH AX┆ 0x36120…36140 0d 0a 09 50 55 53 48 09 42 58 0d 0a 09 50 55 53 48 09 43 58 0d 0a 09 4d 4f 56 09 42 58 2c 30 30 ┆ PUSH BX PUSH CX MOV BX,00┆ 0x36140…36160 43 30 48 0d 0a 09 49 4e 09 41 4c 2c 36 31 48 0d 0a 09 50 55 53 48 09 41 58 0d 0a 4c 30 36 32 45 ┆C0H IN AL,61H PUSH AX L062E┆ 0x36160…36180 3a 09 41 4e 44 09 41 4c 2c 30 46 43 48 0d 0a 09 4f 55 54 09 36 31 48 2c 41 4c 0d 0a 09 4d 4f 56 ┆: AND AL,0FCH OUT 61H,AL MOV┆ 0x36180…361a0 09 43 58 2c 30 30 34 38 48 0d 0a 4c 30 36 33 35 3a 09 4c 4f 4f 50 09 4c 30 36 33 35 0d 0a 09 4f ┆ CX,0048H L0635: LOOP L0635 O┆ 0x361a0…361c0 52 09 41 4c 2c 30 32 48 0d 0a 09 4f 55 54 09 36 31 48 2c 41 4c 0d 0a 09 4d 4f 56 09 43 58 2c 30 ┆R AL,02H OUT 61H,AL MOV CX,0┆ 0x361c0…361e0 30 34 38 48 0d 0a 4c 30 36 33 45 3a 09 4c 4f 4f 50 09 4c 30 36 33 45 0d 0a 09 44 45 43 09 42 58 ┆048H L063E: LOOP L063E DEC BX┆ 0x361e0…36200 0d 0a 09 4a 4e 45 09 4c 30 36 32 45 0d 0a 09 50 4f 50 09 41 58 0d 0a 09 4f 55 54 09 36 31 48 2c ┆ JNE L062E POP AX OUT 61H,┆ 0x36200…36220 41 4c 0d 0a 09 50 4f 50 09 43 58 0d 0a 09 50 4f 50 09 42 58 0d 0a 09 50 4f 50 09 41 58 0d 0a 09 ┆AL POP CX POP BX POP AX ┆ 0x36220…36240 44 42 09 30 43 33 48 3b 20 52 45 54 20 20 0d 0a 3b 0d 0a 46 49 4e 49 54 09 45 51 55 09 24 0d 0a ┆DB 0C3H; RET ; FINIT EQU $ ┆ 0x36240…36260 3b 0d 0a 53 50 41 52 45 09 44 42 09 36 20 44 55 50 28 30 29 0d 0a 3b 0d 0a 3b 09 4c 4f 41 44 45 ┆; SPARE DB 6 DUP(0) ; ; LOADE┆ 0x36260…36280 52 20 52 4f 55 54 49 4e 45 2e 0d 0a 3b 0d 0a 4c 30 36 35 30 3a 09 53 55 42 09 41 58 2c 41 58 0d ┆R ROUTINE. ; L0650: SUB AX,AX ┆ 0x36280…362a0 0a 09 4d 4f 56 09 44 53 2c 41 58 0d 0a 09 4d 4f 56 09 41 58 2c 30 30 30 31 48 0d 0a 09 4d 4f 56 ┆ MOV DS,AX MOV AX,0001H MOV┆ 0x362a0…362c0 09 57 4f 52 44 20 50 54 52 20 43 53 3a 5b 30 31 30 31 48 5d 2c 41 58 0d 0a 09 4d 4f 56 09 42 59 ┆ WORD PTR CS:Æ0101HÅ,AX MOV BY┆ 0x362c0…362e0 54 45 20 50 54 52 20 43 53 3a 5b 30 31 30 33 48 5d 2c 30 46 46 48 09 3b 53 45 54 20 44 41 4e 49 ┆TE PTR CS:Æ0103HÅ,0FFH ;SET DANI┆ 0x362e0…36300 53 48 0d 0a 09 43 4c 49 0d 0a 09 4d 4f 56 09 41 58 2c 30 31 30 30 48 0d 0a 09 4d 4f 56 09 57 4f ┆SH CLI MOV AX,0100H MOV WO┆ 0x36300…36320 52 44 20 50 54 52 20 44 53 3a 5b 30 30 32 34 48 5d 2c 41 58 09 3b 4f 46 46 53 45 54 20 53 45 47 ┆RD PTR DS:Æ0024HÅ,AX ;OFFSET SEG┆ 0x36320…36340 4d 45 4e 54 28 56 45 43 54 4f 52 29 0d 0a 09 4d 4f 56 09 41 58 2c 43 53 0d 0a 09 4d 4f 56 09 57 ┆MENT(VECTOR) MOV AX,CS MOV W┆ 0x36340…36360 4f 52 44 20 50 54 52 20 44 53 3a 5b 30 30 32 36 48 5d 2c 41 58 09 3b 4e 45 57 20 56 45 43 54 4f ┆ORD PTR DS:Æ0026HÅ,AX ;NEW VECTO┆ 0x36360…36380 52 20 41 44 52 45 53 53 0d 0a 09 53 54 49 0d 0a 09 4d 4f 56 09 44 58 2c 46 49 4e 49 54 2d 53 54 ┆R ADRESS STI MOV DX,FINIT-ST┆ 0x36380…363a0 41 52 54 09 3b 53 49 5a 45 20 52 45 53 49 44 45 4e 54 20 50 4f 52 54 49 4f 4e 0d 0a 09 49 4e 43 ┆ART ;SIZE RESIDENT PORTION INC┆ 0x363a0…363c0 09 44 58 0d 0a 09 49 4e 43 09 44 58 0d 0a 09 49 4e 54 09 32 37 48 0d 0a 3b 0d 0a 58 50 52 4f 43 ┆ DX INC DX INT 27H ; XPROC┆ 0x363c0…363e0 09 45 4e 44 50 0d 0a 58 53 45 47 09 45 4e 44 53 0d 0a 09 45 4e 44 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ENDP XSEG ENDS END ┆ 0x363e0…36400 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ 0x36400…36420 (21, 1, 3) e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x1f…] 0x36800…36820 (21, 1, 4) 00 00 00 00 00 00 00 00 7e 81 a5 81 bd 99 81 7e 7e ff db ff c3 e7 ff 7e 6c fe fe fe 7c 38 10 00 ┆ ü üü ül ø8 ┆ 0x36820…36840 10 38 7c fe 7c 38 10 00 38 7c 38 fe fe 7c 38 7c 10 10 38 7c fe 7c 38 7c 00 00 18 3c 3c 18 00 00 ┆ 8ø ø8 8ø8 ø8ø 8ø ø8ø << ┆ 0x36840…36860 ff ff e7 c3 c3 e7 ff ff 00 3c 66 42 42 66 3c 00 ff c3 99 bd bd 99 c3 ff 0f 07 0f 7d cc cc cc 78 ┆ <fBBf< å x┆ 0x36860…36880 3c 66 66 66 3c 18 7e 18 3f 33 3f 30 30 70 f0 e0 7f 63 7f 63 63 67 e6 c0 99 5a 3c e7 e7 3c 5a 99 ┆<fff< ü ?3?00p c ccg Z< <Z ┆ 0x36880…368a0 80 e0 f8 fe f8 e0 80 00 02 0e 3e fe 3e 0e 02 00 18 3c 7e 18 18 7e 3c 18 66 66 66 66 66 00 66 00 ┆ > > <ü ü< fffff f ┆ 0x368a0…368c0 7f db db 7b 1b 1b 1b 00 3e 63 38 6c 6c 38 cc 78 00 00 00 00 7e 7e 7e 00 18 3c 7e 18 7e 3c 18 ff ┆ æ >c8ll8 x üüü <ü ü< ┆ 0x368c0…368e0 18 3c 7e 18 18 18 18 00 18 18 18 18 7e 3c 18 00 00 18 0c fe 0c 18 00 00 00 30 60 fe 60 30 00 00 ┆ <ü ü< 0` `0 ┆ 0x368e0…36900 00 00 c0 c0 c0 fe 00 00 00 24 66 ff 66 24 00 00 00 18 3c 7e ff ff 00 00 00 ff ff 7e 3c 18 00 00 ┆ $f f$ <ü ü< ┆ 0x36900…36920 00 00 00 00 00 00 00 00 30 78 78 30 30 00 30 00 6c 6c 6c 00 00 00 00 00 6c 6c fe 6c fe 6c 6c 00 ┆ 0xx00 0 lll ll l ll ┆ 0x36920…36940 30 7c c0 78 0c f8 30 00 00 c6 cc 18 30 66 c6 00 38 6c 38 76 dc cc 76 00 60 60 c0 00 00 00 00 00 ┆0ø x 0 0f 8l8v v `` ┆ 0x36940…36960 18 30 60 60 60 30 18 00 60 30 18 18 18 30 60 00 00 66 3c ff 3c 66 00 00 00 30 30 fc 30 30 00 00 ┆ 0```0 `0 0` f< <f 00 00 ┆ 0x36960…36980 00 00 00 00 00 30 30 60 00 00 00 fc 00 00 00 00 00 00 00 00 00 30 30 00 06 0c 18 30 60 c0 80 00 ┆ 00` 00 0` ┆ 0x36980…369a0 7c c6 ce de f6 e6 7c 00 30 70 30 30 30 30 fc 00 78 cc 0c 38 60 cc fc 00 78 cc 0c 38 0c cc 78 00 ┆ø ø 0p0000 x 8` x 8 x ┆ 0x369a0…369c0 1c 3c 6c cc fe 0c 1e 00 fc c0 f8 0c 0c cc 78 00 38 60 c0 f8 cc cc 78 00 fc cc 0c 18 30 30 30 00 ┆ <l x 8` x 000 ┆ 0x369c0…369e0 78 cc cc 78 cc cc 78 00 78 cc cc 7c 0c 18 70 00 00 30 30 00 00 30 30 00 00 30 30 00 00 30 30 60 ┆x x x x ø p 00 00 00 00`┆ 0x369e0…36a00 18 30 60 c0 60 30 18 00 00 00 fc 00 00 fc 00 00 60 30 18 0c 18 30 60 00 78 cc 0c 18 30 00 30 00 ┆ 0` `0 `0 0` x 0 0 ┆ 0x36a00…36a20 7c c6 de de de c0 78 00 30 78 cc cc fc cc cc 00 fc 66 66 7c 66 66 fc 00 3c 66 c0 c0 c0 66 3c 00 ┆ø x 0x fføff <f f< ┆ 0x36a20…36a40 f8 6c 66 66 66 6c f8 00 fe 62 68 78 68 62 fe 00 fe 62 68 78 68 60 f0 00 3c 66 c0 c0 ce 66 3e 00 ┆ lfffl bhxhb bhxh` <f f> ┆ 0x36a40…36a60 cc cc cc fc cc cc cc 00 78 30 30 30 30 30 78 00 1e 0c 0c 0c cc cc 78 00 e6 66 6c 78 6c 66 e6 00 ┆ x00000x x flxlf ┆ 0x36a60…36a80 f0 60 60 60 62 66 fe 00 c6 ee fe fe d6 c6 c6 00 c6 e6 f6 de ce c6 c6 00 38 6c c6 c6 c6 6c 38 00 ┆ ```bf 8l l8 ┆ 0x36a80…36aa0 fc 66 66 7c 60 60 f0 00 78 cc cc cc dc 78 1c 00 fc 66 66 7c 6c 66 e6 00 78 cc e0 70 1c cc 78 00 ┆ ffø`` x x ffølf x p x ┆ 0x36aa0…36ac0 fc b4 30 30 30 30 78 00 cc cc cc cc cc cc fc 00 cc cc cc cc cc 78 30 00 c6 c6 c6 d6 fe ee c6 00 ┆ 0000x x0 ┆ 0x36ac0…36ae0 c6 c6 6c 38 38 6c c6 00 cc cc cc 78 30 30 78 00 fe c6 8c 18 32 66 fe 00 78 60 60 60 60 60 78 00 ┆ l88l x00x 2f x`````x ┆ 0x36ae0…36b00 c0 60 30 18 0c 06 02 00 78 18 18 18 18 18 78 00 10 38 6c c6 00 00 00 00 00 00 00 00 00 00 00 ff ┆ `0 x x 8l ┆ 0x36b00…36b20 30 30 18 00 00 00 00 00 00 00 78 0c 7c cc 76 00 e0 60 60 7c 66 66 dc 00 00 00 78 cc c0 cc 78 00 ┆00 x ø v ``øff x x ┆ 0x36b20…36b40 1c 0c 0c 7c cc cc 76 00 00 00 78 cc fc c0 78 00 38 6c 60 f0 60 60 f0 00 00 00 76 cc cc 7c 0c f8 ┆ ø v x x 8l` `` v ø ┆ 0x36b40…36b60 e0 60 6c 76 66 66 e6 00 30 00 70 30 30 30 78 00 0c 00 0c 0c 0c cc cc 78 e0 60 66 6c 78 6c e6 00 ┆ `lvff 0 p000x x `flxl ┆ 0x36b60…36b80 70 30 30 30 30 30 78 00 00 00 cc fe fe d6 c6 00 00 00 f8 cc cc cc cc 00 00 00 78 cc cc cc 78 00 ┆p00000x x x ┆ 0x36b80…36ba0 00 00 dc 66 66 7c 60 f0 00 00 76 cc cc 7c 0c 1e 00 00 dc 76 66 60 f0 00 00 00 7c c0 78 0c f8 00 ┆ ffø` v ø vf` ø x ┆ 0x36ba0…36bc0 10 30 7c 30 30 34 18 00 00 00 cc cc cc cc 76 00 00 00 cc cc cc 78 30 00 00 00 c6 d6 fe fe 6c 00 ┆ 0ø004 v x0 l ┆ 0x36bc0…36be0 00 00 c6 6c 38 6c c6 00 00 00 cc cc cc 7c 0c f8 00 00 fc 98 30 64 fc 00 1c 30 30 e0 30 30 1c 00 ┆ l8l ø 0d 00 00 ┆ 0x36be0…36c00 18 18 18 00 18 18 18 00 e0 30 30 1c 30 30 e0 00 76 dc 00 00 00 00 00 00 00 10 38 6c c6 c6 fe 00 ┆ 00 00 v 8l ┆ 0x36c00…36c20 (21, 1, 5) 3c 66 60 66 3c 0c 06 3c 00 66 00 66 66 66 3f 00 0e 00 3c 66 7e 60 3c 00 7e c3 3c 06 3e 66 3f 00 ┆<f`f< < f fff? <fü`< ü < >f? ┆ 0x36c20…36c40 66 00 3c 06 3e 66 3f 00 70 00 3c 06 3e 66 3f 00 30 00 78 0c 7c cc 7e 00 00 00 3c 60 60 3c 06 1c ┆f < >f? p < >f? 0 x ø ü <``< ┆ 0x36c40…36c60 7e c3 3c 66 7e 60 3c 00 66 00 3c 66 7e 60 3c 00 70 00 3c 66 7e 60 3c 00 66 00 38 18 18 18 3c 00 ┆ü <fü`< f <fü`< p <fü`< f 8 < ┆ 0x36c60…36c80 7c c6 38 18 18 18 3c 00 70 00 38 18 18 18 3c 00 63 1c 36 63 7f 63 63 00 30 00 78 cc fc cc cc 00 ┆ø 8 < p 8 < c 6c cc 0 x ┆ 0x36c80…36ca0 0e 00 7e 30 3c 30 7e 00 00 00 fe 12 fe 90 fe 00 3e 6c cc fe cc cc ce 00 38 66 00 3c 66 66 3c 00 ┆ ü0<0ü >l 8f <ff< ┆ 0x36ca0…36cc0 00 66 00 3c 66 66 3c 00 00 70 00 3c 66 66 3c 00 3c 66 00 66 66 66 3f 00 00 70 00 66 66 66 3f 00 ┆ f <ff< p <ff< <f fff? p fff? ┆ 0x36cc0…36ce0 00 66 00 66 66 3e 06 7c c3 18 3c 66 66 3c 18 00 66 00 66 66 66 66 3c 00 00 02 7c ce d6 e6 7c 80 ┆ f ff> ø <ff< f ffff< ø ø ┆ 0x36ce0…36d00 1c 36 32 78 30 73 7e 00 7c c6 ce d6 e6 c6 7c 00 f0 60 66 60 62 66 fe 00 70 30 30 36 30 30 78 00 ┆ 62x0sü ø ø `f`bf p00600x ┆ 0x36d00…36d20 0e 00 3c 06 3e 66 3f 00 1c 00 38 18 18 18 3c 00 00 0e 00 3c 66 66 3c 00 00 0e 00 66 66 66 3f 00 ┆ < >f? 8 < <ff< fff? ┆ 0x36d20…36d40 00 7c 00 7c 66 66 66 00 7e 00 66 76 7e 6e 66 00 00 7e 00 3c 66 66 3c 00 7e 00 1c 36 63 36 1c 00 ┆ ø øfff ü fvünf ü <ff< ü 6c6 ┆ 0x36d40…36d60 18 00 18 30 60 66 3c 00 7e 00 3c 06 3e 66 3f 00 7e 00 3c 66 7e 66 66 00 10 38 6c 6c 38 34 58 00 ┆ 0`f< ü < >f? ü <füff 8ll84X ┆ 0x36d60…36d80 c0 c0 00 f8 cc cc cc 00 18 18 00 18 18 18 18 00 7c 18 30 98 70 00 00 00 00 c6 7c c6 c6 7c c6 00 ┆ ø 0 p ø ø ┆ 0x36d80…36da0 22 88 22 88 22 88 22 88 55 aa 55 aa 55 aa 55 aa db 77 db ee db 77 db ee 18 18 18 18 18 18 18 18 ┆" " " " U U U U w w ┆ 0x36da0…36dc0 18 18 18 18 f8 18 18 18 18 18 f8 18 f8 18 18 18 36 36 36 36 f6 36 36 36 00 00 00 00 fe 36 36 36 ┆ 6666 666 666┆ 0x36dc0…36de0 00 00 f8 18 f8 18 18 18 36 36 f6 06 f6 36 36 36 36 36 36 36 36 36 36 36 00 00 fe 06 f6 36 36 36 ┆ 66 66666666666 666┆ 0x36de0…36e00 36 36 f6 06 fe 00 00 00 36 36 36 36 fe 00 00 00 18 18 f8 18 f8 00 00 00 00 00 00 00 f8 18 18 18 ┆66 6666 ┆ 0x36e00…36e20 18 18 18 18 1f 00 00 00 18 18 18 18 ff 00 00 00 00 00 00 00 ff 18 18 18 18 18 18 18 1f 18 18 18 ┆ ┆ 0x36e20…36e40 00 00 00 00 ff 00 00 00 18 18 18 18 ff 18 18 18 18 18 1f 18 1f 18 18 18 36 36 36 36 37 36 36 36 ┆ 66667666┆ 0x36e40…36e60 36 36 37 30 3f 00 00 00 00 00 3f 30 37 36 36 36 36 36 f7 00 ff 00 00 00 00 00 ff 00 f7 36 36 36 ┆6670? ?0766666 666┆ 0x36e60…36e80 36 36 37 30 37 36 36 36 00 00 ff 00 ff 00 00 00 36 36 f7 00 f7 36 36 36 18 18 ff 00 ff 00 00 00 ┆66707666 66 666 ┆ 0x36e80…36ea0 36 36 36 36 ff 00 00 00 00 00 ff 00 ff 18 18 18 00 00 00 00 ff 36 36 36 36 36 36 36 3f 00 00 00 ┆6666 6666666? ┆ 0x36ea0…36ec0 18 18 1f 18 1f 00 00 00 00 00 1f 18 1f 18 18 18 00 00 00 00 3f 36 36 36 36 36 36 36 ff 36 36 36 ┆ ?6666666 666┆ 0x36ec0…36ee0 18 18 ff 18 ff 18 18 18 18 18 18 18 f8 00 00 00 00 00 00 00 1f 18 18 18 ff ff ff ff ff ff ff ff ┆ ┆ 0x36ee0…36f00 00 00 00 00 ff ff ff ff f0 f0 f0 f0 f0 f0 f0 f0 0f 0f 0f 0f 0f 0f 0f 0f ff ff ff ff 00 00 00 00 ┆ ┆ 0x36f00…36f20 00 00 3b 6e 64 6e 3b 00 00 3c 66 7c 66 7c 60 60 00 7e 66 60 60 60 60 00 00 7f 36 36 36 36 36 00 ┆ ;ndn; <føfø`` üf```` 66666 ┆ 0x36f20…36f40 7e 66 30 18 30 66 7e 00 00 00 3f 6c 6c 6c 38 00 00 33 33 33 33 3e 30 60 00 3b 6e 0c 0c 0c 0c 00 ┆üf0 0fü ?lll8 3333>0` ;n ┆ 0x36f40…36f60 7e 18 3c 66 66 3c 18 7e 1c 36 63 7f 63 36 1c 00 1c 36 63 63 36 36 77 00 0e 18 0c 3e 66 66 3c 00 ┆ü <ff< ü 6c c6 6cc66w >ff< ┆ 0x36f60…36f80 00 00 7e db db 7e 00 00 06 0c 7e db db 7e 60 c0 1c 60 c0 fc c0 60 1c 00 3c 66 66 66 66 66 66 00 ┆ ü ü ü ü` ` ` <ffffff ┆ 0x36f80…36fa0 00 7e 00 7e 00 7e 00 00 18 18 7e 18 18 00 7e 00 30 18 0c 18 30 00 7e 00 0c 18 30 18 0c 00 7e 00 ┆ ü ü ü ü ü 0 0 ü 0 ü ┆ 0x36fa0…36fc0 0e 1b 1b 18 18 18 18 18 18 18 18 18 18 d8 d8 70 18 18 00 7e 00 18 18 00 00 76 dc 00 76 dc 00 00 ┆ p ü v v ┆ 0x36fc0…36fe0 38 6c 6c 38 00 00 00 00 00 00 00 18 18 00 00 00 00 00 00 00 18 00 00 00 0f 0c 0c 0c ec 6c 3c 1c ┆8ll8 l< ┆ 0x36fe0…37000 78 6c 6c 6c 6c 00 00 00 70 18 30 60 78 00 00 00 00 00 3c 3c 3c 3c 00 00 7e 81 bd a1 bd 29 26 00 ┆xllll p 0`x <<<< ü )& ┆ 0x37000…37020 (22, 0, 1) 00 00 00 00 00 00 00 00 7e 81 a5 81 bd 99 81 7e 7e ff db ff c3 e7 ff 7e 6c fe fe fe 7c 38 10 00 ┆ ü üü ül ø8 ┆ 0x37020…37040 10 38 7c fe 7c 38 10 00 38 7c 38 fe fe 7c 38 7c 10 10 38 7c fe 7c 38 7c 00 00 18 3c 3c 18 00 00 ┆ 8ø ø8 8ø8 ø8ø 8ø ø8ø << ┆ 0x37040…37060 ff ff e7 c3 c3 e7 ff ff 00 3c 66 42 42 66 3c 00 ff c3 99 bd bd 99 c3 ff 0f 07 0f 7d cc cc cc 78 ┆ <fBBf< å x┆ 0x37060…37080 3c 66 66 66 3c 18 7e 18 3f 33 3f 30 30 70 f0 e0 7f 63 7f 63 63 67 e6 c0 99 5a 3c e7 e7 3c 5a 99 ┆<fff< ü ?3?00p c ccg Z< <Z ┆ 0x37080…370a0 80 e0 f8 fe f8 e0 80 00 02 0e 3e fe 3e 0e 02 00 18 3c 7e 18 18 7e 3c 18 66 66 66 66 66 00 66 00 ┆ > > <ü ü< fffff f ┆ 0x370a0…370c0 7f db db 7b 1b 1b 1b 00 3e 63 38 6c 6c 38 cc 78 00 00 00 00 7e 7e 7e 00 18 3c 7e 18 7e 3c 18 ff ┆ æ >c8ll8 x üüü <ü ü< ┆ 0x370c0…370e0 18 3c 7e 18 18 18 18 00 18 18 18 18 7e 3c 18 00 00 18 0c fe 0c 18 00 00 00 30 60 fe 60 30 00 00 ┆ <ü ü< 0` `0 ┆ 0x370e0…37100 00 00 c0 c0 c0 fe 00 00 00 24 66 ff 66 24 00 00 00 18 3c 7e ff ff 00 00 00 ff ff 7e 3c 18 00 00 ┆ $f f$ <ü ü< ┆ 0x37100…37120 00 00 00 00 00 00 00 00 30 78 78 30 30 00 30 00 6c 6c 6c 00 00 00 00 00 6c 6c fe 6c fe 6c 6c 00 ┆ 0xx00 0 lll ll l ll ┆ 0x37120…37140 30 7c c0 78 0c f8 30 00 00 c6 cc 18 30 66 c6 00 38 6c 38 76 dc cc 76 00 60 60 c0 00 00 00 00 00 ┆0ø x 0 0f 8l8v v `` ┆ 0x37140…37160 18 30 60 60 60 30 18 00 60 30 18 18 18 30 60 00 00 66 3c ff 3c 66 00 00 00 30 30 fc 30 30 00 00 ┆ 0```0 `0 0` f< <f 00 00 ┆ 0x37160…37180 00 00 00 00 00 30 30 60 00 00 00 fc 00 00 00 00 00 00 00 00 00 30 30 00 06 0c 18 30 60 c0 80 00 ┆ 00` 00 0` ┆ 0x37180…371a0 7c c6 ce de f6 e6 7c 00 30 70 30 30 30 30 fc 00 78 cc 0c 38 60 cc fc 00 78 cc 0c 38 0c cc 78 00 ┆ø ø 0p0000 x 8` x 8 x ┆ 0x371a0…371c0 1c 3c 6c cc fe 0c 1e 00 fc c0 f8 0c 0c cc 78 00 38 60 c0 f8 cc cc 78 00 fc cc 0c 18 30 30 30 00 ┆ <l x 8` x 000 ┆ 0x371c0…371e0 78 cc cc 78 cc cc 78 00 78 cc cc 7c 0c 18 70 00 00 30 30 00 00 30 30 00 00 30 30 00 00 30 30 60 ┆x x x x ø p 00 00 00 00`┆ 0x371e0…37200 18 30 60 c0 60 30 18 00 00 00 fc 00 00 fc 00 00 60 30 18 0c 18 30 60 00 78 cc 0c 18 30 00 30 00 ┆ 0` `0 `0 0` x 0 0 ┆ 0x37200…37220 7c c6 de de de c0 78 00 30 78 cc cc fc cc cc 00 fc 66 66 7c 66 66 fc 00 3c 66 c0 c0 c0 66 3c 00 ┆ø x 0x fføff <f f< ┆ 0x37220…37240 f8 6c 66 66 66 6c f8 00 fe 62 68 78 68 62 fe 00 fe 62 68 78 68 60 f0 00 3c 66 c0 c0 ce 66 3e 00 ┆ lfffl bhxhb bhxh` <f f> ┆ 0x37240…37260 cc cc cc fc cc cc cc 00 78 30 30 30 30 30 78 00 1e 0c 0c 0c cc cc 78 00 e6 66 6c 78 6c 66 e6 00 ┆ x00000x x flxlf ┆ 0x37260…37280 f0 60 60 60 62 66 fe 00 c6 ee fe fe d6 c6 c6 00 c6 e6 f6 de ce c6 c6 00 38 6c c6 c6 c6 6c 38 00 ┆ ```bf 8l l8 ┆ 0x37280…372a0 fc 66 66 7c 60 60 f0 00 78 cc cc cc dc 78 1c 00 fc 66 66 7c 6c 66 e6 00 78 cc e0 70 1c cc 78 00 ┆ ffø`` x x ffølf x p x ┆ 0x372a0…372c0 fc b4 30 30 30 30 78 00 cc cc cc cc cc cc fc 00 cc cc cc cc cc 78 30 00 c6 c6 c6 d6 fe ee c6 00 ┆ 0000x x0 ┆ 0x372c0…372e0 c6 c6 6c 38 38 6c c6 00 cc cc cc 78 30 30 78 00 fe c6 8c 18 32 66 fe 00 78 60 60 60 60 60 78 00 ┆ l88l x00x 2f x`````x ┆ 0x372e0…37300 c0 60 30 18 0c 06 02 00 78 18 18 18 18 18 78 00 10 38 6c c6 00 00 00 00 00 00 00 00 00 00 00 ff ┆ `0 x x 8l ┆ 0x37300…37320 30 30 18 00 00 00 00 00 00 00 78 0c 7c cc 76 00 e0 60 60 7c 66 66 dc 00 00 00 78 cc c0 cc 78 00 ┆00 x ø v ``øff x x ┆ 0x37320…37340 1c 0c 0c 7c cc cc 76 00 00 00 78 cc fc c0 78 00 38 6c 60 f0 60 60 f0 00 00 00 76 cc cc 7c 0c f8 ┆ ø v x x 8l` `` v ø ┆ 0x37340…37360 e0 60 6c 76 66 66 e6 00 30 00 70 30 30 30 78 00 0c 00 0c 0c 0c cc cc 78 e0 60 66 6c 78 6c e6 00 ┆ `lvff 0 p000x x `flxl ┆ 0x37360…37380 70 30 30 30 30 30 78 00 00 00 cc fe fe d6 c6 00 00 00 f8 cc cc cc cc 00 00 00 78 cc cc cc 78 00 ┆p00000x x x ┆ 0x37380…373a0 00 00 dc 66 66 7c 60 f0 00 00 76 cc cc 7c 0c 1e 00 00 dc 76 66 60 f0 00 00 00 7c c0 78 0c f8 00 ┆ ffø` v ø vf` ø x ┆ 0x373a0…373c0 10 30 7c 30 30 34 18 00 00 00 cc cc cc cc 76 00 00 00 cc cc cc 78 30 00 00 00 c6 d6 fe fe 6c 00 ┆ 0ø004 v x0 l ┆ 0x373c0…373e0 00 00 c6 6c 38 6c c6 00 00 00 cc cc cc 7c 0c f8 00 00 fc 98 30 64 fc 00 1c 30 30 e0 30 30 1c 00 ┆ l8l ø 0d 00 00 ┆ 0x373e0…37400 18 18 18 00 18 18 18 00 e0 30 30 1c 30 30 e0 00 76 dc 00 00 00 00 00 00 00 10 38 6c c6 c6 fe 00 ┆ 00 00 v 8l ┆ 0x37400…37420 (22, 0, 2) 3c 66 60 66 3c 0c 06 3c 00 66 00 66 66 66 3f 00 0e 00 3c 66 7e 60 3c 00 7e c3 3c 06 3e 66 3f 00 ┆<f`f< < f fff? <fü`< ü < >f? ┆ 0x37420…37440 66 00 3c 06 3e 66 3f 00 70 00 3c 06 3e 66 3f 00 30 00 78 0c 7c cc 7e 00 00 00 3c 60 60 3c 06 1c ┆f < >f? p < >f? 0 x ø ü <``< ┆ 0x37440…37460 7e c3 3c 66 7e 60 3c 00 66 00 3c 66 7e 60 3c 00 70 00 3c 66 7e 60 3c 00 66 00 38 18 18 18 3c 00 ┆ü <fü`< f <fü`< p <fü`< f 8 < ┆ 0x37460…37480 7c c6 38 18 18 18 3c 00 70 00 38 18 18 18 3c 00 63 1c 36 63 7f 63 63 00 30 00 78 cc fc cc cc 00 ┆ø 8 < p 8 < c 6c cc 0 x ┆ 0x37480…374a0 0e 00 7e 30 3c 30 7e 00 00 00 fe 12 fe 90 fe 00 3e 6c cc fe cc cc ce 00 38 66 00 3c 66 66 3c 00 ┆ ü0<0ü >l 8f <ff< ┆ 0x374a0…374c0 00 66 00 3c 66 66 3c 00 00 70 00 3c 66 66 3c 00 3c 66 00 66 66 66 3f 00 00 70 00 66 66 66 3f 00 ┆ f <ff< p <ff< <f fff? p fff? ┆ 0x374c0…374e0 00 66 00 66 66 3e 06 7c c3 18 3c 66 66 3c 18 00 66 00 66 66 66 66 3c 00 00 02 7c ce d6 e6 7c 80 ┆ f ff> ø <ff< f ffff< ø ø ┆ 0x374e0…37500 1c 36 32 78 30 73 7e 00 7c c6 ce d6 e6 c6 7c 00 f0 60 66 60 62 66 fe 00 70 30 30 36 30 30 78 00 ┆ 62x0sü ø ø `f`bf p00600x ┆ 0x37500…37520 0e 00 3c 06 3e 66 3f 00 1c 00 38 18 18 18 3c 00 00 0e 00 3c 66 66 3c 00 00 0e 00 66 66 66 3f 00 ┆ < >f? 8 < <ff< fff? ┆ 0x37520…37540 00 7c 00 7c 66 66 66 00 7e 00 66 76 7e 6e 66 00 00 7e 00 3c 66 66 3c 00 7e 00 1c 36 63 36 1c 00 ┆ ø øfff ü fvünf ü <ff< ü 6c6 ┆ 0x37540…37560 18 00 18 30 60 66 3c 00 7e 00 3c 06 3e 66 3f 00 7e 00 3c 66 7e 66 66 00 10 38 6c 6c 38 34 58 00 ┆ 0`f< ü < >f? ü <füff 8ll84X ┆ 0x37560…37580 c0 c0 00 f8 cc cc cc 00 18 18 00 18 18 18 18 00 7c 18 30 98 70 00 00 00 00 c6 7c c6 c6 7c c6 00 ┆ ø 0 p ø ø ┆ 0x37580…375a0 22 88 22 88 22 88 22 88 55 aa 55 aa 55 aa 55 aa db 77 db ee db 77 db ee 18 18 18 18 18 18 18 18 ┆" " " " U U U U w w ┆ 0x375a0…375c0 18 18 18 18 f8 18 18 18 18 18 f8 18 f8 18 18 18 36 36 36 36 f6 36 36 36 00 00 00 00 fe 36 36 36 ┆ 6666 666 666┆ 0x375c0…375e0 00 00 f8 18 f8 18 18 18 36 36 f6 06 f6 36 36 36 36 36 36 36 36 36 36 36 00 00 fe 06 f6 36 36 36 ┆ 66 66666666666 666┆ 0x375e0…37600 36 36 f6 06 fe 00 00 00 36 36 36 36 fe 00 00 00 18 18 f8 18 f8 00 00 00 00 00 00 00 f8 18 18 18 ┆66 6666 ┆ 0x37600…37620 18 18 18 18 1f 00 00 00 18 18 18 18 ff 00 00 00 00 00 00 00 ff 18 18 18 18 18 18 18 1f 18 18 18 ┆ ┆ 0x37620…37640 00 00 00 00 ff 00 00 00 18 18 18 18 ff 18 18 18 18 18 1f 18 1f 18 18 18 36 36 36 36 37 36 36 36 ┆ 66667666┆ 0x37640…37660 36 36 37 30 3f 00 00 00 00 00 3f 30 37 36 36 36 36 36 f7 00 ff 00 00 00 00 00 ff 00 f7 36 36 36 ┆6670? ?0766666 666┆ 0x37660…37680 36 36 37 30 37 36 36 36 00 00 ff 00 ff 00 00 00 36 36 f7 00 f7 36 36 36 18 18 ff 00 ff 00 00 00 ┆66707666 66 666 ┆ 0x37680…376a0 36 36 36 36 ff 00 00 00 00 00 ff 00 ff 18 18 18 00 00 00 00 ff 36 36 36 36 36 36 36 3f 00 00 00 ┆6666 6666666? ┆ 0x376a0…376c0 18 18 1f 18 1f 00 00 00 00 00 1f 18 1f 18 18 18 00 00 00 00 3f 36 36 36 36 36 36 36 ff 36 36 36 ┆ ?6666666 666┆ 0x376c0…376e0 18 18 ff 18 ff 18 18 18 18 18 18 18 f8 00 00 00 00 00 00 00 1f 18 18 18 ff ff ff ff ff ff ff ff ┆ ┆ 0x376e0…37700 00 00 00 00 ff ff ff ff f0 f0 f0 f0 f0 f0 f0 f0 0f 0f 0f 0f 0f 0f 0f 0f ff ff ff ff 00 00 00 00 ┆ ┆ 0x37700…37720 00 00 3b 6e 64 6e 3b 00 00 3c 66 7c 66 7c 60 60 00 7e 66 60 60 60 60 00 00 7f 36 36 36 36 36 00 ┆ ;ndn; <føfø`` üf```` 66666 ┆ 0x37720…37740 7e 66 30 18 30 66 7e 00 00 00 3f 6c 6c 6c 38 00 00 33 33 33 33 3e 30 60 00 3b 6e 0c 0c 0c 0c 00 ┆üf0 0fü ?lll8 3333>0` ;n ┆ 0x37740…37760 7e 18 3c 66 66 3c 18 7e 1c 36 63 7f 63 36 1c 00 1c 36 63 63 36 36 77 00 0e 18 0c 3e 66 66 3c 00 ┆ü <ff< ü 6c c6 6cc66w >ff< ┆ 0x37760…37780 00 00 7e db db 7e 00 00 06 0c 7e db db 7e 60 c0 1c 60 c0 fc c0 60 1c 00 3c 66 66 66 66 66 66 00 ┆ ü ü ü ü` ` ` <ffffff ┆ 0x37780…377a0 00 7e 00 7e 00 7e 00 00 18 18 7e 18 18 00 7e 00 30 18 0c 18 30 00 7e 00 0c 18 30 18 0c 00 7e 00 ┆ ü ü ü ü ü 0 0 ü 0 ü ┆ 0x377a0…377c0 0e 1b 1b 18 18 18 18 18 18 18 18 18 18 d8 d8 70 18 18 00 7e 00 18 18 00 00 76 dc 00 76 dc 00 00 ┆ p ü v v ┆ 0x377c0…377e0 38 6c 6c 38 00 00 00 00 00 00 00 18 18 00 00 00 00 00 00 00 18 00 00 00 0f 0c 0c 0c ec 6c 3c 1c ┆8ll8 l< ┆ 0x377e0…37800 78 6c 6c 6c 6c 00 00 00 70 18 30 60 78 00 00 00 00 00 3c 3c 3c 3c 00 00 7e 81 bd a1 bd 29 26 00 ┆xllll p 0`x <<<< ü )& ┆ 0x37800…37820 (22, 0, 3) 28 2a 47 53 56 2d 43 50 49 2a 29 0d 0a 43 4f 4e 53 54 0d 0a 20 20 62 6c 61 63 6b 20 09 3d 20 30 ┆(*GSV-CPI*) CONST black = 0┆ 0x37820…37840 3b 0d 0a 20 20 77 68 69 74 65 20 09 3d 20 24 46 46 3b 0d 0a 20 20 74 72 61 6e 73 70 09 3d 20 30 ┆; white = $FF; transp = 0┆ 0x37840…37860 31 3b 0d 0a 20 20 57 6e 64 5f 6d 61 78 20 09 3d 20 35 3b 0d 0a 20 20 63 68 61 72 66 69 6c 6e 61 ┆1; Wnd_max = 5; charfilna┆ 0x37860…37880 6d 65 20 09 3d 20 27 38 78 38 66 6f 6e 74 2e 63 68 72 27 3b 0d 0a 20 20 74 78 74 5f 6d 6f 64 65 ┆me = '8x8font.chr'; txt_mode┆ 0x37880…378a0 09 3a 20 42 4f 4f 4c 45 41 4e 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 0d 0a 28 2a 20 20 46 6f ┆ : BOOLEAN = true; (* Fo┆ 0x378a0…378c0 72 65 2d 20 61 6e 64 20 62 61 63 6b 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 2a 29 0d 0a 28 2a 20 20 ┆re- and backgroundcolors*) (* ┆ 0x378c0…378e0 20 20 4c 69 67 68 74 54 78 74 20 6f 6e 6c 79 20 77 6f 72 6b 73 20 46 4f 52 20 66 6f 72 65 67 72 ┆ LightTxt only works FOR foregr┆ 0x378e0…37900 6f 75 6e 64 63 6f 6c 6f 72 73 2a 29 0d 0a 28 2a 20 20 20 20 42 6c 69 6e 6b 54 78 74 20 6f 6e 6c ┆oundcolors*) (* BlinkTxt onl┆ 0x37900…37920 79 20 77 6f 72 6b 73 20 46 4f 52 20 62 61 63 6b 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 20 2a 29 0d ┆y works FOR backgroundcolors *) ┆ 0x37920…37940 0a 20 20 62 6c 61 63 6b 54 78 74 09 3d 20 30 3b 20 20 62 6c 75 65 54 78 74 09 3d 20 31 3b 0d 0a ┆ blackTxt = 0; blueTxt = 1; ┆ 0x37940…37960 20 20 67 72 65 65 6e 74 78 74 09 3d 20 32 3b 20 20 63 79 61 6e 74 78 74 09 3d 20 33 3b 0d 0a 20 ┆ greentxt = 2; cyantxt = 3; ┆ 0x37960…37980 20 72 65 64 54 78 74 09 3d 20 34 3b 20 20 6d 61 67 65 6e 74 61 74 78 74 3d 20 35 3b 0d 0a 20 20 ┆ redTxt = 4; magentatxt= 5; ┆ 0x37980…379a0 79 65 6c 6c 6f 77 74 78 74 09 3d 20 36 3b 20 20 77 68 69 74 65 74 78 74 09 3d 20 37 3b 0d 0a 20 ┆yellowtxt = 6; whitetxt = 7; ┆ 0x379a0…379c0 20 6c 69 67 68 74 74 78 74 09 3d 20 38 3b 20 20 62 6c 69 6e 6b 74 78 74 20 20 3d 20 38 3b 0d 0a ┆ lighttxt = 8; blinktxt = 8; ┆ 0x379c0…379e0 0d 0a 20 20 68 65 6c 70 3a 41 52 52 41 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 53 54 52 49 4e 47 ┆ help:ARRAY(.0..7.) OF STRING┆ 0x379e0…37a00 28 2e 34 30 2e 29 20 3d 0d 0a 20 20 20 20 28 27 3c 48 4f 4d 45 3e 20 20 6d 61 72 6b 9b 72 20 74 ┆(.40.) = ('<HOME> mark r t┆ 0x37a00…37a20 69 6c 20 74 65 6b 73 74 73 74 61 72 74 27 2c 0d 0a 20 20 20 20 27 3c 45 4e 44 3e 20 20 20 6d 61 ┆il tekststart', '<END> ma┆ 0x37a20…37a40 72 6b 9b 72 20 74 69 6c 20 74 65 6b 73 74 73 6c 75 74 27 2c 0d 0a 20 20 20 20 27 3c 44 45 4c 3e ┆rk r til tekstslut', '<DEL>┆ 0x37a40…37a60 20 20 20 73 6c 65 74 20 74 65 67 6e 20 70 86 20 6d 61 72 6b 9b 72 65 6e 73 20 70 6c 61 64 73 27 ┆ slet tegn p mark rens plads'┆ 0x37a60…37a80 2c 0d 0a 20 20 20 20 27 3c 49 4e 53 3e 20 20 20 73 6b 69 66 74 20 6d 65 6c 6c 65 6d 20 6f 76 65 ┆, '<INS> skift mellem ove┆ 0x37a80…37aa0 72 73 6b 72 69 76 20 6f 67 20 69 6e 64 73 91 74 27 2c 0d 0a 20 20 20 20 27 3c 46 35 3e 20 20 20 ┆rskriv og inds t', '<F5> ┆ 0x37aa0…37ac0 20 73 6c 65 74 20 6c 69 6e 69 65 20 66 72 61 20 6d 61 72 6b 9b 72 65 6e 73 20 70 6c 61 64 73 27 ┆ slet linie fra mark rens plads'┆ 0x37ac0…37ae0 2c 0d 0a 20 20 20 20 27 3c 11 27 40 31 39 36 27 3e 20 20 20 20 73 6c 65 74 20 74 65 67 6e 20 74 ┆, '< '@196'> slet tegn t┆ 0x37ae0…37b00 69 6c 20 76 65 6e 73 74 72 65 20 46 4f 52 20 6d 61 72 6b 9b 72 27 2c 0d 0a 20 20 20 20 27 3c 1b ┆il venstre FOR mark r', '< ┆ 0x37b00…37b20 3e 20 20 20 20 20 72 79 6b 20 6d 61 72 6b 9b 72 20 65 6e 20 70 6c 61 64 73 20 74 69 6c 20 76 65 ┆> ryk mark r en plads til ve┆ 0x37b20…37b40 6e 73 74 72 65 27 2c 0d 0a 20 20 20 20 27 3c 27 40 32 36 27 3e 20 20 20 20 20 72 79 6b 20 6d 61 ┆nstre', '<'@26'> ryk ma┆ 0x37b40…37b60 72 6b 9b 72 20 65 6e 20 70 6c 61 64 73 20 74 69 6c 20 68 9b 6a 72 65 27 29 3b 0d 0a 0d 0a 0d 0a ┆rk r en plads til h jre'); ┆ 0x37b60…37b80 54 59 50 45 0d 0a 20 20 42 75 66 74 79 70 65 20 09 3d 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 20 20 ┆TYPE Buftype = ^INTEGER; ┆ 0x37b80…37ba0 73 74 72 38 30 20 09 3d 20 53 54 52 49 4e 47 28 2e 38 30 2e 29 3b 0d 0a 20 20 73 74 72 31 20 20 ┆str80 = STRING(.80.); str1 ┆ 0x37ba0…37bc0 20 20 20 20 20 20 20 20 3d 20 53 54 52 49 4e 47 5b 31 5d 3b 0d 0a 20 20 73 74 72 31 35 20 20 20 ┆ = STRINGÆ1Å; str15 ┆ 0x37bc0…37be0 20 20 20 20 20 20 3d 20 53 54 52 49 4e 47 5b 31 35 5d 3b 0d 0a 20 20 73 74 72 32 35 20 20 20 20 ┆ = STRINGÆ15Å; str25 ┆ 0x37be0…37c00 20 20 20 20 20 3d 20 53 54 52 49 4e 47 5b 32 35 5d 3b 0d 0a 20 20 63 68 61 72 73 65 74 20 20 20 ┆ = STRINGÆ25Å; charset ┆ 0x37c00…37c20 (22, 0, 4) 20 20 20 20 3d 20 73 65 74 20 6f 66 20 63 68 61 72 3b 0d 0a 20 20 57 6e 64 5f 54 59 50 45 20 3d ┆ = set of char; Wnd_TYPE =┆ 0x37c20…37c40 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 78 31 2c 20 79 31 09 09 3a 20 49 4e 54 45 47 45 52 3b 0d ┆ RECORD x1, y1 : INTEGER; ┆ 0x37c40…37c60 0a 20 20 20 20 6d 61 78 78 2c 20 6d 61 78 79 09 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 ┆ maxx, maxy : INTEGER; ┆ 0x37c60…37c80 20 70 65 6e 63 6f 6c 6f 72 2c 20 62 61 63 6b 63 6f 6c 6f 72 09 3a 20 49 4e 54 45 47 45 52 3b 0d ┆ pencolor, backcolor : INTEGER; ┆ 0x37c80…37ca0 0a 20 20 20 20 74 78 74 6d 61 78 78 2c 20 74 78 74 6d 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b ┆ txtmaxx, txtmaxy : INTEGER;┆ 0x37ca0…37cc0 0d 0a 20 20 20 20 74 78 74 78 31 2c 20 74 78 74 79 31 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆ txtx1, txty1 : INTEGER; ┆ 0x37cc0…37ce0 20 20 20 68 64 72 09 09 09 3a 20 73 74 72 38 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 57 ┆ hdr : str80; END; W┆ 0x37ce0…37d00 6c 64 5f 54 59 50 45 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 78 31 2c 20 79 31 09 3a 20 52 ┆ld_TYPE = RECORD x1, y1 : R┆ 0x37d00…37d20 45 41 4c 3b 0d 0a 20 20 20 20 78 72 61 6e 67 65 2c 20 79 72 61 6e 67 65 3a 20 52 45 41 4c 3b 0d ┆EAL; xrange, yrange: REAL; ┆ 0x37d20…37d40 0a 20 20 20 20 58 4f 6c 64 2c 20 59 6f 6c 64 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 45 4e 44 3b 0d ┆ XOld, Yold : REAL; END; ┆ 0x37d40…37d60 0a 0d 0a 20 20 73 61 76 65 5f 54 59 50 45 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 63 6f 6e ┆ save_TYPE = RECORD con┆ 0x37d60…37d80 74 65 6e 74 09 3a 20 62 75 66 74 79 70 65 3b 0d 0a 20 20 20 20 6c 65 6e 67 74 68 09 3a 20 49 4e ┆tent : buftype; length : IN┆ 0x37d80…37da0 54 45 47 45 52 3b 0d 0a 20 20 20 20 77 69 6e 64 09 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 ┆TEGER; wind : Wnd_TYPE; ┆ 0x37da0…37dc0 20 20 6f 6c 64 31 2c 20 6f 6c 64 32 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 20 20 61 63 74 75 61 6c ┆ old1, old2 : REAL; actual┆ 0x37dc0…37de0 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 20 20 72 65 67 74 79 ┆ : INTEGER; END; regty┆ 0x37de0…37e00 70 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 61 78 2c 62 78 2c 63 78 2c 64 78 2c 62 70 2c 73 ┆p = RECORD ax,bx,cx,dx,bp,s┆ 0x37e00…37e20 69 2c 64 69 2c 64 73 2c 65 73 2c 66 6c 61 67 73 3a 49 4e 54 45 47 45 52 0d 0a 20 20 45 4e 44 3b ┆i,di,ds,es,flags:INTEGER END;┆ 0x37e20…37e40 0d 0a 20 20 6f 70 72 74 79 70 65 09 3d 20 28 73 61 76 65 2c 6c 6f 61 64 2c 73 63 72 73 77 61 70 ┆ oprtype = (save,load,scrswap┆ 0x37e40…37e60 29 3b 0d 0a 20 20 63 68 61 72 66 69 6c 74 79 70 65 09 3d 20 41 52 52 41 59 28 2e 30 2e 2e 32 35 ┆); charfiltype = ARRAY(.0..25┆ 0x37e60…37e80 35 2e 29 20 4f 46 20 41 52 52 41 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 42 59 54 45 3b 0d 0a 0d ┆5.) OF ARRAY(.0..7.) OF BYTE; ┆ 0x37e80…37ea0 0a 20 20 74 78 74 5f 6c 69 6e 65 63 68 61 72 09 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 43 41 ┆ txt_linechar = RECORD CA┆ 0x37ea0…37ec0 53 45 20 42 4f 4f 4c 45 41 4e 20 4f 46 0d 0a 20 20 20 20 20 20 74 72 75 65 3a 20 28 63 68 3a 20 ┆SE BOOLEAN OF true: (ch: ┆ 0x37ec0…37ee0 43 48 41 52 3b 20 20 61 74 74 3a 20 42 59 54 45 29 3b 0d 0a 20 20 20 20 20 20 66 61 6c 73 65 3a ┆CHAR; att: BYTE); false:┆ 0x37ee0…37f00 28 62 6f 74 68 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 53 63 ┆(both: INTEGER); END; Sc┆ 0x37f00…37f20 72 5f 54 59 50 45 09 3d 20 28 4f 4c 49 5f 68 69 67 68 2c 4f 4c 49 5f 6c 6f 77 29 3b 0d 0a 20 20 ┆r_TYPE = (OLI_high,OLI_low); ┆ 0x37f20…37f40 50 72 6e 5f 54 59 50 45 20 20 20 20 20 20 3d 20 28 4e 45 43 5f 31 36 62 69 74 2c 4e 45 43 5f 38 ┆Prn_TYPE = (NEC_16bit,NEC_8┆ 0x37f40…37f60 62 69 74 29 3b 0d 0a 20 20 70 74 72 5f 54 59 50 45 09 3d 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆bit); ptr_TYPE = ^INTEGER; ┆ 0x37f60…37f80 20 74 78 74 5f 6c 69 6e 65 09 3d 20 41 52 52 41 59 28 2e 30 2e 2e 37 39 2e 29 20 4f 46 20 74 78 ┆ txt_line = ARRAY(.0..79.) OF tx┆ 0x37f80…37fa0 74 5f 6c 69 6e 65 63 68 61 72 3b 0d 0a 20 20 74 78 74 5f 63 68 61 72 73 65 74 20 20 20 3d 20 53 ┆t_linechar; txt_charset = S┆ 0x37fa0…37fc0 45 54 20 4f 46 20 43 48 41 52 3b 0d 0a 20 20 61 6e 79 73 74 72 20 20 20 20 20 20 20 20 3d 20 73 ┆ET OF CHAR; anystr = s┆ 0x37fc0…37fe0 74 72 69 6e 67 5b 32 35 35 5d 3b 0d 0a 56 41 52 0d 0a 20 20 53 63 72 5f 6d 61 78 78 09 3a 20 49 ┆tringÆ255Å; VAR Scr_maxx : I┆ 0x37fe0…38000 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 6d 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆NTEGER; Scr_maxy : INTEGER; ┆ 0x38000…38020 (22, 0, 5) 20 20 53 63 72 5f 73 65 67 6d 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 61 73 70 ┆ Scr_segm : INTEGER; Scr_asp┆ 0x38020…38040 65 63 74 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 78 61 64 64 72 09 3a 20 41 52 ┆ect : INTEGER; Scr_xaddr : AR┆ 0x38040…38060 52 41 59 28 2e 30 2e 2e 36 34 30 2e 29 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 ┆RAY(.0..640.) OF INTEGER; Scr┆ 0x38060…38080 5f 79 61 64 64 72 09 3a 20 41 52 52 41 59 28 2e 30 2e 2e 34 30 30 2e 29 20 4f 46 20 49 4e 54 45 ┆_yaddr : ARRAY(.0..400.) OF INTE┆ 0x38080…380a0 47 45 52 3b 0d 0a 20 20 53 63 72 5f 42 45 47 49 4e 09 3a 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 0d ┆GER; Scr_BEGIN : ^INTEGER; ┆ 0x380a0…380c0 0a 20 20 57 6e 64 5f 09 09 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 57 6e 64 5f 70 61 6c 65 ┆ Wnd_ : Wnd_TYPE; Wnd_pale┆ 0x380c0…380e0 74 74 65 20 20 20 3a 20 41 52 52 41 59 28 2e 30 2e 2e 31 35 2e 29 20 4f 46 20 62 79 74 65 3b 0d ┆tte : ARRAY(.0..15.) OF byte; ┆ 0x380e0…38100 0a 20 20 57 6c 64 5f 09 09 3a 20 57 6c 64 5f 54 59 50 45 3b 0d 0a 0d 0a 20 20 57 6e 64 5f 61 72 ┆ Wld_ : Wld_TYPE; Wnd_ar┆ 0x38100…38120 72 09 3a 20 41 52 52 41 59 28 2e 31 2e 2e 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 57 6e 64 5f 54 ┆r : ARRAY(.1..Wnd_max.) OF Wnd_T┆ 0x38120…38140 59 50 45 3b 0d 0a 20 20 57 6c 64 5f 61 72 72 09 3a 20 41 52 52 41 59 28 2e 31 2e 2e 57 6e 64 5f ┆YPE; Wld_arr : ARRAY(.1..Wnd_┆ 0x38140…38160 6d 61 78 2e 29 20 4f 46 20 77 6c 64 5f 54 59 50 45 3b 0d 0a 20 20 53 61 76 65 5f 61 72 72 09 3a ┆max.) OF wld_TYPE; Save_arr :┆ 0x38160…38180 20 41 52 52 41 59 28 2e 31 2e 2e 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 73 61 76 65 5f 54 59 50 ┆ ARRAY(.1..Wnd_max.) OF save_TYP┆ 0x38180…381a0 45 3b 0d 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 57 ┆E; Wnd_actual : INTEGER; W┆ 0x381a0…381c0 6e 64 5f 43 6f 6c 6f 72 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 72 65 67 09 09 3a 20 72 65 ┆nd_Color : INTEGER; reg : re┆ 0x381c0…381e0 67 74 79 70 3b 0d 0a 20 20 53 63 72 5f 73 74 61 72 74 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆gtyp; Scr_start : INTEGER; ┆ 0x381e0…38200 20 67 72 61 70 68 5f 54 59 50 45 09 3a 20 53 63 72 5f 54 59 50 45 3b 0d 0a 20 20 53 63 72 5f 43 ┆ graph_TYPE : Scr_TYPE; Scr_C┆ 0x38200…38220 48 41 52 09 3a 20 63 68 61 72 66 69 6c 74 79 70 65 3b 0d 0a 20 20 74 78 74 5f 6c 69 6e 65 70 74 ┆HAR : charfiltype; txt_linept┆ 0x38220…38240 72 09 3a 20 41 52 52 41 59 28 2e 30 2e 2e 32 34 2e 29 20 4f 46 20 5e 74 78 74 5f 6c 69 6e 65 3b ┆r : ARRAY(.0..24.) OF ^txt_line;┆ 0x38240…38260 0d 0a 20 20 54 78 74 5f 6d 61 78 78 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 54 78 74 5f 6d ┆ Txt_maxx : INTEGER; Txt_m┆ 0x38260…38280 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 0d 0a 0d 0a 0d 0a 63 6f 6e 73 74 0d 0a 20 20 73 ┆axy : INTEGER; const s┆ 0x38280…382a0 63 72 5f 73 77 61 70 5f 3a 20 6f 70 72 74 79 70 65 3d 6c 6f 61 64 3b 0d 0a 0d 0a 7b 20 43 53 54 ┆cr_swap_: oprtype=load; æ CST┆ 0x382a0…382c0 52 20 72 65 74 75 72 6e 73 20 61 20 73 74 72 69 6e 67 20 77 69 74 68 20 4e 20 63 68 61 72 61 63 ┆R returns a string with N charac┆ 0x382c0…382e0 74 65 72 73 20 6f 66 20 76 61 6c 75 65 20 43 20 7d 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 73 ┆ters of value C å FUNCTION cs┆ 0x382e0…38300 74 72 28 63 3a 20 63 68 61 72 3b 20 6e 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 6e 79 73 74 72 3b ┆tr(c: char; n: integer): anystr;┆ 0x38300…38320 0d 0a 56 41 52 0d 0a 20 20 73 3a 20 53 54 52 49 4e 47 5b 32 35 35 5d 3b 0d 0a 42 45 47 49 4e 0d ┆ VAR s: STRINGÆ255Å; BEGIN ┆ 0x38320…38340 0a 20 20 49 46 20 6e 3c 30 20 54 48 45 4e 20 6e 3a 3d 30 3b 20 73 5b 30 5d 3a 3d 63 68 72 28 6e ┆ IF n<0 THEN n:=0; sÆ0Å:=chr(n┆ 0x38340…38360 29 3b 20 66 69 6c 6c 28 73 5b 31 5d 2c 6e 2c 63 29 3b 0d 0a 20 20 63 73 74 72 3a 3d 73 3b 0d 0a ┆); fill(sÆ1Å,n,c); cstr:=s; ┆ 0x38360…38380 45 4e 44 3b 0d 0a 0d 0a 7b 20 42 45 45 50 20 73 6f 75 6e 64 73 20 74 68 65 20 74 65 72 6d 69 6e ┆END; æ BEEP sounds the termin┆ 0x38380…383a0 61 6c 27 73 20 62 65 6c 6c 20 6f 72 20 62 65 65 70 65 72 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆al's bell or beeper å PROCEDU┆ 0x383a0…383c0 52 45 20 62 65 65 70 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 77 72 69 74 65 28 5e 47 29 3b 0d 0a 45 ┆RE beep; BEGIN write(^G); E┆ 0x383c0…383e0 4e 44 3b 0d 0a 0d 0a 0d 0a 7b 20 43 41 50 20 63 6f 6e 76 65 72 74 73 20 61 20 63 68 61 72 61 63 ┆ND; æ CAP converts a charac┆ 0x383e0…38400 74 65 72 20 74 6f 20 75 70 70 65 72 20 63 61 73 65 20 7d 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 ┆ter to upper case å FUNCTION ┆ 0x38400…38420 (22, 1, 1) 63 61 70 28 63 68 3a 20 63 68 61 72 29 3a 20 63 68 61 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 ┆cap(ch: char): char; BEGIN I┆ 0x38420…38440 46 20 28 63 68 3e 3d 27 61 27 29 20 41 4e 44 20 28 63 68 3c 3d 27 7a 27 29 20 54 48 45 4e 0d 0a ┆F (ch>='a') AND (ch<='z') THEN ┆ 0x38440…38460 20 20 63 61 70 3a 3d 63 68 72 28 6f 72 64 28 63 68 29 2d 33 32 29 20 45 4c 53 45 20 63 61 70 3a ┆ cap:=chr(ord(ch)-32) ELSE cap:┆ 0x38460…38480 3d 63 68 3b 0d 0a 45 4e 44 3b 0d 0a 7b 20 43 4c 52 46 52 41 4d 45 20 63 6c 65 61 72 73 20 74 68 ┆=ch; END; æ CLRFRAME clears th┆ 0x38480…384a0 65 20 64 69 73 70 6c 61 79 20 66 72 61 6d 65 2c 20 69 2e 65 2e 20 6c 69 6e 65 73 20 33 20 74 6f ┆e display frame, i.e. lines 3 to┆ 0x384a0…384c0 20 32 30 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 63 6c 72 66 72 61 6d 65 3b 0d 0a 56 41 ┆ 20 å PROCEDURE clrframe; VA┆ 0x384c0…384e0 52 0d 0a 20 20 69 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 ┆R i: integer; BEGIN FOR i┆ 0x384e0…38500 3a 3d 34 20 54 4f 20 32 30 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 67 6f 74 6f 78 ┆:=4 TO 20 DO BEGIN gotox┆ 0x38500…38520 79 28 30 2c 69 29 3b 20 77 72 69 74 65 28 63 6c 72 65 6f 6c 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a ┆y(0,i); write(clreol); END; ┆ 0x38520…38540 45 4e 44 3b 0d 0a 0d 0a 50 72 6f 63 65 64 75 72 65 20 63 6c 72 66 65 6a 6c 3b 0d 0a 42 65 67 69 ┆END; Procedure clrfejl; Begi┆ 0x38540…38560 6e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 32 34 29 3b 20 57 72 69 74 65 28 63 6c 72 65 6f 6c 29 ┆n gotoxy(0,24); Write(clreol)┆ 0x38560…38580 3b 0d 0a 45 6e 64 3b 0d 0a 20 20 0d 0a 50 72 6f 63 65 64 75 72 65 20 72 61 6d 6d 65 3b 0d 0a 42 ┆; End; Procedure ramme; B┆ 0x38580…385a0 65 67 69 6e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 30 29 3b 20 77 72 69 74 65 6c 6e 28 63 73 74 ┆egin gotoxy(0,0); writeln(cst┆ 0x385a0…385c0 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 57 72 69 74 65 6c 6e 3b 0d 0a 20 20 77 72 69 74 65 ┆r('-',79)); Writeln; write┆ 0x385c0…385e0 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 32 31 ┆ln(cstr('-',79)); gotoxy(0,21┆ 0x385e0…38600 29 3b 20 77 72 69 74 65 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 77 72 69 ┆); writeln(cstr('-',79)); wri┆ 0x38600…38620 74 65 6c 6e 3b 20 0d 0a 20 20 77 72 69 74 65 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a ┆teln; write(cstr('-',79)); ┆ 0x38620…38640 45 6e 64 3b 0d 0a 0d 0a 0d 0a 0d 0a 7b 20 53 45 4c 45 43 54 20 64 69 73 70 6c 61 79 20 74 68 65 ┆End; æ SELECT display the┆ 0x38640…38660 20 70 72 6f 6d 70 74 20 73 74 72 69 6e 67 20 50 52 20 6f 6e 20 6c 69 6e 65 20 32 32 2c 20 61 6e ┆ prompt string PR on line 22, an┆ 0x38660…38680 64 20 77 61 69 74 73 20 20 20 20 20 7d 0d 0a 7b 20 75 6e 74 69 6c 20 74 68 65 20 75 73 65 72 20 ┆d waits å æ until the user ┆ 0x38680…386a0 65 6e 74 65 72 73 20 61 20 63 68 61 72 61 63 74 65 72 20 77 68 69 63 68 20 69 73 20 63 6f 6e 74 ┆enters a character which is cont┆ 0x386a0…386c0 61 69 6e 65 64 20 69 6e 20 74 68 65 20 20 20 7d 0d 0a 7b 20 54 45 52 4d 20 63 68 61 72 61 63 74 ┆ained in the å æ TERM charact┆ 0x386c0…386e0 65 72 20 73 65 74 2e 20 54 68 65 20 63 68 61 72 61 63 74 65 72 20 69 73 20 74 68 65 6e 20 72 65 ┆er set. The character is then re┆ 0x386e0…38700 74 75 72 6e 65 64 20 69 6e 20 54 43 2e 20 20 20 20 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆turned in TC. å PROCEDURE┆ 0x38700…38720 20 73 65 6c 65 63 74 28 70 72 3a 20 73 74 72 38 30 3b 20 74 65 72 6d 3a 20 63 68 61 72 73 65 74 ┆ select(pr: str80; term: charset┆ 0x38720…38740 3b 20 56 41 52 20 74 63 3a 20 63 68 61 72 29 3b 0d 0a 56 41 52 0d 0a 20 20 63 68 3a 20 63 68 61 ┆; VAR tc: char); VAR ch: cha┆ 0x38740…38760 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 32 32 29 3b 20 77 72 69 74 65 ┆r; BEGIN gotoxy(0,22); write┆ 0x38760…38780 28 70 72 2c 27 3f 20 27 2c 63 6c 72 65 6f 6c 29 3b 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 ┆(pr,'? ',clreol); REPEAT ┆ 0x38780…387a0 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 20 74 63 3a 3d 63 61 70 28 63 68 29 3b 0d 0a 20 20 20 ┆ read(kbd,ch); tc:=cap(ch); ┆ 0x387a0…387c0 20 49 46 20 4e 4f 54 28 74 63 20 49 4e 20 74 65 72 6d 29 20 54 48 45 4e 20 62 65 65 70 3b 0d 0a ┆ IF NOT(tc IN term) THEN beep; ┆ 0x387c0…387e0 20 20 55 4e 54 49 4c 20 74 63 20 49 4e 20 74 65 72 6d 3b 0d 0a 20 20 77 72 69 74 65 28 63 68 29 ┆ UNTIL tc IN term; write(ch)┆ 0x387e0…38800 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6c 65 63 74 31 28 76 30 3a ┆; END; PROCEDURE select1(v0:┆ 0x38800…38820 (22, 1, 2) 20 73 74 72 31 35 3b 20 76 31 2c 76 32 2c 76 33 2c 76 34 2c 76 35 2c 76 36 2c 76 37 3a 20 73 74 ┆ str15; v1,v2,v3,v4,v5,v6,v7: st┆ 0x38820…38840 72 32 35 3b 20 56 41 52 20 63 68 3a 20 63 68 61 72 29 3b 0d 0a 0d 0a 56 61 72 0d 0a 20 20 20 20 ┆r25; VAR ch: char); Var ┆ 0x38840…38860 74 65 72 6d 3a 20 63 68 61 72 73 65 74 3b 0d 0a 20 20 42 65 67 69 6e 0d 0a 20 20 20 20 74 65 72 ┆term: charset; Begin ter┆ 0x38860…38880 6d 3a 3d 5b 27 41 27 2c 27 42 27 2c 27 43 27 2c 27 44 27 2c 27 45 27 2c 27 46 27 2c 27 47 27 5d ┆m:=Æ'A','B','C','D','E','F','G'Å┆ 0x38880…388a0 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 32 29 3b 57 72 69 74 65 28 63 73 74 72 28 ┆; gotoxy(20,12);Write(cstr(┆ 0x388a0…388c0 27 2d 27 2c 32 39 29 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 33 29 3b 57 72 69 ┆'-',29)); gotoxy(20,13);Wri┆ 0x388c0…388e0 74 65 28 27 7c 27 2c 76 30 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 33 29 3b ┆te('ø',v0,clreol);Gotoxy(48,13);┆ 0x388e0…38900 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 34 29 3b 57 ┆Write('ø'); gotoxy(20,14);W┆ 0x38900…38920 72 69 74 65 28 27 7c 20 41 29 20 27 2c 76 31 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 ┆rite('ø A) ',v1,clreol);Gotoxy(4┆ 0x38920…38940 38 2c 31 34 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 ┆8,14);Write('ø'); gotoxy(20┆ 0x38940…38960 2c 31 35 29 3b 57 72 69 74 65 28 27 7c 20 42 29 20 27 2c 76 32 2c 63 6c 72 65 6f 6c 29 3b 47 6f ┆,15);Write('ø B) ',v2,clreol);Go┆ 0x38960…38980 74 6f 78 79 28 34 38 2c 31 35 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 ┆toxy(48,15);Write('ø'); got┆ 0x38980…389a0 6f 78 79 28 32 30 2c 31 36 29 3b 57 72 69 74 65 28 27 7c 20 43 29 20 27 2c 76 33 2c 63 6c 72 65 ┆oxy(20,16);Write('ø C) ',v3,clre┆ 0x389a0…389c0 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 36 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 ┆ol);Gotoxy(48,16);Write('ø'); ┆ 0x389c0…389e0 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 37 29 3b 57 72 69 74 65 28 27 7c 20 44 29 20 27 2c 76 ┆ gotoxy(20,17);Write('ø D) ',v┆ 0x389e0…38a00 34 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 37 29 3b 57 72 69 74 65 28 27 7c ┆4,clreol);Gotoxy(48,17);Write('ø┆ 0x38a00…38a20 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 38 29 3b 57 72 69 74 65 28 27 7c 20 ┆'); gotoxy(20,18);Write('ø ┆ 0x38a20…38a40 45 29 20 27 2c 76 35 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 38 29 3b 57 72 ┆E) ',v5,clreol);Gotoxy(48,18);Wr┆ 0x38a40…38a60 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 39 29 3b 57 72 69 ┆ite('ø'); gotoxy(20,19);Wri┆ 0x38a60…38a80 74 65 28 27 7c 20 46 29 20 27 2c 76 36 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c ┆te('ø F) ',v6,clreol);Gotoxy(48,┆ 0x38a80…38aa0 31 39 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 32 ┆19);Write('ø'); gotoxy(20,2┆ 0x38aa0…38ac0 30 29 3b 57 72 69 74 65 28 27 7c 20 47 29 20 27 2c 76 37 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f ┆0);Write('ø G) ',v7,clreol);Goto┆ 0x38ac0…38ae0 78 79 28 34 38 2c 32 30 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 ┆xy(48,20);Write('ø'); gotox┆ 0x38ae0…38b00 79 28 30 2c 32 32 29 3b 20 57 72 69 74 65 28 27 49 6e 64 74 61 73 74 20 76 61 6c 67 3a 20 27 2c ┆y(0,22); Write('Indtast valg: ',┆ 0x38b00…38b20 63 6c 72 65 6f 6c 29 3b 20 0d 0a 20 20 20 20 52 65 70 65 61 74 0d 0a 20 20 20 20 20 20 72 65 61 ┆clreol); Repeat rea┆ 0x38b20…38b40 64 28 6b 62 64 2c 63 68 29 3b 20 63 68 3a 3d 63 61 70 28 63 68 29 3b 0d 0a 20 20 20 20 20 20 49 ┆d(kbd,ch); ch:=cap(ch); I┆ 0x38b40…38b60 46 20 4e 4f 54 28 63 68 20 49 4e 20 74 65 72 6d 29 20 54 48 45 4e 20 62 65 65 70 3b 0d 0a 20 20 ┆F NOT(ch IN term) THEN beep; ┆ 0x38b60…38b80 20 20 55 4e 54 49 4c 20 63 68 20 49 4e 20 74 65 72 6d 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 77 ┆ UNTIL ch IN term; w┆ 0x38b80…38ba0 72 69 74 65 28 63 68 29 3b 0d 0a 0d 0a 20 20 45 6e 64 3b 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 7b 20 49 ┆rite(ch); End; æ I┆ 0x38ba0…38bc0 4e 50 53 54 52 20 69 73 20 61 20 67 65 6e 65 72 61 6c 69 7a 65 64 20 73 74 72 69 6e 67 20 69 6e ┆NPSTR is a generalized string in┆ 0x38bc0…38be0 70 75 74 20 72 6f 75 74 69 6e 65 20 77 68 69 63 68 20 73 75 70 70 6f 72 74 73 20 20 20 7d 0d 0a ┆put routine which supports å ┆ 0x38be0…38c00 7b 20 6f 6e 2d 73 63 72 65 65 6e 20 65 64 69 74 69 6e 67 2e 20 53 20 69 73 20 61 6e 79 20 73 74 ┆æ on-screen editing. S is any st┆ 0x38c00…38c20 (22, 1, 3) 72 69 6e 67 20 76 61 72 69 61 62 6c 65 2e 20 4c 20 69 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 ┆ring variable. L is the maximum ┆ 0x38c20…38c40 7d 0d 0a 7b 20 69 6e 70 75 74 20 6c 65 6e 67 74 68 2e 20 58 20 61 6e 64 20 59 20 61 72 65 20 74 ┆å æ input length. X and Y are t┆ 0x38c40…38c60 68 65 20 64 69 73 70 6c 61 79 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 20 54 45 52 4d 20 69 73 20 ┆he display coordinates. TERM is ┆ 0x38c60…38c80 61 20 20 7d 0d 0a 7b 20 73 65 74 20 6f 66 20 76 61 6c 69 64 20 74 65 72 6d 69 6e 61 74 6f 72 20 ┆a å æ set of valid terminator ┆ 0x38c80…38ca0 63 68 61 72 61 63 74 65 72 73 2c 20 61 6e 64 20 54 43 20 72 65 74 75 72 6e 73 20 74 68 65 20 63 ┆characters, and TC returns the c┆ 0x38ca0…38cc0 68 61 72 2d 20 20 7d 0d 0a 7b 20 61 63 74 65 72 20 74 68 61 74 20 74 65 72 6d 69 6e 61 74 65 64 ┆har- å æ acter that terminated┆ 0x38cc0…38ce0 20 74 68 65 20 69 6e 70 75 74 2e 20 4f 6e 20 65 6e 74 72 79 2c 20 53 20 69 73 20 64 69 73 70 6c ┆ the input. On entry, S is displ┆ 0x38ce0…38d00 61 79 65 64 20 61 74 20 20 7d 0d 0a 7b 20 58 2c 59 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 2c ┆ayed at å æ X,Y on the screen,┆ 0x38d00…38d20 20 70 61 64 64 65 64 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 77 69 74 68 20 75 6e 64 65 72 73 ┆ padded to the right with unders┆ 0x38d20…38d40 63 6f 72 65 73 2e 20 54 68 65 20 20 7d 0d 0a 7b 20 73 74 72 69 6e 67 20 6d 61 79 20 74 68 65 6e ┆cores. The å æ string may then┆ 0x38d40…38d60 20 62 65 20 65 64 69 74 65 64 20 75 73 69 6e 67 20 73 74 61 6e 64 61 72 64 20 63 6f 6e 74 72 6f ┆ be edited using standard contro┆ 0x38d60…38d80 6c 20 6b 65 79 73 3a 20 5e 53 20 61 6e 64 20 7d 0d 0a 7b 20 5e 44 20 66 6f 72 20 6c 65 66 74 20 ┆l keys: ^S and å æ ^D for left ┆ 0x38d80…38da0 61 6e 64 20 72 69 67 68 74 2c 20 5e 41 20 61 6e 64 20 5e 46 20 66 6f 72 20 62 65 67 69 6e 6e 69 ┆and right, ^A and ^F for beginni┆ 0x38da0…38dc0 6e 67 20 61 6e 64 20 65 6e 64 20 6f 66 20 20 20 20 20 7d 0d 0a 7b 20 6c 69 6e 65 2c 20 5e 47 20 ┆ng and end of å æ line, ^G ┆ 0x38dc0…38de0 74 6f 20 64 65 6c 65 74 65 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 75 6e 64 65 72 20 74 68 ┆to delete the character under th┆ 0x38de0…38e00 65 20 63 75 72 73 6f 72 2c 20 5e 48 20 6f 72 20 44 45 4c 20 20 7d 0d 0a 7b 20 74 6f 20 62 61 63 ┆e cursor, ^H or DEL å æ to bac┆ 0x38e00…38e20 6b 73 70 61 63 65 2c 20 61 6e 64 20 5e 59 20 74 6f 20 64 65 6c 65 74 65 20 74 6f 20 65 6e 64 20 ┆kspace, and ^Y to delete to end ┆ 0x38e20…38e40 6f 66 20 74 68 65 20 6c 69 6e 65 2e 20 57 68 65 6e 20 61 20 20 20 20 20 7d 0d 0a 7b 20 63 68 61 ┆of the line. When a å æ cha┆ 0x38e40…38e60 72 61 63 74 65 72 20 69 73 20 74 79 70 65 64 2c 20 69 74 20 69 73 20 69 6e 73 65 72 74 65 64 20 ┆racter is typed, it is inserted ┆ 0x38e60…38e80 61 74 20 74 68 65 20 63 75 72 73 6f 72 20 61 74 20 74 68 65 20 72 65 2d 20 20 20 7d 0d 0a 7b 20 ┆at the cursor at the re- å æ ┆ 0x38e80…38ea0 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 69 73 20 6d 6f 76 65 64 20 74 6f 20 ┆mainder of the line is moved to ┆ 0x38ea0…38ec0 74 68 65 20 72 69 67 68 74 2e 20 57 68 65 6e 20 61 20 74 65 72 6d 69 6e 61 74 6f 72 20 20 7d 0d ┆the right. When a terminator å ┆ 0x38ec0…38ee0 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 73 20 74 79 70 65 64 2c 20 74 68 65 20 74 72 61 69 6c ┆ æ character is typed, the trail┆ 0x38ee0…38f00 69 6e 67 20 75 6e 64 65 72 73 63 6f 72 73 20 61 72 65 20 72 65 6d 6f 76 65 64 2c 20 61 6e 64 20 ┆ing underscors are removed, and ┆ 0x38f00…38f20 20 7d 0d 0a 7b 20 49 4e 50 53 54 52 20 72 65 74 75 72 6e 73 20 77 69 74 68 20 74 68 65 20 65 64 ┆ å æ INPSTR returns with the ed┆ 0x38f20…38f40 69 74 65 64 20 73 74 72 69 6e 67 20 69 6e 20 53 20 61 6e 64 20 74 68 65 20 74 65 72 6d 69 6e 61 ┆ited string in S and the termina┆ 0x38f40…38f60 74 6f 72 20 7d 0d 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 54 43 2e 20 20 20 20 20 20 20 ┆tor å æ character in TC. ┆ 0x38f60…38f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x38f80…38fa0 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 70 73 74 72 28 56 41 52 ┆ å PROCEDURE inpstr(VAR┆ 0x38fa0…38fc0 20 73 3a 20 61 6e 79 73 74 72 3b 20 6c 2c 78 2c 79 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 74 ┆ s: anystr; l,x,y: integer; t┆ 0x38fc0…38fe0 65 72 6d 20 3a 20 63 68 61 72 73 65 74 3b 20 56 41 52 20 74 63 3a 20 63 68 61 72 29 3b 0d 0a 43 ┆erm : charset; VAR tc: char); C┆ 0x38fe0…39000 4f 4e 53 54 0d 0a 20 20 66 63 20 3d 20 27 5f 27 3b 0d 0a 4c 61 62 65 6c 20 6c 6c 3b 0d 0a 56 41 ┆ONST fc = '_'; Label ll; VA┆ 0x39000…39020 (22, 1, 4) 52 0d 0a 20 20 74 65 6b 73 74 3a 20 73 74 72 32 35 3b 0d 0a 20 20 69 2c 74 61 6c 2c 61 6e 74 61 ┆R tekst: str25; i,tal,anta┆ 0x39020…39040 6c 2c 78 78 2c 79 79 2c 70 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 70 61 61 2c 63 68 3a 20 63 ┆l,xx,yy,p: integer; paa,ch: c┆ 0x39040…39060 68 61 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 67 6f 74 6f 78 79 28 78 2c 79 29 3b 20 ┆har; BEGIN gotoxy(x,y); ┆ 0x39060…39080 77 72 69 74 65 28 73 2c 63 73 74 72 28 66 63 2c 6c 2d 6c 65 6e 28 73 29 29 29 3b 20 70 3a 3d 30 ┆write(s,cstr(fc,l-len(s))); p:=0┆ 0x39080…390a0 3b 0d 0a 20 20 78 78 3a 3d 78 3b 79 79 3a 3d 79 3b 61 6e 74 61 6c 3a 3d 78 78 3b 0d 0a 20 20 0d ┆; xx:=x;yy:=y;antal:=xx; ┆ 0x390a0…390c0 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 78 78 2c 79 79 29 3b 20 0d 0a ┆ REPEAT gotoxy(xx,yy); ┆ 0x390c0…390e0 20 20 20 20 6c 6c 3a 0d 0a 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 20 20 ┆ ll: read(kbd,ch); ┆ 0x390e0…39100 43 41 53 45 20 63 68 20 4f 46 0d 0a 20 20 20 20 20 20 40 33 32 2e 2e 40 31 32 36 2c 20 40 31 32 ┆CASE ch OF @32..@126, @12┆ 0x39100…39120 38 2e 2e 40 32 35 35 3a 0d 0a 20 20 20 20 20 20 49 46 20 70 3c 6c 20 54 48 45 4e 0d 0a 20 20 20 ┆8..@255: IF p<l THEN ┆ 0x39120…39140 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 49 46 20 6c 65 6e 28 73 29 3d 6c 20 54 48 ┆ BEGIN IF len(s)=l TH┆ 0x39140…39160 45 4e 20 64 65 6c 65 74 65 28 73 2c 6c 2c 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 78 78 3a 3d 78 ┆EN delete(s,l,1); xx:=x┆ 0x39160…39180 78 2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 70 3a 3d 70 2b 31 3b 20 69 6e 73 65 72 74 28 63 68 2c ┆x+1; p:=p+1; insert(ch,┆ 0x39180…391a0 73 2c 70 29 3b 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 63 6f 70 79 28 73 2c 70 2c 6c 29 ┆s,p); write(copy(s,p,l)┆ 0x391a0…391c0 29 3b 0d 0a 20 20 20 20 20 20 20 20 49 66 20 78 78 3d 38 31 20 74 68 65 6e 0d 0a 20 20 20 20 20 ┆); If xx=81 then ┆ 0x391c0…391e0 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 78 78 3a 3d 31 3b 20 0d 0a 20 20 20 20 ┆ begin xx:=1; ┆ 0x391e0…39200 20 20 20 20 20 20 79 79 3a 3d 79 79 2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 ┆ yy:=yy+1; end; ┆ 0x39200…39220 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 20 0d 0a 20 20 20 ┆ END ELSE beep; ┆ 0x39220…39240 20 20 20 5e 5a 3a 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 70 61 61 ┆ ^Z: Begin If paa┆ 0x39240…39260 3d 27 4a 27 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 ┆='J' then Begin F┆ 0x39260…39280 6f 72 20 69 3a 3d 20 35 20 74 6f 20 31 30 20 64 6f 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 ┆or i:= 5 to 10 do Begin ┆ 0x39280…392a0 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 69 29 3b 20 57 72 69 74 65 28 63 6c 72 ┆ gotoxy(40,i); Write(clr┆ 0x392a0…392c0 65 6f 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6e 64 3b 0d 0a 20 20 20 20 20 ┆eol); End; ┆ 0x392c0…392e0 20 20 20 20 20 20 20 20 20 70 61 61 3a 3d 20 27 4e 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ paa:= 'N'; ┆ 0x392e0…39300 20 20 20 67 6f 74 6f 20 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 6e 64 3b 20 20 20 ┆ goto ll; End; ┆ 0x39300…39320 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 35 29 3b 20 57 72 69 ┆ gotoxy(40,5); Wri┆ 0x39320…39340 74 65 28 27 5e 41 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 68 65 6c 74 20 74 69 6c 20 ┆te('^A: Mark r flyttes helt til ┆ 0x39340…39360 76 65 6e 73 74 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 ┆venstre'); gotoxy(4┆ 0x39360…39380 30 2c 36 29 3b 20 57 72 69 74 65 28 27 5e 53 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 ┆0,6); Write('^S: Mark r flyttes ┆ 0x39380…393a0 65 6e 20 20 20 74 69 6c 20 76 65 6e 73 74 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆en til venstre'); ┆ 0x393a0…393c0 20 67 6f 74 6f 78 79 28 34 30 2c 37 29 3b 20 57 72 69 74 65 28 27 5e 44 3a 20 4d 61 72 6b 9b 72 ┆ gotoxy(40,7); Write('^D: Mark r┆ 0x393c0…393e0 20 66 6c 79 74 74 65 73 20 65 6e 20 20 20 74 69 6c 20 68 9b 6a 72 65 27 29 3b 0d 0a 20 20 20 20 ┆ flyttes en til h jre'); ┆ 0x393e0…39400 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 38 29 3b 20 57 72 69 74 65 28 27 5e 46 3a ┆ gotoxy(40,8); Write('^F:┆ 0x39400…39420 (22, 1, 5) 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 68 65 6c 74 20 74 69 6c 20 68 9b 6a 72 65 27 29 ┆ Mark r flyttes helt til h jre')┆ 0x39420…39440 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 39 29 3b 20 57 72 69 ┆; gotoxy(40,9); Wri┆ 0x39440…39460 74 65 28 27 5e 47 3a 20 54 65 67 6e 20 6f 76 65 72 20 6d 61 72 6b 9b 72 20 73 6c 65 74 74 65 73 ┆te('^G: Tegn over mark r slettes┆ 0x39460…39480 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 31 30 29 3b 20 ┆'); gotoxy(40,10); ┆ 0x39480…394a0 57 72 69 74 65 28 27 5e 48 3a 20 54 65 67 6e 20 68 65 6c 74 20 74 69 6c 20 68 9b 6a 72 65 20 73 ┆Write('^H: Tegn helt til h jre s┆ 0x394a0…394c0 6c 65 74 74 65 73 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61 61 3a 3d 27 4a 27 3b ┆lettes'); paa:='J';┆ 0x394c0…394e0 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a ┆ END; ┆ 0x394e0…39500 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 0d 0a ┆ ┆ 0x39500…39520 20 20 20 20 20 20 5e 53 3a 20 49 46 20 70 3e 30 20 54 48 45 4e 20 42 65 67 69 6e 0d 0a 20 20 20 ┆ ^S: IF p>0 THEN Begin ┆ 0x39520…39540 20 20 20 20 20 20 20 70 3a 3d 70 2d 31 3b 20 78 78 3a 3d 78 78 2d 31 3b 0d 0a 20 20 20 20 20 20 ┆ p:=p-1; xx:=xx-1; ┆ 0x39540…39560 20 20 20 20 49 66 20 28 78 78 3d 2d 31 29 20 61 6e 64 20 28 79 79 20 3c 3e 20 79 29 20 74 68 65 ┆ If (xx=-1) and (yy <> y) the┆ 0x39560…39580 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 79 79 3a 3d 79 79 2d 31 3b 0d 0a ┆n Begin yy:=yy-1; ┆ 0x39580…395a0 20 20 20 20 20 20 20 20 20 20 20 20 78 78 3a 3d 37 39 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 ┆ xx:=79; E┆ 0x395a0…395c0 6e 64 3b 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 45 4c 53 45 20 62 65 65 70 3b 0d ┆nd; End ELSE beep; ┆ 0x395c0…395e0 0a 20 20 20 20 20 20 5e 44 3a 20 49 46 20 70 3c 6c 65 6e 28 73 29 20 54 48 45 4e 20 42 65 67 69 ┆ ^D: IF p<len(s) THEN Begi┆ 0x395e0…39600 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 70 3a 3d 70 2b 31 3b 20 78 78 3a 3d 78 78 2b 31 3b 20 0d ┆n p:=p+1; xx:=xx+1; ┆ 0x39600…39620 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 78 78 3d 38 30 20 74 68 65 6e 20 42 65 67 69 6e 20 0d ┆ If xx=80 then Begin ┆ 0x39620…39640 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 78 3a 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ xx:= 0; ┆ 0x39640…39660 20 20 79 79 20 3a 3d 20 79 79 20 2b 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 3b 0d ┆ yy := yy + 1; End; ┆ 0x39660…39680 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 ┆ End ELSE beep; ┆ 0x39680…396a0 20 5e 41 3a 20 42 65 67 69 6e 20 70 3a 3d 30 3b 20 78 78 3a 3d 78 3b 20 79 79 3a 3d 79 3b 20 45 ┆ ^A: Begin p:=0; xx:=x; yy:=y; E┆ 0x396a0…396c0 6e 64 3b 0d 0a 20 20 20 20 20 20 5e 46 3a 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆nd; ^F: Begin ┆ 0x396c0…396e0 20 20 79 79 3a 3d 79 79 20 2b 74 72 75 6e 63 20 28 28 6c 65 6e 28 73 29 2b 78 29 2f 20 38 31 29 ┆ yy:=yy +trunc ((len(s)+x)/ 81)┆ 0x396e0…39700 3b 20 78 78 3a 3d 20 28 6c 65 6e 28 73 29 2b 78 29 20 6d 6f 64 20 38 31 20 3b 0d 0a 20 20 20 20 ┆; xx:= (len(s)+x) mod 81 ; ┆ 0x39700…39720 20 20 20 20 20 20 20 20 70 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e ┆ p:=len(s); En┆ 0x39720…39740 64 3b 0d 0a 20 20 20 20 20 20 5e 47 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 49 46 20 70 3c 6c 65 ┆d; ^G: IF p<le┆ 0x39740…39760 6e 28 73 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆n(s) THEN BEGIN ┆ 0x39760…39780 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 28 73 2c 70 2b 31 2c 31 29 3b 20 77 72 69 74 65 28 63 ┆ delete(s,p+1,1); write(c┆ 0x39780…397a0 6f 70 79 28 73 2c 70 2b 31 2c 6c 29 2c 66 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 ┆opy(s,p+1,l),fc); END┆ 0x397a0…397c0 20 65 6c 73 65 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 20 5e 48 2c 40 31 32 37 3a 20 20 20 20 20 ┆ else beep; ^H,@127: ┆ 0x397c0…397e0 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 49 46 20 70 3e 30 20 54 ┆ IF p>0 T┆ 0x397e0…39800 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆HEN BEGIN ┆ 0x39800…39820 (23, 0, 1) 20 20 64 65 6c 65 74 65 28 73 2c 70 2c 31 29 3b 20 77 72 69 74 65 28 5e 48 2c 63 6f 70 79 28 73 ┆ delete(s,p,1); write(^H,copy(s┆ 0x39820…39840 2c 70 2c 6c 29 2c 66 63 29 3b 20 70 3a 3d 70 2d 31 3b 78 78 3a 3d 78 78 2d 31 3b 0d 0a 20 20 20 ┆,p,l),fc); p:=p-1;xx:=xx-1; ┆ 0x39840…39860 20 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 20 5e 59 3a ┆ END ELSE beep; ^Y:┆ 0x39860…39880 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 ┆ BEGIN w┆ 0x39880…398a0 72 69 74 65 28 63 73 74 72 28 66 63 2c 6c 65 6e 28 73 29 2d 70 29 29 3b 20 64 65 6c 65 74 65 28 ┆rite(cstr(fc,len(s)-p)); delete(┆ 0x398a0…398c0 73 2c 70 2b 31 2c 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 4f ┆s,p+1,l); END; O┆ 0x398c0…398e0 54 48 45 52 57 49 53 45 0d 0a 20 20 20 20 20 20 49 46 20 4e 4f 54 28 63 68 20 49 4e 20 74 65 72 ┆THERWISE IF NOT(ch IN ter┆ 0x398e0…39900 6d 29 20 54 48 45 4e 20 62 65 65 70 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 20 20 55 ┆m) THEN beep; END; U┆ 0x39900…39920 4e 54 49 4c 20 63 68 20 49 4e 20 74 65 72 6d 3b 0d 0a 20 20 69 66 20 70 20 3c 20 6c 65 6e 28 73 ┆NTIL ch IN term; if p < len(s┆ 0x39920…39940 29 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 79 79 3a 3d 79 79 20 2b 74 72 75 6e 63 20 ┆) then Begin yy:=yy +trunc ┆ 0x39940…39960 28 28 6c 65 6e 28 73 29 2b 78 29 2f 20 38 31 29 3b 0d 0a 20 20 20 20 78 78 3a 3d 20 28 6c 65 6e ┆((len(s)+x)/ 81); xx:= (len┆ 0x39960…39980 28 73 29 2b 78 29 20 6d 6f 64 20 38 31 20 3b 0d 0a 20 20 45 6e 64 3b 20 20 0d 0a 20 20 70 3a 3d ┆(s)+x) mod 81 ; End; p:=┆ 0x39980…399a0 6c 65 6e 28 73 29 3b 20 67 6f 74 6f 78 79 28 78 78 2c 79 79 29 3b 20 77 72 69 74 65 28 27 27 3a ┆len(s); gotoxy(xx,yy); write('':┆ 0x399a0…399c0 6c 2d 70 29 3b 0d 0a 20 20 74 63 3a 3d 63 68 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a ┆l-p); tc:=ch; END; ┆ 0x399c0…399e0 0d 0a 28 2a 49 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆ (*I---------------------------┆ 0x399e0…39a00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆--------------------------------┆ 0x39a00…39a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 49 2a 29 0d 0a 28 2a 49 20 20 20 44 65 20 65 66 74 65 72 ┆-------------I*) (*I De efter┆ 0x39a20…39a40 66 9b 6c 67 65 6e 64 65 20 70 72 6f 63 65 64 75 72 65 72 20 65 72 20 6d 61 73 6b 69 6e 73 70 65 ┆f lgende procedurer er maskinspe┆ 0x39a40…39a60 63 69 66 69 6b 6b 65 2e 20 44 65 20 65 72 20 64 65 20 20 20 20 20 20 20 20 20 49 2a 29 0d 0a 28 ┆cifikke. De er de I*) (┆ 0x39a60…39a80 2a 49 20 20 20 65 6e 65 73 74 65 20 73 6f 6d 20 73 6b 61 6c 20 75 64 73 6b 69 66 74 65 73 20 68 ┆*I eneste som skal udskiftes h┆ 0x39a80…39aa0 76 69 73 20 70 72 6f 67 72 61 6d 6d 65 74 20 73 6b 61 6c 20 74 69 6c 70 61 73 73 65 73 20 65 6e ┆vis programmet skal tilpasses en┆ 0x39aa0…39ac0 20 61 6e 64 65 6e 20 20 20 20 49 2a 29 0d 0a 28 2a 49 20 20 20 64 61 74 61 6d 61 74 74 79 70 65 ┆ anden I*) (*I datamattype┆ 0x39ac0…39ae0 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆. ┆ 0x39ae0…39b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 2a 29 0d 0a 28 ┆ I*) (┆ 0x39b00…39b20 2a 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆*I ┆ 0x39b20…39b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x39b40…39b60 20 20 20 20 20 20 20 20 20 20 49 2a 29 0d 0a 28 2a 49 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆ I*) (*I--------------┆ 0x39b60…39b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆--------------------------------┆ 0x39b80…39ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 49 2a 29 0d 0a 0d ┆--------------------------I*) ┆ 0x39ba0…39bc0 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 74 5f 67 72 61 70 68 69 63 73 28 74 79 70 3a 20 53 63 ┆ PROCEDURE init_graphics(typ: Sc┆ 0x39bc0…39be0 72 5f 54 59 50 45 29 3b 0d 0a 56 41 52 0d 0a 20 20 53 63 72 5f 4d 4f 44 2c 20 69 3a 20 49 4e 54 ┆r_TYPE); VAR Scr_MOD, i: INT┆ 0x39be0…39c00 45 47 45 52 3b 0d 0a 20 20 63 68 61 72 66 69 6c 3a 20 46 49 4c 45 20 4f 46 20 63 68 61 72 66 69 ┆EGER; charfil: FILE OF charfi┆ 0x39c00…39c20 (23, 0, 2) 6c 74 79 70 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 43 41 53 45 20 74 79 70 20 20 4f 46 0d 0a 20 ┆ltype; BEGIN CASE typ OF ┆ 0x39c20…39c40 20 20 20 4f 4c 49 5f 6c 6f 77 3a 20 28 2a 20 4f 6c 69 76 65 74 74 69 20 67 72 61 70 68 69 63 73 ┆ OLI_low: (* Olivetti graphics┆ 0x39c40…39c60 20 36 34 30 2a 32 30 30 20 70 6f 69 6e 74 73 20 2a 29 0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 ┆ 640*200 points *) BEGIN ┆ 0x39c60…39c80 20 20 20 20 20 53 63 72 5f 73 65 67 6d 3a 3d 24 42 38 30 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 ┆ Scr_segm:=$B800; Scr┆ 0x39c80…39ca0 5f 4d 4f 44 3a 3d 32 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 73 74 61 72 74 3a 3d 36 3b 0d 0a 20 ┆_MOD:=2; Scr_start:=6; ┆ 0x39ca0…39cc0 20 20 20 20 20 53 63 72 5f 6d 61 78 78 3a 3d 36 33 39 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 6d ┆ Scr_maxx:=639; Scr_m┆ 0x39cc0…39ce0 61 78 79 3a 3d 31 39 39 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 61 73 70 65 63 74 3a 3d 32 32 30 ┆axy:=199; Scr_aspect:=220┆ 0x39ce0…39d00 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 4f 4c 49 5f 68 69 67 68 3a 20 28 2a 20 4f 6c ┆; END; OLI_high: (* Ol┆ 0x39d00…39d20 69 76 65 74 74 69 20 67 72 61 70 68 69 63 73 20 36 34 30 2a 34 30 30 20 70 6f 69 6e 74 73 20 2a ┆ivetti graphics 640*400 points *┆ 0x39d20…39d40 29 0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 5f 73 65 67 6d 3a 3d 24 42 ┆) BEGIN Scr_segm:=$B┆ 0x39d40…39d60 38 30 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 4d 4f 44 3a 3d 34 3b 0d 0a 20 20 20 20 20 20 53 ┆800; Scr_MOD:=4; S┆ 0x39d60…39d80 63 72 5f 73 74 61 72 74 3a 3d 36 34 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 6d 61 78 78 3a 3d 36 ┆cr_start:=64; Scr_maxx:=6┆ 0x39d80…39da0 33 39 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 6d 61 78 79 3a 3d 33 39 39 3b 0d 0a 20 20 20 20 20 ┆39; Scr_maxy:=399; ┆ 0x39da0…39dc0 20 53 63 72 5f 61 73 70 65 63 74 3a 3d 31 31 37 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 ┆ Scr_aspect:=117; END; E┆ 0x39dc0…39de0 4e 44 3b 0d 0a 20 20 74 78 74 5f 6d 61 78 78 3a 3d 37 39 3b 0d 0a 20 20 74 78 74 5f 6d 61 78 79 ┆ND; txt_maxx:=79; txt_maxy┆ 0x39de0…39e00 3a 3d 32 34 3b 0d 0a 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 20 30 20 54 4f 20 53 63 72 5f 6d 61 ┆:=24; FOR i:= 0 TO Scr_ma┆ 0x39e00…39e20 78 78 20 44 4f 20 53 63 72 5f 78 61 64 64 72 28 2e 69 2e 29 3a 3d 69 20 44 49 56 20 38 3b 0d 0a ┆xx DO Scr_xaddr(.i.):=i DIV 8; ┆ 0x39e20…39e40 20 20 46 4f 52 20 69 3a 3d 20 30 20 54 4f 20 53 63 72 5f 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 ┆ FOR i:= 0 TO Scr_maxy DO ┆ 0x39e40…39e60 53 63 72 5f 79 61 64 64 72 28 2e 53 63 72 5f 6d 61 78 79 2d 69 2e 29 3a 3d 28 28 69 20 4d 4f 44 ┆Scr_yaddr(.Scr_maxy-i.):=((i MOD┆ 0x39e60…39e80 20 53 63 72 5f 4d 4f 44 29 2a 24 32 30 30 30 29 20 2b 20 28 28 69 20 44 49 56 20 53 63 72 5f 4d ┆ Scr_MOD)*$2000) + ((i DIV Scr_M┆ 0x39e80…39ea0 4f 44 29 2a 38 30 29 3b 0d 0a 20 20 61 73 73 69 67 6e 28 63 68 61 72 66 69 6c 2c 63 68 61 72 66 ┆OD)*80); assign(charfil,charf┆ 0x39ea0…39ec0 69 6c 6e 61 6d 65 29 3b 0d 0a 20 20 72 65 73 65 74 28 63 68 61 72 66 69 6c 29 3b 0d 0a 20 20 72 ┆ilname); reset(charfil); r┆ 0x39ec0…39ee0 65 61 64 28 63 68 61 72 66 69 6c 2c 53 63 72 5f 43 48 41 52 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 ┆ead(charfil,Scr_CHAR); close(┆ 0x39ee0…39f00 63 68 61 72 66 69 6c 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 ┆charfil); END; PROCEDURE ini┆ 0x39f00…39f20 74 5f 74 65 78 74 3b 0d 0a 56 41 52 20 78 2c 69 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 ┆t_text; VAR x,i : INTEGER; BEG┆ 0x39f20…39f40 49 4e 0d 0a 20 20 78 3a 3d 30 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 32 34 20 44 4f ┆IN x:=0; FOR i:=0 TO 24 DO┆ 0x39f40…39f60 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 3a 3d 70 74 ┆ BEGIN txt_lineptr(.i.):=pt┆ 0x39f60…39f80 72 28 24 42 38 30 30 2c 78 29 3b 0d 0a 20 20 20 20 78 3a 3d 78 2b 31 36 30 3b 0d 0a 20 20 45 4e ┆r($B800,x); x:=x+160; EN┆ 0x39f80…39fa0 44 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 73 74 72 ┆D; END; PROCEDURE writestr┆ 0x39fa0…39fc0 28 63 6f 6c 2c 72 6f 77 3a 20 49 4e 54 45 47 45 52 3b 20 73 74 72 3a 20 73 74 72 38 30 29 3b 0d ┆(col,row: INTEGER; str: str80); ┆ 0x39fc0…39fe0 0a 56 41 52 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 74 74 ┆ VAR attrib: BYTE; BEGIN att┆ 0x39fe0…3a000 72 69 62 3a 3d 57 6e 64 5f 70 61 6c 65 74 74 65 28 2e 57 6e 64 5f 61 63 74 75 61 6c 2e 29 3b 0d ┆rib:=Wnd_palette(.Wnd_actual.); ┆ 0x3a000…3a020 (23, 0, 3) 0a 20 20 43 4f 44 45 0d 0a 20 20 20 24 31 45 2c 24 31 45 2c 24 38 41 2c 24 38 36 2c 72 6f 77 2c ┆ CODE $1E,$1E,$8A,$86,row,┆ 0x3a020…3a040 24 42 33 2c 24 35 30 2c 24 46 36 2c 24 45 33 2c 24 32 42 2c 24 44 42 2c 24 38 41 2c 24 39 45 2c ┆$B3,$50,$F6,$E3,$2B,$DB,$8A,$9E,┆ 0x3a040…3a060 63 6f 6c 2c 0d 0a 20 20 20 24 30 33 2c 24 43 33 2c 24 30 33 2c 24 43 30 2c 24 38 42 2c 24 46 38 ┆col, $03,$C3,$03,$C0,$8B,$F8┆ 0x3a060…3a080 2c 24 62 65 2c 24 30 30 2c 24 30 30 2c 24 38 41 2c 24 42 45 2c 61 74 74 72 69 62 2c 0d 0a 20 20 ┆,$be,$00,$00,$8A,$BE,attrib, ┆ 0x3a080…3a0a0 20 24 38 61 2c 24 38 65 2c 73 74 72 2c 24 32 32 2c 24 63 39 2c 24 37 34 2c 24 33 65 2c 24 32 62 ┆ $8a,$8e,str,$22,$c9,$74,$3e,$2b┆ 0x3a0a0…3a0c0 2c 24 63 30 2c 24 38 45 2c 24 44 38 2c 24 41 30 2c 24 34 39 2c 24 30 34 2c 0d 0a 20 20 20 24 31 ┆,$c0,$8E,$D8,$A0,$49,$04, $1┆ 0x3a0c0…3a0e0 46 2c 24 32 43 2c 24 30 37 2c 24 37 34 2c 24 32 32 2c 24 42 41 2c 24 30 30 2c 24 42 38 2c 24 38 ┆F,$2C,$07,$74,$22,$BA,$00,$B8,$8┆ 0x3a0e0…3a100 45 2c 24 44 41 2c 24 42 41 2c 24 44 41 2c 24 30 33 2c 24 34 36 2c 0d 0a 20 20 20 24 38 61 2c 24 ┆E,$DA,$BA,$DA,$03,$46, $8a,$┆ 0x3a100…3a120 39 41 2c 73 74 72 2c 24 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 35 2c 24 46 42 2c 24 46 41 2c 24 ┆9A,str,$EC,$A8,$01,$75,$FB,$FA,$┆ 0x3a120…3a140 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 34 2c 24 46 42 2c 0d 0a 20 20 20 24 38 39 2c 24 31 44 2c ┆EC,$A8,$01,$74,$FB, $89,$1D,┆ 0x3a140…3a160 24 34 37 2c 24 34 37 2c 24 45 32 2c 24 45 61 2c 24 32 41 2c 24 43 30 2c 24 37 34 2c 24 31 30 2c ┆$47,$47,$E2,$Ea,$2A,$C0,$74,$10,┆ 0x3a160…3a180 24 42 41 2c 24 30 30 2c 24 42 30 2c 0d 0a 20 20 20 24 38 45 2c 24 44 41 2c 24 34 36 2c 24 38 61 ┆$BA,$00,$B0, $8E,$DA,$46,$8a┆ 0x3a180…3a1a0 2c 24 39 41 2c 73 74 72 2c 24 38 39 2c 24 31 44 2c 24 34 37 2c 24 34 37 2c 24 45 32 2c 24 46 35 ┆,$9A,str,$89,$1D,$47,$47,$E2,$F5┆ 0x3a1a0…3a1c0 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 67 72 61 70 68 6d 6f ┆,$1F; END; PROCEDURE graphmo┆ 0x3a1c0…3a1e0 64 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 ┆de; BEGIN IF txt_mode THEN B┆ 0x3a1e0…3a200 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 78 3a 3d 53 63 72 5f 6d 61 78 78 20 44 49 56 ┆EGIN txt_maxx:=Scr_maxx DIV┆ 0x3a200…3a220 20 38 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 79 3a 3d 53 63 72 5f 6d 61 78 79 20 44 49 56 20 ┆ 8; txt_maxy:=Scr_maxy DIV ┆ 0x3a220…3a240 38 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 6f 64 65 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 65 ┆8; txt_mode:=false; re┆ 0x3a240…3a260 67 2e 61 78 3a 3d 53 63 72 5f 73 74 61 72 74 3b 0d 0a 20 20 20 20 73 77 69 6e 74 28 24 31 30 2c ┆g.ax:=Scr_start; swint($10,┆ 0x3a260…3a280 72 65 67 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 20 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆reg); END; END; PROCEDUR┆ 0x3a280…3a2a0 45 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 4e 4f 54 20 74 78 74 ┆E textmode; BEGIN IF NOT txt┆ 0x3a2a0…3a2c0 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 78 3a 3d ┆_mode THEN BEGIN txt_maxx:=┆ 0x3a2c0…3a2e0 37 39 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 79 3a 3d 32 34 3b 0d 0a 20 20 20 20 74 78 74 5f ┆79; txt_maxy:=24; txt_┆ 0x3a2e0…3a300 6d 6f 64 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 72 65 67 2e 61 78 3a 3d 24 30 33 3b 0d 0a 20 ┆mode:=true; reg.ax:=$03; ┆ 0x3a300…3a320 20 20 20 73 77 69 6e 74 28 24 31 30 2c 72 65 67 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b ┆ swint($10,reg); END; END;┆ 0x3a320…3a340 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 73 70 63 28 6c 3a 20 49 4e 54 45 47 45 52 3b 20 63 68 3a ┆ FUNCTION spc(l: INTEGER; ch:┆ 0x3a340…3a360 20 43 48 41 52 29 3a 73 74 72 38 30 3b 0d 0a 56 41 52 20 0d 0a 20 20 73 09 3a 20 73 74 72 38 30 ┆ CHAR):str80; VAR s : str80┆ 0x3a360…3a380 3b 0d 0a 20 20 73 6c 67 74 20 20 3a 20 42 59 54 45 20 41 54 20 73 3b 0d 0a 42 45 47 49 4e 0d 0a ┆; slgt : BYTE AT s; BEGIN ┆ 0x3a380…3a3a0 20 20 73 6c 67 74 3a 3d 6c 3b 0d 0a 20 20 66 69 6c 6c 28 73 28 2e 31 2e 29 2c 6c 2c 63 68 29 3b ┆ slgt:=l; fill(s(.1.),l,ch);┆ 0x3a3a0…3a3c0 0d 0a 20 20 73 70 63 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 72 65 ┆ spc:=s; END; FUNCTION re┆ 0x3a3c0…3a3e0 61 64 73 74 72 74 78 74 28 78 2c 79 2c 6c 3a 20 49 4e 54 45 47 45 52 29 3a 20 73 74 72 38 30 3b ┆adstrtxt(x,y,l: INTEGER): str80;┆ 0x3a3e0…3a400 0d 0a 56 41 52 0d 0a 20 20 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 3a 20 73 74 72 ┆ VAR i: INTEGER; str: str┆ 0x3a400…3a420 (23, 0, 4) 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 3a 3d 27 27 3b 0d 0a 20 20 57 49 54 48 20 57 ┆80; BEGIN str:=''; WITH W┆ 0x3a420…3a440 6e 64 5f 20 44 4f 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 74 78 74 78 31 2b 78 20 54 4f 20 74 78 ┆nd_ DO FOR i:=txtx1+x TO tx┆ 0x3a440…3a460 74 78 31 2b 6c 20 44 4f 0d 0a 20 20 20 20 20 20 73 74 72 3a 3d 73 74 72 2b 74 78 74 5f 6c 69 6e ┆tx1+l DO str:=str+txt_lin┆ 0x3a460…3a480 65 70 74 72 28 2e 79 2e 29 5e 28 2e 69 2e 29 2e 63 68 3b 0d 0a 20 20 72 65 61 64 73 74 72 54 78 ┆eptr(.y.)^(.i.).ch; readstrTx┆ 0x3a480…3a4a0 74 3a 3d 73 74 72 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 77 61 70 28 ┆t:=str; END; PROCEDURE swap(┆ 0x3a4a0…3a4c0 56 41 52 20 61 2c 62 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 63 3a 20 49 4e 54 45 47 ┆VAR a,b: INTEGER); VAR c: INTEG┆ 0x3a4c0…3a4e0 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 63 3a 3d 61 3b 20 61 3a 3d 62 3b 20 62 3a 3d 63 3b 0d ┆ER; BEGIN c:=a; a:=b; b:=c; ┆ 0x3a4e0…3a500 0a 45 4e 44 3b 20 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 77 72 69 74 65 64 6f 74 ┆ END; PROCEDURE Scr_writedot┆ 0x3a500…3a520 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 57 6e 64 5f 43 6f 6c 6f ┆(x,y: INTEGER); BEGIN Wnd_Colo┆ 0x3a520…3a540 72 3a 3d 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 3b 0d 0a 43 4f 44 45 0d 0a 24 38 42 2c 24 37 45 ┆r:=Wnd_.pencolor; CODE $8B,$7E┆ 0x3a540…3a560 2c 24 30 36 2c 24 38 42 2c 24 37 36 2c 24 30 34 2c 24 38 39 2c 24 46 39 2c 24 44 31 2c 24 45 37 ┆,$06,$8B,$76,$04,$89,$F9,$D1,$E7┆ 0x3a560…3a580 2c 24 44 31 2c 24 45 36 2c 24 38 42 2c 24 39 44 2c 3e 53 63 72 5f 78 61 64 64 72 2c 0d 0a 24 30 ┆,$D1,$E6,$8B,$9D,>Scr_xaddr, $0┆ 0x3a580…3a5a0 33 2c 24 39 43 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 38 30 2c 24 45 31 2c 24 30 37 2c 24 42 32 ┆3,$9C,>Scr_yaddr,$80,$E1,$07,$B2┆ 0x3a5a0…3a5c0 2c 24 38 30 2c 24 44 32 2c 24 45 41 2c 24 38 45 2c 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 ┆,$80,$D2,$EA,$8E,$06,>Scr_segm,$┆ 0x3a5c0…3a5e0 41 30 2c 0d 0a 3e 57 6e 64 5f 63 6f 6c 6f 72 2c 24 33 43 2c 24 46 46 2c 24 37 35 2c 24 30 35 2c ┆A0, >Wnd_color,$3C,$FF,$75,$05,┆ 0x3a5e0…3a600 24 32 36 2c 24 30 38 2c 24 31 37 2c 24 45 42 2c 24 30 45 2c 24 33 43 2c 24 30 30 2c 24 37 35 2c ┆$26,$08,$17,$EB,$0E,$3C,$00,$75,┆ 0x3a600…3a620 24 30 37 2c 24 46 36 2c 0d 0a 24 44 32 2c 24 32 36 2c 24 32 30 2c 24 31 37 2c 24 45 42 2c 24 30 ┆$07,$F6, $D2,$26,$20,$17,$EB,$0┆ 0x3a620…3a640 33 2c 24 32 36 2c 24 33 30 2c 24 31 37 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆3,$26,$30,$17; END; PROCEDUR┆ 0x3a640…3a660 45 20 6d 6f 76 65 53 63 72 5f 74 6f 6d 65 6d 28 78 2c 79 2c 78 6c 65 6e 3a 20 49 4e 54 45 47 45 ┆E moveScr_tomem(x,y,xlen: INTEGE┆ 0x3a660…3a680 52 3b 6b 31 2c 6b 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 43 4f 44 45 0d ┆R;k1,k2: INTEGER); BEGIN CODE ┆ 0x3a680…3a6a0 0a 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 44 31 2c 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 ┆ $8B,$7E,$0A,$D1,$E7,$8B,$85,>Sc┆ 0x3a6a0…3a6c0 72 5f 79 61 64 64 72 2c 24 38 42 2c 24 34 45 2c 24 30 38 2c 24 38 42 2c 24 37 45 2c 24 30 43 2c ┆r_yaddr,$8B,$4E,$08,$8B,$7E,$0C,┆ 0x3a6c0…3a6e0 24 44 31 2c 0d 0a 24 45 37 2c 24 38 45 2c 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 31 45 2c ┆$D1, $E7,$8E,$06,>Scr_segm,$1E,┆ 0x3a6e0…3a700 24 43 35 2c 24 37 36 2c 24 30 34 2c 24 38 43 2c 24 44 41 2c 24 38 39 2c 24 43 33 2c 24 31 46 2c ┆$C5,$76,$04,$8C,$DA,$89,$C3,$1F,┆ 0x3a700…3a720 24 30 33 2c 24 39 44 2c 0d 0a 3e 53 63 72 5f 78 61 64 64 72 2c 24 31 45 2c 24 38 45 2c 24 44 41 ┆$03,$9D, >Scr_xaddr,$1E,$8E,$DA┆ 0x3a720…3a740 2c 24 35 31 2c 24 32 36 2c 24 38 61 2c 24 30 66 2c 24 38 38 2c 24 30 63 2c 24 35 39 2c 24 34 36 ┆,$51,$26,$8a,$0f,$88,$0c,$59,$46┆ 0x3a740…3a760 2c 24 38 33 2c 24 43 37 2c 24 31 30 2c 0d 0a 24 45 32 2c 24 45 39 2c 24 31 46 3b 0d 0a 45 4e 44 ┆,$83,$C7,$10, $E2,$E9,$1F; END┆ 0x3a760…3a780 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 6d 65 6d 74 6f 53 63 72 5f 28 78 2c 79 ┆; PROCEDURE movememtoScr_(x,y┆ 0x3a780…3a7a0 2c 78 6c 65 6e 3a 20 49 4e 54 45 47 45 52 3b 6b 31 2c 6b 32 3a 49 4e 54 45 47 45 52 29 3b 0d 0a ┆,xlen: INTEGER;k1,k2:INTEGER); ┆ 0x3a7a0…3a7c0 42 45 47 49 4e 0d 0a 43 4f 44 45 0d 0a 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 44 31 2c 24 45 37 ┆BEGIN CODE $8B,$7E,$0A,$D1,$E7┆ 0x3a7c0…3a7e0 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 38 42 2c 24 34 45 2c 24 30 38 2c ┆,$8B,$85,>Scr_yaddr,$8B,$4E,$08,┆ 0x3a7e0…3a800 24 38 42 2c 24 37 45 2c 24 30 43 2c 24 44 31 2c 0d 0a 24 45 37 2c 24 38 45 2c 24 30 36 2c 3e 53 ┆$8B,$7E,$0C,$D1, $E7,$8E,$06,>S┆ 0x3a800…3a820 (23, 0, 5) 63 72 5f 73 65 67 6d 2c 24 31 45 2c 24 43 35 2c 24 37 36 2c 24 30 34 2c 24 38 43 2c 24 44 41 2c ┆cr_segm,$1E,$C5,$76,$04,$8C,$DA,┆ 0x3a820…3a840 24 38 39 2c 24 43 33 2c 24 31 46 2c 24 30 33 2c 24 39 44 2c 0d 0a 3e 53 63 72 5f 78 61 64 64 72 ┆$89,$C3,$1F,$03,$9D, >Scr_xaddr┆ 0x3a840…3a860 2c 24 31 45 2c 24 38 45 2c 24 44 41 2c 24 35 31 2c 24 38 41 2c 24 30 43 2c 24 32 36 2c 24 38 38 ┆,$1E,$8E,$DA,$51,$8A,$0C,$26,$88┆ 0x3a860…3a880 2c 24 30 46 2c 24 35 39 2c 24 34 36 2c 24 38 33 2c 24 43 37 2c 24 31 30 2c 0d 0a 24 45 32 2c 24 ┆,$0F,$59,$46,$83,$C7,$10, $E2,$┆ 0x3a880…3a8a0 45 39 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 66 69 6c 6c 76 ┆E9,$1F; END; PROCEDURE fillv┆ 0x3a8a0…3a8c0 69 64 65 6f 6c 69 6e 65 28 78 2c 79 2c 78 6c 65 6e 2c 63 6f 6c 6f 72 3a 20 49 4e 54 45 47 45 52 ┆ideoline(x,y,xlen,color: INTEGER┆ 0x3a8c0…3a8e0 29 3b 0d 0a 42 45 47 49 4e 0d 0a 43 4f 44 45 0d 0a 24 38 42 2c 24 37 45 2c 24 30 38 2c 24 44 31 ┆); BEGIN CODE $8B,$7E,$08,$D1┆ 0x3a8e0…3a900 2c 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 38 42 2c 24 34 45 2c ┆,$E7,$8B,$85,>Scr_yaddr,$8B,$4E,┆ 0x3a900…3a920 24 30 36 2c 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 38 45 2c 0d 0a 24 30 36 2c 3e 53 63 72 5f 73 ┆$06,$8B,$7E,$0A,$8E, $06,>Scr_s┆ 0x3a920…3a940 65 67 6d 2c 24 38 42 2c 24 35 36 2c 24 30 34 2c 24 38 39 2c 24 43 33 2c 24 38 39 2c 24 46 45 2c ┆egm,$8B,$56,$04,$89,$C3,$89,$FE,┆ 0x3a940…3a960 24 44 31 2c 24 45 36 2c 24 30 33 2c 24 39 43 2c 3e 53 63 72 5f 78 61 64 64 72 2c 0d 0a 24 32 36 ┆$D1,$E6,$03,$9C,>Scr_xaddr, $26┆ 0x3a960…3a980 2c 24 38 38 2c 24 31 37 2c 24 38 33 2c 24 43 37 2c 24 30 38 2c 24 45 32 2c 24 45 45 3b 0d 0a 45 ┆,$88,$17,$83,$C7,$08,$E2,$EE; E┆ 0x3a980…3a9a0 4e 44 3b 0d 0a 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 62 61 73 65 61 64 64 72 28 78 2c 79 3a 20 ┆ND; FUNCTION baseaddr(x,y: ┆ 0x3a9a0…3a9c0 49 4e 54 45 47 45 52 29 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 43 4f 44 45 0d ┆INTEGER): INTEGER; BEGIN CODE ┆ 0x3a9c0…3a9e0 0a 24 38 42 2c 24 37 45 2c 24 30 36 2c 24 38 42 2c 24 37 36 2c 24 30 34 2c 24 44 31 2c 24 45 37 ┆ $8B,$7E,$06,$8B,$76,$04,$D1,$E7┆ 0x3a9e0…3aa00 2c 24 44 31 2c 24 45 36 2c 24 38 42 2c 24 39 43 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 30 33 2c ┆,$D1,$E6,$8B,$9C,>Scr_yaddr,$03,┆ 0x3aa00…3aa20 24 39 44 2c 0d 0a 3e 53 63 72 5f 78 61 64 64 72 2c 24 38 39 2c 24 35 45 2c 24 30 38 3b 0d 0a 45 ┆$9D, >Scr_xaddr,$89,$5E,$08; E┆ 0x3aa20…3aa40 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 53 63 72 5f 52 65 61 64 44 6f 74 28 78 2c 79 3a ┆ND; FUNCTION Scr_ReadDot(x,y:┆ 0x3aa40…3aa60 49 4e 54 45 47 45 52 29 3a 42 4f 4f 4c 45 41 4e 3b 0d 0a 56 41 52 20 74 6f 74 61 6c 3a 20 49 4e ┆INTEGER):BOOLEAN; VAR total: IN┆ 0x3aa60…3aa80 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 74 6f 74 61 6c 3a 3d 53 63 72 5f 78 61 64 64 72 ┆TEGER; BEGIN total:=Scr_xaddr┆ 0x3aa80…3aaa0 28 2e 78 2e 29 2b 53 63 72 5f 79 61 64 64 72 28 2e 79 2e 29 3b 0d 0a 20 53 63 72 5f 72 65 61 64 ┆(.x.)+Scr_yaddr(.y.); Scr_read┆ 0x3aaa0…3aac0 64 6f 74 3a 3d 0d 0a 20 28 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 3d 62 6c 61 63 6b 29 20 45 58 ┆dot:= (Wnd_.pencolor=black) EX┆ 0x3aac0…3aae0 4f 52 20 28 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 20 41 4e 44 20 28 31 ┆OR (mem(.Scr_segm:total.) AND (1┆ 0x3aae0…3ab00 32 38 20 53 48 52 20 28 78 20 41 4e 44 20 37 29 29 3c 3e 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆28 SHR (x AND 7))<>0); END; ┆ 0x3ab00…3ab20 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 66 69 6c 6c 28 78 31 2c 79 31 2c 78 32 2c 79 32 3a 49 ┆PROCEDURE Scr_fill(x1,y1,x2,y2:I┆ 0x3ab20…3ab40 4e 54 45 47 45 52 3b 20 63 6f 6c 6f 72 3a 20 42 59 54 45 29 3b 0d 0a 56 41 52 0d 0a 20 79 2c 6c ┆NTEGER; color: BYTE); VAR y,l┆ 0x3ab40…3ab60 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6c 3a 3d 28 78 32 2d 78 31 2b 31 ┆: INTEGER; BEGIN l:=(x2-x1+1┆ 0x3ab60…3ab80 29 20 44 49 56 20 38 3b 0d 0a 20 20 46 4f 52 20 79 3a 3d 79 31 20 54 4f 20 79 32 20 44 4f 20 42 ┆) DIV 8; FOR y:=y1 TO y2 DO B┆ 0x3ab80…3aba0 45 47 49 4e 0d 0a 20 20 20 20 66 69 6c 6c 76 69 64 65 6f 6c 69 6e 65 28 78 31 2c 79 2c 6c 2c 63 ┆EGIN fillvideoline(x1,y,l,c┆ 0x3aba0…3abc0 6f 6c 6f 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆olor); END; END; PROCEDUR┆ 0x3abc0…3abe0 45 20 53 63 72 5f 44 72 61 77 63 68 61 72 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 3b 63 68 3a 20 ┆E Scr_Drawchar(x,y: INTEGER;ch: ┆ 0x3abe0…3ac00 43 48 41 52 29 3b 0d 0a 56 41 52 20 20 74 6f 74 61 6c 2c 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆CHAR); VAR total,i: INTEGER; ┆ 0x3ac00…3ac20 (23, 1, 1) 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 37 20 44 4f 20 42 45 47 49 4e 0d ┆BEGIN FOR i:=0 TO 7 DO BEGIN ┆ 0x3ac20…3ac40 0a 20 20 20 20 74 6f 74 61 6c 3a 3d 53 63 72 5f 78 61 64 64 72 28 2e 78 2e 29 2b 53 63 72 5f 79 ┆ total:=Scr_xaddr(.x.)+Scr_y┆ 0x3ac40…3ac60 61 64 64 72 28 2e 79 2d 69 2b 37 2e 29 3b 0d 0a 20 20 20 20 43 41 53 45 20 57 6e 64 5f 2e 70 65 ┆addr(.y-i+7.); CASE Wnd_.pe┆ 0x3ac60…3ac80 6e 63 6f 6c 6f 72 20 4f 46 0d 0a 20 20 20 20 77 68 69 74 65 3a 0d 0a 20 20 20 20 20 20 6d 65 6d ┆ncolor OF white: mem┆ 0x3ac80…3aca0 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d 53 63 72 5f 43 48 41 52 28 2e 6f 72 ┆(.Scr_segm:total.):=Scr_CHAR(.or┆ 0x3aca0…3acc0 64 28 63 68 29 2c 69 2e 29 3b 0d 0a 20 20 20 20 62 6c 61 63 6b 3a 0d 0a 20 20 20 20 20 20 6d 65 ┆d(ch),i.); black: me┆ 0x3acc0…3ace0 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d 20 28 4e 4f 54 20 53 63 72 5f 43 ┆m(.Scr_segm:total.):= (NOT Scr_C┆ 0x3ace0…3ad00 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 20 41 4e 44 20 24 46 46 29 3b 0d 0a 20 20 20 20 ┆HAR(.ord(ch),i.) AND $FF); ┆ 0x3ad00…3ad20 74 72 61 6e 73 70 3a 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 ┆transp: mem(.Scr_segm:tot┆ 0x3ad20…3ad40 61 6c 2e 29 3a 3d 20 53 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 20 45 58 4f ┆al.):= Scr_CHAR(.ord(ch),i.) EXO┆ 0x3ad40…3ad60 52 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3b 0d 0a 20 20 20 20 45 4e ┆R mem(.Scr_segm:total.); EN┆ 0x3ad60…3ad80 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 ┆D; END; END; PROCEDURE Sc┆ 0x3ad80…3ada0 72 5f 64 72 61 77 4c 69 6e 65 28 78 78 31 2c 79 79 31 2c 78 78 32 2c 79 79 32 3a 20 49 4e 54 45 ┆r_drawLine(xx1,yy1,xx2,yy2: INTE┆ 0x3ada0…3adc0 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 6c 67 5f 64 65 6c 74 61 2c 20 73 68 5f 64 65 6c 74 61 ┆GER); VAR lg_delta, sh_delta┆ 0x3adc0…3ade0 2c 20 6c 67 5f 73 74 65 70 2c 20 73 68 5f 73 74 65 70 2c 20 63 79 63 6c 65 2c 20 74 6f 74 61 6c ┆, lg_step, sh_step, cycle, total┆ 0x3ade0…3ae00 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6c 67 5f 64 65 6c 74 61 3a 3d 78 ┆: INTEGER; BEGIN lg_delta:=x┆ 0x3ae00…3ae20 78 32 2d 78 78 31 3b 20 73 68 5f 64 65 6c 74 61 3a 3d 79 79 32 2d 79 79 31 3b 0d 0a 20 20 49 46 ┆x2-xx1; sh_delta:=yy2-yy1; IF┆ 0x3ae20…3ae40 20 6c 67 5f 64 65 6c 74 61 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 67 5f 64 ┆ lg_delta<0 THEN BEGIN lg_d┆ 0x3ae40…3ae60 65 6c 74 61 3a 3d 2d 6c 67 5f 64 65 6c 74 61 3b 20 6c 67 5f 73 74 65 70 3a 3d 2d 31 0d 0a 20 20 ┆elta:=-lg_delta; lg_step:=-1 ┆ 0x3ae60…3ae80 45 4e 44 20 45 4c 53 45 20 6c 67 5f 73 74 65 70 3a 3d 31 3b 0d 0a 20 20 49 46 20 73 68 5f 64 65 ┆END ELSE lg_step:=1; IF sh_de┆ 0x3ae80…3aea0 6c 74 61 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 68 5f 64 65 6c 74 61 3a 3d ┆lta<0 THEN BEGIN sh_delta:=┆ 0x3aea0…3aec0 2d 73 68 5f 64 65 6c 74 61 3b 20 73 68 5f 73 74 65 70 3a 3d 2d 31 0d 0a 20 20 45 4e 44 20 45 4c ┆-sh_delta; sh_step:=-1 END EL┆ 0x3aec0…3aee0 53 45 20 73 68 5f 73 74 65 70 3a 3d 31 3b 0d 0a 20 20 49 46 20 73 68 5f 64 65 6c 74 61 3c 6c 67 ┆SE sh_step:=1; IF sh_delta<lg┆ 0x3aee0…3af00 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 79 63 6c 65 3a 3d 6c 67 ┆_delta THEN BEGIN cycle:=lg┆ 0x3af00…3af20 5f 64 65 6c 74 61 20 53 48 52 20 32 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 78 78 31 3c 3e 78 78 ┆_delta SHR 2; WHILE xx1<>xx┆ 0x3af20…3af40 32 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 5f 77 72 69 74 65 64 6f 74 28 78 ┆2 DO BEGIN Scr_writedot(x┆ 0x3af40…3af60 78 31 2c 79 79 31 29 3b 0d 0a 20 20 20 20 20 20 78 78 31 3a 3d 78 78 31 2b 6c 67 5f 73 74 65 70 ┆x1,yy1); xx1:=xx1+lg_step┆ 0x3af60…3af80 3b 20 63 79 63 6c 65 3a 3d 63 79 63 6c 65 2b 73 68 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 ┆; cycle:=cycle+sh_delta; ┆ 0x3af80…3afa0 49 46 20 63 79 63 6c 65 3e 6c 67 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 ┆IF cycle>lg_delta THEN BEGIN ┆ 0x3afa0…3afc0 20 20 20 20 20 20 79 79 31 3a 3d 79 79 31 2b 73 68 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a 3d 63 ┆ yy1:=yy1+sh_step; cycle:=c┆ 0x3afc0…3afe0 79 63 6c 65 2d 6c 67 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 ┆ycle-lg_delta; END; ┆ 0x3afe0…3b000 45 4e 44 3b 0d 0a 20 20 45 4e 44 0d 0a 20 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 ┆END; END ELSE BEGIN c┆ 0x3b000…3b020 (23, 1, 2) 79 63 6c 65 3a 3d 73 68 5f 64 65 6c 74 61 20 53 48 52 20 32 3b 0d 0a 20 20 20 20 73 77 61 70 28 ┆ycle:=sh_delta SHR 2; swap(┆ 0x3b020…3b040 6c 67 5f 64 65 6c 74 61 2c 73 68 5f 64 65 6c 74 61 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 6c 67 ┆lg_delta,sh_delta); swap(lg┆ 0x3b040…3b060 5f 73 74 65 70 2c 73 68 5f 73 74 65 70 29 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 79 79 31 3c 3e ┆_step,sh_step); WHILE yy1<>┆ 0x3b060…3b080 79 79 32 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 5f 77 72 69 74 65 64 6f 74 ┆yy2 DO BEGIN Scr_writedot┆ 0x3b080…3b0a0 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 20 20 20 20 79 79 31 3a 3d 79 79 31 2b 6c 67 5f 73 74 ┆(xx1,yy1); yy1:=yy1+lg_st┆ 0x3b0a0…3b0c0 65 70 3b 20 63 79 63 6c 65 3a 3d 63 79 63 6c 65 2b 73 68 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 ┆ep; cycle:=cycle+sh_delta; ┆ 0x3b0c0…3b0e0 20 20 49 46 20 63 79 63 6c 65 3e 6c 67 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a ┆ IF cycle>lg_delta THEN BEGIN ┆ 0x3b0e0…3b100 20 20 20 20 20 20 20 20 78 78 31 3a 3d 78 78 31 2b 73 68 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a ┆ xx1:=xx1+sh_step; cycle:┆ 0x3b100…3b120 3d 63 79 63 6c 65 2d 6c 67 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆=cycle-lg_delta; END; ┆ 0x3b120…3b140 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e ┆ END; END; END; FUNCTION┆ 0x3b140…3b160 20 69 73 71 72 74 28 61 72 67 3a 20 49 4e 54 45 47 45 52 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 56 ┆ isqrt(arg: INTEGER):INTEGER; V┆ 0x3b160…3b180 41 52 0d 0a 20 20 6f 64 64 5f 69 6e 74 2c 20 6f 6c 64 5f 61 72 67 2c 20 66 69 72 73 74 5f 73 71 ┆AR odd_int, old_arg, first_sq┆ 0x3b180…3b1a0 72 74 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6f 64 64 5f 69 6e 74 3a 3d ┆rt: INTEGER; BEGIN odd_int:=┆ 0x3b1a0…3b1c0 31 3b 20 6f 6c 64 5f 61 72 67 3a 3d 61 72 67 3b 0d 0a 20 20 57 48 49 4c 45 20 61 72 67 3e 3d 30 ┆1; old_arg:=arg; WHILE arg>=0┆ 0x3b1c0…3b1e0 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 61 72 67 3a 3d 61 72 67 2d 6f 64 64 5f 69 6e 74 3b ┆ DO BEGIN arg:=arg-odd_int;┆ 0x3b1e0…3b200 0d 0a 20 20 20 20 6f 64 64 5f 69 6e 74 3a 3d 6f 64 64 5f 69 6e 74 2b 32 3b 0d 0a 20 20 45 4e 44 ┆ odd_int:=odd_int+2; END┆ 0x3b200…3b220 3b 0d 0a 20 20 66 69 72 73 74 5f 73 71 72 74 3a 3d 6f 64 64 5f 69 6e 74 20 53 48 52 20 31 3b 0d ┆; first_sqrt:=odd_int SHR 1; ┆ 0x3b220…3b240 0a 20 20 49 46 20 73 71 72 28 66 69 72 73 74 5f 73 71 72 74 29 2d 66 69 72 73 74 5f 73 71 72 74 ┆ IF sqr(first_sqrt)-first_sqrt┆ 0x3b240…3b260 2b 31 3e 6f 6c 64 5f 61 72 67 20 54 48 45 4e 0d 0a 20 20 20 20 69 73 71 72 74 3a 3d 66 69 72 73 ┆+1>old_arg THEN isqrt:=firs┆ 0x3b260…3b280 74 5f 73 71 72 74 2d 31 20 45 4c 53 45 20 69 73 71 72 74 3a 3d 66 69 72 73 74 5f 73 71 72 74 3b ┆t_sqrt-1 ELSE isqrt:=first_sqrt;┆ 0x3b280…3b2a0 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 6f 70 65 72 61 74 ┆ END; PROCEDURE Scr_operat┆ 0x3b2a0…3b2c0 69 6f 6e 28 6f 70 72 3a 20 6f 70 72 74 79 70 65 3b 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 3a ┆ion(opr: oprtype;x1, y1, x2, y2:┆ 0x3b2c0…3b2e0 20 49 4e 54 45 47 45 52 3b 62 75 66 66 65 72 3a 20 62 75 66 74 79 70 65 29 3b 0d 0a 56 41 52 0d ┆ INTEGER;buffer: buftype); VAR ┆ 0x3b2e0…3b300 0a 20 20 69 2c 78 2c 79 2c 79 79 2c 6b 31 2c 6b 32 2c 6c 2c 74 6f 74 61 6c 3a 20 49 4e 54 45 47 ┆ i,x,y,yy,k1,k2,l,total: INTEG┆ 0x3b300…3b320 45 52 3b 0d 0a 20 20 73 77 70 62 75 66 3a 20 61 72 72 61 79 28 2e 30 2e 2e 31 30 30 2e 29 20 6f ┆ER; swpbuf: array(.0..100.) o┆ 0x3b320…3b340 66 20 62 79 74 65 3b 0d 0a 20 20 62 75 66 70 3a 5e 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e ┆f byte; bufp:^integer; BEGIN┆ 0x3b340…3b360 0d 0a 20 20 6b 31 3a 3d 6f 66 73 28 62 75 66 66 65 72 5e 29 3b 6b 32 3a 3d 73 65 67 28 62 75 66 ┆ k1:=ofs(buffer^);k2:=seg(buf┆ 0x3b360…3b380 66 65 72 5e 29 3b 20 6c 3a 3d 28 78 32 2d 78 31 2b 37 29 20 44 49 56 20 38 3b 62 75 66 70 3a 3d ┆fer^); l:=(x2-x1+7) DIV 8;bufp:=┆ 0x3b380…3b3a0 61 64 64 72 28 73 77 70 62 75 66 29 3b 0d 0a 20 20 46 4f 52 20 79 3a 3d 79 31 20 54 4f 20 79 32 ┆addr(swpbuf); FOR y:=y1 TO y2┆ 0x3b3a0…3b3c0 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 61 73 65 20 6f 70 72 20 6f 66 0d 0a 20 20 20 20 ┆ DO BEGIN case opr of ┆ 0x3b3c0…3b3e0 20 20 6c 6f 61 64 3a 20 6d 6f 76 65 6d 65 6d 74 6f 53 63 72 5f 28 78 31 2c 79 2c 6c 2c 6b 32 2c ┆ load: movememtoScr_(x1,y,l,k2,┆ 0x3b3e0…3b400 6b 31 29 3b 0d 0a 20 20 20 20 20 20 73 61 76 65 3a 20 6d 6f 76 65 53 63 72 5f 74 6f 6d 65 6d 28 ┆k1); save: moveScr_tomem(┆ 0x3b400…3b420 (23, 1, 3) 78 31 2c 79 2c 6c 2c 6b 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 73 63 72 73 77 61 70 3a 0d 0a ┆x1,y,l,k2,k1); scrswap: ┆ 0x3b420…3b440 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 73 63 72 5f 74 6f 6d ┆ begin movescr_tom┆ 0x3b440…3b460 65 6d 28 78 31 2c 79 2c 6c 2c 73 65 67 28 73 77 70 62 75 66 29 2c 6f 66 73 28 73 77 70 62 75 66 ┆em(x1,y,l,seg(swpbuf),ofs(swpbuf┆ 0x3b460…3b480 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 6d 65 6d 74 6f 73 63 72 5f 28 78 31 2c 79 2c ┆)); movememtoscr_(x1,y,┆ 0x3b480…3b4a0 6c 2c 6b 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 75 66 66 65 72 3a 3d 70 74 72 28 6b ┆l,k2,k1); buffer:=ptr(k┆ 0x3b4a0…3b4c0 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 28 73 77 70 62 75 66 2c 62 75 66 66 ┆2,k1); move(swpbuf,buff┆ 0x3b4c0…3b4e0 65 72 5e 2c 6c 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 6f 74 68 65 72 ┆er^,l); end; other┆ 0x3b4e0…3b500 77 69 73 65 20 68 61 6c 74 3b 0d 0a 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 6b 31 3a 3d 6b ┆wise halt; end; k1:=k┆ 0x3b500…3b520 31 2b 6c 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆1+l; END; END; PROCEDURE ┆ 0x3b520…3b540 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 78 2c 20 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 20 20 ┆Wnd_WriteDot(x, y: INTEGER); ┆ 0x3b540…3b560 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 28 28 78 20 3e 3d 20 30 29 20 41 4e 44 20 28 78 20 3c ┆BEGIN IF ((x >= 0) AND (x <┆ 0x3b560…3b580 3d 20 57 6e 64 5f 2e 4d 61 78 58 29 29 20 41 4e 44 20 28 28 79 20 3e 3d 20 30 29 20 41 4e 44 20 ┆= Wnd_.MaxX)) AND ((y >= 0) AND ┆ 0x3b580…3b5a0 28 79 20 3c 3d 20 57 6e 64 5f 2e 4d 61 78 59 29 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 53 63 ┆(y <= Wnd_.MaxY)) THEN Sc┆ 0x3b5a0…3b5c0 72 5f 57 72 69 74 65 44 6f 74 28 78 20 2b 20 57 6e 64 5f 2e 58 31 2c 20 79 20 2b 20 57 6e 64 5f ┆r_WriteDot(x + Wnd_.X1, y + Wnd_┆ 0x3b5c0…3b5e0 2e 59 31 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 57 6e 64 5f 52 65 61 ┆.Y1) END; FUNCTION Wnd_Rea┆ 0x3b5e0…3b600 64 44 6f 74 28 78 2c 20 79 20 3a 20 49 4e 54 45 47 45 52 29 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d ┆dDot(x, y : INTEGER) : BOOLEAN; ┆ 0x3b600…3b620 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 28 78 20 3c 20 30 29 20 4f 52 20 28 78 20 3e ┆ BEGIN IF (x < 0) OR (x >┆ 0x3b620…3b640 20 57 6e 64 5f 2e 4d 61 78 58 29 20 4f 52 20 28 79 20 3c 20 30 29 20 4f 52 20 28 79 20 3e 20 57 ┆ Wnd_.MaxX) OR (y < 0) OR (y > W┆ 0x3b640…3b660 6e 64 5f 2e 4d 61 78 59 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 57 6e 64 5f 52 65 61 64 44 6f ┆nd_.MaxY) THEN Wnd_ReadDo┆ 0x3b660…3b680 74 20 3a 3d 20 66 61 6c 73 65 0d 0a 20 20 20 20 45 4c 53 45 20 57 6e 64 5f 52 65 61 64 44 6f 74 ┆t := false ELSE Wnd_ReadDot┆ 0x3b680…3b6a0 20 3a 3d 20 53 63 72 5f 52 65 61 64 44 6f 74 28 78 20 2b 20 57 6e 64 5f 2e 58 31 2c 79 20 2b 20 ┆ := Scr_ReadDot(x + Wnd_.X1,y + ┆ 0x3b6a0…3b6c0 57 6e 64 5f 2e 59 31 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 6f 6e ┆Wnd_.Y1) END; FUNCTION con┆ 0x3b6c0…3b6e0 76 65 72 74 28 78 78 3a 52 45 41 4c 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 ┆vert(xx:REAL):INTEGER; BEGIN ┆ 0x3b6e0…3b700 20 49 46 20 78 78 3e 6d 61 78 69 6e 74 20 54 48 45 4e 20 63 6f 6e 76 65 72 74 3a 3d 6d 61 78 69 ┆ IF xx>maxint THEN convert:=maxi┆ 0x3b700…3b720 6e 74 20 45 4c 53 45 20 49 46 20 78 78 3c 2d 6d 61 78 69 6e 74 20 54 48 45 4e 0d 0a 20 20 63 6f ┆nt ELSE IF xx<-maxint THEN co┆ 0x3b720…3b740 6e 76 65 72 74 3a 3d 2d 6d 61 78 69 6e 74 20 45 4c 53 45 20 63 6f 6e 76 65 72 74 3a 3d 74 72 75 ┆nvert:=-maxint ELSE convert:=tru┆ 0x3b740…3b760 6e 63 28 78 78 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 47 72 4f 75 74 ┆nc(xx); END; FUNCTION _GrOut┆ 0x3b760…3b780 63 6f 64 65 28 78 31 2c 20 79 31 2c 20 4d 61 78 58 2c 20 4d 61 78 59 3a 20 49 4e 54 45 47 45 52 ┆code(x1, y1, MaxX, MaxY: INTEGER┆ 0x3b780…3b7a0 29 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 56 41 52 20 61 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e ┆): INTEGER; VAR a: BYTE; BEGIN┆ 0x3b7a0…3b7c0 0d 0a 20 20 61 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 31 3e 6d 61 78 78 20 54 48 45 4e 20 61 3a 3d ┆ a:=0; IF x1>maxx THEN a:=┆ 0x3b7c0…3b7e0 61 20 4f 52 20 24 30 34 3b 0d 0a 20 20 49 46 20 78 31 3c 30 20 54 48 45 4e 20 61 3a 3d 61 20 4f ┆a OR $04; IF x1<0 THEN a:=a O┆ 0x3b7e0…3b800 52 20 24 30 38 3b 0d 0a 20 20 49 46 20 79 31 3e 6d 61 78 79 20 54 48 45 4e 20 61 3a 3d 61 20 4f ┆R $08; IF y1>maxy THEN a:=a O┆ 0x3b800…3b820 (23, 1, 4) 52 20 24 30 31 3b 0d 0a 20 20 49 46 20 79 31 3c 30 20 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 ┆R $01; IF y1<0 THEN a:=a OR $┆ 0x3b820…3b840 30 32 3b 0d 0a 20 20 5f 47 72 4f 75 74 63 6f 64 65 3a 3d 61 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 ┆02; _GrOutcode:=a; END; F┆ 0x3b840…3b860 55 4e 43 54 49 4f 4e 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 28 56 41 52 20 78 31 2c 20 79 31 ┆UNCTION _Wnd_ClipLine(VAR x1, y1┆ 0x3b860…3b880 2c 20 78 32 2c 20 79 32 20 3a 20 49 4e 54 45 47 45 52 29 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d 0a ┆, x2, y2 : INTEGER) : BOOLEAN; ┆ 0x3b880…3b8a0 56 41 52 20 64 6f 6e 65 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d 0a 20 20 6f 75 74 63 6f 64 65 31 2c ┆VAR done : BOOLEAN; outcode1,┆ 0x3b8a0…3b8c0 20 6f 75 74 63 6f 64 65 32 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 64 ┆ outcode2 : INTEGER; BEGIN d┆ 0x3b8c0…3b8e0 6f 6e 65 20 20 3a 3d 20 46 41 4c 53 45 3b 0d 0a 20 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 ┆one := FALSE; _Wnd_ClipLine ┆ 0x3b8e0…3b900 3a 3d 20 46 41 4c 53 45 3b 0d 0a 20 20 6f 75 74 63 6f 64 65 32 20 3a 3d 20 5f 47 72 4f 75 74 63 ┆:= FALSE; outcode2 := _GrOutc┆ 0x3b900…3b920 6f 64 65 28 78 32 2c 20 79 32 2c 20 57 6e 64 5f 2e 4d 61 78 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 ┆ode(x2, y2, Wnd_.MaxX, Wnd_.MaxY┆ 0x3b920…3b940 29 3b 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 6f 75 74 63 6f 64 65 31 20 3a 3d 20 5f 47 ┆); REPEAT outcode1 := _G┆ 0x3b940…3b960 72 4f 75 74 63 6f 64 65 28 78 31 2c 20 79 31 2c 20 20 57 6e 64 5f 2e 4d 61 78 58 2c 20 57 6e 64 ┆rOutcode(x1, y1, Wnd_.MaxX, Wnd┆ 0x3b960…3b980 5f 2e 4d 61 78 59 29 3b 0d 0a 20 20 20 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 4f 52 20 6f 75 ┆_.MaxY); IF (outcode1 OR ou┆ 0x3b980…3b9a0 74 63 6f 64 65 32 29 20 3d 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 5f 57 ┆tcode2) = 0 THEN BEGIN _W┆ 0x3b9a0…3b9c0 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 20 20 20 20 64 6f 6e 65 ┆nd_ClipLine := TRUE; done┆ 0x3b9c0…3b9e0 20 3a 3d 20 54 52 55 45 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f ┆ := TRUE END ELSE IF (outco┆ 0x3b9e0…3ba00 64 65 31 20 41 4e 44 20 20 6f 75 74 63 6f 64 65 32 29 20 3c 3e 20 30 20 54 48 45 4e 0d 0a 20 20 ┆de1 AND outcode2) <> 0 THEN ┆ 0x3ba00…3ba20 20 20 20 20 20 42 45 47 49 4e 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 3a 3d 20 46 41 4c 53 ┆ BEGIN _Wnd_ClipLine := FALS┆ 0x3ba20…3ba40 45 3b 20 64 6f 6e 65 20 3a 3d 20 54 52 55 45 0d 0a 20 20 20 20 45 4e 44 20 45 4c 53 45 20 42 45 ┆E; done := TRUE END ELSE BE┆ 0x3ba40…3ba60 47 49 4e 0d 0a 20 20 20 20 20 20 49 46 20 6f 75 74 63 6f 64 65 31 20 3d 20 30 20 54 48 45 4e 20 ┆GIN IF outcode1 = 0 THEN ┆ 0x3ba60…3ba80 42 45 47 49 4e 20 53 77 61 70 28 6f 75 74 63 6f 64 65 31 2c 6f 75 74 63 6f 64 65 32 29 3b 0d 0a ┆BEGIN Swap(outcode1,outcode2); ┆ 0x3ba80…3baa0 20 20 20 20 20 20 53 77 61 70 28 78 31 2c 20 78 32 29 3b 0d 0a 20 20 20 20 20 20 53 77 61 70 28 ┆ Swap(x1, x2); Swap(┆ 0x3baa0…3bac0 79 31 2c 20 79 32 29 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 6f ┆y1, y2) END; IF (o┆ 0x3bac0…3bae0 75 74 63 6f 64 65 31 20 20 41 4e 44 20 24 30 31 29 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 ┆utcode1 AND $01) <> 0 THEN BEGI┆ 0x3bae0…3bb00 4e 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 78 ┆N x1 := x1 + convert((x┆ 0x3bb00…3bb20 32 20 2d 20 78 31 29 20 2a 20 28 28 57 6e 64 5f 2e 4d 61 78 59 20 2d 20 79 31 29 20 2f 20 28 79 ┆2 - x1) * ((Wnd_.MaxY - y1) / (y┆ 0x3bb20…3bb40 32 20 20 2d 20 79 31 29 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 57 6e 64 5f 2e ┆2 - y1))); y1 := Wnd_.┆ 0x3bb40…3bb60 4d 61 78 59 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 ┆MaxY END ELSE IF (outcode┆ 0x3bb60…3bb80 31 20 41 4e 44 20 24 30 32 29 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆1 AND $02) <> 0 THEN BEGIN ┆ 0x3bb80…3bba0 20 20 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 78 32 20 2d 20 78 31 29 ┆ x1 := x1 + convert((x2 - x1)┆ 0x3bba0…3bbc0 20 2a 20 28 28 30 2e 30 2d 79 31 29 20 2f 20 28 79 32 20 2d 20 79 31 29 29 29 3b 0d 0a 20 20 20 ┆ * ((0.0-y1) / (y2 - y1))); ┆ 0x3bbc0…3bbe0 20 20 20 20 20 79 31 20 3a 3d 20 30 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 49 46 20 ┆ y1 := 0 END ELSE IF ┆ 0x3bbe0…3bc00 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 24 30 34 29 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 ┆(outcode1 AND $04) <> 0 THEN BEG┆ 0x3bc00…3bc20 (23, 1, 5) 49 4e 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 79 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 ┆IN y1 := y1 + convert((┆ 0x3bc20…3bc40 79 32 20 2d 20 79 31 29 20 2a 20 28 28 57 6e 64 5f 2e 4d 61 78 58 20 2d 20 78 31 29 20 2f 20 28 ┆y2 - y1) * ((Wnd_.MaxX - x1) / (┆ 0x3bc40…3bc60 78 32 20 2d 20 78 31 29 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 57 6e 64 5f 2e ┆x2 - x1))); x1 := Wnd_.┆ 0x3bc60…3bc80 4d 61 78 58 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 ┆MaxX END ELSE IF (outcode┆ 0x3bc80…3bca0 31 20 41 4e 44 20 24 30 38 29 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆1 AND $08) <> 0 THEN BEGIN ┆ 0x3bca0…3bcc0 20 20 20 20 79 31 20 3a 3d 20 79 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 79 32 20 2d 20 79 31 29 ┆ y1 := y1 + convert((y2 - y1)┆ 0x3bcc0…3bce0 20 2a 28 28 30 2e 30 2d 78 31 29 20 2f 20 28 78 32 20 2d 20 78 31 29 29 29 3b 0d 0a 20 20 20 20 ┆ *((0.0-x1) / (x2 - x1))); ┆ 0x3bce0…3bd00 20 20 20 20 78 31 20 3a 3d 20 30 0d 0a 20 20 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4e 44 0d ┆ x1 := 0 END END ┆ 0x3bd00…3bd20 0a 20 20 55 4e 54 49 4c 20 64 6f 6e 65 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ UNTIL done END; PROCEDURE┆ 0x3bd20…3bd40 20 57 6e 64 5f 44 72 61 77 4c 69 6e 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 3a 20 49 4e ┆ Wnd_DrawLine(x1, y1, x2, y2: IN┆ 0x3bd40…3bd60 54 45 47 45 52 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 5f 57 6e 64 5f 43 6c ┆TEGER); BEGIN IF _Wnd_Cl┆ 0x3bd60…3bd80 69 70 4c 69 6e 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 29 20 54 48 45 4e 0d 0a 20 20 20 ┆ipLine(x1, y1, x2, y2) THEN ┆ 0x3bd80…3bda0 20 20 20 53 63 72 5f 44 72 61 77 4c 69 6e 65 28 78 31 20 2b 20 57 6e 64 5f 2e 58 31 2c 20 79 31 ┆ Scr_DrawLine(x1 + Wnd_.X1, y1┆ 0x3bda0…3bdc0 20 2b 20 57 6e 64 5f 2e 59 31 2c 20 78 32 20 2b 20 57 6e 64 5f 2e 58 31 2c 0d 0a 20 20 20 20 20 ┆ + Wnd_.Y1, x2 + Wnd_.X1, ┆ 0x3bdc0…3bde0 20 79 32 20 2b 20 57 6e 64 5f 2e 59 31 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆ y2 + Wnd_.Y1); END; PROCE┆ 0x3bde0…3be00 44 55 52 45 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 20 ┆DURE Wnd_DrawBox(x1, y1, x2, y2 ┆ 0x3be00…3be20 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 20 20 56 41 52 20 44 72 61 77 54 6f 70 2c 20 44 72 61 77 ┆: INTEGER); VAR DrawTop, Draw┆ 0x3be20…3be40 42 6f 74 2c 20 44 72 61 77 4c 65 66 74 2c 20 44 72 61 77 52 69 67 68 74 20 3a 20 42 4f 4f 4c 45 ┆Bot, DrawLeft, DrawRight : BOOLE┆ 0x3be40…3be60 41 4e 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 78 31 20 3e 20 78 32 20 54 48 45 ┆AN; BEGIN IF x1 > x2 THE┆ 0x3be60…3be80 4e 20 53 77 61 70 28 78 31 2c 20 78 32 29 3b 0d 0a 20 20 20 20 49 46 20 79 31 20 3e 20 79 32 20 ┆N Swap(x1, x2); IF y1 > y2 ┆ 0x3be80…3bea0 54 48 45 4e 20 53 77 61 70 28 79 31 2c 20 79 32 29 3b 0d 0a 0d 0a 20 20 20 20 49 46 20 78 31 20 ┆THEN Swap(y1, y2); IF x1 ┆ 0x3bea0…3bec0 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 20 79 ┆> Wnd_.MaxX THEN exit; IF y┆ 0x3bec0…3bee0 31 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 ┆1 > Wnd_.MaxY THEN exit; IF┆ 0x3bee0…3bf00 20 78 32 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 20 79 32 20 3c 20 ┆ x2 < 0 THEN exit; IF y2 < ┆ 0x3bf00…3bf20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 0d 0a 20 20 20 20 44 72 61 77 54 6f 70 20 3a 3d 20 54 ┆0 THEN exit; DrawTop := T┆ 0x3bf20…3bf40 52 55 45 3b 0d 0a 20 20 20 20 44 72 61 77 42 6f 74 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 20 20 ┆RUE; DrawBot := TRUE; ┆ 0x3bf40…3bf60 44 72 61 77 4c 65 66 74 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 20 20 44 72 61 77 52 69 67 68 74 ┆DrawLeft := TRUE; DrawRight┆ 0x3bf60…3bf80 20 3a 3d 20 54 52 55 45 3b 0d 0a 0d 0a 20 20 20 20 49 46 20 78 31 20 3c 20 30 20 54 48 45 4e 20 ┆ := TRUE; IF x1 < 0 THEN ┆ 0x3bf80…3bfa0 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 78 31 20 3a 3d 20 30 3b 0d 0a 20 20 20 20 20 20 44 72 61 ┆BEGIN x1 := 0; Dra┆ 0x3bfa0…3bfc0 77 4c 65 66 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 49 46 ┆wLeft := FALSE END; IF┆ 0x3bfc0…3bfe0 20 79 31 20 3c 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 79 31 20 3a 3d 20 ┆ y1 < 0 THEN BEGIN y1 := ┆ 0x3bfe0…3c000 30 3b 0d 0a 20 20 20 20 20 20 44 72 61 77 54 6f 70 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 20 20 ┆0; DrawTop := FALSE ┆ 0x3c000…3c020 (24, 0, 1) 45 4e 44 3b 0d 0a 20 20 20 20 49 46 20 78 32 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e ┆END; IF x2 > Wnd_.MaxX THEN┆ 0x3c020…3c040 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 78 32 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 58 3b 0d 0a ┆ BEGIN x2 := Wnd_.MaxX; ┆ 0x3c040…3c060 20 20 20 20 20 20 44 72 61 77 52 69 67 68 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 20 20 45 4e ┆ DrawRight := FALSE EN┆ 0x3c060…3c080 44 3b 0d 0a 20 20 20 20 49 46 20 79 32 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 42 ┆D; IF y2 > Wnd_.MaxY THEN B┆ 0x3c080…3c0a0 45 47 49 4e 0d 0a 20 20 20 20 20 20 79 32 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 59 3b 0d 0a 20 20 ┆EGIN y2 := Wnd_.MaxY; ┆ 0x3c0a0…3c0c0 20 20 20 20 44 72 61 77 42 6f 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a ┆ DrawBot := FALSE END; ┆ 0x3c0c0…3c0e0 0d 0a 20 20 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 57 6e 64 5f 2e 58 31 3b 0d 0a 20 20 20 20 78 ┆ x1 := x1 + Wnd_.X1; x┆ 0x3c0e0…3c100 32 20 3a 3d 20 78 32 20 2b 20 57 6e 64 5f 2e 58 31 3b 0d 0a 20 20 20 20 79 31 20 3a 3d 20 28 79 ┆2 := x2 + Wnd_.X1; y1 := (y┆ 0x3c100…3c120 31 20 2b 20 57 6e 64 5f 2e 59 31 29 3b 0d 0a 20 20 20 20 79 32 20 3a 3d 20 28 79 32 20 2b 20 57 ┆1 + Wnd_.Y1); y2 := (y2 + W┆ 0x3c120…3c140 6e 64 5f 2e 59 31 29 3b 0d 0a 0d 0a 20 20 20 20 49 46 20 44 72 61 77 54 6f 70 20 54 48 45 4e 20 ┆nd_.Y1); IF DrawTop THEN ┆ 0x3c140…3c160 53 63 72 5f 44 72 61 77 4c 69 6e 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 31 29 3b 0d 0a 20 ┆Scr_DrawLine(x1, y1, x2, y1); ┆ 0x3c160…3c180 20 20 20 49 46 20 44 72 61 77 52 69 67 68 74 20 54 48 45 4e 20 53 63 72 5f 44 72 61 77 4c 69 6e ┆ IF DrawRight THEN Scr_DrawLin┆ 0x3c180…3c1a0 65 28 78 32 2c 20 79 31 2c 20 78 32 2c 20 79 32 29 3b 0d 0a 20 20 20 20 49 46 20 44 72 61 77 42 ┆e(x2, y1, x2, y2); IF DrawB┆ 0x3c1a0…3c1c0 6f 74 20 54 48 45 4e 20 53 63 72 5f 44 72 61 77 4c 69 6e 65 28 78 32 2c 20 79 32 2c 20 78 31 2c ┆ot THEN Scr_DrawLine(x2, y2, x1,┆ 0x3c1c0…3c1e0 20 79 32 29 3b 0d 0a 20 20 20 20 49 46 20 44 72 61 77 4c 65 66 74 20 54 48 45 4e 20 53 63 72 5f ┆ y2); IF DrawLeft THEN Scr_┆ 0x3c1e0…3c200 44 72 61 77 4c 69 6e 65 28 78 31 2c 20 79 32 2c 20 78 31 2c 20 79 31 29 0d 0a 20 20 45 4e 44 3b ┆DrawLine(x1, y2, x1, y1) END;┆ 0x3c200…3c220 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 44 72 61 77 43 68 61 72 28 78 2c 20 79 20 ┆ PROCEDURE Wnd_DrawChar(x, y ┆ 0x3c220…3c240 3a 20 49 4e 54 45 47 45 52 3b 20 63 20 3a 20 43 48 41 52 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a ┆: INTEGER; c : CHAR); BEGIN ┆ 0x3c240…3c260 20 20 20 20 49 46 20 78 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 20 ┆ IF x < 0 THEN exit; IF ┆ 0x3c260…3c280 28 78 2b 37 29 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 ┆(x+7) > Wnd_.MaxX THEN exit; ┆ 0x3c280…3c2a0 20 20 20 49 46 20 79 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 20 49 46 20 ┆ IF y < 0 THEN exit; IF ┆ 0x3c2a0…3c2c0 28 79 2b 37 29 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 ┆(y+7) > Wnd_.MaxY THEN exit; ┆ 0x3c2c0…3c2e0 20 20 53 63 72 5f 44 72 61 77 43 68 61 72 28 28 78 20 2b 20 57 6e 64 5f 2e 58 31 20 2b 20 37 29 ┆ Scr_DrawChar((x + Wnd_.X1 + 7)┆ 0x3c2e0…3c300 20 41 4e 44 20 24 46 46 46 38 2c 20 28 79 20 2b 20 57 6e 64 5f 2e 59 31 29 2c 20 63 29 0d 0a 20 ┆ AND $FFF8, (y + Wnd_.Y1), c) ┆ 0x3c300…3c320 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 44 72 61 77 54 65 78 74 28 ┆ END; PROCEDURE Wnd_DrawText(┆ 0x3c320…3c340 78 2c 20 79 20 3a 20 49 4e 54 45 47 45 52 3b 20 74 20 3a 73 74 72 38 30 20 29 3b 0d 0a 20 20 56 ┆x, y : INTEGER; t :str80 ); V┆ 0x3c340…3c360 41 52 20 69 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 46 4f ┆AR i : INTEGER; BEGIN FO┆ 0x3c360…3c380 52 20 69 20 3a 3d 20 31 20 54 4f 20 6c 65 6e 28 74 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 ┆R i := 1 TO len(t) DO BEGIN ┆ 0x3c380…3c3a0 20 20 20 57 6e 64 5f 44 72 61 77 43 68 61 72 28 78 2c 20 79 2c 20 74 5b 69 5d 29 3b 0d 0a 20 20 ┆ Wnd_DrawChar(x, y, tÆiÅ); ┆ 0x3c3a0…3c3c0 20 20 20 20 78 20 3a 3d 20 78 20 2b 20 38 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 45 4e 44 3b 0d ┆ x := x + 8 END END; ┆ 0x3c3c0…3c3e0 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 63 69 72 63 6c 65 28 63 78 2c 20 63 79 2c 20 ┆ PROCEDURE Wnd_circle(cx, cy, ┆ 0x3c3e0…3c400 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 61 2c 20 61 66 2c ┆radius: INTEGER); VAR a, af,┆ 0x3c400…3c420 (24, 0, 2) 20 62 2c 20 62 66 2c 20 74 61 72 67 65 74 2c 20 72 32 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 ┆ b, bf, target, r2: INTEGER; BE┆ 0x3c420…3c440 47 49 4e 0d 0a 20 20 74 61 72 67 65 74 3a 3d 30 3b 20 61 3a 3d 20 72 61 64 69 75 73 3b 20 62 3a ┆GIN target:=0; a:= radius; b:┆ 0x3c440…3c460 3d 30 3b 20 72 32 3a 3d 73 71 72 28 72 61 64 69 75 73 29 3b 0d 0a 20 20 57 48 49 4c 45 20 61 3e ┆=0; r2:=sqr(radius); WHILE a>┆ 0x3c460…3c480 3d 62 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 62 3a 3d 69 73 71 72 74 28 72 32 20 2d 20 73 ┆=b DO BEGIN b:=isqrt(r2 - s┆ 0x3c480…3c4a0 71 72 28 61 29 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 74 61 72 67 65 74 2c 20 62 29 3b 0d 0a 20 ┆qr(a)); swap(target, b); ┆ 0x3c4a0…3c4c0 20 20 20 57 48 49 4c 45 20 62 3c 74 61 72 67 65 74 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆ WHILE b<target DO BEGIN ┆ 0x3c4c0…3c4e0 20 20 61 66 3a 3d 53 63 72 5f 61 73 70 65 63 74 2a 61 20 44 49 56 20 31 30 30 3b 20 62 66 3a 3d ┆ af:=Scr_aspect*a DIV 100; bf:=┆ 0x3c4e0…3c500 53 63 72 5f 61 73 70 65 63 74 2a 62 20 44 49 56 20 31 30 30 3b 0d 0a 20 20 20 20 20 20 57 6e 64 ┆Scr_aspect*b DIV 100; Wnd┆ 0x3c500…3c520 5f 57 72 69 74 65 44 6f 74 28 63 78 2b 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f 57 72 69 74 65 ┆_WriteDot(cx+af,cy+b); Wnd_Write┆ 0x3c520…3c540 44 6f 74 28 63 78 2b 62 66 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 57 72 69 74 ┆Dot(cx+bf,cy+a); Wnd_Writ┆ 0x3c540…3c560 65 44 6f 74 28 63 78 2d 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 63 ┆eDot(cx-af,cy+b); Wnd_WriteDot(c┆ 0x3c560…3c580 78 2d 62 66 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 ┆x-bf,cy+a); Wnd_WriteDot(┆ 0x3c580…3c5a0 63 78 2d 61 66 2c 63 79 2d 62 29 3b 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 63 78 2d 62 66 2c ┆cx-af,cy-b); Wnd_WriteDot(cx-bf,┆ 0x3c5a0…3c5c0 63 79 2d 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 63 78 2b 61 66 ┆cy-a); Wnd_WriteDot(cx+af┆ 0x3c5c0…3c5e0 2c 63 79 2d 62 29 3b 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 63 78 2b 62 66 2c 63 79 2d 61 29 ┆,cy-b); Wnd_WriteDot(cx+bf,cy-a)┆ 0x3c5e0…3c600 3b 0d 0a 20 20 20 20 20 20 62 3a 3d 62 2b 31 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 ┆; b:=b+1; END; ┆ 0x3c600…3c620 61 3a 3d 61 2d 31 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f ┆a:=a-1; END; END; FUNCTIO┆ 0x3c620…3c640 4e 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 20 3a 20 52 45 41 4c 29 20 3a 20 49 4e 54 ┆N _Wld_ToWindowX(x : REAL) : INT┆ 0x3c640…3c660 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f ┆EGER; BEGIN _Wld_ToWindo┆ 0x3c660…3c680 77 58 20 3a 3d 20 63 6f 6e 76 65 72 74 28 28 28 78 20 2d 20 57 6c 64 5f 2e 58 31 29 20 2a 20 57 ┆wX := convert(((x - Wld_.X1) * W┆ 0x3c680…3c6a0 6e 64 5f 2e 4d 61 78 58 29 20 2f 20 57 6c 64 5f 2e 58 52 61 6e 67 65 29 0d 0a 20 20 45 4e 44 3b ┆nd_.MaxX) / Wld_.XRange) END;┆ 0x3c6a0…3c6c0 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 20 3a 20 ┆ FUNCTION _Wld_ToWindowY(y : ┆ 0x3c6c0…3c6e0 52 45 41 4c 29 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 5f ┆REAL) : INTEGER; BEGIN _┆ 0x3c6e0…3c700 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 20 3a 3d 20 63 6f 6e 76 65 72 74 28 28 28 79 20 2d 20 57 ┆Wld_ToWindowY := convert(((y - W┆ 0x3c700…3c720 6c 64 5f 2e 59 31 29 20 2a 20 57 6e 64 5f 2e 4d 61 78 59 29 20 2f 20 57 6c 64 5f 2e 59 52 61 6e ┆ld_.Y1) * Wnd_.MaxY) / Wld_.YRan┆ 0x3c720…3c740 67 65 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 61 76 65 76 69 65 ┆ge) END; PROCEDURE Savevie┆ 0x3c740…3c760 77 70 6f 72 74 28 6e 6f 3a 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 73 69 7a 3a 20 ┆wport(no:INTEGER); VAR siz: ┆ 0x3c760…3c780 49 4e 54 45 47 45 52 3b 0d 0a 20 20 69 2c 6a 2c 61 64 72 6f 66 73 2c 61 64 72 73 65 67 09 3a 20 ┆INTEGER; i,j,adrofs,adrseg : ┆ 0x3c780…3c7a0 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 ┆INTEGER; BEGIN WITH Wnd_arr(┆ 0x3c7a0…3c7c0 2e 6e 6f 2e 29 2c 73 61 76 65 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 ┆.no.),save_arr(.no.) DO BEGIN ┆ 0x3c7c0…3c7e0 20 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 ┆ IF txt_mode THEN BEGIN ┆ 0x3c7e0…3c800 20 73 69 7a 3a 3d 28 74 78 74 6d 61 78 78 2b 31 29 2a 28 74 78 74 6d 61 78 79 2b 31 29 2a 32 3b ┆ siz:=(txtmaxx+1)*(txtmaxy+1)*2;┆ 0x3c800…3c820 (24, 0, 3) 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f 6e 74 65 6e 74 3d 4e 49 4c 29 20 4f 52 20 28 73 69 7a ┆ IF (content=NIL) OR (siz┆ 0x3c820…3c840 3e 6c 65 6e 67 74 68 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 20 61 6c 6c ┆>length) THEN BEGIN all┆ 0x3c840…3c860 6f 63 61 74 65 28 63 6f 6e 74 65 6e 74 2c 73 69 7a 29 3b 20 6c 65 6e 67 74 68 3a 3d 73 69 7a 20 ┆ocate(content,siz); length:=siz ┆ 0x3c860…3c880 45 4e 44 3b 0d 0a 20 20 20 20 20 20 61 64 72 73 65 67 3a 3d 73 65 67 28 63 6f 6e 74 65 6e 74 5e ┆END; adrseg:=seg(content^┆ 0x3c880…3c8a0 29 3b 20 61 64 72 6f 66 73 3a 3d 6f 66 73 28 63 6f 6e 74 65 6e 74 5e 29 3b 0d 0a 20 20 20 20 20 ┆); adrofs:=ofs(content^); ┆ 0x3c8a0…3c8c0 20 46 4f 52 20 69 3a 3d 74 78 74 79 31 20 54 4f 20 74 78 74 79 31 2b 74 78 74 6d 61 78 79 20 44 ┆ FOR i:=txty1 TO txty1+txtmaxy D┆ 0x3c8c0…3c8e0 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 46 4f 52 20 6a 3a 3d 74 78 74 78 31 20 54 4f ┆O BEGIN FOR j:=txtx1 TO┆ 0x3c8e0…3c900 20 74 78 74 78 31 2b 74 78 74 6d 61 78 78 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 ┆ txtx1+txtmaxx DO BEGIN ┆ 0x3c900…3c920 20 20 20 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3a 3d 74 78 74 5f 6c 69 ┆ memw(.adrseg:adrofs.):=txt_li┆ 0x3c920…3c940 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 6f 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 ┆neptr(.i.)^(.j.).both; ┆ 0x3c940…3c960 20 20 61 64 72 6f 66 73 3a 3d 61 64 72 6f 66 73 2b 32 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 ┆ adrofs:=adrofs+2; END┆ 0x3c960…3c980 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 ┆; END; END ELSE┆ 0x3c980…3c9a0 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 73 69 7a 3a 3d 28 6d 61 78 78 2b 38 29 20 44 49 56 20 ┆ BEGIN siz:=(maxx+8) DIV ┆ 0x3c9a0…3c9c0 38 20 2a 20 28 6d 61 78 79 2b 31 29 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f 6e 74 65 6e 74 ┆8 * (maxy+1); IF (content┆ 0x3c9c0…3c9e0 3d 4e 49 4c 29 20 4f 52 20 28 73 69 7a 3e 6c 65 6e 67 74 68 29 20 54 48 45 4e 0d 0a 20 20 20 20 ┆=NIL) OR (siz>length) THEN ┆ 0x3c9e0…3ca00 20 20 20 20 42 45 47 49 4e 20 61 6c 6c 6f 63 61 74 65 28 63 6f 6e 74 65 6e 74 2c 73 69 7a 29 3b ┆ BEGIN allocate(content,siz);┆ 0x3ca00…3ca20 20 6c 65 6e 67 74 68 3a 3d 73 69 7a 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 6f 6c 64 31 3a 3d 57 ┆ length:=siz END; old1:=W┆ 0x3ca20…3ca40 6c 64 5f 2e 78 6f 6c 64 3b 20 6f 6c 64 32 3a 3d 57 6c 64 5f 2e 79 6f 6c 64 3b 0d 0a 20 20 20 20 ┆ld_.xold; old2:=Wld_.yold; ┆ 0x3ca40…3ca60 20 20 53 63 72 5f 6f 70 65 72 61 74 69 6f 6e 28 73 61 76 65 2c 20 78 31 2c 20 79 31 2c 20 6d 61 ┆ Scr_operation(save, x1, y1, ma┆ 0x3ca60…3ca80 78 78 2b 78 31 2c 20 6d 61 78 79 2b 79 31 2c 63 6f 6e 74 65 6e 74 29 3b 0d 0a 20 20 20 20 45 4e ┆xx+x1, maxy+y1,content); EN┆ 0x3ca80…3caa0 44 3b 0d 0a 20 20 20 20 77 69 6e 64 3a 3d 57 6e 64 5f 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 73 ┆D; wind:=Wnd_; END; s┆ 0x3caa0…3cac0 63 72 5f 73 77 61 70 5f 3a 3d 6c 6f 61 64 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 0d 0a 50 52 4f ┆cr_swap_:=load; END; PRO┆ 0x3cac0…3cae0 43 45 44 55 52 45 20 4c 6f 61 64 76 69 65 77 70 6f 72 74 28 6e 6f 2c 78 2c 79 3a 20 49 4e 54 45 ┆CEDURE Loadviewport(no,x,y: INTE┆ 0x3cae0…3cb00 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 62 6f 2c 69 2c 6a 2c 61 64 72 6f 66 73 2c 61 64 72 73 ┆GER); VAR bo,i,j,adrofs,adrs┆ 0x3cb00…3cb20 65 67 2c 6e 6f 32 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6e 6f 32 3a ┆eg,no2 : INTEGER; BEGIN no2:┆ 0x3cb20…3cb40 3d 61 62 73 28 6e 6f 29 3b 0d 0a 20 20 57 6e 64 5f 3a 3d 57 6e 64 5f 61 72 72 28 2e 6e 6f 32 2e ┆=abs(no); Wnd_:=Wnd_arr(.no2.┆ 0x3cb40…3cb60 29 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 32 2e 29 2c 20 73 61 76 65 5f ┆); WITH Wnd_arr(.no2.), save_┆ 0x3cb60…3cb80 61 72 72 28 2e 6e 6f 32 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 63 6f 6e 74 ┆arr(.no2.) DO BEGIN IF cont┆ 0x3cb80…3cba0 65 6e 74 3d 4e 49 4c 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 ┆ent=NIL THEN exit; x1:=x1+x┆ 0x3cba0…3cbc0 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 79 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 74 78 74 ┆; y1:=y1+y; txtx1:=txt┆ 0x3cbc0…3cbe0 78 31 2b 78 3b 0d 0a 20 20 20 20 74 78 74 79 31 3a 3d 74 78 74 79 31 2b 79 3b 0d 0a 20 20 20 20 ┆x1+x; txty1:=txty1+y; ┆ 0x3cbe0…3cc00 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 61 64 ┆IF txt_mode THEN BEGIN ad┆ 0x3cc00…3cc20 (24, 0, 4) 72 73 65 67 3a 3d 73 65 67 28 63 6f 6e 74 65 6e 74 5e 29 3b 20 61 64 72 6f 66 73 3a 3d 6f 66 73 ┆rseg:=seg(content^); adrofs:=ofs┆ 0x3cc20…3cc40 28 63 6f 6e 74 65 6e 74 5e 29 3b 0d 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 74 78 74 79 31 20 ┆(content^); FOR i:=txty1 ┆ 0x3cc40…3cc60 54 4f 20 74 78 74 79 31 2b 74 78 74 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 46 4f 52 ┆TO txty1+txtmaxy DO FOR┆ 0x3cc60…3cc80 20 6a 3a 3d 74 78 74 78 31 20 54 4f 20 74 78 74 78 31 2b 74 78 74 6d 61 78 78 20 44 4f 20 42 45 ┆ j:=txtx1 TO txtx1+txtmaxx DO BE┆ 0x3cc80…3cca0 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 73 63 72 5f 73 77 61 70 5f 20 3d 73 63 72 ┆GIN if scr_swap_ =scr┆ 0x3cca0…3ccc0 73 77 61 70 20 74 68 65 6e 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 3a ┆swap then begin bo:┆ 0x3ccc0…3cce0 3d 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 6f 74 68 3b 0d 0a 20 ┆=txt_lineptr(.i.)^(.j.).both; ┆ 0x3cce0…3cd00 20 20 20 20 20 20 20 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e ┆ txt_lineptr(.i.)^(.j.┆ 0x3cd00…3cd20 29 2e 62 6f 74 68 3a 3d 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3b 0d 0a ┆).both:=memw(.adrseg:adrofs.); ┆ 0x3cd20…3cd40 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e ┆ memw(.adrseg:adrofs.┆ 0x3cd40…3cd60 29 3a 3d 62 6f 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0d 0a 20 20 20 20 ┆):=bo; end else ┆ 0x3cd60…3cd80 20 20 20 20 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 ┆ txt_lineptr(.i.)^(.j.).b┆ 0x3cd80…3cda0 6f 74 68 3a 3d 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3b 0d 0a 20 20 20 ┆oth:=memw(.adrseg:adrofs.); ┆ 0x3cda0…3cdc0 20 20 20 20 20 20 20 61 64 72 6f 66 73 3a 3d 61 64 72 6f 66 73 2b 32 3b 0d 0a 20 20 20 20 20 20 ┆ adrofs:=adrofs+2; ┆ 0x3cdc0…3cde0 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 42 45 47 49 4e 0d ┆ END; END ELSE BEGIN ┆ 0x3cde0…3ce00 0a 20 20 20 20 20 20 20 53 63 72 5f 6f 70 65 72 61 74 69 6f 6e 28 73 63 72 5f 73 77 61 70 5f 2c ┆ Scr_operation(scr_swap_,┆ 0x3ce00…3ce20 78 31 2c 20 79 31 2c 20 6d 61 78 78 2b 78 31 2c 20 6d 61 78 79 2b 79 31 2c 63 6f 6e 74 65 6e 74 ┆x1, y1, maxx+x1, maxy+y1,content┆ 0x3ce20…3ce40 29 3b 0d 0a 20 20 20 20 20 20 20 57 6c 64 5f 2e 78 6f 6c 64 3a 3d 6f 6c 64 31 3b 20 57 6c 64 5f ┆); Wld_.xold:=old1; Wld_┆ 0x3ce40…3ce60 2e 79 6f 6c 64 3a 3d 6f 6c 64 32 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 49 46 20 6e ┆.yold:=old2; END; IF n┆ 0x3ce60…3ce80 6f 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 72 65 6c 65 61 73 65 28 63 6f ┆o<0 THEN BEGIN release(co┆ 0x3ce80…3cea0 6e 74 65 6e 74 29 3b 63 6f 6e 74 65 6e 74 3a 3d 4e 49 4c 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆ntent);content:=NIL END; ┆ 0x3cea0…3cec0 20 20 20 57 6e 64 5f 3a 3d 77 69 6e 64 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 57 49 54 48 20 57 ┆ Wnd_:=wind; END; WITH W┆ 0x3cec0…3cee0 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 3b 0d 0a 20 20 20 ┆nd_ DO BEGIN x1:=x1+x; ┆ 0x3cee0…3cf00 20 79 31 3a 3d 79 31 2b 79 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 74 78 74 78 31 2b 78 3b 0d ┆ y1:=y1+y; txtx1:=txtx1+x; ┆ 0x3cf00…3cf20 0a 20 20 20 20 74 78 74 79 31 3a 3d 74 78 74 79 31 2b 79 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 28 2a ┆ txty1:=txty1+y; END; (*┆ 0x3cf20…3cf40 20 20 73 61 76 65 5f 61 72 72 28 2e 6e 6f 32 2e 29 2e 77 69 6e 64 3a 3d 57 6e 64 5f 3b 2a 29 0d ┆ save_arr(.no2.).wind:=Wnd_;*) ┆ 0x3cf40…3cf60 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 3a 3d 6e 6f 32 3b 0d 0a 20 20 73 63 72 5f 73 77 61 70 5f ┆ Wnd_actual:=no2; scr_swap_┆ 0x3cf60…3cf80 3a 3d 6c 6f 61 64 0d 0a 45 4e 44 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 77 61 70 76 69 ┆:=load END; procedure swapvi┆ 0x3cf80…3cfa0 65 77 70 6f 72 74 28 6e 6f 2c 78 2c 79 3a 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 0d 0a ┆ewport(no,x,y:integer); begin ┆ 0x3cfa0…3cfc0 20 20 73 63 72 5f 73 77 61 70 5f 3a 3d 73 63 72 73 77 61 70 3b 0d 0a 20 20 6c 6f 61 64 76 69 65 ┆ scr_swap_:=scrswap; loadvie┆ 0x3cfc0…3cfe0 77 70 6f 72 74 28 6e 6f 2c 78 2c 79 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆wport(no,x,y); end; PROCEDUR┆ 0x3cfe0…3d000 45 20 70 6c 6f 74 28 78 2c 20 79 20 3a 20 52 45 41 4c 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 ┆E plot(x, y : REAL); BEGIN ┆ 0x3d000…3d020 (24, 0, 5) 20 20 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 ┆ Wnd_WriteDot(_Wld_ToWindowX(x┆ 0x3d020…3d040 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 29 3b 0d 0a 20 20 20 20 57 6c 64 5f ┆), _Wld_ToWindowY(y)); Wld_┆ 0x3d040…3d060 2e 58 6f 6c 64 3a 3d 78 3b 20 57 6c 64 5f 2e 59 6f 6c 64 3a 3d 79 3b 0d 0a 20 20 45 4e 44 3b 0d ┆.Xold:=x; Wld_.Yold:=y; END; ┆ 0x3d060…3d080 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 63 69 72 63 6c 65 28 78 2c 79 2c 72 3a 20 52 45 41 4c 29 ┆ PROCEDURE circle(x,y,r: REAL)┆ 0x3d080…3d0a0 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 63 69 72 63 6c 65 28 5f 57 6c 64 5f 54 6f ┆; BEGIN Wnd_circle(_Wld_To┆ 0x3d0a0…3d0c0 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 2c 5f 77 ┆WindowX(x), _Wld_ToWindowY(y),_w┆ 0x3d0c0…3d0e0 6c 64 5f 74 6f 77 69 6e 64 6f 77 59 28 72 29 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 ┆ld_towindowY(r)); END; FUNCT┆ 0x3d0e0…3d100 49 4f 4e 20 67 65 74 63 6f 6c 6f 72 28 78 2c 20 79 20 3a 20 52 45 41 4c 29 3a 20 42 4f 4f 4c 45 ┆ION getcolor(x, y : REAL): BOOLE┆ 0x3d100…3d120 41 4e 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 67 65 74 63 6f 6c 6f 72 20 3a 3d 20 57 6e ┆AN; BEGIN getcolor := Wn┆ 0x3d120…3d140 64 5f 52 65 61 64 44 6f 74 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c ┆d_ReadDot(_Wld_ToWindowX(x), _Wl┆ 0x3d140…3d160 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆d_ToWindowY(y)) END; PROCE┆ 0x3d160…3d180 44 55 52 45 20 6d 6f 76 65 74 6f 28 78 2c 79 3a 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 ┆DURE moveto(x,y:REAL); BEGIN ┆ 0x3d180…3d1a0 20 57 6c 64 5f 2e 58 4f 6c 64 3a 3d 78 3b 20 57 6c 64 5f 2e 59 4f 6c 64 3a 3d 79 3b 0d 0a 45 4e ┆ Wld_.XOld:=x; Wld_.YOld:=y; EN┆ 0x3d1a0…3d1c0 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 72 65 6c 28 78 2c 79 3a 20 52 45 41 ┆D; PROCEDURE moverel(x,y: REA┆ 0x3d1c0…3d1e0 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 57 6c 64 5f 2e 58 4f 6c 64 2b 78 ┆L); BEGIN moveto(Wld_.XOld+x┆ 0x3d1e0…3d200 2c 57 6c 64 5f 2e 59 4f 6c 64 2b 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆,Wld_.YOld+y); END; PROCEDUR┆ 0x3d200…3d220 45 20 44 72 61 77 74 6f 28 78 32 2c 20 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 20 20 42 45 47 49 ┆E Drawto(x2, y2 : REAL); BEGI┆ 0x3d220…3d240 4e 0d 0a 20 20 20 20 57 6e 64 5f 44 72 61 77 4c 69 6e 65 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f ┆N Wnd_DrawLine(_Wld_ToWindo┆ 0x3d240…3d260 77 58 28 57 6c 64 5f 2e 58 4f 6c 64 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 57 6c ┆wX(Wld_.XOld), _Wld_ToWindowY(Wl┆ 0x3d260…3d280 64 5f 2e 59 4f 6c 64 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f 57 6c 64 ┆d_.YOld), _Wld┆ 0x3d280…3d2a0 5f 54 6f 57 69 6e 64 6f 77 58 28 78 32 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 ┆_ToWindowX(x2), _Wld_ToWindowY(y┆ 0x3d2a0…3d2c0 32 29 29 3b 0d 0a 20 20 20 20 57 6c 64 5f 2e 58 4f 6c 64 3a 3d 78 32 3b 20 57 6c 64 5f 2e 59 4f ┆2)); Wld_.XOld:=x2; Wld_.YO┆ 0x3d2c0…3d2e0 6c 64 3a 3d 79 32 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 ┆ld:=y2; END; PROCEDURE dra┆ 0x3d2e0…3d300 77 72 65 6c 28 78 2c 79 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 64 72 61 77 74 ┆wrel(x,y: REAL); BEGIN drawt┆ 0x3d300…3d320 6f 28 78 2b 57 6c 64 5f 2e 58 4f 6c 64 2c 79 2b 57 6c 64 5f 2e 59 4f 6c 64 29 3b 0d 0a 45 4e 44 ┆o(x+Wld_.XOld,y+Wld_.YOld); END┆ 0x3d320…3d340 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 43 68 61 72 28 78 2c 20 79 20 3a 20 52 ┆; PROCEDURE PlotChar(x, y : R┆ 0x3d340…3d360 45 41 4c 3b 20 63 20 3a 20 43 48 41 52 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e ┆EAL; c : CHAR); BEGIN Wn┆ 0x3d360…3d380 64 5f 44 72 61 77 43 68 61 72 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 ┆d_DrawChar(_Wld_ToWindowX(x), _W┆ 0x3d380…3d3a0 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 2c 20 63 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 ┆ld_ToWindowY(y), c) END; P┆ 0x3d3a0…3d3c0 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 54 65 78 74 28 78 2c 20 79 3a 20 52 45 41 4c 3b 20 74 3a ┆ROCEDURE PlotText(x, y: REAL; t:┆ 0x3d3c0…3d3e0 20 73 74 72 38 30 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 44 72 61 77 54 ┆ str80); BEGIN Wnd_DrawT┆ 0x3d3e0…3d400 65 78 74 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c 64 5f 54 6f 57 49 ┆ext(_Wld_ToWindowX(x), _Wld_ToWI┆ 0x3d400…3d420 (24, 1, 1) 6e 64 6f 77 59 28 79 29 2c 20 74 29 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 70 72 6f 63 65 64 ┆ndowY(y), t) END; proced┆ 0x3d420…3d440 75 72 65 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 78 2c 79 3a 20 72 65 61 6c 3b 20 73 69 7a 78 ┆ure plottextsize(x,y: real; sizx┆ 0x3d440…3d460 2c 73 69 7a 79 3a 20 69 6e 74 65 67 65 72 3b 20 73 3a 20 73 74 72 38 30 29 3b 0d 0a 76 61 72 0d ┆,sizy: integer; s: str80); var ┆ 0x3d460…3d480 0a 20 20 69 2c 78 31 2c 79 31 2c 78 32 2c 79 32 2c 78 62 65 67 2c 78 65 6e 64 2c 79 62 65 67 2c ┆ i,x1,y1,x2,y2,xbeg,xend,ybeg,┆ 0x3d480…3d4a0 79 65 6e 64 2c 78 78 2c 79 79 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 63 62 79 74 65 3a 20 62 ┆yend,xx,yy: integer; cbyte: b┆ 0x3d4a0…3d4c0 79 74 65 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 78 78 3a 3d 5f 77 6c 64 5f 74 6f 77 69 6e 64 6f 77 ┆yte; begin xx:=_wld_towindow┆ 0x3d4c0…3d4e0 78 28 78 29 3b 0d 0a 20 20 79 79 3a 3d 5f 77 6c 64 5f 74 6f 77 69 6e 64 6f 77 79 28 79 29 3b 0d ┆x(x); yy:=_wld_towindowy(y); ┆ 0x3d4e0…3d500 0a 20 20 66 6f 72 20 69 3a 3d 31 20 74 6f 20 6c 65 6e 28 73 29 20 64 6f 20 62 65 67 69 6e 0d 0a ┆ for i:=1 to len(s) do begin ┆ 0x3d500…3d520 20 20 20 20 66 6f 72 20 79 31 3a 3d 30 20 74 6f 20 37 20 64 6f 20 62 65 67 69 6e 0d 0a 20 20 20 ┆ for y1:=0 to 7 do begin ┆ 0x3d520…3d540 20 20 20 63 62 79 74 65 3a 3d 73 63 72 5f 63 68 61 72 28 2e 62 79 74 65 28 73 28 2e 69 2e 29 29 ┆ cbyte:=scr_char(.byte(s(.i.))┆ 0x3d540…3d560 2c 28 37 2d 79 31 29 2e 29 20 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 78 31 3a 3d 30 20 74 6f 20 ┆,(7-y1).) ; for x1:=0 to ┆ 0x3d560…3d580 37 20 64 6f 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 63 62 79 74 65 20 73 68 ┆7 do begin if (cbyte sh┆ 0x3d580…3d5a0 72 20 28 37 2d 78 31 29 29 20 61 6e 64 20 31 3c 3e 30 20 74 68 65 6e 20 62 65 67 69 6e 0d 0a 20 ┆r (7-x1)) and 1<>0 then begin ┆ 0x3d5a0…3d5c0 20 20 20 20 20 20 20 20 20 78 62 65 67 3a 3d 78 78 2b 78 31 2a 73 69 7a 78 3b 0d 0a 20 20 20 20 ┆ xbeg:=xx+x1*sizx; ┆ 0x3d5c0…3d5e0 20 20 20 20 20 20 78 65 6e 64 3a 3d 78 62 65 67 2b 73 69 7a 78 2d 31 3b 0d 0a 20 20 20 20 20 20 ┆ xend:=xbeg+sizx-1; ┆ 0x3d5e0…3d600 20 20 20 20 79 62 65 67 3a 3d 79 79 2b 79 31 2a 73 69 7a 79 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆ ybeg:=yy+y1*sizy; ┆ 0x3d600…3d620 20 79 65 6e 64 3a 3d 79 62 65 67 2b 73 69 7a 79 2d 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 66 ┆ yend:=ybeg+sizy-1; f┆ 0x3d620…3d640 6f 72 20 78 32 3a 3d 78 62 65 67 20 74 6f 20 78 65 6e 64 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 ┆or x2:=xbeg to xend do ┆ 0x3d640…3d660 20 20 20 20 66 6f 72 20 79 32 3a 3d 79 62 65 67 20 74 6f 20 79 65 6e 64 20 64 6f 20 77 6e 64 5f ┆ for y2:=ybeg to yend do wnd_┆ 0x3d660…3d680 77 72 69 74 65 64 6f 74 28 78 32 2c 79 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a ┆writedot(x2,y2); end; ┆ 0x3d680…3d6a0 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 78 78 3a 3d 78 78 ┆ end; end; xx:=xx┆ 0x3d6a0…3d6c0 2b 73 69 7a 78 2a 38 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 20 28 2a 20 70 72 6f 63 65 64 ┆+sizx*8; end; end; (* proced┆ 0x3d6c0…3d6e0 75 72 65 20 70 6c 6f 74 63 68 61 72 73 69 7a 65 28 78 2c 79 3a 20 72 65 61 6c 3b 20 73 69 7a 3a ┆ure plotcharsize(x,y: real; siz:┆ 0x3d6e0…3d700 20 69 6e 74 65 67 65 72 3b 20 63 68 3a 20 63 68 61 72 29 3b 20 2a 29 0d 0a 0d 0a 50 52 4f 43 45 ┆ integer; ch: char); *) PROCE┆ 0x3d700…3d720 44 55 52 45 20 64 72 61 77 73 74 72 28 63 6f 6c 2c 72 6f 77 3a 49 4e 54 45 47 45 52 3b 73 3a 73 ┆DURE drawstr(col,row:INTEGER;s:s┆ 0x3d720…3d740 74 72 38 30 29 3b 0d 0a 56 41 52 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 20 6c 09 3a 20 ┆tr80); VAR attrib: BYTE; l : ┆ 0x3d740…3d760 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d ┆INTEGER; BEGIN WITH Wnd_ DO ┆ 0x3d760…3d780 0a 20 20 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 ┆ IF txt_mode THEN BEGIN ┆ 0x3d780…3d7a0 20 20 20 72 6f 77 3a 3d 72 6f 77 2b 74 78 74 79 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f ┆ row:=row+txty1; IF (co┆ 0x3d7a0…3d7c0 6c 2b 6c 65 6e 28 73 29 29 3e 28 74 78 74 6d 61 78 78 2b 31 29 20 54 48 45 4e 20 6c 3a 3d 74 78 ┆l+len(s))>(txtmaxx+1) THEN l:=tx┆ 0x3d7c0…3d7e0 74 6d 61 78 78 2b 31 2d 63 6f 6c 20 45 4c 53 45 20 6c 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 20 ┆tmaxx+1-col ELSE l:=len(s); ┆ 0x3d7e0…3d800 20 20 20 63 6f 6c 3a 3d 63 6f 6c 2b 74 78 74 78 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 72 6f 77 ┆ col:=col+txtx1; IF row┆ 0x3d800…3d820 (24, 1, 2) 3c 3d 74 78 74 6d 61 78 79 2b 74 78 74 79 31 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 77 72 ┆<=txtmaxy+txty1 THEN wr┆ 0x3d820…3d840 69 74 65 73 74 72 28 63 6f 6c 2c 72 6f 77 2c 63 6f 70 79 28 73 2c 31 2c 6c 29 29 3b 0d 0a 20 20 ┆itestr(col,row,copy(s,1,l)); ┆ 0x3d840…3d860 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 63 6f 6c ┆ END ELSE BEGIN col┆ 0x3d860…3d880 3a 3d 20 63 6f 6c 20 53 48 4c 20 33 20 3b 0d 0a 20 20 20 20 20 20 72 6f 77 3a 3d 20 6d 61 78 79 ┆:= col SHL 3 ; row:= maxy┆ 0x3d880…3d8a0 20 2d 20 37 20 2d 20 28 72 6f 77 20 2a 20 38 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 64 72 61 ┆ - 7 - (row * 8); Wnd_dra┆ 0x3d8a0…3d8c0 77 74 65 78 74 28 63 6f 6c 2c 72 6f 77 2c 73 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆wtext(col,row,s); END; END┆ 0x3d8c0…3d8e0 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 77 72 65 61 6c 28 78 2c 79 3a 49 4e 54 45 ┆; PROCEDURE drawreal(x,y:INTE┆ 0x3d8e0…3d900 47 45 52 3b 20 72 3a 52 45 41 4c 3b 20 6c 2c 64 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 ┆GER; r:REAL; l,d: INTEGER); VAR┆ 0x3d900…3d920 0d 0a 20 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 28 72 3a 6c 3a ┆ s: str80; BEGIN str(r:l:┆ 0x3d920…3d940 64 2c 73 29 3b 0d 0a 20 20 64 72 61 77 73 74 72 28 78 2c 79 2c 73 29 3b 0d 0a 45 4e 44 3b 0d 0a ┆d,s); drawstr(x,y,s); END; ┆ 0x3d940…3d960 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 69 6e 64 6f 77 28 6e 6f 3a 20 49 4e 54 45 47 45 52 3b 20 ┆ PROCEDURE Window(no: INTEGER; ┆ 0x3d960…3d980 78 78 31 2c 20 78 78 32 2c 20 79 79 31 2c 20 79 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 ┆xx1, xx2, yy1, yy2 : REAL); BEG┆ 0x3d980…3d9a0 49 4e 0d 0a 20 20 57 49 54 48 20 57 6c 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 ┆IN WITH Wld_arr(.no.) DO BEGI┆ 0x3d9a0…3d9c0 4e 0d 0a 20 20 20 20 58 31 20 3a 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 31 20 3a 3d 20 79 79 31 ┆N X1 := xx1; Y1 := yy1┆ 0x3d9c0…3d9e0 3b 0d 0a 20 20 20 20 58 4f 6c 64 3a 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 4f 6c 64 3a 3d 20 79 ┆; XOld:= xx1; YOld:= y┆ 0x3d9e0…3da00 79 31 3b 0d 0a 20 20 20 20 58 52 61 6e 67 65 20 3a 3d 20 78 78 32 20 2d 20 78 78 31 20 3b 0d 0a ┆y1; XRange := xx2 - xx1 ; ┆ 0x3da00…3da20 20 20 20 20 59 52 61 6e 67 65 20 3a 3d 20 79 79 32 20 2d 20 79 79 31 20 0d 0a 20 20 45 4e 44 3b ┆ YRange := yy2 - yy1 END;┆ 0x3da20…3da40 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6c 65 63 74 77 69 6e 64 6f 77 ┆ END; PROCEDURE selectwindow┆ 0x3da40…3da60 28 6e 6f 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 77 6c 64 5f 3a 3d 77 ┆(no: INTEGER); BEGIN wld_:=w┆ 0x3da60…3da80 6c 64 5f 61 72 72 28 2e 6e 6f 2e 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ld_arr(.no.); END; PROCEDURE┆ 0x3da80…3daa0 20 63 6c 65 61 72 3b 0d 0a 56 41 52 20 69 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 ┆ clear; VAR i : INTEGER; str┆ 0x3daa0…3dac0 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d ┆: str80; BEGIN WITH Wnd_ DO ┆ 0x3dac0…3dae0 0a 20 20 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 ┆ IF txt_mode THEN BEGIN ┆ 0x3dae0…3db00 20 20 20 73 74 72 3a 3d 73 70 63 28 74 78 74 6d 61 78 78 2b 31 2c 27 20 27 29 3b 0d 0a 20 20 20 ┆ str:=spc(txtmaxx+1,' '); ┆ 0x3db00…3db20 20 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 74 78 74 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 20 ┆ FOR i:=0 TO txtmaxy DO ┆ 0x3db20…3db40 20 20 20 64 72 61 77 73 74 72 28 30 2c 69 2c 73 74 72 29 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 ┆ drawstr(0,i,str); END ┆ 0x3db40…3db60 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 53 63 72 5f 46 69 6c 6c 28 78 31 2c 20 79 31 2c 20 ┆ ELSE Scr_Fill(x1, y1, ┆ 0x3db60…3db80 78 31 2b 4d 61 78 58 2c 20 79 31 20 2b 20 6d 61 78 59 20 2c 62 61 63 6b 63 6f 6c 6f 72 29 3b 0d ┆x1+MaxX, y1 + maxY ,backcolor); ┆ 0x3db80…3dba0 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 42 6f 78 28 78 31 2c 20 79 ┆ END; PROCEDURE DrawBox(x1, y┆ 0x3dba0…3dbc0 31 2c 20 78 32 2c 20 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 ┆1, x2, y2 : REAL); BEGIN ┆ 0x3dbc0…3dbe0 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 31 29 2c ┆ Wnd_DrawBox(_Wld_ToWindowX(x1),┆ 0x3dbe0…3dc00 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 31 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ _Wld_ToWindowY(y1), ┆ 0x3dc00…3dc20 (24, 1, 3) 20 20 20 20 20 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 32 29 2c 20 5f 57 6c 64 5f 54 ┆ _Wld_ToWindowX(x2), _Wld_T┆ 0x3dc20…3dc40 6f 57 69 6e 64 6f 77 59 28 79 32 29 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆oWindowY(y2)) END; PROCEDU┆ 0x3dc40…3dc60 52 45 20 76 69 65 77 70 6f 72 74 63 6f 6c 6f 72 28 6e 6f 2c 20 66 63 6f 6c 6f 72 2c 20 62 63 6f ┆RE viewportcolor(no, fcolor, bco┆ 0x3dc60…3dc80 6c 6f 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e ┆lor: INTEGER); BEGIN WITH Wn┆ 0x3dc80…3dca0 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 70 65 6e 63 ┆d_arr(.no.) DO BEGIN penc┆ 0x3dca0…3dcc0 6f 6c 6f 72 3a 3d 66 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 20 20 62 61 63 6b 63 6f 6c 6f 72 3a 3d ┆olor:=fcolor; backcolor:=┆ 0x3dcc0…3dce0 62 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆bcolor; END; END; PROCE┆ 0x3dce0…3dd00 44 55 52 45 20 74 65 78 74 76 69 65 77 70 6f 72 74 63 6f 6c 6f 72 28 6e 6f 2c 20 66 63 6f 6c 6f ┆DURE textviewportcolor(no, fcolo┆ 0x3dd00…3dd20 72 2c 20 62 63 6f 6c 6f 72 3a 20 42 59 54 45 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f ┆r, bcolor: BYTE); BEGIN Wnd_┆ 0x3dd20…3dd40 70 61 6c 65 74 74 65 28 2e 6e 6f 2e 29 3a 3d 66 63 6f 6c 6f 72 2b 28 62 63 6f 6c 6f 72 20 53 48 ┆palette(.no.):=fcolor+(bcolor SH┆ 0x3dd40…3dd60 4c 20 34 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 76 69 65 77 70 6f 72 ┆L 4); END; PROCEDURE viewpor┆ 0x3dd60…3dd80 74 68 65 61 64 65 72 28 6e 6f 3a 20 49 4e 54 45 47 45 52 3b 20 68 3a 20 73 74 72 38 30 29 3b 0d ┆theader(no: INTEGER; h: str80); ┆ 0x3dd80…3dda0 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 2e 68 64 72 3a 3d 68 3b 0d ┆ BEGIN Wnd_arr(.no.).hdr:=h; ┆ 0x3dda0…3ddc0 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 76 69 65 77 70 6f 72 74 28 6e 6f 2c 20 ┆ END; PROCEDURE viewport(no, ┆ 0x3ddc0…3dde0 78 78 31 2c 20 78 78 32 2c 20 79 79 31 2c 20 79 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 ┆xx1, xx2, yy1, yy2: INTEGER); V┆ 0x3dde0…3de00 41 52 20 63 68 3a 20 43 48 41 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 78 31 20 3a 3d 20 28 78 ┆AR ch: CHAR; BEGIN xx1 := (x┆ 0x3de00…3de20 78 31 20 2b 20 37 29 20 41 4e 44 20 24 66 66 66 38 3b 0d 0a 20 20 78 78 32 20 3a 3d 20 28 28 78 ┆x1 + 7) AND $fff8; xx2 := ((x┆ 0x3de20…3de40 78 32 20 2b 20 37 29 20 41 4e 44 20 24 66 66 66 38 29 2d 31 3b 0d 0a 20 20 49 46 20 78 78 31 3c ┆x2 + 7) AND $fff8)-1; IF xx1<┆ 0x3de40…3de60 30 20 54 48 45 4e 20 78 78 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 78 32 3e 53 63 72 5f 6d 61 78 ┆0 THEN xx1:=0; IF xx2>Scr_max┆ 0x3de60…3de80 78 20 54 48 45 4e 20 78 78 32 3a 3d 53 63 72 5f 6d 61 78 78 3b 0d 0a 20 20 49 46 20 79 79 31 3c ┆x THEN xx2:=Scr_maxx; IF yy1<┆ 0x3de80…3dea0 30 20 54 48 45 4e 20 79 79 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 79 79 32 3e 53 63 72 5f 6d 61 78 ┆0 THEN yy1:=0; IF yy2>Scr_max┆ 0x3dea0…3dec0 79 20 54 48 45 4e 20 79 79 32 3a 3d 53 63 72 5f 6d 61 78 79 3b 0d 0a 20 20 49 46 20 79 79 31 3e ┆y THEN yy2:=Scr_maxy; IF yy1>┆ 0x3dec0…3dee0 79 79 32 20 54 48 45 4e 20 73 77 61 70 28 79 79 31 2c 79 79 32 29 3b 0d 0a 20 20 49 46 20 78 78 ┆yy2 THEN swap(yy1,yy2); IF xx┆ 0x3dee0…3df00 31 3e 78 78 32 20 54 48 45 4e 20 73 77 61 70 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 57 49 54 ┆1>xx2 THEN swap(xx1,yy1); WIT┆ 0x3df00…3df20 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 31 ┆H Wnd_arr(.no.) DO BEGIN X1┆ 0x3df20…3df40 20 3a 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 31 20 3a 3d 20 79 79 31 3b 0d 0a 20 20 20 20 4d 61 ┆ := xx1; Y1 := yy1; Ma┆ 0x3df40…3df60 78 58 20 3a 3d 20 78 78 32 20 2d 20 78 78 31 20 3b 0d 0a 20 20 20 20 4d 61 78 59 20 3a 3d 20 79 ┆xX := xx2 - xx1 ; MaxY := y┆ 0x3df60…3df80 79 32 20 2d 20 79 79 31 20 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 ┆y2 - yy1 ; END; END; PROC┆ 0x3df80…3dfa0 45 44 55 52 45 20 74 65 78 74 76 69 65 77 70 6f 72 74 28 6e 6f 2c 20 78 78 31 2c 20 78 78 32 2c ┆EDURE textviewport(no, xx1, xx2,┆ 0x3dfa0…3dfc0 20 79 79 31 2c 20 79 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 ┆ yy1, yy2: INTEGER); BEGIN I┆ 0x3dfc0…3dfe0 46 20 78 78 32 3c 78 78 31 20 54 48 45 4e 20 68 61 6c 74 3b 0d 0a 20 20 49 46 20 79 79 32 3c 79 ┆F xx2<xx1 THEN halt; IF yy2<y┆ 0x3dfe0…3e000 79 31 20 54 48 45 4e 20 68 61 6c 74 3b 0d 0a 20 20 49 46 20 78 78 31 3c 30 20 54 48 45 4e 20 78 ┆y1 THEN halt; IF xx1<0 THEN x┆ 0x3e000…3e020 (24, 1, 4) 78 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 79 79 31 3c 30 20 54 48 45 4e 20 79 79 31 3a 3d 30 3b 0d ┆x1:=0; IF yy1<0 THEN yy1:=0; ┆ 0x3e020…3e040 0a 20 20 49 46 20 78 78 32 3e 54 78 74 5f 6d 61 78 78 20 54 48 45 4e 20 78 78 32 3a 3d 54 78 74 ┆ IF xx2>Txt_maxx THEN xx2:=Txt┆ 0x3e040…3e060 5f 6d 61 78 78 3b 0d 0a 20 20 49 46 20 79 79 32 3e 54 78 74 5f 6d 61 78 79 20 54 48 45 4e 20 79 ┆_maxx; IF yy2>Txt_maxy THEN y┆ 0x3e060…3e080 79 32 3a 3d 54 78 74 5f 6d 61 78 79 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e ┆y2:=Txt_maxy; WITH Wnd_arr(.n┆ 0x3e080…3e0a0 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 78 78 31 3b 0d 0a 20 ┆o.) DO BEGIN txtx1:=xx1; ┆ 0x3e0a0…3e0c0 20 20 20 74 78 74 79 31 3a 3d 79 79 31 3b 0d 0a 20 20 20 20 74 78 74 6d 61 78 78 3a 3d 78 78 32 ┆ txty1:=yy1; txtmaxx:=xx2┆ 0x3e0c0…3e0e0 2d 78 78 31 3b 0d 0a 20 20 20 20 74 78 74 6d 61 78 79 3a 3d 79 79 32 2d 79 79 31 3b 0d 0a 20 20 ┆-xx1; txtmaxy:=yy2-yy1; ┆ 0x3e0e0…3e100 45 4e 44 3b 0d 0a 20 20 76 69 65 77 70 6f 72 74 28 6e 6f 2c 78 78 31 2a 38 2c 78 78 32 2a 38 2b ┆END; viewport(no,xx1*8,xx2*8+┆ 0x3e100…3e120 37 2c 53 63 72 5f 6d 61 78 79 2d 28 28 79 79 32 2a 38 29 2b 37 29 2c 53 63 72 5f 6d 61 78 79 2d ┆7,Scr_maxy-((yy2*8)+7),Scr_maxy-┆ 0x3e120…3e140 28 79 79 31 2a 38 29 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6c ┆(yy1*8)); END; PROCEDURE sel┆ 0x3e140…3e160 65 63 74 76 69 65 77 70 6f 72 74 28 6e 6f 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e ┆ectviewport(no: INTEGER); BEGIN┆ 0x3e160…3e180 0d 0a 20 20 57 6e 64 5f 3a 3d 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 3b 0d 0a 20 20 57 6e 64 5f ┆ Wnd_:=Wnd_arr(.no.); Wnd_┆ 0x3e180…3e1a0 61 63 74 75 61 6c 3a 3d 6e 6f 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 47 ┆actual:=no; END; PROCEDURE G┆ 0x3e1a0…3e1c0 72 61 70 68 69 63 53 63 72 65 65 6e 28 74 79 70 20 3a 53 63 72 5f 54 59 50 45 29 3b 0d 0a 20 20 ┆raphicScreen(typ :Scr_TYPE); ┆ 0x3e1c0…3e1e0 56 41 52 20 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 ┆VAR i: INTEGER; BEGIN tx┆ 0x3e1e0…3e200 74 5f 6d 6f 64 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 65 68 6f 66 73 3a 3d 6f 66 73 28 74 65 ┆t_mode:=true; ehofs:=ofs(te┆ 0x3e200…3e220 78 74 6d 6f 64 65 29 3b 0d 0a 20 20 20 20 6d 61 72 6b 28 53 63 72 5f 42 45 47 49 4e 29 3b 0d 0a ┆xtmode); mark(Scr_BEGIN); ┆ 0x3e220…3e240 20 20 20 20 67 72 61 70 68 5f 54 59 50 45 3a 3d 74 79 70 3b 0d 0a 20 20 20 20 69 6e 69 74 5f 67 ┆ graph_TYPE:=typ; init_g┆ 0x3e240…3e260 72 61 70 68 69 63 73 28 74 79 70 29 3b 0d 0a 20 20 20 20 69 6e 69 74 5f 74 65 78 74 3b 0d 0a 20 ┆raphics(typ); init_text; ┆ 0x3e260…3e280 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 57 6e 64 5f 6d 61 78 20 44 4f 20 42 45 47 49 4e 0d ┆ FOR i:=1 TO Wnd_max DO BEGIN ┆ 0x3e280…3e2a0 0a 20 20 20 20 20 20 74 65 78 74 76 69 65 77 70 6f 72 74 28 69 2c 30 2c 37 39 2c 30 2c 32 34 29 ┆ textviewport(i,0,79,0,24)┆ 0x3e2a0…3e2c0 3b 0d 0a 20 20 20 20 20 20 74 65 78 74 76 69 65 77 70 6f 72 74 63 6f 6c 6f 72 28 69 2c 77 68 69 ┆; textviewportcolor(i,whi┆ 0x3e2c0…3e2e0 74 65 74 78 74 2c 62 6c 61 63 6b 74 78 74 29 3b 0d 0a 20 20 20 20 20 20 76 69 65 77 70 6f 72 74 ┆tetxt,blacktxt); viewport┆ 0x3e2e0…3e300 28 69 2c 30 2c 20 53 63 72 5f 4d 61 78 58 2c 20 30 2c 20 53 63 72 5f 4d 61 78 59 29 3b 0d 0a 20 ┆(i,0, Scr_MaxX, 0, Scr_MaxY); ┆ 0x3e300…3e320 20 20 20 20 20 77 69 6e 64 6f 77 28 69 2c 30 2e 30 2c 20 53 63 72 5f 4d 61 78 58 2c 20 30 2e 30 ┆ window(i,0.0, Scr_MaxX, 0.0┆ 0x3e320…3e340 2c 20 53 63 72 5f 4d 61 78 59 29 3b 0d 0a 20 20 20 20 20 20 76 69 65 77 70 6f 72 74 63 6f 6c 6f ┆, Scr_MaxY); viewportcolo┆ 0x3e340…3e360 72 28 69 2c 77 68 69 74 65 2c 62 6c 61 63 6b 29 3b 0d 0a 20 20 20 20 20 20 57 49 54 48 20 73 61 ┆r(i,white,black); WITH sa┆ 0x3e360…3e380 76 65 5f 61 72 72 28 2e 69 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 63 6f ┆ve_arr(.i.) DO BEGIN co┆ 0x3e380…3e3a0 6e 74 65 6e 74 3a 3d 4e 49 4c 3b 20 0d 0a 20 20 20 20 20 20 20 20 6c 65 6e 67 74 68 3a 3d 30 3b ┆ntent:=NIL; length:=0;┆ 0x3e3a0…3e3c0 20 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 61 72 72 28 2e 69 2e ┆ END; Wnd_arr(.i.┆ 0x3e3c0…3e3e0 29 2e 68 64 72 3a 3d 27 27 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 73 65 6c 65 63 74 ┆).hdr:=''; END; select┆ 0x3e3e0…3e400 76 69 65 77 70 6f 72 74 28 31 29 3b 0d 0a 20 20 20 20 73 65 6c 65 63 74 77 69 6e 64 6f 77 28 31 ┆viewport(1); selectwindow(1┆ 0x3e400…3e420 (24, 1, 5) 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 42 6f 78 57 69 6e 64 6f 77 ┆) END; PROCEDURE BoxWindow┆ 0x3e420…3e440 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 30 2c 20 30 2c 20 57 6e ┆; BEGIN Wnd_DrawBox(0, 0, Wn┆ 0x3e440…3e460 64 5f 2e 4d 61 78 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆d_.MaxX, Wnd_.MaxY); END; PR┆ 0x3e460…3e480 4f 43 45 44 55 52 45 20 64 72 61 77 68 65 61 64 65 72 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6f 6c ┆OCEDURE drawheader; VAR i,ol┆ 0x3e480…3e4a0 64 63 6f 6c 6f 72 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 ┆dcolor: INTEGER; BEGIN WITH ┆ 0x3e4a0…3e4c0 57 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 68 64 72 3c 3e 27 27 20 54 48 ┆Wnd_ DO BEGIN IF hdr<>'' TH┆ 0x3e4c0…3e4e0 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 69 3a 3d 28 6d 61 78 78 20 44 49 56 20 38 20 2d ┆EN BEGIN i:=(maxx DIV 8 -┆ 0x3e4e0…3e500 20 6c 65 6e 28 68 64 72 29 29 20 44 49 56 20 32 3b 0d 0a 20 20 20 20 20 20 49 46 20 69 3c 30 20 ┆ len(hdr)) DIV 2; IF i<0 ┆ 0x3e500…3e520 54 48 45 4e 20 69 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 66 69 6c 6c 28 78 31 2c 79 31 ┆THEN i:=0; Scr_fill(x1,y1┆ 0x3e520…3e540 2b 6d 61 78 79 2d 31 30 2c 78 31 2b 6d 61 78 78 2c 79 31 2b 6d 61 78 79 2c 24 46 46 29 3b 0d 0a ┆+maxy-10,x1+maxx,y1+maxy,$FF); ┆ 0x3e540…3e560 20 20 20 20 20 20 6f 6c 64 63 6f 6c 6f 72 3a 3d 70 65 6e 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 20 ┆ oldcolor:=pencolor; ┆ 0x3e560…3e580 20 70 65 6e 63 6f 6c 6f 72 3a 3d 62 6c 61 63 6b 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 64 72 61 ┆ pencolor:=black; Wnd_dra┆ 0x3e580…3e5a0 77 62 6f 78 28 30 2c 6d 61 78 79 2d 31 30 2c 6d 61 78 78 2c 6d 61 78 79 29 3b 0d 0a 20 20 20 20 ┆wbox(0,maxy-10,maxx,maxy); ┆ 0x3e5a0…3e5c0 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 20 20 44 72 61 77 53 74 72 28 69 ┆ maxy:=maxy-2; DrawStr(i┆ 0x3e5c0…3e5e0 2c 30 2c 68 64 72 29 3b 0d 0a 20 20 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 38 3b 0d 0a 20 ┆,0,hdr); maxy:=maxy-8; ┆ 0x3e5e0…3e600 20 20 20 20 20 70 65 6e 63 6f 6c 6f 72 3a 3d 6f 6c 64 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 45 4e ┆ pencolor:=oldcolor; EN┆ 0x3e600…3e620 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 ┆D; END; END; PROCEDURE dr┆ 0x3e620…3e640 61 77 66 72 61 6d 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 ┆awframe; BEGIN WITH Wnd_ DO ┆ 0x3e640…3e660 42 45 47 49 4e 0d 0a 20 20 20 20 64 72 61 77 68 65 61 64 65 72 3b 0d 0a 20 20 20 20 57 6e 64 5f ┆BEGIN drawheader; Wnd_┆ 0x3e660…3e680 44 72 61 77 42 6f 78 28 30 2c 20 30 2c 20 4d 61 78 58 2c 20 4d 61 78 59 29 3b 0d 0a 20 20 20 20 ┆DrawBox(0, 0, MaxX, MaxY); ┆ 0x3e680…3e6a0 78 31 3a 3d 78 31 2b 31 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 31 3b 0d 0a 20 20 20 20 6d 61 ┆x1:=x1+1; y1:=y1+1; ma┆ 0x3e6a0…3e6c0 78 79 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 6d 61 78 78 3a 3d 6d 61 78 78 2d 32 3b 0d 0a ┆xy:=maxy-2; maxx:=maxx-2; ┆ 0x3e6c0…3e6e0 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 67 6f 74 6f 74 78 ┆ END; END; PROCEDURE gototx┆ 0x3e6e0…3e700 74 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 6f 74 6f 78 ┆t(x,y: INTEGER); BEGIN gotox┆ 0x3e700…3e720 79 28 78 2c 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 7b 50 52 4f 43 45 44 55 52 45 20 67 6f 74 6f ┆y(x,y); END; æPROCEDURE goto┆ 0x3e720…3e740 78 79 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 6f 74 6f ┆xy(x,y: INTEGER); BEGIN goto┆ 0x3e740…3e760 74 78 74 28 78 2b 57 6e 64 5f 2e 74 78 74 78 31 2c 79 2b 57 6e 64 5f 2e 74 78 74 79 31 29 3b 0d ┆txt(x+Wnd_.txtx1,y+Wnd_.txty1); ┆ 0x3e760…3e780 0a 45 4e 44 3b 0d 0a 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 66 72 61 6d 65 ┆ END; å PROCEDURE writeframe┆ 0x3e780…3e7a0 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6c 68 2c 6c 78 2c 6c 79 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆; VAR i,lh,lx,ly: INTEGER; ┆ 0x3e7a0…3e7c0 20 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 ┆ s: str80; BEGIN WITH Wnd_ ┆ 0x3e7c0…3e7e0 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 78 3a 3d 74 78 74 6d 61 78 78 3b 20 6c 79 3a 3d 74 ┆DO BEGIN lx:=txtmaxx; ly:=t┆ 0x3e7e0…3e800 78 74 6d 61 78 79 3b 20 6c 68 3a 3d 28 28 6c 78 2b 32 29 2d 6c 65 6e 28 68 64 72 29 29 20 44 49 ┆xtmaxy; lh:=((lx+2)-len(hdr)) DI┆ 0x3e800…3e820 (25, 0, 1) 56 20 32 2b 31 3b 0d 0a 20 20 20 20 73 3a 3d 27 c9 27 2b 73 70 63 28 6c 78 2d 31 2c 27 cd 27 29 ┆V 2+1; s:=' '+spc(lx-1,' ')┆ 0x3e820…3e840 2b 27 bb 27 3b 0d 0a 20 20 20 20 6d 6f 76 65 28 68 64 72 28 2e 31 2e 29 2c 73 28 2e 6c 68 2e 29 ┆+' '; move(hdr(.1.),s(.lh.)┆ 0x3e840…3e860 2c 6c 65 6e 28 68 64 72 29 29 3b 0d 0a 20 20 20 20 64 72 61 77 73 74 72 28 30 2c 30 2c 73 29 3b ┆,len(hdr)); drawstr(0,0,s);┆ 0x3e860…3e880 0d 0a 20 20 20 20 73 3a 3d 27 ba 27 2b 73 70 63 28 6c 78 2d 31 2c 27 20 27 29 2b 27 ba 27 3b 0d ┆ s:=' '+spc(lx-1,' ')+' '; ┆ 0x3e880…3e8a0 0a 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6c 79 2d 31 20 44 4f 20 64 72 61 77 73 74 72 ┆ FOR i:=1 TO ly-1 DO drawstr┆ 0x3e8a0…3e8c0 28 30 2c 69 2c 73 29 3b 0d 0a 20 20 20 20 64 72 61 77 73 74 72 28 30 2c 6c 79 2c 27 c8 27 2b 73 ┆(0,i,s); drawstr(0,ly,' '+s┆ 0x3e8c0…3e8e0 70 63 28 6c 78 2d 31 2c 27 cd 27 29 2b 27 bc 27 29 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 73 ┆pc(lx-1,' ')+' '); txtx1:=s┆ 0x3e8e0…3e900 75 63 63 28 74 78 74 78 31 29 3b 74 78 74 6d 61 78 78 3a 3d 74 78 74 6d 61 78 78 2d 32 3b 0d 0a ┆ucc(txtx1);txtmaxx:=txtmaxx-2; ┆ 0x3e900…3e920 20 20 20 20 74 78 74 79 31 3a 3d 73 75 63 63 28 74 78 74 79 31 29 3b 74 78 74 6d 61 78 79 3a 3d ┆ txty1:=succ(txty1);txtmaxy:=┆ 0x3e920…3e940 74 78 74 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 38 3b 6d 61 78 78 3a 3d 6d ┆txtmaxy-2; x1:=x1+8;maxx:=m┆ 0x3e940…3e960 61 78 78 2d 31 36 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 38 3b 6d 61 78 79 3a 3d 6d 61 78 79 ┆axx-16; y1:=y1+8;maxy:=maxy┆ 0x3e960…3e980 2d 31 36 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 ┆-16; END; END; PROCEDUR┆ 0x3e980…3e9a0 45 20 42 49 54 42 49 54 28 4f 6c 64 42 79 74 65 3a 42 79 74 65 3b 56 41 52 20 4e 65 77 62 79 74 ┆E BITBIT(OldByte:Byte;VAR Newbyt┆ 0x3e9a0…3e9c0 65 3a 20 62 79 74 65 29 3b 0d 0a 76 61 72 20 20 0d 0a 20 20 62 69 74 3a 20 62 79 74 65 3b 0d 0a ┆e: byte); var bit: byte; ┆ 0x3e9c0…3e9e0 20 20 6a 2c 69 2c 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 4e 65 77 ┆ j,i,n:integer; BEGIN New┆ 0x3e9e0…3ea00 42 79 74 65 3a 3d 24 30 30 3b 0d 0a 20 20 66 6f 72 20 6a 3a 3d 20 31 20 74 6f 20 34 20 64 6f 0d ┆Byte:=$00; for j:= 1 to 4 do ┆ 0x3ea00…3ea20 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 63 61 73 65 20 6a 20 6f 66 0d 0a 20 20 20 20 31 3a 20 ┆ begin case j of 1: ┆ 0x3ea20…3ea40 6e 3a 3d 31 3b 0d 0a 20 20 20 20 32 3a 20 6e 3a 3d 32 3b 0d 0a 20 20 20 20 33 3a 20 6e 3a 3d 34 ┆n:=1; 2: n:=2; 3: n:=4┆ 0x3ea40…3ea60 3b 0d 0a 20 20 20 20 34 3a 20 6e 3a 3d 38 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 42 ┆; 4: n:=8; end; B┆ 0x3ea60…3ea80 69 74 3a 3d 4f 6c 64 62 79 74 65 20 41 4e 44 20 6e 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 ┆it:=Oldbyte AND n; Bit:=Bit┆ 0x3ea80…3eaa0 20 53 48 4c 20 6a 3b 0d 0a 20 20 20 20 4e 65 77 62 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 ┆ SHL j; Newbyte:=Newbyte OR┆ 0x3eaa0…3eac0 20 42 69 74 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 20 53 48 52 20 31 3b 0d 0a 20 20 20 20 ┆ Bit; Bit:=Bit SHR 1; ┆ 0x3eac0…3eae0 4e 65 77 62 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 20 42 69 74 3b 0d 0a 20 20 65 6e 64 3b ┆Newbyte:=Newbyte OR Bit; end;┆ 0x3eae0…3eb00 0d 0a 65 6e 64 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 64 75 6d 70 28 6d ┆ end; PROCEDURE Scr_dump(m┆ 0x3eb00…3eb20 6f 64 65 3a 70 72 6e 5f 54 59 50 45 29 3b 0d 0a 56 41 52 0d 0a 20 20 70 72 69 6e 74 65 72 3a 20 ┆ode:prn_TYPE); VAR printer: ┆ 0x3eb20…3eb40 74 65 78 74 3b 0d 0a 20 20 69 2c 6a 2c 6b 2c 6b 31 2c 73 6d 61 78 2c 74 6d 61 78 3a 20 49 4e 54 ┆text; i,j,k,k1,smax,tmax: INT┆ 0x3eb40…3eb60 45 47 45 52 3b 0d 0a 20 20 69 6e 69 74 5f 63 68 3a 20 53 54 52 49 4e 47 28 2e 36 2e 29 3b 0d 0a ┆EGER; init_ch: STRING(.6.); ┆ 0x3eb60…3eb80 20 20 67 72 5f 73 74 72 3a 20 53 54 52 49 4e 47 28 2e 34 2e 29 3b 0d 0a 0d 0a 20 20 63 68 3a 20 ┆ gr_str: STRING(.4.); ch: ┆ 0x3eb80…3eba0 63 68 61 72 3b 0d 0a 20 20 48 69 67 68 43 48 2c 4c 6f 77 43 48 3a 20 62 79 74 65 3b 0d 0a 20 20 ┆char; HighCH,LowCH: byte; ┆ 0x3eba0…3ebc0 48 69 67 68 42 79 74 65 2c 4c 6f 77 42 79 74 65 3a 20 62 79 74 65 3b 0d 0a 20 20 62 69 74 6d 6f ┆HighByte,LowByte: byte; bitmo┆ 0x3ebc0…3ebe0 64 65 3a 20 63 68 61 72 3b 0d 0a 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 73 73 69 67 6e 28 70 ┆de: char; BEGIN assign(p┆ 0x3ebe0…3ec00 72 69 6e 74 65 72 2c 27 6c 73 74 3a 27 29 3b 0d 0a 20 20 72 65 73 65 74 28 70 72 69 6e 74 65 72 ┆rinter,'lst:'); reset(printer┆ 0x3ec00…3ec20 (25, 0, 2) 29 3b 0d 0a 20 20 49 46 20 69 6f 72 65 73 3c 3e 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 ┆); IF iores<>0 THEN exit; ┆ 0x3ec20…3ec40 49 46 20 6d 6f 64 65 20 69 6e 20 28 2e 4e 45 43 5f 31 36 62 69 74 2e 29 20 74 68 65 6e 0d 0a 20 ┆IF mode in (.NEC_16bit.) then ┆ 0x3ec40…3ec60 20 62 65 67 69 6e 0d 0a 20 20 20 20 6b 31 3a 3d 32 3b 0d 0a 20 20 20 20 62 69 74 6d 6f 64 65 3a ┆ begin k1:=2; bitmode:┆ 0x3ec60…3ec80 3d 27 49 27 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 27 31 36 20 62 69 74 27 29 3b 0d 0a 20 20 65 ┆='I'; writeln('16 bit'); e┆ 0x3ec80…3eca0 6e 64 20 65 6c 73 65 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6b 31 3a 3d 32 3b 0d 0a 20 20 ┆nd else begin k1:=2; ┆ 0x3eca0…3ecc0 20 20 62 69 74 6d 6f 64 65 3a 3d 27 53 27 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 27 20 38 20 62 ┆ bitmode:='S'; writeln(' 8 b┆ 0x3ecc0…3ece0 69 74 27 29 3b 0d 0a 20 20 65 6e 64 3b 20 20 20 20 0d 0a 20 20 73 6d 61 78 3a 3d 28 53 63 72 5f ┆it'); end; smax:=(Scr_┆ 0x3ece0…3ed00 6d 61 78 79 2b 31 29 2a 6b 31 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 77 72 69 74 65 6c ┆maxy+1)*k1; BEGIN writel┆ 0x3ed00…3ed20 6e 28 70 72 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b 27 54 31 36 27 2b 63 68 72 28 32 37 29 2b ┆n(printer,chr(27)+'T16'+chr(27)+┆ 0x3ed20…3ed40 27 3e 27 2b 63 68 72 28 32 37 29 2b 27 4e 27 29 3b 0d 0a 20 20 20 20 73 74 72 28 73 6d 61 78 3a ┆'>'+chr(27)+'N'); str(smax:┆ 0x3ed40…3ed60 34 2c 67 72 5f 73 74 72 29 3b 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 34 20 44 4f ┆4,gr_str); FOR i:=1 TO 4 DO┆ 0x3ed60…3ed80 20 49 46 20 67 72 5f 73 74 72 28 2e 69 2e 29 3d 27 20 27 20 54 48 45 4e 20 67 72 5f 73 74 72 28 ┆ IF gr_str(.i.)=' ' THEN gr_str(┆ 0x3ed80…3eda0 2e 69 2e 29 3a 3d 27 30 27 3b 0d 0a 20 20 20 20 69 6e 69 74 5f 63 68 3a 3d 63 68 72 28 32 37 29 ┆.i.):='0'; init_ch:=chr(27)┆ 0x3eda0…3edc0 2b 62 69 74 6d 6f 64 65 2b 67 72 5f 73 74 72 3b 20 74 6d 61 78 3a 3d 74 78 74 5f 6d 61 78 78 3b ┆+bitmode+gr_str; tmax:=txt_maxx;┆ 0x3edc0…3ede0 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 74 78 74 5f 6d 61 78 78 ┆ END; FOR i:=0 TO txt_maxx┆ 0x3ede0…3ee00 20 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 ┆ DO BEGIN write(printer┆ 0x3ee00…3ee20 2c 69 6e 69 74 5f 63 68 29 3b 0d 0a 20 20 20 20 46 4f 52 20 6a 3a 3d 53 63 72 5f 6d 61 78 79 20 ┆,init_ch); FOR j:=Scr_maxy ┆ 0x3ee20…3ee40 44 4f 57 4e 54 4f 20 30 20 44 4f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 4c 6f ┆DOWNTO 0 DO begin Lo┆ 0x3ee40…3ee60 77 62 79 74 65 3a 3d 24 30 30 3b 20 48 69 67 68 62 79 74 65 3a 3d 24 30 30 3b 20 0d 0a 20 20 20 ┆wbyte:=$00; Highbyte:=$00; ┆ 0x3ee60…3ee80 20 20 20 63 68 3a 3d 63 68 72 28 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 53 63 72 5f 79 61 64 ┆ ch:=chr(mem(.Scr_segm:Scr_yad┆ 0x3ee80…3eea0 64 72 28 2e 6a 2e 29 2b 53 63 72 5f 78 61 64 64 72 28 2e 28 74 6d 61 78 2d 69 29 2a 38 2e 29 2e ┆dr(.j.)+Scr_xaddr(.(tmax-i)*8.).┆ 0x3eea0…3eec0 29 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 62 69 74 6d 6f 64 65 3d 27 53 27 20 74 68 65 6e 0d 0a ┆)); if bitmode='S' then ┆ 0x3eec0…3eee0 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 ┆ begin write(print┆ 0x3eee0…3ef00 65 72 2c 63 68 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 20 0d 0a 20 20 ┆er,ch,ch); end else ┆ 0x3ef00…3ef20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 49 46 20 43 48 3e 40 30 20 54 48 45 4e ┆ begin IF CH>@0 THEN┆ 0x3ef20…3ef40 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 48 69 67 68 43 ┆ BEGIN HighC┆ 0x3ef40…3ef60 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 66 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 48 ┆H:=ord(ch) and $f0; H┆ 0x3ef60…3ef80 69 67 68 43 48 3a 3d 48 69 67 68 43 48 20 73 68 72 20 34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ighCH:=HighCH shr 4; ┆ 0x3ef80…3efa0 4c 6f 77 43 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 30 66 3b 0d 0a 20 20 20 20 20 20 20 ┆LowCH:=ord(ch) and $0f; ┆ 0x3efa0…3efc0 20 20 20 42 49 54 42 49 54 28 48 69 67 68 43 48 2c 48 69 67 68 42 79 74 65 29 3b 20 42 49 54 42 ┆ BITBIT(HighCH,HighByte); BITB┆ 0x3efc0…3efe0 49 54 28 4c 6f 77 43 48 2c 4c 6f 77 42 79 74 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b ┆IT(LowCH,LowByte); END;┆ 0x3efe0…3f000 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 63 68 72 28 4c 6f 77 42 ┆ write(printer,chr(LowB┆ 0x3f000…3f020 (25, 0, 3) 79 74 65 29 2c 63 68 72 28 48 69 67 68 42 79 74 65 29 2c 63 68 72 28 4c 6f 77 42 79 74 65 29 2c ┆yte),chr(HighByte),chr(LowByte),┆ 0x3f020…3f040 63 68 72 28 48 69 67 68 42 79 74 65 29 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 ┆chr(HighByte)); end; ┆ 0x3f040…3f060 20 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e ┆ if keypress then begin┆ 0x3f060…3f080 0d 0a 20 20 20 20 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 ┆ read(kbd,ch); ┆ 0x3f080…3f0a0 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 65 78 69 74 3b 0d 0a 20 ┆ read(kbd,ch); exit; ┆ 0x3f0a0…3f0c0 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e ┆ end; end; writeln┆ 0x3f0c0…3f0e0 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 70 72 ┆(printer); END; writeln(pr┆ 0x3f0e0…3f100 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b 27 2b 41 27 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 70 72 ┆inter,chr(27)+'+A'); close(pr┆ 0x3f100…3f120 69 6e 74 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 ┆inter); END; PROCEDURE write┆ 0x3f120…3f140 68 65 6c 70 28 6e 6f 2c 77 2c 6c 3a 20 49 4e 54 45 47 45 52 3b 56 41 52 20 73 74 29 3b 0d 0a 56 ┆help(no,w,l: INTEGER;VAR st); V┆ 0x3f140…3f160 41 52 0d 0a 20 20 69 2c 6a 2c 6b 2c 61 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆AR i,j,k,actual : INTEGER; ┆ 0x3f160…3f180 20 73 74 72 09 3a 73 74 72 38 30 3b 0d 0a 20 20 73 74 72 6c 67 74 3a 62 79 74 65 20 41 54 20 73 ┆ str :str80; strlgt:byte AT s┆ 0x3f180…3f1a0 74 72 3b 0d 0a 20 20 63 68 3a 20 43 48 41 52 3b 0d 0a 20 20 77 69 6e 3a 20 57 6e 64 5f 54 59 50 ┆tr; ch: CHAR; win: Wnd_TYP┆ 0x3f1a0…3f1c0 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 63 74 75 61 6c 3a 3d 57 6e 64 5f 61 63 74 75 61 6c 3b ┆E; BEGIN actual:=Wnd_actual;┆ 0x3f1c0…3f1e0 0d 0a 20 20 77 69 6e 3a 3d 57 6e 64 5f 3b 0d 0a 20 20 73 65 6c 65 63 74 76 69 65 77 70 6f 72 74 ┆ win:=Wnd_; selectviewport┆ 0x3f1e0…3f200 28 6e 6f 29 3b 0d 0a 20 20 73 61 76 65 76 69 65 77 70 6f 72 74 28 6e 6f 29 3b 0d 0a 20 20 77 72 ┆(no); saveviewport(no); wr┆ 0x3f200…3f220 69 74 65 66 72 61 6d 65 3b 0d 0a 20 20 6b 3a 3d 30 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 ┆iteframe; k:=0; FOR i:=1 T┆ 0x3f220…3f240 4f 20 6c 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 6c 67 74 3a 3d 6d 65 6d 28 2e 73 ┆O l DO BEGIN strlgt:=mem(.s┆ 0x3f240…3f260 65 67 28 73 74 29 3a 6f 66 73 28 73 74 29 2b 6b 2e 29 3b 0d 0a 20 20 20 20 46 4f 52 20 6a 3a 3d ┆eg(st):ofs(st)+k.); FOR j:=┆ 0x3f260…3f280 31 20 54 4f 20 73 74 72 6c 67 74 20 44 4f 0d 0a 20 20 20 20 20 20 73 74 72 28 2e 6a 2e 29 3a 3d ┆1 TO strlgt DO str(.j.):=┆ 0x3f280…3f2a0 43 48 41 52 28 6d 65 6d 28 2e 73 65 67 28 73 74 29 3a 6f 66 73 28 73 74 29 2b 6b 2b 6a 2e 29 29 ┆CHAR(mem(.seg(st):ofs(st)+k+j.))┆ 0x3f2a0…3f2c0 3b 0d 0a 20 20 20 20 6b 3a 3d 6b 2b 77 2b 31 3b 0d 0a 20 20 20 20 64 72 61 77 73 74 72 28 30 2c ┆; k:=k+w+1; drawstr(0,┆ 0x3f2c0…3f2e0 69 2d 31 2c 73 74 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 52 45 50 45 41 54 20 72 65 61 64 ┆i-1,str); END; REPEAT read┆ 0x3f2e0…3f300 28 6b 62 64 2c 63 68 29 20 55 4e 54 49 4c 20 63 68 20 69 6e 20 28 2e 40 31 33 2c 40 33 32 2e 29 ┆(kbd,ch) UNTIL ch in (.@13,@32.)┆ 0x3f300…3f320 3b 0d 0a 20 20 6c 6f 61 64 76 69 65 77 70 6f 72 74 28 6e 6f 2c 30 2c 30 29 3b 0d 0a 20 20 57 6e ┆; loadviewport(no,0,0); Wn┆ 0x3f320…3f340 64 5f 61 63 74 75 61 6c 3a 3d 61 63 74 75 61 6c 3b 0d 0a 20 20 57 6e 64 5f 3a 3d 77 69 6e 3b 0d ┆d_actual:=actual; Wnd_:=win; ┆ 0x3f340…3f360 0a 45 4e 44 3b 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 61 6b 73 65 73 79 73 74 65 6d 65 74 ┆ END; æUdskriver aksesystemet┆ 0x3f360…3f380 20 74 69 6c 20 65 6e 20 78 2c 79 20 67 72 61 66 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ til en x,y graf: ┆ 0x3f380…3f3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 7b 78 64 65 6e 73 2f 79 64 65 ┆ å æxdens/yde┆ 0x3f3a0…3f3c0 6e 73 3a 20 20 65 74 20 74 61 6c 20 6d 65 6c 6c 65 6d 20 30 20 6f 67 20 39 2c 20 64 65 72 20 61 ┆ns: et tal mellem 0 og 9, der a┆ 0x3f3c0…3f3e0 6e 67 69 76 65 72 20 68 76 6f 72 6d 61 6e 67 65 20 6d 65 6c 6c 65 6d 72 75 6d 7d 0d 0a 7b 20 20 ┆ngiver hvormange mellemrumå æ ┆ 0x3f3e0…3f400 20 20 20 20 20 20 20 20 20 20 20 20 64 65 72 20 65 72 20 6d 65 6c 6c 65 6d 20 75 64 73 6b 72 69 ┆ der er mellem udskri┆ 0x3f400…3f420 (25, 0, 4) 76 6e 69 6e 67 65 6e 20 61 66 20 76 91 72 64 69 65 72 20 70 86 20 68 65 6e 68 6f 6c 64 73 76 69 ┆vningen af v rdier p henholdsvi┆ 0x3f420…3f440 73 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 20 6f 67 20 79 2d 61 6b 73 65 6e 20 ┆så æ x og y-aksen ┆ 0x3f440…3f460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x3f460…3f480 20 20 20 20 20 20 20 20 7d 0d 0a 7b 67 69 74 74 65 72 3a 20 20 54 72 75 65 3a 20 20 67 69 74 74 ┆ å ægitter: True: gitt┆ 0x3f480…3f4a0 65 72 20 74 65 67 6e 65 73 20 20 20 46 61 6c 73 65 3a 20 20 67 69 74 74 65 72 20 74 65 67 6e 65 ┆er tegnes False: gitter tegne┆ 0x3f4a0…3f4c0 73 20 69 6b 6b 65 20 20 20 20 20 20 20 20 20 7d 0d 0a 7b 45 6b 73 70 6f 78 78 2f 79 79 3a 20 27 ┆s ikke å æEkspoxx/yy: '┆ 0x3f4c0…3f4e0 4a 27 20 3a 20 20 78 2f 79 2d 61 6b 73 65 20 76 91 72 64 69 65 72 20 75 64 73 6b 72 69 76 65 73 ┆J' : x/y-akse v rdier udskrives┆ 0x3f4e0…3f500 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 7d 0d 0a 7b 20 20 20 20 20 20 ┆ eksponentielt å æ ┆ 0x3f500…3f520 20 20 20 20 20 20 27 4e 27 20 3a 20 20 76 91 72 64 69 65 72 20 75 64 73 6b 72 69 76 65 73 20 69 ┆ 'N' : v rdier udskrives i┆ 0x3f520…3f540 6b 6b 65 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a ┆kke eksponentielt å ┆ 0x3f540…3f560 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 77 61 78 69 73 28 20 78 64 65 6e 73 2c 20 79 ┆ PROCEDURE drawaxis( xdens, y┆ 0x3f560…3f580 64 65 6e 73 3a 20 49 4e 54 45 47 45 52 3b 20 67 69 74 74 65 72 3a 20 62 6f 6f 6c 65 61 6e 3b 20 ┆dens: INTEGER; gitter: boolean; ┆ 0x3f580…3f5a0 0d 0a 45 6b 73 70 6f 78 78 2c 20 45 6b 73 70 6f 79 79 20 3a 20 73 74 72 31 29 3b 0d 0a 56 41 52 ┆ Ekspoxx, Ekspoyy : str1); VAR┆ 0x3f5a0…3f5c0 0d 0a 20 20 78 6b 30 2c 20 79 6b 30 2c 20 78 6b 31 2c 20 79 6b 31 2c 20 4e 64 69 66 66 09 3a 20 ┆ xk0, yk0, xk1, yk1, Ndiff : ┆ 0x3f5c0…3f5e0 49 4e 54 45 47 45 52 3b 0d 0a 20 20 65 6b 73 70 6f 78 2c 20 65 6b 73 70 6f 79 2c 6a 2c 69 2c 20 ┆INTEGER; ekspox, ekspoy,j,i, ┆ 0x3f5e0…3f600 79 73 2c 20 78 73 2c 20 64 65 6c 74 61 2c 20 6e 70 6f 69 6e 74 73 09 3a 20 49 4e 54 45 47 45 52 ┆ys, xs, delta, npoints : INTEGER┆ 0x3f600…3f620 3b 0d 0a 20 20 64 69 66 66 2c 20 6e 75 6d 62 65 72 2c 20 73 2c 20 66 72 61 63 74 3a 20 52 45 41 ┆; diff, number, s, fract: REA┆ 0x3f620…3f640 4c 3b 0d 0a 20 20 73 74 3a 20 73 74 72 38 30 3b 0d 0a 0d 0a 7b 4f 6d 66 6f 72 6d 65 72 20 65 74 ┆L; st: str80; æOmformer et┆ 0x3f640…3f660 20 61 6c 6d 69 6e 64 65 6c 69 67 74 20 74 61 6c 20 28 78 31 29 2c 20 76 65 64 20 68 6a 91 6c 70 ┆ almindeligt tal (x1), ved hj lp┆ 0x3f660…3f680 20 61 66 20 65 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 20 28 65 78 70 6f 29 7d ┆ af en opgiven eksponent (expo)å┆ 0x3f680…3f6a0 0d 0a 7b 74 69 6c 20 65 6e 20 73 74 72 69 6e 67 2c 20 68 76 6f 72 20 74 61 6c 6c 65 74 20 61 6e ┆ ætil en string, hvor tallet an┆ 0x3f6a0…3f6c0 67 69 76 65 73 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆gives eksponentielt ┆ 0x3f6c0…3f6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 46 55 4e 43 54 49 4f 4e 20 73 ┆ å FUNCTION s┆ 0x3f6e0…3f700 74 72 69 6e 67 6e 75 6d 62 65 72 28 78 31 3a 20 52 45 41 4c 3b 65 6b 73 70 6f 09 3a 20 49 4e 54 ┆tringnumber(x1: REAL;ekspo : INT┆ 0x3f700…3f720 45 47 45 52 29 3a 20 73 74 72 38 30 3b 0d 0a 56 41 52 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 ┆EGER): str80; VAR s: str80; BE┆ 0x3f720…3f740 47 49 4e 0d 0a 20 20 73 74 72 28 78 31 2a 65 78 70 28 2d 65 6b 73 70 6f 2a 6c 6e 28 31 30 2e 30 ┆GIN str(x1*exp(-ekspo*ln(10.0┆ 0x3f740…3f760 29 29 3a 35 3a 32 2c 73 29 3b 0d 0a 20 20 73 74 72 69 6e 67 6e 75 6d 62 65 72 3a 3d 73 3b 0d 0a ┆)):5:2,s); stringnumber:=s; ┆ 0x3f760…3f780 45 4e 44 3b 0d 0a 0d 0a 7b 42 65 72 65 67 6e 65 72 20 68 76 6f 72 73 74 6f 72 20 65 6b 73 70 6f ┆END; æBeregner hvorstor ekspo┆ 0x3f780…3f7a0 6e 65 6e 74 65 6e 20 73 6b 61 6c 20 76 91 72 65 2c 20 68 76 69 73 20 64 65 74 20 73 74 9b 72 73 ┆nenten skal v re, hvis det st rs┆ 0x3f7a0…3f7c0 74 65 20 74 61 6c 20 73 6b 61 6c 20 76 91 72 65 7d 0d 0a 7b 6d 69 6e 64 72 65 20 65 6e 64 20 31 ┆te tal skal v reå æmindre end 1┆ 0x3f7c0…3f7e0 2e 30 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆.00 ┆ 0x3f7e0…3f800 20 20 20 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 20 0d 0a 0d ┆ å ┆ 0x3f800…3f820 (25, 0, 5) 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 47 65 74 45 78 70 6f 6e 65 6e 74 28 58 31 3a 52 45 41 4c 29 ┆ FUNCTION GetExponent(X1:REAL)┆ 0x3f820…3f840 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 47 65 74 45 78 70 6f 6e 65 6e 74 3a ┆:INTEGER; BEGIN GetExponent:┆ 0x3f840…3f860 3d 30 3b 0d 0a 20 20 49 46 20 58 31 3c 3e 30 2e 30 20 54 48 45 4e 0d 0a 20 20 20 20 49 46 20 61 ┆=0; IF X1<>0.0 THEN IF a┆ 0x3f860…3f880 62 73 28 58 31 29 3e 3d 31 2e 30 20 54 48 45 4e 20 47 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 74 72 ┆bs(X1)>=1.0 THEN GetExponent:=tr┆ 0x3f880…3f8a0 75 6e 63 28 6c 6e 28 61 62 73 28 58 31 29 29 2f 6c 6e 28 31 30 2e 30 29 29 0d 0a 20 20 20 20 45 ┆unc(ln(abs(X1))/ln(10.0)) E┆ 0x3f8a0…3f8c0 4c 53 45 20 47 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 2d 74 72 75 6e 63 28 61 62 73 28 6c 6e 28 61 ┆LSE GetExponent:=-trunc(abs(ln(a┆ 0x3f8c0…3f8e0 62 73 28 58 31 29 29 29 2f 6c 6e 28 31 30 2e 30 29 2b 31 2e 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d ┆bs(X1)))/ln(10.0)+1.0); END; ┆ 0x3f8e0…3f900 0a 7b 55 64 73 6b 72 69 76 65 72 20 68 76 6f 72 73 74 6f 72 20 65 6b 73 70 6f 6e 65 6e 74 65 6e ┆ æUdskriver hvorstor eksponenten┆ 0x3f900…3f920 20 65 72 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 45 78 70 6f 6e 65 6e 74 28 78 ┆ erå PROCEDURE DrawExponent(x┆ 0x3f920…3f940 31 2c 79 31 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 49 4e 54 45 47 45 52 3b 73 3a 20 73 74 72 38 ┆1,y1,MaxExponent:INTEGER;s: str8┆ 0x3f940…3f960 30 29 3b 0d 0a 56 41 52 20 69 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e ┆0); VAR i:INTEGER; BEGIN Wn┆ 0x3f960…3f980 64 5f 64 72 61 77 74 65 78 74 28 78 31 2c 79 31 2c 73 29 3b 0d 0a 20 20 69 3a 3d 6c 65 6e 28 73 ┆d_drawtext(x1,y1,s); i:=len(s┆ 0x3f980…3f9a0 29 3b 0d 0a 20 20 73 74 72 28 4d 61 78 45 78 70 6f 6e 65 6e 74 2c 53 29 3b 0d 0a 20 20 57 6e 64 ┆); str(MaxExponent,S); Wnd┆ 0x3f9a0…3f9c0 5f 64 72 61 77 74 65 78 74 28 78 31 2b 69 2a 38 2c 20 79 31 2b 32 2c 20 53 29 3b 20 20 20 20 20 ┆_drawtext(x1+i*8, y1+2, S); ┆ 0x3f9c0…3f9e0 20 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 65 6e 20 73 74 72 69 6e ┆ END; æUdskriver en strin┆ 0x3f9e0…3fa00 67 20 61 66 20 74 61 6c 20 70 86 20 65 6e 20 67 69 76 65 6e 20 70 6f 73 69 74 69 6f 6e 2c 20 6d ┆g af tal p en given position, m┆ 0x3fa00…3fa20 65 64 20 65 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 20 20 20 7d 0d 0a 7b 78 31 ┆ed en opgiven eksponent å æx1┆ 0x3fa20…3fa40 20 6f 67 20 79 31 3a 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 6b 6f 6f 72 64 69 6e 61 74 65 72 6e ┆ og y1: udskrivningskoordinatern┆ 0x3fa40…3fa60 65 20 20 20 20 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 20 65 78 73 70 6f 6e 65 6e 74 65 6e 20 64 65 ┆e MaxExponent: exsponenten de┆ 0x3fa60…3fa80 72 20 61 6e 76 65 6e 64 65 73 7d 0d 0a 7b 76 65 64 20 75 64 73 6b 72 69 76 6e 69 6e 67 65 6e 20 ┆r anvendeså æved udskrivningen ┆ 0x3fa80…3faa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x3faa0…3fac0 20 20 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 0d 0a 0d 0a 0d ┆ å ┆ 0x3fac0…3fae0 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 4e 75 6d 28 78 31 2c 79 31 2c 4d 61 78 45 78 70 6f ┆ PROCEDURE DrawNum(x1,y1,MaxExpo┆ 0x3fae0…3fb00 6e 65 6e 74 3a 49 4e 54 45 47 45 52 3b 4e 75 6d 62 65 72 3a 52 45 41 4c 29 3b 0d 0a 56 41 52 20 ┆nent:INTEGER;Number:REAL); VAR ┆ 0x3fb00…3fb20 69 3a 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 53 74 72 4e 75 6d 62 65 72 3a 20 73 74 72 38 30 ┆i:INTEGER; StrNumber: str80┆ 0x3fb20…3fb40 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 53 74 72 4e 75 6d 62 65 72 3a 3d 53 74 72 69 6e 67 4e 75 6d ┆; BEGIN StrNumber:=StringNum┆ 0x3fb40…3fb60 62 65 72 28 4e 75 6d 62 65 72 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 29 3b 0d 0a 20 20 57 6e 64 5f ┆ber(Number,MaxExponent); Wnd_┆ 0x3fb60…3fb80 44 72 61 77 74 65 78 74 28 78 31 2c 79 31 2c 53 74 72 4e 75 6d 62 65 72 29 3b 0d 0a 45 4e 44 3b ┆Drawtext(x1,y1,StrNumber); END;┆ 0x3fb80…3fba0 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 7b 78 64 65 6e 73 20 6f 67 20 79 64 65 6e 73 ┆ BEGIN æxdens og ydens┆ 0x3fba0…3fbc0 20 6f 6d 64 61 6e 6e 65 73 20 73 86 20 64 65 20 70 61 73 73 65 20 74 69 6c 20 70 72 6f 67 72 61 ┆ omdannes s de passe til progra┆ 0x3fbc0…3fbe0 6d 6d 65 74 7d 0d 0a 20 20 0d 0a 20 20 78 64 65 6e 73 20 3a 3d 20 31 30 20 2d 20 78 64 65 6e 73 ┆mmetå xdens := 10 - xdens┆ 0x3fbe0…3fc00 3b 0d 0a 20 20 79 64 65 6e 73 20 3a 3d 20 31 30 20 2d 20 79 64 65 6e 73 3b 0d 0a 20 20 0d 0a 20 ┆; ydens := 10 - ydens; ┆ 0x3fc00…3fc20 (25, 1, 1) 20 63 6c 65 61 72 3b 0d 0a 20 20 0d 0a 20 20 7b 74 65 67 6e 65 72 20 6b 61 73 73 65 20 72 75 6e ┆ clear; ætegner kasse run┆ 0x3fc20…3fc40 64 74 20 6f 6d 20 67 72 61 66 65 6e 7d 0d 0a 20 20 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b 20 ┆dt om grafenå drawframe; ┆ 0x3fc40…3fc60 20 20 0d 0a 20 20 78 6b 30 3a 3d 36 2a 38 2b 32 3b 0d 0a 20 20 79 6b 30 3a 3d 31 32 3b 0d 0a 20 ┆ xk0:=6*8+2; yk0:=12; ┆ 0x3fc60…3fc80 20 78 6b 31 3a 3d 57 6e 64 5f 2e 6d 61 78 78 2d 32 34 3b 0d 0a 20 20 79 6b 31 3a 3d 57 6e 64 5f ┆ xk1:=Wnd_.maxx-24; yk1:=Wnd_┆ 0x3fc80…3fca0 2e 6d 61 78 79 2d 38 3b 0d 0a 20 0d 0a 20 20 7b 74 65 67 6e 65 72 20 61 6b 73 65 72 6e 65 2c 69 ┆.maxy-8; ætegner akserne,i┆ 0x3fca0…3fcc0 6b 6b 65 20 64 65 6c 73 74 72 65 67 65 72 6e 65 20 7d 0d 0a 20 0d 0a 20 20 57 6e 64 5f 64 72 61 ┆kke delstregerne å Wnd_dra┆ 0x3fcc0…3fce0 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2c 78 6b 30 2c 79 6b 31 29 3b 20 20 20 20 0d 0a 20 20 57 ┆wline(xk0,yk0,xk0,yk1); W┆ 0x3fce0…3fd00 6e 64 5f 64 72 61 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2c 78 6b 31 2c 79 6b 30 29 3b 20 20 20 ┆nd_drawline(xk0,yk0,xk1,yk0); ┆ 0x3fd00…3fd20 20 0d 0a 20 20 57 6e 64 5f 64 72 61 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2c 78 6b 30 2d 34 2c ┆ Wnd_drawline(xk0,yk0,xk0-4,┆ 0x3fd20…3fd40 79 6b 30 29 3b 20 20 0d 0a 20 20 57 6e 64 5f 64 72 61 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2d ┆yk0); Wnd_drawline(xk0,yk0-┆ 0x3fd40…3fd60 34 2c 78 6b 30 2c 79 6b 30 29 3b 20 20 0d 0a 20 20 64 65 6c 74 61 3a 3d 57 6e 64 5f 2e 6d 61 78 ┆4,xk0,yk0); delta:=Wnd_.max┆ 0x3fd60…3fd80 79 2d 79 6b 30 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 65 6c 74 61 20 44 49 56 20 38 2b 31 ┆y-yk0; npoints:=delta DIV 8+1┆ 0x3fd80…3fda0 3b 20 20 20 20 20 20 20 20 20 20 20 7b 61 6e 74 61 6c 20 64 65 6c 73 74 72 65 67 65 72 20 70 86 ┆; æantal delstreger p ┆ 0x3fda0…3fdc0 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 2d 28 6e 70 6f 69 6e ┆ y-aksenå ndiff:=delta-(npoin┆ 0x3fdc0…3fde0 74 73 2a 38 29 3b 0d 0a 0d 0a 20 20 7b 44 65 6e 20 6d 61 6b 73 69 6d 61 6c 65 20 65 6b 73 70 6f ┆ts*8); æDen maksimale ekspo┆ 0x3fde0…3fe00 6e 74 20 62 65 72 65 67 6e 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆nt beregnes ┆ 0x3fe00…3fe20 20 20 20 20 7d 0d 0a 20 20 7b 48 76 69 73 20 65 6b 73 70 6f 79 20 3a 3d 20 30 20 62 6c 69 76 65 ┆ å æHvis ekspoy := 0 blive┆ 0x3fe20…3fe40 72 20 74 61 6c 65 6e 65 20 75 64 73 6b 72 65 76 65 74 20 75 64 65 6e 20 65 6b 73 70 6f 6e 65 6e ┆r talene udskrevet uden eksponen┆ 0x3fe40…3fe60 74 7d 0d 0a 20 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 79 79 20 3d 20 27 4a 27 20 74 68 65 6e 20 ┆tå If ekspoyy = 'J' then ┆ 0x3fe60…3fe80 0d 0a 20 20 20 0d 0a 20 20 57 49 54 48 20 77 6c 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 ┆ WITH wld_ DO BEGIN ┆ 0x3fe80…3fea0 20 49 46 20 61 62 73 28 79 72 61 6e 67 65 2b 79 31 29 3e 61 62 73 28 79 31 29 20 54 48 45 4e 20 ┆ IF abs(yrange+y1)>abs(y1) THEN ┆ 0x3fea0…3fec0 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 79 72 61 6e 67 65 2b 79 31 29 0d 0a ┆ekspoy:=getexponent(yrange+y1) ┆ 0x3fec0…3fee0 20 20 20 20 45 4c 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 79 31 29 ┆ ELSE ekspoy:=getexponent(y1)┆ 0x3fee0…3ff00 3b 0d 0a 20 20 45 4e 44 0d 0a 20 20 0d 0a 20 20 45 6c 73 65 20 65 6b 73 70 6f 79 20 3a 3d 20 30 ┆; END Else ekspoy := 0┆ 0x3ff00…3ff20 3b 0d 0a 20 20 20 0d 0a 20 20 7b 75 64 73 6b 72 69 76 65 72 20 79 2a 31 30 20 70 86 20 79 2d 61 ┆; æudskriver y*10 p y-a┆ 0x3ff20…3ff40 6b 73 65 6e 7d 0d 0a 20 20 0d 0a 20 20 49 46 20 28 79 64 65 6e 73 3e 30 29 20 61 6e 64 20 28 65 ┆ksenå IF (ydens>0) and (e┆ 0x3ff40…3ff60 6b 73 70 6f 79 20 3c 3e 20 30 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 61 77 65 78 70 6f 6e ┆kspoy <> 0) THEN drawexpon┆ 0x3ff60…3ff80 65 6e 74 28 30 2c 57 6e 64 5f 2e 6d 61 78 79 2d 31 30 2c 65 6b 73 70 6f 79 2c 27 79 2a 31 30 27 ┆ent(0,Wnd_.maxy-10,ekspoy,'y*10'┆ 0x3ff80…3ffa0 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆); ┆ 0x3ffa0…3ffc0 20 20 20 20 20 20 20 20 0d 0a 20 20 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 6f 69 6e 74 73 ┆ Fract:=NDiff/NPoints┆ 0x3ffc0…3ffe0 3b 0d 0a 20 20 73 3a 3d 2d 46 72 61 63 74 3b 0d 0a 20 20 79 73 3a 3d 79 6b 30 2d 38 3b 0d 0a 20 ┆; s:=-Fract; ys:=yk0-8; ┆ 0x3ffe0…40000 20 44 69 66 66 3a 3d 28 77 6c 64 5f 2e 79 72 61 6e 67 65 29 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 ┆ Diff:=(wld_.yrange)/NPoints; ┆ 0x40000…40020 (25, 1, 2) 20 0d 0a 20 20 7b 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 79 2d 61 6b 73 65 6e 20 74 65 67 6e ┆ ædelstreger p y-aksen tegn┆ 0x40020…40040 65 73 7d 0d 0a 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 4e 50 6f 69 6e 74 73 2d 31 ┆eså FOR i:=0 TO NPoints-1┆ 0x40040…40060 20 44 4f 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 79 73 3a ┆ DO BEGIN ys:┆ 0x40060…40080 3d 79 73 2b 38 3b 0d 0a 20 20 20 20 20 4e 75 6d 62 65 72 3a 3d 77 6c 64 5f 2e 59 31 2b 69 2a 44 ┆=ys+8; Number:=wld_.Y1+i*D┆ 0x40080…400a0 69 66 66 3b 0d 0a 20 20 0d 0a 20 20 20 20 20 7b 54 65 67 6e 65 72 20 64 65 6c 73 74 72 65 67 65 ┆iff; æTegner delstrege┆ 0x400a0…400c0 72 20 70 86 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 0d 0a 20 20 20 20 20 49 46 20 79 64 65 6e 73 ┆r p y-aksenå IF ydens┆ 0x400c0…400e0 3e 30 20 54 48 45 4e 20 57 6e 64 5f 44 72 61 77 4c 69 6e 65 28 78 6b 30 2c 79 73 2c 78 6b 30 2d ┆>0 THEN Wnd_DrawLine(xk0,ys,xk0-┆ 0x400e0…40100 34 2c 79 73 29 3b 0d 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 ┆4,ys); ┆ 0x40100…40120 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 49 46 20 28 79 64 65 6e 73 3e 30 29 20 41 4e 44 20 ┆ IF (ydens>0) AND ┆ 0x40120…40140 28 69 20 4d 4f 44 20 28 31 30 2d 59 44 65 6e 73 29 3d 30 29 20 54 48 45 4e 20 42 45 47 49 4e 0d ┆(i MOD (10-YDens)=0) THEN BEGIN ┆ 0x40140…40160 0a 20 20 20 20 20 20 20 6a 3a 3d 78 6b 30 3b 0d 0a 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ┆ j:=xk0; ┆ 0x40160…40180 20 7b 75 64 73 6b 72 69 76 6e 69 6e 67 20 61 66 20 67 69 74 74 65 72 7d 0d 0a 20 20 20 20 20 20 ┆ æudskrivning af gitterå ┆ 0x40180…401a0 20 0d 0a 20 20 20 20 20 20 20 49 46 20 67 69 74 74 65 72 20 54 48 45 4e 20 20 20 20 20 20 20 20 ┆ IF gitter THEN ┆ 0x401a0…401c0 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 57 48 49 4c 45 20 6a 3c 3d 78 6b 31 ┆ WHILE j<=xk1┆ 0x401c0…401e0 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 57 6e 64 5f 77 72 69 74 65 64 6f 74 ┆ DO BEGIN Wnd_writedot┆ 0x401e0…40200 28 6a 2c 79 73 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆(j,ys); j:=j+3; END; ┆ 0x40200…40220 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 7b 75 64 73 6b 72 69 76 65 72 20 76 91 72 64 69 65 ┆ æudskriver v rdie┆ 0x40220…40240 72 20 66 6f 72 20 79 2d 61 6b 73 65 6e 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 7b 79 ┆r for y-aksen å æy┆ 0x40240…40260 73 3a 20 79 2d 76 91 72 64 69 65 6e 20 66 6f 72 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 73 74 65 ┆s: y-v rdien for udskrivningsste┆ 0x40260…40280 64 65 74 7d 0d 0a 20 20 20 20 20 20 20 7b 65 6b 73 70 6f 79 3a 20 65 6b 73 70 6f 6e 65 6e 74 65 ┆detå æekspoy: eksponente┆ 0x40280…402a0 6e 20 64 65 72 20 61 6e 76 65 6e 64 65 73 20 20 20 20 7d 20 20 0d 0a 20 20 20 20 20 20 20 7b 6e ┆n der anvendes å æn┆ 0x402a0…402c0 75 6d 62 65 72 3a 20 44 65 74 20 74 61 6c 2c 20 64 65 72 20 73 6b 72 69 76 65 73 20 20 20 20 20 ┆umber: Det tal, der skrives ┆ 0x402c0…402e0 20 20 20 7d 20 0d 0a 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 49 46 20 28 79 73 3c ┆ å IF (ys<┆ 0x402e0…40300 57 6e 64 5f 2e 6d 61 78 79 2d 32 30 29 20 54 48 45 4e 20 20 20 20 20 20 20 44 72 61 77 4e 75 6d ┆Wnd_.maxy-20) THEN DrawNum┆ 0x40300…40320 28 30 2c 79 73 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 3b 20 20 0d 0a 20 20 20 20 20 20 20 ┆(0,ys,EkspoY,Number); ┆ 0x40320…40340 45 4e 44 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 64 65 6c 74 61 3a 3d 57 6e 64 5f 2e 6d 61 78 ┆END; END; delta:=Wnd_.max┆ 0x40340…40360 78 2d 78 6b 30 2d 32 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 65 6c 74 61 20 44 49 56 20 34 ┆x-xk0-2; npoints:=delta DIV 4┆ 0x40360…40380 30 2b 31 3b 0d 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 2d 28 6e 70 6f 69 6e 74 73 2a 34 30 ┆0+1; ndiff:=delta-(npoints*40┆ 0x40380…403a0 29 3b 0d 0a 20 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 78 78 20 3d 20 27 4a 27 20 74 68 65 6e 20 ┆); If ekspoxx = 'J' then ┆ 0x403a0…403c0 0d 0a 20 20 0d 0a 20 20 57 49 54 48 20 77 6c 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆ WITH wld_ DO BEGIN ┆ 0x403c0…403e0 49 46 20 61 62 73 28 78 72 61 6e 67 65 2b 78 31 29 3e 61 62 73 28 78 31 29 20 54 48 45 4e 20 65 ┆IF abs(xrange+x1)>abs(x1) THEN e┆ 0x403e0…40400 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 72 61 6e 67 65 2b 78 31 29 0d 0a 20 ┆kspoy:=getexponent(xrange+x1) ┆ 0x40400…40420 (25, 1, 3) 20 20 20 45 4c 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 31 29 3b ┆ ELSE ekspoy:=getexponent(x1);┆ 0x40420…40440 0d 0a 20 20 45 4e 44 0d 0a 20 20 0d 0a 20 20 65 6c 73 65 20 65 6b 73 70 6f 79 20 3a 3d 20 30 3b ┆ END else ekspoy := 0;┆ 0x40440…40460 0d 0a 20 20 0d 0a 20 20 49 46 20 28 78 64 65 6e 73 3e 30 29 20 61 6e 64 20 28 65 6b 73 70 6f 79 ┆ IF (xdens>0) and (ekspoy┆ 0x40460…40480 20 3c 3e 20 30 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 61 77 65 78 70 6f 6e 65 6e 74 28 57 ┆ <> 0) THEN drawexponent(W┆ 0x40480…404a0 6e 64 5f 2e 6d 61 78 78 2d 34 38 2c 30 2c 65 6b 73 70 6f 79 2c 27 78 2a 31 30 27 29 3b 0d 0a 20 ┆nd_.maxx-48,0,ekspoy,'x*10'); ┆ 0x404a0…404c0 20 0d 0a 20 20 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 73 3a ┆ Fract:=NDiff/NPoints; s:┆ 0x404c0…404e0 3d 2d 46 72 61 63 74 3b 0d 0a 20 20 79 73 3a 3d 78 6b 30 2d 34 30 3b 0d 0a 20 20 44 69 66 66 3a ┆=-Fract; ys:=xk0-40; Diff:┆ 0x404e0…40500 3d 28 77 6c 64 5f 2e 78 72 61 6e 67 65 29 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 46 4f 52 20 69 ┆=(wld_.xrange)/NPoints; FOR i┆ 0x40500…40520 3a 3d 30 20 54 4f 20 4e 50 6f 69 6e 74 73 2d 31 20 44 4f 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 ┆:=0 TO NPoints-1 DO BEGIN ┆ 0x40520…40540 20 20 20 79 73 3a 3d 79 73 2b 34 30 3b 0d 0a 20 20 20 20 4e 75 6d 62 65 72 3a 3d 77 6c 64 5f 2e ┆ ys:=ys+40; Number:=wld_.┆ 0x40540…40560 78 31 2b 69 2a 44 69 66 66 3b 0d 0a 20 20 20 20 49 46 20 78 64 65 6e 73 3e 30 20 54 48 45 4e 20 ┆x1+i*Diff; IF xdens>0 THEN ┆ 0x40560…40580 57 6e 64 5f 44 72 61 77 4c 69 6e 65 28 79 73 2c 79 6b 30 2c 79 73 2c 79 6b 30 2d 34 29 3b 0d 0a ┆Wnd_DrawLine(ys,yk0,ys,yk0-4); ┆ 0x40580…405a0 20 20 20 20 49 46 20 28 78 64 65 6e 73 3e 30 29 20 41 4e 44 20 28 69 20 4d 4f 44 20 28 31 30 2d ┆ IF (xdens>0) AND (i MOD (10-┆ 0x405a0…405c0 78 44 65 6e 73 29 3d 30 29 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 6a 3a 3d 79 ┆xDens)=0) THEN BEGIN j:=y┆ 0x405c0…405e0 6b 30 3b 0d 0a 20 20 20 20 20 20 49 46 20 67 69 74 74 65 72 20 54 48 45 4e 0d 0a 20 20 20 20 20 ┆k0; IF gitter THEN ┆ 0x405e0…40600 20 20 57 48 49 4c 45 20 6a 3c 3d 79 6b 31 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 ┆ WHILE j<=yk1 DO BEGIN ┆ 0x40600…40620 20 57 6e 64 5f 77 72 69 74 65 64 6f 74 28 79 73 2c 6a 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 ┆ Wnd_writedot(ys,j); j:=j+3; ┆ 0x40620…40640 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 79 73 3c 57 6e 64 5f 2e 6d 61 78 ┆ END; IF (ys<Wnd_.max┆ 0x40640…40660 78 2d 34 38 29 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 44 72 61 77 4e 75 6d ┆x-48)THEN BEGIN DrawNum┆ 0x40660…40680 28 79 73 2d 34 30 2c 30 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 3b 0d 0a 20 20 20 20 20 20 ┆(ys-40,0,EkspoY,Number); ┆ 0x40680…406a0 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 57 49 54 48 20 ┆END; END; END; WITH ┆ 0x406a0…406c0 57 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 6b 30 3b 0d 0a ┆Wnd_ DO BEGIN x1:=x1+xk0; ┆ 0x406c0…406e0 20 20 20 20 6d 61 78 78 3a 3d 6d 61 78 78 2d 78 6b 30 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b ┆ maxx:=maxx-xk0; y1:=y1+┆ 0x406e0…40700 79 6b 30 3b 0d 0a 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 79 6b 30 3b 0d 0a 20 20 45 4e 44 ┆yk0; maxy:=maxy-yk0; END┆ 0x40700…40720 3b 0d 0a 45 4e 44 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆; END; ┆ 0x40720…40740 00 00 00 00 00 00 00 00 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…] 0x40780…407a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x3…] 0x40800…40820 (25, 1, 4) 28 2a 47 53 56 2d 43 50 49 2a 29 0d 0a 43 4f 4e 53 54 0d 0a 20 20 62 6c 61 63 6b 20 09 3d 20 30 ┆(*GSV-CPI*) CONST black = 0┆ 0x40820…40840 3b 0d 0a 20 20 77 68 69 74 65 20 09 3d 20 24 46 46 3b 0d 0a 20 20 74 72 61 6e 73 70 09 3d 20 30 ┆; white = $FF; transp = 0┆ 0x40840…40860 31 3b 0d 0a 20 20 57 6e 64 5f 6d 61 78 20 09 3d 20 35 3b 0d 0a 20 20 63 68 61 72 66 69 6c 6e 61 ┆1; Wnd_max = 5; charfilna┆ 0x40860…40880 6d 65 20 09 3d 20 27 38 78 38 66 6f 6e 74 2e 63 68 72 27 3b 0d 0a 20 20 74 78 74 5f 6d 6f 64 65 ┆me = '8x8font.chr'; txt_mode┆ 0x40880…408a0 09 3a 20 42 4f 4f 4c 45 41 4e 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 0d 0a 28 2a 20 20 46 6f ┆ : BOOLEAN = true; (* Fo┆ 0x408a0…408c0 72 65 2d 20 61 6e 64 20 62 61 63 6b 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 2a 29 0d 0a 28 2a 20 20 ┆re- and backgroundcolors*) (* ┆ 0x408c0…408e0 20 20 4c 69 67 68 74 54 78 74 20 6f 6e 6c 79 20 77 6f 72 6b 73 20 46 4f 52 20 66 6f 72 65 67 72 ┆ LightTxt only works FOR foregr┆ 0x408e0…40900 6f 75 6e 64 63 6f 6c 6f 72 73 2a 29 0d 0a 28 2a 20 20 20 20 42 6c 69 6e 6b 54 78 74 20 6f 6e 6c ┆oundcolors*) (* BlinkTxt onl┆ 0x40900…40920 79 20 77 6f 72 6b 73 20 46 4f 52 20 62 61 63 6b 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 20 2a 29 0d ┆y works FOR backgroundcolors *) ┆ 0x40920…40940 0a 20 20 62 6c 61 63 6b 54 78 74 09 3d 20 30 3b 20 20 62 6c 75 65 54 78 74 09 3d 20 31 3b 0d 0a ┆ blackTxt = 0; blueTxt = 1; ┆ 0x40940…40960 20 20 67 72 65 65 6e 74 78 74 09 3d 20 32 3b 20 20 63 79 61 6e 74 78 74 09 3d 20 33 3b 0d 0a 20 ┆ greentxt = 2; cyantxt = 3; ┆ 0x40960…40980 20 72 65 64 54 78 74 09 3d 20 34 3b 20 20 6d 61 67 65 6e 74 61 74 78 74 3d 20 35 3b 0d 0a 20 20 ┆ redTxt = 4; magentatxt= 5; ┆ 0x40980…409a0 79 65 6c 6c 6f 77 74 78 74 09 3d 20 36 3b 20 20 77 68 69 74 65 74 78 74 09 3d 20 37 3b 0d 0a 20 ┆yellowtxt = 6; whitetxt = 7; ┆ 0x409a0…409c0 20 6c 69 67 68 74 74 78 74 09 3d 20 38 3b 20 20 62 6c 69 6e 6b 74 78 74 20 20 3d 20 38 3b 0d 0a ┆ lighttxt = 8; blinktxt = 8; ┆ 0x409c0…409e0 0d 0a 20 20 68 65 6c 70 3a 41 52 52 41 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 53 54 52 49 4e 47 ┆ help:ARRAY(.0..7.) OF STRING┆ 0x409e0…40a00 28 2e 34 30 2e 29 20 3d 0d 0a 20 20 20 20 28 27 3c 48 4f 4d 45 3e 20 20 6d 61 72 6b 9b 72 20 74 ┆(.40.) = ('<HOME> mark r t┆ 0x40a00…40a20 69 6c 20 74 65 6b 73 74 73 74 61 72 74 27 2c 0d 0a 20 20 20 20 27 3c 45 4e 44 3e 20 20 20 6d 61 ┆il tekststart', '<END> ma┆ 0x40a20…40a40 72 6b 9b 72 20 74 69 6c 20 74 65 6b 73 74 73 6c 75 74 27 2c 0d 0a 20 20 20 20 27 3c 44 45 4c 3e ┆rk r til tekstslut', '<DEL>┆ 0x40a40…40a60 20 20 20 73 6c 65 74 20 74 65 67 6e 20 70 86 20 6d 61 72 6b 9b 72 65 6e 73 20 70 6c 61 64 73 27 ┆ slet tegn p mark rens plads'┆ 0x40a60…40a80 2c 0d 0a 20 20 20 20 27 3c 49 4e 53 3e 20 20 20 73 6b 69 66 74 20 6d 65 6c 6c 65 6d 20 6f 76 65 ┆, '<INS> skift mellem ove┆ 0x40a80…40aa0 72 73 6b 72 69 76 20 6f 67 20 69 6e 64 73 91 74 27 2c 0d 0a 20 20 20 20 27 3c 46 35 3e 20 20 20 ┆rskriv og inds t', '<F5> ┆ 0x40aa0…40ac0 20 73 6c 65 74 20 6c 69 6e 69 65 20 66 72 61 20 6d 61 72 6b 9b 72 65 6e 73 20 70 6c 61 64 73 27 ┆ slet linie fra mark rens plads'┆ 0x40ac0…40ae0 2c 0d 0a 20 20 20 20 27 3c 11 27 40 31 39 36 27 3e 20 20 20 20 73 6c 65 74 20 74 65 67 6e 20 74 ┆, '< '@196'> slet tegn t┆ 0x40ae0…40b00 69 6c 20 76 65 6e 73 74 72 65 20 46 4f 52 20 6d 61 72 6b 9b 72 27 2c 0d 0a 20 20 20 20 27 3c 1b ┆il venstre FOR mark r', '< ┆ 0x40b00…40b20 3e 20 20 20 20 20 72 79 6b 20 6d 61 72 6b 9b 72 20 65 6e 20 70 6c 61 64 73 20 74 69 6c 20 76 65 ┆> ryk mark r en plads til ve┆ 0x40b20…40b40 6e 73 74 72 65 27 2c 0d 0a 20 20 20 20 27 3c 27 40 32 36 27 3e 20 20 20 20 20 72 79 6b 20 6d 61 ┆nstre', '<'@26'> ryk ma┆ 0x40b40…40b60 72 6b 9b 72 20 65 6e 20 70 6c 61 64 73 20 74 69 6c 20 68 9b 6a 72 65 27 29 3b 0d 0a 0d 0a 0d 0a ┆rk r en plads til h jre'); ┆ 0x40b60…40b80 54 59 50 45 0d 0a 20 20 42 75 66 74 79 70 65 20 09 3d 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 20 20 ┆TYPE Buftype = ^INTEGER; ┆ 0x40b80…40ba0 73 74 72 38 30 20 09 3d 20 53 54 52 49 4e 47 28 2e 38 30 2e 29 3b 0d 0a 20 20 73 74 72 31 20 20 ┆str80 = STRING(.80.); str1 ┆ 0x40ba0…40bc0 20 20 20 20 20 20 20 20 3d 20 53 54 52 49 4e 47 5b 31 5d 3b 0d 0a 20 20 73 74 72 31 35 20 20 20 ┆ = STRINGÆ1Å; str15 ┆ 0x40bc0…40be0 20 20 20 20 20 20 3d 20 53 54 52 49 4e 47 5b 31 35 5d 3b 0d 0a 20 20 73 74 72 32 35 20 20 20 20 ┆ = STRINGÆ15Å; str25 ┆ 0x40be0…40c00 20 20 20 20 20 3d 20 53 54 52 49 4e 47 5b 32 35 5d 3b 0d 0a 20 20 63 68 61 72 73 65 74 20 20 20 ┆ = STRINGÆ25Å; charset ┆ 0x40c00…40c20 (25, 1, 5) 20 20 20 20 3d 20 73 65 74 20 6f 66 20 63 68 61 72 3b 0d 0a 20 20 57 6e 64 5f 54 59 50 45 20 3d ┆ = set of char; Wnd_TYPE =┆ 0x40c20…40c40 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 78 31 2c 20 79 31 09 09 3a 20 49 4e 54 45 47 45 52 3b 0d ┆ RECORD x1, y1 : INTEGER; ┆ 0x40c40…40c60 0a 20 20 20 20 6d 61 78 78 2c 20 6d 61 78 79 09 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 ┆ maxx, maxy : INTEGER; ┆ 0x40c60…40c80 20 70 65 6e 63 6f 6c 6f 72 2c 20 62 61 63 6b 63 6f 6c 6f 72 09 3a 20 49 4e 54 45 47 45 52 3b 0d ┆ pencolor, backcolor : INTEGER; ┆ 0x40c80…40ca0 0a 20 20 20 20 74 78 74 6d 61 78 78 2c 20 74 78 74 6d 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b ┆ txtmaxx, txtmaxy : INTEGER;┆ 0x40ca0…40cc0 0d 0a 20 20 20 20 74 78 74 78 31 2c 20 74 78 74 79 31 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆ txtx1, txty1 : INTEGER; ┆ 0x40cc0…40ce0 20 20 20 68 64 72 09 09 09 3a 20 73 74 72 38 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 57 ┆ hdr : str80; END; W┆ 0x40ce0…40d00 6c 64 5f 54 59 50 45 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 78 31 2c 20 79 31 09 3a 20 52 ┆ld_TYPE = RECORD x1, y1 : R┆ 0x40d00…40d20 45 41 4c 3b 0d 0a 20 20 20 20 78 72 61 6e 67 65 2c 20 79 72 61 6e 67 65 3a 20 52 45 41 4c 3b 0d ┆EAL; xrange, yrange: REAL; ┆ 0x40d20…40d40 0a 20 20 20 20 58 4f 6c 64 2c 20 59 6f 6c 64 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 45 4e 44 3b 0d ┆ XOld, Yold : REAL; END; ┆ 0x40d40…40d60 0a 0d 0a 20 20 73 61 76 65 5f 54 59 50 45 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 63 6f 6e ┆ save_TYPE = RECORD con┆ 0x40d60…40d80 74 65 6e 74 09 3a 20 62 75 66 74 79 70 65 3b 0d 0a 20 20 20 20 6c 65 6e 67 74 68 09 3a 20 49 4e ┆tent : buftype; length : IN┆ 0x40d80…40da0 54 45 47 45 52 3b 0d 0a 20 20 20 20 77 69 6e 64 09 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 ┆TEGER; wind : Wnd_TYPE; ┆ 0x40da0…40dc0 20 20 6f 6c 64 31 2c 20 6f 6c 64 32 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 20 20 61 63 74 75 61 6c ┆ old1, old2 : REAL; actual┆ 0x40dc0…40de0 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 20 20 72 65 67 74 79 ┆ : INTEGER; END; regty┆ 0x40de0…40e00 70 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 61 78 2c 62 78 2c 63 78 2c 64 78 2c 62 70 2c 73 ┆p = RECORD ax,bx,cx,dx,bp,s┆ 0x40e00…40e20 69 2c 64 69 2c 64 73 2c 65 73 2c 66 6c 61 67 73 3a 49 4e 54 45 47 45 52 0d 0a 20 20 45 4e 44 3b ┆i,di,ds,es,flags:INTEGER END;┆ 0x40e20…40e40 0d 0a 20 20 6f 70 72 74 79 70 65 09 3d 20 28 73 61 76 65 2c 6c 6f 61 64 2c 73 63 72 73 77 61 70 ┆ oprtype = (save,load,scrswap┆ 0x40e40…40e60 29 3b 0d 0a 20 20 63 68 61 72 66 69 6c 74 79 70 65 09 3d 20 41 52 52 41 59 28 2e 30 2e 2e 32 35 ┆); charfiltype = ARRAY(.0..25┆ 0x40e60…40e80 35 2e 29 20 4f 46 20 41 52 52 41 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 42 59 54 45 3b 0d 0a 0d ┆5.) OF ARRAY(.0..7.) OF BYTE; ┆ 0x40e80…40ea0 0a 20 20 74 78 74 5f 6c 69 6e 65 63 68 61 72 09 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 43 41 ┆ txt_linechar = RECORD CA┆ 0x40ea0…40ec0 53 45 20 42 4f 4f 4c 45 41 4e 20 4f 46 0d 0a 20 20 20 20 20 20 74 72 75 65 3a 20 28 63 68 3a 20 ┆SE BOOLEAN OF true: (ch: ┆ 0x40ec0…40ee0 43 48 41 52 3b 20 20 61 74 74 3a 20 42 59 54 45 29 3b 0d 0a 20 20 20 20 20 20 66 61 6c 73 65 3a ┆CHAR; att: BYTE); false:┆ 0x40ee0…40f00 28 62 6f 74 68 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 53 63 ┆(both: INTEGER); END; Sc┆ 0x40f00…40f20 72 5f 54 59 50 45 09 3d 20 28 4f 4c 49 5f 68 69 67 68 2c 4f 4c 49 5f 6c 6f 77 29 3b 0d 0a 20 20 ┆r_TYPE = (OLI_high,OLI_low); ┆ 0x40f20…40f40 50 72 6e 5f 54 59 50 45 20 20 20 20 20 20 3d 20 28 4e 45 43 5f 31 36 62 69 74 2c 4e 45 43 5f 38 ┆Prn_TYPE = (NEC_16bit,NEC_8┆ 0x40f40…40f60 62 69 74 29 3b 0d 0a 20 20 70 74 72 5f 54 59 50 45 09 3d 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆bit); ptr_TYPE = ^INTEGER; ┆ 0x40f60…40f80 20 74 78 74 5f 6c 69 6e 65 09 3d 20 41 52 52 41 59 28 2e 30 2e 2e 37 39 2e 29 20 4f 46 20 74 78 ┆ txt_line = ARRAY(.0..79.) OF tx┆ 0x40f80…40fa0 74 5f 6c 69 6e 65 63 68 61 72 3b 0d 0a 20 20 74 78 74 5f 63 68 61 72 73 65 74 20 20 20 3d 20 53 ┆t_linechar; txt_charset = S┆ 0x40fa0…40fc0 45 54 20 4f 46 20 43 48 41 52 3b 0d 0a 20 20 61 6e 79 73 74 72 20 20 20 20 20 20 20 20 3d 20 73 ┆ET OF CHAR; anystr = s┆ 0x40fc0…40fe0 74 72 69 6e 67 5b 32 35 35 5d 3b 0d 0a 56 41 52 0d 0a 20 20 53 63 72 5f 6d 61 78 78 09 3a 20 49 ┆tringÆ255Å; VAR Scr_maxx : I┆ 0x40fe0…41000 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 6d 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆NTEGER; Scr_maxy : INTEGER; ┆ 0x41000…41020 (26, 0, 1) 20 20 53 63 72 5f 73 65 67 6d 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 61 73 70 ┆ Scr_segm : INTEGER; Scr_asp┆ 0x41020…41040 65 63 74 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 78 61 64 64 72 09 3a 20 41 52 ┆ect : INTEGER; Scr_xaddr : AR┆ 0x41040…41060 52 41 59 28 2e 30 2e 2e 36 34 30 2e 29 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 ┆RAY(.0..640.) OF INTEGER; Scr┆ 0x41060…41080 5f 79 61 64 64 72 09 3a 20 41 52 52 41 59 28 2e 30 2e 2e 34 30 30 2e 29 20 4f 46 20 49 4e 54 45 ┆_yaddr : ARRAY(.0..400.) OF INTE┆ 0x41080…410a0 47 45 52 3b 0d 0a 20 20 53 63 72 5f 42 45 47 49 4e 09 3a 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 0d ┆GER; Scr_BEGIN : ^INTEGER; ┆ 0x410a0…410c0 0a 20 20 57 6e 64 5f 09 09 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 57 6e 64 5f 70 61 6c 65 ┆ Wnd_ : Wnd_TYPE; Wnd_pale┆ 0x410c0…410e0 74 74 65 20 20 20 3a 20 41 52 52 41 59 28 2e 30 2e 2e 31 35 2e 29 20 4f 46 20 62 79 74 65 3b 0d ┆tte : ARRAY(.0..15.) OF byte; ┆ 0x410e0…41100 0a 20 20 57 6c 64 5f 09 09 3a 20 57 6c 64 5f 54 59 50 45 3b 0d 0a 0d 0a 20 20 57 6e 64 5f 61 72 ┆ Wld_ : Wld_TYPE; Wnd_ar┆ 0x41100…41120 72 09 3a 20 41 52 52 41 59 28 2e 31 2e 2e 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 57 6e 64 5f 54 ┆r : ARRAY(.1..Wnd_max.) OF Wnd_T┆ 0x41120…41140 59 50 45 3b 0d 0a 20 20 57 6c 64 5f 61 72 72 09 3a 20 41 52 52 41 59 28 2e 31 2e 2e 57 6e 64 5f ┆YPE; Wld_arr : ARRAY(.1..Wnd_┆ 0x41140…41160 6d 61 78 2e 29 20 4f 46 20 77 6c 64 5f 54 59 50 45 3b 0d 0a 20 20 53 61 76 65 5f 61 72 72 09 3a ┆max.) OF wld_TYPE; Save_arr :┆ 0x41160…41180 20 41 52 52 41 59 28 2e 31 2e 2e 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 73 61 76 65 5f 54 59 50 ┆ ARRAY(.1..Wnd_max.) OF save_TYP┆ 0x41180…411a0 45 3b 0d 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 57 ┆E; Wnd_actual : INTEGER; W┆ 0x411a0…411c0 6e 64 5f 43 6f 6c 6f 72 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 72 65 67 09 09 3a 20 72 65 ┆nd_Color : INTEGER; reg : re┆ 0x411c0…411e0 67 74 79 70 3b 0d 0a 20 20 53 63 72 5f 73 74 61 72 74 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆gtyp; Scr_start : INTEGER; ┆ 0x411e0…41200 20 67 72 61 70 68 5f 54 59 50 45 09 3a 20 53 63 72 5f 54 59 50 45 3b 0d 0a 20 20 53 63 72 5f 43 ┆ graph_TYPE : Scr_TYPE; Scr_C┆ 0x41200…41220 48 41 52 09 3a 20 63 68 61 72 66 69 6c 74 79 70 65 3b 0d 0a 20 20 74 78 74 5f 6c 69 6e 65 70 74 ┆HAR : charfiltype; txt_linept┆ 0x41220…41240 72 09 3a 20 41 52 52 41 59 28 2e 30 2e 2e 32 34 2e 29 20 4f 46 20 5e 74 78 74 5f 6c 69 6e 65 3b ┆r : ARRAY(.0..24.) OF ^txt_line;┆ 0x41240…41260 0d 0a 20 20 54 78 74 5f 6d 61 78 78 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 54 78 74 5f 6d ┆ Txt_maxx : INTEGER; Txt_m┆ 0x41260…41280 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 0d 0a 0d 0a 0d 0a 63 6f 6e 73 74 0d 0a 20 20 73 ┆axy : INTEGER; const s┆ 0x41280…412a0 63 72 5f 73 77 61 70 5f 3a 20 6f 70 72 74 79 70 65 3d 6c 6f 61 64 3b 0d 0a 0d 0a 7b 20 43 53 54 ┆cr_swap_: oprtype=load; æ CST┆ 0x412a0…412c0 52 20 72 65 74 75 72 6e 73 20 61 20 73 74 72 69 6e 67 20 77 69 74 68 20 4e 20 63 68 61 72 61 63 ┆R returns a string with N charac┆ 0x412c0…412e0 74 65 72 73 20 6f 66 20 76 61 6c 75 65 20 43 20 7d 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 73 ┆ters of value C å FUNCTION cs┆ 0x412e0…41300 74 72 28 63 3a 20 63 68 61 72 3b 20 6e 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 6e 79 73 74 72 3b ┆tr(c: char; n: integer): anystr;┆ 0x41300…41320 0d 0a 56 41 52 0d 0a 20 20 73 3a 20 53 54 52 49 4e 47 5b 32 35 35 5d 3b 0d 0a 42 45 47 49 4e 0d ┆ VAR s: STRINGÆ255Å; BEGIN ┆ 0x41320…41340 0a 20 20 49 46 20 6e 3c 30 20 54 48 45 4e 20 6e 3a 3d 30 3b 20 73 5b 30 5d 3a 3d 63 68 72 28 6e ┆ IF n<0 THEN n:=0; sÆ0Å:=chr(n┆ 0x41340…41360 29 3b 20 66 69 6c 6c 28 73 5b 31 5d 2c 6e 2c 63 29 3b 0d 0a 20 20 63 73 74 72 3a 3d 73 3b 0d 0a ┆); fill(sÆ1Å,n,c); cstr:=s; ┆ 0x41360…41380 45 4e 44 3b 0d 0a 0d 0a 7b 20 42 45 45 50 20 73 6f 75 6e 64 73 20 74 68 65 20 74 65 72 6d 69 6e ┆END; æ BEEP sounds the termin┆ 0x41380…413a0 61 6c 27 73 20 62 65 6c 6c 20 6f 72 20 62 65 65 70 65 72 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆al's bell or beeper å PROCEDU┆ 0x413a0…413c0 52 45 20 62 65 65 70 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 77 72 69 74 65 28 5e 47 29 3b 0d 0a 45 ┆RE beep; BEGIN write(^G); E┆ 0x413c0…413e0 4e 44 3b 0d 0a 0d 0a 0d 0a 7b 20 43 41 50 20 63 6f 6e 76 65 72 74 73 20 61 20 63 68 61 72 61 63 ┆ND; æ CAP converts a charac┆ 0x413e0…41400 74 65 72 20 74 6f 20 75 70 70 65 72 20 63 61 73 65 20 7d 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 ┆ter to upper case å FUNCTION ┆ 0x41400…41420 (26, 0, 2) 63 61 70 28 63 68 3a 20 63 68 61 72 29 3a 20 63 68 61 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 ┆cap(ch: char): char; BEGIN I┆ 0x41420…41440 46 20 28 63 68 3e 3d 27 61 27 29 20 41 4e 44 20 28 63 68 3c 3d 27 7a 27 29 20 54 48 45 4e 0d 0a ┆F (ch>='a') AND (ch<='z') THEN ┆ 0x41440…41460 20 20 63 61 70 3a 3d 63 68 72 28 6f 72 64 28 63 68 29 2d 33 32 29 20 45 4c 53 45 20 63 61 70 3a ┆ cap:=chr(ord(ch)-32) ELSE cap:┆ 0x41460…41480 3d 63 68 3b 0d 0a 45 4e 44 3b 0d 0a 7b 20 43 4c 52 46 52 41 4d 45 20 63 6c 65 61 72 73 20 74 68 ┆=ch; END; æ CLRFRAME clears th┆ 0x41480…414a0 65 20 64 69 73 70 6c 61 79 20 66 72 61 6d 65 2c 20 69 2e 65 2e 20 6c 69 6e 65 73 20 33 20 74 6f ┆e display frame, i.e. lines 3 to┆ 0x414a0…414c0 20 32 30 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 63 6c 72 66 72 61 6d 65 3b 0d 0a 56 41 ┆ 20 å PROCEDURE clrframe; VA┆ 0x414c0…414e0 52 0d 0a 20 20 69 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 ┆R i: integer; BEGIN FOR i┆ 0x414e0…41500 3a 3d 34 20 54 4f 20 32 30 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 67 6f 74 6f 78 ┆:=4 TO 20 DO BEGIN gotox┆ 0x41500…41520 79 28 30 2c 69 29 3b 20 77 72 69 74 65 28 63 6c 72 65 6f 6c 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a ┆y(0,i); write(clreol); END; ┆ 0x41520…41540 45 4e 44 3b 0d 0a 0d 0a 50 72 6f 63 65 64 75 72 65 20 63 6c 72 66 65 6a 6c 3b 0d 0a 42 65 67 69 ┆END; Procedure clrfejl; Begi┆ 0x41540…41560 6e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 32 34 29 3b 20 57 72 69 74 65 28 63 6c 72 65 6f 6c 29 ┆n gotoxy(0,24); Write(clreol)┆ 0x41560…41580 3b 0d 0a 45 6e 64 3b 0d 0a 20 20 0d 0a 50 72 6f 63 65 64 75 72 65 20 72 61 6d 6d 65 3b 0d 0a 42 ┆; End; Procedure ramme; B┆ 0x41580…415a0 65 67 69 6e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 30 29 3b 20 77 72 69 74 65 6c 6e 28 63 73 74 ┆egin gotoxy(0,0); writeln(cst┆ 0x415a0…415c0 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 57 72 69 74 65 6c 6e 3b 0d 0a 20 20 77 72 69 74 65 ┆r('-',79)); Writeln; write┆ 0x415c0…415e0 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 32 31 ┆ln(cstr('-',79)); gotoxy(0,21┆ 0x415e0…41600 29 3b 20 77 72 69 74 65 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 77 72 69 ┆); writeln(cstr('-',79)); wri┆ 0x41600…41620 74 65 6c 6e 3b 20 0d 0a 20 20 77 72 69 74 65 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a ┆teln; write(cstr('-',79)); ┆ 0x41620…41640 45 6e 64 3b 0d 0a 0d 0a 0d 0a 0d 0a 7b 20 53 45 4c 45 43 54 20 64 69 73 70 6c 61 79 20 74 68 65 ┆End; æ SELECT display the┆ 0x41640…41660 20 70 72 6f 6d 70 74 20 73 74 72 69 6e 67 20 50 52 20 6f 6e 20 6c 69 6e 65 20 32 32 2c 20 61 6e ┆ prompt string PR on line 22, an┆ 0x41660…41680 64 20 77 61 69 74 73 20 20 20 20 20 7d 0d 0a 7b 20 75 6e 74 69 6c 20 74 68 65 20 75 73 65 72 20 ┆d waits å æ until the user ┆ 0x41680…416a0 65 6e 74 65 72 73 20 61 20 63 68 61 72 61 63 74 65 72 20 77 68 69 63 68 20 69 73 20 63 6f 6e 74 ┆enters a character which is cont┆ 0x416a0…416c0 61 69 6e 65 64 20 69 6e 20 74 68 65 20 20 20 7d 0d 0a 7b 20 54 45 52 4d 20 63 68 61 72 61 63 74 ┆ained in the å æ TERM charact┆ 0x416c0…416e0 65 72 20 73 65 74 2e 20 54 68 65 20 63 68 61 72 61 63 74 65 72 20 69 73 20 74 68 65 6e 20 72 65 ┆er set. The character is then re┆ 0x416e0…41700 74 75 72 6e 65 64 20 69 6e 20 54 43 2e 20 20 20 20 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆turned in TC. å PROCEDURE┆ 0x41700…41720 20 73 65 6c 65 63 74 28 70 72 3a 20 73 74 72 38 30 3b 20 74 65 72 6d 3a 20 63 68 61 72 73 65 74 ┆ select(pr: str80; term: charset┆ 0x41720…41740 3b 20 56 41 52 20 74 63 3a 20 63 68 61 72 29 3b 0d 0a 56 41 52 0d 0a 20 20 63 68 3a 20 63 68 61 ┆; VAR tc: char); VAR ch: cha┆ 0x41740…41760 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 32 32 29 3b 20 77 72 69 74 65 ┆r; BEGIN gotoxy(0,22); write┆ 0x41760…41780 28 70 72 2c 27 3f 20 27 2c 63 6c 72 65 6f 6c 29 3b 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 ┆(pr,'? ',clreol); REPEAT ┆ 0x41780…417a0 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 20 74 63 3a 3d 63 61 70 28 63 68 29 3b 0d 0a 20 20 20 ┆ read(kbd,ch); tc:=cap(ch); ┆ 0x417a0…417c0 20 49 46 20 4e 4f 54 28 74 63 20 49 4e 20 74 65 72 6d 29 20 54 48 45 4e 20 62 65 65 70 3b 0d 0a ┆ IF NOT(tc IN term) THEN beep; ┆ 0x417c0…417e0 20 20 55 4e 54 49 4c 20 74 63 20 49 4e 20 74 65 72 6d 3b 0d 0a 20 20 77 72 69 74 65 28 63 68 29 ┆ UNTIL tc IN term; write(ch)┆ 0x417e0…41800 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6c 65 63 74 31 28 76 30 3a ┆; END; PROCEDURE select1(v0:┆ 0x41800…41820 (26, 0, 3) 20 73 74 72 31 35 3b 20 76 31 2c 76 32 2c 76 33 2c 76 34 2c 76 35 2c 76 36 2c 76 37 3a 20 73 74 ┆ str15; v1,v2,v3,v4,v5,v6,v7: st┆ 0x41820…41840 72 32 35 3b 20 56 41 52 20 63 68 3a 20 63 68 61 72 29 3b 0d 0a 0d 0a 56 61 72 0d 0a 20 20 20 20 ┆r25; VAR ch: char); Var ┆ 0x41840…41860 74 65 72 6d 3a 20 63 68 61 72 73 65 74 3b 0d 0a 20 20 42 65 67 69 6e 0d 0a 20 20 20 20 74 65 72 ┆term: charset; Begin ter┆ 0x41860…41880 6d 3a 3d 5b 27 41 27 2c 27 42 27 2c 27 43 27 2c 27 44 27 2c 27 45 27 2c 27 46 27 2c 27 47 27 5d ┆m:=Æ'A','B','C','D','E','F','G'Å┆ 0x41880…418a0 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 32 29 3b 57 72 69 74 65 28 63 73 74 72 28 ┆; gotoxy(20,12);Write(cstr(┆ 0x418a0…418c0 27 2d 27 2c 32 39 29 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 33 29 3b 57 72 69 ┆'-',29)); gotoxy(20,13);Wri┆ 0x418c0…418e0 74 65 28 27 7c 27 2c 76 30 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 33 29 3b ┆te('ø',v0,clreol);Gotoxy(48,13);┆ 0x418e0…41900 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 34 29 3b 57 ┆Write('ø'); gotoxy(20,14);W┆ 0x41900…41920 72 69 74 65 28 27 7c 20 41 29 20 27 2c 76 31 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 ┆rite('ø A) ',v1,clreol);Gotoxy(4┆ 0x41920…41940 38 2c 31 34 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 ┆8,14);Write('ø'); gotoxy(20┆ 0x41940…41960 2c 31 35 29 3b 57 72 69 74 65 28 27 7c 20 42 29 20 27 2c 76 32 2c 63 6c 72 65 6f 6c 29 3b 47 6f ┆,15);Write('ø B) ',v2,clreol);Go┆ 0x41960…41980 74 6f 78 79 28 34 38 2c 31 35 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 ┆toxy(48,15);Write('ø'); got┆ 0x41980…419a0 6f 78 79 28 32 30 2c 31 36 29 3b 57 72 69 74 65 28 27 7c 20 43 29 20 27 2c 76 33 2c 63 6c 72 65 ┆oxy(20,16);Write('ø C) ',v3,clre┆ 0x419a0…419c0 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 36 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 ┆ol);Gotoxy(48,16);Write('ø'); ┆ 0x419c0…419e0 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 37 29 3b 57 72 69 74 65 28 27 7c 20 44 29 20 27 2c 76 ┆ gotoxy(20,17);Write('ø D) ',v┆ 0x419e0…41a00 34 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 37 29 3b 57 72 69 74 65 28 27 7c ┆4,clreol);Gotoxy(48,17);Write('ø┆ 0x41a00…41a20 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 38 29 3b 57 72 69 74 65 28 27 7c 20 ┆'); gotoxy(20,18);Write('ø ┆ 0x41a20…41a40 45 29 20 27 2c 76 35 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 38 29 3b 57 72 ┆E) ',v5,clreol);Gotoxy(48,18);Wr┆ 0x41a40…41a60 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 39 29 3b 57 72 69 ┆ite('ø'); gotoxy(20,19);Wri┆ 0x41a60…41a80 74 65 28 27 7c 20 46 29 20 27 2c 76 36 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c ┆te('ø F) ',v6,clreol);Gotoxy(48,┆ 0x41a80…41aa0 31 39 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 32 ┆19);Write('ø'); gotoxy(20,2┆ 0x41aa0…41ac0 30 29 3b 57 72 69 74 65 28 27 7c 20 47 29 20 27 2c 76 37 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f ┆0);Write('ø G) ',v7,clreol);Goto┆ 0x41ac0…41ae0 78 79 28 34 38 2c 32 30 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 ┆xy(48,20);Write('ø'); gotox┆ 0x41ae0…41b00 79 28 30 2c 32 32 29 3b 20 57 72 69 74 65 28 27 49 6e 64 74 61 73 74 20 76 61 6c 67 3a 20 27 2c ┆y(0,22); Write('Indtast valg: ',┆ 0x41b00…41b20 63 6c 72 65 6f 6c 29 3b 20 0d 0a 20 20 20 20 52 65 70 65 61 74 0d 0a 20 20 20 20 20 20 72 65 61 ┆clreol); Repeat rea┆ 0x41b20…41b40 64 28 6b 62 64 2c 63 68 29 3b 20 63 68 3a 3d 63 61 70 28 63 68 29 3b 0d 0a 20 20 20 20 20 20 49 ┆d(kbd,ch); ch:=cap(ch); I┆ 0x41b40…41b60 46 20 4e 4f 54 28 63 68 20 49 4e 20 74 65 72 6d 29 20 54 48 45 4e 20 62 65 65 70 3b 0d 0a 20 20 ┆F NOT(ch IN term) THEN beep; ┆ 0x41b60…41b80 20 20 55 4e 54 49 4c 20 63 68 20 49 4e 20 74 65 72 6d 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 77 ┆ UNTIL ch IN term; w┆ 0x41b80…41ba0 72 69 74 65 28 63 68 29 3b 0d 0a 0d 0a 20 20 45 6e 64 3b 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 7b 20 49 ┆rite(ch); End; æ I┆ 0x41ba0…41bc0 4e 50 53 54 52 20 69 73 20 61 20 67 65 6e 65 72 61 6c 69 7a 65 64 20 73 74 72 69 6e 67 20 69 6e ┆NPSTR is a generalized string in┆ 0x41bc0…41be0 70 75 74 20 72 6f 75 74 69 6e 65 20 77 68 69 63 68 20 73 75 70 70 6f 72 74 73 20 20 20 7d 0d 0a ┆put routine which supports å ┆ 0x41be0…41c00 7b 20 6f 6e 2d 73 63 72 65 65 6e 20 65 64 69 74 69 6e 67 2e 20 53 20 69 73 20 61 6e 79 20 73 74 ┆æ on-screen editing. S is any st┆ 0x41c00…41c20 (26, 0, 4) 72 69 6e 67 20 76 61 72 69 61 62 6c 65 2e 20 4c 20 69 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 ┆ring variable. L is the maximum ┆ 0x41c20…41c40 7d 0d 0a 7b 20 69 6e 70 75 74 20 6c 65 6e 67 74 68 2e 20 58 20 61 6e 64 20 59 20 61 72 65 20 74 ┆å æ input length. X and Y are t┆ 0x41c40…41c60 68 65 20 64 69 73 70 6c 61 79 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 20 54 45 52 4d 20 69 73 20 ┆he display coordinates. TERM is ┆ 0x41c60…41c80 61 20 20 7d 0d 0a 7b 20 73 65 74 20 6f 66 20 76 61 6c 69 64 20 74 65 72 6d 69 6e 61 74 6f 72 20 ┆a å æ set of valid terminator ┆ 0x41c80…41ca0 63 68 61 72 61 63 74 65 72 73 2c 20 61 6e 64 20 54 43 20 72 65 74 75 72 6e 73 20 74 68 65 20 63 ┆characters, and TC returns the c┆ 0x41ca0…41cc0 68 61 72 2d 20 20 7d 0d 0a 7b 20 61 63 74 65 72 20 74 68 61 74 20 74 65 72 6d 69 6e 61 74 65 64 ┆har- å æ acter that terminated┆ 0x41cc0…41ce0 20 74 68 65 20 69 6e 70 75 74 2e 20 4f 6e 20 65 6e 74 72 79 2c 20 53 20 69 73 20 64 69 73 70 6c ┆ the input. On entry, S is displ┆ 0x41ce0…41d00 61 79 65 64 20 61 74 20 20 7d 0d 0a 7b 20 58 2c 59 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 2c ┆ayed at å æ X,Y on the screen,┆ 0x41d00…41d20 20 70 61 64 64 65 64 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 77 69 74 68 20 75 6e 64 65 72 73 ┆ padded to the right with unders┆ 0x41d20…41d40 63 6f 72 65 73 2e 20 54 68 65 20 20 7d 0d 0a 7b 20 73 74 72 69 6e 67 20 6d 61 79 20 74 68 65 6e ┆cores. The å æ string may then┆ 0x41d40…41d60 20 62 65 20 65 64 69 74 65 64 20 75 73 69 6e 67 20 73 74 61 6e 64 61 72 64 20 63 6f 6e 74 72 6f ┆ be edited using standard contro┆ 0x41d60…41d80 6c 20 6b 65 79 73 3a 20 5e 53 20 61 6e 64 20 7d 0d 0a 7b 20 5e 44 20 66 6f 72 20 6c 65 66 74 20 ┆l keys: ^S and å æ ^D for left ┆ 0x41d80…41da0 61 6e 64 20 72 69 67 68 74 2c 20 5e 41 20 61 6e 64 20 5e 46 20 66 6f 72 20 62 65 67 69 6e 6e 69 ┆and right, ^A and ^F for beginni┆ 0x41da0…41dc0 6e 67 20 61 6e 64 20 65 6e 64 20 6f 66 20 20 20 20 20 7d 0d 0a 7b 20 6c 69 6e 65 2c 20 5e 47 20 ┆ng and end of å æ line, ^G ┆ 0x41dc0…41de0 74 6f 20 64 65 6c 65 74 65 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 75 6e 64 65 72 20 74 68 ┆to delete the character under th┆ 0x41de0…41e00 65 20 63 75 72 73 6f 72 2c 20 5e 48 20 6f 72 20 44 45 4c 20 20 7d 0d 0a 7b 20 74 6f 20 62 61 63 ┆e cursor, ^H or DEL å æ to bac┆ 0x41e00…41e20 6b 73 70 61 63 65 2c 20 61 6e 64 20 5e 59 20 74 6f 20 64 65 6c 65 74 65 20 74 6f 20 65 6e 64 20 ┆kspace, and ^Y to delete to end ┆ 0x41e20…41e40 6f 66 20 74 68 65 20 6c 69 6e 65 2e 20 57 68 65 6e 20 61 20 20 20 20 20 7d 0d 0a 7b 20 63 68 61 ┆of the line. When a å æ cha┆ 0x41e40…41e60 72 61 63 74 65 72 20 69 73 20 74 79 70 65 64 2c 20 69 74 20 69 73 20 69 6e 73 65 72 74 65 64 20 ┆racter is typed, it is inserted ┆ 0x41e60…41e80 61 74 20 74 68 65 20 63 75 72 73 6f 72 20 61 74 20 74 68 65 20 72 65 2d 20 20 20 7d 0d 0a 7b 20 ┆at the cursor at the re- å æ ┆ 0x41e80…41ea0 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 69 73 20 6d 6f 76 65 64 20 74 6f 20 ┆mainder of the line is moved to ┆ 0x41ea0…41ec0 74 68 65 20 72 69 67 68 74 2e 20 57 68 65 6e 20 61 20 74 65 72 6d 69 6e 61 74 6f 72 20 20 7d 0d ┆the right. When a terminator å ┆ 0x41ec0…41ee0 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 73 20 74 79 70 65 64 2c 20 74 68 65 20 74 72 61 69 6c ┆ æ character is typed, the trail┆ 0x41ee0…41f00 69 6e 67 20 75 6e 64 65 72 73 63 6f 72 73 20 61 72 65 20 72 65 6d 6f 76 65 64 2c 20 61 6e 64 20 ┆ing underscors are removed, and ┆ 0x41f00…41f20 20 7d 0d 0a 7b 20 49 4e 50 53 54 52 20 72 65 74 75 72 6e 73 20 77 69 74 68 20 74 68 65 20 65 64 ┆ å æ INPSTR returns with the ed┆ 0x41f20…41f40 69 74 65 64 20 73 74 72 69 6e 67 20 69 6e 20 53 20 61 6e 64 20 74 68 65 20 74 65 72 6d 69 6e 61 ┆ited string in S and the termina┆ 0x41f40…41f60 74 6f 72 20 7d 0d 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 54 43 2e 20 20 20 20 20 20 20 ┆tor å æ character in TC. ┆ 0x41f60…41f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x41f80…41fa0 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 70 73 74 72 28 56 41 52 ┆ å PROCEDURE inpstr(VAR┆ 0x41fa0…41fc0 20 73 3a 20 61 6e 79 73 74 72 3b 20 6c 2c 78 2c 79 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 74 ┆ s: anystr; l,x,y: integer; t┆ 0x41fc0…41fe0 65 72 6d 20 3a 20 63 68 61 72 73 65 74 3b 20 56 41 52 20 74 63 3a 20 63 68 61 72 29 3b 0d 0a 43 ┆erm : charset; VAR tc: char); C┆ 0x41fe0…42000 4f 4e 53 54 0d 0a 20 20 66 63 20 3d 20 27 5f 27 3b 0d 0a 4c 61 62 65 6c 20 6c 6c 3b 0d 0a 56 41 ┆ONST fc = '_'; Label ll; VA┆ 0x42000…42020 (26, 0, 5) 52 0d 0a 20 20 74 65 6b 73 74 3a 20 73 74 72 32 35 3b 0d 0a 20 20 69 2c 74 61 6c 2c 61 6e 74 61 ┆R tekst: str25; i,tal,anta┆ 0x42020…42040 6c 2c 78 78 2c 79 79 2c 70 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 70 61 61 2c 63 68 3a 20 63 ┆l,xx,yy,p: integer; paa,ch: c┆ 0x42040…42060 68 61 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 67 6f 74 6f 78 79 28 78 2c 79 29 3b 20 ┆har; BEGIN gotoxy(x,y); ┆ 0x42060…42080 77 72 69 74 65 28 73 2c 63 73 74 72 28 66 63 2c 6c 2d 6c 65 6e 28 73 29 29 29 3b 20 70 3a 3d 30 ┆write(s,cstr(fc,l-len(s))); p:=0┆ 0x42080…420a0 3b 0d 0a 20 20 78 78 3a 3d 78 3b 79 79 3a 3d 79 3b 61 6e 74 61 6c 3a 3d 78 78 3b 0d 0a 20 20 0d ┆; xx:=x;yy:=y;antal:=xx; ┆ 0x420a0…420c0 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 78 78 2c 79 79 29 3b 20 0d 0a ┆ REPEAT gotoxy(xx,yy); ┆ 0x420c0…420e0 20 20 20 20 6c 6c 3a 0d 0a 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 20 20 ┆ ll: read(kbd,ch); ┆ 0x420e0…42100 43 41 53 45 20 63 68 20 4f 46 0d 0a 20 20 20 20 20 20 40 33 32 2e 2e 40 31 32 36 2c 20 40 31 32 ┆CASE ch OF @32..@126, @12┆ 0x42100…42120 38 2e 2e 40 32 35 35 3a 0d 0a 20 20 20 20 20 20 49 46 20 70 3c 6c 20 54 48 45 4e 0d 0a 20 20 20 ┆8..@255: IF p<l THEN ┆ 0x42120…42140 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 49 46 20 6c 65 6e 28 73 29 3d 6c 20 54 48 ┆ BEGIN IF len(s)=l TH┆ 0x42140…42160 45 4e 20 64 65 6c 65 74 65 28 73 2c 6c 2c 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 78 78 3a 3d 78 ┆EN delete(s,l,1); xx:=x┆ 0x42160…42180 78 2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 70 3a 3d 70 2b 31 3b 20 69 6e 73 65 72 74 28 63 68 2c ┆x+1; p:=p+1; insert(ch,┆ 0x42180…421a0 73 2c 70 29 3b 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 63 6f 70 79 28 73 2c 70 2c 6c 29 ┆s,p); write(copy(s,p,l)┆ 0x421a0…421c0 29 3b 0d 0a 20 20 20 20 20 20 20 20 49 66 20 78 78 3d 38 31 20 74 68 65 6e 0d 0a 20 20 20 20 20 ┆); If xx=81 then ┆ 0x421c0…421e0 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 78 78 3a 3d 31 3b 20 0d 0a 20 20 20 20 ┆ begin xx:=1; ┆ 0x421e0…42200 20 20 20 20 20 20 79 79 3a 3d 79 79 2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 ┆ yy:=yy+1; end; ┆ 0x42200…42220 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 20 0d 0a 20 20 20 ┆ END ELSE beep; ┆ 0x42220…42240 20 20 20 5e 5a 3a 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 70 61 61 ┆ ^Z: Begin If paa┆ 0x42240…42260 3d 27 4a 27 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 ┆='J' then Begin F┆ 0x42260…42280 6f 72 20 69 3a 3d 20 35 20 74 6f 20 31 30 20 64 6f 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 ┆or i:= 5 to 10 do Begin ┆ 0x42280…422a0 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 69 29 3b 20 57 72 69 74 65 28 63 6c 72 ┆ gotoxy(40,i); Write(clr┆ 0x422a0…422c0 65 6f 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6e 64 3b 0d 0a 20 20 20 20 20 ┆eol); End; ┆ 0x422c0…422e0 20 20 20 20 20 20 20 20 20 70 61 61 3a 3d 20 27 4e 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ paa:= 'N'; ┆ 0x422e0…42300 20 20 20 67 6f 74 6f 20 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 6e 64 3b 20 20 20 ┆ goto ll; End; ┆ 0x42300…42320 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 35 29 3b 20 57 72 69 ┆ gotoxy(40,5); Wri┆ 0x42320…42340 74 65 28 27 5e 41 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 68 65 6c 74 20 74 69 6c 20 ┆te('^A: Mark r flyttes helt til ┆ 0x42340…42360 76 65 6e 73 74 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 ┆venstre'); gotoxy(4┆ 0x42360…42380 30 2c 36 29 3b 20 57 72 69 74 65 28 27 5e 53 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 ┆0,6); Write('^S: Mark r flyttes ┆ 0x42380…423a0 65 6e 20 20 20 74 69 6c 20 76 65 6e 73 74 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆en til venstre'); ┆ 0x423a0…423c0 20 67 6f 74 6f 78 79 28 34 30 2c 37 29 3b 20 57 72 69 74 65 28 27 5e 44 3a 20 4d 61 72 6b 9b 72 ┆ gotoxy(40,7); Write('^D: Mark r┆ 0x423c0…423e0 20 66 6c 79 74 74 65 73 20 65 6e 20 20 20 74 69 6c 20 68 9b 6a 72 65 27 29 3b 0d 0a 20 20 20 20 ┆ flyttes en til h jre'); ┆ 0x423e0…42400 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 38 29 3b 20 57 72 69 74 65 28 27 5e 46 3a ┆ gotoxy(40,8); Write('^F:┆ 0x42400…42420 (26, 1, 1) 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 68 65 6c 74 20 74 69 6c 20 68 9b 6a 72 65 27 29 ┆ Mark r flyttes helt til h jre')┆ 0x42420…42440 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 39 29 3b 20 57 72 69 ┆; gotoxy(40,9); Wri┆ 0x42440…42460 74 65 28 27 5e 47 3a 20 54 65 67 6e 20 6f 76 65 72 20 6d 61 72 6b 9b 72 20 73 6c 65 74 74 65 73 ┆te('^G: Tegn over mark r slettes┆ 0x42460…42480 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 31 30 29 3b 20 ┆'); gotoxy(40,10); ┆ 0x42480…424a0 57 72 69 74 65 28 27 5e 48 3a 20 54 65 67 6e 20 68 65 6c 74 20 74 69 6c 20 68 9b 6a 72 65 20 73 ┆Write('^H: Tegn helt til h jre s┆ 0x424a0…424c0 6c 65 74 74 65 73 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61 61 3a 3d 27 4a 27 3b ┆lettes'); paa:='J';┆ 0x424c0…424e0 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a ┆ END; ┆ 0x424e0…42500 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 0d 0a ┆ ┆ 0x42500…42520 20 20 20 20 20 20 5e 53 3a 20 49 46 20 70 3e 30 20 54 48 45 4e 20 42 65 67 69 6e 0d 0a 20 20 20 ┆ ^S: IF p>0 THEN Begin ┆ 0x42520…42540 20 20 20 20 20 20 20 70 3a 3d 70 2d 31 3b 20 78 78 3a 3d 78 78 2d 31 3b 0d 0a 20 20 20 20 20 20 ┆ p:=p-1; xx:=xx-1; ┆ 0x42540…42560 20 20 20 20 49 66 20 28 78 78 3d 2d 31 29 20 61 6e 64 20 28 79 79 20 3c 3e 20 79 29 20 74 68 65 ┆ If (xx=-1) and (yy <> y) the┆ 0x42560…42580 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 79 79 3a 3d 79 79 2d 31 3b 0d 0a ┆n Begin yy:=yy-1; ┆ 0x42580…425a0 20 20 20 20 20 20 20 20 20 20 20 20 78 78 3a 3d 37 39 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 ┆ xx:=79; E┆ 0x425a0…425c0 6e 64 3b 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 45 4c 53 45 20 62 65 65 70 3b 0d ┆nd; End ELSE beep; ┆ 0x425c0…425e0 0a 20 20 20 20 20 20 5e 44 3a 20 49 46 20 70 3c 6c 65 6e 28 73 29 20 54 48 45 4e 20 42 65 67 69 ┆ ^D: IF p<len(s) THEN Begi┆ 0x425e0…42600 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 70 3a 3d 70 2b 31 3b 20 78 78 3a 3d 78 78 2b 31 3b 20 0d ┆n p:=p+1; xx:=xx+1; ┆ 0x42600…42620 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 78 78 3d 38 30 20 74 68 65 6e 20 42 65 67 69 6e 20 0d ┆ If xx=80 then Begin ┆ 0x42620…42640 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 78 3a 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ xx:= 0; ┆ 0x42640…42660 20 20 79 79 20 3a 3d 20 79 79 20 2b 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 3b 0d ┆ yy := yy + 1; End; ┆ 0x42660…42680 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 ┆ End ELSE beep; ┆ 0x42680…426a0 20 5e 41 3a 20 42 65 67 69 6e 20 70 3a 3d 30 3b 20 78 78 3a 3d 78 3b 20 79 79 3a 3d 79 3b 20 45 ┆ ^A: Begin p:=0; xx:=x; yy:=y; E┆ 0x426a0…426c0 6e 64 3b 0d 0a 20 20 20 20 20 20 5e 46 3a 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆nd; ^F: Begin ┆ 0x426c0…426e0 20 20 79 79 3a 3d 79 79 20 2b 74 72 75 6e 63 20 28 28 6c 65 6e 28 73 29 2b 78 29 2f 20 38 31 29 ┆ yy:=yy +trunc ((len(s)+x)/ 81)┆ 0x426e0…42700 3b 20 78 78 3a 3d 20 28 6c 65 6e 28 73 29 2b 78 29 20 6d 6f 64 20 38 31 20 3b 0d 0a 20 20 20 20 ┆; xx:= (len(s)+x) mod 81 ; ┆ 0x42700…42720 20 20 20 20 20 20 20 20 70 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e ┆ p:=len(s); En┆ 0x42720…42740 64 3b 0d 0a 20 20 20 20 20 20 5e 47 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 49 46 20 70 3c 6c 65 ┆d; ^G: IF p<le┆ 0x42740…42760 6e 28 73 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆n(s) THEN BEGIN ┆ 0x42760…42780 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 28 73 2c 70 2b 31 2c 31 29 3b 20 77 72 69 74 65 28 63 ┆ delete(s,p+1,1); write(c┆ 0x42780…427a0 6f 70 79 28 73 2c 70 2b 31 2c 6c 29 2c 66 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 ┆opy(s,p+1,l),fc); END┆ 0x427a0…427c0 20 65 6c 73 65 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 20 5e 48 2c 40 31 32 37 3a 20 20 20 20 20 ┆ else beep; ^H,@127: ┆ 0x427c0…427e0 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 49 46 20 70 3e 30 20 54 ┆ IF p>0 T┆ 0x427e0…42800 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆HEN BEGIN ┆ 0x42800…42820 (26, 1, 2) 20 20 64 65 6c 65 74 65 28 73 2c 70 2c 31 29 3b 20 77 72 69 74 65 28 5e 48 2c 63 6f 70 79 28 73 ┆ delete(s,p,1); write(^H,copy(s┆ 0x42820…42840 2c 70 2c 6c 29 2c 66 63 29 3b 20 70 3a 3d 70 2d 31 3b 78 78 3a 3d 78 78 2d 31 3b 0d 0a 20 20 20 ┆,p,l),fc); p:=p-1;xx:=xx-1; ┆ 0x42840…42860 20 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 20 5e 59 3a ┆ END ELSE beep; ^Y:┆ 0x42860…42880 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 ┆ BEGIN w┆ 0x42880…428a0 72 69 74 65 28 63 73 74 72 28 66 63 2c 6c 65 6e 28 73 29 2d 70 29 29 3b 20 64 65 6c 65 74 65 28 ┆rite(cstr(fc,len(s)-p)); delete(┆ 0x428a0…428c0 73 2c 70 2b 31 2c 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 4f ┆s,p+1,l); END; O┆ 0x428c0…428e0 54 48 45 52 57 49 53 45 0d 0a 20 20 20 20 20 20 49 46 20 4e 4f 54 28 63 68 20 49 4e 20 74 65 72 ┆THERWISE IF NOT(ch IN ter┆ 0x428e0…42900 6d 29 20 54 48 45 4e 20 62 65 65 70 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 20 20 55 ┆m) THEN beep; END; U┆ 0x42900…42920 4e 54 49 4c 20 63 68 20 49 4e 20 74 65 72 6d 3b 0d 0a 20 20 69 66 20 70 20 3c 20 6c 65 6e 28 73 ┆NTIL ch IN term; if p < len(s┆ 0x42920…42940 29 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 79 79 3a 3d 79 79 20 2b 74 72 75 6e 63 20 ┆) then Begin yy:=yy +trunc ┆ 0x42940…42960 28 28 6c 65 6e 28 73 29 2b 78 29 2f 20 38 31 29 3b 0d 0a 20 20 20 20 78 78 3a 3d 20 28 6c 65 6e ┆((len(s)+x)/ 81); xx:= (len┆ 0x42960…42980 28 73 29 2b 78 29 20 6d 6f 64 20 38 31 20 3b 0d 0a 20 20 45 6e 64 3b 20 20 0d 0a 20 20 70 3a 3d ┆(s)+x) mod 81 ; End; p:=┆ 0x42980…429a0 6c 65 6e 28 73 29 3b 20 67 6f 74 6f 78 79 28 78 78 2c 79 79 29 3b 20 77 72 69 74 65 28 27 27 3a ┆len(s); gotoxy(xx,yy); write('':┆ 0x429a0…429c0 6c 2d 70 29 3b 0d 0a 20 20 74 63 3a 3d 63 68 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a ┆l-p); tc:=ch; END; ┆ 0x429c0…429e0 0d 0a 28 2a 49 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆ (*I---------------------------┆ 0x429e0…42a00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆--------------------------------┆ 0x42a00…42a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 49 2a 29 0d 0a 28 2a 49 20 20 20 44 65 20 65 66 74 65 72 ┆-------------I*) (*I De efter┆ 0x42a20…42a40 66 9b 6c 67 65 6e 64 65 20 70 72 6f 63 65 64 75 72 65 72 20 65 72 20 6d 61 73 6b 69 6e 73 70 65 ┆f lgende procedurer er maskinspe┆ 0x42a40…42a60 63 69 66 69 6b 6b 65 2e 20 44 65 20 65 72 20 64 65 20 20 20 20 20 20 20 20 20 49 2a 29 0d 0a 28 ┆cifikke. De er de I*) (┆ 0x42a60…42a80 2a 49 20 20 20 65 6e 65 73 74 65 20 73 6f 6d 20 73 6b 61 6c 20 75 64 73 6b 69 66 74 65 73 20 68 ┆*I eneste som skal udskiftes h┆ 0x42a80…42aa0 76 69 73 20 70 72 6f 67 72 61 6d 6d 65 74 20 73 6b 61 6c 20 74 69 6c 70 61 73 73 65 73 20 65 6e ┆vis programmet skal tilpasses en┆ 0x42aa0…42ac0 20 61 6e 64 65 6e 20 20 20 20 49 2a 29 0d 0a 28 2a 49 20 20 20 64 61 74 61 6d 61 74 74 79 70 65 ┆ anden I*) (*I datamattype┆ 0x42ac0…42ae0 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆. ┆ 0x42ae0…42b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 2a 29 0d 0a 28 ┆ I*) (┆ 0x42b00…42b20 2a 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆*I ┆ 0x42b20…42b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x42b40…42b60 20 20 20 20 20 20 20 20 20 20 49 2a 29 0d 0a 28 2a 49 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆ I*) (*I--------------┆ 0x42b60…42b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆--------------------------------┆ 0x42b80…42ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 49 2a 29 0d 0a 0d ┆--------------------------I*) ┆ 0x42ba0…42bc0 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 74 5f 67 72 61 70 68 69 63 73 28 74 79 70 3a 20 53 63 ┆ PROCEDURE init_graphics(typ: Sc┆ 0x42bc0…42be0 72 5f 54 59 50 45 29 3b 0d 0a 56 41 52 0d 0a 20 20 53 63 72 5f 4d 4f 44 2c 20 69 3a 20 49 4e 54 ┆r_TYPE); VAR Scr_MOD, i: INT┆ 0x42be0…42c00 45 47 45 52 3b 0d 0a 20 20 63 68 61 72 66 69 6c 3a 20 46 49 4c 45 20 4f 46 20 63 68 61 72 66 69 ┆EGER; charfil: FILE OF charfi┆ 0x42c00…42c20 (26, 1, 3) 6c 74 79 70 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 43 41 53 45 20 74 79 70 20 20 4f 46 0d 0a 20 ┆ltype; BEGIN CASE typ OF ┆ 0x42c20…42c40 20 20 20 4f 4c 49 5f 6c 6f 77 3a 20 28 2a 20 4f 6c 69 76 65 74 74 69 20 67 72 61 70 68 69 63 73 ┆ OLI_low: (* Olivetti graphics┆ 0x42c40…42c60 20 36 34 30 2a 32 30 30 20 70 6f 69 6e 74 73 20 2a 29 0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 ┆ 640*200 points *) BEGIN ┆ 0x42c60…42c80 20 20 20 20 20 53 63 72 5f 73 65 67 6d 3a 3d 24 42 38 30 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 ┆ Scr_segm:=$B800; Scr┆ 0x42c80…42ca0 5f 4d 4f 44 3a 3d 32 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 73 74 61 72 74 3a 3d 36 3b 0d 0a 20 ┆_MOD:=2; Scr_start:=6; ┆ 0x42ca0…42cc0 20 20 20 20 20 53 63 72 5f 6d 61 78 78 3a 3d 36 33 39 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 6d ┆ Scr_maxx:=639; Scr_m┆ 0x42cc0…42ce0 61 78 79 3a 3d 31 39 39 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 61 73 70 65 63 74 3a 3d 32 32 30 ┆axy:=199; Scr_aspect:=220┆ 0x42ce0…42d00 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 4f 4c 49 5f 68 69 67 68 3a 20 28 2a 20 4f 6c ┆; END; OLI_high: (* Ol┆ 0x42d00…42d20 69 76 65 74 74 69 20 67 72 61 70 68 69 63 73 20 36 34 30 2a 34 30 30 20 70 6f 69 6e 74 73 20 2a ┆ivetti graphics 640*400 points *┆ 0x42d20…42d40 29 0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 5f 73 65 67 6d 3a 3d 24 42 ┆) BEGIN Scr_segm:=$B┆ 0x42d40…42d60 38 30 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 4d 4f 44 3a 3d 34 3b 0d 0a 20 20 20 20 20 20 53 ┆800; Scr_MOD:=4; S┆ 0x42d60…42d80 63 72 5f 73 74 61 72 74 3a 3d 36 34 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 6d 61 78 78 3a 3d 36 ┆cr_start:=64; Scr_maxx:=6┆ 0x42d80…42da0 33 39 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 6d 61 78 79 3a 3d 33 39 39 3b 0d 0a 20 20 20 20 20 ┆39; Scr_maxy:=399; ┆ 0x42da0…42dc0 20 53 63 72 5f 61 73 70 65 63 74 3a 3d 31 31 37 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 ┆ Scr_aspect:=117; END; E┆ 0x42dc0…42de0 4e 44 3b 0d 0a 20 20 74 78 74 5f 6d 61 78 78 3a 3d 37 39 3b 0d 0a 20 20 74 78 74 5f 6d 61 78 79 ┆ND; txt_maxx:=79; txt_maxy┆ 0x42de0…42e00 3a 3d 32 34 3b 0d 0a 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 20 30 20 54 4f 20 53 63 72 5f 6d 61 ┆:=24; FOR i:= 0 TO Scr_ma┆ 0x42e00…42e20 78 78 20 44 4f 20 53 63 72 5f 78 61 64 64 72 28 2e 69 2e 29 3a 3d 69 20 44 49 56 20 38 3b 0d 0a ┆xx DO Scr_xaddr(.i.):=i DIV 8; ┆ 0x42e20…42e40 20 20 46 4f 52 20 69 3a 3d 20 30 20 54 4f 20 53 63 72 5f 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 ┆ FOR i:= 0 TO Scr_maxy DO ┆ 0x42e40…42e60 53 63 72 5f 79 61 64 64 72 28 2e 53 63 72 5f 6d 61 78 79 2d 69 2e 29 3a 3d 28 28 69 20 4d 4f 44 ┆Scr_yaddr(.Scr_maxy-i.):=((i MOD┆ 0x42e60…42e80 20 53 63 72 5f 4d 4f 44 29 2a 24 32 30 30 30 29 20 2b 20 28 28 69 20 44 49 56 20 53 63 72 5f 4d ┆ Scr_MOD)*$2000) + ((i DIV Scr_M┆ 0x42e80…42ea0 4f 44 29 2a 38 30 29 3b 0d 0a 20 20 61 73 73 69 67 6e 28 63 68 61 72 66 69 6c 2c 63 68 61 72 66 ┆OD)*80); assign(charfil,charf┆ 0x42ea0…42ec0 69 6c 6e 61 6d 65 29 3b 0d 0a 20 20 72 65 73 65 74 28 63 68 61 72 66 69 6c 29 3b 0d 0a 20 20 72 ┆ilname); reset(charfil); r┆ 0x42ec0…42ee0 65 61 64 28 63 68 61 72 66 69 6c 2c 53 63 72 5f 43 48 41 52 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 ┆ead(charfil,Scr_CHAR); close(┆ 0x42ee0…42f00 63 68 61 72 66 69 6c 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 ┆charfil); END; PROCEDURE ini┆ 0x42f00…42f20 74 5f 74 65 78 74 3b 0d 0a 56 41 52 20 78 2c 69 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 ┆t_text; VAR x,i : INTEGER; BEG┆ 0x42f20…42f40 49 4e 0d 0a 20 20 78 3a 3d 30 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 32 34 20 44 4f ┆IN x:=0; FOR i:=0 TO 24 DO┆ 0x42f40…42f60 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 3a 3d 70 74 ┆ BEGIN txt_lineptr(.i.):=pt┆ 0x42f60…42f80 72 28 24 42 38 30 30 2c 78 29 3b 0d 0a 20 20 20 20 78 3a 3d 78 2b 31 36 30 3b 0d 0a 20 20 45 4e ┆r($B800,x); x:=x+160; EN┆ 0x42f80…42fa0 44 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 73 74 72 ┆D; END; PROCEDURE writestr┆ 0x42fa0…42fc0 28 63 6f 6c 2c 72 6f 77 3a 20 49 4e 54 45 47 45 52 3b 20 73 74 72 3a 20 73 74 72 38 30 29 3b 0d ┆(col,row: INTEGER; str: str80); ┆ 0x42fc0…42fe0 0a 56 41 52 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 74 74 ┆ VAR attrib: BYTE; BEGIN att┆ 0x42fe0…43000 72 69 62 3a 3d 57 6e 64 5f 70 61 6c 65 74 74 65 28 2e 57 6e 64 5f 61 63 74 75 61 6c 2e 29 3b 0d ┆rib:=Wnd_palette(.Wnd_actual.); ┆ 0x43000…43020 (26, 1, 4) 0a 20 20 43 4f 44 45 0d 0a 20 20 20 24 31 45 2c 24 31 45 2c 24 38 41 2c 24 38 36 2c 72 6f 77 2c ┆ CODE $1E,$1E,$8A,$86,row,┆ 0x43020…43040 24 42 33 2c 24 35 30 2c 24 46 36 2c 24 45 33 2c 24 32 42 2c 24 44 42 2c 24 38 41 2c 24 39 45 2c ┆$B3,$50,$F6,$E3,$2B,$DB,$8A,$9E,┆ 0x43040…43060 63 6f 6c 2c 0d 0a 20 20 20 24 30 33 2c 24 43 33 2c 24 30 33 2c 24 43 30 2c 24 38 42 2c 24 46 38 ┆col, $03,$C3,$03,$C0,$8B,$F8┆ 0x43060…43080 2c 24 62 65 2c 24 30 30 2c 24 30 30 2c 24 38 41 2c 24 42 45 2c 61 74 74 72 69 62 2c 0d 0a 20 20 ┆,$be,$00,$00,$8A,$BE,attrib, ┆ 0x43080…430a0 20 24 38 61 2c 24 38 65 2c 73 74 72 2c 24 32 32 2c 24 63 39 2c 24 37 34 2c 24 33 65 2c 24 32 62 ┆ $8a,$8e,str,$22,$c9,$74,$3e,$2b┆ 0x430a0…430c0 2c 24 63 30 2c 24 38 45 2c 24 44 38 2c 24 41 30 2c 24 34 39 2c 24 30 34 2c 0d 0a 20 20 20 24 31 ┆,$c0,$8E,$D8,$A0,$49,$04, $1┆ 0x430c0…430e0 46 2c 24 32 43 2c 24 30 37 2c 24 37 34 2c 24 32 32 2c 24 42 41 2c 24 30 30 2c 24 42 38 2c 24 38 ┆F,$2C,$07,$74,$22,$BA,$00,$B8,$8┆ 0x430e0…43100 45 2c 24 44 41 2c 24 42 41 2c 24 44 41 2c 24 30 33 2c 24 34 36 2c 0d 0a 20 20 20 24 38 61 2c 24 ┆E,$DA,$BA,$DA,$03,$46, $8a,$┆ 0x43100…43120 39 41 2c 73 74 72 2c 24 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 35 2c 24 46 42 2c 24 46 41 2c 24 ┆9A,str,$EC,$A8,$01,$75,$FB,$FA,$┆ 0x43120…43140 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 34 2c 24 46 42 2c 0d 0a 20 20 20 24 38 39 2c 24 31 44 2c ┆EC,$A8,$01,$74,$FB, $89,$1D,┆ 0x43140…43160 24 34 37 2c 24 34 37 2c 24 45 32 2c 24 45 61 2c 24 32 41 2c 24 43 30 2c 24 37 34 2c 24 31 30 2c ┆$47,$47,$E2,$Ea,$2A,$C0,$74,$10,┆ 0x43160…43180 24 42 41 2c 24 30 30 2c 24 42 30 2c 0d 0a 20 20 20 24 38 45 2c 24 44 41 2c 24 34 36 2c 24 38 61 ┆$BA,$00,$B0, $8E,$DA,$46,$8a┆ 0x43180…431a0 2c 24 39 41 2c 73 74 72 2c 24 38 39 2c 24 31 44 2c 24 34 37 2c 24 34 37 2c 24 45 32 2c 24 46 35 ┆,$9A,str,$89,$1D,$47,$47,$E2,$F5┆ 0x431a0…431c0 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 67 72 61 70 68 6d 6f ┆,$1F; END; PROCEDURE graphmo┆ 0x431c0…431e0 64 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 ┆de; BEGIN IF txt_mode THEN B┆ 0x431e0…43200 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 78 3a 3d 53 63 72 5f 6d 61 78 78 20 44 49 56 ┆EGIN txt_maxx:=Scr_maxx DIV┆ 0x43200…43220 20 38 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 79 3a 3d 53 63 72 5f 6d 61 78 79 20 44 49 56 20 ┆ 8; txt_maxy:=Scr_maxy DIV ┆ 0x43220…43240 38 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 6f 64 65 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 65 ┆8; txt_mode:=false; re┆ 0x43240…43260 67 2e 61 78 3a 3d 53 63 72 5f 73 74 61 72 74 3b 0d 0a 20 20 20 20 73 77 69 6e 74 28 24 31 30 2c ┆g.ax:=Scr_start; swint($10,┆ 0x43260…43280 72 65 67 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 20 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆reg); END; END; PROCEDUR┆ 0x43280…432a0 45 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 4e 4f 54 20 74 78 74 ┆E textmode; BEGIN IF NOT txt┆ 0x432a0…432c0 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 78 3a 3d ┆_mode THEN BEGIN txt_maxx:=┆ 0x432c0…432e0 37 39 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 79 3a 3d 32 34 3b 0d 0a 20 20 20 20 74 78 74 5f ┆79; txt_maxy:=24; txt_┆ 0x432e0…43300 6d 6f 64 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 72 65 67 2e 61 78 3a 3d 24 30 33 3b 0d 0a 20 ┆mode:=true; reg.ax:=$03; ┆ 0x43300…43320 20 20 20 73 77 69 6e 74 28 24 31 30 2c 72 65 67 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b ┆ swint($10,reg); END; END;┆ 0x43320…43340 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 73 70 63 28 6c 3a 20 49 4e 54 45 47 45 52 3b 20 63 68 3a ┆ FUNCTION spc(l: INTEGER; ch:┆ 0x43340…43360 20 43 48 41 52 29 3a 73 74 72 38 30 3b 0d 0a 56 41 52 20 0d 0a 20 20 73 09 3a 20 73 74 72 38 30 ┆ CHAR):str80; VAR s : str80┆ 0x43360…43380 3b 0d 0a 20 20 73 6c 67 74 20 20 3a 20 42 59 54 45 20 41 54 20 73 3b 0d 0a 42 45 47 49 4e 0d 0a ┆; slgt : BYTE AT s; BEGIN ┆ 0x43380…433a0 20 20 73 6c 67 74 3a 3d 6c 3b 0d 0a 20 20 66 69 6c 6c 28 73 28 2e 31 2e 29 2c 6c 2c 63 68 29 3b ┆ slgt:=l; fill(s(.1.),l,ch);┆ 0x433a0…433c0 0d 0a 20 20 73 70 63 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 72 65 ┆ spc:=s; END; FUNCTION re┆ 0x433c0…433e0 61 64 73 74 72 74 78 74 28 78 2c 79 2c 6c 3a 20 49 4e 54 45 47 45 52 29 3a 20 73 74 72 38 30 3b ┆adstrtxt(x,y,l: INTEGER): str80;┆ 0x433e0…43400 0d 0a 56 41 52 0d 0a 20 20 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 3a 20 73 74 72 ┆ VAR i: INTEGER; str: str┆ 0x43400…43420 (26, 1, 5) 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 3a 3d 27 27 3b 0d 0a 20 20 57 49 54 48 20 57 ┆80; BEGIN str:=''; WITH W┆ 0x43420…43440 6e 64 5f 20 44 4f 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 74 78 74 78 31 2b 78 20 54 4f 20 74 78 ┆nd_ DO FOR i:=txtx1+x TO tx┆ 0x43440…43460 74 78 31 2b 6c 20 44 4f 0d 0a 20 20 20 20 20 20 73 74 72 3a 3d 73 74 72 2b 74 78 74 5f 6c 69 6e ┆tx1+l DO str:=str+txt_lin┆ 0x43460…43480 65 70 74 72 28 2e 79 2e 29 5e 28 2e 69 2e 29 2e 63 68 3b 0d 0a 20 20 72 65 61 64 73 74 72 54 78 ┆eptr(.y.)^(.i.).ch; readstrTx┆ 0x43480…434a0 74 3a 3d 73 74 72 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 77 61 70 28 ┆t:=str; END; PROCEDURE swap(┆ 0x434a0…434c0 56 41 52 20 61 2c 62 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 63 3a 20 49 4e 54 45 47 ┆VAR a,b: INTEGER); VAR c: INTEG┆ 0x434c0…434e0 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 63 3a 3d 61 3b 20 61 3a 3d 62 3b 20 62 3a 3d 63 3b 0d ┆ER; BEGIN c:=a; a:=b; b:=c; ┆ 0x434e0…43500 0a 45 4e 44 3b 20 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 77 72 69 74 65 64 6f 74 ┆ END; PROCEDURE Scr_writedot┆ 0x43500…43520 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 57 6e 64 5f 43 6f 6c 6f ┆(x,y: INTEGER); BEGIN Wnd_Colo┆ 0x43520…43540 72 3a 3d 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 3b 0d 0a 43 4f 44 45 0d 0a 24 38 42 2c 24 37 45 ┆r:=Wnd_.pencolor; CODE $8B,$7E┆ 0x43540…43560 2c 24 30 36 2c 24 38 42 2c 24 37 36 2c 24 30 34 2c 24 38 39 2c 24 46 39 2c 24 44 31 2c 24 45 37 ┆,$06,$8B,$76,$04,$89,$F9,$D1,$E7┆ 0x43560…43580 2c 24 44 31 2c 24 45 36 2c 24 38 42 2c 24 39 44 2c 3e 53 63 72 5f 78 61 64 64 72 2c 0d 0a 24 30 ┆,$D1,$E6,$8B,$9D,>Scr_xaddr, $0┆ 0x43580…435a0 33 2c 24 39 43 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 38 30 2c 24 45 31 2c 24 30 37 2c 24 42 32 ┆3,$9C,>Scr_yaddr,$80,$E1,$07,$B2┆ 0x435a0…435c0 2c 24 38 30 2c 24 44 32 2c 24 45 41 2c 24 38 45 2c 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 ┆,$80,$D2,$EA,$8E,$06,>Scr_segm,$┆ 0x435c0…435e0 41 30 2c 0d 0a 3e 57 6e 64 5f 63 6f 6c 6f 72 2c 24 33 43 2c 24 46 46 2c 24 37 35 2c 24 30 35 2c ┆A0, >Wnd_color,$3C,$FF,$75,$05,┆ 0x435e0…43600 24 32 36 2c 24 30 38 2c 24 31 37 2c 24 45 42 2c 24 30 45 2c 24 33 43 2c 24 30 30 2c 24 37 35 2c ┆$26,$08,$17,$EB,$0E,$3C,$00,$75,┆ 0x43600…43620 24 30 37 2c 24 46 36 2c 0d 0a 24 44 32 2c 24 32 36 2c 24 32 30 2c 24 31 37 2c 24 45 42 2c 24 30 ┆$07,$F6, $D2,$26,$20,$17,$EB,$0┆ 0x43620…43640 33 2c 24 32 36 2c 24 33 30 2c 24 31 37 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆3,$26,$30,$17; END; PROCEDUR┆ 0x43640…43660 45 20 6d 6f 76 65 53 63 72 5f 74 6f 6d 65 6d 28 78 2c 79 2c 78 6c 65 6e 3a 20 49 4e 54 45 47 45 ┆E moveScr_tomem(x,y,xlen: INTEGE┆ 0x43660…43680 52 3b 6b 31 2c 6b 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 43 4f 44 45 0d ┆R;k1,k2: INTEGER); BEGIN CODE ┆ 0x43680…436a0 0a 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 44 31 2c 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 ┆ $8B,$7E,$0A,$D1,$E7,$8B,$85,>Sc┆ 0x436a0…436c0 72 5f 79 61 64 64 72 2c 24 38 42 2c 24 34 45 2c 24 30 38 2c 24 38 42 2c 24 37 45 2c 24 30 43 2c ┆r_yaddr,$8B,$4E,$08,$8B,$7E,$0C,┆ 0x436c0…436e0 24 44 31 2c 0d 0a 24 45 37 2c 24 38 45 2c 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 31 45 2c ┆$D1, $E7,$8E,$06,>Scr_segm,$1E,┆ 0x436e0…43700 24 43 35 2c 24 37 36 2c 24 30 34 2c 24 38 43 2c 24 44 41 2c 24 38 39 2c 24 43 33 2c 24 31 46 2c ┆$C5,$76,$04,$8C,$DA,$89,$C3,$1F,┆ 0x43700…43720 24 30 33 2c 24 39 44 2c 0d 0a 3e 53 63 72 5f 78 61 64 64 72 2c 24 31 45 2c 24 38 45 2c 24 44 41 ┆$03,$9D, >Scr_xaddr,$1E,$8E,$DA┆ 0x43720…43740 2c 24 35 31 2c 24 32 36 2c 24 38 61 2c 24 30 66 2c 24 38 38 2c 24 30 63 2c 24 35 39 2c 24 34 36 ┆,$51,$26,$8a,$0f,$88,$0c,$59,$46┆ 0x43740…43760 2c 24 38 33 2c 24 43 37 2c 24 31 30 2c 0d 0a 24 45 32 2c 24 45 39 2c 24 31 46 3b 0d 0a 45 4e 44 ┆,$83,$C7,$10, $E2,$E9,$1F; END┆ 0x43760…43780 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 6d 65 6d 74 6f 53 63 72 5f 28 78 2c 79 ┆; PROCEDURE movememtoScr_(x,y┆ 0x43780…437a0 2c 78 6c 65 6e 3a 20 49 4e 54 45 47 45 52 3b 6b 31 2c 6b 32 3a 49 4e 54 45 47 45 52 29 3b 0d 0a ┆,xlen: INTEGER;k1,k2:INTEGER); ┆ 0x437a0…437c0 42 45 47 49 4e 0d 0a 43 4f 44 45 0d 0a 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 44 31 2c 24 45 37 ┆BEGIN CODE $8B,$7E,$0A,$D1,$E7┆ 0x437c0…437e0 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 38 42 2c 24 34 45 2c 24 30 38 2c ┆,$8B,$85,>Scr_yaddr,$8B,$4E,$08,┆ 0x437e0…43800 24 38 42 2c 24 37 45 2c 24 30 43 2c 24 44 31 2c 0d 0a 24 45 37 2c 24 38 45 2c 24 30 36 2c 3e 53 ┆$8B,$7E,$0C,$D1, $E7,$8E,$06,>S┆ 0x43800…43820 (27, 0, 1) 63 72 5f 73 65 67 6d 2c 24 31 45 2c 24 43 35 2c 24 37 36 2c 24 30 34 2c 24 38 43 2c 24 44 41 2c ┆cr_segm,$1E,$C5,$76,$04,$8C,$DA,┆ 0x43820…43840 24 38 39 2c 24 43 33 2c 24 31 46 2c 24 30 33 2c 24 39 44 2c 0d 0a 3e 53 63 72 5f 78 61 64 64 72 ┆$89,$C3,$1F,$03,$9D, >Scr_xaddr┆ 0x43840…43860 2c 24 31 45 2c 24 38 45 2c 24 44 41 2c 24 35 31 2c 24 38 41 2c 24 30 43 2c 24 32 36 2c 24 38 38 ┆,$1E,$8E,$DA,$51,$8A,$0C,$26,$88┆ 0x43860…43880 2c 24 30 46 2c 24 35 39 2c 24 34 36 2c 24 38 33 2c 24 43 37 2c 24 31 30 2c 0d 0a 24 45 32 2c 24 ┆,$0F,$59,$46,$83,$C7,$10, $E2,$┆ 0x43880…438a0 45 39 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 66 69 6c 6c 76 ┆E9,$1F; END; PROCEDURE fillv┆ 0x438a0…438c0 69 64 65 6f 6c 69 6e 65 28 78 2c 79 2c 78 6c 65 6e 2c 63 6f 6c 6f 72 3a 20 49 4e 54 45 47 45 52 ┆ideoline(x,y,xlen,color: INTEGER┆ 0x438c0…438e0 29 3b 0d 0a 42 45 47 49 4e 0d 0a 43 4f 44 45 0d 0a 24 38 42 2c 24 37 45 2c 24 30 38 2c 24 44 31 ┆); BEGIN CODE $8B,$7E,$08,$D1┆ 0x438e0…43900 2c 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 38 42 2c 24 34 45 2c ┆,$E7,$8B,$85,>Scr_yaddr,$8B,$4E,┆ 0x43900…43920 24 30 36 2c 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 38 45 2c 0d 0a 24 30 36 2c 3e 53 63 72 5f 73 ┆$06,$8B,$7E,$0A,$8E, $06,>Scr_s┆ 0x43920…43940 65 67 6d 2c 24 38 42 2c 24 35 36 2c 24 30 34 2c 24 38 39 2c 24 43 33 2c 24 38 39 2c 24 46 45 2c ┆egm,$8B,$56,$04,$89,$C3,$89,$FE,┆ 0x43940…43960 24 44 31 2c 24 45 36 2c 24 30 33 2c 24 39 43 2c 3e 53 63 72 5f 78 61 64 64 72 2c 0d 0a 24 32 36 ┆$D1,$E6,$03,$9C,>Scr_xaddr, $26┆ 0x43960…43980 2c 24 38 38 2c 24 31 37 2c 24 38 33 2c 24 43 37 2c 24 30 38 2c 24 45 32 2c 24 45 45 3b 0d 0a 45 ┆,$88,$17,$83,$C7,$08,$E2,$EE; E┆ 0x43980…439a0 4e 44 3b 0d 0a 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 62 61 73 65 61 64 64 72 28 78 2c 79 3a 20 ┆ND; FUNCTION baseaddr(x,y: ┆ 0x439a0…439c0 49 4e 54 45 47 45 52 29 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 43 4f 44 45 0d ┆INTEGER): INTEGER; BEGIN CODE ┆ 0x439c0…439e0 0a 24 38 42 2c 24 37 45 2c 24 30 36 2c 24 38 42 2c 24 37 36 2c 24 30 34 2c 24 44 31 2c 24 45 37 ┆ $8B,$7E,$06,$8B,$76,$04,$D1,$E7┆ 0x439e0…43a00 2c 24 44 31 2c 24 45 36 2c 24 38 42 2c 24 39 43 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 30 33 2c ┆,$D1,$E6,$8B,$9C,>Scr_yaddr,$03,┆ 0x43a00…43a20 24 39 44 2c 0d 0a 3e 53 63 72 5f 78 61 64 64 72 2c 24 38 39 2c 24 35 45 2c 24 30 38 3b 0d 0a 45 ┆$9D, >Scr_xaddr,$89,$5E,$08; E┆ 0x43a20…43a40 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 53 63 72 5f 52 65 61 64 44 6f 74 28 78 2c 79 3a ┆ND; FUNCTION Scr_ReadDot(x,y:┆ 0x43a40…43a60 49 4e 54 45 47 45 52 29 3a 42 4f 4f 4c 45 41 4e 3b 0d 0a 56 41 52 20 74 6f 74 61 6c 3a 20 49 4e ┆INTEGER):BOOLEAN; VAR total: IN┆ 0x43a60…43a80 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 74 6f 74 61 6c 3a 3d 53 63 72 5f 78 61 64 64 72 ┆TEGER; BEGIN total:=Scr_xaddr┆ 0x43a80…43aa0 28 2e 78 2e 29 2b 53 63 72 5f 79 61 64 64 72 28 2e 79 2e 29 3b 0d 0a 20 53 63 72 5f 72 65 61 64 ┆(.x.)+Scr_yaddr(.y.); Scr_read┆ 0x43aa0…43ac0 64 6f 74 3a 3d 0d 0a 20 28 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 3d 62 6c 61 63 6b 29 20 45 58 ┆dot:= (Wnd_.pencolor=black) EX┆ 0x43ac0…43ae0 4f 52 20 28 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 20 41 4e 44 20 28 31 ┆OR (mem(.Scr_segm:total.) AND (1┆ 0x43ae0…43b00 32 38 20 53 48 52 20 28 78 20 41 4e 44 20 37 29 29 3c 3e 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆28 SHR (x AND 7))<>0); END; ┆ 0x43b00…43b20 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 66 69 6c 6c 28 78 31 2c 79 31 2c 78 32 2c 79 32 3a 49 ┆PROCEDURE Scr_fill(x1,y1,x2,y2:I┆ 0x43b20…43b40 4e 54 45 47 45 52 3b 20 63 6f 6c 6f 72 3a 20 42 59 54 45 29 3b 0d 0a 56 41 52 0d 0a 20 79 2c 6c ┆NTEGER; color: BYTE); VAR y,l┆ 0x43b40…43b60 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6c 3a 3d 28 78 32 2d 78 31 2b 31 ┆: INTEGER; BEGIN l:=(x2-x1+1┆ 0x43b60…43b80 29 20 44 49 56 20 38 3b 0d 0a 20 20 46 4f 52 20 79 3a 3d 79 31 20 54 4f 20 79 32 20 44 4f 20 42 ┆) DIV 8; FOR y:=y1 TO y2 DO B┆ 0x43b80…43ba0 45 47 49 4e 0d 0a 20 20 20 20 66 69 6c 6c 76 69 64 65 6f 6c 69 6e 65 28 78 31 2c 79 2c 6c 2c 63 ┆EGIN fillvideoline(x1,y,l,c┆ 0x43ba0…43bc0 6f 6c 6f 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆olor); END; END; PROCEDUR┆ 0x43bc0…43be0 45 20 53 63 72 5f 44 72 61 77 63 68 61 72 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 3b 63 68 3a 20 ┆E Scr_Drawchar(x,y: INTEGER;ch: ┆ 0x43be0…43c00 43 48 41 52 29 3b 0d 0a 56 41 52 20 20 74 6f 74 61 6c 2c 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆CHAR); VAR total,i: INTEGER; ┆ 0x43c00…43c20 (27, 0, 2) 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 37 20 44 4f 20 42 45 47 49 4e 0d ┆BEGIN FOR i:=0 TO 7 DO BEGIN ┆ 0x43c20…43c40 0a 20 20 20 20 74 6f 74 61 6c 3a 3d 53 63 72 5f 78 61 64 64 72 28 2e 78 2e 29 2b 53 63 72 5f 79 ┆ total:=Scr_xaddr(.x.)+Scr_y┆ 0x43c40…43c60 61 64 64 72 28 2e 79 2d 69 2b 37 2e 29 3b 0d 0a 20 20 20 20 43 41 53 45 20 57 6e 64 5f 2e 70 65 ┆addr(.y-i+7.); CASE Wnd_.pe┆ 0x43c60…43c80 6e 63 6f 6c 6f 72 20 4f 46 0d 0a 20 20 20 20 77 68 69 74 65 3a 0d 0a 20 20 20 20 20 20 6d 65 6d ┆ncolor OF white: mem┆ 0x43c80…43ca0 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d 53 63 72 5f 43 48 41 52 28 2e 6f 72 ┆(.Scr_segm:total.):=Scr_CHAR(.or┆ 0x43ca0…43cc0 64 28 63 68 29 2c 69 2e 29 3b 0d 0a 20 20 20 20 62 6c 61 63 6b 3a 0d 0a 20 20 20 20 20 20 6d 65 ┆d(ch),i.); black: me┆ 0x43cc0…43ce0 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d 20 28 4e 4f 54 20 53 63 72 5f 43 ┆m(.Scr_segm:total.):= (NOT Scr_C┆ 0x43ce0…43d00 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 20 41 4e 44 20 24 46 46 29 3b 0d 0a 20 20 20 20 ┆HAR(.ord(ch),i.) AND $FF); ┆ 0x43d00…43d20 74 72 61 6e 73 70 3a 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 ┆transp: mem(.Scr_segm:tot┆ 0x43d20…43d40 61 6c 2e 29 3a 3d 20 53 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 20 45 58 4f ┆al.):= Scr_CHAR(.ord(ch),i.) EXO┆ 0x43d40…43d60 52 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3b 0d 0a 20 20 20 20 45 4e ┆R mem(.Scr_segm:total.); EN┆ 0x43d60…43d80 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 ┆D; END; END; PROCEDURE Sc┆ 0x43d80…43da0 72 5f 64 72 61 77 4c 69 6e 65 28 78 78 31 2c 79 79 31 2c 78 78 32 2c 79 79 32 3a 20 49 4e 54 45 ┆r_drawLine(xx1,yy1,xx2,yy2: INTE┆ 0x43da0…43dc0 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 6c 67 5f 64 65 6c 74 61 2c 20 73 68 5f 64 65 6c 74 61 ┆GER); VAR lg_delta, sh_delta┆ 0x43dc0…43de0 2c 20 6c 67 5f 73 74 65 70 2c 20 73 68 5f 73 74 65 70 2c 20 63 79 63 6c 65 2c 20 74 6f 74 61 6c ┆, lg_step, sh_step, cycle, total┆ 0x43de0…43e00 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6c 67 5f 64 65 6c 74 61 3a 3d 78 ┆: INTEGER; BEGIN lg_delta:=x┆ 0x43e00…43e20 78 32 2d 78 78 31 3b 20 73 68 5f 64 65 6c 74 61 3a 3d 79 79 32 2d 79 79 31 3b 0d 0a 20 20 49 46 ┆x2-xx1; sh_delta:=yy2-yy1; IF┆ 0x43e20…43e40 20 6c 67 5f 64 65 6c 74 61 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 67 5f 64 ┆ lg_delta<0 THEN BEGIN lg_d┆ 0x43e40…43e60 65 6c 74 61 3a 3d 2d 6c 67 5f 64 65 6c 74 61 3b 20 6c 67 5f 73 74 65 70 3a 3d 2d 31 0d 0a 20 20 ┆elta:=-lg_delta; lg_step:=-1 ┆ 0x43e60…43e80 45 4e 44 20 45 4c 53 45 20 6c 67 5f 73 74 65 70 3a 3d 31 3b 0d 0a 20 20 49 46 20 73 68 5f 64 65 ┆END ELSE lg_step:=1; IF sh_de┆ 0x43e80…43ea0 6c 74 61 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 68 5f 64 65 6c 74 61 3a 3d ┆lta<0 THEN BEGIN sh_delta:=┆ 0x43ea0…43ec0 2d 73 68 5f 64 65 6c 74 61 3b 20 73 68 5f 73 74 65 70 3a 3d 2d 31 0d 0a 20 20 45 4e 44 20 45 4c ┆-sh_delta; sh_step:=-1 END EL┆ 0x43ec0…43ee0 53 45 20 73 68 5f 73 74 65 70 3a 3d 31 3b 0d 0a 20 20 49 46 20 73 68 5f 64 65 6c 74 61 3c 6c 67 ┆SE sh_step:=1; IF sh_delta<lg┆ 0x43ee0…43f00 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 79 63 6c 65 3a 3d 6c 67 ┆_delta THEN BEGIN cycle:=lg┆ 0x43f00…43f20 5f 64 65 6c 74 61 20 53 48 52 20 32 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 78 78 31 3c 3e 78 78 ┆_delta SHR 2; WHILE xx1<>xx┆ 0x43f20…43f40 32 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 5f 77 72 69 74 65 64 6f 74 28 78 ┆2 DO BEGIN Scr_writedot(x┆ 0x43f40…43f60 78 31 2c 79 79 31 29 3b 0d 0a 20 20 20 20 20 20 78 78 31 3a 3d 78 78 31 2b 6c 67 5f 73 74 65 70 ┆x1,yy1); xx1:=xx1+lg_step┆ 0x43f60…43f80 3b 20 63 79 63 6c 65 3a 3d 63 79 63 6c 65 2b 73 68 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 ┆; cycle:=cycle+sh_delta; ┆ 0x43f80…43fa0 49 46 20 63 79 63 6c 65 3e 6c 67 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 ┆IF cycle>lg_delta THEN BEGIN ┆ 0x43fa0…43fc0 20 20 20 20 20 20 79 79 31 3a 3d 79 79 31 2b 73 68 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a 3d 63 ┆ yy1:=yy1+sh_step; cycle:=c┆ 0x43fc0…43fe0 79 63 6c 65 2d 6c 67 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 ┆ycle-lg_delta; END; ┆ 0x43fe0…44000 45 4e 44 3b 0d 0a 20 20 45 4e 44 0d 0a 20 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 ┆END; END ELSE BEGIN c┆ 0x44000…44020 (27, 0, 3) 79 63 6c 65 3a 3d 73 68 5f 64 65 6c 74 61 20 53 48 52 20 32 3b 0d 0a 20 20 20 20 73 77 61 70 28 ┆ycle:=sh_delta SHR 2; swap(┆ 0x44020…44040 6c 67 5f 64 65 6c 74 61 2c 73 68 5f 64 65 6c 74 61 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 6c 67 ┆lg_delta,sh_delta); swap(lg┆ 0x44040…44060 5f 73 74 65 70 2c 73 68 5f 73 74 65 70 29 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 79 79 31 3c 3e ┆_step,sh_step); WHILE yy1<>┆ 0x44060…44080 79 79 32 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 5f 77 72 69 74 65 64 6f 74 ┆yy2 DO BEGIN Scr_writedot┆ 0x44080…440a0 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 20 20 20 20 79 79 31 3a 3d 79 79 31 2b 6c 67 5f 73 74 ┆(xx1,yy1); yy1:=yy1+lg_st┆ 0x440a0…440c0 65 70 3b 20 63 79 63 6c 65 3a 3d 63 79 63 6c 65 2b 73 68 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 ┆ep; cycle:=cycle+sh_delta; ┆ 0x440c0…440e0 20 20 49 46 20 63 79 63 6c 65 3e 6c 67 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a ┆ IF cycle>lg_delta THEN BEGIN ┆ 0x440e0…44100 20 20 20 20 20 20 20 20 78 78 31 3a 3d 78 78 31 2b 73 68 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a ┆ xx1:=xx1+sh_step; cycle:┆ 0x44100…44120 3d 63 79 63 6c 65 2d 6c 67 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆=cycle-lg_delta; END; ┆ 0x44120…44140 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e ┆ END; END; END; FUNCTION┆ 0x44140…44160 20 69 73 71 72 74 28 61 72 67 3a 20 49 4e 54 45 47 45 52 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 56 ┆ isqrt(arg: INTEGER):INTEGER; V┆ 0x44160…44180 41 52 0d 0a 20 20 6f 64 64 5f 69 6e 74 2c 20 6f 6c 64 5f 61 72 67 2c 20 66 69 72 73 74 5f 73 71 ┆AR odd_int, old_arg, first_sq┆ 0x44180…441a0 72 74 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6f 64 64 5f 69 6e 74 3a 3d ┆rt: INTEGER; BEGIN odd_int:=┆ 0x441a0…441c0 31 3b 20 6f 6c 64 5f 61 72 67 3a 3d 61 72 67 3b 0d 0a 20 20 57 48 49 4c 45 20 61 72 67 3e 3d 30 ┆1; old_arg:=arg; WHILE arg>=0┆ 0x441c0…441e0 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 61 72 67 3a 3d 61 72 67 2d 6f 64 64 5f 69 6e 74 3b ┆ DO BEGIN arg:=arg-odd_int;┆ 0x441e0…44200 0d 0a 20 20 20 20 6f 64 64 5f 69 6e 74 3a 3d 6f 64 64 5f 69 6e 74 2b 32 3b 0d 0a 20 20 45 4e 44 ┆ odd_int:=odd_int+2; END┆ 0x44200…44220 3b 0d 0a 20 20 66 69 72 73 74 5f 73 71 72 74 3a 3d 6f 64 64 5f 69 6e 74 20 53 48 52 20 31 3b 0d ┆; first_sqrt:=odd_int SHR 1; ┆ 0x44220…44240 0a 20 20 49 46 20 73 71 72 28 66 69 72 73 74 5f 73 71 72 74 29 2d 66 69 72 73 74 5f 73 71 72 74 ┆ IF sqr(first_sqrt)-first_sqrt┆ 0x44240…44260 2b 31 3e 6f 6c 64 5f 61 72 67 20 54 48 45 4e 0d 0a 20 20 20 20 69 73 71 72 74 3a 3d 66 69 72 73 ┆+1>old_arg THEN isqrt:=firs┆ 0x44260…44280 74 5f 73 71 72 74 2d 31 20 45 4c 53 45 20 69 73 71 72 74 3a 3d 66 69 72 73 74 5f 73 71 72 74 3b ┆t_sqrt-1 ELSE isqrt:=first_sqrt;┆ 0x44280…442a0 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 6f 70 65 72 61 74 ┆ END; PROCEDURE Scr_operat┆ 0x442a0…442c0 69 6f 6e 28 6f 70 72 3a 20 6f 70 72 74 79 70 65 3b 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 3a ┆ion(opr: oprtype;x1, y1, x2, y2:┆ 0x442c0…442e0 20 49 4e 54 45 47 45 52 3b 62 75 66 66 65 72 3a 20 62 75 66 74 79 70 65 29 3b 0d 0a 56 41 52 0d ┆ INTEGER;buffer: buftype); VAR ┆ 0x442e0…44300 0a 20 20 69 2c 78 2c 79 2c 79 79 2c 6b 31 2c 6b 32 2c 6c 2c 74 6f 74 61 6c 3a 20 49 4e 54 45 47 ┆ i,x,y,yy,k1,k2,l,total: INTEG┆ 0x44300…44320 45 52 3b 0d 0a 20 20 73 77 70 62 75 66 3a 20 61 72 72 61 79 28 2e 30 2e 2e 31 30 30 2e 29 20 6f ┆ER; swpbuf: array(.0..100.) o┆ 0x44320…44340 66 20 62 79 74 65 3b 0d 0a 20 20 62 75 66 70 3a 5e 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e ┆f byte; bufp:^integer; BEGIN┆ 0x44340…44360 0d 0a 20 20 6b 31 3a 3d 6f 66 73 28 62 75 66 66 65 72 5e 29 3b 6b 32 3a 3d 73 65 67 28 62 75 66 ┆ k1:=ofs(buffer^);k2:=seg(buf┆ 0x44360…44380 66 65 72 5e 29 3b 20 6c 3a 3d 28 78 32 2d 78 31 2b 37 29 20 44 49 56 20 38 3b 62 75 66 70 3a 3d ┆fer^); l:=(x2-x1+7) DIV 8;bufp:=┆ 0x44380…443a0 61 64 64 72 28 73 77 70 62 75 66 29 3b 0d 0a 20 20 46 4f 52 20 79 3a 3d 79 31 20 54 4f 20 79 32 ┆addr(swpbuf); FOR y:=y1 TO y2┆ 0x443a0…443c0 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 61 73 65 20 6f 70 72 20 6f 66 0d 0a 20 20 20 20 ┆ DO BEGIN case opr of ┆ 0x443c0…443e0 20 20 6c 6f 61 64 3a 20 6d 6f 76 65 6d 65 6d 74 6f 53 63 72 5f 28 78 31 2c 79 2c 6c 2c 6b 32 2c ┆ load: movememtoScr_(x1,y,l,k2,┆ 0x443e0…44400 6b 31 29 3b 0d 0a 20 20 20 20 20 20 73 61 76 65 3a 20 6d 6f 76 65 53 63 72 5f 74 6f 6d 65 6d 28 ┆k1); save: moveScr_tomem(┆ 0x44400…44420 (27, 0, 4) 78 31 2c 79 2c 6c 2c 6b 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 73 63 72 73 77 61 70 3a 0d 0a ┆x1,y,l,k2,k1); scrswap: ┆ 0x44420…44440 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 73 63 72 5f 74 6f 6d ┆ begin movescr_tom┆ 0x44440…44460 65 6d 28 78 31 2c 79 2c 6c 2c 73 65 67 28 73 77 70 62 75 66 29 2c 6f 66 73 28 73 77 70 62 75 66 ┆em(x1,y,l,seg(swpbuf),ofs(swpbuf┆ 0x44460…44480 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 6d 65 6d 74 6f 73 63 72 5f 28 78 31 2c 79 2c ┆)); movememtoscr_(x1,y,┆ 0x44480…444a0 6c 2c 6b 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 75 66 66 65 72 3a 3d 70 74 72 28 6b ┆l,k2,k1); buffer:=ptr(k┆ 0x444a0…444c0 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 28 73 77 70 62 75 66 2c 62 75 66 66 ┆2,k1); move(swpbuf,buff┆ 0x444c0…444e0 65 72 5e 2c 6c 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 6f 74 68 65 72 ┆er^,l); end; other┆ 0x444e0…44500 77 69 73 65 20 68 61 6c 74 3b 0d 0a 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 6b 31 3a 3d 6b ┆wise halt; end; k1:=k┆ 0x44500…44520 31 2b 6c 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆1+l; END; END; PROCEDURE ┆ 0x44520…44540 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 78 2c 20 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 20 20 ┆Wnd_WriteDot(x, y: INTEGER); ┆ 0x44540…44560 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 28 28 78 20 3e 3d 20 30 29 20 41 4e 44 20 28 78 20 3c ┆BEGIN IF ((x >= 0) AND (x <┆ 0x44560…44580 3d 20 57 6e 64 5f 2e 4d 61 78 58 29 29 20 41 4e 44 20 28 28 79 20 3e 3d 20 30 29 20 41 4e 44 20 ┆= Wnd_.MaxX)) AND ((y >= 0) AND ┆ 0x44580…445a0 28 79 20 3c 3d 20 57 6e 64 5f 2e 4d 61 78 59 29 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 53 63 ┆(y <= Wnd_.MaxY)) THEN Sc┆ 0x445a0…445c0 72 5f 57 72 69 74 65 44 6f 74 28 78 20 2b 20 57 6e 64 5f 2e 58 31 2c 20 79 20 2b 20 57 6e 64 5f ┆r_WriteDot(x + Wnd_.X1, y + Wnd_┆ 0x445c0…445e0 2e 59 31 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 57 6e 64 5f 52 65 61 ┆.Y1) END; FUNCTION Wnd_Rea┆ 0x445e0…44600 64 44 6f 74 28 78 2c 20 79 20 3a 20 49 4e 54 45 47 45 52 29 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d ┆dDot(x, y : INTEGER) : BOOLEAN; ┆ 0x44600…44620 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 28 78 20 3c 20 30 29 20 4f 52 20 28 78 20 3e ┆ BEGIN IF (x < 0) OR (x >┆ 0x44620…44640 20 57 6e 64 5f 2e 4d 61 78 58 29 20 4f 52 20 28 79 20 3c 20 30 29 20 4f 52 20 28 79 20 3e 20 57 ┆ Wnd_.MaxX) OR (y < 0) OR (y > W┆ 0x44640…44660 6e 64 5f 2e 4d 61 78 59 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 57 6e 64 5f 52 65 61 64 44 6f ┆nd_.MaxY) THEN Wnd_ReadDo┆ 0x44660…44680 74 20 3a 3d 20 66 61 6c 73 65 0d 0a 20 20 20 20 45 4c 53 45 20 57 6e 64 5f 52 65 61 64 44 6f 74 ┆t := false ELSE Wnd_ReadDot┆ 0x44680…446a0 20 3a 3d 20 53 63 72 5f 52 65 61 64 44 6f 74 28 78 20 2b 20 57 6e 64 5f 2e 58 31 2c 79 20 2b 20 ┆ := Scr_ReadDot(x + Wnd_.X1,y + ┆ 0x446a0…446c0 57 6e 64 5f 2e 59 31 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 6f 6e ┆Wnd_.Y1) END; FUNCTION con┆ 0x446c0…446e0 76 65 72 74 28 78 78 3a 52 45 41 4c 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 ┆vert(xx:REAL):INTEGER; BEGIN ┆ 0x446e0…44700 20 49 46 20 78 78 3e 6d 61 78 69 6e 74 20 54 48 45 4e 20 63 6f 6e 76 65 72 74 3a 3d 6d 61 78 69 ┆ IF xx>maxint THEN convert:=maxi┆ 0x44700…44720 6e 74 20 45 4c 53 45 20 49 46 20 78 78 3c 2d 6d 61 78 69 6e 74 20 54 48 45 4e 0d 0a 20 20 63 6f ┆nt ELSE IF xx<-maxint THEN co┆ 0x44720…44740 6e 76 65 72 74 3a 3d 2d 6d 61 78 69 6e 74 20 45 4c 53 45 20 63 6f 6e 76 65 72 74 3a 3d 74 72 75 ┆nvert:=-maxint ELSE convert:=tru┆ 0x44740…44760 6e 63 28 78 78 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 47 72 4f 75 74 ┆nc(xx); END; FUNCTION _GrOut┆ 0x44760…44780 63 6f 64 65 28 78 31 2c 20 79 31 2c 20 4d 61 78 58 2c 20 4d 61 78 59 3a 20 49 4e 54 45 47 45 52 ┆code(x1, y1, MaxX, MaxY: INTEGER┆ 0x44780…447a0 29 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 56 41 52 20 61 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e ┆): INTEGER; VAR a: BYTE; BEGIN┆ 0x447a0…447c0 0d 0a 20 20 61 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 31 3e 6d 61 78 78 20 54 48 45 4e 20 61 3a 3d ┆ a:=0; IF x1>maxx THEN a:=┆ 0x447c0…447e0 61 20 4f 52 20 24 30 34 3b 0d 0a 20 20 49 46 20 78 31 3c 30 20 54 48 45 4e 20 61 3a 3d 61 20 4f ┆a OR $04; IF x1<0 THEN a:=a O┆ 0x447e0…44800 52 20 24 30 38 3b 0d 0a 20 20 49 46 20 79 31 3e 6d 61 78 79 20 54 48 45 4e 20 61 3a 3d 61 20 4f ┆R $08; IF y1>maxy THEN a:=a O┆ 0x44800…44820 (27, 0, 5) 52 20 24 30 31 3b 0d 0a 20 20 49 46 20 79 31 3c 30 20 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 ┆R $01; IF y1<0 THEN a:=a OR $┆ 0x44820…44840 30 32 3b 0d 0a 20 20 5f 47 72 4f 75 74 63 6f 64 65 3a 3d 61 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 ┆02; _GrOutcode:=a; END; F┆ 0x44840…44860 55 4e 43 54 49 4f 4e 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 28 56 41 52 20 78 31 2c 20 79 31 ┆UNCTION _Wnd_ClipLine(VAR x1, y1┆ 0x44860…44880 2c 20 78 32 2c 20 79 32 20 3a 20 49 4e 54 45 47 45 52 29 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d 0a ┆, x2, y2 : INTEGER) : BOOLEAN; ┆ 0x44880…448a0 56 41 52 20 64 6f 6e 65 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d 0a 20 20 6f 75 74 63 6f 64 65 31 2c ┆VAR done : BOOLEAN; outcode1,┆ 0x448a0…448c0 20 6f 75 74 63 6f 64 65 32 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 64 ┆ outcode2 : INTEGER; BEGIN d┆ 0x448c0…448e0 6f 6e 65 20 20 3a 3d 20 46 41 4c 53 45 3b 0d 0a 20 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 ┆one := FALSE; _Wnd_ClipLine ┆ 0x448e0…44900 3a 3d 20 46 41 4c 53 45 3b 0d 0a 20 20 6f 75 74 63 6f 64 65 32 20 3a 3d 20 5f 47 72 4f 75 74 63 ┆:= FALSE; outcode2 := _GrOutc┆ 0x44900…44920 6f 64 65 28 78 32 2c 20 79 32 2c 20 57 6e 64 5f 2e 4d 61 78 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 ┆ode(x2, y2, Wnd_.MaxX, Wnd_.MaxY┆ 0x44920…44940 29 3b 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 6f 75 74 63 6f 64 65 31 20 3a 3d 20 5f 47 ┆); REPEAT outcode1 := _G┆ 0x44940…44960 72 4f 75 74 63 6f 64 65 28 78 31 2c 20 79 31 2c 20 20 57 6e 64 5f 2e 4d 61 78 58 2c 20 57 6e 64 ┆rOutcode(x1, y1, Wnd_.MaxX, Wnd┆ 0x44960…44980 5f 2e 4d 61 78 59 29 3b 0d 0a 20 20 20 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 4f 52 20 6f 75 ┆_.MaxY); IF (outcode1 OR ou┆ 0x44980…449a0 74 63 6f 64 65 32 29 20 3d 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 5f 57 ┆tcode2) = 0 THEN BEGIN _W┆ 0x449a0…449c0 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 20 20 20 20 64 6f 6e 65 ┆nd_ClipLine := TRUE; done┆ 0x449c0…449e0 20 3a 3d 20 54 52 55 45 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f ┆ := TRUE END ELSE IF (outco┆ 0x449e0…44a00 64 65 31 20 41 4e 44 20 20 6f 75 74 63 6f 64 65 32 29 20 3c 3e 20 30 20 54 48 45 4e 0d 0a 20 20 ┆de1 AND outcode2) <> 0 THEN ┆ 0x44a00…44a20 20 20 20 20 20 42 45 47 49 4e 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 3a 3d 20 46 41 4c 53 ┆ BEGIN _Wnd_ClipLine := FALS┆ 0x44a20…44a40 45 3b 20 64 6f 6e 65 20 3a 3d 20 54 52 55 45 0d 0a 20 20 20 20 45 4e 44 20 45 4c 53 45 20 42 45 ┆E; done := TRUE END ELSE BE┆ 0x44a40…44a60 47 49 4e 0d 0a 20 20 20 20 20 20 49 46 20 6f 75 74 63 6f 64 65 31 20 3d 20 30 20 54 48 45 4e 20 ┆GIN IF outcode1 = 0 THEN ┆ 0x44a60…44a80 42 45 47 49 4e 20 53 77 61 70 28 6f 75 74 63 6f 64 65 31 2c 6f 75 74 63 6f 64 65 32 29 3b 0d 0a ┆BEGIN Swap(outcode1,outcode2); ┆ 0x44a80…44aa0 20 20 20 20 20 20 53 77 61 70 28 78 31 2c 20 78 32 29 3b 0d 0a 20 20 20 20 20 20 53 77 61 70 28 ┆ Swap(x1, x2); Swap(┆ 0x44aa0…44ac0 79 31 2c 20 79 32 29 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 6f ┆y1, y2) END; IF (o┆ 0x44ac0…44ae0 75 74 63 6f 64 65 31 20 20 41 4e 44 20 24 30 31 29 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 ┆utcode1 AND $01) <> 0 THEN BEGI┆ 0x44ae0…44b00 4e 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 78 ┆N x1 := x1 + convert((x┆ 0x44b00…44b20 32 20 2d 20 78 31 29 20 2a 20 28 28 57 6e 64 5f 2e 4d 61 78 59 20 2d 20 79 31 29 20 2f 20 28 79 ┆2 - x1) * ((Wnd_.MaxY - y1) / (y┆ 0x44b20…44b40 32 20 20 2d 20 79 31 29 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 57 6e 64 5f 2e ┆2 - y1))); y1 := Wnd_.┆ 0x44b40…44b60 4d 61 78 59 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 ┆MaxY END ELSE IF (outcode┆ 0x44b60…44b80 31 20 41 4e 44 20 24 30 32 29 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆1 AND $02) <> 0 THEN BEGIN ┆ 0x44b80…44ba0 20 20 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 78 32 20 2d 20 78 31 29 ┆ x1 := x1 + convert((x2 - x1)┆ 0x44ba0…44bc0 20 2a 20 28 28 30 2e 30 2d 79 31 29 20 2f 20 28 79 32 20 2d 20 79 31 29 29 29 3b 0d 0a 20 20 20 ┆ * ((0.0-y1) / (y2 - y1))); ┆ 0x44bc0…44be0 20 20 20 20 20 79 31 20 3a 3d 20 30 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 49 46 20 ┆ y1 := 0 END ELSE IF ┆ 0x44be0…44c00 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 24 30 34 29 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 ┆(outcode1 AND $04) <> 0 THEN BEG┆ 0x44c00…44c20 (27, 1, 1) 49 4e 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 79 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 ┆IN y1 := y1 + convert((┆ 0x44c20…44c40 79 32 20 2d 20 79 31 29 20 2a 20 28 28 57 6e 64 5f 2e 4d 61 78 58 20 2d 20 78 31 29 20 2f 20 28 ┆y2 - y1) * ((Wnd_.MaxX - x1) / (┆ 0x44c40…44c60 78 32 20 2d 20 78 31 29 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 57 6e 64 5f 2e ┆x2 - x1))); x1 := Wnd_.┆ 0x44c60…44c80 4d 61 78 58 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 ┆MaxX END ELSE IF (outcode┆ 0x44c80…44ca0 31 20 41 4e 44 20 24 30 38 29 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆1 AND $08) <> 0 THEN BEGIN ┆ 0x44ca0…44cc0 20 20 20 20 79 31 20 3a 3d 20 79 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 79 32 20 2d 20 79 31 29 ┆ y1 := y1 + convert((y2 - y1)┆ 0x44cc0…44ce0 20 2a 28 28 30 2e 30 2d 78 31 29 20 2f 20 28 78 32 20 2d 20 78 31 29 29 29 3b 0d 0a 20 20 20 20 ┆ *((0.0-x1) / (x2 - x1))); ┆ 0x44ce0…44d00 20 20 20 20 78 31 20 3a 3d 20 30 0d 0a 20 20 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4e 44 0d ┆ x1 := 0 END END ┆ 0x44d00…44d20 0a 20 20 55 4e 54 49 4c 20 64 6f 6e 65 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ UNTIL done END; PROCEDURE┆ 0x44d20…44d40 20 57 6e 64 5f 44 72 61 77 4c 69 6e 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 3a 20 49 4e ┆ Wnd_DrawLine(x1, y1, x2, y2: IN┆ 0x44d40…44d60 54 45 47 45 52 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 5f 57 6e 64 5f 43 6c ┆TEGER); BEGIN IF _Wnd_Cl┆ 0x44d60…44d80 69 70 4c 69 6e 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 29 20 54 48 45 4e 0d 0a 20 20 20 ┆ipLine(x1, y1, x2, y2) THEN ┆ 0x44d80…44da0 20 20 20 53 63 72 5f 44 72 61 77 4c 69 6e 65 28 78 31 20 2b 20 57 6e 64 5f 2e 58 31 2c 20 79 31 ┆ Scr_DrawLine(x1 + Wnd_.X1, y1┆ 0x44da0…44dc0 20 2b 20 57 6e 64 5f 2e 59 31 2c 20 78 32 20 2b 20 57 6e 64 5f 2e 58 31 2c 0d 0a 20 20 20 20 20 ┆ + Wnd_.Y1, x2 + Wnd_.X1, ┆ 0x44dc0…44de0 20 79 32 20 2b 20 57 6e 64 5f 2e 59 31 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆ y2 + Wnd_.Y1); END; PROCE┆ 0x44de0…44e00 44 55 52 45 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 20 ┆DURE Wnd_DrawBox(x1, y1, x2, y2 ┆ 0x44e00…44e20 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 20 20 56 41 52 20 44 72 61 77 54 6f 70 2c 20 44 72 61 77 ┆: INTEGER); VAR DrawTop, Draw┆ 0x44e20…44e40 42 6f 74 2c 20 44 72 61 77 4c 65 66 74 2c 20 44 72 61 77 52 69 67 68 74 20 3a 20 42 4f 4f 4c 45 ┆Bot, DrawLeft, DrawRight : BOOLE┆ 0x44e40…44e60 41 4e 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 78 31 20 3e 20 78 32 20 54 48 45 ┆AN; BEGIN IF x1 > x2 THE┆ 0x44e60…44e80 4e 20 53 77 61 70 28 78 31 2c 20 78 32 29 3b 0d 0a 20 20 20 20 49 46 20 79 31 20 3e 20 79 32 20 ┆N Swap(x1, x2); IF y1 > y2 ┆ 0x44e80…44ea0 54 48 45 4e 20 53 77 61 70 28 79 31 2c 20 79 32 29 3b 0d 0a 0d 0a 20 20 20 20 49 46 20 78 31 20 ┆THEN Swap(y1, y2); IF x1 ┆ 0x44ea0…44ec0 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 20 79 ┆> Wnd_.MaxX THEN exit; IF y┆ 0x44ec0…44ee0 31 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 ┆1 > Wnd_.MaxY THEN exit; IF┆ 0x44ee0…44f00 20 78 32 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 20 79 32 20 3c 20 ┆ x2 < 0 THEN exit; IF y2 < ┆ 0x44f00…44f20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 0d 0a 20 20 20 20 44 72 61 77 54 6f 70 20 3a 3d 20 54 ┆0 THEN exit; DrawTop := T┆ 0x44f20…44f40 52 55 45 3b 0d 0a 20 20 20 20 44 72 61 77 42 6f 74 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 20 20 ┆RUE; DrawBot := TRUE; ┆ 0x44f40…44f60 44 72 61 77 4c 65 66 74 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 20 20 44 72 61 77 52 69 67 68 74 ┆DrawLeft := TRUE; DrawRight┆ 0x44f60…44f80 20 3a 3d 20 54 52 55 45 3b 0d 0a 0d 0a 20 20 20 20 49 46 20 78 31 20 3c 20 30 20 54 48 45 4e 20 ┆ := TRUE; IF x1 < 0 THEN ┆ 0x44f80…44fa0 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 78 31 20 3a 3d 20 30 3b 0d 0a 20 20 20 20 20 20 44 72 61 ┆BEGIN x1 := 0; Dra┆ 0x44fa0…44fc0 77 4c 65 66 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 49 46 ┆wLeft := FALSE END; IF┆ 0x44fc0…44fe0 20 79 31 20 3c 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 79 31 20 3a 3d 20 ┆ y1 < 0 THEN BEGIN y1 := ┆ 0x44fe0…45000 30 3b 0d 0a 20 20 20 20 20 20 44 72 61 77 54 6f 70 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 20 20 ┆0; DrawTop := FALSE ┆ 0x45000…45020 (27, 1, 2) 45 4e 44 3b 0d 0a 20 20 20 20 49 46 20 78 32 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e ┆END; IF x2 > Wnd_.MaxX THEN┆ 0x45020…45040 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 78 32 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 58 3b 0d 0a ┆ BEGIN x2 := Wnd_.MaxX; ┆ 0x45040…45060 20 20 20 20 20 20 44 72 61 77 52 69 67 68 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 20 20 45 4e ┆ DrawRight := FALSE EN┆ 0x45060…45080 44 3b 0d 0a 20 20 20 20 49 46 20 79 32 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 42 ┆D; IF y2 > Wnd_.MaxY THEN B┆ 0x45080…450a0 45 47 49 4e 0d 0a 20 20 20 20 20 20 79 32 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 59 3b 0d 0a 20 20 ┆EGIN y2 := Wnd_.MaxY; ┆ 0x450a0…450c0 20 20 20 20 44 72 61 77 42 6f 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a ┆ DrawBot := FALSE END; ┆ 0x450c0…450e0 0d 0a 20 20 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 57 6e 64 5f 2e 58 31 3b 0d 0a 20 20 20 20 78 ┆ x1 := x1 + Wnd_.X1; x┆ 0x450e0…45100 32 20 3a 3d 20 78 32 20 2b 20 57 6e 64 5f 2e 58 31 3b 0d 0a 20 20 20 20 79 31 20 3a 3d 20 28 79 ┆2 := x2 + Wnd_.X1; y1 := (y┆ 0x45100…45120 31 20 2b 20 57 6e 64 5f 2e 59 31 29 3b 0d 0a 20 20 20 20 79 32 20 3a 3d 20 28 79 32 20 2b 20 57 ┆1 + Wnd_.Y1); y2 := (y2 + W┆ 0x45120…45140 6e 64 5f 2e 59 31 29 3b 0d 0a 0d 0a 20 20 20 20 49 46 20 44 72 61 77 54 6f 70 20 54 48 45 4e 20 ┆nd_.Y1); IF DrawTop THEN ┆ 0x45140…45160 53 63 72 5f 44 72 61 77 4c 69 6e 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 31 29 3b 0d 0a 20 ┆Scr_DrawLine(x1, y1, x2, y1); ┆ 0x45160…45180 20 20 20 49 46 20 44 72 61 77 52 69 67 68 74 20 54 48 45 4e 20 53 63 72 5f 44 72 61 77 4c 69 6e ┆ IF DrawRight THEN Scr_DrawLin┆ 0x45180…451a0 65 28 78 32 2c 20 79 31 2c 20 78 32 2c 20 79 32 29 3b 0d 0a 20 20 20 20 49 46 20 44 72 61 77 42 ┆e(x2, y1, x2, y2); IF DrawB┆ 0x451a0…451c0 6f 74 20 54 48 45 4e 20 53 63 72 5f 44 72 61 77 4c 69 6e 65 28 78 32 2c 20 79 32 2c 20 78 31 2c ┆ot THEN Scr_DrawLine(x2, y2, x1,┆ 0x451c0…451e0 20 79 32 29 3b 0d 0a 20 20 20 20 49 46 20 44 72 61 77 4c 65 66 74 20 54 48 45 4e 20 53 63 72 5f ┆ y2); IF DrawLeft THEN Scr_┆ 0x451e0…45200 44 72 61 77 4c 69 6e 65 28 78 31 2c 20 79 32 2c 20 78 31 2c 20 79 31 29 0d 0a 20 20 45 4e 44 3b ┆DrawLine(x1, y2, x1, y1) END;┆ 0x45200…45220 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 44 72 61 77 43 68 61 72 28 78 2c 20 79 20 ┆ PROCEDURE Wnd_DrawChar(x, y ┆ 0x45220…45240 3a 20 49 4e 54 45 47 45 52 3b 20 63 20 3a 20 43 48 41 52 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a ┆: INTEGER; c : CHAR); BEGIN ┆ 0x45240…45260 20 20 20 20 49 46 20 78 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 20 ┆ IF x < 0 THEN exit; IF ┆ 0x45260…45280 28 78 2b 37 29 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 ┆(x+7) > Wnd_.MaxX THEN exit; ┆ 0x45280…452a0 20 20 20 49 46 20 79 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 20 49 46 20 ┆ IF y < 0 THEN exit; IF ┆ 0x452a0…452c0 28 79 2b 37 29 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 ┆(y+7) > Wnd_.MaxY THEN exit; ┆ 0x452c0…452e0 20 20 53 63 72 5f 44 72 61 77 43 68 61 72 28 28 78 20 2b 20 57 6e 64 5f 2e 58 31 20 2b 20 37 29 ┆ Scr_DrawChar((x + Wnd_.X1 + 7)┆ 0x452e0…45300 20 41 4e 44 20 24 46 46 46 38 2c 20 28 79 20 2b 20 57 6e 64 5f 2e 59 31 29 2c 20 63 29 0d 0a 20 ┆ AND $FFF8, (y + Wnd_.Y1), c) ┆ 0x45300…45320 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 44 72 61 77 54 65 78 74 28 ┆ END; PROCEDURE Wnd_DrawText(┆ 0x45320…45340 78 2c 20 79 20 3a 20 49 4e 54 45 47 45 52 3b 20 74 20 3a 73 74 72 38 30 20 29 3b 0d 0a 20 20 56 ┆x, y : INTEGER; t :str80 ); V┆ 0x45340…45360 41 52 20 69 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 46 4f ┆AR i : INTEGER; BEGIN FO┆ 0x45360…45380 52 20 69 20 3a 3d 20 31 20 54 4f 20 6c 65 6e 28 74 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 ┆R i := 1 TO len(t) DO BEGIN ┆ 0x45380…453a0 20 20 20 57 6e 64 5f 44 72 61 77 43 68 61 72 28 78 2c 20 79 2c 20 74 5b 69 5d 29 3b 0d 0a 20 20 ┆ Wnd_DrawChar(x, y, tÆiÅ); ┆ 0x453a0…453c0 20 20 20 20 78 20 3a 3d 20 78 20 2b 20 38 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 45 4e 44 3b 0d ┆ x := x + 8 END END; ┆ 0x453c0…453e0 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 63 69 72 63 6c 65 28 63 78 2c 20 63 79 2c 20 ┆ PROCEDURE Wnd_circle(cx, cy, ┆ 0x453e0…45400 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 61 2c 20 61 66 2c ┆radius: INTEGER); VAR a, af,┆ 0x45400…45420 (27, 1, 3) 20 62 2c 20 62 66 2c 20 74 61 72 67 65 74 2c 20 72 32 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 ┆ b, bf, target, r2: INTEGER; BE┆ 0x45420…45440 47 49 4e 0d 0a 20 20 74 61 72 67 65 74 3a 3d 30 3b 20 61 3a 3d 20 72 61 64 69 75 73 3b 20 62 3a ┆GIN target:=0; a:= radius; b:┆ 0x45440…45460 3d 30 3b 20 72 32 3a 3d 73 71 72 28 72 61 64 69 75 73 29 3b 0d 0a 20 20 57 48 49 4c 45 20 61 3e ┆=0; r2:=sqr(radius); WHILE a>┆ 0x45460…45480 3d 62 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 62 3a 3d 69 73 71 72 74 28 72 32 20 2d 20 73 ┆=b DO BEGIN b:=isqrt(r2 - s┆ 0x45480…454a0 71 72 28 61 29 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 74 61 72 67 65 74 2c 20 62 29 3b 0d 0a 20 ┆qr(a)); swap(target, b); ┆ 0x454a0…454c0 20 20 20 57 48 49 4c 45 20 62 3c 74 61 72 67 65 74 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆ WHILE b<target DO BEGIN ┆ 0x454c0…454e0 20 20 61 66 3a 3d 53 63 72 5f 61 73 70 65 63 74 2a 61 20 44 49 56 20 31 30 30 3b 20 62 66 3a 3d ┆ af:=Scr_aspect*a DIV 100; bf:=┆ 0x454e0…45500 53 63 72 5f 61 73 70 65 63 74 2a 62 20 44 49 56 20 31 30 30 3b 0d 0a 20 20 20 20 20 20 57 6e 64 ┆Scr_aspect*b DIV 100; Wnd┆ 0x45500…45520 5f 57 72 69 74 65 44 6f 74 28 63 78 2b 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f 57 72 69 74 65 ┆_WriteDot(cx+af,cy+b); Wnd_Write┆ 0x45520…45540 44 6f 74 28 63 78 2b 62 66 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 57 72 69 74 ┆Dot(cx+bf,cy+a); Wnd_Writ┆ 0x45540…45560 65 44 6f 74 28 63 78 2d 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 63 ┆eDot(cx-af,cy+b); Wnd_WriteDot(c┆ 0x45560…45580 78 2d 62 66 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 ┆x-bf,cy+a); Wnd_WriteDot(┆ 0x45580…455a0 63 78 2d 61 66 2c 63 79 2d 62 29 3b 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 63 78 2d 62 66 2c ┆cx-af,cy-b); Wnd_WriteDot(cx-bf,┆ 0x455a0…455c0 63 79 2d 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 63 78 2b 61 66 ┆cy-a); Wnd_WriteDot(cx+af┆ 0x455c0…455e0 2c 63 79 2d 62 29 3b 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 63 78 2b 62 66 2c 63 79 2d 61 29 ┆,cy-b); Wnd_WriteDot(cx+bf,cy-a)┆ 0x455e0…45600 3b 0d 0a 20 20 20 20 20 20 62 3a 3d 62 2b 31 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 ┆; b:=b+1; END; ┆ 0x45600…45620 61 3a 3d 61 2d 31 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f ┆a:=a-1; END; END; FUNCTIO┆ 0x45620…45640 4e 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 20 3a 20 52 45 41 4c 29 20 3a 20 49 4e 54 ┆N _Wld_ToWindowX(x : REAL) : INT┆ 0x45640…45660 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f ┆EGER; BEGIN _Wld_ToWindo┆ 0x45660…45680 77 58 20 3a 3d 20 63 6f 6e 76 65 72 74 28 28 28 78 20 2d 20 57 6c 64 5f 2e 58 31 29 20 2a 20 57 ┆wX := convert(((x - Wld_.X1) * W┆ 0x45680…456a0 6e 64 5f 2e 4d 61 78 58 29 20 2f 20 57 6c 64 5f 2e 58 52 61 6e 67 65 29 0d 0a 20 20 45 4e 44 3b ┆nd_.MaxX) / Wld_.XRange) END;┆ 0x456a0…456c0 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 20 3a 20 ┆ FUNCTION _Wld_ToWindowY(y : ┆ 0x456c0…456e0 52 45 41 4c 29 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 5f ┆REAL) : INTEGER; BEGIN _┆ 0x456e0…45700 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 20 3a 3d 20 63 6f 6e 76 65 72 74 28 28 28 79 20 2d 20 57 ┆Wld_ToWindowY := convert(((y - W┆ 0x45700…45720 6c 64 5f 2e 59 31 29 20 2a 20 57 6e 64 5f 2e 4d 61 78 59 29 20 2f 20 57 6c 64 5f 2e 59 52 61 6e ┆ld_.Y1) * Wnd_.MaxY) / Wld_.YRan┆ 0x45720…45740 67 65 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 61 76 65 76 69 65 ┆ge) END; PROCEDURE Savevie┆ 0x45740…45760 77 70 6f 72 74 28 6e 6f 3a 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 73 69 7a 3a 20 ┆wport(no:INTEGER); VAR siz: ┆ 0x45760…45780 49 4e 54 45 47 45 52 3b 0d 0a 20 20 69 2c 6a 2c 61 64 72 6f 66 73 2c 61 64 72 73 65 67 09 3a 20 ┆INTEGER; i,j,adrofs,adrseg : ┆ 0x45780…457a0 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 ┆INTEGER; BEGIN WITH Wnd_arr(┆ 0x457a0…457c0 2e 6e 6f 2e 29 2c 73 61 76 65 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 ┆.no.),save_arr(.no.) DO BEGIN ┆ 0x457c0…457e0 20 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 ┆ IF txt_mode THEN BEGIN ┆ 0x457e0…45800 20 73 69 7a 3a 3d 28 74 78 74 6d 61 78 78 2b 31 29 2a 28 74 78 74 6d 61 78 79 2b 31 29 2a 32 3b ┆ siz:=(txtmaxx+1)*(txtmaxy+1)*2;┆ 0x45800…45820 (27, 1, 4) 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f 6e 74 65 6e 74 3d 4e 49 4c 29 20 4f 52 20 28 73 69 7a ┆ IF (content=NIL) OR (siz┆ 0x45820…45840 3e 6c 65 6e 67 74 68 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 20 61 6c 6c ┆>length) THEN BEGIN all┆ 0x45840…45860 6f 63 61 74 65 28 63 6f 6e 74 65 6e 74 2c 73 69 7a 29 3b 20 6c 65 6e 67 74 68 3a 3d 73 69 7a 20 ┆ocate(content,siz); length:=siz ┆ 0x45860…45880 45 4e 44 3b 0d 0a 20 20 20 20 20 20 61 64 72 73 65 67 3a 3d 73 65 67 28 63 6f 6e 74 65 6e 74 5e ┆END; adrseg:=seg(content^┆ 0x45880…458a0 29 3b 20 61 64 72 6f 66 73 3a 3d 6f 66 73 28 63 6f 6e 74 65 6e 74 5e 29 3b 0d 0a 20 20 20 20 20 ┆); adrofs:=ofs(content^); ┆ 0x458a0…458c0 20 46 4f 52 20 69 3a 3d 74 78 74 79 31 20 54 4f 20 74 78 74 79 31 2b 74 78 74 6d 61 78 79 20 44 ┆ FOR i:=txty1 TO txty1+txtmaxy D┆ 0x458c0…458e0 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 46 4f 52 20 6a 3a 3d 74 78 74 78 31 20 54 4f ┆O BEGIN FOR j:=txtx1 TO┆ 0x458e0…45900 20 74 78 74 78 31 2b 74 78 74 6d 61 78 78 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 ┆ txtx1+txtmaxx DO BEGIN ┆ 0x45900…45920 20 20 20 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3a 3d 74 78 74 5f 6c 69 ┆ memw(.adrseg:adrofs.):=txt_li┆ 0x45920…45940 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 6f 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 ┆neptr(.i.)^(.j.).both; ┆ 0x45940…45960 20 20 61 64 72 6f 66 73 3a 3d 61 64 72 6f 66 73 2b 32 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 ┆ adrofs:=adrofs+2; END┆ 0x45960…45980 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 ┆; END; END ELSE┆ 0x45980…459a0 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 73 69 7a 3a 3d 28 6d 61 78 78 2b 38 29 20 44 49 56 20 ┆ BEGIN siz:=(maxx+8) DIV ┆ 0x459a0…459c0 38 20 2a 20 28 6d 61 78 79 2b 31 29 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f 6e 74 65 6e 74 ┆8 * (maxy+1); IF (content┆ 0x459c0…459e0 3d 4e 49 4c 29 20 4f 52 20 28 73 69 7a 3e 6c 65 6e 67 74 68 29 20 54 48 45 4e 0d 0a 20 20 20 20 ┆=NIL) OR (siz>length) THEN ┆ 0x459e0…45a00 20 20 20 20 42 45 47 49 4e 20 61 6c 6c 6f 63 61 74 65 28 63 6f 6e 74 65 6e 74 2c 73 69 7a 29 3b ┆ BEGIN allocate(content,siz);┆ 0x45a00…45a20 20 6c 65 6e 67 74 68 3a 3d 73 69 7a 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 6f 6c 64 31 3a 3d 57 ┆ length:=siz END; old1:=W┆ 0x45a20…45a40 6c 64 5f 2e 78 6f 6c 64 3b 20 6f 6c 64 32 3a 3d 57 6c 64 5f 2e 79 6f 6c 64 3b 0d 0a 20 20 20 20 ┆ld_.xold; old2:=Wld_.yold; ┆ 0x45a40…45a60 20 20 53 63 72 5f 6f 70 65 72 61 74 69 6f 6e 28 73 61 76 65 2c 20 78 31 2c 20 79 31 2c 20 6d 61 ┆ Scr_operation(save, x1, y1, ma┆ 0x45a60…45a80 78 78 2b 78 31 2c 20 6d 61 78 79 2b 79 31 2c 63 6f 6e 74 65 6e 74 29 3b 0d 0a 20 20 20 20 45 4e ┆xx+x1, maxy+y1,content); EN┆ 0x45a80…45aa0 44 3b 0d 0a 20 20 20 20 77 69 6e 64 3a 3d 57 6e 64 5f 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 73 ┆D; wind:=Wnd_; END; s┆ 0x45aa0…45ac0 63 72 5f 73 77 61 70 5f 3a 3d 6c 6f 61 64 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 0d 0a 50 52 4f ┆cr_swap_:=load; END; PRO┆ 0x45ac0…45ae0 43 45 44 55 52 45 20 4c 6f 61 64 76 69 65 77 70 6f 72 74 28 6e 6f 2c 78 2c 79 3a 20 49 4e 54 45 ┆CEDURE Loadviewport(no,x,y: INTE┆ 0x45ae0…45b00 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 62 6f 2c 69 2c 6a 2c 61 64 72 6f 66 73 2c 61 64 72 73 ┆GER); VAR bo,i,j,adrofs,adrs┆ 0x45b00…45b20 65 67 2c 6e 6f 32 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6e 6f 32 3a ┆eg,no2 : INTEGER; BEGIN no2:┆ 0x45b20…45b40 3d 61 62 73 28 6e 6f 29 3b 0d 0a 20 20 57 6e 64 5f 3a 3d 57 6e 64 5f 61 72 72 28 2e 6e 6f 32 2e ┆=abs(no); Wnd_:=Wnd_arr(.no2.┆ 0x45b40…45b60 29 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 32 2e 29 2c 20 73 61 76 65 5f ┆); WITH Wnd_arr(.no2.), save_┆ 0x45b60…45b80 61 72 72 28 2e 6e 6f 32 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 63 6f 6e 74 ┆arr(.no2.) DO BEGIN IF cont┆ 0x45b80…45ba0 65 6e 74 3d 4e 49 4c 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 ┆ent=NIL THEN exit; x1:=x1+x┆ 0x45ba0…45bc0 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 79 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 74 78 74 ┆; y1:=y1+y; txtx1:=txt┆ 0x45bc0…45be0 78 31 2b 78 3b 0d 0a 20 20 20 20 74 78 74 79 31 3a 3d 74 78 74 79 31 2b 79 3b 0d 0a 20 20 20 20 ┆x1+x; txty1:=txty1+y; ┆ 0x45be0…45c00 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 61 64 ┆IF txt_mode THEN BEGIN ad┆ 0x45c00…45c20 (27, 1, 5) 72 73 65 67 3a 3d 73 65 67 28 63 6f 6e 74 65 6e 74 5e 29 3b 20 61 64 72 6f 66 73 3a 3d 6f 66 73 ┆rseg:=seg(content^); adrofs:=ofs┆ 0x45c20…45c40 28 63 6f 6e 74 65 6e 74 5e 29 3b 0d 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 74 78 74 79 31 20 ┆(content^); FOR i:=txty1 ┆ 0x45c40…45c60 54 4f 20 74 78 74 79 31 2b 74 78 74 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 46 4f 52 ┆TO txty1+txtmaxy DO FOR┆ 0x45c60…45c80 20 6a 3a 3d 74 78 74 78 31 20 54 4f 20 74 78 74 78 31 2b 74 78 74 6d 61 78 78 20 44 4f 20 42 45 ┆ j:=txtx1 TO txtx1+txtmaxx DO BE┆ 0x45c80…45ca0 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 73 63 72 5f 73 77 61 70 5f 20 3d 73 63 72 ┆GIN if scr_swap_ =scr┆ 0x45ca0…45cc0 73 77 61 70 20 74 68 65 6e 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 3a ┆swap then begin bo:┆ 0x45cc0…45ce0 3d 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 6f 74 68 3b 0d 0a 20 ┆=txt_lineptr(.i.)^(.j.).both; ┆ 0x45ce0…45d00 20 20 20 20 20 20 20 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e ┆ txt_lineptr(.i.)^(.j.┆ 0x45d00…45d20 29 2e 62 6f 74 68 3a 3d 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3b 0d 0a ┆).both:=memw(.adrseg:adrofs.); ┆ 0x45d20…45d40 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e ┆ memw(.adrseg:adrofs.┆ 0x45d40…45d60 29 3a 3d 62 6f 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0d 0a 20 20 20 20 ┆):=bo; end else ┆ 0x45d60…45d80 20 20 20 20 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 ┆ txt_lineptr(.i.)^(.j.).b┆ 0x45d80…45da0 6f 74 68 3a 3d 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3b 0d 0a 20 20 20 ┆oth:=memw(.adrseg:adrofs.); ┆ 0x45da0…45dc0 20 20 20 20 20 20 20 61 64 72 6f 66 73 3a 3d 61 64 72 6f 66 73 2b 32 3b 0d 0a 20 20 20 20 20 20 ┆ adrofs:=adrofs+2; ┆ 0x45dc0…45de0 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 42 45 47 49 4e 0d ┆ END; END ELSE BEGIN ┆ 0x45de0…45e00 0a 20 20 20 20 20 20 20 53 63 72 5f 6f 70 65 72 61 74 69 6f 6e 28 73 63 72 5f 73 77 61 70 5f 2c ┆ Scr_operation(scr_swap_,┆ 0x45e00…45e20 78 31 2c 20 79 31 2c 20 6d 61 78 78 2b 78 31 2c 20 6d 61 78 79 2b 79 31 2c 63 6f 6e 74 65 6e 74 ┆x1, y1, maxx+x1, maxy+y1,content┆ 0x45e20…45e40 29 3b 0d 0a 20 20 20 20 20 20 20 57 6c 64 5f 2e 78 6f 6c 64 3a 3d 6f 6c 64 31 3b 20 57 6c 64 5f ┆); Wld_.xold:=old1; Wld_┆ 0x45e40…45e60 2e 79 6f 6c 64 3a 3d 6f 6c 64 32 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 49 46 20 6e ┆.yold:=old2; END; IF n┆ 0x45e60…45e80 6f 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 72 65 6c 65 61 73 65 28 63 6f ┆o<0 THEN BEGIN release(co┆ 0x45e80…45ea0 6e 74 65 6e 74 29 3b 63 6f 6e 74 65 6e 74 3a 3d 4e 49 4c 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆ntent);content:=NIL END; ┆ 0x45ea0…45ec0 20 20 20 57 6e 64 5f 3a 3d 77 69 6e 64 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 57 49 54 48 20 57 ┆ Wnd_:=wind; END; WITH W┆ 0x45ec0…45ee0 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 3b 0d 0a 20 20 20 ┆nd_ DO BEGIN x1:=x1+x; ┆ 0x45ee0…45f00 20 79 31 3a 3d 79 31 2b 79 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 74 78 74 78 31 2b 78 3b 0d ┆ y1:=y1+y; txtx1:=txtx1+x; ┆ 0x45f00…45f20 0a 20 20 20 20 74 78 74 79 31 3a 3d 74 78 74 79 31 2b 79 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 28 2a ┆ txty1:=txty1+y; END; (*┆ 0x45f20…45f40 20 20 73 61 76 65 5f 61 72 72 28 2e 6e 6f 32 2e 29 2e 77 69 6e 64 3a 3d 57 6e 64 5f 3b 2a 29 0d ┆ save_arr(.no2.).wind:=Wnd_;*) ┆ 0x45f40…45f60 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 3a 3d 6e 6f 32 3b 0d 0a 20 20 73 63 72 5f 73 77 61 70 5f ┆ Wnd_actual:=no2; scr_swap_┆ 0x45f60…45f80 3a 3d 6c 6f 61 64 0d 0a 45 4e 44 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 77 61 70 76 69 ┆:=load END; procedure swapvi┆ 0x45f80…45fa0 65 77 70 6f 72 74 28 6e 6f 2c 78 2c 79 3a 69 6e 74 65 67 65 72 29 3b 0d 0a 62 65 67 69 6e 0d 0a ┆ewport(no,x,y:integer); begin ┆ 0x45fa0…45fc0 20 20 73 63 72 5f 73 77 61 70 5f 3a 3d 73 63 72 73 77 61 70 3b 0d 0a 20 20 6c 6f 61 64 76 69 65 ┆ scr_swap_:=scrswap; loadvie┆ 0x45fc0…45fe0 77 70 6f 72 74 28 6e 6f 2c 78 2c 79 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆wport(no,x,y); end; PROCEDUR┆ 0x45fe0…46000 45 20 70 6c 6f 74 28 78 2c 20 79 20 3a 20 52 45 41 4c 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 ┆E plot(x, y : REAL); BEGIN ┆ 0x46000…46020 (28, 0, 1) 20 20 20 57 6e 64 5f 57 72 69 74 65 44 6f 74 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 ┆ Wnd_WriteDot(_Wld_ToWindowX(x┆ 0x46020…46040 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 29 3b 0d 0a 20 20 20 20 57 6c 64 5f ┆), _Wld_ToWindowY(y)); Wld_┆ 0x46040…46060 2e 58 6f 6c 64 3a 3d 78 3b 20 57 6c 64 5f 2e 59 6f 6c 64 3a 3d 79 3b 0d 0a 20 20 45 4e 44 3b 0d ┆.Xold:=x; Wld_.Yold:=y; END; ┆ 0x46060…46080 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 63 69 72 63 6c 65 28 78 2c 79 2c 72 3a 20 52 45 41 4c 29 ┆ PROCEDURE circle(x,y,r: REAL)┆ 0x46080…460a0 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 63 69 72 63 6c 65 28 5f 57 6c 64 5f 54 6f ┆; BEGIN Wnd_circle(_Wld_To┆ 0x460a0…460c0 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 2c 5f 77 ┆WindowX(x), _Wld_ToWindowY(y),_w┆ 0x460c0…460e0 6c 64 5f 74 6f 77 69 6e 64 6f 77 59 28 72 29 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 ┆ld_towindowY(r)); END; FUNCT┆ 0x460e0…46100 49 4f 4e 20 67 65 74 63 6f 6c 6f 72 28 78 2c 20 79 20 3a 20 52 45 41 4c 29 3a 20 42 4f 4f 4c 45 ┆ION getcolor(x, y : REAL): BOOLE┆ 0x46100…46120 41 4e 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 67 65 74 63 6f 6c 6f 72 20 3a 3d 20 57 6e ┆AN; BEGIN getcolor := Wn┆ 0x46120…46140 64 5f 52 65 61 64 44 6f 74 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c ┆d_ReadDot(_Wld_ToWindowX(x), _Wl┆ 0x46140…46160 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆d_ToWindowY(y)) END; PROCE┆ 0x46160…46180 44 55 52 45 20 6d 6f 76 65 74 6f 28 78 2c 79 3a 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 ┆DURE moveto(x,y:REAL); BEGIN ┆ 0x46180…461a0 20 57 6c 64 5f 2e 58 4f 6c 64 3a 3d 78 3b 20 57 6c 64 5f 2e 59 4f 6c 64 3a 3d 79 3b 0d 0a 45 4e ┆ Wld_.XOld:=x; Wld_.YOld:=y; EN┆ 0x461a0…461c0 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 72 65 6c 28 78 2c 79 3a 20 52 45 41 ┆D; PROCEDURE moverel(x,y: REA┆ 0x461c0…461e0 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 57 6c 64 5f 2e 58 4f 6c 64 2b 78 ┆L); BEGIN moveto(Wld_.XOld+x┆ 0x461e0…46200 2c 57 6c 64 5f 2e 59 4f 6c 64 2b 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆,Wld_.YOld+y); END; PROCEDUR┆ 0x46200…46220 45 20 44 72 61 77 74 6f 28 78 32 2c 20 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 20 20 42 45 47 49 ┆E Drawto(x2, y2 : REAL); BEGI┆ 0x46220…46240 4e 0d 0a 20 20 20 20 57 6e 64 5f 44 72 61 77 4c 69 6e 65 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f ┆N Wnd_DrawLine(_Wld_ToWindo┆ 0x46240…46260 77 58 28 57 6c 64 5f 2e 58 4f 6c 64 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 57 6c ┆wX(Wld_.XOld), _Wld_ToWindowY(Wl┆ 0x46260…46280 64 5f 2e 59 4f 6c 64 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f 57 6c 64 ┆d_.YOld), _Wld┆ 0x46280…462a0 5f 54 6f 57 69 6e 64 6f 77 58 28 78 32 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 ┆_ToWindowX(x2), _Wld_ToWindowY(y┆ 0x462a0…462c0 32 29 29 3b 0d 0a 20 20 20 20 57 6c 64 5f 2e 58 4f 6c 64 3a 3d 78 32 3b 20 57 6c 64 5f 2e 59 4f ┆2)); Wld_.XOld:=x2; Wld_.YO┆ 0x462c0…462e0 6c 64 3a 3d 79 32 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 ┆ld:=y2; END; PROCEDURE dra┆ 0x462e0…46300 77 72 65 6c 28 78 2c 79 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 64 72 61 77 74 ┆wrel(x,y: REAL); BEGIN drawt┆ 0x46300…46320 6f 28 78 2b 57 6c 64 5f 2e 58 4f 6c 64 2c 79 2b 57 6c 64 5f 2e 59 4f 6c 64 29 3b 0d 0a 45 4e 44 ┆o(x+Wld_.XOld,y+Wld_.YOld); END┆ 0x46320…46340 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 43 68 61 72 28 78 2c 20 79 20 3a 20 52 ┆; PROCEDURE PlotChar(x, y : R┆ 0x46340…46360 45 41 4c 3b 20 63 20 3a 20 43 48 41 52 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e ┆EAL; c : CHAR); BEGIN Wn┆ 0x46360…46380 64 5f 44 72 61 77 43 68 61 72 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 ┆d_DrawChar(_Wld_ToWindowX(x), _W┆ 0x46380…463a0 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 2c 20 63 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 ┆ld_ToWindowY(y), c) END; P┆ 0x463a0…463c0 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 54 65 78 74 28 78 2c 20 79 3a 20 52 45 41 4c 3b 20 74 3a ┆ROCEDURE PlotText(x, y: REAL; t:┆ 0x463c0…463e0 20 73 74 72 38 30 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 44 72 61 77 54 ┆ str80); BEGIN Wnd_DrawT┆ 0x463e0…46400 65 78 74 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c 64 5f 54 6f 57 49 ┆ext(_Wld_ToWindowX(x), _Wld_ToWI┆ 0x46400…46420 (28, 0, 2) 6e 64 6f 77 59 28 79 29 2c 20 74 29 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 70 72 6f 63 65 64 ┆ndowY(y), t) END; proced┆ 0x46420…46440 75 72 65 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 78 2c 79 3a 20 72 65 61 6c 3b 20 73 69 7a 78 ┆ure plottextsize(x,y: real; sizx┆ 0x46440…46460 2c 73 69 7a 79 3a 20 69 6e 74 65 67 65 72 3b 20 73 3a 20 73 74 72 38 30 29 3b 0d 0a 76 61 72 0d ┆,sizy: integer; s: str80); var ┆ 0x46460…46480 0a 20 20 69 2c 78 31 2c 79 31 2c 78 32 2c 79 32 2c 78 62 65 67 2c 78 65 6e 64 2c 79 62 65 67 2c ┆ i,x1,y1,x2,y2,xbeg,xend,ybeg,┆ 0x46480…464a0 79 65 6e 64 2c 78 78 2c 79 79 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 63 62 79 74 65 3a 20 62 ┆yend,xx,yy: integer; cbyte: b┆ 0x464a0…464c0 79 74 65 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 78 78 3a 3d 5f 77 6c 64 5f 74 6f 77 69 6e 64 6f 77 ┆yte; begin xx:=_wld_towindow┆ 0x464c0…464e0 78 28 78 29 3b 0d 0a 20 20 79 79 3a 3d 5f 77 6c 64 5f 74 6f 77 69 6e 64 6f 77 79 28 79 29 3b 0d ┆x(x); yy:=_wld_towindowy(y); ┆ 0x464e0…46500 0a 20 20 66 6f 72 20 69 3a 3d 31 20 74 6f 20 6c 65 6e 28 73 29 20 64 6f 20 62 65 67 69 6e 0d 0a ┆ for i:=1 to len(s) do begin ┆ 0x46500…46520 20 20 20 20 66 6f 72 20 79 31 3a 3d 30 20 74 6f 20 37 20 64 6f 20 62 65 67 69 6e 0d 0a 20 20 20 ┆ for y1:=0 to 7 do begin ┆ 0x46520…46540 20 20 20 63 62 79 74 65 3a 3d 73 63 72 5f 63 68 61 72 28 2e 62 79 74 65 28 73 28 2e 69 2e 29 29 ┆ cbyte:=scr_char(.byte(s(.i.))┆ 0x46540…46560 2c 28 37 2d 79 31 29 2e 29 20 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 78 31 3a 3d 30 20 74 6f 20 ┆,(7-y1).) ; for x1:=0 to ┆ 0x46560…46580 37 20 64 6f 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 63 62 79 74 65 20 73 68 ┆7 do begin if (cbyte sh┆ 0x46580…465a0 72 20 28 37 2d 78 31 29 29 20 61 6e 64 20 31 3c 3e 30 20 74 68 65 6e 20 62 65 67 69 6e 0d 0a 20 ┆r (7-x1)) and 1<>0 then begin ┆ 0x465a0…465c0 20 20 20 20 20 20 20 20 20 78 62 65 67 3a 3d 78 78 2b 78 31 2a 73 69 7a 78 3b 0d 0a 20 20 20 20 ┆ xbeg:=xx+x1*sizx; ┆ 0x465c0…465e0 20 20 20 20 20 20 78 65 6e 64 3a 3d 78 62 65 67 2b 73 69 7a 78 2d 31 3b 0d 0a 20 20 20 20 20 20 ┆ xend:=xbeg+sizx-1; ┆ 0x465e0…46600 20 20 20 20 79 62 65 67 3a 3d 79 79 2b 79 31 2a 73 69 7a 79 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆ ybeg:=yy+y1*sizy; ┆ 0x46600…46620 20 79 65 6e 64 3a 3d 79 62 65 67 2b 73 69 7a 79 2d 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 66 ┆ yend:=ybeg+sizy-1; f┆ 0x46620…46640 6f 72 20 78 32 3a 3d 78 62 65 67 20 74 6f 20 78 65 6e 64 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 ┆or x2:=xbeg to xend do ┆ 0x46640…46660 20 20 20 20 66 6f 72 20 79 32 3a 3d 79 62 65 67 20 74 6f 20 79 65 6e 64 20 64 6f 20 77 6e 64 5f ┆ for y2:=ybeg to yend do wnd_┆ 0x46660…46680 77 72 69 74 65 64 6f 74 28 78 32 2c 79 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a ┆writedot(x2,y2); end; ┆ 0x46680…466a0 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 78 78 3a 3d 78 78 ┆ end; end; xx:=xx┆ 0x466a0…466c0 2b 73 69 7a 78 2a 38 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 20 28 2a 20 70 72 6f 63 65 64 ┆+sizx*8; end; end; (* proced┆ 0x466c0…466e0 75 72 65 20 70 6c 6f 74 63 68 61 72 73 69 7a 65 28 78 2c 79 3a 20 72 65 61 6c 3b 20 73 69 7a 3a ┆ure plotcharsize(x,y: real; siz:┆ 0x466e0…46700 20 69 6e 74 65 67 65 72 3b 20 63 68 3a 20 63 68 61 72 29 3b 20 2a 29 0d 0a 0d 0a 50 52 4f 43 45 ┆ integer; ch: char); *) PROCE┆ 0x46700…46720 44 55 52 45 20 64 72 61 77 73 74 72 28 63 6f 6c 2c 72 6f 77 3a 49 4e 54 45 47 45 52 3b 73 3a 73 ┆DURE drawstr(col,row:INTEGER;s:s┆ 0x46720…46740 74 72 38 30 29 3b 0d 0a 56 41 52 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 20 6c 09 3a 20 ┆tr80); VAR attrib: BYTE; l : ┆ 0x46740…46760 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d ┆INTEGER; BEGIN WITH Wnd_ DO ┆ 0x46760…46780 0a 20 20 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 ┆ IF txt_mode THEN BEGIN ┆ 0x46780…467a0 20 20 20 72 6f 77 3a 3d 72 6f 77 2b 74 78 74 79 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f ┆ row:=row+txty1; IF (co┆ 0x467a0…467c0 6c 2b 6c 65 6e 28 73 29 29 3e 28 74 78 74 6d 61 78 78 2b 31 29 20 54 48 45 4e 20 6c 3a 3d 74 78 ┆l+len(s))>(txtmaxx+1) THEN l:=tx┆ 0x467c0…467e0 74 6d 61 78 78 2b 31 2d 63 6f 6c 20 45 4c 53 45 20 6c 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 20 ┆tmaxx+1-col ELSE l:=len(s); ┆ 0x467e0…46800 20 20 20 63 6f 6c 3a 3d 63 6f 6c 2b 74 78 74 78 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 72 6f 77 ┆ col:=col+txtx1; IF row┆ 0x46800…46820 (28, 0, 3) 3c 3d 74 78 74 6d 61 78 79 2b 74 78 74 79 31 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 77 72 ┆<=txtmaxy+txty1 THEN wr┆ 0x46820…46840 69 74 65 73 74 72 28 63 6f 6c 2c 72 6f 77 2c 63 6f 70 79 28 73 2c 31 2c 6c 29 29 3b 0d 0a 20 20 ┆itestr(col,row,copy(s,1,l)); ┆ 0x46840…46860 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 63 6f 6c ┆ END ELSE BEGIN col┆ 0x46860…46880 3a 3d 20 63 6f 6c 20 53 48 4c 20 33 20 3b 0d 0a 20 20 20 20 20 20 72 6f 77 3a 3d 20 6d 61 78 79 ┆:= col SHL 3 ; row:= maxy┆ 0x46880…468a0 20 2d 20 37 20 2d 20 28 72 6f 77 20 2a 20 38 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 64 72 61 ┆ - 7 - (row * 8); Wnd_dra┆ 0x468a0…468c0 77 74 65 78 74 28 63 6f 6c 2c 72 6f 77 2c 73 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆wtext(col,row,s); END; END┆ 0x468c0…468e0 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 77 72 65 61 6c 28 78 2c 79 3a 49 4e 54 45 ┆; PROCEDURE drawreal(x,y:INTE┆ 0x468e0…46900 47 45 52 3b 20 72 3a 52 45 41 4c 3b 20 6c 2c 64 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 ┆GER; r:REAL; l,d: INTEGER); VAR┆ 0x46900…46920 0d 0a 20 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 28 72 3a 6c 3a ┆ s: str80; BEGIN str(r:l:┆ 0x46920…46940 64 2c 73 29 3b 0d 0a 20 20 64 72 61 77 73 74 72 28 78 2c 79 2c 73 29 3b 0d 0a 45 4e 44 3b 0d 0a ┆d,s); drawstr(x,y,s); END; ┆ 0x46940…46960 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 69 6e 64 6f 77 28 6e 6f 3a 20 49 4e 54 45 47 45 52 3b 20 ┆ PROCEDURE Window(no: INTEGER; ┆ 0x46960…46980 78 78 31 2c 20 78 78 32 2c 20 79 79 31 2c 20 79 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 ┆xx1, xx2, yy1, yy2 : REAL); BEG┆ 0x46980…469a0 49 4e 0d 0a 20 20 57 49 54 48 20 57 6c 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 ┆IN WITH Wld_arr(.no.) DO BEGI┆ 0x469a0…469c0 4e 0d 0a 20 20 20 20 58 31 20 3a 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 31 20 3a 3d 20 79 79 31 ┆N X1 := xx1; Y1 := yy1┆ 0x469c0…469e0 3b 0d 0a 20 20 20 20 58 4f 6c 64 3a 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 4f 6c 64 3a 3d 20 79 ┆; XOld:= xx1; YOld:= y┆ 0x469e0…46a00 79 31 3b 0d 0a 20 20 20 20 58 52 61 6e 67 65 20 3a 3d 20 78 78 32 20 2d 20 78 78 31 20 3b 0d 0a ┆y1; XRange := xx2 - xx1 ; ┆ 0x46a00…46a20 20 20 20 20 59 52 61 6e 67 65 20 3a 3d 20 79 79 32 20 2d 20 79 79 31 20 0d 0a 20 20 45 4e 44 3b ┆ YRange := yy2 - yy1 END;┆ 0x46a20…46a40 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6c 65 63 74 77 69 6e 64 6f 77 ┆ END; PROCEDURE selectwindow┆ 0x46a40…46a60 28 6e 6f 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 77 6c 64 5f 3a 3d 77 ┆(no: INTEGER); BEGIN wld_:=w┆ 0x46a60…46a80 6c 64 5f 61 72 72 28 2e 6e 6f 2e 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ld_arr(.no.); END; PROCEDURE┆ 0x46a80…46aa0 20 63 6c 65 61 72 3b 0d 0a 56 41 52 20 69 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 ┆ clear; VAR i : INTEGER; str┆ 0x46aa0…46ac0 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d ┆: str80; BEGIN WITH Wnd_ DO ┆ 0x46ac0…46ae0 0a 20 20 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 ┆ IF txt_mode THEN BEGIN ┆ 0x46ae0…46b00 20 20 20 73 74 72 3a 3d 73 70 63 28 74 78 74 6d 61 78 78 2b 31 2c 27 20 27 29 3b 0d 0a 20 20 20 ┆ str:=spc(txtmaxx+1,' '); ┆ 0x46b00…46b20 20 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 74 78 74 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 20 ┆ FOR i:=0 TO txtmaxy DO ┆ 0x46b20…46b40 20 20 20 64 72 61 77 73 74 72 28 30 2c 69 2c 73 74 72 29 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 ┆ drawstr(0,i,str); END ┆ 0x46b40…46b60 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 53 63 72 5f 46 69 6c 6c 28 78 31 2c 20 79 31 2c 20 ┆ ELSE Scr_Fill(x1, y1, ┆ 0x46b60…46b80 78 31 2b 4d 61 78 58 2c 20 79 31 20 2b 20 6d 61 78 59 20 2c 62 61 63 6b 63 6f 6c 6f 72 29 3b 0d ┆x1+MaxX, y1 + maxY ,backcolor); ┆ 0x46b80…46ba0 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 42 6f 78 28 78 31 2c 20 79 ┆ END; PROCEDURE DrawBox(x1, y┆ 0x46ba0…46bc0 31 2c 20 78 32 2c 20 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 ┆1, x2, y2 : REAL); BEGIN ┆ 0x46bc0…46be0 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 31 29 2c ┆ Wnd_DrawBox(_Wld_ToWindowX(x1),┆ 0x46be0…46c00 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 31 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ _Wld_ToWindowY(y1), ┆ 0x46c00…46c20 (28, 0, 4) 20 20 20 20 20 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 32 29 2c 20 5f 57 6c 64 5f 54 ┆ _Wld_ToWindowX(x2), _Wld_T┆ 0x46c20…46c40 6f 57 69 6e 64 6f 77 59 28 79 32 29 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆oWindowY(y2)) END; PROCEDU┆ 0x46c40…46c60 52 45 20 76 69 65 77 70 6f 72 74 63 6f 6c 6f 72 28 6e 6f 2c 20 66 63 6f 6c 6f 72 2c 20 62 63 6f ┆RE viewportcolor(no, fcolor, bco┆ 0x46c60…46c80 6c 6f 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e ┆lor: INTEGER); BEGIN WITH Wn┆ 0x46c80…46ca0 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 70 65 6e 63 ┆d_arr(.no.) DO BEGIN penc┆ 0x46ca0…46cc0 6f 6c 6f 72 3a 3d 66 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 20 20 62 61 63 6b 63 6f 6c 6f 72 3a 3d ┆olor:=fcolor; backcolor:=┆ 0x46cc0…46ce0 62 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆bcolor; END; END; PROCE┆ 0x46ce0…46d00 44 55 52 45 20 74 65 78 74 76 69 65 77 70 6f 72 74 63 6f 6c 6f 72 28 6e 6f 2c 20 66 63 6f 6c 6f ┆DURE textviewportcolor(no, fcolo┆ 0x46d00…46d20 72 2c 20 62 63 6f 6c 6f 72 3a 20 42 59 54 45 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f ┆r, bcolor: BYTE); BEGIN Wnd_┆ 0x46d20…46d40 70 61 6c 65 74 74 65 28 2e 6e 6f 2e 29 3a 3d 66 63 6f 6c 6f 72 2b 28 62 63 6f 6c 6f 72 20 53 48 ┆palette(.no.):=fcolor+(bcolor SH┆ 0x46d40…46d60 4c 20 34 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 76 69 65 77 70 6f 72 ┆L 4); END; PROCEDURE viewpor┆ 0x46d60…46d80 74 68 65 61 64 65 72 28 6e 6f 3a 20 49 4e 54 45 47 45 52 3b 20 68 3a 20 73 74 72 38 30 29 3b 0d ┆theader(no: INTEGER; h: str80); ┆ 0x46d80…46da0 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 2e 68 64 72 3a 3d 68 3b 0d ┆ BEGIN Wnd_arr(.no.).hdr:=h; ┆ 0x46da0…46dc0 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 76 69 65 77 70 6f 72 74 28 6e 6f 2c 20 ┆ END; PROCEDURE viewport(no, ┆ 0x46dc0…46de0 78 78 31 2c 20 78 78 32 2c 20 79 79 31 2c 20 79 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 ┆xx1, xx2, yy1, yy2: INTEGER); V┆ 0x46de0…46e00 41 52 20 63 68 3a 20 43 48 41 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 78 31 20 3a 3d 20 28 78 ┆AR ch: CHAR; BEGIN xx1 := (x┆ 0x46e00…46e20 78 31 20 2b 20 37 29 20 41 4e 44 20 24 66 66 66 38 3b 0d 0a 20 20 78 78 32 20 3a 3d 20 28 28 78 ┆x1 + 7) AND $fff8; xx2 := ((x┆ 0x46e20…46e40 78 32 20 2b 20 37 29 20 41 4e 44 20 24 66 66 66 38 29 2d 31 3b 0d 0a 20 20 49 46 20 78 78 31 3c ┆x2 + 7) AND $fff8)-1; IF xx1<┆ 0x46e40…46e60 30 20 54 48 45 4e 20 78 78 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 78 32 3e 53 63 72 5f 6d 61 78 ┆0 THEN xx1:=0; IF xx2>Scr_max┆ 0x46e60…46e80 78 20 54 48 45 4e 20 78 78 32 3a 3d 53 63 72 5f 6d 61 78 78 3b 0d 0a 20 20 49 46 20 79 79 31 3c ┆x THEN xx2:=Scr_maxx; IF yy1<┆ 0x46e80…46ea0 30 20 54 48 45 4e 20 79 79 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 79 79 32 3e 53 63 72 5f 6d 61 78 ┆0 THEN yy1:=0; IF yy2>Scr_max┆ 0x46ea0…46ec0 79 20 54 48 45 4e 20 79 79 32 3a 3d 53 63 72 5f 6d 61 78 79 3b 0d 0a 20 20 49 46 20 79 79 31 3e ┆y THEN yy2:=Scr_maxy; IF yy1>┆ 0x46ec0…46ee0 79 79 32 20 54 48 45 4e 20 73 77 61 70 28 79 79 31 2c 79 79 32 29 3b 0d 0a 20 20 49 46 20 78 78 ┆yy2 THEN swap(yy1,yy2); IF xx┆ 0x46ee0…46f00 31 3e 78 78 32 20 54 48 45 4e 20 73 77 61 70 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 57 49 54 ┆1>xx2 THEN swap(xx1,yy1); WIT┆ 0x46f00…46f20 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 31 ┆H Wnd_arr(.no.) DO BEGIN X1┆ 0x46f20…46f40 20 3a 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 31 20 3a 3d 20 79 79 31 3b 0d 0a 20 20 20 20 4d 61 ┆ := xx1; Y1 := yy1; Ma┆ 0x46f40…46f60 78 58 20 3a 3d 20 78 78 32 20 2d 20 78 78 31 20 3b 0d 0a 20 20 20 20 4d 61 78 59 20 3a 3d 20 79 ┆xX := xx2 - xx1 ; MaxY := y┆ 0x46f60…46f80 79 32 20 2d 20 79 79 31 20 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 ┆y2 - yy1 ; END; END; PROC┆ 0x46f80…46fa0 45 44 55 52 45 20 74 65 78 74 76 69 65 77 70 6f 72 74 28 6e 6f 2c 20 78 78 31 2c 20 78 78 32 2c ┆EDURE textviewport(no, xx1, xx2,┆ 0x46fa0…46fc0 20 79 79 31 2c 20 79 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 ┆ yy1, yy2: INTEGER); BEGIN I┆ 0x46fc0…46fe0 46 20 78 78 32 3c 78 78 31 20 54 48 45 4e 20 68 61 6c 74 3b 0d 0a 20 20 49 46 20 79 79 32 3c 79 ┆F xx2<xx1 THEN halt; IF yy2<y┆ 0x46fe0…47000 79 31 20 54 48 45 4e 20 68 61 6c 74 3b 0d 0a 20 20 49 46 20 78 78 31 3c 30 20 54 48 45 4e 20 78 ┆y1 THEN halt; IF xx1<0 THEN x┆ 0x47000…47020 (28, 0, 5) 78 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 79 79 31 3c 30 20 54 48 45 4e 20 79 79 31 3a 3d 30 3b 0d ┆x1:=0; IF yy1<0 THEN yy1:=0; ┆ 0x47020…47040 0a 20 20 49 46 20 78 78 32 3e 54 78 74 5f 6d 61 78 78 20 54 48 45 4e 20 78 78 32 3a 3d 54 78 74 ┆ IF xx2>Txt_maxx THEN xx2:=Txt┆ 0x47040…47060 5f 6d 61 78 78 3b 0d 0a 20 20 49 46 20 79 79 32 3e 54 78 74 5f 6d 61 78 79 20 54 48 45 4e 20 79 ┆_maxx; IF yy2>Txt_maxy THEN y┆ 0x47060…47080 79 32 3a 3d 54 78 74 5f 6d 61 78 79 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e ┆y2:=Txt_maxy; WITH Wnd_arr(.n┆ 0x47080…470a0 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 78 78 31 3b 0d 0a 20 ┆o.) DO BEGIN txtx1:=xx1; ┆ 0x470a0…470c0 20 20 20 74 78 74 79 31 3a 3d 79 79 31 3b 0d 0a 20 20 20 20 74 78 74 6d 61 78 78 3a 3d 78 78 32 ┆ txty1:=yy1; txtmaxx:=xx2┆ 0x470c0…470e0 2d 78 78 31 3b 0d 0a 20 20 20 20 74 78 74 6d 61 78 79 3a 3d 79 79 32 2d 79 79 31 3b 0d 0a 20 20 ┆-xx1; txtmaxy:=yy2-yy1; ┆ 0x470e0…47100 45 4e 44 3b 0d 0a 20 20 76 69 65 77 70 6f 72 74 28 6e 6f 2c 78 78 31 2a 38 2c 78 78 32 2a 38 2b ┆END; viewport(no,xx1*8,xx2*8+┆ 0x47100…47120 37 2c 53 63 72 5f 6d 61 78 79 2d 28 28 79 79 32 2a 38 29 2b 37 29 2c 53 63 72 5f 6d 61 78 79 2d ┆7,Scr_maxy-((yy2*8)+7),Scr_maxy-┆ 0x47120…47140 28 79 79 31 2a 38 29 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6c ┆(yy1*8)); END; PROCEDURE sel┆ 0x47140…47160 65 63 74 76 69 65 77 70 6f 72 74 28 6e 6f 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e ┆ectviewport(no: INTEGER); BEGIN┆ 0x47160…47180 0d 0a 20 20 57 6e 64 5f 3a 3d 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 3b 0d 0a 20 20 57 6e 64 5f ┆ Wnd_:=Wnd_arr(.no.); Wnd_┆ 0x47180…471a0 61 63 74 75 61 6c 3a 3d 6e 6f 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 47 ┆actual:=no; END; PROCEDURE G┆ 0x471a0…471c0 72 61 70 68 69 63 53 63 72 65 65 6e 28 74 79 70 20 3a 53 63 72 5f 54 59 50 45 29 3b 0d 0a 20 20 ┆raphicScreen(typ :Scr_TYPE); ┆ 0x471c0…471e0 56 41 52 20 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 ┆VAR i: INTEGER; BEGIN tx┆ 0x471e0…47200 74 5f 6d 6f 64 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 65 68 6f 66 73 3a 3d 6f 66 73 28 74 65 ┆t_mode:=true; ehofs:=ofs(te┆ 0x47200…47220 78 74 6d 6f 64 65 29 3b 0d 0a 20 20 20 20 6d 61 72 6b 28 53 63 72 5f 42 45 47 49 4e 29 3b 0d 0a ┆xtmode); mark(Scr_BEGIN); ┆ 0x47220…47240 20 20 20 20 67 72 61 70 68 5f 54 59 50 45 3a 3d 74 79 70 3b 0d 0a 20 20 20 20 69 6e 69 74 5f 67 ┆ graph_TYPE:=typ; init_g┆ 0x47240…47260 72 61 70 68 69 63 73 28 74 79 70 29 3b 0d 0a 20 20 20 20 69 6e 69 74 5f 74 65 78 74 3b 0d 0a 20 ┆raphics(typ); init_text; ┆ 0x47260…47280 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 57 6e 64 5f 6d 61 78 20 44 4f 20 42 45 47 49 4e 0d ┆ FOR i:=1 TO Wnd_max DO BEGIN ┆ 0x47280…472a0 0a 20 20 20 20 20 20 74 65 78 74 76 69 65 77 70 6f 72 74 28 69 2c 30 2c 37 39 2c 30 2c 32 34 29 ┆ textviewport(i,0,79,0,24)┆ 0x472a0…472c0 3b 0d 0a 20 20 20 20 20 20 74 65 78 74 76 69 65 77 70 6f 72 74 63 6f 6c 6f 72 28 69 2c 77 68 69 ┆; textviewportcolor(i,whi┆ 0x472c0…472e0 74 65 74 78 74 2c 62 6c 61 63 6b 74 78 74 29 3b 0d 0a 20 20 20 20 20 20 76 69 65 77 70 6f 72 74 ┆tetxt,blacktxt); viewport┆ 0x472e0…47300 28 69 2c 30 2c 20 53 63 72 5f 4d 61 78 58 2c 20 30 2c 20 53 63 72 5f 4d 61 78 59 29 3b 0d 0a 20 ┆(i,0, Scr_MaxX, 0, Scr_MaxY); ┆ 0x47300…47320 20 20 20 20 20 77 69 6e 64 6f 77 28 69 2c 30 2e 30 2c 20 53 63 72 5f 4d 61 78 58 2c 20 30 2e 30 ┆ window(i,0.0, Scr_MaxX, 0.0┆ 0x47320…47340 2c 20 53 63 72 5f 4d 61 78 59 29 3b 0d 0a 20 20 20 20 20 20 76 69 65 77 70 6f 72 74 63 6f 6c 6f ┆, Scr_MaxY); viewportcolo┆ 0x47340…47360 72 28 69 2c 77 68 69 74 65 2c 62 6c 61 63 6b 29 3b 0d 0a 20 20 20 20 20 20 57 49 54 48 20 73 61 ┆r(i,white,black); WITH sa┆ 0x47360…47380 76 65 5f 61 72 72 28 2e 69 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 63 6f ┆ve_arr(.i.) DO BEGIN co┆ 0x47380…473a0 6e 74 65 6e 74 3a 3d 4e 49 4c 3b 20 0d 0a 20 20 20 20 20 20 20 20 6c 65 6e 67 74 68 3a 3d 30 3b ┆ntent:=NIL; length:=0;┆ 0x473a0…473c0 20 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 61 72 72 28 2e 69 2e ┆ END; Wnd_arr(.i.┆ 0x473c0…473e0 29 2e 68 64 72 3a 3d 27 27 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 73 65 6c 65 63 74 ┆).hdr:=''; END; select┆ 0x473e0…47400 76 69 65 77 70 6f 72 74 28 31 29 3b 0d 0a 20 20 20 20 73 65 6c 65 63 74 77 69 6e 64 6f 77 28 31 ┆viewport(1); selectwindow(1┆ 0x47400…47420 (28, 1, 1) 29 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 42 6f 78 57 69 6e 64 6f 77 ┆) END; PROCEDURE BoxWindow┆ 0x47420…47440 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 30 2c 20 30 2c 20 57 6e ┆; BEGIN Wnd_DrawBox(0, 0, Wn┆ 0x47440…47460 64 5f 2e 4d 61 78 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆d_.MaxX, Wnd_.MaxY); END; PR┆ 0x47460…47480 4f 43 45 44 55 52 45 20 64 72 61 77 68 65 61 64 65 72 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6f 6c ┆OCEDURE drawheader; VAR i,ol┆ 0x47480…474a0 64 63 6f 6c 6f 72 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 ┆dcolor: INTEGER; BEGIN WITH ┆ 0x474a0…474c0 57 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 68 64 72 3c 3e 27 27 20 54 48 ┆Wnd_ DO BEGIN IF hdr<>'' TH┆ 0x474c0…474e0 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 69 3a 3d 28 6d 61 78 78 20 44 49 56 20 38 20 2d ┆EN BEGIN i:=(maxx DIV 8 -┆ 0x474e0…47500 20 6c 65 6e 28 68 64 72 29 29 20 44 49 56 20 32 3b 0d 0a 20 20 20 20 20 20 49 46 20 69 3c 30 20 ┆ len(hdr)) DIV 2; IF i<0 ┆ 0x47500…47520 54 48 45 4e 20 69 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 66 69 6c 6c 28 78 31 2c 79 31 ┆THEN i:=0; Scr_fill(x1,y1┆ 0x47520…47540 2b 6d 61 78 79 2d 31 30 2c 78 31 2b 6d 61 78 78 2c 79 31 2b 6d 61 78 79 2c 24 46 46 29 3b 0d 0a ┆+maxy-10,x1+maxx,y1+maxy,$FF); ┆ 0x47540…47560 20 20 20 20 20 20 6f 6c 64 63 6f 6c 6f 72 3a 3d 70 65 6e 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 20 ┆ oldcolor:=pencolor; ┆ 0x47560…47580 20 70 65 6e 63 6f 6c 6f 72 3a 3d 62 6c 61 63 6b 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 64 72 61 ┆ pencolor:=black; Wnd_dra┆ 0x47580…475a0 77 62 6f 78 28 30 2c 6d 61 78 79 2d 31 30 2c 6d 61 78 78 2c 6d 61 78 79 29 3b 0d 0a 20 20 20 20 ┆wbox(0,maxy-10,maxx,maxy); ┆ 0x475a0…475c0 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 20 20 44 72 61 77 53 74 72 28 69 ┆ maxy:=maxy-2; DrawStr(i┆ 0x475c0…475e0 2c 30 2c 68 64 72 29 3b 0d 0a 20 20 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 38 3b 0d 0a 20 ┆,0,hdr); maxy:=maxy-8; ┆ 0x475e0…47600 20 20 20 20 20 70 65 6e 63 6f 6c 6f 72 3a 3d 6f 6c 64 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 45 4e ┆ pencolor:=oldcolor; EN┆ 0x47600…47620 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 ┆D; END; END; PROCEDURE dr┆ 0x47620…47640 61 77 66 72 61 6d 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 ┆awframe; BEGIN WITH Wnd_ DO ┆ 0x47640…47660 42 45 47 49 4e 0d 0a 20 20 20 20 64 72 61 77 68 65 61 64 65 72 3b 0d 0a 20 20 20 20 57 6e 64 5f ┆BEGIN drawheader; Wnd_┆ 0x47660…47680 44 72 61 77 42 6f 78 28 30 2c 20 30 2c 20 4d 61 78 58 2c 20 4d 61 78 59 29 3b 0d 0a 20 20 20 20 ┆DrawBox(0, 0, MaxX, MaxY); ┆ 0x47680…476a0 78 31 3a 3d 78 31 2b 31 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 31 3b 0d 0a 20 20 20 20 6d 61 ┆x1:=x1+1; y1:=y1+1; ma┆ 0x476a0…476c0 78 79 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 6d 61 78 78 3a 3d 6d 61 78 78 2d 32 3b 0d 0a ┆xy:=maxy-2; maxx:=maxx-2; ┆ 0x476c0…476e0 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 67 6f 74 6f 74 78 ┆ END; END; PROCEDURE gototx┆ 0x476e0…47700 74 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 6f 74 6f 78 ┆t(x,y: INTEGER); BEGIN gotox┆ 0x47700…47720 79 28 78 2c 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 7b 50 52 4f 43 45 44 55 52 45 20 67 6f 74 6f ┆y(x,y); END; æPROCEDURE goto┆ 0x47720…47740 78 79 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 6f 74 6f ┆xy(x,y: INTEGER); BEGIN goto┆ 0x47740…47760 74 78 74 28 78 2b 57 6e 64 5f 2e 74 78 74 78 31 2c 79 2b 57 6e 64 5f 2e 74 78 74 79 31 29 3b 0d ┆txt(x+Wnd_.txtx1,y+Wnd_.txty1); ┆ 0x47760…47780 0a 45 4e 44 3b 0d 0a 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 66 72 61 6d 65 ┆ END; å PROCEDURE writeframe┆ 0x47780…477a0 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6c 68 2c 6c 78 2c 6c 79 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆; VAR i,lh,lx,ly: INTEGER; ┆ 0x477a0…477c0 20 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 ┆ s: str80; BEGIN WITH Wnd_ ┆ 0x477c0…477e0 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 78 3a 3d 74 78 74 6d 61 78 78 3b 20 6c 79 3a 3d 74 ┆DO BEGIN lx:=txtmaxx; ly:=t┆ 0x477e0…47800 78 74 6d 61 78 79 3b 20 6c 68 3a 3d 28 28 6c 78 2b 32 29 2d 6c 65 6e 28 68 64 72 29 29 20 44 49 ┆xtmaxy; lh:=((lx+2)-len(hdr)) DI┆ 0x47800…47820 (28, 1, 2) 56 20 32 2b 31 3b 0d 0a 20 20 20 20 73 3a 3d 27 c9 27 2b 73 70 63 28 6c 78 2d 31 2c 27 cd 27 29 ┆V 2+1; s:=' '+spc(lx-1,' ')┆ 0x47820…47840 2b 27 bb 27 3b 0d 0a 20 20 20 20 6d 6f 76 65 28 68 64 72 28 2e 31 2e 29 2c 73 28 2e 6c 68 2e 29 ┆+' '; move(hdr(.1.),s(.lh.)┆ 0x47840…47860 2c 6c 65 6e 28 68 64 72 29 29 3b 0d 0a 20 20 20 20 64 72 61 77 73 74 72 28 30 2c 30 2c 73 29 3b ┆,len(hdr)); drawstr(0,0,s);┆ 0x47860…47880 0d 0a 20 20 20 20 73 3a 3d 27 ba 27 2b 73 70 63 28 6c 78 2d 31 2c 27 20 27 29 2b 27 ba 27 3b 0d ┆ s:=' '+spc(lx-1,' ')+' '; ┆ 0x47880…478a0 0a 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6c 79 2d 31 20 44 4f 20 64 72 61 77 73 74 72 ┆ FOR i:=1 TO ly-1 DO drawstr┆ 0x478a0…478c0 28 30 2c 69 2c 73 29 3b 0d 0a 20 20 20 20 64 72 61 77 73 74 72 28 30 2c 6c 79 2c 27 c8 27 2b 73 ┆(0,i,s); drawstr(0,ly,' '+s┆ 0x478c0…478e0 70 63 28 6c 78 2d 31 2c 27 cd 27 29 2b 27 bc 27 29 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 73 ┆pc(lx-1,' ')+' '); txtx1:=s┆ 0x478e0…47900 75 63 63 28 74 78 74 78 31 29 3b 74 78 74 6d 61 78 78 3a 3d 74 78 74 6d 61 78 78 2d 32 3b 0d 0a ┆ucc(txtx1);txtmaxx:=txtmaxx-2; ┆ 0x47900…47920 20 20 20 20 74 78 74 79 31 3a 3d 73 75 63 63 28 74 78 74 79 31 29 3b 74 78 74 6d 61 78 79 3a 3d ┆ txty1:=succ(txty1);txtmaxy:=┆ 0x47920…47940 74 78 74 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 38 3b 6d 61 78 78 3a 3d 6d ┆txtmaxy-2; x1:=x1+8;maxx:=m┆ 0x47940…47960 61 78 78 2d 31 36 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 38 3b 6d 61 78 79 3a 3d 6d 61 78 79 ┆axx-16; y1:=y1+8;maxy:=maxy┆ 0x47960…47980 2d 31 36 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 ┆-16; END; END; PROCEDUR┆ 0x47980…479a0 45 20 42 49 54 42 49 54 28 4f 6c 64 42 79 74 65 3a 42 79 74 65 3b 56 41 52 20 4e 65 77 62 79 74 ┆E BITBIT(OldByte:Byte;VAR Newbyt┆ 0x479a0…479c0 65 3a 20 62 79 74 65 29 3b 0d 0a 76 61 72 20 20 0d 0a 20 20 62 69 74 3a 20 62 79 74 65 3b 0d 0a ┆e: byte); var bit: byte; ┆ 0x479c0…479e0 20 20 6a 2c 69 2c 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 4e 65 77 ┆ j,i,n:integer; BEGIN New┆ 0x479e0…47a00 42 79 74 65 3a 3d 24 30 30 3b 0d 0a 20 20 66 6f 72 20 6a 3a 3d 20 31 20 74 6f 20 34 20 64 6f 0d ┆Byte:=$00; for j:= 1 to 4 do ┆ 0x47a00…47a20 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 63 61 73 65 20 6a 20 6f 66 0d 0a 20 20 20 20 31 3a 20 ┆ begin case j of 1: ┆ 0x47a20…47a40 6e 3a 3d 31 3b 0d 0a 20 20 20 20 32 3a 20 6e 3a 3d 32 3b 0d 0a 20 20 20 20 33 3a 20 6e 3a 3d 34 ┆n:=1; 2: n:=2; 3: n:=4┆ 0x47a40…47a60 3b 0d 0a 20 20 20 20 34 3a 20 6e 3a 3d 38 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 42 ┆; 4: n:=8; end; B┆ 0x47a60…47a80 69 74 3a 3d 4f 6c 64 62 79 74 65 20 41 4e 44 20 6e 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 ┆it:=Oldbyte AND n; Bit:=Bit┆ 0x47a80…47aa0 20 53 48 4c 20 6a 3b 0d 0a 20 20 20 20 4e 65 77 62 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 ┆ SHL j; Newbyte:=Newbyte OR┆ 0x47aa0…47ac0 20 42 69 74 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 20 53 48 52 20 31 3b 0d 0a 20 20 20 20 ┆ Bit; Bit:=Bit SHR 1; ┆ 0x47ac0…47ae0 4e 65 77 62 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 20 42 69 74 3b 0d 0a 20 20 65 6e 64 3b ┆Newbyte:=Newbyte OR Bit; end;┆ 0x47ae0…47b00 0d 0a 65 6e 64 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 64 75 6d 70 28 6d ┆ end; PROCEDURE Scr_dump(m┆ 0x47b00…47b20 6f 64 65 3a 70 72 6e 5f 54 59 50 45 29 3b 0d 0a 56 41 52 0d 0a 20 20 70 72 69 6e 74 65 72 3a 20 ┆ode:prn_TYPE); VAR printer: ┆ 0x47b20…47b40 74 65 78 74 3b 0d 0a 20 20 69 2c 6a 2c 6b 2c 6b 31 2c 73 6d 61 78 2c 74 6d 61 78 3a 20 49 4e 54 ┆text; i,j,k,k1,smax,tmax: INT┆ 0x47b40…47b60 45 47 45 52 3b 0d 0a 20 20 69 6e 69 74 5f 63 68 3a 20 53 54 52 49 4e 47 28 2e 36 2e 29 3b 0d 0a ┆EGER; init_ch: STRING(.6.); ┆ 0x47b60…47b80 20 20 67 72 5f 73 74 72 3a 20 53 54 52 49 4e 47 28 2e 34 2e 29 3b 0d 0a 0d 0a 20 20 63 68 3a 20 ┆ gr_str: STRING(.4.); ch: ┆ 0x47b80…47ba0 63 68 61 72 3b 0d 0a 20 20 48 69 67 68 43 48 2c 4c 6f 77 43 48 3a 20 62 79 74 65 3b 0d 0a 20 20 ┆char; HighCH,LowCH: byte; ┆ 0x47ba0…47bc0 48 69 67 68 42 79 74 65 2c 4c 6f 77 42 79 74 65 3a 20 62 79 74 65 3b 0d 0a 20 20 62 69 74 6d 6f ┆HighByte,LowByte: byte; bitmo┆ 0x47bc0…47be0 64 65 3a 20 63 68 61 72 3b 0d 0a 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 73 73 69 67 6e 28 70 ┆de: char; BEGIN assign(p┆ 0x47be0…47c00 72 69 6e 74 65 72 2c 27 6c 73 74 3a 27 29 3b 0d 0a 20 20 72 65 73 65 74 28 70 72 69 6e 74 65 72 ┆rinter,'lst:'); reset(printer┆ 0x47c00…47c20 (28, 1, 3) 29 3b 0d 0a 20 20 49 46 20 69 6f 72 65 73 3c 3e 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 ┆); IF iores<>0 THEN exit; ┆ 0x47c20…47c40 49 46 20 6d 6f 64 65 20 69 6e 20 28 2e 4e 45 43 5f 31 36 62 69 74 2e 29 20 74 68 65 6e 0d 0a 20 ┆IF mode in (.NEC_16bit.) then ┆ 0x47c40…47c60 20 62 65 67 69 6e 0d 0a 20 20 20 20 6b 31 3a 3d 32 3b 0d 0a 20 20 20 20 62 69 74 6d 6f 64 65 3a ┆ begin k1:=2; bitmode:┆ 0x47c60…47c80 3d 27 49 27 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 27 31 36 20 62 69 74 27 29 3b 0d 0a 20 20 65 ┆='I'; writeln('16 bit'); e┆ 0x47c80…47ca0 6e 64 20 65 6c 73 65 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6b 31 3a 3d 32 3b 0d 0a 20 20 ┆nd else begin k1:=2; ┆ 0x47ca0…47cc0 20 20 62 69 74 6d 6f 64 65 3a 3d 27 53 27 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 27 20 38 20 62 ┆ bitmode:='S'; writeln(' 8 b┆ 0x47cc0…47ce0 69 74 27 29 3b 0d 0a 20 20 65 6e 64 3b 20 20 20 20 0d 0a 20 20 73 6d 61 78 3a 3d 28 53 63 72 5f ┆it'); end; smax:=(Scr_┆ 0x47ce0…47d00 6d 61 78 79 2b 31 29 2a 6b 31 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 77 72 69 74 65 6c ┆maxy+1)*k1; BEGIN writel┆ 0x47d00…47d20 6e 28 70 72 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b 27 54 31 36 27 2b 63 68 72 28 32 37 29 2b ┆n(printer,chr(27)+'T16'+chr(27)+┆ 0x47d20…47d40 27 3e 27 2b 63 68 72 28 32 37 29 2b 27 4e 27 29 3b 0d 0a 20 20 20 20 73 74 72 28 73 6d 61 78 3a ┆'>'+chr(27)+'N'); str(smax:┆ 0x47d40…47d60 34 2c 67 72 5f 73 74 72 29 3b 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 34 20 44 4f ┆4,gr_str); FOR i:=1 TO 4 DO┆ 0x47d60…47d80 20 49 46 20 67 72 5f 73 74 72 28 2e 69 2e 29 3d 27 20 27 20 54 48 45 4e 20 67 72 5f 73 74 72 28 ┆ IF gr_str(.i.)=' ' THEN gr_str(┆ 0x47d80…47da0 2e 69 2e 29 3a 3d 27 30 27 3b 0d 0a 20 20 20 20 69 6e 69 74 5f 63 68 3a 3d 63 68 72 28 32 37 29 ┆.i.):='0'; init_ch:=chr(27)┆ 0x47da0…47dc0 2b 62 69 74 6d 6f 64 65 2b 67 72 5f 73 74 72 3b 20 74 6d 61 78 3a 3d 74 78 74 5f 6d 61 78 78 3b ┆+bitmode+gr_str; tmax:=txt_maxx;┆ 0x47dc0…47de0 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 74 78 74 5f 6d 61 78 78 ┆ END; FOR i:=0 TO txt_maxx┆ 0x47de0…47e00 20 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 ┆ DO BEGIN write(printer┆ 0x47e00…47e20 2c 69 6e 69 74 5f 63 68 29 3b 0d 0a 20 20 20 20 46 4f 52 20 6a 3a 3d 53 63 72 5f 6d 61 78 79 20 ┆,init_ch); FOR j:=Scr_maxy ┆ 0x47e20…47e40 44 4f 57 4e 54 4f 20 30 20 44 4f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 4c 6f ┆DOWNTO 0 DO begin Lo┆ 0x47e40…47e60 77 62 79 74 65 3a 3d 24 30 30 3b 20 48 69 67 68 62 79 74 65 3a 3d 24 30 30 3b 20 0d 0a 20 20 20 ┆wbyte:=$00; Highbyte:=$00; ┆ 0x47e60…47e80 20 20 20 63 68 3a 3d 63 68 72 28 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 53 63 72 5f 79 61 64 ┆ ch:=chr(mem(.Scr_segm:Scr_yad┆ 0x47e80…47ea0 64 72 28 2e 6a 2e 29 2b 53 63 72 5f 78 61 64 64 72 28 2e 28 74 6d 61 78 2d 69 29 2a 38 2e 29 2e ┆dr(.j.)+Scr_xaddr(.(tmax-i)*8.).┆ 0x47ea0…47ec0 29 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 62 69 74 6d 6f 64 65 3d 27 53 27 20 74 68 65 6e 0d 0a ┆)); if bitmode='S' then ┆ 0x47ec0…47ee0 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 ┆ begin write(print┆ 0x47ee0…47f00 65 72 2c 63 68 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 20 0d 0a 20 20 ┆er,ch,ch); end else ┆ 0x47f00…47f20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 49 46 20 43 48 3e 40 30 20 54 48 45 4e ┆ begin IF CH>@0 THEN┆ 0x47f20…47f40 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 48 69 67 68 43 ┆ BEGIN HighC┆ 0x47f40…47f60 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 66 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 48 ┆H:=ord(ch) and $f0; H┆ 0x47f60…47f80 69 67 68 43 48 3a 3d 48 69 67 68 43 48 20 73 68 72 20 34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ighCH:=HighCH shr 4; ┆ 0x47f80…47fa0 4c 6f 77 43 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 30 66 3b 0d 0a 20 20 20 20 20 20 20 ┆LowCH:=ord(ch) and $0f; ┆ 0x47fa0…47fc0 20 20 20 42 49 54 42 49 54 28 48 69 67 68 43 48 2c 48 69 67 68 42 79 74 65 29 3b 20 42 49 54 42 ┆ BITBIT(HighCH,HighByte); BITB┆ 0x47fc0…47fe0 49 54 28 4c 6f 77 43 48 2c 4c 6f 77 42 79 74 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b ┆IT(LowCH,LowByte); END;┆ 0x47fe0…48000 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 63 68 72 28 4c 6f 77 42 ┆ write(printer,chr(LowB┆ 0x48000…48020 (28, 1, 4) 79 74 65 29 2c 63 68 72 28 48 69 67 68 42 79 74 65 29 2c 63 68 72 28 4c 6f 77 42 79 74 65 29 2c ┆yte),chr(HighByte),chr(LowByte),┆ 0x48020…48040 63 68 72 28 48 69 67 68 42 79 74 65 29 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 ┆chr(HighByte)); end; ┆ 0x48040…48060 20 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e ┆ if keypress then begin┆ 0x48060…48080 0d 0a 20 20 20 20 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 ┆ read(kbd,ch); ┆ 0x48080…480a0 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 65 78 69 74 3b 0d 0a 20 ┆ read(kbd,ch); exit; ┆ 0x480a0…480c0 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e ┆ end; end; writeln┆ 0x480c0…480e0 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 70 72 ┆(printer); END; writeln(pr┆ 0x480e0…48100 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b 27 2b 41 27 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 70 72 ┆inter,chr(27)+'+A'); close(pr┆ 0x48100…48120 69 6e 74 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 ┆inter); END; PROCEDURE write┆ 0x48120…48140 68 65 6c 70 28 6e 6f 2c 77 2c 6c 3a 20 49 4e 54 45 47 45 52 3b 56 41 52 20 73 74 29 3b 0d 0a 56 ┆help(no,w,l: INTEGER;VAR st); V┆ 0x48140…48160 41 52 0d 0a 20 20 69 2c 6a 2c 6b 2c 61 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆AR i,j,k,actual : INTEGER; ┆ 0x48160…48180 20 73 74 72 09 3a 73 74 72 38 30 3b 0d 0a 20 20 73 74 72 6c 67 74 3a 62 79 74 65 20 41 54 20 73 ┆ str :str80; strlgt:byte AT s┆ 0x48180…481a0 74 72 3b 0d 0a 20 20 63 68 3a 20 43 48 41 52 3b 0d 0a 20 20 77 69 6e 3a 20 57 6e 64 5f 54 59 50 ┆tr; ch: CHAR; win: Wnd_TYP┆ 0x481a0…481c0 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 63 74 75 61 6c 3a 3d 57 6e 64 5f 61 63 74 75 61 6c 3b ┆E; BEGIN actual:=Wnd_actual;┆ 0x481c0…481e0 0d 0a 20 20 77 69 6e 3a 3d 57 6e 64 5f 3b 0d 0a 20 20 73 65 6c 65 63 74 76 69 65 77 70 6f 72 74 ┆ win:=Wnd_; selectviewport┆ 0x481e0…48200 28 6e 6f 29 3b 0d 0a 20 20 73 61 76 65 76 69 65 77 70 6f 72 74 28 6e 6f 29 3b 0d 0a 20 20 77 72 ┆(no); saveviewport(no); wr┆ 0x48200…48220 69 74 65 66 72 61 6d 65 3b 0d 0a 20 20 6b 3a 3d 30 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 ┆iteframe; k:=0; FOR i:=1 T┆ 0x48220…48240 4f 20 6c 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 6c 67 74 3a 3d 6d 65 6d 28 2e 73 ┆O l DO BEGIN strlgt:=mem(.s┆ 0x48240…48260 65 67 28 73 74 29 3a 6f 66 73 28 73 74 29 2b 6b 2e 29 3b 0d 0a 20 20 20 20 46 4f 52 20 6a 3a 3d ┆eg(st):ofs(st)+k.); FOR j:=┆ 0x48260…48280 31 20 54 4f 20 73 74 72 6c 67 74 20 44 4f 0d 0a 20 20 20 20 20 20 73 74 72 28 2e 6a 2e 29 3a 3d ┆1 TO strlgt DO str(.j.):=┆ 0x48280…482a0 43 48 41 52 28 6d 65 6d 28 2e 73 65 67 28 73 74 29 3a 6f 66 73 28 73 74 29 2b 6b 2b 6a 2e 29 29 ┆CHAR(mem(.seg(st):ofs(st)+k+j.))┆ 0x482a0…482c0 3b 0d 0a 20 20 20 20 6b 3a 3d 6b 2b 77 2b 31 3b 0d 0a 20 20 20 20 64 72 61 77 73 74 72 28 30 2c ┆; k:=k+w+1; drawstr(0,┆ 0x482c0…482e0 69 2d 31 2c 73 74 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 52 45 50 45 41 54 20 72 65 61 64 ┆i-1,str); END; REPEAT read┆ 0x482e0…48300 28 6b 62 64 2c 63 68 29 20 55 4e 54 49 4c 20 63 68 20 69 6e 20 28 2e 40 31 33 2c 40 33 32 2e 29 ┆(kbd,ch) UNTIL ch in (.@13,@32.)┆ 0x48300…48320 3b 0d 0a 20 20 6c 6f 61 64 76 69 65 77 70 6f 72 74 28 6e 6f 2c 30 2c 30 29 3b 0d 0a 20 20 57 6e ┆; loadviewport(no,0,0); Wn┆ 0x48320…48340 64 5f 61 63 74 75 61 6c 3a 3d 61 63 74 75 61 6c 3b 0d 0a 20 20 57 6e 64 5f 3a 3d 77 69 6e 3b 0d ┆d_actual:=actual; Wnd_:=win; ┆ 0x48340…48360 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 61 6b ┆ END; æUdskriver ak┆ 0x48360…48380 73 65 73 79 73 74 65 6d 65 74 20 74 69 6c 20 65 6e 20 78 2c 79 20 67 72 61 66 3a 20 20 20 20 20 ┆sesystemet til en x,y graf: ┆ 0x48380…483a0 20 20 20 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 0d 0a 0d 0a ┆ å ┆ 0x483a0…483c0 0d 0a 7b 78 64 65 6e 73 2f 79 64 65 6e 73 3a 20 20 65 74 20 74 61 6c 20 6d 65 6c 6c 65 6d 20 30 ┆ æxdens/ydens: et tal mellem 0┆ 0x483c0…483e0 20 6f 67 20 39 2c 20 64 65 72 20 61 6e 67 69 76 65 72 20 68 76 6f 72 6d 61 6e 67 65 20 6d 65 6c ┆ og 9, der angiver hvormange mel┆ 0x483e0…48400 6c 65 6d 72 75 6d 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 72 20 65 72 20 6d ┆lemrumå æ der er m┆ 0x48400…48420 (28, 1, 5) 65 6c 6c 65 6d 20 75 64 73 6b 72 69 76 6e 69 6e 67 65 6e 20 61 66 20 76 91 72 64 69 65 72 20 70 ┆ellem udskrivningen af v rdier p┆ 0x48420…48440 86 20 68 65 6e 68 6f 6c 64 73 76 69 73 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 ┆ henholdsviså æ x┆ 0x48440…48460 20 6f 67 20 79 2d 61 6b 73 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ og y-aksen ┆ 0x48460…48480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 7b 67 69 74 74 65 72 3a 20 ┆ å ægitter: ┆ 0x48480…484a0 20 54 72 75 65 3a 20 20 67 69 74 74 65 72 20 74 65 67 6e 65 73 20 20 20 46 61 6c 73 65 3a 20 20 ┆ True: gitter tegnes False: ┆ 0x484a0…484c0 67 69 74 74 65 72 20 74 65 67 6e 65 73 20 69 6b 6b 65 20 20 20 20 20 20 20 20 20 7d 0d 0a 7b 45 ┆gitter tegnes ikke å æE┆ 0x484c0…484e0 6b 73 70 6f 78 78 2f 79 79 3a 20 27 4a 27 20 3a 20 20 78 2f 79 2d 61 6b 73 65 20 76 91 72 64 69 ┆kspoxx/yy: 'J' : x/y-akse v rdi┆ 0x484e0…48500 65 72 20 75 64 73 6b 72 69 76 65 73 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 ┆er udskrives eksponentielt ┆ 0x48500…48520 20 20 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 27 4e 27 20 3a 20 20 76 91 72 64 69 65 72 ┆ å æ 'N' : v rdier┆ 0x48520…48540 20 75 64 73 6b 72 69 76 65 73 20 69 6b 6b 65 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 ┆ udskrives ikke eksponentielt ┆ 0x48540…48560 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 77 61 78 ┆ å PROCEDURE drawax┆ 0x48560…48580 69 73 28 20 78 64 65 6e 73 2c 20 79 64 65 6e 73 3a 20 49 4e 54 45 47 45 52 3b 20 67 69 74 74 65 ┆is( xdens, ydens: INTEGER; gitte┆ 0x48580…485a0 72 3a 20 62 6f 6f 6c 65 61 6e 3b 20 0d 0a 45 6b 73 70 6f 78 78 2c 20 45 6b 73 70 6f 79 79 20 3a ┆r: boolean; Ekspoxx, Ekspoyy :┆ 0x485a0…485c0 20 73 74 72 31 29 3b 0d 0a 56 41 52 0d 0a 20 20 78 6b 30 2c 20 79 6b 30 2c 20 78 6b 31 2c 20 79 ┆ str1); VAR xk0, yk0, xk1, y┆ 0x485c0…485e0 6b 31 2c 20 4e 64 69 66 66 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 65 6b 73 70 6f 78 2c 20 ┆k1, Ndiff : INTEGER; ekspox, ┆ 0x485e0…48600 65 6b 73 70 6f 79 2c 6a 2c 69 2c 20 79 73 2c 20 78 73 2c 20 64 65 6c 74 61 2c 20 6e 70 6f 69 6e ┆ekspoy,j,i, ys, xs, delta, npoin┆ 0x48600…48620 74 73 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 64 69 66 66 2c 20 6e 75 6d 62 65 72 2c 20 73 ┆ts : INTEGER; diff, number, s┆ 0x48620…48640 2c 20 66 72 61 63 74 3a 20 52 45 41 4c 3b 0d 0a 20 20 73 74 3a 20 73 74 72 38 30 3b 0d 0a 0d 0a ┆, fract: REAL; st: str80; ┆ 0x48640…48660 7b 4f 6d 66 6f 72 6d 65 72 20 65 74 20 61 6c 6d 69 6e 64 65 6c 69 67 74 20 74 61 6c 20 28 78 31 ┆æOmformer et almindeligt tal (x1┆ 0x48660…48680 29 2c 20 76 65 64 20 68 6a 91 6c 70 20 61 66 20 65 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f ┆), ved hj lp af en opgiven ekspo┆ 0x48680…486a0 6e 65 6e 74 20 28 65 78 70 6f 29 7d 0d 0a 7b 74 69 6c 20 65 6e 20 73 74 72 69 6e 67 2c 20 68 76 ┆nent (expo)å ætil en string, hv┆ 0x486a0…486c0 6f 72 20 74 61 6c 6c 65 74 20 61 6e 67 69 76 65 73 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 ┆or tallet angives eksponentielt ┆ 0x486c0…486e0 20 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 0d 0a 20 20 20 20 ┆ å ┆ 0x486e0…48700 0d 0a 46 55 4e 43 54 49 4f 4e 20 73 74 72 69 6e 67 6e 75 6d 62 65 72 28 78 31 3a 20 52 45 41 4c ┆ FUNCTION stringnumber(x1: REAL┆ 0x48700…48720 3b 65 6b 73 70 6f 09 3a 20 49 4e 54 45 47 45 52 29 3a 20 73 74 72 38 30 3b 0d 0a 56 41 52 20 73 ┆;ekspo : INTEGER): str80; VAR s┆ 0x48720…48740 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 28 78 31 2a 65 78 70 28 2d 65 ┆: str80; BEGIN str(x1*exp(-e┆ 0x48740…48760 6b 73 70 6f 2a 6c 6e 28 31 30 2e 30 29 29 3a 35 3a 32 2c 73 29 3b 0d 0a 20 20 73 74 72 69 6e 67 ┆kspo*ln(10.0)):5:2,s); string┆ 0x48760…48780 6e 75 6d 62 65 72 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 7b 42 65 72 65 67 6e 65 72 20 68 76 ┆number:=s; END; æBeregner hv┆ 0x48780…487a0 6f 72 73 74 6f 72 20 65 6b 73 70 6f 6e 65 6e 74 65 6e 20 73 6b 61 6c 20 76 91 72 65 2c 20 68 76 ┆orstor eksponenten skal v re, hv┆ 0x487a0…487c0 69 73 20 64 65 74 20 73 74 9b 72 73 74 65 20 74 61 6c 20 73 6b 61 6c 20 76 91 72 65 7d 0d 0a 7b ┆is det st rste tal skal v reå æ┆ 0x487c0…487e0 6d 69 6e 64 72 65 20 65 6e 64 20 31 2e 30 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆mindre end 1.00 ┆ 0x487e0…48800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x48800…48820 (29, 0, 1) 20 20 20 20 20 20 20 7d 20 0d 0a 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 47 65 74 45 78 70 6f 6e ┆ å FUNCTION GetExpon┆ 0x48820…48840 65 6e 74 28 58 31 3a 52 45 41 4c 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆ent(X1:REAL):INTEGER; BEGIN ┆ 0x48840…48860 47 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 30 3b 0d 0a 20 20 49 46 20 58 31 3c 3e 30 2e 30 20 54 48 ┆GetExponent:=0; IF X1<>0.0 TH┆ 0x48860…48880 45 4e 0d 0a 20 20 20 20 49 46 20 61 62 73 28 58 31 29 3e 3d 31 2e 30 20 54 48 45 4e 20 47 65 74 ┆EN IF abs(X1)>=1.0 THEN Get┆ 0x48880…488a0 45 78 70 6f 6e 65 6e 74 3a 3d 74 72 75 6e 63 28 6c 6e 28 61 62 73 28 58 31 29 29 2f 6c 6e 28 31 ┆Exponent:=trunc(ln(abs(X1))/ln(1┆ 0x488a0…488c0 30 2e 30 29 29 0d 0a 20 20 20 20 45 4c 53 45 20 47 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 2d 74 72 ┆0.0)) ELSE GetExponent:=-tr┆ 0x488c0…488e0 75 6e 63 28 61 62 73 28 6c 6e 28 61 62 73 28 58 31 29 29 29 2f 6c 6e 28 31 30 2e 30 29 2b 31 2e ┆unc(abs(ln(abs(X1)))/ln(10.0)+1.┆ 0x488e0…48900 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 68 76 6f 72 73 74 6f 72 ┆0); END; æUdskriver hvorstor┆ 0x48900…48920 20 65 6b 73 70 6f 6e 65 6e 74 65 6e 20 65 72 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 ┆ eksponenten erå PROCEDURE Dr┆ 0x48920…48940 61 77 45 78 70 6f 6e 65 6e 74 28 78 31 2c 79 31 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 49 4e 54 ┆awExponent(x1,y1,MaxExponent:INT┆ 0x48940…48960 45 47 45 52 3b 73 3a 20 73 74 72 38 30 29 3b 0d 0a 56 41 52 20 69 3a 49 4e 54 45 47 45 52 3b 0d ┆EGER;s: str80); VAR i:INTEGER; ┆ 0x48960…48980 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 64 72 61 77 74 65 78 74 28 78 31 2c 79 31 2c 73 29 3b ┆ BEGIN Wnd_drawtext(x1,y1,s);┆ 0x48980…489a0 0d 0a 20 20 69 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 73 74 72 28 4d 61 78 45 78 70 6f 6e 65 6e ┆ i:=len(s); str(MaxExponen┆ 0x489a0…489c0 74 2c 53 29 3b 0d 0a 20 20 57 6e 64 5f 64 72 61 77 74 65 78 74 28 78 31 2b 69 2a 38 2c 20 79 31 ┆t,S); Wnd_drawtext(x1+i*8, y1┆ 0x489c0…489e0 2b 32 2c 20 53 29 3b 20 20 20 20 20 20 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 7b 55 64 73 6b 72 69 ┆+2, S); END; æUdskri┆ 0x489e0…48a00 76 65 72 20 65 6e 20 73 74 72 69 6e 67 20 61 66 20 74 61 6c 20 70 86 20 65 6e 20 67 69 76 65 6e ┆ver en string af tal p en given┆ 0x48a00…48a20 20 70 6f 73 69 74 69 6f 6e 2c 20 6d 65 64 20 65 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e ┆ position, med en opgiven ekspon┆ 0x48a20…48a40 65 6e 74 20 20 20 7d 0d 0a 7b 78 31 20 6f 67 20 79 31 3a 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 ┆ent å æx1 og y1: udskrivnings┆ 0x48a40…48a60 6b 6f 6f 72 64 69 6e 61 74 65 72 6e 65 20 20 20 20 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 20 65 78 ┆koordinaterne MaxExponent: ex┆ 0x48a60…48a80 73 70 6f 6e 65 6e 74 65 6e 20 64 65 72 20 61 6e 76 65 6e 64 65 73 7d 0d 0a 7b 76 65 64 20 75 64 ┆sponenten der anvendeså æved ud┆ 0x48a80…48aa0 73 6b 72 69 76 6e 69 6e 67 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆skrivningen ┆ 0x48aa0…48ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x48ac0…48ae0 20 20 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 4e 75 6d 28 78 ┆ å PROCEDURE DrawNum(x┆ 0x48ae0…48b00 31 2c 79 31 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 49 4e 54 45 47 45 52 3b 4e 75 6d 62 65 72 3a ┆1,y1,MaxExponent:INTEGER;Number:┆ 0x48b00…48b20 52 45 41 4c 29 3b 0d 0a 56 41 52 20 69 3a 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 53 74 72 4e ┆REAL); VAR i:INTEGER; StrN┆ 0x48b20…48b40 75 6d 62 65 72 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 53 74 72 4e 75 6d 62 65 ┆umber: str80; BEGIN StrNumbe┆ 0x48b40…48b60 72 3a 3d 53 74 72 69 6e 67 4e 75 6d 62 65 72 28 4e 75 6d 62 65 72 2c 4d 61 78 45 78 70 6f 6e 65 ┆r:=StringNumber(Number,MaxExpone┆ 0x48b60…48b80 6e 74 29 3b 0d 0a 20 20 57 6e 64 5f 44 72 61 77 74 65 78 74 28 78 31 2c 79 31 2c 53 74 72 4e 75 ┆nt); Wnd_Drawtext(x1,y1,StrNu┆ 0x48b80…48ba0 6d 62 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 7b 78 64 ┆mber); END; BEGIN æxd┆ 0x48ba0…48bc0 65 6e 73 20 6f 67 20 79 64 65 6e 73 20 6f 6d 64 61 6e 6e 65 73 20 73 86 20 64 65 20 70 61 73 73 ┆ens og ydens omdannes s de pass┆ 0x48bc0…48be0 65 20 74 69 6c 20 70 72 6f 67 72 61 6d 6d 65 74 7d 0d 0a 20 20 0d 0a 20 20 78 64 65 6e 73 20 3a ┆e til programmetå xdens :┆ 0x48be0…48c00 3d 20 31 30 20 2d 20 78 64 65 6e 73 3b 0d 0a 20 20 79 64 65 6e 73 20 3a 3d 20 31 30 20 2d 20 79 ┆= 10 - xdens; ydens := 10 - y┆ 0x48c00…48c20 (29, 0, 2) 64 65 6e 73 3b 0d 0a 20 20 0d 0a 20 20 63 6c 65 61 72 3b 0d 0a 20 20 0d 0a 20 20 7b 74 65 67 6e ┆dens; clear; ætegn┆ 0x48c20…48c40 65 72 20 6b 61 73 73 65 20 72 75 6e 64 74 20 6f 6d 20 67 72 61 66 65 6e 7d 0d 0a 20 20 0d 0a 20 ┆er kasse rundt om grafenå ┆ 0x48c40…48c60 20 64 72 61 77 66 72 61 6d 65 3b 20 20 20 0d 0a 20 20 78 6b 30 3a 3d 36 2a 38 2b 32 3b 0d 0a 20 ┆ drawframe; xk0:=6*8+2; ┆ 0x48c60…48c80 20 79 6b 30 3a 3d 31 32 3b 0d 0a 20 20 78 6b 31 3a 3d 57 6e 64 5f 2e 6d 61 78 78 2d 32 34 3b 0d ┆ yk0:=12; xk1:=Wnd_.maxx-24; ┆ 0x48c80…48ca0 0a 20 20 79 6b 31 3a 3d 57 6e 64 5f 2e 6d 61 78 79 2d 38 3b 0d 0a 20 0d 0a 20 20 7b 74 65 67 6e ┆ yk1:=Wnd_.maxy-8; ætegn┆ 0x48ca0…48cc0 65 72 20 61 6b 73 65 72 6e 65 2c 69 6b 6b 65 20 64 65 6c 73 74 72 65 67 65 72 6e 65 20 7d 0d 0a ┆er akserne,ikke delstregerne å ┆ 0x48cc0…48ce0 20 0d 0a 20 20 57 6e 64 5f 64 72 61 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2c 78 6b 30 2c 79 6b ┆ Wnd_drawline(xk0,yk0,xk0,yk┆ 0x48ce0…48d00 31 29 3b 20 20 20 20 0d 0a 20 20 57 6e 64 5f 64 72 61 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2c ┆1); Wnd_drawline(xk0,yk0,┆ 0x48d00…48d20 78 6b 31 2c 79 6b 30 29 3b 20 20 20 20 0d 0a 20 20 57 6e 64 5f 64 72 61 77 6c 69 6e 65 28 78 6b ┆xk1,yk0); Wnd_drawline(xk┆ 0x48d20…48d40 30 2c 79 6b 30 2c 78 6b 30 2d 34 2c 79 6b 30 29 3b 20 20 0d 0a 20 20 57 6e 64 5f 64 72 61 77 6c ┆0,yk0,xk0-4,yk0); Wnd_drawl┆ 0x48d40…48d60 69 6e 65 28 78 6b 30 2c 79 6b 30 2d 34 2c 78 6b 30 2c 79 6b 30 29 3b 20 20 0d 0a 20 20 64 65 6c ┆ine(xk0,yk0-4,xk0,yk0); del┆ 0x48d60…48d80 74 61 3a 3d 57 6e 64 5f 2e 6d 61 78 79 2d 79 6b 30 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 ┆ta:=Wnd_.maxy-yk0; npoints:=d┆ 0x48d80…48da0 65 6c 74 61 20 44 49 56 20 38 2b 31 3b 20 20 20 20 20 20 20 20 20 20 20 7b 61 6e 74 61 6c 20 64 ┆elta DIV 8+1; æantal d┆ 0x48da0…48dc0 65 6c 73 74 72 65 67 65 72 20 70 86 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 6e 64 69 66 66 3a 3d ┆elstreger p y-aksenå ndiff:=┆ 0x48dc0…48de0 64 65 6c 74 61 2d 28 6e 70 6f 69 6e 74 73 2a 38 29 3b 0d 0a 0d 0a 20 20 7b 44 65 6e 20 6d 61 6b ┆delta-(npoints*8); æDen mak┆ 0x48de0…48e00 73 69 6d 61 6c 65 20 65 6b 73 70 6f 6e 74 20 62 65 72 65 67 6e 65 73 20 20 20 20 20 20 20 20 20 ┆simale ekspont beregnes ┆ 0x48e00…48e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 7b 48 76 69 73 20 65 6b 73 70 6f ┆ å æHvis ekspo┆ 0x48e20…48e40 79 20 3a 3d 20 30 20 62 6c 69 76 65 72 20 74 61 6c 65 6e 65 20 75 64 73 6b 72 65 76 65 74 20 75 ┆y := 0 bliver talene udskrevet u┆ 0x48e40…48e60 64 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 7d 0d 0a 20 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 79 79 ┆den eksponentå If ekspoyy┆ 0x48e60…48e80 20 3d 20 27 4a 27 20 74 68 65 6e 20 0d 0a 20 20 20 0d 0a 20 20 57 49 54 48 20 77 6c 64 5f 20 44 ┆ = 'J' then WITH wld_ D┆ 0x48e80…48ea0 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 61 62 73 28 79 72 61 6e 67 65 2b 79 31 29 3e 61 ┆O BEGIN IF abs(yrange+y1)>a┆ 0x48ea0…48ec0 62 73 28 79 31 29 20 54 48 45 4e 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 ┆bs(y1) THEN ekspoy:=getexponent(┆ 0x48ec0…48ee0 79 72 61 6e 67 65 2b 79 31 29 0d 0a 20 20 20 20 45 4c 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 ┆yrange+y1) ELSE ekspoy:=get┆ 0x48ee0…48f00 65 78 70 6f 6e 65 6e 74 28 79 31 29 3b 0d 0a 20 20 45 4e 44 0d 0a 20 20 0d 0a 20 20 45 6c 73 65 ┆exponent(y1); END Else┆ 0x48f00…48f20 20 65 6b 73 70 6f 79 20 3a 3d 20 30 3b 0d 0a 20 20 20 0d 0a 20 20 7b 75 64 73 6b 72 69 76 65 72 ┆ ekspoy := 0; æudskriver┆ 0x48f20…48f40 20 79 2a 31 30 20 70 86 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 0d 0a 20 20 49 46 20 28 79 64 65 ┆ y*10 p y-aksenå IF (yde┆ 0x48f40…48f60 6e 73 3e 30 29 20 61 6e 64 20 28 65 6b 73 70 6f 79 20 3c 3e 20 30 29 20 54 48 45 4e 20 0d 0a 20 ┆ns>0) and (ekspoy <> 0) THEN ┆ 0x48f60…48f80 20 20 20 64 72 61 77 65 78 70 6f 6e 65 6e 74 28 30 2c 57 6e 64 5f 2e 6d 61 78 79 2d 31 30 2c 65 ┆ drawexponent(0,Wnd_.maxy-10,e┆ 0x48f80…48fa0 6b 73 70 6f 79 2c 27 79 2a 31 30 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆kspoy,'y*10'); ┆ 0x48fa0…48fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 46 72 61 63 74 3a 3d 4e ┆ Fract:=N┆ 0x48fc0…48fe0 44 69 66 66 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 73 3a 3d 2d 46 72 61 63 74 3b 0d 0a 20 20 79 ┆Diff/NPoints; s:=-Fract; y┆ 0x48fe0…49000 73 3a 3d 79 6b 30 2d 38 3b 0d 0a 20 20 44 69 66 66 3a 3d 28 77 6c 64 5f 2e 79 72 61 6e 67 65 29 ┆s:=yk0-8; Diff:=(wld_.yrange)┆ 0x49000…49020 (29, 0, 3) 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 0d 0a 20 20 7b 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 ┆/NPoints; ædelstreger p ┆ 0x49020…49040 79 2d 61 6b 73 65 6e 20 74 65 67 6e 65 73 7d 0d 0a 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 ┆y-aksen tegneså FOR i:=0 ┆ 0x49040…49060 54 4f 20 4e 50 6f 69 6e 74 73 2d 31 20 44 4f 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 42 45 47 ┆TO NPoints-1 DO BEG┆ 0x49060…49080 49 4e 0d 0a 20 20 20 20 20 79 73 3a 3d 79 73 2b 38 3b 0d 0a 20 20 20 20 20 4e 75 6d 62 65 72 3a ┆IN ys:=ys+8; Number:┆ 0x49080…490a0 3d 77 6c 64 5f 2e 59 31 2b 69 2a 44 69 66 66 3b 0d 0a 20 20 0d 0a 20 20 20 20 20 7b 54 65 67 6e ┆=wld_.Y1+i*Diff; æTegn┆ 0x490a0…490c0 65 72 20 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 0d 0a 20 ┆er delstreger p y-aksenå ┆ 0x490c0…490e0 20 20 20 20 49 46 20 79 64 65 6e 73 3e 30 20 54 48 45 4e 20 57 6e 64 5f 44 72 61 77 4c 69 6e 65 ┆ IF ydens>0 THEN Wnd_DrawLine┆ 0x490e0…49100 28 78 6b 30 2c 79 73 2c 78 6b 30 2d 34 2c 79 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆(xk0,ys,xk0-4,ys); ┆ 0x49100…49120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 49 46 20 28 79 ┆ IF (y┆ 0x49120…49140 64 65 6e 73 3e 30 29 20 41 4e 44 20 28 69 20 4d 4f 44 20 28 31 30 2d 59 44 65 6e 73 29 3d 30 29 ┆dens>0) AND (i MOD (10-YDens)=0)┆ 0x49140…49160 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 6a 3a 3d 78 6b 30 3b 0d 0a 20 20 20 ┆ THEN BEGIN j:=xk0; ┆ 0x49160…49180 20 20 20 20 0d 0a 20 20 20 20 20 20 20 7b 75 64 73 6b 72 69 76 6e 69 6e 67 20 61 66 20 67 69 74 ┆ æudskrivning af git┆ 0x49180…491a0 74 65 72 7d 0d 0a 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 49 46 20 67 69 74 74 65 72 20 ┆terå IF gitter ┆ 0x491a0…491c0 54 48 45 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ┆THEN ┆ 0x491c0…491e0 57 48 49 4c 45 20 6a 3c 3d 78 6b 31 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 ┆WHILE j<=xk1 DO BEGIN ┆ 0x491e0…49200 57 6e 64 5f 77 72 69 74 65 64 6f 74 28 6a 2c 79 73 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 ┆Wnd_writedot(j,ys); j:=j+3; ┆ 0x49200…49220 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 7b 75 64 73 6b ┆ END; æudsk┆ 0x49220…49240 72 69 76 65 72 20 76 91 72 64 69 65 72 20 66 6f 72 20 79 2d 61 6b 73 65 6e 20 20 20 20 20 20 20 ┆river v rdier for y-aksen ┆ 0x49240…49260 7d 0d 0a 20 20 20 20 20 20 20 7b 79 73 3a 20 79 2d 76 91 72 64 69 65 6e 20 66 6f 72 20 75 64 73 ┆å æys: y-v rdien for uds┆ 0x49260…49280 6b 72 69 76 6e 69 6e 67 73 73 74 65 64 65 74 7d 0d 0a 20 20 20 20 20 20 20 7b 65 6b 73 70 6f 79 ┆krivningsstedetå æekspoy┆ 0x49280…492a0 3a 20 65 6b 73 70 6f 6e 65 6e 74 65 6e 20 64 65 72 20 61 6e 76 65 6e 64 65 73 20 20 20 20 7d 20 ┆: eksponenten der anvendes å ┆ 0x492a0…492c0 20 0d 0a 20 20 20 20 20 20 20 7b 6e 75 6d 62 65 72 3a 20 44 65 74 20 74 61 6c 2c 20 64 65 72 20 ┆ ænumber: Det tal, der ┆ 0x492c0…492e0 73 6b 72 69 76 65 73 20 20 20 20 20 20 20 20 7d 20 0d 0a 20 20 20 20 20 20 20 20 20 0d 0a 20 20 ┆skrives å ┆ 0x492e0…49300 20 20 20 20 20 49 46 20 28 79 73 3c 57 6e 64 5f 2e 6d 61 78 79 2d 32 30 29 20 54 48 45 4e 20 20 ┆ IF (ys<Wnd_.maxy-20) THEN ┆ 0x49300…49320 20 20 20 20 20 44 72 61 77 4e 75 6d 28 30 2c 79 73 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 ┆ DrawNum(0,ys,EkspoY,Number)┆ 0x49320…49340 3b 20 20 0d 0a 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 64 65 6c ┆; END; END; del┆ 0x49340…49360 74 61 3a 3d 57 6e 64 5f 2e 6d 61 78 78 2d 78 6b 30 2d 32 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a ┆ta:=Wnd_.maxx-xk0-2; npoints:┆ 0x49360…49380 3d 64 65 6c 74 61 20 44 49 56 20 34 30 2b 31 3b 0d 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 ┆=delta DIV 40+1; ndiff:=delta┆ 0x49380…493a0 2d 28 6e 70 6f 69 6e 74 73 2a 34 30 29 3b 0d 0a 20 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 78 78 ┆-(npoints*40); If ekspoxx┆ 0x493a0…493c0 20 3d 20 27 4a 27 20 74 68 65 6e 20 0d 0a 20 20 0d 0a 20 20 57 49 54 48 20 77 6c 64 5f 20 44 4f ┆ = 'J' then WITH wld_ DO┆ 0x493c0…493e0 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 61 62 73 28 78 72 61 6e 67 65 2b 78 31 29 3e 61 62 ┆ BEGIN IF abs(xrange+x1)>ab┆ 0x493e0…49400 73 28 78 31 29 20 54 48 45 4e 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 ┆s(x1) THEN ekspoy:=getexponent(x┆ 0x49400…49420 (29, 0, 4) 72 61 6e 67 65 2b 78 31 29 0d 0a 20 20 20 20 45 4c 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 ┆range+x1) ELSE ekspoy:=gete┆ 0x49420…49440 78 70 6f 6e 65 6e 74 28 78 31 29 3b 0d 0a 20 20 45 4e 44 0d 0a 20 20 0d 0a 20 20 65 6c 73 65 20 ┆xponent(x1); END else ┆ 0x49440…49460 65 6b 73 70 6f 79 20 3a 3d 20 30 3b 0d 0a 20 20 0d 0a 20 20 49 46 20 28 78 64 65 6e 73 3e 30 29 ┆ekspoy := 0; IF (xdens>0)┆ 0x49460…49480 20 61 6e 64 20 28 65 6b 73 70 6f 79 20 3c 3e 20 30 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 ┆ and (ekspoy <> 0) THEN dr┆ 0x49480…494a0 61 77 65 78 70 6f 6e 65 6e 74 28 57 6e 64 5f 2e 6d 61 78 78 2d 34 38 2c 30 2c 65 6b 73 70 6f 79 ┆awexponent(Wnd_.maxx-48,0,ekspoy┆ 0x494a0…494c0 2c 27 78 2a 31 30 27 29 3b 0d 0a 20 20 0d 0a 20 20 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 ┆,'x*10'); Fract:=NDiff/NP┆ 0x494c0…494e0 6f 69 6e 74 73 3b 0d 0a 20 20 73 3a 3d 2d 46 72 61 63 74 3b 0d 0a 20 20 79 73 3a 3d 78 6b 30 2d ┆oints; s:=-Fract; ys:=xk0-┆ 0x494e0…49500 34 30 3b 0d 0a 20 20 44 69 66 66 3a 3d 28 77 6c 64 5f 2e 78 72 61 6e 67 65 29 2f 4e 50 6f 69 6e ┆40; Diff:=(wld_.xrange)/NPoin┆ 0x49500…49520 74 73 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 4e 50 6f 69 6e 74 73 2d 31 20 44 4f 0d ┆ts; FOR i:=0 TO NPoints-1 DO ┆ 0x49520…49540 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 79 73 3a 3d 79 73 2b 34 30 3b 0d 0a 20 20 20 20 4e ┆ BEGIN ys:=ys+40; N┆ 0x49540…49560 75 6d 62 65 72 3a 3d 77 6c 64 5f 2e 78 31 2b 69 2a 44 69 66 66 3b 0d 0a 20 20 20 20 49 46 20 78 ┆umber:=wld_.x1+i*Diff; IF x┆ 0x49560…49580 64 65 6e 73 3e 30 20 54 48 45 4e 20 57 6e 64 5f 44 72 61 77 4c 69 6e 65 28 79 73 2c 79 6b 30 2c ┆dens>0 THEN Wnd_DrawLine(ys,yk0,┆ 0x49580…495a0 79 73 2c 79 6b 30 2d 34 29 3b 0d 0a 20 20 20 20 49 46 20 28 78 64 65 6e 73 3e 30 29 20 41 4e 44 ┆ys,yk0-4); IF (xdens>0) AND┆ 0x495a0…495c0 20 28 69 20 4d 4f 44 20 28 31 30 2d 78 44 65 6e 73 29 3d 30 29 20 54 48 45 4e 20 42 45 47 49 4e ┆ (i MOD (10-xDens)=0) THEN BEGIN┆ 0x495c0…495e0 0d 0a 20 20 20 20 20 20 6a 3a 3d 79 6b 30 3b 0d 0a 20 20 20 20 20 20 49 46 20 67 69 74 74 65 72 ┆ j:=yk0; IF gitter┆ 0x495e0…49600 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 57 48 49 4c 45 20 6a 3c 3d 79 6b 31 20 44 4f 20 42 45 ┆ THEN WHILE j<=yk1 DO BE┆ 0x49600…49620 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 57 6e 64 5f 77 72 69 74 65 64 6f 74 28 79 73 2c 6a 29 3b ┆GIN Wnd_writedot(ys,j);┆ 0x49620…49640 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 49 46 20 ┆ j:=j+3; END; IF ┆ 0x49640…49660 28 79 73 3c 57 6e 64 5f 2e 6d 61 78 78 2d 34 38 29 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 ┆(ys<Wnd_.maxx-48)THEN BEGIN ┆ 0x49660…49680 20 20 20 20 20 44 72 61 77 4e 75 6d 28 79 73 2d 34 30 2c 30 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 ┆ DrawNum(ys-40,0,EkspoY,Numb┆ 0x49680…496a0 65 72 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 45 ┆er); END; END; E┆ 0x496a0…496c0 4e 44 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 ┆ND; WITH Wnd_ DO BEGIN x┆ 0x496c0…496e0 31 3a 3d 78 31 2b 78 6b 30 3b 0d 0a 20 20 20 20 6d 61 78 78 3a 3d 6d 61 78 78 2d 78 6b 30 3b 0d ┆1:=x1+xk0; maxx:=maxx-xk0; ┆ 0x496e0…49700 0a 20 20 20 20 79 31 3a 3d 79 31 2b 79 6b 30 3b 0d 0a 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 ┆ y1:=y1+yk0; maxy:=maxy┆ 0x49700…49720 2d 79 6b 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 ┆-yk0; END; END; ┆ 0x49720…49740 00 00 00 00 00 00 00 00 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…] 0x49780…497a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x3…] 0x49800…49820 (29, 0, 5) 7b 4a 45 4f 20 38 35 30 37 33 30 20 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 20 48 65 72 63 47 72 61 70 ┆æJEO 850730 å const HercGrap┆ 0x49820…49840 68 54 61 62 6c 65 20 3a 20 61 72 72 61 79 20 5b 31 2e 2e 31 32 5d 20 6f 66 20 62 79 74 65 20 3d ┆hTable : array Æ1..12Å of byte =┆ 0x49840…49860 20 28 0d 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 24 33 35 2c ┆ ( $35,┆ 0x49860…49880 24 32 44 2c 24 32 45 2c 24 30 37 2c 24 35 42 2c 24 30 32 2c 24 35 37 2c 24 35 37 2c 24 30 32 2c ┆$2D,$2E,$07,$5B,$02,$57,$57,$02,┆ 0x49880…498a0 24 30 33 2c 24 30 31 2c 24 30 43 29 3b 0d 0a 63 6f 6e 73 74 20 20 48 65 72 63 54 65 78 74 54 61 ┆$03,$01,$0C); const HercTextTa┆ 0x498a0…498c0 62 6c 65 20 20 3a 20 61 72 72 61 79 20 5b 31 2e 2e 31 32 5d 20 6f 66 20 62 79 74 65 20 3d 20 28 ┆ble : array Æ1..12Å of byte = (┆ 0x498c0…498e0 0d 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 24 36 31 2c 24 35 ┆ $61,$5┆ 0x498e0…49900 30 2c 24 35 32 2c 24 30 46 2c 24 31 39 2c 24 30 36 2c 24 31 39 2c 24 31 39 2c 24 30 32 2c 24 30 ┆0,$52,$0F,$19,$06,$19,$19,$02,$0┆ 0x49900…49920 44 2c 24 30 42 2c 24 30 43 29 3b 0d 0a 0d 0a 74 79 70 65 20 47 72 61 70 68 69 63 46 6f 6e 74 20 ┆D,$0B,$0C); type GraphicFont ┆ 0x49920…49940 3d 20 61 72 72 61 79 20 5b 30 2e 2e 33 31 5d 20 6f 66 20 69 6e 74 65 67 65 72 3b 0d 0a 0d 0a 76 ┆= array Æ0..31Å of integer; v┆ 0x49940…49960 61 72 20 50 4c 4f 54 43 4f 55 4e 54 2c 50 4c 4f 54 4c 49 4e 45 53 3a 20 49 4e 54 45 47 45 52 3b ┆ar PLOTCOUNT,PLOTLINES: INTEGER;┆ 0x49960…49980 0d 0a 20 20 20 20 50 4c 4f 54 44 45 46 49 4e 54 3a 20 41 52 52 41 59 20 5b 31 2e 2e 33 32 5d 20 ┆ PLOTDEFINT: ARRAY Æ1..32Å ┆ 0x49980…499a0 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 50 4c 4f 54 44 45 46 52 45 41 4c 3a 20 41 52 ┆OF INTEGER; PLOTDEFREAL: AR┆ 0x499a0…499c0 52 41 59 20 5b 31 2e 2e 32 34 5d 20 4f 46 20 52 45 41 4c 3b 0d 0a 20 20 20 20 50 4c 4f 54 46 49 ┆RAY Æ1..24Å OF REAL; PLOTFI┆ 0x499c0…499e0 4c 45 3a 20 54 45 58 54 3b 0d 0a 20 20 20 20 48 43 44 65 66 49 6e 74 3a 20 61 72 72 61 79 20 5b ┆LE: TEXT; HCDefInt: array Æ┆ 0x499e0…49a00 31 2e 2e 31 30 5d 20 6f 66 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 48 43 44 65 66 52 65 61 ┆1..10Å of integer; HCDefRea┆ 0x49a00…49a20 6c 3a 20 61 72 72 61 79 20 5b 31 2e 2e 31 30 5d 20 6f 66 20 72 65 61 6c 3b 0d 0a 20 20 20 20 48 ┆l: array Æ1..10Å of real; H┆ 0x49a20…49a40 43 46 6f 6e 74 3a 20 47 72 61 70 68 69 63 46 6f 6e 74 3b 0d 0a 20 20 20 20 48 43 46 6f 6e 74 46 ┆CFont: GraphicFont; HCFontF┆ 0x49a40…49a60 69 6c 65 3a 20 66 69 6c 65 20 6f 66 20 47 72 61 70 68 69 63 46 6f 6e 74 3b 0d 0a 0d 0a 50 52 4f ┆ile: file of GraphicFont; PRO┆ 0x49a60…49a80 43 45 44 55 52 45 20 4d 61 72 6b 52 65 63 74 61 6e 67 6c 65 28 58 6c 6f 77 2c 59 6c 6f 77 2c 58 ┆CEDURE MarkRectangle(Xlow,Ylow,X┆ 0x49a80…49aa0 73 69 7a 65 2c 59 73 69 7a 65 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆size,Ysize: integer); BEGIN ┆ 0x49aa0…49ac0 6d 6f 76 65 74 6f 28 58 6c 6f 77 2c 59 6c 6f 77 29 3b 0d 0a 20 20 64 72 61 77 74 6f 28 58 6c 6f ┆moveto(Xlow,Ylow); drawto(Xlo┆ 0x49ac0…49ae0 77 2c 59 6c 6f 77 2b 59 73 69 7a 65 29 3b 0d 0a 20 20 64 72 61 77 74 6f 28 58 6c 6f 77 2b 58 73 ┆w,Ylow+Ysize); drawto(Xlow+Xs┆ 0x49ae0…49b00 69 7a 65 2c 59 6c 6f 77 2b 59 73 69 7a 65 29 3b 0d 0a 20 20 64 72 61 77 74 6f 28 58 6c 6f 77 2b ┆ize,Ylow+Ysize); drawto(Xlow+┆ 0x49b00…49b20 58 73 69 7a 65 2c 59 6c 6f 77 29 3b 0d 0a 20 20 64 72 61 77 74 6f 28 58 6c 6f 77 2c 59 6c 6f 77 ┆Xsize,Ylow); drawto(Xlow,Ylow┆ 0x49b20…49b40 29 3b 0d 0a 20 20 50 65 6e 55 70 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆); PenUp; END; PROCEDURE ┆ 0x49b40…49b60 6d 61 72 6b 63 69 72 63 6c 65 28 78 2c 79 2c 72 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d ┆markcircle(x,y,r: REAL); BEGIN ┆ 0x49b60…49b80 0a 20 20 63 69 72 63 6c 65 28 78 2c 79 2c 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆ circle(x,y,r); END; PROCE┆ 0x49b80…49ba0 44 55 52 45 20 6d 61 72 6b 77 65 67 64 65 0d 0a 28 78 63 65 6e 74 65 72 2c 79 63 65 6e 74 65 72 ┆DURE markwegde (xcenter,ycenter┆ 0x49ba0…49bc0 2c 72 61 64 69 75 73 2c 73 74 61 72 74 61 6e 67 6c 65 2c 73 77 65 65 70 61 6e 67 6c 65 2c 63 68 ┆,radius,startangle,sweepangle,ch┆ 0x49bc0…49be0 6f 72 64 61 6e 67 6c 65 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 43 4f 4e 53 54 20 50 68 69 20 3d ┆ordangle: INTEGER); CONST Phi =┆ 0x49be0…49c00 20 33 2e 31 34 3b 0d 0a 56 41 52 0d 0a 20 20 4e 75 6d 2c 49 20 3a 20 49 6e 74 65 67 65 72 3b 0d ┆ 3.14; VAR Num,I : Integer; ┆ 0x49c00…49c20 (29, 1, 1) 0a 20 20 20 20 46 61 63 20 3a 20 52 65 61 6c 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 61 63 3a 3d ┆ Fac : Real; BEGIN Fac:=┆ 0x49c20…49c40 50 68 69 2f 31 38 30 2e 30 3b 0d 0a 20 20 4e 75 6d 3a 3d 53 77 65 65 70 41 6e 67 6c 65 20 64 69 ┆Phi/180.0; Num:=SweepAngle di┆ 0x49c40…49c60 76 20 43 68 6f 72 64 41 6e 67 6c 65 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 43 65 6e 74 65 72 2b ┆v ChordAngle; moveto(XCenter+┆ 0x49c60…49c80 72 6f 75 6e 64 28 63 6f 73 28 53 74 61 72 74 41 6e 67 6c 65 2a 46 61 63 29 2a 52 61 64 69 75 73 ┆round(cos(StartAngle*Fac)*Radius┆ 0x49c80…49ca0 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 59 43 65 6e 74 65 72 2b 72 6f 75 6e 64 28 73 69 ┆), YCenter+round(si┆ 0x49ca0…49cc0 6e 28 53 74 61 72 74 41 6e 67 6c 65 2a 46 61 63 29 2a 52 61 64 69 75 73 29 29 3b 0d 0a 20 20 46 ┆n(StartAngle*Fac)*Radius)); F┆ 0x49cc0…49ce0 4f 52 20 49 3a 3d 31 20 54 4f 20 4e 75 6d 20 64 6f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆OR I:=1 TO Num do BEGIN ┆ 0x49ce0…49d00 64 72 61 77 74 6f 28 58 43 65 6e 74 65 72 2b 72 6f 75 6e 64 28 63 6f 73 28 28 53 74 61 72 74 41 ┆drawto(XCenter+round(cos((StartA┆ 0x49d00…49d20 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 29 2a 52 61 64 69 75 73 29 2c ┆ngle+i*ChordAngle)*Fac)*Radius),┆ 0x49d20…49d40 0d 0a 20 20 20 20 20 20 20 20 20 20 59 43 65 6e 74 65 72 2b 72 6f 75 6e 64 28 73 69 6e 28 28 53 ┆ YCenter+round(sin((S┆ 0x49d40…49d60 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 29 2a 52 61 64 ┆tartAngle+i*ChordAngle)*Fac)*Rad┆ 0x49d60…49d80 69 75 73 29 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 43 65 6e 74 65 72 ┆ius)); END; moveto(XCenter┆ 0x49d80…49da0 2c 59 43 65 6e 74 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 46 49 ┆,YCenter); END; PROCEDURE FI┆ 0x49da0…49dc0 4c 4c 57 45 44 47 45 28 58 43 45 4e 54 45 52 2c 59 43 45 4e 54 45 52 2c 52 41 44 49 55 53 2c 53 ┆LLWEDGE(XCENTER,YCENTER,RADIUS,S┆ 0x49dc0…49de0 54 41 52 54 41 4e 47 4c 45 2c 53 57 45 45 50 41 4e 47 4c 45 2c 43 48 4f 52 44 41 4e 47 4c 45 3a ┆TARTANGLE,SWEEPANGLE,CHORDANGLE:┆ 0x49de0…49e00 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 41 43 45 55 50 28 58 43 45 4e 54 ┆ INTEGER); BEGIN PLACEUP(XCENT┆ 0x49e00…49e20 45 52 2c 59 43 45 4e 54 45 52 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆ER,YCENTER); END; PROCEDURE ┆ 0x49e20…49e40 4d 41 52 4b 53 59 4d 42 4f 4c 4d 4f 44 45 28 58 2c 59 2c 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 ┆MARKSYMBOLMODE(X,Y,SYMBOL: INTEG┆ 0x49e40…49e60 45 52 29 3b 0d 0a 56 41 52 20 4f 4c 44 57 2c 4f 4c 44 48 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 ┆ER); VAR OLDW,OLDH: REAL; BEGI┆ 0x49e60…49e80 4e 0d 0a 4f 4c 44 57 3a 3d 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 5d 3b 0d 0a 4f 4c 44 48 3a 3d ┆N OLDW:=PLOTDEFREALÆ1Å; OLDH:=┆ 0x49e80…49ea0 50 4c 4f 54 44 45 46 52 45 41 4c 5b 32 5d 3b 0d 0a 43 48 41 52 53 49 5a 45 28 50 4c 4f 54 44 45 ┆PLOTDEFREALÆ2Å; CHARSIZE(PLOTDE┆ 0x49ea0…49ec0 46 52 45 41 4c 5b 33 5d 29 3b 0d 0a 45 4e 44 3b 0d 0a 28 2a 20 4a 45 4f 20 38 35 30 37 32 37 20 ┆FREALÆ3Å); END; (* JEO 850727 ┆ 0x49ec0…49ee0 2a 29 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 ┆*) FUNCTION CONVERTSCALE(DATA┆ 0x49ee0…49f00 50 4f 53 3a 20 52 45 41 4c 3b 58 59 3a 20 49 4e 54 45 47 45 52 29 3a 20 49 4e 54 45 47 45 52 3b ┆POS: REAL;XY: INTEGER): INTEGER;┆ 0x49f00…49f20 0d 0a 76 61 72 20 4d 69 64 3a 20 52 65 61 6c 3b 0d 0a 42 45 47 49 4e 0d 0a 4d 69 64 3a 3d 50 6c ┆ var Mid: Real; BEGIN Mid:=Pl┆ 0x49f20…49f40 6f 74 44 65 66 52 65 61 6c 5b 33 2b 34 2a 58 59 5d 2a 28 44 61 74 61 50 6f 73 2d 50 6c 6f 74 44 ┆otDefRealÆ3+4*XYÅ*(DataPos-PlotD┆ 0x49f40…49f60 65 66 52 65 61 6c 5b 31 33 2b 58 59 5d 29 3b 0d 0a 69 66 20 28 4d 69 64 3e 2d 33 32 37 36 37 29 ┆efRealÆ13+XYÅ); if (Mid>-32767)┆ 0x49f60…49f80 20 61 6e 64 20 28 4d 69 64 3c 33 32 37 36 37 29 20 74 68 65 6e 0d 0a 20 43 4f 4e 56 45 52 54 53 ┆ and (Mid<32767) then CONVERTS┆ 0x49f80…49fa0 43 41 4c 45 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 33 2b 58 59 5d 2b 52 4f 55 4e 44 28 4d 69 ┆CALE:=PLOTDEFINTÆ13+XYÅ+ROUND(Mi┆ 0x49fa0…49fc0 64 29 0d 0a 65 6c 73 65 20 43 6f 6e 76 65 72 74 53 63 61 6c 65 3a 3d 4d 69 73 49 6e 74 0d 0a 45 ┆d) else ConvertScale:=MisInt E┆ 0x49fc0…49fe0 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 53 54 49 54 4c 45 50 4c 41 43 45 28 ┆ND; PROCEDURE AXISTITLEPLACE(┆ 0x49fe0…4a000 50 4c 41 43 45 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 ┆PLACE: INTEGER); BEGIN PLOTDEF┆ 0x4a000…4a020 (29, 1, 2) 49 4e 54 5b 32 39 5d 3a 3d 50 4c 41 43 45 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆INTÆ29Å:=PLACE; END; PROCEDU┆ 0x4a020…4a040 52 45 20 4d 41 52 47 49 4e 28 4c 4f 57 2c 48 49 47 48 3a 20 52 45 41 4c 3b 49 41 58 49 53 3a 20 ┆RE MARGIN(LOW,HIGH: REAL;IAXIS: ┆ 0x4a040…4a060 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 31 33 2b ┆INTEGER); BEGIN PLOTDEFINTÆ13+┆ 0x4a060…4a080 49 41 58 49 53 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 37 2b 49 41 58 49 53 5d 2b 52 4f 55 4e ┆IAXISÅ:=PLOTDEFINTÆ7+IAXISÅ+ROUN┆ 0x4a080…4a0a0 44 28 4c 4f 57 2a 34 30 30 29 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 31 35 2b 49 41 58 49 53 ┆D(LOW*400); PLOTDEFINTÆ15+IAXIS┆ 0x4a0a0…4a0c0 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 39 2b 49 41 58 49 53 5d 2d 52 4f 55 4e 44 28 48 49 47 ┆Å:=PLOTDEFINTÆ9+IAXISÅ-ROUND(HIG┆ 0x4a0c0…4a0e0 48 2a 34 30 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 53 53 ┆H*400); END; PROCEDURE AXISS┆ 0x4a0e0…4a100 50 41 43 45 28 4c 4f 57 2c 48 49 47 48 3a 20 52 45 41 4c 3b 49 41 58 49 53 3a 20 49 4e 54 45 47 ┆PACE(LOW,HIGH: REAL;IAXIS: INTEG┆ 0x4a100…4a120 45 52 29 3b 0d 0a 76 61 72 20 49 41 78 69 73 32 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 ┆ER); var IAxis2: integer; BEGI┆ 0x4a120…4a140 4e 0d 0a 49 41 78 69 73 32 3a 3d 61 62 73 28 49 41 78 69 73 29 2a 32 3b 0d 0a 50 4c 4f 54 44 45 ┆N IAxis2:=abs(IAxis)*2; PLOTDE┆ 0x4a140…4a160 46 52 45 41 4c 5b 31 34 2b 49 41 78 69 73 32 5d 3a 3d 4c 4f 57 3b 0d 0a 50 4c 4f 54 44 45 46 52 ┆FREALÆ14+IAxis2Å:=LOW; PLOTDEFR┆ 0x4a160…4a180 45 41 4c 5b 31 35 2b 49 41 78 69 73 32 5d 3a 3d 48 49 47 48 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 70 ┆EALÆ15+IAxis2Å:=HIGH; END; p┆ 0x4a180…4a1a0 72 6f 63 65 64 75 72 65 20 44 65 66 69 6e 65 46 69 67 75 72 65 28 50 65 6e 2c 50 61 70 65 72 53 ┆rocedure DefineFigure(Pen,PaperS┆ 0x4a1a0…4a1c0 69 7a 65 2c 41 78 54 69 74 50 6c 61 63 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 20 20 20 ┆ize,AxTitPlac: integer; ┆ 0x4a1c0…4a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 53 69 7a 65 2c 59 53 69 7a 65 2c 4b 61 72 53 ┆ XSize,YSize,KarS┆ 0x4a1e0…4a200 69 7a 65 2c 4d 61 72 6b 53 69 7a 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ize,MarkSize, ┆ 0x4a200…4a220 20 20 20 20 20 20 4d 61 72 67 53 69 7a 65 2c 4c 6f 77 53 70 61 63 65 2c 48 69 67 68 53 70 61 63 ┆ MargSize,LowSpace,HighSpac┆ 0x4a220…4a240 65 3a 20 72 65 61 6c 29 3b 0d 0a 62 65 67 69 6e 0d 0a 57 69 6e 64 6f 77 28 50 61 70 65 72 53 69 ┆e: real); begin Window(PaperSi┆ 0x4a240…4a260 7a 65 2c 30 2c 30 2c 58 53 69 7a 65 2c 59 53 69 7a 65 29 3b 0d 0a 43 68 61 72 53 69 7a 65 28 4b ┆ze,0,0,XSize,YSize); CharSize(K┆ 0x4a260…4a280 61 72 53 69 7a 65 29 3b 0d 0a 4d 61 72 6b 65 72 53 69 7a 65 28 4d 61 72 6b 53 69 7a 65 29 3b 0d ┆arSize); MarkerSize(MarkSize); ┆ 0x4a280…4a2a0 0a 4d 61 72 67 69 6e 28 4d 61 72 67 53 69 7a 65 2c 4d 61 72 67 53 69 7a 65 2c 31 29 3b 0d 0a 4d ┆ Margin(MargSize,MargSize,1); M┆ 0x4a2a0…4a2c0 61 72 67 69 6e 28 4d 61 72 67 53 69 7a 65 2c 4d 61 72 67 53 69 7a 65 2c 32 29 3b 0d 0a 41 78 69 ┆argin(MargSize,MargSize,2); Axi┆ 0x4a2c0…4a2e0 73 54 69 74 6c 65 50 6c 61 63 65 28 41 78 54 69 74 50 6c 61 63 29 3b 0d 0a 41 78 69 73 53 70 61 ┆sTitlePlace(AxTitPlac); AxisSpa┆ 0x4a2e0…4a300 63 65 28 4c 6f 77 53 70 61 63 65 2c 48 69 67 68 53 70 61 63 65 2c 31 29 3b 0d 0a 41 78 69 73 53 ┆ce(LowSpace,HighSpace,1); AxisS┆ 0x4a300…4a320 70 61 63 65 28 4c 6f 77 53 70 61 63 65 2c 48 69 67 68 53 70 61 63 65 2c 32 29 3b 0d 0a 47 65 74 ┆pace(LowSpace,HighSpace,2); Get┆ 0x4a320…4a340 50 65 6e 28 50 65 6e 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 54 41 ┆Pen(Pen); end; PROCEDURE STA┆ 0x4a340…4a360 4e 44 41 52 44 46 49 47 55 52 45 3b 0d 0a 42 45 47 49 4e 0d 0a 44 65 66 69 6e 65 46 69 67 75 72 ┆NDARDFIGURE; BEGIN DefineFigur┆ 0x4a360…4a380 65 28 31 2c 34 2c 33 2c 31 36 2c 31 32 2c 30 2e 38 35 2c 30 2e 37 2c 32 2c 32 2c 30 29 3b 0d 0a ┆e(1,4,3,16,12,0.85,0.7,2,2,0); ┆ 0x4a380…4a3a0 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 45 46 49 4e 45 41 58 49 53 28 41 58 4d ┆END; PROCEDURE DEFINEAXIS(AXM┆ 0x4a3a0…4a3c0 49 4e 2c 41 58 4d 41 58 2c 41 58 53 54 45 50 3a 20 52 45 41 4c 3b 49 41 58 49 53 3a 20 49 4e 54 ┆IN,AXMAX,AXSTEP: REAL;IAXIS: INT┆ 0x4a3c0…4a3e0 45 47 45 52 29 3b 0d 0a 56 41 52 20 49 41 78 69 73 31 2c 49 41 78 69 73 32 2c 49 41 78 69 73 34 ┆EGER); VAR IAxis1,IAxis2,IAxis4┆ 0x4a3e0…4a400 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 50 43 54 2c 53 54 41 52 54 56 41 4c 2c 53 4c 55 ┆: integer; PCT,STARTVAL,SLU┆ 0x4a400…4a420 (29, 1, 3) 54 56 41 4c 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a 3d 61 62 73 28 ┆TVAL: REAL; BEGIN IAxis1:=abs(┆ 0x4a420…4a440 49 41 78 69 73 29 3b 0d 0a 49 41 78 69 73 32 3a 3d 32 2a 49 41 78 69 73 31 3b 0d 0a 49 41 78 69 ┆IAxis); IAxis2:=2*IAxis1; IAxi┆ 0x4a440…4a460 73 34 3a 3d 32 2a 49 41 78 69 73 32 3b 0d 0a 50 43 54 3a 3d 28 41 58 4d 41 58 2d 41 58 4d 49 4e ┆s4:=2*IAxis2; PCT:=(AXMAX-AXMIN┆ 0x4a460…4a480 29 2f 31 30 30 2e 30 3b 0d 0a 53 54 41 52 54 56 41 4c 3a 3d 41 58 4d 49 4e 2d 50 43 54 2a 50 4c ┆)/100.0; STARTVAL:=AXMIN-PCT*PL┆ 0x4a480…4a4a0 4f 54 44 45 46 52 45 41 4c 5b 31 34 2b 49 41 78 69 73 32 5d 3b 0d 0a 53 4c 55 54 56 41 4c 3a 3d ┆OTDEFREALÆ14+IAxis2Å; SLUTVAL:=┆ 0x4a4a0…4a4c0 41 58 4d 41 58 2b 50 43 54 2a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 35 2b 49 41 78 69 73 32 5d ┆AXMAX+PCT*PLOTDEFREALÆ15+IAxis2Å┆ 0x4a4c0…4a4e0 3b 0d 0a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 49 41 78 69 73 34 5d 3a 3d 41 58 4d 49 4e 3b 0d 0a ┆; PLOTDEFREALÆIAxis4Å:=AXMIN; ┆ 0x4a4e0…4a500 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 2b 49 41 78 69 73 34 5d 3a 3d 41 58 4d 41 58 3b 0d 0a 50 ┆PLOTDEFREALÆ1+IAxis4Å:=AXMAX; P┆ 0x4a500…4a520 4c 4f 54 44 45 46 52 45 41 4c 5b 32 2b 49 41 78 69 73 34 5d 3a 3d 41 58 53 54 45 50 3b 0d 0a 50 ┆LOTDEFREALÆ2+IAxis4Å:=AXSTEP; P┆ 0x4a520…4a540 4c 4f 54 44 45 46 52 45 41 4c 5b 33 2b 49 41 78 69 73 34 5d 3a 3d 28 50 4c 4f 54 44 45 46 49 4e ┆LOTDEFREALÆ3+IAxis4Å:=(PLOTDEFIN┆ 0x4a540…4a560 54 5b 31 35 2b 49 41 78 69 73 31 5d 2d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 33 2b 49 41 78 69 73 ┆TÆ15+IAxis1Å-PLOTDEFINTÆ13+IAxis┆ 0x4a560…4a580 31 5d 29 2f 28 53 4c 55 54 56 41 4c 2d 53 54 41 52 54 56 41 4c 29 3b 0d 0a 50 4c 4f 54 44 45 46 ┆1Å)/(SLUTVAL-STARTVAL); PLOTDEF┆ 0x4a580…4a5a0 52 45 41 4c 5b 31 33 2b 49 41 78 69 73 31 5d 3a 3d 53 54 41 52 54 56 41 4c 3b 0d 0a 45 4e 44 3b ┆REALÆ13+IAxis1Å:=STARTVAL; END;┆ 0x4a5a0…4a5c0 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 53 43 4f 4f 52 44 49 4e 41 54 45 53 28 49 41 ┆ PROCEDURE AXISCOORDINATES(IA┆ 0x4a5c0…4a5e0 58 49 53 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆XIS: INTEGER; ┆ 0x4a5e0…4a600 20 20 20 20 20 20 20 20 20 56 41 52 20 58 53 54 41 52 54 2c 59 53 54 41 52 54 2c 54 49 43 4b 53 ┆ VAR XSTART,YSTART,TICKS┆ 0x4a600…4a620 54 41 52 54 2c 53 4c 55 54 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 76 61 72 20 49 41 78 69 73 31 ┆TART,SLUT: INTEGER); var IAxis1┆ 0x4a620…4a640 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a 3d 61 62 73 28 49 ┆: integer; BEGIN IAxis1:=abs(I┆ 0x4a640…4a660 41 78 69 73 29 3b 0d 0a 49 46 20 49 41 58 49 53 3d 2d 32 20 54 48 45 4e 20 58 53 54 41 52 54 3a ┆Axis); IF IAXIS=-2 THEN XSTART:┆ 0x4a660…4a680 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 36 5d 0d 0a 45 4c 53 45 20 58 53 54 41 52 54 3a 3d 50 4c ┆=PLOTDEFINTÆ16Å ELSE XSTART:=PL┆ 0x4a680…4a6a0 4f 54 44 45 46 49 4e 54 5b 31 34 5d 3b 0d 0a 49 46 20 49 41 58 49 53 3d 2d 31 20 54 48 45 4e 20 ┆OTDEFINTÆ14Å; IF IAXIS=-1 THEN ┆ 0x4a6a0…4a6c0 59 53 54 41 52 54 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 37 5d 0d 0a 45 4c 53 45 20 59 53 54 ┆YSTART:=PLOTDEFINTÆ17Å ELSE YST┆ 0x4a6c0…4a6e0 41 52 54 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 35 5d 3b 0d 0a 54 49 43 4b 53 54 41 52 54 3a ┆ART:=PLOTDEFINTÆ15Å; TICKSTART:┆ 0x4a6e0…4a700 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 34 2a 49 41 78 69 ┆=CONVERTSCALE(PLOTDEFREALÆ4*IAxi┆ 0x4a700…4a720 73 31 5d 2c 49 41 78 69 73 31 29 3b 0d 0a 53 4c 55 54 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 ┆s1Å,IAxis1); SLUT:=PLOTDEFINTÆ1┆ 0x4a720…4a740 35 2b 49 41 78 69 73 31 5d 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 41 ┆5+IAxis1Å; END; PROCEDURE MA┆ 0x4a740…4a760 4b 45 41 58 49 53 28 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 4e 55 4d ┆KEAXIS(IAXIS: INTEGER); VAR NUM┆ 0x4a760…4a780 2c 50 4f 53 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 54 2c 49 41 78 69 73 31 2c 49 41 78 69 73 ┆,POS,TICKSTART,SLUT,IAxis1,IAxis┆ 0x4a780…4a7a0 34 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 53 54 41 52 54 3a 20 41 52 52 41 59 20 5b 31 ┆4: INTEGER; START: ARRAY Æ1┆ 0x4a7a0…4a7c0 2e 2e 32 5d 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a ┆..2Å OF INTEGER; BEGIN IAxis1:┆ 0x4a7c0…4a7e0 3d 61 62 73 28 49 41 78 69 73 29 3b 0d 0a 49 41 78 69 73 34 3a 3d 34 2a 49 41 78 69 73 31 3b 0d ┆=abs(IAxis); IAxis4:=4*IAxis1; ┆ 0x4a7e0…4a800 0a 54 49 43 4b 4c 45 4e 47 54 48 28 30 2e 32 2c 49 41 58 49 53 29 3b 0d 0a 41 58 49 53 43 4f 4f ┆ TICKLENGTH(0.2,IAXIS); AXISCOO┆ 0x4a800…4a820 (29, 1, 4) 52 44 49 4e 41 54 45 53 28 49 41 58 49 53 2c 53 54 41 52 54 5b 31 5d 2c 53 54 41 52 54 5b 32 5d ┆RDINATES(IAXIS,STARTÆ1Å,STARTÆ2Å┆ 0x4a820…4a840 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 54 29 3b 0d 0a 50 4c 41 43 45 44 4f 57 4e 28 53 54 41 ┆,TICKSTART,SLUT); PLACEDOWN(STA┆ 0x4a840…4a860 52 54 5b 31 5d 2c 53 54 41 52 54 5b 32 5d 29 3b 0d 0a 49 46 20 49 41 78 69 73 31 3d 31 20 54 48 ┆RTÆ1Å,STARTÆ2Å); IF IAxis1=1 TH┆ 0x4a860…4a880 45 4e 20 50 4c 54 4c 49 4e 45 28 53 4c 55 54 2c 53 54 41 52 54 5b 32 5d 29 0d 0a 45 4c 53 45 20 ┆EN PLTLINE(SLUT,STARTÆ2Å) ELSE ┆ 0x4a880…4a8a0 50 4c 54 4c 49 4e 45 28 53 54 41 52 54 5b 31 5d 2c 53 4c 55 54 29 3b 0d 0a 4e 55 4d 3a 3d 30 3b ┆PLTLINE(STARTÆ1Å,SLUT); NUM:=0;┆ 0x4a8a0…4a8c0 0d 0a 50 4f 53 3a 3d 54 49 43 4b 53 54 41 52 54 3b 0d 0a 57 48 49 4c 45 20 50 4f 53 3c 3d 28 53 ┆ POS:=TICKSTART; WHILE POS<=(S┆ 0x4a8c0…4a8e0 4c 55 54 2b 31 29 20 44 4f 0d 0a 20 42 45 47 49 4e 0d 0a 20 49 46 20 49 41 78 69 73 31 3d 31 20 ┆LUT+1) DO BEGIN IF IAxis1=1 ┆ 0x4a8e0…4a900 54 48 45 4e 20 50 4c 41 43 45 55 50 28 50 4f 53 2c 53 54 41 52 54 5b 32 5d 29 0d 0a 20 45 4c 53 ┆THEN PLACEUP(POS,STARTÆ2Å) ELS┆ 0x4a900…4a920 45 20 50 4c 41 43 45 55 50 28 53 54 41 52 54 5b 31 5d 2c 50 4f 53 29 3b 0d 0a 20 54 49 43 4b 4d ┆E PLACEUP(STARTÆ1Å,POS); TICKM┆ 0x4a920…4a940 41 52 4b 28 49 41 58 49 53 29 3b 0d 0a 20 4e 55 4d 3a 3d 4e 55 4d 2b 31 3b 0d 0a 20 50 4f 53 3a ┆ARK(IAXIS); NUM:=NUM+1; POS:┆ 0x4a940…4a960 3d 54 49 43 4b 53 54 41 52 54 2b 52 4f 55 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 33 2b 49 ┆=TICKSTART+ROUND(PLOTDEFREALÆ3+I┆ 0x4a960…4a980 41 78 69 73 34 5d 2a 4e 55 4d 2a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 32 2b 49 41 78 69 73 34 5d ┆Axis4Å*NUM*PLOTDEFREALÆ2+IAxis4Å┆ 0x4a980…4a9a0 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 ┆); END; END; PROCEDURE AXI┆ 0x4a9a0…4a9c0 53 54 49 43 4b 28 4e 54 49 43 4b 53 2c 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 ┆STICK(NTICKS,IAXIS: INTEGER); V┆ 0x4a9c0…4a9e0 41 52 20 4e 55 4d 2c 50 4f 53 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 54 2c 4e 50 41 52 54 53 ┆AR NUM,POS,TICKSTART,SLUT,NPARTS┆ 0x4a9e0…4aa00 2c 49 41 78 69 73 31 2c 49 41 78 69 73 34 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 53 54 ┆,IAxis1,IAxis4: INTEGER; ST┆ 0x4aa00…4aa20 41 52 54 3a 20 41 52 52 41 59 20 5b 31 2e 2e 32 5d 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆ART: ARRAY Æ1..2Å OF INTEGER; ┆ 0x4aa20…4aa40 20 20 20 44 45 4c 54 41 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a 3d ┆ DELTA: REAL; BEGIN IAxis1:=┆ 0x4aa40…4aa60 61 62 73 28 49 41 78 69 73 29 3b 0d 0a 49 41 78 69 73 34 3a 3d 34 2a 49 41 78 69 73 31 3b 0d 0a ┆abs(IAxis); IAxis4:=4*IAxis1; ┆ 0x4aa60…4aa80 4e 50 41 52 54 53 3a 3d 4e 54 49 43 4b 53 2b 31 3b 0d 0a 54 49 43 4b 4c 45 4e 47 54 48 28 30 2e ┆NPARTS:=NTICKS+1; TICKLENGTH(0.┆ 0x4aa80…4aaa0 31 2c 49 41 58 49 53 29 3b 0d 0a 41 58 49 53 43 4f 4f 52 44 49 4e 41 54 45 53 28 49 41 58 49 53 ┆1,IAXIS); AXISCOORDINATES(IAXIS┆ 0x4aaa0…4aac0 2c 53 54 41 52 54 5b 31 5d 2c 53 54 41 52 54 5b 32 5d 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 ┆,STARTÆ1Å,STARTÆ2Å,TICKSTART,SLU┆ 0x4aac0…4aae0 54 29 3b 0d 0a 44 45 4c 54 41 3a 3d 50 4c 4f 54 44 45 46 52 45 41 4c 5b 32 2b 49 41 78 69 73 34 ┆T); DELTA:=PLOTDEFREALÆ2+IAxis4┆ 0x4aae0…4ab00 5d 2f 4e 50 41 52 54 53 3b 0d 0a 4e 55 4d 3a 3d 30 3b 0d 0a 50 4f 53 3a 3d 54 49 43 4b 53 54 41 ┆Å/NPARTS; NUM:=0; POS:=TICKSTA┆ 0x4ab00…4ab20 52 54 3b 0d 0a 57 48 49 4c 45 20 50 4f 53 3c 3d 28 53 4c 55 54 2b 31 29 20 44 4f 0d 0a 20 42 45 ┆RT; WHILE POS<=(SLUT+1) DO BE┆ 0x4ab20…4ab40 47 49 4e 0d 0a 20 49 46 20 28 4e 55 4d 20 4d 4f 44 20 4e 50 41 52 54 53 29 3e 30 20 54 48 45 4e ┆GIN IF (NUM MOD NPARTS)>0 THEN┆ 0x4ab40…4ab60 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 49 46 20 49 41 78 69 73 31 3d 31 20 54 48 45 4e 20 50 4c ┆ BEGIN IF IAxis1=1 THEN PL┆ 0x4ab60…4ab80 41 43 45 55 50 28 50 4f 53 2c 53 54 41 52 54 5b 32 5d 29 0d 0a 20 20 45 4c 53 45 20 50 4c 41 43 ┆ACEUP(POS,STARTÆ2Å) ELSE PLAC┆ 0x4ab80…4aba0 45 55 50 28 53 54 41 52 54 5b 31 5d 2c 50 4f 53 29 3b 0d 0a 20 20 54 49 43 4b 4d 41 52 4b 28 49 ┆EUP(STARTÆ1Å,POS); TICKMARK(I┆ 0x4aba0…4abc0 41 58 49 53 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 4e 55 4d 3a 3d 4e 55 4d 2b 31 3b 0d 0a 20 50 ┆AXIS); END; NUM:=NUM+1; P┆ 0x4abc0…4abe0 4f 53 3a 3d 54 49 43 4b 53 54 41 52 54 2b 52 4f 55 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b ┆OS:=TICKSTART+ROUND(PLOTDEFREALÆ┆ 0x4abe0…4ac00 33 2b 49 41 78 69 73 34 5d 2a 4e 55 4d 2a 44 45 4c 54 41 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e ┆3+IAxis4Å*NUM*DELTA); END; EN┆ 0x4ac00…4ac20 (29, 1, 5) 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 53 4c 41 42 45 4c 28 46 49 45 4c 44 53 ┆D; PROCEDURE AXISLABEL(FIELDS┆ 0x4ac20…4ac40 49 5a 45 2c 44 45 43 49 4d 41 4c 53 2c 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 ┆IZE,DECIMALS,IAXIS: INTEGER); V┆ 0x4ac40…4ac60 41 52 20 53 4c 55 54 2c 58 52 45 4c 2c 59 52 45 4c 2c 4e 55 4d 2c 50 4f 53 2c 54 49 43 4b 53 54 ┆AR SLUT,XREL,YREL,NUM,POS,TICKST┆ 0x4ac60…4ac80 41 52 54 2c 49 41 78 69 73 31 2c 49 41 78 69 73 34 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 ┆ART,IAxis1,IAxis4: INTEGER; ┆ 0x4ac80…4aca0 20 53 54 41 52 54 3a 20 41 52 52 41 59 20 5b 31 2e 2e 32 5d 20 4f 46 20 49 4e 54 45 47 45 52 3b ┆ START: ARRAY Æ1..2Å OF INTEGER;┆ 0x4aca0…4acc0 0d 0a 20 20 20 20 58 43 53 49 5a 45 2c 59 43 53 49 5a 45 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 ┆ XCSIZE,YCSIZE: REAL; BEGI┆ 0x4acc0…4ace0 4e 0d 0a 49 41 78 69 73 31 3a 3d 61 62 73 28 49 41 78 69 73 29 3b 0d 0a 49 41 78 69 73 34 3a 3d ┆N IAxis1:=abs(IAxis); IAxis4:=┆ 0x4ace0…4ad00 34 2a 49 41 78 69 73 31 3b 0d 0a 41 58 49 53 43 4f 4f 52 44 49 4e 41 54 45 53 28 49 41 58 49 53 ┆4*IAxis1; AXISCOORDINATES(IAXIS┆ 0x4ad00…4ad20 2c 53 54 41 52 54 5b 31 5d 2c 53 54 41 52 54 5b 32 5d 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 ┆,STARTÆ1Å,STARTÆ2Å,TICKSTART,SLU┆ 0x4ad20…4ad40 54 29 3b 0d 0a 63 61 73 65 20 49 41 78 69 73 20 6f 66 0d 0a 20 2d 32 3a 20 42 45 47 49 4e 0d 0a ┆T); case IAxis of -2: BEGIN ┆ 0x4ad40…4ad60 20 20 20 20 20 58 52 45 4c 3a 3d 52 4f 55 4e 44 28 30 2e 33 33 2a 50 6c 6f 74 44 65 66 52 65 61 ┆ XREL:=ROUND(0.33*PlotDefRea┆ 0x4ad60…4ad80 6c 5b 32 30 5d 29 2b 38 30 3b 0d 0a 20 20 20 20 20 59 52 45 4c 3a 3d 2d 52 4f 55 4e 44 28 30 2e ┆lÆ20Å)+80; YREL:=-ROUND(0.┆ 0x4ad80…4ada0 32 35 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 29 3b 0d 0a 20 20 20 20 20 50 4c 4f 54 44 ┆25*PlotDefRealÆ21Å); PLOTD┆ 0x4ada0…4adc0 45 46 49 4e 54 5b 31 39 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 36 5d 2b 52 4f 55 4e 44 28 ┆EFINTÆ19Å:=PLOTDEFINTÆ16Å+ROUND(┆ 0x4adc0…4ade0 46 49 45 4c 44 53 49 5a 45 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 2b 38 30 3b 0d 0a ┆FIELDSIZE*PlotDefRealÆ20Å)+80; ┆ 0x4ade0…4ae00 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 32 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 58 52 45 4c ┆ END; 2: BEGIN XREL┆ 0x4ae00…4ae20 3a 3d 2d 52 4f 55 4e 44 28 46 49 45 4c 44 53 49 5a 45 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 ┆:=-ROUND(FIELDSIZE*PlotDefRealÆ2┆ 0x4ae20…4ae40 30 5d 29 2d 38 30 3b 0d 0a 20 20 20 20 20 59 52 45 4c 3a 3d 2d 52 4f 55 4e 44 28 30 2e 32 35 2a ┆0Å)-80; YREL:=-ROUND(0.25*┆ 0x4ae40…4ae60 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 29 3b 0d 0a 20 20 20 20 20 50 4c 4f 54 44 45 46 49 ┆PlotDefRealÆ21Å); PLOTDEFI┆ 0x4ae60…4ae80 4e 54 5b 31 38 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 34 5d 2b 58 52 45 4c 3b 0d 0a 20 20 ┆NTÆ18Å:=PLOTDEFINTÆ14Å+XREL; ┆ 0x4ae80…4aea0 20 20 20 45 4e 44 3b 0d 0a 20 2d 31 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 58 52 45 4c 3a 3d ┆ END; -1: BEGIN XREL:=┆ 0x4aea0…4aec0 2d 52 4f 55 4e 44 28 30 2e 35 2a 46 49 45 4c 44 53 49 5a 45 2a 50 6c 6f 74 44 65 66 52 65 61 6c ┆-ROUND(0.5*FIELDSIZE*PlotDefReal┆ 0x4aec0…4aee0 5b 32 30 5d 29 3b 0d 0a 20 20 20 20 20 59 52 45 4c 3a 3d 52 4f 55 4e 44 28 30 2e 32 2a 50 6c 6f ┆Æ20Å); YREL:=ROUND(0.2*Plo┆ 0x4aee0…4af00 74 44 65 66 52 65 61 6c 5b 32 31 5d 29 2b 38 30 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆tDefRealÆ21Å)+80; END; ┆ 0x4af00…4af20 31 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 58 52 45 4c 3a 3d 2d 52 4f 55 4e 44 28 30 2e 35 2a ┆1: BEGIN XREL:=-ROUND(0.5*┆ 0x4af20…4af40 46 49 45 4c 44 53 49 5a 45 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 3b 0d 0a 20 20 20 ┆FIELDSIZE*PlotDefRealÆ20Å); ┆ 0x4af40…4af60 20 20 59 52 45 4c 3a 3d 2d 52 4f 55 4e 44 28 30 2e 37 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 ┆ YREL:=-ROUND(0.7*PlotDefRealÆ2┆ 0x4af60…4af80 31 5d 29 2d 38 30 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 65 6e 64 3b 0d 0a 4e 55 4d 3a 3d ┆1Å)-80; END; end; NUM:=┆ 0x4af80…4afa0 30 3b 0d 0a 50 4f 53 3a 3d 54 49 43 4b 53 54 41 52 54 3b 0d 0a 57 48 49 4c 45 20 50 4f 53 3c 3d ┆0; POS:=TICKSTART; WHILE POS<=┆ 0x4afa0…4afc0 28 53 4c 55 54 2b 31 29 20 44 4f 0d 0a 20 42 45 47 49 4e 0d 0a 20 49 46 20 49 41 78 69 73 31 3d ┆(SLUT+1) DO BEGIN IF IAxis1=┆ 0x4afc0…4afe0 31 20 54 48 45 4e 20 50 4c 41 43 45 55 50 28 50 4f 53 2b 58 52 45 4c 2c 53 54 41 52 54 5b 32 5d ┆1 THEN PLACEUP(POS+XREL,STARTÆ2Å┆ 0x4afe0…4b000 2b 59 52 45 4c 29 0d 0a 20 45 4c 53 45 20 50 4c 41 43 45 55 50 28 53 54 41 52 54 5b 31 5d 2b 58 ┆+YREL) ELSE PLACEUP(STARTÆ1Å+X┆ 0x4b000…4b020 (30, 0, 1) 52 45 4c 2c 50 4f 53 2b 59 52 45 4c 29 3b 0d 0a 20 50 4c 54 4e 55 4d 42 45 52 28 50 4c 4f 54 44 ┆REL,POS+YREL); PLTNUMBER(PLOTD┆ 0x4b020…4b040 45 46 52 45 41 4c 5b 49 41 78 69 73 34 5d 2b 4e 55 4d 2a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 32 ┆EFREALÆIAxis4Å+NUM*PLOTDEFREALÆ2┆ 0x4b040…4b060 2b 49 41 78 69 73 34 5d 2c 46 49 45 4c 44 53 49 5a 45 2c 44 45 43 49 4d 41 4c 53 29 3b 0d 0a 20 ┆+IAxis4Å,FIELDSIZE,DECIMALS); ┆ 0x4b060…4b080 4e 55 4d 3a 3d 4e 55 4d 2b 31 3b 0d 0a 20 50 4f 53 3a 3d 54 49 43 4b 53 54 41 52 54 2b 52 4f 55 ┆NUM:=NUM+1; POS:=TICKSTART+ROU┆ 0x4b080…4b0a0 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 33 2b 49 41 78 69 73 34 5d 2a 4e 55 4d 2a 50 4c 4f ┆ND(PLOTDEFREALÆ3+IAxis4Å*NUM*PLO┆ 0x4b0a0…4b0c0 54 44 45 46 52 45 41 4c 5b 32 2b 49 41 78 69 73 34 5d 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 ┆TDEFREALÆ2+IAxis4Å); END; END┆ 0x4b0c0…4b0e0 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 48 4f 57 41 58 49 53 28 41 58 4d 49 4e 2c 41 58 ┆; PROCEDURE SHOWAXIS(AXMIN,AX┆ 0x4b0e0…4b100 4d 41 58 2c 41 58 53 54 45 50 3a 20 52 45 41 4c 3b 4e 54 49 43 4b 53 2c 44 45 43 49 4d 41 4c 53 ┆MAX,AXSTEP: REAL;NTICKS,DECIMALS┆ 0x4b100…4b120 2c 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 4e 31 2c 4e 32 3a 20 49 4e ┆,IAXIS: INTEGER); VAR N1,N2: IN┆ 0x4b120…4b140 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 4e 31 3a 3d 48 49 47 48 43 49 46 46 45 52 28 41 58 ┆TEGER; BEGIN N1:=HIGHCIFFER(AX┆ 0x4b140…4b160 4d 49 4e 29 3b 0d 0a 4e 32 3a 3d 48 49 47 48 43 49 46 46 45 52 28 41 58 4d 41 58 29 3b 0d 0a 49 ┆MIN); N2:=HIGHCIFFER(AXMAX); I┆ 0x4b160…4b180 46 20 4e 32 3e 4e 31 20 54 48 45 4e 20 4e 31 3a 3d 4e 32 3b 0d 0a 49 46 20 44 45 43 49 4d 41 4c ┆F N2>N1 THEN N1:=N2; IF DECIMAL┆ 0x4b180…4b1a0 53 3e 30 20 54 48 45 4e 20 4e 31 3a 3d 4e 31 2b 44 45 43 49 4d 41 4c 53 2b 31 3b 0d 0a 44 45 46 ┆S>0 THEN N1:=N1+DECIMALS+1; DEF┆ 0x4b1a0…4b1c0 49 4e 45 41 58 49 53 28 41 58 4d 49 4e 2c 41 58 4d 41 58 2c 41 58 53 54 45 50 2c 49 41 58 49 53 ┆INEAXIS(AXMIN,AXMAX,AXSTEP,IAXIS┆ 0x4b1c0…4b1e0 29 3b 0d 0a 4d 41 4b 45 41 58 49 53 28 49 41 58 49 53 29 3b 0d 0a 41 58 49 53 54 49 43 4b 28 4e ┆); MAKEAXIS(IAXIS); AXISTICK(N┆ 0x4b1e0…4b200 54 49 43 4b 53 2c 49 41 58 49 53 29 3b 0d 0a 41 58 49 53 4c 41 42 45 4c 28 4e 31 2c 44 45 43 49 ┆TICKS,IAXIS); AXISLABEL(N1,DECI┆ 0x4b200…4b220 4d 41 4c 53 2c 49 41 58 49 53 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆MALS,IAXIS); END; PROCEDURE ┆ 0x4b220…4b240 41 58 49 53 54 49 54 4c 45 28 54 49 54 4c 45 3a 20 53 54 52 38 30 3b 49 41 58 49 53 3a 20 49 4e ┆AXISTITLE(TITLE: STR80;IAXIS: IN┆ 0x4b240…4b260 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 50 4f 53 2c 49 41 78 69 73 31 3a 20 49 4e 54 45 47 45 52 ┆TEGER); VAR POS,IAxis1: INTEGER┆ 0x4b260…4b280 3b 0d 0a 20 20 20 20 52 45 4c 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 ┆; REL: REAL; BEGIN IAxis1┆ 0x4b280…4b2a0 3a 3d 61 62 73 28 49 41 78 69 73 29 3b 0d 0a 63 61 73 65 20 50 6c 6f 74 44 65 66 49 6e 74 5b 32 ┆:=abs(IAxis); case PlotDefIntÆ2┆ 0x4b2a0…4b2c0 39 5d 20 6f 66 0d 0a 20 31 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 50 4f 53 3a 3d 50 4c 4f 54 44 ┆9Å of 1: BEGIN POS:=PLOTD┆ 0x4b2c0…4b2e0 45 46 49 4e 54 5b 31 33 2b 49 41 78 69 73 31 5d 3b 0d 0a 20 20 20 20 52 45 4c 3a 3d 30 3b 0d 0a ┆EFINTÆ13+IAxis1Å; REL:=0; ┆ 0x4b2e0…4b300 20 20 20 20 45 4e 44 3b 0d 0a 20 32 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 50 4f 53 3a 3d 28 50 ┆ END; 2: BEGIN POS:=(P┆ 0x4b300…4b320 4c 4f 54 44 45 46 49 4e 54 5b 31 33 2b 49 41 78 69 73 31 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 5b ┆LOTDEFINTÆ13+IAxis1Å+PLOTDEFINTÆ┆ 0x4b320…4b340 31 35 2b 49 41 78 69 73 31 5d 29 20 44 49 56 20 32 3b 0d 0a 20 20 20 20 52 45 4c 3a 3d 2d 30 2e ┆15+IAxis1Å) DIV 2; REL:=-0.┆ 0x4b340…4b360 35 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 6f 74 68 65 72 77 69 73 65 0d 0a 20 20 20 20 42 45 ┆5; END; otherwise BE┆ 0x4b360…4b380 47 49 4e 0d 0a 20 20 20 20 50 4f 53 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 35 2b 49 41 78 69 ┆GIN POS:=PLOTDEFINTÆ15+IAxi┆ 0x4b380…4b3a0 73 31 5d 3b 0d 0a 20 20 20 20 52 45 4c 3a 3d 2d 31 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 65 ┆s1Å; REL:=-1; END; e┆ 0x4b3a0…4b3c0 6e 64 3b 0d 0a 63 61 73 65 20 49 41 78 69 73 20 6f 66 0d 0a 20 2d 32 3a 20 42 45 47 49 4e 0d 0a ┆nd; case IAxis of -2: BEGIN ┆ 0x4b3c0…4b3e0 20 20 20 20 20 43 48 41 52 52 4f 54 41 54 45 28 39 30 29 3b 0d 0a 20 20 20 20 20 50 4c 41 43 45 ┆ CHARROTATE(90); PLACE┆ 0x4b3e0…4b400 4c 41 42 45 4c 28 50 4c 4f 54 44 45 46 49 4e 54 5b 31 39 5d 2c 50 4f 53 2c 4c 45 4e 28 54 49 54 ┆LABEL(PLOTDEFINTÆ19Å,POS,LEN(TIT┆ 0x4b400…4b420 (30, 0, 2) 4c 45 29 2c 52 45 4c 2c 2d 31 29 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 32 3a 20 42 45 ┆LE),REL,-1); END; 2: BE┆ 0x4b420…4b440 47 49 4e 0d 0a 20 20 20 20 20 43 48 41 52 52 4f 54 41 54 45 28 39 30 29 3b 0d 0a 20 20 20 20 20 ┆GIN CHARROTATE(90); ┆ 0x4b440…4b460 50 4c 41 43 45 4c 41 42 45 4c 28 50 4c 4f 54 44 45 46 49 4e 54 5b 31 38 5d 2c 50 4f 53 2c 4c 45 ┆PLACELABEL(PLOTDEFINTÆ18Å,POS,LE┆ 0x4b460…4b480 4e 28 54 49 54 4c 45 29 2c 52 45 4c 2c 30 2e 35 29 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆N(TITLE),REL,0.5); END; ┆ 0x4b480…4b4a0 2d 31 3a 20 50 4c 41 43 45 4c 41 42 45 4c 28 50 4f 53 2c 50 4c 4f 54 44 45 46 49 4e 54 5b 31 37 ┆-1: PLACELABEL(POS,PLOTDEFINTÆ17┆ 0x4b4a0…4b4c0 5d 2b 38 30 2c 4c 45 4e 28 54 49 54 4c 45 29 2c 52 45 4c 2c 31 2e 32 29 3b 0d 0a 20 20 31 3a 20 ┆Å+80,LEN(TITLE),REL,1.2); 1: ┆ 0x4b4c0…4b4e0 50 4c 41 43 45 4c 41 42 45 4c 28 50 4f 53 2c 50 4c 4f 54 44 45 46 49 4e 54 5b 31 35 5d 2d 38 30 ┆PLACELABEL(POS,PLOTDEFINTÆ15Å-80┆ 0x4b4e0…4b500 2c 4c 45 4e 28 54 49 54 4c 45 29 2c 52 45 4c 2c 2d 31 2e 37 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a ┆,LEN(TITLE),REL,-1.7); end; ┆ 0x4b500…4b520 50 4c 54 4c 41 42 45 4c 28 54 49 54 4c 45 29 3b 0d 0a 49 46 20 49 41 78 69 73 31 3d 32 20 54 48 ┆PLTLABEL(TITLE); IF IAxis1=2 TH┆ 0x4b520…4b540 45 4e 20 43 48 41 52 52 4f 54 41 54 45 28 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆EN CHARROTATE(0); END; PROCE┆ 0x4b540…4b560 44 55 52 45 20 4d 41 52 4b 45 52 50 4c 4f 54 28 4f 42 53 50 31 2c 4f 42 53 50 32 2c 56 41 52 50 ┆DURE MARKERPLOT(OBSP1,OBSP2,VARP┆ 0x4b560…4b580 31 2c 56 41 52 50 32 2c 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 50 ┆1,VARP2,SYMBOL: INTEGER); VAR P┆ 0x4b580…4b5a0 2c 58 2c 59 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 46 4f 52 20 50 3a 3d 4f 42 ┆,X,Y: INTEGER; BEGIN FOR P:=OB┆ 0x4b5a0…4b5c0 53 50 31 20 54 4f 20 4f 42 53 50 32 20 44 4f 0d 0a 49 46 20 28 44 41 54 41 5b 50 2c 56 41 52 50 ┆SP1 TO OBSP2 DO IF (DATAÆP,VARP┆ 0x4b5c0…4b5e0 31 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 41 4e 44 20 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 3c ┆1Å<>MISREAL) AND (DATAÆP,VARP2Å<┆ 0x4b5e0…4b600 3e 4d 49 53 52 45 41 4c 29 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 58 3a 3d 43 4f 4e 56 ┆>MISREAL) THEN BEGIN X:=CONV┆ 0x4b600…4b620 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 2c 31 29 3b 0d 0a 20 59 3a 3d ┆ERTSCALE(DATAÆP,VARP1Å,1); Y:=┆ 0x4b620…4b640 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 32 29 3b 0d 0a ┆CONVERTSCALE(DATAÆP,VARP2Å,2); ┆ 0x4b640…4b660 20 4d 41 52 4b 45 52 28 58 2c 59 2c 53 59 4d 42 4f 4c 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 ┆ MARKER(X,Y,SYMBOL); END; END┆ 0x4b660…4b680 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4c 49 4e 45 50 4c 4f 54 28 4f 42 53 50 31 2c 4f 42 ┆; PROCEDURE LINEPLOT(OBSP1,OB┆ 0x4b680…4b6a0 53 50 32 2c 56 41 52 50 31 2c 56 41 52 50 32 2c 4c 54 59 50 45 3a 20 49 4e 54 45 47 45 52 29 3b ┆SP2,VARP1,VARP2,LTYPE: INTEGER);┆ 0x4b6a0…4b6c0 0d 0a 56 41 52 20 58 2c 59 2c 50 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 44 4f 57 4e 3a ┆ VAR X,Y,P: INTEGER; DOWN:┆ 0x4b6c0…4b6e0 20 42 4f 4f 4c 45 41 4e 3b 0d 0a 42 45 47 49 4e 0d 0a 4c 49 4e 45 54 59 50 45 28 4c 54 59 50 45 ┆ BOOLEAN; BEGIN LINETYPE(LTYPE┆ 0x4b6e0…4b700 29 3b 0d 0a 44 4f 57 4e 3a 3d 46 41 4c 53 45 3b 0d 0a 46 4f 52 20 50 3a 3d 4f 42 53 50 31 20 54 ┆); DOWN:=FALSE; FOR P:=OBSP1 T┆ 0x4b700…4b720 4f 20 4f 42 53 50 32 20 44 4f 0d 0a 49 46 20 28 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 3c 3e 4d ┆O OBSP2 DO IF (DATAÆP,VARP1Å<>M┆ 0x4b720…4b740 49 53 52 45 41 4c 29 20 41 4e 44 20 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 3c 3e 4d 49 53 52 ┆ISREAL) AND (DATAÆP,VARP2Å<>MISR┆ 0x4b740…4b760 45 41 4c 29 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 58 3a 3d 43 4f 4e 56 45 52 54 53 43 ┆EAL) THEN BEGIN X:=CONVERTSC┆ 0x4b760…4b780 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 2c 31 29 3b 0d 0a 20 59 3a 3d 43 4f 4e 56 45 ┆ALE(DATAÆP,VARP1Å,1); Y:=CONVE┆ 0x4b780…4b7a0 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 32 29 3b 0d 0a 20 49 46 20 44 ┆RTSCALE(DATAÆP,VARP2Å,2); IF D┆ 0x4b7a0…4b7c0 4f 57 4e 20 54 48 45 4e 20 50 4c 54 4c 49 4e 45 28 58 2c 59 29 0d 0a 20 45 4c 53 45 20 0d 0a 20 ┆OWN THEN PLTLINE(X,Y) ELSE ┆ 0x4b7c0…4b7e0 20 42 45 47 49 4e 0d 0a 20 20 50 4c 41 43 45 44 4f 57 4e 28 58 2c 59 29 3b 0d 0a 20 20 44 4f 57 ┆ BEGIN PLACEDOWN(X,Y); DOW┆ 0x4b7e0…4b800 4e 3a 3d 54 52 55 45 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 45 4e 44 3b 0d 0a 50 45 4e 55 50 3b 0d ┆N:=TRUE; END; END; PENUP; ┆ 0x4b800…4b820 (30, 0, 3) 0a 4c 49 4e 45 54 59 50 45 28 31 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ LINETYPE(1); END; PROCEDURE┆ 0x4b820…4b840 20 52 45 46 45 52 45 4e 43 45 4c 49 4e 45 28 52 45 46 50 4f 49 4e 54 3a 20 52 45 41 4c 3b 49 41 ┆ REFERENCELINE(REFPOINT: REAL;IA┆ 0x4b840…4b860 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 50 4f 53 2c 49 41 78 69 73 31 3a 20 ┆XIS: INTEGER); VAR POS,IAxis1: ┆ 0x4b860…4b880 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a 3d 61 62 73 28 49 41 78 ┆INTEGER; BEGIN IAxis1:=abs(IAx┆ 0x4b880…4b8a0 69 73 29 3b 0d 0a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 31 2b 49 41 78 69 73 31 5d 3a 3d 52 45 ┆is); PLOTDEFREALÆ11+IAxis1Å:=RE┆ 0x4b8a0…4b8c0 46 50 4f 49 4e 54 3b 0d 0a 50 4f 53 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 52 45 46 50 4f ┆FPOINT; POS:=CONVERTSCALE(REFPO┆ 0x4b8c0…4b8e0 49 4e 54 2c 49 41 78 69 73 31 29 3b 0d 0a 49 46 20 49 41 58 49 53 3d 31 20 54 48 45 4e 0d 0a 20 ┆INT,IAxis1); IF IAXIS=1 THEN ┆ 0x4b8e0…4b900 42 45 47 49 4e 0d 0a 20 50 4c 41 43 45 44 4f 57 4e 28 50 4f 53 2c 50 4c 4f 54 44 45 46 49 4e 54 ┆BEGIN PLACEDOWN(POS,PLOTDEFINT┆ 0x4b900…4b920 5b 31 35 5d 29 3b 0d 0a 20 50 4c 54 4c 49 4e 45 28 50 4f 53 2c 50 4c 4f 54 44 45 46 49 4e 54 5b ┆Æ15Å); PLTLINE(POS,PLOTDEFINTÆ┆ 0x4b920…4b940 31 37 5d 29 3b 0d 0a 20 50 45 4e 55 50 3b 0d 0a 20 45 4e 44 0d 0a 45 4c 53 45 20 49 46 20 49 41 ┆17Å); PENUP; END ELSE IF IA┆ 0x4b940…4b960 58 49 53 3d 32 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 50 4c 41 43 45 44 4f 57 4e 28 50 ┆XIS=2 THEN BEGIN PLACEDOWN(P┆ 0x4b960…4b980 4c 4f 54 44 45 46 49 4e 54 5b 31 34 5d 2c 50 4f 53 29 3b 0d 0a 20 50 4c 54 4c 49 4e 45 28 50 4c ┆LOTDEFINTÆ14Å,POS); PLTLINE(PL┆ 0x4b980…4b9a0 4f 54 44 45 46 49 4e 54 5b 31 36 5d 2c 50 4f 53 29 3b 0d 0a 20 50 45 4e 55 50 3b 0d 0a 20 45 4e ┆OTDEFINTÆ16Å,POS); PENUP; EN┆ 0x4b9a0…4b9c0 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4e 45 45 44 4c 45 50 4c 4f 54 ┆D; END; PROCEDURE NEEDLEPLOT┆ 0x4b9c0…4b9e0 28 4f 42 53 50 31 2c 4f 42 53 50 32 2c 56 41 52 50 31 2c 56 41 52 50 32 2c 56 41 52 50 33 2c 49 ┆(OBSP1,OBSP2,VARP1,VARP2,VARP3,I┆ 0x4b9e0…4ba00 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 50 2c 58 2c 59 2c 52 45 46 3a 20 ┆AXIS: INTEGER); VAR P,X,Y,REF: ┆ 0x4ba00…4ba20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 44 41 54 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d ┆INTEGER; DAT: REAL; BEGIN ┆ 0x4ba20…4ba40 0a 46 4f 52 20 50 3a 3d 4f 42 53 50 31 20 54 4f 20 4f 42 53 50 32 20 44 4f 0d 0a 49 46 20 28 44 ┆ FOR P:=OBSP1 TO OBSP2 DO IF (D┆ 0x4ba40…4ba60 41 54 41 5b 50 2c 56 41 52 50 31 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 41 4e 44 20 28 44 41 54 41 ┆ATAÆP,VARP1Å<>MISREAL) AND (DATA┆ 0x4ba60…4ba80 5b 50 2c 56 41 52 50 32 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e ┆ÆP,VARP2Å<>MISREAL) THEN BEGIN┆ 0x4ba80…4baa0 0d 0a 20 49 46 20 56 41 52 50 33 3c 3e 4d 49 53 49 4e 54 20 54 48 45 4e 20 44 41 54 3a 3d 44 41 ┆ IF VARP3<>MISINT THEN DAT:=DA┆ 0x4baa0…4bac0 54 41 5b 50 2c 56 41 52 50 33 5d 0d 0a 20 45 4c 53 45 20 44 41 54 3a 3d 50 6c 6f 74 44 65 66 52 ┆TAÆP,VARP3Å ELSE DAT:=PlotDefR┆ 0x4bac0…4bae0 65 61 6c 5b 31 34 2d 49 41 58 49 53 5d 3b 0d 0a 20 49 46 20 44 41 54 3c 3e 4d 49 53 52 45 41 4c ┆ealÆ14-IAXISÅ; IF DAT<>MISREAL┆ 0x4bae0…4bb00 20 54 48 45 4e 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 49 46 20 49 41 58 49 53 3d 31 20 54 48 45 ┆ THEN BEGIN IF IAXIS=1 THE┆ 0x4bb00…4bb20 4e 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 58 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 ┆N BEGIN X:=CONVERTSCALE(┆ 0x4bb20…4bb40 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 2c 31 29 3b 0d 0a 20 20 20 59 3a 3d 43 4f 4e 56 45 52 54 ┆DATAÆP,VARP1Å,1); Y:=CONVERT┆ 0x4bb40…4bb60 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 32 29 3b 0d 0a 20 20 20 52 45 46 3a ┆SCALE(DATAÆP,VARP2Å,2); REF:┆ 0x4bb60…4bb80 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 2c 32 29 3b 0d 0a 20 20 20 50 4c 41 43 45 44 ┆=CONVERTSCALE(DAT,2); PLACED┆ 0x4bb80…4bba0 4f 57 4e 28 58 2c 52 45 46 29 3b 0d 0a 20 20 20 50 4c 54 4c 49 4e 45 28 58 2c 59 29 3b 0d 0a 20 ┆OWN(X,REF); PLTLINE(X,Y); ┆ 0x4bba0…4bbc0 20 20 50 45 4e 55 50 3b 0d 0a 20 20 20 45 4e 44 0d 0a 20 20 45 4c 53 45 0d 0a 20 20 20 42 45 47 ┆ PENUP; END ELSE BEG┆ 0x4bbc0…4bbe0 49 4e 0d 0a 20 20 20 59 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 ┆IN Y:=CONVERTSCALE(DATAÆP,VA┆ 0x4bbe0…4bc00 52 50 31 5d 2c 32 29 3b 0d 0a 20 20 20 58 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 ┆RP1Å,2); X:=CONVERTSCALE(DAT┆ 0x4bc00…4bc20 (30, 0, 4) 41 5b 50 2c 56 41 52 50 32 5d 2c 31 29 3b 0d 0a 20 20 20 52 45 46 3a 3d 43 4f 4e 56 45 52 54 53 ┆AÆP,VARP2Å,1); REF:=CONVERTS┆ 0x4bc20…4bc40 43 41 4c 45 28 44 41 54 2c 31 29 3b 0d 0a 20 20 20 50 4c 41 43 45 44 4f 57 4e 28 52 45 46 2c 59 ┆CALE(DAT,1); PLACEDOWN(REF,Y┆ 0x4bc40…4bc60 29 3b 0d 0a 20 20 20 50 4c 54 4c 49 4e 45 28 58 2c 59 29 3b 0d 0a 20 20 20 50 45 4e 55 50 3b 0d ┆); PLTLINE(X,Y); PENUP; ┆ 0x4bc60…4bc80 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d ┆ END; END; END; END; ┆ 0x4bc80…4bca0 0a 50 52 4f 43 45 44 55 52 45 20 42 41 52 53 28 4f 42 53 50 31 2c 4f 42 53 50 32 2c 56 41 52 50 ┆ PROCEDURE BARS(OBSP1,OBSP2,VARP┆ 0x4bca0…4bcc0 31 2c 56 41 52 50 32 2c 56 41 52 50 33 3a 20 49 4e 54 45 47 45 52 3b 57 49 44 54 48 3a 20 52 45 ┆1,VARP2,VARP3: INTEGER;WIDTH: RE┆ 0x4bcc0…4bce0 41 4c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 41 54 54 45 52 4e 31 2c 50 41 54 ┆AL; PATTERN1,PAT┆ 0x4bce0…4bd00 54 45 52 4e 32 2c 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 58 4c 4f 57 ┆TERN2,IAXIS: INTEGER); VAR XLOW┆ 0x4bd00…4bd20 2c 59 4c 4f 57 2c 58 53 49 5a 45 2c 59 53 49 5a 45 2c 50 2c 4c 41 53 54 50 41 54 54 45 52 4e 3a ┆,YLOW,XSIZE,YSIZE,P,LASTPATTERN:┆ 0x4bd20…4bd40 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 44 49 46 2c 52 45 46 3a 20 52 45 41 4c 3b 0d 0a 42 ┆ INTEGER; DIF,REF: REAL; B┆ 0x4bd40…4bd60 45 47 49 4e 0d 0a 49 46 20 49 41 58 49 53 3d 31 20 54 48 45 4e 20 58 53 49 5a 45 3a 3d 52 4f 55 ┆EGIN IF IAXIS=1 THEN XSIZE:=ROU┆ 0x4bd60…4bd80 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 37 5d 2a 57 49 44 54 48 29 0d 0a 45 4c 53 45 20 59 ┆ND(PLOTDEFREALÆ7Å*WIDTH) ELSE Y┆ 0x4bd80…4bda0 53 49 5a 45 3a 3d 52 4f 55 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 31 5d 2a 57 49 44 54 ┆SIZE:=ROUND(PLOTDEFREALÆ11Å*WIDT┆ 0x4bda0…4bdc0 48 29 3b 0d 0a 4c 41 53 54 50 41 54 54 45 52 4e 3a 3d 4d 49 53 49 4e 54 3b 0d 0a 46 4f 52 20 50 ┆H); LASTPATTERN:=MISINT; FOR P┆ 0x4bdc0…4bde0 3a 3d 4f 42 53 50 31 20 54 4f 20 4f 42 53 50 32 20 44 4f 0d 0a 49 46 20 28 44 41 54 41 5b 50 2c ┆:=OBSP1 TO OBSP2 DO IF (DATAÆP,┆ 0x4bde0…4be00 56 41 52 50 31 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 41 4e 44 20 28 44 41 54 41 5b 50 2c 56 41 52 ┆VARP1Å<>MISREAL) AND (DATAÆP,VAR┆ 0x4be00…4be20 50 32 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 49 46 20 ┆P2Å<>MISREAL) THEN BEGIN IF ┆ 0x4be20…4be40 56 41 52 50 33 3c 3e 4d 49 53 49 4e 54 20 54 48 45 4e 20 52 45 46 3a 3d 44 41 54 41 5b 50 2c 56 ┆VARP3<>MISINT THEN REF:=DATAÆP,V┆ 0x4be40…4be60 41 52 50 33 5d 0d 0a 20 45 4c 53 45 20 52 45 46 3a 3d 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 34 ┆ARP3Å ELSE REF:=PLOTDEFREALÆ14┆ 0x4be60…4be80 2d 49 41 58 49 53 5d 3b 0d 0a 20 49 46 20 52 45 46 3c 3e 4d 49 53 52 45 41 4c 20 54 48 45 4e 0d ┆-IAXISÅ; IF REF<>MISREAL THEN ┆ 0x4be80…4bea0 0a 20 20 42 45 47 49 4e 0d 0a 20 20 44 49 46 3a 3d 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2d 52 ┆ BEGIN DIF:=DATAÆP,VARP2Å-R┆ 0x4bea0…4bec0 45 46 3b 0d 0a 20 20 49 46 20 49 41 58 49 53 3d 31 20 54 48 45 4e 0d 0a 20 20 20 42 45 47 49 4e ┆EF; IF IAXIS=1 THEN BEGIN┆ 0x4bec0…4bee0 0d 0a 20 20 20 58 4c 4f 57 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 ┆ XLOW:=CONVERTSCALE(DATAÆP,V┆ 0x4bee0…4bf00 41 52 50 31 5d 2c 31 29 2d 28 58 53 49 5a 45 20 44 49 56 20 32 29 3b 0d 0a 20 20 20 59 53 49 5a ┆ARP1Å,1)-(XSIZE DIV 2); YSIZ┆ 0x4bf00…4bf20 45 3a 3d 52 4f 55 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 31 5d 2a 41 42 53 28 44 49 46 ┆E:=ROUND(PLOTDEFREALÆ11Å*ABS(DIF┆ 0x4bf20…4bf40 29 29 3b 0d 0a 20 20 20 49 46 20 44 49 46 3c 30 20 54 48 45 4e 20 59 4c 4f 57 3a 3d 43 4f 4e 56 ┆)); IF DIF<0 THEN YLOW:=CONV┆ 0x4bf40…4bf60 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 32 29 0d 0a 20 20 20 45 4c ┆ERTSCALE(DATAÆP,VARP2Å,2) EL┆ 0x4bf60…4bf80 53 45 20 59 4c 4f 57 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 52 45 46 2c 32 29 3b 0d 0a 20 ┆SE YLOW:=CONVERTSCALE(REF,2); ┆ 0x4bf80…4bfa0 20 20 45 4e 44 0d 0a 20 20 45 4c 53 45 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 59 4c 4f 57 ┆ END ELSE BEGIN YLOW┆ 0x4bfa0…4bfc0 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 2c 32 29 2d ┆:=CONVERTSCALE(DATAÆP,VARP1Å,2)-┆ 0x4bfc0…4bfe0 28 59 53 49 5a 45 20 44 49 56 20 32 29 3b 0d 0a 20 20 20 58 53 49 5a 45 3a 3d 52 4f 55 4e 44 28 ┆(YSIZE DIV 2); XSIZE:=ROUND(┆ 0x4bfe0…4c000 50 4c 4f 54 44 45 46 52 45 41 4c 5b 37 5d 2a 41 42 53 28 44 49 46 29 29 3b 0d 0a 20 20 20 49 46 ┆PLOTDEFREALÆ7Å*ABS(DIF)); IF┆ 0x4c000…4c020 (30, 0, 5) 20 44 49 46 3c 30 20 54 48 45 4e 20 58 4c 4f 57 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 ┆ DIF<0 THEN XLOW:=CONVERTSCALE(D┆ 0x4c020…4c040 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 31 29 0d 0a 20 20 20 45 4c 53 45 20 58 4c 4f 57 3a 3d 43 ┆ATAÆP,VARP2Å,1) ELSE XLOW:=C┆ 0x4c040…4c060 4f 4e 56 45 52 54 53 43 41 4c 45 28 52 45 46 2c 31 29 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆ONVERTSCALE(REF,1); END; ┆ 0x4c060…4c080 49 46 20 28 44 49 46 3c 3d 30 29 20 41 4e 44 20 28 50 41 54 54 45 52 4e 31 3c 3e 4c 41 53 54 50 ┆IF (DIF<=0) AND (PATTERN1<>LASTP┆ 0x4c080…4c0a0 41 54 54 45 52 4e 29 20 54 48 45 4e 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 46 49 4c 4c 50 ┆ATTERN) THEN BEGIN FILLP┆ 0x4c0a0…4c0c0 41 54 54 45 52 4e 28 50 41 54 54 45 52 4e 31 29 3b 0d 0a 20 20 20 4c 41 53 54 50 41 54 54 45 52 ┆ATTERN(PATTERN1); LASTPATTER┆ 0x4c0c0…4c0e0 4e 3a 3d 50 41 54 54 45 52 4e 31 3b 0d 0a 20 20 20 45 4e 44 0d 0a 20 20 45 4c 53 45 20 49 46 20 ┆N:=PATTERN1; END ELSE IF ┆ 0x4c0e0…4c100 28 44 49 46 3e 30 29 20 41 4e 44 20 28 50 41 54 54 45 52 4e 32 3c 3e 4c 41 53 54 50 41 54 54 45 ┆(DIF>0) AND (PATTERN2<>LASTPATTE┆ 0x4c100…4c120 52 4e 29 20 54 48 45 4e 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 46 49 4c 4c 50 41 54 54 45 ┆RN) THEN BEGIN FILLPATTE┆ 0x4c120…4c140 52 4e 28 50 41 54 54 45 52 4e 32 29 3b 0d 0a 20 20 20 4c 41 53 54 50 41 54 54 45 52 4e 3a 3d 50 ┆RN(PATTERN2); LASTPATTERN:=P┆ 0x4c140…4c160 41 54 54 45 52 4e 32 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 4d 41 52 4b 52 45 43 54 41 4e 47 ┆ATTERN2; END; MARKRECTANG┆ 0x4c160…4c180 4c 45 28 58 4c 4f 57 2c 59 4c 4f 57 2c 58 53 49 5a 45 2c 59 53 49 5a 45 29 3b 0d 0a 20 20 49 46 ┆LE(XLOW,YLOW,XSIZE,YSIZE); IF┆ 0x4c180…4c1a0 20 4c 41 53 54 50 41 54 54 45 52 4e 3e 30 20 54 48 45 4e 20 46 49 4c 4c 52 45 43 54 41 4e 47 4c ┆ LASTPATTERN>0 THEN FILLRECTANGL┆ 0x4c1a0…4c1c0 45 28 58 4c 4f 57 2c 59 4c 4f 57 2c 58 53 49 5a 45 2c 59 53 49 5a 45 29 3b 0d 0a 20 20 45 4e 44 ┆E(XLOW,YLOW,XSIZE,YSIZE); END┆ 0x4c1c0…4c1e0 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 48 49 47 48 43 ┆; END; END; FUNCTION HIGHC┆ 0x4c1e0…4c200 49 46 46 45 52 28 56 41 4c 55 45 3a 20 52 45 41 4c 29 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 56 41 ┆IFFER(VALUE: REAL): INTEGER; VA┆ 0x4c200…4c220 52 20 56 41 4c 53 54 52 49 4e 47 3a 20 53 54 52 32 30 3b 0d 0a 20 20 20 20 49 2c 44 3a 20 42 59 ┆R VALSTRING: STR20; I,D: BY┆ 0x4c220…4c240 54 45 3b 0d 0a 42 45 47 49 4e 0d 0a 53 54 52 28 56 41 4c 55 45 3a 31 30 3a 30 2c 56 41 4c 53 54 ┆TE; BEGIN STR(VALUE:10:0,VALST┆ 0x4c240…4c260 52 49 4e 47 29 3b 0d 0a 46 4f 52 20 49 3a 3d 31 20 54 4f 20 31 30 20 44 4f 20 49 46 20 56 41 4c ┆RING); FOR I:=1 TO 10 DO IF VAL┆ 0x4c260…4c280 53 54 52 49 4e 47 5b 49 5d 3d 27 20 27 20 54 48 45 4e 20 44 3a 3d 49 3b 0d 0a 48 49 47 48 43 49 ┆STRINGÆIÅ=' ' THEN D:=I; HIGHCI┆ 0x4c280…4c2a0 46 46 45 52 3a 3d 31 30 2d 44 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 41 ┆FFER:=10-D END; PROCEDURE MA┆ 0x4c2a0…4c2c0 52 4b 45 52 53 49 5a 45 28 53 49 5a 45 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c ┆RKERSIZE(SIZE: REAL); BEGIN PL┆ 0x4c2c0…4c2e0 4f 54 44 45 46 52 45 41 4c 5b 33 5d 3a 3d 53 49 5a 45 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f ┆OTDEFREALÆ3Å:=SIZE; END; PRO┆ 0x4c2e0…4c300 43 45 44 55 52 45 20 46 4f 4f 54 4e 4f 54 45 50 4c 41 43 45 28 50 4c 41 43 45 3a 20 49 4e 54 45 ┆CEDURE FOOTNOTEPLACE(PLACE: INTE┆ 0x4c300…4c320 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 36 5d 3a 3d 50 4c ┆GER); BEGIN PLOTDEFINTÆ26Å:=PL┆ 0x4c320…4c340 41 43 45 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 3a 3d 30 3b 0d 0a 45 4e 44 3b 0d 0a ┆ACE; PLOTDEFINTÆ28Å:=0; END; ┆ 0x4c340…4c360 0d 0a 50 52 4f 43 45 44 55 52 45 20 43 4f 4d 4d 45 4e 54 50 4c 41 43 45 28 50 4c 41 43 45 3a 20 ┆ PROCEDURE COMMENTPLACE(PLACE: ┆ 0x4c360…4c380 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 37 5d ┆INTEGER); BEGIN PLOTDEFINTÆ27Å┆ 0x4c380…4c3a0 3a 3d 50 4c 41 43 45 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 4c 41 43 ┆:=PLACE; END; PROCEDURE PLAC┆ 0x4c3a0…4c3c0 45 4c 41 42 45 4c 28 58 2c 59 2c 4c 41 42 45 4c 4c 45 4e 47 54 48 3a 20 49 4e 54 45 47 45 52 3b ┆ELABEL(X,Y,LABELLENGTH: INTEGER;┆ 0x4c3c0…4c3e0 58 44 49 52 2c 59 44 49 52 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 69 66 20 50 6c 6f ┆XDIR,YDIR: REAL); BEGIN if Plo┆ 0x4c3e0…4c400 74 44 65 66 49 6e 74 5b 31 33 5d 3d 30 20 74 68 65 6e 0d 0a 20 50 4c 41 43 45 55 50 28 58 2b 72 ┆tDefIntÆ13Å=0 then PLACEUP(X+r┆ 0x4c400…4c420 (30, 1, 1) 6f 75 6e 64 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2a 58 44 69 72 2a 4c 61 62 65 6c 4c ┆ound(PlotDefRealÆ20Å*XDir*LabelL┆ 0x4c420…4c440 65 6e 67 74 68 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 59 2b 72 6f 75 6e 64 28 50 6c 6f 74 44 65 ┆ength), Y+round(PlotDe┆ 0x4c440…4c460 66 52 65 61 6c 5b 32 31 5d 2a 59 44 69 72 29 29 0d 0a 65 6c 73 65 0d 0a 20 50 6c 61 63 65 55 70 ┆fRealÆ21Å*YDir)) else PlaceUp┆ 0x4c460…4c480 28 58 2d 72 6f 75 6e 64 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 59 44 69 72 29 2c 0d ┆(X-round(PlotDefRealÆ21Å*YDir), ┆ 0x4c480…4c4a0 0a 20 20 20 20 20 20 20 20 20 59 2b 72 6f 75 6e 64 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 ┆ Y+round(PlotDefRealÆ20┆ 0x4c4a0…4c4c0 5d 2a 58 44 69 72 2a 4c 61 62 65 6c 4c 65 6e 67 74 68 29 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆Å*XDir*LabelLength)); END; P┆ 0x4c4c0…4c4e0 52 4f 43 45 44 55 52 45 20 48 45 41 44 49 4e 47 28 54 49 54 4c 45 3a 20 53 54 52 38 30 29 3b 0d ┆ROCEDURE HEADING(TITLE: STR80); ┆ 0x4c4e0…4c500 0a 76 61 72 20 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 2e 2e 38 30 5d 20 6f 66 ┆ var ByteTitle: array Æ0..80Å of┆ 0x4c500…4c520 20 62 79 74 65 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 41 43 45 4c 41 42 ┆ byte at Title; BEGIN PLACELAB┆ 0x4c520…4c540 45 4c 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d ┆EL((PLOTDEFINTÆ8Å+PLOTDEFINTÆ10Å┆ 0x4c540…4c560 29 20 44 49 56 20 32 2c 50 4c 4f 54 44 45 46 49 4e 54 5b 31 32 5d 2c 42 79 74 65 54 69 74 6c 65 ┆) DIV 2,PLOTDEFINTÆ12Å,ByteTitle┆ 0x4c560…4c580 5b 30 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 2d 30 2e 35 2c 2d 31 29 3b 0d 0a 50 4c 54 4c ┆Æ0Å, -0.5,-1); PLTL┆ 0x4c580…4c5a0 41 42 45 4c 28 54 49 54 4c 45 29 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 31 32 5d 3a 3d 50 4c ┆ABEL(TITLE); PLOTDEFINTÆ12Å:=PL┆ 0x4c5a0…4c5c0 4f 54 44 45 46 49 4e 54 5b 31 32 5d 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 ┆OTDEFINTÆ12Å-ROUND(PlotDefRealÆ2┆ 0x4c5c0…4c5e0 31 5d 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 46 4f 4f 54 4e 4f 54 45 ┆1Å); END; PROCEDURE FOOTNOTE┆ 0x4c5e0…4c600 28 54 49 54 4c 45 3a 20 53 54 52 38 30 29 3b 0d 0a 56 41 52 20 58 2c 59 3a 20 49 4e 54 45 47 45 ┆(TITLE: STR80); VAR X,Y: INTEGE┆ 0x4c600…4c620 52 3b 0d 0a 20 20 20 20 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 2e 2e 38 30 5d ┆R; ByteTitle: array Æ0..80Å┆ 0x4c620…4c640 20 6f 66 20 62 79 74 65 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a 63 61 73 65 20 ┆ of byte at Title; BEGIN case ┆ 0x4c640…4c660 50 6c 6f 74 44 65 66 49 6e 74 5b 32 36 5d 20 6f 66 0d 0a 20 31 3a 20 42 45 47 49 4e 0d 0a 20 20 ┆PlotDefIntÆ26Å of 1: BEGIN ┆ 0x4c660…4c680 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 ┆ X:=PLOTDEFINTÆ8Å+ROUND(PlotDef┆ 0x4c680…4c6a0 52 65 61 6c 5b 32 30 5d 2f 32 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b ┆RealÆ20Å/2); Y:=PLOTDEFINTÆ┆ 0x4c6a0…4c6c0 31 31 5d 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 37 35 2b ┆11Å-ROUND(PlotDefRealÆ21Å*(0.75+┆ 0x4c6c0…4c6e0 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 32 3a ┆PLOTDEFINTÆ28Å)); END; 2:┆ 0x4c6e0…4c700 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 52 4f ┆ BEGIN X:=PLOTDEFINTÆ10Å-RO┆ 0x4c700…4c720 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2a 28 30 2e 32 2b 42 79 74 65 54 69 74 ┆UND(PlotDefRealÆ20Å*(0.2+ByteTit┆ 0x4c720…4c740 6c 65 5b 30 5d 29 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 31 5d 2d ┆leÆ0Å)); Y:=PLOTDEFINTÆ11Å-┆ 0x4c740…4c760 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 37 35 2b 50 4c 4f 54 ┆ROUND(PlotDefRealÆ21Å*(0.75+PLOT┆ 0x4c760…4c780 44 45 46 49 4e 54 5b 32 38 5d 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 33 3a 20 42 45 47 ┆DEFINTÆ28Å)); END; 3: BEG┆ 0x4c780…4c7a0 49 4e 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 50 ┆IN X:=PLOTDEFINTÆ8Å+ROUND(P┆ 0x4c7a0…4c7c0 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2f 32 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 ┆lotDefRealÆ20Å/2); Y:=PLOTD┆ 0x4c7c0…4c7e0 45 46 49 4e 54 5b 39 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 ┆EFINTÆ9Å+ROUND(PlotDefRealÆ21Å*(┆ 0x4c7e0…4c800 30 2e 32 35 2b 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b ┆0.25+PLOTDEFINTÆ28Å)); END;┆ 0x4c800…4c820 (30, 1, 2) 0d 0a 20 34 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 ┆ 4: BEGIN X:=PLOTDEFINTÆ1┆ 0x4c820…4c840 30 5d 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2a 28 30 2e 32 2b 42 79 ┆0Å-ROUND(PlotDefRealÆ20Å*(0.2+By┆ 0x4c840…4c860 74 65 54 69 74 6c 65 5b 30 5d 29 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 ┆teTitleÆ0Å)); Y:=PLOTDEFINT┆ 0x4c860…4c880 5b 39 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 32 35 2b ┆Æ9Å+ROUND(PlotDefRealÆ21Å*(0.25+┆ 0x4c880…4c8a0 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 65 6e ┆PLOTDEFINTÆ28Å)); END; en┆ 0x4c8a0…4c8c0 64 3b 0d 0a 50 4c 41 43 45 55 50 28 58 2c 59 29 3b 0d 0a 50 4c 54 4c 41 42 45 4c 28 54 49 54 4c ┆d; PLACEUP(X,Y); PLTLABEL(TITL┆ 0x4c8c0…4c8e0 45 29 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b ┆E); PLOTDEFINTÆ28Å:=PLOTDEFINTÆ┆ 0x4c8e0…4c900 32 38 5d 2b 31 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 43 4f 4d 4d 45 4e ┆28Å+1; END; PROCEDURE COMMEN┆ 0x4c900…4c920 54 28 54 49 54 4c 45 3a 20 53 54 52 38 30 3b 43 4f 4d 4d 45 4e 54 4e 55 4d 42 45 52 3a 20 49 4e ┆T(TITLE: STR80;COMMENTNUMBER: IN┆ 0x4c920…4c940 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 58 2c 59 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 ┆TEGER); VAR X,Y: INTEGER; ┆ 0x4c940…4c960 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 2e 2e 38 30 5d 20 6f 66 20 62 79 74 65 ┆ByteTitle: array Æ0..80Å of byte┆ 0x4c960…4c980 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a 63 61 73 65 20 50 6c 6f 74 44 65 66 49 ┆ at Title; BEGIN case PlotDefI┆ 0x4c980…4c9a0 6e 74 5b 32 37 5d 20 6f 66 0d 0a 20 31 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f ┆ntÆ27Å of 1: BEGIN X:=PLO┆ 0x4c9a0…4c9c0 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d ┆TDEFINTÆ8Å+ROUND(PlotDefRealÆ20Å┆ 0x4c9c0…4c9e0 2f 32 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 31 5d 2d 52 4f 55 4e ┆/2); Y:=PLOTDEFINTÆ11Å-ROUN┆ 0x4c9e0…4ca00 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 37 35 2b 43 4f 4d 4d 45 4e 54 4e ┆D(PlotDefRealÆ21Å*(0.75+COMMENTN┆ 0x4ca00…4ca20 55 4d 42 45 52 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 32 3a 20 42 45 47 49 4e 0d 0a 20 ┆UMBER)); END; 2: BEGIN ┆ 0x4ca20…4ca40 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 ┆ X:=PLOTDEFINTÆ10Å-ROUND(PlotD┆ 0x4ca40…4ca60 65 66 52 65 61 6c 5b 32 30 5d 2a 28 30 2e 32 2b 42 79 74 65 54 69 74 6c 65 5b 30 5d 29 29 3b 0d ┆efRealÆ20Å*(0.2+ByteTitleÆ0Å)); ┆ 0x4ca60…4ca80 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 31 5d 2d 52 4f 55 4e 44 28 50 6c 6f ┆ Y:=PLOTDEFINTÆ11Å-ROUND(Plo┆ 0x4ca80…4caa0 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 37 35 2b 43 4f 4d 4d 45 4e 54 4e 55 4d 42 45 52 ┆tDefRealÆ21Å*(0.75+COMMENTNUMBER┆ 0x4caa0…4cac0 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 33 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 3a ┆)); END; 3: BEGIN X:┆ 0x4cac0…4cae0 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c ┆=PLOTDEFINTÆ8Å+ROUND(PlotDefReal┆ 0x4cae0…4cb00 5b 32 30 5d 2f 32 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 39 5d 2b 52 ┆Æ20Å/2); Y:=PLOTDEFINTÆ9Å+R┆ 0x4cb00…4cb20 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 32 35 2b 43 4f 4d 4d 45 ┆OUND(PlotDefRealÆ21Å*(0.25+COMME┆ 0x4cb20…4cb40 4e 54 4e 55 4d 42 45 52 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 34 3a 20 42 45 47 49 4e ┆NTNUMBER)); END; 4: BEGIN┆ 0x4cb40…4cb60 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 52 4f 55 4e 44 28 50 6c ┆ X:=PLOTDEFINTÆ10Å-ROUND(Pl┆ 0x4cb60…4cb80 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2a 28 30 2e 32 2b 42 79 74 65 54 69 74 6c 65 5b 30 5d 29 ┆otDefRealÆ20Å*(0.2+ByteTitleÆ0Å)┆ 0x4cb80…4cba0 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 39 5d 2b 52 4f 55 4e 44 28 50 ┆); Y:=PLOTDEFINTÆ9Å+ROUND(P┆ 0x4cba0…4cbc0 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 32 35 2b 43 4f 4d 4d 45 4e 54 4e 55 4d 42 ┆lotDefRealÆ21Å*(0.25+COMMENTNUMB┆ 0x4cbc0…4cbe0 45 52 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 65 6e 64 3b 0d 0a 50 4c 41 43 45 55 50 28 ┆ER)); END; end; PLACEUP(┆ 0x4cbe0…4cc00 58 2c 59 29 3b 0d 0a 50 4c 54 4c 41 42 45 4c 28 54 49 54 4c 45 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d ┆X,Y); PLTLABEL(TITLE); END; ┆ 0x4cc00…4cc20 (30, 1, 3) 0a 50 52 4f 43 45 44 55 52 45 20 6d 61 72 6b 63 72 6f 73 73 28 58 2c 59 2c 72 61 64 69 75 73 3a ┆ PROCEDURE markcross(X,Y,radius:┆ 0x4cc20…4cc40 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 2c 59 29 ┆ INTEGER); BEGIN moveto(X,Y)┆ 0x4cc40…4cc60 3b 20 64 72 61 77 72 65 6c 28 2d 72 61 64 69 75 73 2c 2d 72 61 64 69 75 73 29 3b 20 64 72 61 77 ┆; drawrel(-radius,-radius); draw┆ 0x4cc60…4cc80 72 65 6c 28 32 2a 72 61 64 69 75 73 2c 32 2a 72 61 64 69 75 73 29 3b 0d 0a 20 20 6d 6f 76 65 72 ┆rel(2*radius,2*radius); mover┆ 0x4cc80…4cca0 65 6c 28 30 2c 2d 32 2a 72 61 64 69 75 73 29 3b 20 64 72 61 77 72 65 6c 28 2d 32 2a 72 61 64 69 ┆el(0,-2*radius); drawrel(-2*radi┆ 0x4cca0…4ccc0 75 73 2c 32 2a 72 61 64 69 75 73 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆us,2*radius); END; PROCEDURE┆ 0x4ccc0…4cce0 20 6d 61 72 6b 70 6c 75 73 28 58 2c 59 2c 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 52 29 3b 0d ┆ markplus(X,Y,radius: INTEGER); ┆ 0x4cce0…4cd00 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 2c 59 29 3b 20 64 72 61 77 72 65 6c 28 30 ┆ BEGIN moveto(X,Y); drawrel(0┆ 0x4cd00…4cd20 2c 72 61 64 69 75 73 29 3b 20 64 72 61 77 72 65 6c 28 30 2c 2d 32 2a 72 61 64 69 75 73 29 3b 0d ┆,radius); drawrel(0,-2*radius); ┆ 0x4cd20…4cd40 0a 20 20 6d 6f 76 65 72 65 6c 28 2d 72 61 64 69 75 73 2c 72 61 64 69 75 73 29 3b 20 64 72 61 77 ┆ moverel(-radius,radius); draw┆ 0x4cd40…4cd60 72 65 6c 28 32 2a 72 61 64 69 75 73 2c 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 ┆rel(2*radius,0); END; PROCED┆ 0x4cd60…4cd80 55 52 45 20 6d 61 72 6b 68 61 73 68 28 58 2c 59 2c 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 52 ┆URE markhash(X,Y,radius: INTEGER┆ 0x4cd80…4cda0 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 2d 72 61 64 69 75 73 2c 28 72 61 ┆); BEGIN moverel(-radius,(ra┆ 0x4cda0…4cdc0 64 69 75 73 20 44 49 56 20 32 29 29 3b 20 64 72 61 77 72 65 6c 28 32 2a 72 61 64 69 75 73 2c 30 ┆dius DIV 2)); drawrel(2*radius,0┆ 0x4cdc0…4cde0 29 3b 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 2d 32 2a 72 61 64 69 75 73 2c 2d 32 2a 28 72 61 64 69 ┆); moverel(-2*radius,-2*(radi┆ 0x4cde0…4ce00 75 73 20 44 49 56 20 32 29 29 3b 20 64 72 61 77 72 65 6c 28 32 2a 72 61 64 69 75 73 2c 30 29 3b ┆us DIV 2)); drawrel(2*radius,0);┆ 0x4ce00…4ce20 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 2d 72 61 64 69 75 73 2d 28 72 61 64 69 75 73 20 44 49 56 20 ┆ moverel(-radius-(radius DIV ┆ 0x4ce20…4ce40 32 29 2c 2d 28 72 61 64 69 75 73 20 44 49 56 20 32 29 29 3b 20 64 72 61 77 72 65 6c 28 30 2c 32 ┆2),-(radius DIV 2)); drawrel(0,2┆ 0x4ce40…4ce60 2a 72 61 64 69 75 73 29 3b 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 72 61 64 69 75 73 2c 30 29 3b 20 ┆*radius); moverel(radius,0); ┆ 0x4ce60…4ce80 64 72 61 77 72 65 6c 28 30 2c 2d 32 2a 72 61 64 69 75 73 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆drawrel(0,-2*radius); END; P┆ 0x4ce80…4cea0 52 4f 43 45 44 55 52 45 20 6d 61 72 6b 79 28 58 2c 59 2c 72 61 64 69 75 73 3a 20 49 4e 54 45 47 ┆ROCEDURE marky(X,Y,radius: INTEG┆ 0x4cea0…4cec0 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 2c 59 29 3b 0d 0a 20 20 6d ┆ER); BEGIN moveto(X,Y); m┆ 0x4cec0…4cee0 6f 76 65 72 65 6c 28 30 2c 2d 72 61 64 69 75 73 29 3b 0d 0a 20 20 64 72 61 77 72 65 6c 28 30 2c ┆overel(0,-radius); drawrel(0,┆ 0x4cee0…4cf00 72 61 64 69 75 73 29 3b 0d 0a 20 20 64 72 61 77 72 65 6c 28 2d 72 61 64 69 75 73 2c 72 61 64 69 ┆radius); drawrel(-radius,radi┆ 0x4cf00…4cf20 75 73 29 3b 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 72 61 64 69 75 73 2c 2d 72 61 64 69 75 73 29 3b ┆us); moverel(radius,-radius);┆ 0x4cf20…4cf40 0d 0a 20 20 64 72 61 77 72 65 6c 28 72 61 64 69 75 73 2c 72 61 64 69 75 73 29 3b 0d 0a 45 4e 44 ┆ drawrel(radius,radius); END┆ 0x4cf40…4cf60 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 41 52 4b 45 52 28 58 2c 59 2c 53 59 4d 42 4f 4c ┆; PROCEDURE MARKER(X,Y,SYMBOL┆ 0x4cf60…4cf80 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 4d 41 52 4b 45 52 53 49 5a 45 3a 20 49 4e 54 ┆: INTEGER); VAR MARKERSIZE: INT┆ 0x4cf80…4cfa0 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 4d 41 52 4b 45 52 53 49 5a 45 3a 3d 31 36 3b 0d 0a 49 ┆EGER; BEGIN MARKERSIZE:=16; I┆ 0x4cfa0…4cfc0 46 20 53 59 4d 42 4f 4c 3d 30 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 50 4c 41 43 45 44 ┆F SYMBOL=0 THEN BEGIN PLACED┆ 0x4cfc0…4cfe0 4f 57 4e 28 58 2c 59 29 3b 0d 0a 20 50 45 4e 55 50 3b 0d 0a 20 45 4e 44 3b 0d 0a 49 46 20 53 59 ┆OWN(X,Y); PENUP; END; IF SY┆ 0x4cfe0…4d000 4d 42 4f 4c 3c 31 30 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 41 52 45 41 46 49 4c 4c 54 ┆MBOL<10 THEN BEGIN AREAFILLT┆ 0x4d000…4d020 (30, 1, 4) 59 50 45 28 31 2c 30 2c 30 29 3b 0d 0a 20 63 61 73 65 20 53 79 6d 62 6f 6c 20 6f 66 0d 0a 20 20 ┆YPE(1,0,0); case Symbol of ┆ 0x4d020…4d040 31 3a 20 46 49 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 ┆1: FILLWEDGE(X,Y,MARKERSIZE,0,36┆ 0x4d040…4d060 30 2c 35 29 3b 20 20 20 20 20 7b 20 46 69 6c 6c 65 64 20 63 69 72 63 6c 65 20 7d 0d 0a 20 20 32 ┆0,5); æ Filled circle å 2┆ 0x4d060…4d080 3a 20 46 49 4c 4c 52 45 43 54 41 4e 47 4c 45 28 58 2d 4d 41 52 4b 45 52 53 49 5a 45 2c 59 2d 4d ┆: FILLRECTANGLE(X-MARKERSIZE,Y-M┆ 0x4d080…4d0a0 41 52 4b 45 52 53 49 5a 45 2c 32 2a 4d 41 52 4b 45 52 53 49 5a 45 2c 32 2a 4d 41 52 4b 45 52 53 ┆ARKERSIZE,2*MARKERSIZE,2*MARKERS┆ 0x4d0a0…4d0c0 49 5a 45 29 3b 20 7b 20 46 69 6c 6c 65 64 20 73 71 75 61 72 65 20 7d 0d 0a 20 20 33 3a 20 46 49 ┆IZE); æ Filled square å 3: FI┆ 0x4d0c0…4d0e0 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 30 2c 39 30 29 ┆LLWEDGE(X,Y,MARKERSIZE,0,360,90)┆ 0x4d0e0…4d100 3b 20 20 20 20 7b 20 46 69 6c 6c 65 64 20 64 69 61 6d 6f 6e 64 20 7d 0d 0a 20 20 34 3a 20 46 49 ┆; æ Filled diamond å 4: FI┆ 0x4d100…4d120 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 2d 33 30 2c 33 36 30 2c 31 ┆LLWEDGE(X,Y,MARKERSIZE,-30,360,1┆ 0x4d120…4d140 32 30 29 3b 20 7b 20 46 69 6c 6c 65 64 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 75 70 20 ┆20); æ Filled triangle, edge up ┆ 0x4d140…4d160 7d 0d 0a 20 20 35 3a 20 46 49 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 ┆å 5: FILLWEDGE(X,Y,MARKERSIZE┆ 0x4d160…4d180 2c 33 30 2c 33 36 30 2c 31 32 30 29 3b 20 20 7b 20 46 69 6c 6c 65 64 20 74 72 69 61 6e 67 6c 65 ┆,30,360,120); æ Filled triangle┆ 0x4d180…4d1a0 2c 20 65 64 67 65 20 64 6f 77 6e 20 7d 0d 0a 20 20 36 3a 20 46 49 4c 4c 57 45 44 47 45 28 58 2c ┆, edge down å 6: FILLWEDGE(X,┆ 0x4d1a0…4d1c0 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 30 2c 37 32 29 3b 20 20 20 20 7b 20 46 69 6c ┆Y,MARKERSIZE,0,360,72); æ Fil┆ 0x4d1c0…4d1e0 6c 65 64 20 50 65 6e 74 61 67 6f 6e 20 7d 0d 0a 20 20 37 3a 20 46 49 4c 4c 57 45 44 47 45 28 58 ┆led Pentagon å 7: FILLWEDGE(X┆ 0x4d1e0…4d200 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 31 38 2c 33 36 30 2c 36 30 29 3b 20 20 20 7b 20 46 69 ┆,Y,MARKERSIZE,18,360,60); æ Fi┆ 0x4d200…4d220 6c 6c 65 64 20 48 65 78 61 67 6f 6e 20 7d 0d 0a 20 20 38 3a 20 42 45 47 49 4e 20 20 20 20 20 20 ┆lled Hexagon å 8: BEGIN ┆ 0x4d220…4d240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 46 69 ┆ æ Fi┆ 0x4d240…4d260 6c 6c 65 64 20 73 74 61 72 74 20 7d 0d 0a 20 20 20 20 20 46 49 4c 4c 57 45 44 47 45 28 58 2c 59 ┆lled start å FILLWEDGE(X,Y┆ 0x4d260…4d280 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 2d 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 20 ┆,MARKERSIZE,-30,360,120); ┆ 0x4d280…4d2a0 46 49 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 33 30 2c 33 36 30 2c ┆FILLWEDGE(X,Y,MARKERSIZE,30,360,┆ 0x4d2a0…4d2c0 31 32 30 29 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 53 59 4d 42 4f ┆120); END; end; SYMBO┆ 0x4d2c0…4d2e0 4c 3a 3d 53 59 4d 42 4f 4c 2b 31 30 3b 0d 0a 20 45 4e 44 3b 0d 0a 63 61 73 65 20 53 79 6d 62 6f ┆L:=SYMBOL+10; END; case Symbo┆ 0x4d2e0…4d300 6c 20 6f 66 0d 0a 20 31 31 3a 20 4d 41 52 4b 43 49 52 43 4c 45 28 58 2c 59 2c 4d 41 52 4b 45 52 ┆l of 11: MARKCIRCLE(X,Y,MARKER┆ 0x4d300…4d320 53 49 5a 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 43 69 72 63 6c 65 20 20 20 20 20 7d ┆SIZE); æ Circle å┆ 0x4d320…4d340 0d 0a 20 31 32 3a 20 4d 41 52 4b 52 45 43 54 41 4e 47 4c 45 28 58 2d 4d 41 52 4b 45 52 53 49 5a ┆ 12: MARKRECTANGLE(X-MARKERSIZ┆ 0x4d340…4d360 45 2c 59 2d 4d 41 52 4b 45 52 53 49 5a 45 2c 32 2a 4d 41 52 4b 45 52 53 49 5a 45 2c 32 2a 4d 41 ┆E,Y-MARKERSIZE,2*MARKERSIZE,2*MA┆ 0x4d360…4d380 52 4b 45 52 53 49 5a 45 29 3b 20 7b 20 73 71 75 61 72 65 20 7d 0d 0a 20 31 33 3a 20 4d 41 52 4b ┆RKERSIZE); æ square å 13: MARK┆ 0x4d380…4d3a0 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 30 2c 39 30 29 3b 20 ┆WEDGE(X,Y,MARKERSIZE,0,360,90); ┆ 0x4d3a0…4d3c0 20 20 20 7b 20 64 69 61 6d 6f 6e 64 20 20 20 20 7d 0d 0a 20 31 34 3a 20 4d 41 52 4b 57 45 44 47 ┆ æ diamond å 14: MARKWEDG┆ 0x4d3c0…4d3e0 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 2d 33 30 2c 33 36 30 2c 31 32 30 29 3b 20 7b ┆E(X,Y,MARKERSIZE,-30,360,120); æ┆ 0x4d3e0…4d400 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 75 70 20 7d 0d 0a 20 31 35 3a 20 4d 41 52 4b 57 ┆ triangle, edge up å 15: MARKW┆ 0x4d400…4d420 (30, 1, 5) 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 33 30 2c 33 36 30 2c 31 32 30 29 3b ┆EDGE(X,Y,MARKERSIZE,30,360,120);┆ 0x4d420…4d440 20 20 7b 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 64 6f 77 6e 20 7d 0d 0a 20 31 36 3a 20 ┆ æ triangle, edge down å 16: ┆ 0x4d440…4d460 4d 41 52 4b 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 31 38 2c 33 36 30 2c ┆MARKWEDGE(X,Y,MARKERSIZE,18,360,┆ 0x4d460…4d480 37 32 29 3b 20 20 20 7b 20 70 65 6e 74 61 67 6f 6e 20 20 20 7d 0d 0a 20 31 37 3a 20 4d 41 52 4b ┆72); æ pentagon å 17: MARK┆ 0x4d480…4d4a0 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 30 2c 36 30 29 3b 20 ┆WEDGE(X,Y,MARKERSIZE,0,360,60); ┆ 0x4d4a0…4d4c0 20 20 20 7b 20 68 65 78 61 67 6f 6e 20 20 20 20 7d 0d 0a 20 31 38 3a 20 20 20 20 20 20 20 20 20 ┆ æ hexagon å 18: ┆ 0x4d4c0…4d4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ┆ (┆ 0x4d4e0…4d500 2a 20 53 54 41 52 20 2a 29 0d 0a 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 4d 41 52 4b ┆* STAR *) BEGIN MARK┆ 0x4d500…4d520 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 2d 33 30 2c 33 36 30 2c 31 32 30 ┆WEDGE(X,Y,MARKERSIZE,-30,360,120┆ 0x4d520…4d540 29 3b 0d 0a 20 20 20 20 20 4d 41 52 4b 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a ┆); MARKWEDGE(X,Y,MARKERSIZ┆ 0x4d540…4d560 45 2c 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 32 31 3a 20 ┆E,30,360,120); END; 21: ┆ 0x4d560…4d580 4d 41 52 4b 43 52 4f 53 53 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 29 3b 20 20 20 20 20 20 ┆MARKCROSS(X,Y,MARKERSIZE); ┆ 0x4d580…4d5a0 20 20 20 20 20 20 20 7b 20 63 72 6f 73 73 20 20 20 20 20 20 7d 0d 0a 20 32 32 3a 20 4d 41 52 4b ┆ æ cross å 22: MARK┆ 0x4d5a0…4d5c0 50 4c 55 53 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 ┆PLUS(X,Y,MARKERSIZE); ┆ 0x4d5c0…4d5e0 20 20 20 7b 20 70 6c 75 73 20 20 20 20 20 20 20 7d 0d 0a 20 32 33 3a 20 4d 41 52 4b 48 41 53 48 ┆ æ plus å 23: MARKHASH┆ 0x4d5e0…4d600 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b ┆(X,Y,MARKERSIZE); æ┆ 0x4d600…4d620 20 68 61 73 68 20 20 20 20 20 20 20 7d 0d 0a 20 32 34 3a 20 4d 41 52 4b 59 28 58 2c 59 2c 4d 41 ┆ hash å 24: MARKY(X,Y,MA┆ 0x4d620…4d640 52 4b 45 52 53 49 5a 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 20 20 59 ┆RKERSIZE); æ Y┆ 0x4d640…4d660 20 20 20 20 7d 20 0d 0a 20 33 33 2e 2e 31 32 37 3a 20 4d 41 52 4b 53 59 4d 42 4f 4c 4d 4f 44 45 ┆ å 33..127: MARKSYMBOLMODE┆ 0x4d660…4d680 28 58 2c 59 2c 53 59 4d 42 4f 4c 29 3b 0d 0a 20 65 6e 64 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆(X,Y,SYMBOL); end; END; PR┆ 0x4d680…4d6a0 4f 43 45 44 55 52 45 20 46 52 41 4d 45 3b 0d 0a 42 45 47 49 4e 0d 0a 4d 61 72 6b 52 65 63 74 61 ┆OCEDURE FRAME; BEGIN MarkRecta┆ 0x4d6a0…4d6c0 6e 67 6c 65 28 50 6c 6f 74 44 65 66 49 6e 74 5b 38 5d 2c 50 6c 6f 74 44 65 66 49 6e 74 5b 39 5d ┆ngle(PlotDefIntÆ8Å,PlotDefIntÆ9Å┆ 0x4d6c0…4d6e0 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c 6f 74 44 65 66 49 6e 74 5b 31 30 5d 2d ┆, PlotDefIntÆ10Å-┆ 0x4d6e0…4d700 50 6c 6f 74 44 65 66 49 6e 74 5b 38 5d 2c 50 6c 6f 74 44 65 66 49 6e 74 5b 31 31 5d 2d 50 6c 6f ┆PlotDefIntÆ8Å,PlotDefIntÆ11Å-Plo┆ 0x4d700…4d720 74 44 65 66 49 6e 74 5b 39 5d 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆tDefIntÆ9Å); END; PROCEDURE ┆ 0x4d720…4d740 4c 45 47 45 4e 44 50 4f 53 49 54 49 4f 4e 28 58 2c 59 3a 20 52 45 41 4c 3b 4c 45 47 50 52 4c 49 ┆LEGENDPOSITION(X,Y: REAL;LEGPRLI┆ 0x4d740…4d760 4e 45 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 ┆NE: INTEGER); BEGIN PLOTDEFINT┆ 0x4d760…4d780 5b 32 30 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 58 2a 34 30 30 29 ┆Æ20Å:=PLOTDEFINTÆ8Å+ROUND(X*400)┆ 0x4d780…4d7a0 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 31 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 39 5d ┆; PLOTDEFINTÆ21Å:=PLOTDEFINTÆ9Å┆ 0x4d7a0…4d7c0 2b 52 4f 55 4e 44 28 59 2a 34 30 30 29 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 3a 3d ┆+ROUND(Y*400); PLOTDEFINTÆ22Å:=┆ 0x4d7c0…4d7e0 4c 45 47 50 52 4c 49 4e 45 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 33 5d 3a 3d 30 3b 0d 0a ┆LEGPRLINE; PLOTDEFINTÆ23Å:=0; ┆ 0x4d7e0…4d800 50 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 3a 3d 30 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 ┆PLOTDEFINTÆ24Å:=0; END; PROC┆ 0x4d800…4d820 (31, 0, 1) 45 44 55 52 45 20 4d 41 4b 45 4f 52 44 49 4e 41 52 59 4c 45 47 45 4e 44 28 58 2c 59 2c 4c 54 59 ┆EDURE MAKEORDINARYLEGEND(X,Y,LTY┆ 0x4d820…4d840 50 45 2c 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 45 52 3b 54 49 54 4c 45 3a 20 53 54 52 38 30 29 ┆PE,SYMBOL: INTEGER;TITLE: STR80)┆ 0x4d840…4d860 3b 0d 0a 56 41 52 20 58 52 65 6c 2c 59 52 45 4c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 ┆; VAR XRel,YREL: INTEGER; ┆ 0x4d860…4d880 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 2e 2e 38 30 5d 20 6f 66 20 62 79 74 65 ┆ByteTitle: array Æ0..80Å of byte┆ 0x4d880…4d8a0 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a 49 46 20 53 59 4d 42 4f 4c 3e 30 20 54 ┆ at Title; BEGIN IF SYMBOL>0 T┆ 0x4d8a0…4d8c0 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 4d 41 52 4b 45 52 28 58 2c 59 2c 53 59 4d 42 4f 4c 29 ┆HEN BEGIN MARKER(X,Y,SYMBOL)┆ 0x4d8c0…4d8e0 3b 0d 0a 20 49 46 20 4c 54 59 50 45 3c 3d 30 20 54 48 45 4e 20 4d 41 52 4b 45 52 28 58 2b 32 30 ┆; IF LTYPE<=0 THEN MARKER(X+20┆ 0x4d8e0…4d900 30 2c 59 2c 53 59 4d 42 4f 4c 29 3b 0d 0a 20 4d 41 52 4b 45 52 28 58 2b 34 30 30 2c 59 2c 53 59 ┆0,Y,SYMBOL); MARKER(X+400,Y,SY┆ 0x4d900…4d920 4d 42 4f 4c 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 49 46 20 4c 54 59 50 45 3e 30 20 54 48 45 4e 0d 0a ┆MBOL); END; IF LTYPE>0 THEN ┆ 0x4d920…4d940 20 42 45 47 49 4e 0d 0a 20 4c 49 4e 45 54 59 50 45 28 4c 54 59 50 45 29 3b 0d 0a 20 50 4c 41 43 ┆ BEGIN LINETYPE(LTYPE); PLAC┆ 0x4d940…4d960 45 44 4f 57 4e 28 58 2c 59 29 3b 0d 0a 20 50 4c 54 52 45 4c 41 54 49 56 45 28 34 30 30 2c 30 29 ┆EDOWN(X,Y); PLTRELATIVE(400,0)┆ 0x4d960…4d980 3b 0d 0a 20 50 45 4e 55 50 3b 0d 0a 20 4c 49 4e 45 54 59 50 45 28 31 29 3b 0d 0a 20 45 4e 44 3b ┆; PENUP; LINETYPE(1); END;┆ 0x4d980…4d9a0 0d 0a 58 52 65 6c 3a 3d 72 6f 75 6e 64 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 3b 0d ┆ XRel:=round(PlotDefRealÆ20Å); ┆ 0x4d9a0…4d9c0 0a 59 52 45 4c 3a 3d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 30 2e 32 ┆ YREL:=ROUND(PlotDefRealÆ21Å*0.2┆ 0x4d9c0…4d9e0 35 29 3b 0d 0a 49 46 20 28 53 59 4d 42 4f 4c 3c 3d 30 29 20 41 4e 44 20 28 4c 54 59 50 45 3c 3d ┆5); IF (SYMBOL<=0) AND (LTYPE<=┆ 0x4d9e0…4da00 30 29 20 54 48 45 4e 20 50 4c 41 43 45 55 50 28 58 2c 59 2d 59 52 45 4c 29 0d 0a 45 4c 53 45 20 ┆0) THEN PLACEUP(X,Y-YREL) ELSE ┆ 0x4da00…4da20 49 46 20 53 59 4d 42 4f 4c 3c 3d 30 20 54 48 45 4e 20 50 4c 41 43 45 55 50 28 58 2b 34 30 30 2b ┆IF SYMBOL<=0 THEN PLACEUP(X+400+┆ 0x4da20…4da40 58 52 45 4c 2c 59 2d 59 52 45 4c 29 0d 0a 45 4c 53 45 20 50 4c 41 43 45 55 50 28 58 2b 34 30 30 ┆XREL,Y-YREL) ELSE PLACEUP(X+400┆ 0x4da40…4da60 2b 58 52 45 4c 2b 52 4f 55 4e 44 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b 35 5d 2d 50 4c 4f 54 44 ┆+XREL+ROUND((PLOTDEFINTÆ5Å-PLOTD┆ 0x4da60…4da80 45 46 49 4e 54 5b 34 5d 29 2a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 33 5d 2f 32 30 30 29 2c 0d 0a ┆EFINTÆ4Å)*PLOTDEFREALÆ3Å/200), ┆ 0x4da80…4daa0 20 20 20 20 20 20 20 20 20 20 20 20 20 59 2d 59 52 45 4c 29 3b 0d 0a 50 4c 54 4c 41 42 45 4c 28 ┆ Y-YREL); PLTLABEL(┆ 0x4daa0…4dac0 54 49 54 4c 45 29 3b 0d 0a 49 46 20 42 79 74 65 54 69 74 6c 65 5b 30 5d 3e 50 4c 4f 54 44 45 46 ┆TITLE); IF ByteTitleÆ0Å>PLOTDEF┆ 0x4dac0…4dae0 49 4e 54 5b 32 33 5d 20 54 48 45 4e 20 50 4c 4f 54 44 45 46 49 4e 54 5b 32 33 5d 3a 3d 42 79 74 ┆INTÆ23Å THEN PLOTDEFINTÆ23Å:=Byt┆ 0x4dae0…4db00 65 54 69 74 6c 65 5b 30 5d 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 33 32 5d 3a 3d 30 3b 0d 0a ┆eTitleÆ0Å; PLOTDEFINTÆ32Å:=0; ┆ 0x4db00…4db20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 41 4b 45 50 41 54 54 45 52 4e 4c 45 47 ┆END; PROCEDURE MAKEPATTERNLEG┆ 0x4db20…4db40 45 4e 44 28 58 2c 59 2c 50 41 54 54 45 52 4e 3a 20 49 4e 54 45 47 45 52 3b 54 49 54 4c 45 3a 20 ┆END(X,Y,PATTERN: INTEGER;TITLE: ┆ 0x4db40…4db60 53 54 52 38 30 29 3b 0d 0a 56 41 52 20 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 ┆STR80); VAR ByteTitle: array Æ0┆ 0x4db60…4db80 2e 2e 38 30 5d 20 6f 66 20 62 79 74 65 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a ┆..80Å of byte at Title; BEGIN ┆ 0x4db80…4dba0 4d 41 52 4b 52 45 43 54 41 4e 47 4c 45 28 58 2c 59 2d 31 30 30 2c 34 30 30 2c 32 30 30 29 3b 0d ┆MARKRECTANGLE(X,Y-100,400,200); ┆ 0x4dba0…4dbc0 0a 49 46 20 50 41 54 54 45 52 4e 3e 30 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 46 49 4c ┆ IF PATTERN>0 THEN BEGIN FIL┆ 0x4dbc0…4dbe0 4c 50 41 54 54 45 52 4e 28 50 41 54 54 45 52 4e 29 3b 0d 0a 20 46 49 4c 4c 52 45 43 54 41 4e 47 ┆LPATTERN(PATTERN); FILLRECTANG┆ 0x4dbe0…4dc00 4c 45 28 58 2c 59 2d 31 30 30 2c 34 30 30 2c 32 30 30 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 50 4c 41 ┆LE(X,Y-100,400,200); END; PLA┆ 0x4dc00…4dc20 (31, 0, 2) 43 45 55 50 28 58 2b 34 30 30 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d ┆CEUP(X+400+ROUND(PlotDefRealÆ20Å┆ 0x4dc20…4dc40 2b 28 50 4c 4f 54 44 45 46 49 4e 54 5b 35 5d 2d 50 4c 4f 54 44 45 46 49 4e 54 5b 34 5d 29 2a 50 ┆+(PLOTDEFINTÆ5Å-PLOTDEFINTÆ4Å)*P┆ 0x4dc40…4dc60 4c 4f 54 44 45 46 52 45 41 4c 5b 33 5d 2f 32 30 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆LOTDEFREALÆ3Å/200), ┆ 0x4dc60…4dc80 20 20 59 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 30 2e 32 35 29 29 ┆ Y-ROUND(PlotDefRealÆ21Å*0.25))┆ 0x4dc80…4dca0 3b 0d 0a 50 4c 54 4c 41 42 45 4c 28 54 49 54 4c 45 29 3b 0d 0a 49 46 20 42 79 74 65 54 69 74 6c ┆; PLTLABEL(TITLE); IF ByteTitl┆ 0x4dca0…4dcc0 65 5b 30 5d 3e 50 4c 4f 54 44 45 46 49 4e 54 5b 32 33 5d 20 54 48 45 4e 20 50 4c 4f 54 44 45 46 ┆eÆ0Å>PLOTDEFINTÆ23Å THEN PLOTDEF┆ 0x4dcc0…4dce0 49 4e 54 5b 32 33 5d 3a 3d 42 79 74 65 54 69 74 6c 65 5b 30 5d 3b 0d 0a 50 4c 4f 54 44 45 46 49 ┆INTÆ23Å:=ByteTitleÆ0Å; PLOTDEFI┆ 0x4dce0…4dd00 4e 54 5b 33 32 5d 3a 3d 31 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4c 45 ┆NTÆ32Å:=1; END; PROCEDURE LE┆ 0x4dd00…4dd20 47 45 4e 44 28 54 69 74 6c 65 3a 20 53 74 72 38 30 3b 4c 45 47 4e 55 4d 42 45 52 2c 4c 54 59 50 ┆GEND(Title: Str80;LEGNUMBER,LTYP┆ 0x4dd20…4dd40 45 2c 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 58 52 45 4c 2c 4c 45 ┆E,SYMBOL: INTEGER); VAR XREL,LE┆ 0x4dd40…4dd60 47 53 2c 58 2c 59 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 4c 45 47 53 3a 3d 50 ┆GS,X,Y: INTEGER; BEGIN LEGS:=P┆ 0x4dd60…4dd80 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 4d 4f 44 20 31 30 3b 0d 0a 49 46 20 28 50 4c 4f 54 44 ┆LOTDEFINTÆ22Å MOD 10; IF (PLOTD┆ 0x4dd80…4dda0 45 46 49 4e 54 5b 32 32 5d 20 44 49 56 20 31 30 29 3d 30 20 54 48 45 4e 0d 0a 20 58 52 45 4c 3a ┆EFINTÆ22Å DIV 10)=0 THEN XREL:┆ 0x4dda0…4ddc0 3d 52 4f 55 4e 44 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 ┆=ROUND((PLOTDEFINTÆ8Å+PLOTDEFINT┆ 0x4ddc0…4dde0 5b 31 30 5d 2d 32 2a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 29 0d 0a 45 4c ┆Æ10Å-2*PLOTDEFINTÆ20Å)/LEGS) EL┆ 0x4dde0…4de00 53 45 20 58 52 45 4c 3a 3d 52 4f 55 4e 44 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 50 ┆SE XREL:=ROUND((PLOTDEFINTÆ10Å-P┆ 0x4de00…4de20 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 29 3b 0d 0a 58 3a 3d 50 4c 4f 54 44 45 ┆LOTDEFINTÆ20Å)/LEGS); X:=PLOTDE┆ 0x4de20…4de40 46 49 4e 54 5b 32 30 5d 2b 58 52 45 4c 2a 28 28 4c 45 47 4e 55 4d 42 45 52 2d 31 29 20 4d 4f 44 ┆FINTÆ20Å+XREL*((LEGNUMBER-1) MOD┆ 0x4de40…4de60 20 4c 45 47 53 29 3b 0d 0a 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 31 5d 2d 72 6f 75 6e 64 ┆ LEGS); Y:=PLOTDEFINTÆ21Å-round┆ 0x4de60…4de80 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 28 4c 45 47 4e 55 4d 42 45 52 2d 31 29 20 ┆(PlotDefRealÆ21Å*((LEGNUMBER-1) ┆ 0x4de80…4dea0 44 49 56 20 4c 45 47 53 29 29 3b 0d 0a 4d 41 4b 45 4f 52 44 49 4e 41 52 59 4c 45 47 45 4e 44 28 ┆DIV LEGS)); MAKEORDINARYLEGEND(┆ 0x4dea0…4dec0 58 2c 59 2c 4c 54 59 50 45 2c 53 59 4d 42 4f 4c 2c 54 49 54 4c 45 29 3b 0d 0a 49 46 20 4c 45 47 ┆X,Y,LTYPE,SYMBOL,TITLE); IF LEG┆ 0x4dec0…4dee0 4e 55 4d 42 45 52 3e 50 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 20 54 48 45 4e 20 50 4c 4f 54 44 ┆NUMBER>PLOTDEFINTÆ24Å THEN PLOTD┆ 0x4dee0…4df00 45 46 49 4e 54 5b 32 34 5d 3a 3d 4c 45 47 4e 55 4d 42 45 52 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆EFINTÆ24Å:=LEGNUMBER; END; P┆ 0x4df00…4df20 52 4f 43 45 44 55 52 45 20 50 41 54 54 45 52 4e 4c 45 47 45 4e 44 28 54 69 74 6c 65 3a 20 53 74 ┆ROCEDURE PATTERNLEGEND(Title: St┆ 0x4df20…4df40 72 38 30 3b 4c 45 47 4e 55 4d 42 45 52 2c 50 41 54 54 45 52 4e 3a 20 49 4e 54 45 47 45 52 29 3b ┆r80;LEGNUMBER,PATTERN: INTEGER);┆ 0x4df40…4df60 0d 0a 56 41 52 20 58 52 45 4c 2c 4c 45 47 53 2c 58 2c 59 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 ┆ VAR XREL,LEGS,X,Y: INTEGER; B┆ 0x4df60…4df80 45 47 49 4e 0d 0a 4c 45 47 53 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 4d 4f 44 20 31 ┆EGIN LEGS:=PLOTDEFINTÆ22Å MOD 1┆ 0x4df80…4dfa0 30 3b 0d 0a 49 46 20 28 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 44 49 56 20 31 30 29 3d 30 ┆0; IF (PLOTDEFINTÆ22Å DIV 10)=0┆ 0x4dfa0…4dfc0 20 54 48 45 4e 0d 0a 20 58 52 45 4c 3a 3d 52 4f 55 4e 44 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b ┆ THEN XREL:=ROUND((PLOTDEFINTÆ┆ 0x4dfc0…4dfe0 38 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 32 2a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 ┆8Å+PLOTDEFINTÆ10Å-2*PLOTDEFINTÆ2┆ 0x4dfe0…4e000 30 5d 29 2f 4c 45 47 53 29 0d 0a 45 4c 53 45 20 58 52 45 4c 3a 3d 52 4f 55 4e 44 28 28 50 4c 4f ┆0Å)/LEGS) ELSE XREL:=ROUND((PLO┆ 0x4e000…4e020 (31, 0, 3) 54 44 45 46 49 4e 54 5b 31 30 5d 2d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 ┆TDEFINTÆ10Å-PLOTDEFINTÆ20Å)/LEGS┆ 0x4e020…4e040 29 3b 0d 0a 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 2b 58 52 45 4c 2a 28 28 4c 45 47 ┆); X:=PLOTDEFINTÆ20Å+XREL*((LEG┆ 0x4e040…4e060 4e 55 4d 42 45 52 2d 31 29 20 4d 4f 44 20 4c 45 47 53 29 3b 0d 0a 59 3a 3d 50 4c 4f 54 44 45 46 ┆NUMBER-1) MOD LEGS); Y:=PLOTDEF┆ 0x4e060…4e080 49 4e 54 5b 32 31 5d 2d 32 35 30 2a 28 28 4c 45 47 4e 55 4d 42 45 52 2d 31 29 20 44 49 56 20 4c ┆INTÆ21Å-250*((LEGNUMBER-1) DIV L┆ 0x4e080…4e0a0 45 47 53 29 3b 0d 0a 4d 41 4b 45 50 41 54 54 45 52 4e 4c 45 47 45 4e 44 28 58 2c 59 2c 50 41 54 ┆EGS); MAKEPATTERNLEGEND(X,Y,PAT┆ 0x4e0a0…4e0c0 54 45 52 4e 2c 54 49 54 4c 45 29 3b 0d 0a 49 46 20 4c 45 47 4e 55 4d 42 45 52 3e 50 4c 4f 54 44 ┆TERN,TITLE); IF LEGNUMBER>PLOTD┆ 0x4e0c0…4e0e0 45 46 49 4e 54 5b 32 34 5d 20 54 48 45 4e 20 50 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 3a 3d 4c ┆EFINTÆ24Å THEN PLOTDEFINTÆ24Å:=L┆ 0x4e0e0…4e100 45 47 4e 55 4d 42 45 52 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4c 45 47 ┆EGNUMBER; END; PROCEDURE LEG┆ 0x4e100…4e120 45 4e 44 46 52 41 4d 45 3b 0d 0a 56 41 52 20 50 4f 53 41 52 3a 20 41 52 52 41 59 20 5b 31 2e 2e ┆ENDFRAME; VAR POSAR: ARRAY Æ1..┆ 0x4e120…4e140 34 5d 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 4c 45 47 53 3a 20 49 4e 54 45 47 45 ┆4Å OF INTEGER; LEGS: INTEGE┆ 0x4e140…4e160 52 3b 0d 0a 20 20 20 20 58 52 45 4c 2c 59 52 45 4c 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d ┆R; XREL,YREL: REAL; BEGIN ┆ 0x4e160…4e180 0a 49 46 20 50 4c 4f 54 44 45 46 49 4e 54 5b 33 32 5d 3d 30 20 54 48 45 4e 20 59 52 45 4c 3a 3d ┆ IF PLOTDEFINTÆ32Å=0 THEN YREL:=┆ 0x4e180…4e1a0 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 0d 0a 45 4c 53 45 20 59 52 45 4c 3a 3d 32 35 30 3b ┆PlotDefRealÆ21Å ELSE YREL:=250;┆ 0x4e1a0…4e1c0 0d 0a 50 4f 53 41 52 5b 31 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 2d 52 4f 55 4e 44 ┆ POSARÆ1Å:=PLOTDEFINTÆ20Å-ROUND┆ 0x4e1c0…4e1e0 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 3b 0d 0a 50 4f 53 41 52 5b 32 5d 3a 3d 50 4c ┆(PlotDefRealÆ20Å); POSARÆ2Å:=PL┆ 0x4e1e0…4e200 4f 54 44 45 46 49 4e 54 5b 32 31 5d 2b 52 4f 55 4e 44 28 59 52 45 4c 2a 33 2f 34 29 3b 0d 0a 4c ┆OTDEFINTÆ21Å+ROUND(YREL*3/4); L┆ 0x4e200…4e220 45 47 53 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 4d 4f 44 20 31 30 3b 0d 0a 49 46 20 ┆EGS:=PLOTDEFINTÆ22Å MOD 10; IF ┆ 0x4e220…4e240 28 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 44 49 56 20 31 30 29 3d 30 20 54 48 45 4e 0d 0a ┆(PLOTDEFINTÆ22Å DIV 10)=0 THEN ┆ 0x4e240…4e260 20 58 52 45 4c 3a 3d 28 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 ┆ XREL:=(PLOTDEFINTÆ8Å+PLOTDEFINT┆ 0x4e260…4e280 5b 31 30 5d 2d 32 2a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 0d 0a 45 4c 53 ┆Æ10Å-2*PLOTDEFINTÆ20Å)/LEGS ELS┆ 0x4e280…4e2a0 45 20 58 52 45 4c 3a 3d 28 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 50 4c 4f 54 44 45 46 49 ┆E XREL:=(PLOTDEFINTÆ10Å-PLOTDEFI┆ 0x4e2a0…4e2c0 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 3b 0d 0a 50 4f 53 41 52 5b 34 5d 3a 3d 50 4c 4f 54 44 45 46 ┆NTÆ20Å)/LEGS; POSARÆ4Å:=PLOTDEF┆ 0x4e2c0…4e2e0 49 4e 54 5b 32 31 5d 2d 52 4f 55 4e 44 28 59 52 45 4c 2a 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b ┆INTÆ21Å-ROUND(YREL*((PLOTDEFINTÆ┆ 0x4e2e0…4e300 32 34 5d 2d 31 29 20 44 49 56 20 4c 45 47 53 29 2b 59 52 45 4c 2a 33 2f 34 29 3b 0d 0a 49 46 20 ┆24Å-1) DIV LEGS)+YREL*3/4); IF ┆ 0x4e300…4e320 50 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 3c 4c 45 47 53 20 54 48 45 4e 20 4c 45 47 53 3a 3d 50 ┆PLOTDEFINTÆ24Å<LEGS THEN LEGS:=P┆ 0x4e320…4e340 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 3b 0d 0a 50 4f 53 41 52 5b 33 5d 3a 3d 50 4c 4f 54 44 45 ┆LOTDEFINTÆ24Å; POSARÆ3Å:=PLOTDE┆ 0x4e340…4e360 46 49 4e 54 5b 32 30 5d 2b 0d 0a 20 20 20 20 20 20 20 20 20 20 52 4f 55 4e 44 28 58 52 45 4c 2a ┆FINTÆ20Å+ ROUND(XREL*┆ 0x4e360…4e380 28 4c 45 47 53 2d 31 29 2b 34 30 30 2b 28 50 4c 4f 54 44 45 46 49 4e 54 5b 32 33 5d 2b 32 29 2a ┆(LEGS-1)+400+(PLOTDEFINTÆ23Å+2)*┆ 0x4e380…4e3a0 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 3b 0d 0a 49 46 20 50 4f 53 41 52 5b 33 5d 3e 50 ┆PlotDefRealÆ20Å); IF POSARÆ3Å>P┆ 0x4e3a0…4e3c0 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 20 54 48 45 4e 20 50 4f 53 41 52 5b 33 5d 3a 3d 50 4c 4f ┆LOTDEFINTÆ10Å THEN POSARÆ3Å:=PLO┆ 0x4e3c0…4e3e0 54 44 45 46 49 4e 54 5b 31 30 5d 3b 0d 0a 49 46 20 50 4f 53 41 52 5b 34 5d 3e 50 4c 4f 54 44 45 ┆TDEFINTÆ10Å; IF POSARÆ4Å>PLOTDE┆ 0x4e3e0…4e400 46 49 4e 54 5b 31 31 5d 20 54 48 45 4e 20 50 4f 53 41 52 5b 34 5d 3a 3d 50 4c 4f 54 44 45 46 49 ┆FINTÆ11Å THEN POSARÆ4Å:=PLOTDEFI┆ 0x4e400…4e420 (31, 0, 4) 4e 54 5b 31 31 5d 3b 0d 0a 4d 61 72 6b 52 65 63 74 61 6e 67 6c 65 28 50 6f 73 41 72 5b 31 5d 2c ┆NTÆ11Å; MarkRectangle(PosArÆ1Å,┆ 0x4e420…4e440 50 6f 73 41 72 5b 32 5d 2c 50 6f 73 41 72 5b 33 5d 2d 50 6f 73 41 72 5b 31 5d 2c 50 6f 73 41 72 ┆PosArÆ2Å,PosArÆ3Å-PosArÆ1Å,PosAr┆ 0x4e440…4e460 5b 34 5d 2d 50 6f 73 41 72 5b 32 5d 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆Æ4Å-PosArÆ2Å); END; PROCEDUR┆ 0x4e460…4e480 45 20 50 4c 4f 54 4c 49 4e 45 28 58 43 4d 2c 59 43 4d 3a 20 52 45 41 4c 3b 44 4f 57 4e 3a 20 42 ┆E PLOTLINE(XCM,YCM: REAL;DOWN: B┆ 0x4e480…4e4a0 6f 6f 6c 65 61 6e 29 3b 0d 0a 42 45 47 49 4e 0d 0a 49 46 20 44 4f 57 4e 20 54 48 45 4e 20 50 65 ┆oolean); BEGIN IF DOWN THEN Pe┆ 0x4e4a0…4e4c0 6e 44 6f 77 6e 20 45 4c 53 45 20 50 65 6e 55 70 3b 0d 0a 50 4c 54 4c 49 4e 45 28 50 4c 4f 54 44 ┆nDown ELSE PenUp; PLTLINE(PLOTD┆ 0x4e4c0…4e4e0 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 58 43 4d 2a 34 30 30 29 2c 50 4c 4f 54 44 45 46 49 ┆EFINTÆ8Å+ROUND(XCM*400),PLOTDEFI┆ 0x4e4e0…4e500 4e 54 5b 39 5d 2b 52 4f 55 4e 44 28 59 43 4d 2a 34 30 30 29 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆NTÆ9Å+ROUND(YCM*400)); END; ┆ 0x4e500…4e520 50 52 4f 43 45 44 55 52 45 20 50 4c 4f 54 4d 41 52 4b 45 52 28 58 43 4d 2c 59 43 4d 3a 20 49 4e ┆PROCEDURE PLOTMARKER(XCM,YCM: IN┆ 0x4e520…4e540 54 45 47 45 52 3b 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a ┆TEGER;SYMBOL: INTEGER); BEGIN ┆ 0x4e540…4e560 4d 41 52 4b 45 52 28 58 43 4d 2c 59 43 4d 2c 53 59 4d 42 4f 4c 29 3b 0d 0a 45 4e 44 3b 0d 0a 00 ┆MARKER(XCM,YCM,SYMBOL); END; ┆ 0x4e560…4e580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x4e580…4e5a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x13…] 0x4e800…4e820 (31, 0, 5) 7b 4a 45 4f 20 38 35 30 37 33 30 20 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 20 48 65 72 63 47 72 61 70 ┆æJEO 850730 å const HercGrap┆ 0x4e820…4e840 68 54 61 62 6c 65 20 3a 20 61 72 72 61 79 20 5b 31 2e 2e 31 32 5d 20 6f 66 20 62 79 74 65 20 3d ┆hTable : array Æ1..12Å of byte =┆ 0x4e840…4e860 20 28 0d 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 24 33 35 2c ┆ ( $35,┆ 0x4e860…4e880 24 32 44 2c 24 32 45 2c 24 30 37 2c 24 35 42 2c 24 30 32 2c 24 35 37 2c 24 35 37 2c 24 30 32 2c ┆$2D,$2E,$07,$5B,$02,$57,$57,$02,┆ 0x4e880…4e8a0 24 30 33 2c 24 30 31 2c 24 30 43 29 3b 0d 0a 63 6f 6e 73 74 20 20 48 65 72 63 54 65 78 74 54 61 ┆$03,$01,$0C); const HercTextTa┆ 0x4e8a0…4e8c0 62 6c 65 20 20 3a 20 61 72 72 61 79 20 5b 31 2e 2e 31 32 5d 20 6f 66 20 62 79 74 65 20 3d 20 28 ┆ble : array Æ1..12Å of byte = (┆ 0x4e8c0…4e8e0 0d 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 24 36 31 2c 24 35 ┆ $61,$5┆ 0x4e8e0…4e900 30 2c 24 35 32 2c 24 30 46 2c 24 31 39 2c 24 30 36 2c 24 31 39 2c 24 31 39 2c 24 30 32 2c 24 30 ┆0,$52,$0F,$19,$06,$19,$19,$02,$0┆ 0x4e900…4e920 44 2c 24 30 42 2c 24 30 43 29 3b 0d 0a 0d 0a 74 79 70 65 20 47 72 61 70 68 69 63 46 6f 6e 74 20 ┆D,$0B,$0C); type GraphicFont ┆ 0x4e920…4e940 3d 20 61 72 72 61 79 20 5b 30 2e 2e 33 31 5d 20 6f 66 20 69 6e 74 65 67 65 72 3b 0d 0a 0d 0a 76 ┆= array Æ0..31Å of integer; v┆ 0x4e940…4e960 61 72 20 50 4c 4f 54 43 4f 55 4e 54 2c 50 4c 4f 54 4c 49 4e 45 53 3a 20 49 4e 54 45 47 45 52 3b ┆ar PLOTCOUNT,PLOTLINES: INTEGER;┆ 0x4e960…4e980 0d 0a 20 20 20 20 50 4c 4f 54 44 45 46 49 4e 54 3a 20 41 52 52 41 59 20 5b 31 2e 2e 33 32 5d 20 ┆ PLOTDEFINT: ARRAY Æ1..32Å ┆ 0x4e980…4e9a0 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 50 4c 4f 54 44 45 46 52 45 41 4c 3a 20 41 52 ┆OF INTEGER; PLOTDEFREAL: AR┆ 0x4e9a0…4e9c0 52 41 59 20 5b 31 2e 2e 32 34 5d 20 4f 46 20 52 45 41 4c 3b 0d 0a 20 20 20 20 50 4c 4f 54 46 49 ┆RAY Æ1..24Å OF REAL; PLOTFI┆ 0x4e9c0…4e9e0 4c 45 3a 20 54 45 58 54 3b 0d 0a 20 20 20 20 48 43 44 65 66 49 6e 74 3a 20 61 72 72 61 79 20 5b ┆LE: TEXT; HCDefInt: array Æ┆ 0x4e9e0…4ea00 31 2e 2e 31 30 5d 20 6f 66 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 48 43 44 65 66 52 65 61 ┆1..10Å of integer; HCDefRea┆ 0x4ea00…4ea20 6c 3a 20 61 72 72 61 79 20 5b 31 2e 2e 31 30 5d 20 6f 66 20 72 65 61 6c 3b 0d 0a 20 20 20 20 48 ┆l: array Æ1..10Å of real; H┆ 0x4ea20…4ea40 43 46 6f 6e 74 3a 20 47 72 61 70 68 69 63 46 6f 6e 74 3b 0d 0a 20 20 20 20 48 43 46 6f 6e 74 46 ┆CFont: GraphicFont; HCFontF┆ 0x4ea40…4ea60 69 6c 65 3a 20 66 69 6c 65 20 6f 66 20 47 72 61 70 68 69 63 46 6f 6e 74 3b 0d 0a 0d 0a 50 52 4f ┆ile: file of GraphicFont; PRO┆ 0x4ea60…4ea80 43 45 44 55 52 45 20 4d 61 72 6b 52 65 63 74 61 6e 67 6c 65 28 58 6c 6f 77 2c 59 6c 6f 77 2c 58 ┆CEDURE MarkRectangle(Xlow,Ylow,X┆ 0x4ea80…4eaa0 73 69 7a 65 2c 59 73 69 7a 65 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆size,Ysize: integer); BEGIN ┆ 0x4eaa0…4eac0 6d 6f 76 65 74 6f 28 58 6c 6f 77 2c 59 6c 6f 77 29 3b 0d 0a 20 20 64 72 61 77 74 6f 28 58 6c 6f ┆moveto(Xlow,Ylow); drawto(Xlo┆ 0x4eac0…4eae0 77 2c 59 6c 6f 77 2b 59 73 69 7a 65 29 3b 0d 0a 20 20 64 72 61 77 74 6f 28 58 6c 6f 77 2b 58 73 ┆w,Ylow+Ysize); drawto(Xlow+Xs┆ 0x4eae0…4eb00 69 7a 65 2c 59 6c 6f 77 2b 59 73 69 7a 65 29 3b 0d 0a 20 20 64 72 61 77 74 6f 28 58 6c 6f 77 2b ┆ize,Ylow+Ysize); drawto(Xlow+┆ 0x4eb00…4eb20 58 73 69 7a 65 2c 59 6c 6f 77 29 3b 0d 0a 20 20 64 72 61 77 74 6f 28 58 6c 6f 77 2c 59 6c 6f 77 ┆Xsize,Ylow); drawto(Xlow,Ylow┆ 0x4eb20…4eb40 29 3b 0d 0a 20 20 50 65 6e 55 70 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆); PenUp; END; PROCEDURE ┆ 0x4eb40…4eb60 6d 61 72 6b 63 69 72 63 6c 65 28 78 2c 79 2c 72 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d ┆markcircle(x,y,r: REAL); BEGIN ┆ 0x4eb60…4eb80 0a 20 20 63 69 72 63 6c 65 28 78 2c 79 2c 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆ circle(x,y,r); END; PROCE┆ 0x4eb80…4eba0 44 55 52 45 20 6d 61 72 6b 77 65 67 64 65 0d 0a 28 78 63 65 6e 74 65 72 2c 79 63 65 6e 74 65 72 ┆DURE markwegde (xcenter,ycenter┆ 0x4eba0…4ebc0 2c 72 61 64 69 75 73 2c 73 74 61 72 74 61 6e 67 6c 65 2c 73 77 65 65 70 61 6e 67 6c 65 2c 63 68 ┆,radius,startangle,sweepangle,ch┆ 0x4ebc0…4ebe0 6f 72 64 61 6e 67 6c 65 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 43 4f 4e 53 54 20 50 68 69 20 3d ┆ordangle: INTEGER); CONST Phi =┆ 0x4ebe0…4ec00 20 33 2e 31 34 3b 0d 0a 56 41 52 0d 0a 20 20 4e 75 6d 2c 49 20 3a 20 49 6e 74 65 67 65 72 3b 0d ┆ 3.14; VAR Num,I : Integer; ┆ 0x4ec00…4ec20 (31, 1, 1) 0a 20 20 20 20 46 61 63 20 3a 20 52 65 61 6c 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 61 63 3a 3d ┆ Fac : Real; BEGIN Fac:=┆ 0x4ec20…4ec40 50 68 69 2f 31 38 30 2e 30 3b 0d 0a 20 20 4e 75 6d 3a 3d 53 77 65 65 70 41 6e 67 6c 65 20 64 69 ┆Phi/180.0; Num:=SweepAngle di┆ 0x4ec40…4ec60 76 20 43 68 6f 72 64 41 6e 67 6c 65 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 43 65 6e 74 65 72 2b ┆v ChordAngle; moveto(XCenter+┆ 0x4ec60…4ec80 72 6f 75 6e 64 28 63 6f 73 28 53 74 61 72 74 41 6e 67 6c 65 2a 46 61 63 29 2a 52 61 64 69 75 73 ┆round(cos(StartAngle*Fac)*Radius┆ 0x4ec80…4eca0 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 59 43 65 6e 74 65 72 2b 72 6f 75 6e 64 28 73 69 ┆), YCenter+round(si┆ 0x4eca0…4ecc0 6e 28 53 74 61 72 74 41 6e 67 6c 65 2a 46 61 63 29 2a 52 61 64 69 75 73 29 29 3b 0d 0a 20 20 46 ┆n(StartAngle*Fac)*Radius)); F┆ 0x4ecc0…4ece0 4f 52 20 49 3a 3d 31 20 54 4f 20 4e 75 6d 20 64 6f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆OR I:=1 TO Num do BEGIN ┆ 0x4ece0…4ed00 64 72 61 77 74 6f 28 58 43 65 6e 74 65 72 2b 72 6f 75 6e 64 28 63 6f 73 28 28 53 74 61 72 74 41 ┆drawto(XCenter+round(cos((StartA┆ 0x4ed00…4ed20 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 29 2a 52 61 64 69 75 73 29 2c ┆ngle+i*ChordAngle)*Fac)*Radius),┆ 0x4ed20…4ed40 0d 0a 20 20 20 20 20 20 20 20 20 20 59 43 65 6e 74 65 72 2b 72 6f 75 6e 64 28 73 69 6e 28 28 53 ┆ YCenter+round(sin((S┆ 0x4ed40…4ed60 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 29 2a 52 61 64 ┆tartAngle+i*ChordAngle)*Fac)*Rad┆ 0x4ed60…4ed80 69 75 73 29 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 43 65 6e 74 65 72 ┆ius)); END; moveto(XCenter┆ 0x4ed80…4eda0 2c 59 43 65 6e 74 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 46 49 ┆,YCenter); END; PROCEDURE FI┆ 0x4eda0…4edc0 4c 4c 57 45 44 47 45 28 58 43 45 4e 54 45 52 2c 59 43 45 4e 54 45 52 2c 52 41 44 49 55 53 2c 53 ┆LLWEDGE(XCENTER,YCENTER,RADIUS,S┆ 0x4edc0…4ede0 54 41 52 54 41 4e 47 4c 45 2c 53 57 45 45 50 41 4e 47 4c 45 2c 43 48 4f 52 44 41 4e 47 4c 45 3a ┆TARTANGLE,SWEEPANGLE,CHORDANGLE:┆ 0x4ede0…4ee00 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 41 43 45 55 50 28 58 43 45 4e 54 ┆ INTEGER); BEGIN PLACEUP(XCENT┆ 0x4ee00…4ee20 45 52 2c 59 43 45 4e 54 45 52 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆ER,YCENTER); END; PROCEDURE ┆ 0x4ee20…4ee40 4d 41 52 4b 53 59 4d 42 4f 4c 4d 4f 44 45 28 58 2c 59 2c 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 ┆MARKSYMBOLMODE(X,Y,SYMBOL: INTEG┆ 0x4ee40…4ee60 45 52 29 3b 0d 0a 56 41 52 20 4f 4c 44 57 2c 4f 4c 44 48 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 ┆ER); VAR OLDW,OLDH: REAL; BEGI┆ 0x4ee60…4ee80 4e 0d 0a 4f 4c 44 57 3a 3d 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 5d 3b 0d 0a 4f 4c 44 48 3a 3d ┆N OLDW:=PLOTDEFREALÆ1Å; OLDH:=┆ 0x4ee80…4eea0 50 4c 4f 54 44 45 46 52 45 41 4c 5b 32 5d 3b 0d 0a 43 48 41 52 53 49 5a 45 28 50 4c 4f 54 44 45 ┆PLOTDEFREALÆ2Å; CHARSIZE(PLOTDE┆ 0x4eea0…4eec0 46 52 45 41 4c 5b 33 5d 29 3b 0d 0a 45 4e 44 3b 0d 0a 28 2a 20 4a 45 4f 20 38 35 30 37 32 37 20 ┆FREALÆ3Å); END; (* JEO 850727 ┆ 0x4eec0…4eee0 2a 29 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 ┆*) FUNCTION CONVERTSCALE(DATA┆ 0x4eee0…4ef00 50 4f 53 3a 20 52 45 41 4c 3b 58 59 3a 20 49 4e 54 45 47 45 52 29 3a 20 49 4e 54 45 47 45 52 3b ┆POS: REAL;XY: INTEGER): INTEGER;┆ 0x4ef00…4ef20 0d 0a 76 61 72 20 4d 69 64 3a 20 52 65 61 6c 3b 0d 0a 42 45 47 49 4e 0d 0a 4d 69 64 3a 3d 50 6c ┆ var Mid: Real; BEGIN Mid:=Pl┆ 0x4ef20…4ef40 6f 74 44 65 66 52 65 61 6c 5b 33 2b 34 2a 58 59 5d 2a 28 44 61 74 61 50 6f 73 2d 50 6c 6f 74 44 ┆otDefRealÆ3+4*XYÅ*(DataPos-PlotD┆ 0x4ef40…4ef60 65 66 52 65 61 6c 5b 31 33 2b 58 59 5d 29 3b 0d 0a 69 66 20 28 4d 69 64 3e 2d 33 32 37 36 37 29 ┆efRealÆ13+XYÅ); if (Mid>-32767)┆ 0x4ef60…4ef80 20 61 6e 64 20 28 4d 69 64 3c 33 32 37 36 37 29 20 74 68 65 6e 0d 0a 20 43 4f 4e 56 45 52 54 53 ┆ and (Mid<32767) then CONVERTS┆ 0x4ef80…4efa0 43 41 4c 45 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 33 2b 58 59 5d 2b 52 4f 55 4e 44 28 4d 69 ┆CALE:=PLOTDEFINTÆ13+XYÅ+ROUND(Mi┆ 0x4efa0…4efc0 64 29 0d 0a 65 6c 73 65 20 43 6f 6e 76 65 72 74 53 63 61 6c 65 3a 3d 4d 69 73 49 6e 74 0d 0a 45 ┆d) else ConvertScale:=MisInt E┆ 0x4efc0…4efe0 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 53 54 49 54 4c 45 50 4c 41 43 45 28 ┆ND; PROCEDURE AXISTITLEPLACE(┆ 0x4efe0…4f000 50 4c 41 43 45 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 ┆PLACE: INTEGER); BEGIN PLOTDEF┆ 0x4f000…4f020 (31, 1, 2) 49 4e 54 5b 32 39 5d 3a 3d 50 4c 41 43 45 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆INTÆ29Å:=PLACE; END; PROCEDU┆ 0x4f020…4f040 52 45 20 4d 41 52 47 49 4e 28 4c 4f 57 2c 48 49 47 48 3a 20 52 45 41 4c 3b 49 41 58 49 53 3a 20 ┆RE MARGIN(LOW,HIGH: REAL;IAXIS: ┆ 0x4f040…4f060 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 31 33 2b ┆INTEGER); BEGIN PLOTDEFINTÆ13+┆ 0x4f060…4f080 49 41 58 49 53 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 37 2b 49 41 58 49 53 5d 2b 52 4f 55 4e ┆IAXISÅ:=PLOTDEFINTÆ7+IAXISÅ+ROUN┆ 0x4f080…4f0a0 44 28 4c 4f 57 2a 34 30 30 29 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 31 35 2b 49 41 58 49 53 ┆D(LOW*400); PLOTDEFINTÆ15+IAXIS┆ 0x4f0a0…4f0c0 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 39 2b 49 41 58 49 53 5d 2d 52 4f 55 4e 44 28 48 49 47 ┆Å:=PLOTDEFINTÆ9+IAXISÅ-ROUND(HIG┆ 0x4f0c0…4f0e0 48 2a 34 30 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 53 53 ┆H*400); END; PROCEDURE AXISS┆ 0x4f0e0…4f100 50 41 43 45 28 4c 4f 57 2c 48 49 47 48 3a 20 52 45 41 4c 3b 49 41 58 49 53 3a 20 49 4e 54 45 47 ┆PACE(LOW,HIGH: REAL;IAXIS: INTEG┆ 0x4f100…4f120 45 52 29 3b 0d 0a 76 61 72 20 49 41 78 69 73 32 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 ┆ER); var IAxis2: integer; BEGI┆ 0x4f120…4f140 4e 0d 0a 49 41 78 69 73 32 3a 3d 61 62 73 28 49 41 78 69 73 29 2a 32 3b 0d 0a 50 4c 4f 54 44 45 ┆N IAxis2:=abs(IAxis)*2; PLOTDE┆ 0x4f140…4f160 46 52 45 41 4c 5b 31 34 2b 49 41 78 69 73 32 5d 3a 3d 4c 4f 57 3b 0d 0a 50 4c 4f 54 44 45 46 52 ┆FREALÆ14+IAxis2Å:=LOW; PLOTDEFR┆ 0x4f160…4f180 45 41 4c 5b 31 35 2b 49 41 78 69 73 32 5d 3a 3d 48 49 47 48 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 70 ┆EALÆ15+IAxis2Å:=HIGH; END; p┆ 0x4f180…4f1a0 72 6f 63 65 64 75 72 65 20 44 65 66 69 6e 65 46 69 67 75 72 65 28 50 65 6e 2c 50 61 70 65 72 53 ┆rocedure DefineFigure(Pen,PaperS┆ 0x4f1a0…4f1c0 69 7a 65 2c 41 78 54 69 74 50 6c 61 63 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 20 20 20 ┆ize,AxTitPlac: integer; ┆ 0x4f1c0…4f1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 53 69 7a 65 2c 59 53 69 7a 65 2c 4b 61 72 53 ┆ XSize,YSize,KarS┆ 0x4f1e0…4f200 69 7a 65 2c 4d 61 72 6b 53 69 7a 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ize,MarkSize, ┆ 0x4f200…4f220 20 20 20 20 20 20 4d 61 72 67 53 69 7a 65 2c 4c 6f 77 53 70 61 63 65 2c 48 69 67 68 53 70 61 63 ┆ MargSize,LowSpace,HighSpac┆ 0x4f220…4f240 65 3a 20 72 65 61 6c 29 3b 0d 0a 62 65 67 69 6e 0d 0a 57 69 6e 64 6f 77 28 50 61 70 65 72 53 69 ┆e: real); begin Window(PaperSi┆ 0x4f240…4f260 7a 65 2c 30 2c 30 2c 58 53 69 7a 65 2c 59 53 69 7a 65 29 3b 0d 0a 43 68 61 72 53 69 7a 65 28 4b ┆ze,0,0,XSize,YSize); CharSize(K┆ 0x4f260…4f280 61 72 53 69 7a 65 29 3b 0d 0a 4d 61 72 6b 65 72 53 69 7a 65 28 4d 61 72 6b 53 69 7a 65 29 3b 0d ┆arSize); MarkerSize(MarkSize); ┆ 0x4f280…4f2a0 0a 4d 61 72 67 69 6e 28 4d 61 72 67 53 69 7a 65 2c 4d 61 72 67 53 69 7a 65 2c 31 29 3b 0d 0a 4d ┆ Margin(MargSize,MargSize,1); M┆ 0x4f2a0…4f2c0 61 72 67 69 6e 28 4d 61 72 67 53 69 7a 65 2c 4d 61 72 67 53 69 7a 65 2c 32 29 3b 0d 0a 41 78 69 ┆argin(MargSize,MargSize,2); Axi┆ 0x4f2c0…4f2e0 73 54 69 74 6c 65 50 6c 61 63 65 28 41 78 54 69 74 50 6c 61 63 29 3b 0d 0a 41 78 69 73 53 70 61 ┆sTitlePlace(AxTitPlac); AxisSpa┆ 0x4f2e0…4f300 63 65 28 4c 6f 77 53 70 61 63 65 2c 48 69 67 68 53 70 61 63 65 2c 31 29 3b 0d 0a 41 78 69 73 53 ┆ce(LowSpace,HighSpace,1); AxisS┆ 0x4f300…4f320 70 61 63 65 28 4c 6f 77 53 70 61 63 65 2c 48 69 67 68 53 70 61 63 65 2c 32 29 3b 0d 0a 47 65 74 ┆pace(LowSpace,HighSpace,2); Get┆ 0x4f320…4f340 50 65 6e 28 50 65 6e 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 54 41 ┆Pen(Pen); end; PROCEDURE STA┆ 0x4f340…4f360 4e 44 41 52 44 46 49 47 55 52 45 3b 0d 0a 42 45 47 49 4e 0d 0a 44 65 66 69 6e 65 46 69 67 75 72 ┆NDARDFIGURE; BEGIN DefineFigur┆ 0x4f360…4f380 65 28 31 2c 34 2c 33 2c 31 36 2c 31 32 2c 30 2e 38 35 2c 30 2e 37 2c 32 2c 32 2c 30 29 3b 0d 0a ┆e(1,4,3,16,12,0.85,0.7,2,2,0); ┆ 0x4f380…4f3a0 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 45 46 49 4e 45 41 58 49 53 28 41 58 4d ┆END; PROCEDURE DEFINEAXIS(AXM┆ 0x4f3a0…4f3c0 49 4e 2c 41 58 4d 41 58 2c 41 58 53 54 45 50 3a 20 52 45 41 4c 3b 49 41 58 49 53 3a 20 49 4e 54 ┆IN,AXMAX,AXSTEP: REAL;IAXIS: INT┆ 0x4f3c0…4f3e0 45 47 45 52 29 3b 0d 0a 56 41 52 20 49 41 78 69 73 31 2c 49 41 78 69 73 32 2c 49 41 78 69 73 34 ┆EGER); VAR IAxis1,IAxis2,IAxis4┆ 0x4f3e0…4f400 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 50 43 54 2c 53 54 41 52 54 56 41 4c 2c 53 4c 55 ┆: integer; PCT,STARTVAL,SLU┆ 0x4f400…4f420 (31, 1, 3) 54 56 41 4c 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a 3d 61 62 73 28 ┆TVAL: REAL; BEGIN IAxis1:=abs(┆ 0x4f420…4f440 49 41 78 69 73 29 3b 0d 0a 49 41 78 69 73 32 3a 3d 32 2a 49 41 78 69 73 31 3b 0d 0a 49 41 78 69 ┆IAxis); IAxis2:=2*IAxis1; IAxi┆ 0x4f440…4f460 73 34 3a 3d 32 2a 49 41 78 69 73 32 3b 0d 0a 50 43 54 3a 3d 28 41 58 4d 41 58 2d 41 58 4d 49 4e ┆s4:=2*IAxis2; PCT:=(AXMAX-AXMIN┆ 0x4f460…4f480 29 2f 31 30 30 2e 30 3b 0d 0a 53 54 41 52 54 56 41 4c 3a 3d 41 58 4d 49 4e 2d 50 43 54 2a 50 4c ┆)/100.0; STARTVAL:=AXMIN-PCT*PL┆ 0x4f480…4f4a0 4f 54 44 45 46 52 45 41 4c 5b 31 34 2b 49 41 78 69 73 32 5d 3b 0d 0a 53 4c 55 54 56 41 4c 3a 3d ┆OTDEFREALÆ14+IAxis2Å; SLUTVAL:=┆ 0x4f4a0…4f4c0 41 58 4d 41 58 2b 50 43 54 2a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 35 2b 49 41 78 69 73 32 5d ┆AXMAX+PCT*PLOTDEFREALÆ15+IAxis2Å┆ 0x4f4c0…4f4e0 3b 0d 0a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 49 41 78 69 73 34 5d 3a 3d 41 58 4d 49 4e 3b 0d 0a ┆; PLOTDEFREALÆIAxis4Å:=AXMIN; ┆ 0x4f4e0…4f500 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 2b 49 41 78 69 73 34 5d 3a 3d 41 58 4d 41 58 3b 0d 0a 50 ┆PLOTDEFREALÆ1+IAxis4Å:=AXMAX; P┆ 0x4f500…4f520 4c 4f 54 44 45 46 52 45 41 4c 5b 32 2b 49 41 78 69 73 34 5d 3a 3d 41 58 53 54 45 50 3b 0d 0a 50 ┆LOTDEFREALÆ2+IAxis4Å:=AXSTEP; P┆ 0x4f520…4f540 4c 4f 54 44 45 46 52 45 41 4c 5b 33 2b 49 41 78 69 73 34 5d 3a 3d 28 50 4c 4f 54 44 45 46 49 4e ┆LOTDEFREALÆ3+IAxis4Å:=(PLOTDEFIN┆ 0x4f540…4f560 54 5b 31 35 2b 49 41 78 69 73 31 5d 2d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 33 2b 49 41 78 69 73 ┆TÆ15+IAxis1Å-PLOTDEFINTÆ13+IAxis┆ 0x4f560…4f580 31 5d 29 2f 28 53 4c 55 54 56 41 4c 2d 53 54 41 52 54 56 41 4c 29 3b 0d 0a 50 4c 4f 54 44 45 46 ┆1Å)/(SLUTVAL-STARTVAL); PLOTDEF┆ 0x4f580…4f5a0 52 45 41 4c 5b 31 33 2b 49 41 78 69 73 31 5d 3a 3d 53 54 41 52 54 56 41 4c 3b 0d 0a 45 4e 44 3b ┆REALÆ13+IAxis1Å:=STARTVAL; END;┆ 0x4f5a0…4f5c0 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 53 43 4f 4f 52 44 49 4e 41 54 45 53 28 49 41 ┆ PROCEDURE AXISCOORDINATES(IA┆ 0x4f5c0…4f5e0 58 49 53 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆XIS: INTEGER; ┆ 0x4f5e0…4f600 20 20 20 20 20 20 20 20 20 56 41 52 20 58 53 54 41 52 54 2c 59 53 54 41 52 54 2c 54 49 43 4b 53 ┆ VAR XSTART,YSTART,TICKS┆ 0x4f600…4f620 54 41 52 54 2c 53 4c 55 54 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 76 61 72 20 49 41 78 69 73 31 ┆TART,SLUT: INTEGER); var IAxis1┆ 0x4f620…4f640 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a 3d 61 62 73 28 49 ┆: integer; BEGIN IAxis1:=abs(I┆ 0x4f640…4f660 41 78 69 73 29 3b 0d 0a 49 46 20 49 41 58 49 53 3d 2d 32 20 54 48 45 4e 20 58 53 54 41 52 54 3a ┆Axis); IF IAXIS=-2 THEN XSTART:┆ 0x4f660…4f680 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 36 5d 0d 0a 45 4c 53 45 20 58 53 54 41 52 54 3a 3d 50 4c ┆=PLOTDEFINTÆ16Å ELSE XSTART:=PL┆ 0x4f680…4f6a0 4f 54 44 45 46 49 4e 54 5b 31 34 5d 3b 0d 0a 49 46 20 49 41 58 49 53 3d 2d 31 20 54 48 45 4e 20 ┆OTDEFINTÆ14Å; IF IAXIS=-1 THEN ┆ 0x4f6a0…4f6c0 59 53 54 41 52 54 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 37 5d 0d 0a 45 4c 53 45 20 59 53 54 ┆YSTART:=PLOTDEFINTÆ17Å ELSE YST┆ 0x4f6c0…4f6e0 41 52 54 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 35 5d 3b 0d 0a 54 49 43 4b 53 54 41 52 54 3a ┆ART:=PLOTDEFINTÆ15Å; TICKSTART:┆ 0x4f6e0…4f700 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 34 2a 49 41 78 69 ┆=CONVERTSCALE(PLOTDEFREALÆ4*IAxi┆ 0x4f700…4f720 73 31 5d 2c 49 41 78 69 73 31 29 3b 0d 0a 53 4c 55 54 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 ┆s1Å,IAxis1); SLUT:=PLOTDEFINTÆ1┆ 0x4f720…4f740 35 2b 49 41 78 69 73 31 5d 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 41 ┆5+IAxis1Å; END; PROCEDURE MA┆ 0x4f740…4f760 4b 45 41 58 49 53 28 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 4e 55 4d ┆KEAXIS(IAXIS: INTEGER); VAR NUM┆ 0x4f760…4f780 2c 50 4f 53 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 54 2c 49 41 78 69 73 31 2c 49 41 78 69 73 ┆,POS,TICKSTART,SLUT,IAxis1,IAxis┆ 0x4f780…4f7a0 34 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 53 54 41 52 54 3a 20 41 52 52 41 59 20 5b 31 ┆4: INTEGER; START: ARRAY Æ1┆ 0x4f7a0…4f7c0 2e 2e 32 5d 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a ┆..2Å OF INTEGER; BEGIN IAxis1:┆ 0x4f7c0…4f7e0 3d 61 62 73 28 49 41 78 69 73 29 3b 0d 0a 49 41 78 69 73 34 3a 3d 34 2a 49 41 78 69 73 31 3b 0d ┆=abs(IAxis); IAxis4:=4*IAxis1; ┆ 0x4f7e0…4f800 0a 54 49 43 4b 4c 45 4e 47 54 48 28 30 2e 32 2c 49 41 58 49 53 29 3b 0d 0a 41 58 49 53 43 4f 4f ┆ TICKLENGTH(0.2,IAXIS); AXISCOO┆ 0x4f800…4f820 (31, 1, 4) 52 44 49 4e 41 54 45 53 28 49 41 58 49 53 2c 53 54 41 52 54 5b 31 5d 2c 53 54 41 52 54 5b 32 5d ┆RDINATES(IAXIS,STARTÆ1Å,STARTÆ2Å┆ 0x4f820…4f840 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 54 29 3b 0d 0a 50 4c 41 43 45 44 4f 57 4e 28 53 54 41 ┆,TICKSTART,SLUT); PLACEDOWN(STA┆ 0x4f840…4f860 52 54 5b 31 5d 2c 53 54 41 52 54 5b 32 5d 29 3b 0d 0a 49 46 20 49 41 78 69 73 31 3d 31 20 54 48 ┆RTÆ1Å,STARTÆ2Å); IF IAxis1=1 TH┆ 0x4f860…4f880 45 4e 20 50 4c 54 4c 49 4e 45 28 53 4c 55 54 2c 53 54 41 52 54 5b 32 5d 29 0d 0a 45 4c 53 45 20 ┆EN PLTLINE(SLUT,STARTÆ2Å) ELSE ┆ 0x4f880…4f8a0 50 4c 54 4c 49 4e 45 28 53 54 41 52 54 5b 31 5d 2c 53 4c 55 54 29 3b 0d 0a 4e 55 4d 3a 3d 30 3b ┆PLTLINE(STARTÆ1Å,SLUT); NUM:=0;┆ 0x4f8a0…4f8c0 0d 0a 50 4f 53 3a 3d 54 49 43 4b 53 54 41 52 54 3b 0d 0a 57 48 49 4c 45 20 50 4f 53 3c 3d 28 53 ┆ POS:=TICKSTART; WHILE POS<=(S┆ 0x4f8c0…4f8e0 4c 55 54 2b 31 29 20 44 4f 0d 0a 20 42 45 47 49 4e 0d 0a 20 49 46 20 49 41 78 69 73 31 3d 31 20 ┆LUT+1) DO BEGIN IF IAxis1=1 ┆ 0x4f8e0…4f900 54 48 45 4e 20 50 4c 41 43 45 55 50 28 50 4f 53 2c 53 54 41 52 54 5b 32 5d 29 0d 0a 20 45 4c 53 ┆THEN PLACEUP(POS,STARTÆ2Å) ELS┆ 0x4f900…4f920 45 20 50 4c 41 43 45 55 50 28 53 54 41 52 54 5b 31 5d 2c 50 4f 53 29 3b 0d 0a 20 54 49 43 4b 4d ┆E PLACEUP(STARTÆ1Å,POS); TICKM┆ 0x4f920…4f940 41 52 4b 28 49 41 58 49 53 29 3b 0d 0a 20 4e 55 4d 3a 3d 4e 55 4d 2b 31 3b 0d 0a 20 50 4f 53 3a ┆ARK(IAXIS); NUM:=NUM+1; POS:┆ 0x4f940…4f960 3d 54 49 43 4b 53 54 41 52 54 2b 52 4f 55 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 33 2b 49 ┆=TICKSTART+ROUND(PLOTDEFREALÆ3+I┆ 0x4f960…4f980 41 78 69 73 34 5d 2a 4e 55 4d 2a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 32 2b 49 41 78 69 73 34 5d ┆Axis4Å*NUM*PLOTDEFREALÆ2+IAxis4Å┆ 0x4f980…4f9a0 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 ┆); END; END; PROCEDURE AXI┆ 0x4f9a0…4f9c0 53 54 49 43 4b 28 4e 54 49 43 4b 53 2c 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 ┆STICK(NTICKS,IAXIS: INTEGER); V┆ 0x4f9c0…4f9e0 41 52 20 4e 55 4d 2c 50 4f 53 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 54 2c 4e 50 41 52 54 53 ┆AR NUM,POS,TICKSTART,SLUT,NPARTS┆ 0x4f9e0…4fa00 2c 49 41 78 69 73 31 2c 49 41 78 69 73 34 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 53 54 ┆,IAxis1,IAxis4: INTEGER; ST┆ 0x4fa00…4fa20 41 52 54 3a 20 41 52 52 41 59 20 5b 31 2e 2e 32 5d 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆ART: ARRAY Æ1..2Å OF INTEGER; ┆ 0x4fa20…4fa40 20 20 20 44 45 4c 54 41 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a 3d ┆ DELTA: REAL; BEGIN IAxis1:=┆ 0x4fa40…4fa60 61 62 73 28 49 41 78 69 73 29 3b 0d 0a 49 41 78 69 73 34 3a 3d 34 2a 49 41 78 69 73 31 3b 0d 0a ┆abs(IAxis); IAxis4:=4*IAxis1; ┆ 0x4fa60…4fa80 4e 50 41 52 54 53 3a 3d 4e 54 49 43 4b 53 2b 31 3b 0d 0a 54 49 43 4b 4c 45 4e 47 54 48 28 30 2e ┆NPARTS:=NTICKS+1; TICKLENGTH(0.┆ 0x4fa80…4faa0 31 2c 49 41 58 49 53 29 3b 0d 0a 41 58 49 53 43 4f 4f 52 44 49 4e 41 54 45 53 28 49 41 58 49 53 ┆1,IAXIS); AXISCOORDINATES(IAXIS┆ 0x4faa0…4fac0 2c 53 54 41 52 54 5b 31 5d 2c 53 54 41 52 54 5b 32 5d 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 ┆,STARTÆ1Å,STARTÆ2Å,TICKSTART,SLU┆ 0x4fac0…4fae0 54 29 3b 0d 0a 44 45 4c 54 41 3a 3d 50 4c 4f 54 44 45 46 52 45 41 4c 5b 32 2b 49 41 78 69 73 34 ┆T); DELTA:=PLOTDEFREALÆ2+IAxis4┆ 0x4fae0…4fb00 5d 2f 4e 50 41 52 54 53 3b 0d 0a 4e 55 4d 3a 3d 30 3b 0d 0a 50 4f 53 3a 3d 54 49 43 4b 53 54 41 ┆Å/NPARTS; NUM:=0; POS:=TICKSTA┆ 0x4fb00…4fb20 52 54 3b 0d 0a 57 48 49 4c 45 20 50 4f 53 3c 3d 28 53 4c 55 54 2b 31 29 20 44 4f 0d 0a 20 42 45 ┆RT; WHILE POS<=(SLUT+1) DO BE┆ 0x4fb20…4fb40 47 49 4e 0d 0a 20 49 46 20 28 4e 55 4d 20 4d 4f 44 20 4e 50 41 52 54 53 29 3e 30 20 54 48 45 4e ┆GIN IF (NUM MOD NPARTS)>0 THEN┆ 0x4fb40…4fb60 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 49 46 20 49 41 78 69 73 31 3d 31 20 54 48 45 4e 20 50 4c ┆ BEGIN IF IAxis1=1 THEN PL┆ 0x4fb60…4fb80 41 43 45 55 50 28 50 4f 53 2c 53 54 41 52 54 5b 32 5d 29 0d 0a 20 20 45 4c 53 45 20 50 4c 41 43 ┆ACEUP(POS,STARTÆ2Å) ELSE PLAC┆ 0x4fb80…4fba0 45 55 50 28 53 54 41 52 54 5b 31 5d 2c 50 4f 53 29 3b 0d 0a 20 20 54 49 43 4b 4d 41 52 4b 28 49 ┆EUP(STARTÆ1Å,POS); TICKMARK(I┆ 0x4fba0…4fbc0 41 58 49 53 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 4e 55 4d 3a 3d 4e 55 4d 2b 31 3b 0d 0a 20 50 ┆AXIS); END; NUM:=NUM+1; P┆ 0x4fbc0…4fbe0 4f 53 3a 3d 54 49 43 4b 53 54 41 52 54 2b 52 4f 55 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b ┆OS:=TICKSTART+ROUND(PLOTDEFREALÆ┆ 0x4fbe0…4fc00 33 2b 49 41 78 69 73 34 5d 2a 4e 55 4d 2a 44 45 4c 54 41 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e ┆3+IAxis4Å*NUM*DELTA); END; EN┆ 0x4fc00…4fc20 (31, 1, 5) 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 41 58 49 53 4c 41 42 45 4c 28 46 49 45 4c 44 53 ┆D; PROCEDURE AXISLABEL(FIELDS┆ 0x4fc20…4fc40 49 5a 45 2c 44 45 43 49 4d 41 4c 53 2c 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 ┆IZE,DECIMALS,IAXIS: INTEGER); V┆ 0x4fc40…4fc60 41 52 20 53 4c 55 54 2c 58 52 45 4c 2c 59 52 45 4c 2c 4e 55 4d 2c 50 4f 53 2c 54 49 43 4b 53 54 ┆AR SLUT,XREL,YREL,NUM,POS,TICKST┆ 0x4fc60…4fc80 41 52 54 2c 49 41 78 69 73 31 2c 49 41 78 69 73 34 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 ┆ART,IAxis1,IAxis4: INTEGER; ┆ 0x4fc80…4fca0 20 53 54 41 52 54 3a 20 41 52 52 41 59 20 5b 31 2e 2e 32 5d 20 4f 46 20 49 4e 54 45 47 45 52 3b ┆ START: ARRAY Æ1..2Å OF INTEGER;┆ 0x4fca0…4fcc0 0d 0a 20 20 20 20 58 43 53 49 5a 45 2c 59 43 53 49 5a 45 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 ┆ XCSIZE,YCSIZE: REAL; BEGI┆ 0x4fcc0…4fce0 4e 0d 0a 49 41 78 69 73 31 3a 3d 61 62 73 28 49 41 78 69 73 29 3b 0d 0a 49 41 78 69 73 34 3a 3d ┆N IAxis1:=abs(IAxis); IAxis4:=┆ 0x4fce0…4fd00 34 2a 49 41 78 69 73 31 3b 0d 0a 41 58 49 53 43 4f 4f 52 44 49 4e 41 54 45 53 28 49 41 58 49 53 ┆4*IAxis1; AXISCOORDINATES(IAXIS┆ 0x4fd00…4fd20 2c 53 54 41 52 54 5b 31 5d 2c 53 54 41 52 54 5b 32 5d 2c 54 49 43 4b 53 54 41 52 54 2c 53 4c 55 ┆,STARTÆ1Å,STARTÆ2Å,TICKSTART,SLU┆ 0x4fd20…4fd40 54 29 3b 0d 0a 63 61 73 65 20 49 41 78 69 73 20 6f 66 0d 0a 20 2d 32 3a 20 42 45 47 49 4e 0d 0a ┆T); case IAxis of -2: BEGIN ┆ 0x4fd40…4fd60 20 20 20 20 20 58 52 45 4c 3a 3d 52 4f 55 4e 44 28 30 2e 33 33 2a 50 6c 6f 74 44 65 66 52 65 61 ┆ XREL:=ROUND(0.33*PlotDefRea┆ 0x4fd60…4fd80 6c 5b 32 30 5d 29 2b 38 30 3b 0d 0a 20 20 20 20 20 59 52 45 4c 3a 3d 2d 52 4f 55 4e 44 28 30 2e ┆lÆ20Å)+80; YREL:=-ROUND(0.┆ 0x4fd80…4fda0 32 35 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 29 3b 0d 0a 20 20 20 20 20 50 4c 4f 54 44 ┆25*PlotDefRealÆ21Å); PLOTD┆ 0x4fda0…4fdc0 45 46 49 4e 54 5b 31 39 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 36 5d 2b 52 4f 55 4e 44 28 ┆EFINTÆ19Å:=PLOTDEFINTÆ16Å+ROUND(┆ 0x4fdc0…4fde0 46 49 45 4c 44 53 49 5a 45 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 2b 38 30 3b 0d 0a ┆FIELDSIZE*PlotDefRealÆ20Å)+80; ┆ 0x4fde0…4fe00 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 32 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 58 52 45 4c ┆ END; 2: BEGIN XREL┆ 0x4fe00…4fe20 3a 3d 2d 52 4f 55 4e 44 28 46 49 45 4c 44 53 49 5a 45 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 ┆:=-ROUND(FIELDSIZE*PlotDefRealÆ2┆ 0x4fe20…4fe40 30 5d 29 2d 38 30 3b 0d 0a 20 20 20 20 20 59 52 45 4c 3a 3d 2d 52 4f 55 4e 44 28 30 2e 32 35 2a ┆0Å)-80; YREL:=-ROUND(0.25*┆ 0x4fe40…4fe60 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 29 3b 0d 0a 20 20 20 20 20 50 4c 4f 54 44 45 46 49 ┆PlotDefRealÆ21Å); PLOTDEFI┆ 0x4fe60…4fe80 4e 54 5b 31 38 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 34 5d 2b 58 52 45 4c 3b 0d 0a 20 20 ┆NTÆ18Å:=PLOTDEFINTÆ14Å+XREL; ┆ 0x4fe80…4fea0 20 20 20 45 4e 44 3b 0d 0a 20 2d 31 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 58 52 45 4c 3a 3d ┆ END; -1: BEGIN XREL:=┆ 0x4fea0…4fec0 2d 52 4f 55 4e 44 28 30 2e 35 2a 46 49 45 4c 44 53 49 5a 45 2a 50 6c 6f 74 44 65 66 52 65 61 6c ┆-ROUND(0.5*FIELDSIZE*PlotDefReal┆ 0x4fec0…4fee0 5b 32 30 5d 29 3b 0d 0a 20 20 20 20 20 59 52 45 4c 3a 3d 52 4f 55 4e 44 28 30 2e 32 2a 50 6c 6f ┆Æ20Å); YREL:=ROUND(0.2*Plo┆ 0x4fee0…4ff00 74 44 65 66 52 65 61 6c 5b 32 31 5d 29 2b 38 30 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆tDefRealÆ21Å)+80; END; ┆ 0x4ff00…4ff20 31 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 58 52 45 4c 3a 3d 2d 52 4f 55 4e 44 28 30 2e 35 2a ┆1: BEGIN XREL:=-ROUND(0.5*┆ 0x4ff20…4ff40 46 49 45 4c 44 53 49 5a 45 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 3b 0d 0a 20 20 20 ┆FIELDSIZE*PlotDefRealÆ20Å); ┆ 0x4ff40…4ff60 20 20 59 52 45 4c 3a 3d 2d 52 4f 55 4e 44 28 30 2e 37 2a 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 ┆ YREL:=-ROUND(0.7*PlotDefRealÆ2┆ 0x4ff60…4ff80 31 5d 29 2d 38 30 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 65 6e 64 3b 0d 0a 4e 55 4d 3a 3d ┆1Å)-80; END; end; NUM:=┆ 0x4ff80…4ffa0 30 3b 0d 0a 50 4f 53 3a 3d 54 49 43 4b 53 54 41 52 54 3b 0d 0a 57 48 49 4c 45 20 50 4f 53 3c 3d ┆0; POS:=TICKSTART; WHILE POS<=┆ 0x4ffa0…4ffc0 28 53 4c 55 54 2b 31 29 20 44 4f 0d 0a 20 42 45 47 49 4e 0d 0a 20 49 46 20 49 41 78 69 73 31 3d ┆(SLUT+1) DO BEGIN IF IAxis1=┆ 0x4ffc0…4ffe0 31 20 54 48 45 4e 20 50 4c 41 43 45 55 50 28 50 4f 53 2b 58 52 45 4c 2c 53 54 41 52 54 5b 32 5d ┆1 THEN PLACEUP(POS+XREL,STARTÆ2Å┆ 0x4ffe0…50000 2b 59 52 45 4c 29 0d 0a 20 45 4c 53 45 20 50 4c 41 43 45 55 50 28 53 54 41 52 54 5b 31 5d 2b 58 ┆+YREL) ELSE PLACEUP(STARTÆ1Å+X┆ 0x50000…50020 (32, 0, 1) 52 45 4c 2c 50 4f 53 2b 59 52 45 4c 29 3b 0d 0a 20 50 4c 54 4e 55 4d 42 45 52 28 50 4c 4f 54 44 ┆REL,POS+YREL); PLTNUMBER(PLOTD┆ 0x50020…50040 45 46 52 45 41 4c 5b 49 41 78 69 73 34 5d 2b 4e 55 4d 2a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 32 ┆EFREALÆIAxis4Å+NUM*PLOTDEFREALÆ2┆ 0x50040…50060 2b 49 41 78 69 73 34 5d 2c 46 49 45 4c 44 53 49 5a 45 2c 44 45 43 49 4d 41 4c 53 29 3b 0d 0a 20 ┆+IAxis4Å,FIELDSIZE,DECIMALS); ┆ 0x50060…50080 4e 55 4d 3a 3d 4e 55 4d 2b 31 3b 0d 0a 20 50 4f 53 3a 3d 54 49 43 4b 53 54 41 52 54 2b 52 4f 55 ┆NUM:=NUM+1; POS:=TICKSTART+ROU┆ 0x50080…500a0 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 33 2b 49 41 78 69 73 34 5d 2a 4e 55 4d 2a 50 4c 4f ┆ND(PLOTDEFREALÆ3+IAxis4Å*NUM*PLO┆ 0x500a0…500c0 54 44 45 46 52 45 41 4c 5b 32 2b 49 41 78 69 73 34 5d 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 ┆TDEFREALÆ2+IAxis4Å); END; END┆ 0x500c0…500e0 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 48 4f 57 41 58 49 53 28 41 58 4d 49 4e 2c 41 58 ┆; PROCEDURE SHOWAXIS(AXMIN,AX┆ 0x500e0…50100 4d 41 58 2c 41 58 53 54 45 50 3a 20 52 45 41 4c 3b 4e 54 49 43 4b 53 2c 44 45 43 49 4d 41 4c 53 ┆MAX,AXSTEP: REAL;NTICKS,DECIMALS┆ 0x50100…50120 2c 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 4e 31 2c 4e 32 3a 20 49 4e ┆,IAXIS: INTEGER); VAR N1,N2: IN┆ 0x50120…50140 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 4e 31 3a 3d 48 49 47 48 43 49 46 46 45 52 28 41 58 ┆TEGER; BEGIN N1:=HIGHCIFFER(AX┆ 0x50140…50160 4d 49 4e 29 3b 0d 0a 4e 32 3a 3d 48 49 47 48 43 49 46 46 45 52 28 41 58 4d 41 58 29 3b 0d 0a 49 ┆MIN); N2:=HIGHCIFFER(AXMAX); I┆ 0x50160…50180 46 20 4e 32 3e 4e 31 20 54 48 45 4e 20 4e 31 3a 3d 4e 32 3b 0d 0a 49 46 20 44 45 43 49 4d 41 4c ┆F N2>N1 THEN N1:=N2; IF DECIMAL┆ 0x50180…501a0 53 3e 30 20 54 48 45 4e 20 4e 31 3a 3d 4e 31 2b 44 45 43 49 4d 41 4c 53 2b 31 3b 0d 0a 44 45 46 ┆S>0 THEN N1:=N1+DECIMALS+1; DEF┆ 0x501a0…501c0 49 4e 45 41 58 49 53 28 41 58 4d 49 4e 2c 41 58 4d 41 58 2c 41 58 53 54 45 50 2c 49 41 58 49 53 ┆INEAXIS(AXMIN,AXMAX,AXSTEP,IAXIS┆ 0x501c0…501e0 29 3b 0d 0a 4d 41 4b 45 41 58 49 53 28 49 41 58 49 53 29 3b 0d 0a 41 58 49 53 54 49 43 4b 28 4e ┆); MAKEAXIS(IAXIS); AXISTICK(N┆ 0x501e0…50200 54 49 43 4b 53 2c 49 41 58 49 53 29 3b 0d 0a 41 58 49 53 4c 41 42 45 4c 28 4e 31 2c 44 45 43 49 ┆TICKS,IAXIS); AXISLABEL(N1,DECI┆ 0x50200…50220 4d 41 4c 53 2c 49 41 58 49 53 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆MALS,IAXIS); END; PROCEDURE ┆ 0x50220…50240 41 58 49 53 54 49 54 4c 45 28 54 49 54 4c 45 3a 20 53 54 52 38 30 3b 49 41 58 49 53 3a 20 49 4e ┆AXISTITLE(TITLE: STR80;IAXIS: IN┆ 0x50240…50260 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 50 4f 53 2c 49 41 78 69 73 31 3a 20 49 4e 54 45 47 45 52 ┆TEGER); VAR POS,IAxis1: INTEGER┆ 0x50260…50280 3b 0d 0a 20 20 20 20 52 45 4c 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 ┆; REL: REAL; BEGIN IAxis1┆ 0x50280…502a0 3a 3d 61 62 73 28 49 41 78 69 73 29 3b 0d 0a 63 61 73 65 20 50 6c 6f 74 44 65 66 49 6e 74 5b 32 ┆:=abs(IAxis); case PlotDefIntÆ2┆ 0x502a0…502c0 39 5d 20 6f 66 0d 0a 20 31 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 50 4f 53 3a 3d 50 4c 4f 54 44 ┆9Å of 1: BEGIN POS:=PLOTD┆ 0x502c0…502e0 45 46 49 4e 54 5b 31 33 2b 49 41 78 69 73 31 5d 3b 0d 0a 20 20 20 20 52 45 4c 3a 3d 30 3b 0d 0a ┆EFINTÆ13+IAxis1Å; REL:=0; ┆ 0x502e0…50300 20 20 20 20 45 4e 44 3b 0d 0a 20 32 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 50 4f 53 3a 3d 28 50 ┆ END; 2: BEGIN POS:=(P┆ 0x50300…50320 4c 4f 54 44 45 46 49 4e 54 5b 31 33 2b 49 41 78 69 73 31 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 5b ┆LOTDEFINTÆ13+IAxis1Å+PLOTDEFINTÆ┆ 0x50320…50340 31 35 2b 49 41 78 69 73 31 5d 29 20 44 49 56 20 32 3b 0d 0a 20 20 20 20 52 45 4c 3a 3d 2d 30 2e ┆15+IAxis1Å) DIV 2; REL:=-0.┆ 0x50340…50360 35 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 6f 74 68 65 72 77 69 73 65 0d 0a 20 20 20 20 42 45 ┆5; END; otherwise BE┆ 0x50360…50380 47 49 4e 0d 0a 20 20 20 20 50 4f 53 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 35 2b 49 41 78 69 ┆GIN POS:=PLOTDEFINTÆ15+IAxi┆ 0x50380…503a0 73 31 5d 3b 0d 0a 20 20 20 20 52 45 4c 3a 3d 2d 31 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 65 ┆s1Å; REL:=-1; END; e┆ 0x503a0…503c0 6e 64 3b 0d 0a 63 61 73 65 20 49 41 78 69 73 20 6f 66 0d 0a 20 2d 32 3a 20 42 45 47 49 4e 0d 0a ┆nd; case IAxis of -2: BEGIN ┆ 0x503c0…503e0 20 20 20 20 20 43 48 41 52 52 4f 54 41 54 45 28 39 30 29 3b 0d 0a 20 20 20 20 20 50 4c 41 43 45 ┆ CHARROTATE(90); PLACE┆ 0x503e0…50400 4c 41 42 45 4c 28 50 4c 4f 54 44 45 46 49 4e 54 5b 31 39 5d 2c 50 4f 53 2c 4c 45 4e 28 54 49 54 ┆LABEL(PLOTDEFINTÆ19Å,POS,LEN(TIT┆ 0x50400…50420 (32, 0, 2) 4c 45 29 2c 52 45 4c 2c 2d 31 29 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 32 3a 20 42 45 ┆LE),REL,-1); END; 2: BE┆ 0x50420…50440 47 49 4e 0d 0a 20 20 20 20 20 43 48 41 52 52 4f 54 41 54 45 28 39 30 29 3b 0d 0a 20 20 20 20 20 ┆GIN CHARROTATE(90); ┆ 0x50440…50460 50 4c 41 43 45 4c 41 42 45 4c 28 50 4c 4f 54 44 45 46 49 4e 54 5b 31 38 5d 2c 50 4f 53 2c 4c 45 ┆PLACELABEL(PLOTDEFINTÆ18Å,POS,LE┆ 0x50460…50480 4e 28 54 49 54 4c 45 29 2c 52 45 4c 2c 30 2e 35 29 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆N(TITLE),REL,0.5); END; ┆ 0x50480…504a0 2d 31 3a 20 50 4c 41 43 45 4c 41 42 45 4c 28 50 4f 53 2c 50 4c 4f 54 44 45 46 49 4e 54 5b 31 37 ┆-1: PLACELABEL(POS,PLOTDEFINTÆ17┆ 0x504a0…504c0 5d 2b 38 30 2c 4c 45 4e 28 54 49 54 4c 45 29 2c 52 45 4c 2c 31 2e 32 29 3b 0d 0a 20 20 31 3a 20 ┆Å+80,LEN(TITLE),REL,1.2); 1: ┆ 0x504c0…504e0 50 4c 41 43 45 4c 41 42 45 4c 28 50 4f 53 2c 50 4c 4f 54 44 45 46 49 4e 54 5b 31 35 5d 2d 38 30 ┆PLACELABEL(POS,PLOTDEFINTÆ15Å-80┆ 0x504e0…50500 2c 4c 45 4e 28 54 49 54 4c 45 29 2c 52 45 4c 2c 2d 31 2e 37 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a ┆,LEN(TITLE),REL,-1.7); end; ┆ 0x50500…50520 50 4c 54 4c 41 42 45 4c 28 54 49 54 4c 45 29 3b 0d 0a 49 46 20 49 41 78 69 73 31 3d 32 20 54 48 ┆PLTLABEL(TITLE); IF IAxis1=2 TH┆ 0x50520…50540 45 4e 20 43 48 41 52 52 4f 54 41 54 45 28 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆EN CHARROTATE(0); END; PROCE┆ 0x50540…50560 44 55 52 45 20 4d 41 52 4b 45 52 50 4c 4f 54 28 4f 42 53 50 31 2c 4f 42 53 50 32 2c 56 41 52 50 ┆DURE MARKERPLOT(OBSP1,OBSP2,VARP┆ 0x50560…50580 31 2c 56 41 52 50 32 2c 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 50 ┆1,VARP2,SYMBOL: INTEGER); VAR P┆ 0x50580…505a0 2c 58 2c 59 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 46 4f 52 20 50 3a 3d 4f 42 ┆,X,Y: INTEGER; BEGIN FOR P:=OB┆ 0x505a0…505c0 53 50 31 20 54 4f 20 4f 42 53 50 32 20 44 4f 0d 0a 49 46 20 28 44 41 54 41 5b 50 2c 56 41 52 50 ┆SP1 TO OBSP2 DO IF (DATAÆP,VARP┆ 0x505c0…505e0 31 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 41 4e 44 20 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 3c ┆1Å<>MISREAL) AND (DATAÆP,VARP2Å<┆ 0x505e0…50600 3e 4d 49 53 52 45 41 4c 29 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 58 3a 3d 43 4f 4e 56 ┆>MISREAL) THEN BEGIN X:=CONV┆ 0x50600…50620 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 2c 31 29 3b 0d 0a 20 59 3a 3d ┆ERTSCALE(DATAÆP,VARP1Å,1); Y:=┆ 0x50620…50640 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 32 29 3b 0d 0a ┆CONVERTSCALE(DATAÆP,VARP2Å,2); ┆ 0x50640…50660 20 4d 41 52 4b 45 52 28 58 2c 59 2c 53 59 4d 42 4f 4c 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 ┆ MARKER(X,Y,SYMBOL); END; END┆ 0x50660…50680 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4c 49 4e 45 50 4c 4f 54 28 4f 42 53 50 31 2c 4f 42 ┆; PROCEDURE LINEPLOT(OBSP1,OB┆ 0x50680…506a0 53 50 32 2c 56 41 52 50 31 2c 56 41 52 50 32 2c 4c 54 59 50 45 3a 20 49 4e 54 45 47 45 52 29 3b ┆SP2,VARP1,VARP2,LTYPE: INTEGER);┆ 0x506a0…506c0 0d 0a 56 41 52 20 58 2c 59 2c 50 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 44 4f 57 4e 3a ┆ VAR X,Y,P: INTEGER; DOWN:┆ 0x506c0…506e0 20 42 4f 4f 4c 45 41 4e 3b 0d 0a 42 45 47 49 4e 0d 0a 4c 49 4e 45 54 59 50 45 28 4c 54 59 50 45 ┆ BOOLEAN; BEGIN LINETYPE(LTYPE┆ 0x506e0…50700 29 3b 0d 0a 44 4f 57 4e 3a 3d 46 41 4c 53 45 3b 0d 0a 46 4f 52 20 50 3a 3d 4f 42 53 50 31 20 54 ┆); DOWN:=FALSE; FOR P:=OBSP1 T┆ 0x50700…50720 4f 20 4f 42 53 50 32 20 44 4f 0d 0a 49 46 20 28 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 3c 3e 4d ┆O OBSP2 DO IF (DATAÆP,VARP1Å<>M┆ 0x50720…50740 49 53 52 45 41 4c 29 20 41 4e 44 20 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 3c 3e 4d 49 53 52 ┆ISREAL) AND (DATAÆP,VARP2Å<>MISR┆ 0x50740…50760 45 41 4c 29 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 58 3a 3d 43 4f 4e 56 45 52 54 53 43 ┆EAL) THEN BEGIN X:=CONVERTSC┆ 0x50760…50780 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 2c 31 29 3b 0d 0a 20 59 3a 3d 43 4f 4e 56 45 ┆ALE(DATAÆP,VARP1Å,1); Y:=CONVE┆ 0x50780…507a0 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 32 29 3b 0d 0a 20 49 46 20 44 ┆RTSCALE(DATAÆP,VARP2Å,2); IF D┆ 0x507a0…507c0 4f 57 4e 20 54 48 45 4e 20 50 4c 54 4c 49 4e 45 28 58 2c 59 29 0d 0a 20 45 4c 53 45 20 0d 0a 20 ┆OWN THEN PLTLINE(X,Y) ELSE ┆ 0x507c0…507e0 20 42 45 47 49 4e 0d 0a 20 20 50 4c 41 43 45 44 4f 57 4e 28 58 2c 59 29 3b 0d 0a 20 20 44 4f 57 ┆ BEGIN PLACEDOWN(X,Y); DOW┆ 0x507e0…50800 4e 3a 3d 54 52 55 45 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 45 4e 44 3b 0d 0a 50 45 4e 55 50 3b 0d ┆N:=TRUE; END; END; PENUP; ┆ 0x50800…50820 (32, 0, 3) 0a 4c 49 4e 45 54 59 50 45 28 31 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ LINETYPE(1); END; PROCEDURE┆ 0x50820…50840 20 52 45 46 45 52 45 4e 43 45 4c 49 4e 45 28 52 45 46 50 4f 49 4e 54 3a 20 52 45 41 4c 3b 49 41 ┆ REFERENCELINE(REFPOINT: REAL;IA┆ 0x50840…50860 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 50 4f 53 2c 49 41 78 69 73 31 3a 20 ┆XIS: INTEGER); VAR POS,IAxis1: ┆ 0x50860…50880 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 49 41 78 69 73 31 3a 3d 61 62 73 28 49 41 78 ┆INTEGER; BEGIN IAxis1:=abs(IAx┆ 0x50880…508a0 69 73 29 3b 0d 0a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 31 2b 49 41 78 69 73 31 5d 3a 3d 52 45 ┆is); PLOTDEFREALÆ11+IAxis1Å:=RE┆ 0x508a0…508c0 46 50 4f 49 4e 54 3b 0d 0a 50 4f 53 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 52 45 46 50 4f ┆FPOINT; POS:=CONVERTSCALE(REFPO┆ 0x508c0…508e0 49 4e 54 2c 49 41 78 69 73 31 29 3b 0d 0a 49 46 20 49 41 58 49 53 3d 31 20 54 48 45 4e 0d 0a 20 ┆INT,IAxis1); IF IAXIS=1 THEN ┆ 0x508e0…50900 42 45 47 49 4e 0d 0a 20 50 4c 41 43 45 44 4f 57 4e 28 50 4f 53 2c 50 4c 4f 54 44 45 46 49 4e 54 ┆BEGIN PLACEDOWN(POS,PLOTDEFINT┆ 0x50900…50920 5b 31 35 5d 29 3b 0d 0a 20 50 4c 54 4c 49 4e 45 28 50 4f 53 2c 50 4c 4f 54 44 45 46 49 4e 54 5b ┆Æ15Å); PLTLINE(POS,PLOTDEFINTÆ┆ 0x50920…50940 31 37 5d 29 3b 0d 0a 20 50 45 4e 55 50 3b 0d 0a 20 45 4e 44 0d 0a 45 4c 53 45 20 49 46 20 49 41 ┆17Å); PENUP; END ELSE IF IA┆ 0x50940…50960 58 49 53 3d 32 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 50 4c 41 43 45 44 4f 57 4e 28 50 ┆XIS=2 THEN BEGIN PLACEDOWN(P┆ 0x50960…50980 4c 4f 54 44 45 46 49 4e 54 5b 31 34 5d 2c 50 4f 53 29 3b 0d 0a 20 50 4c 54 4c 49 4e 45 28 50 4c ┆LOTDEFINTÆ14Å,POS); PLTLINE(PL┆ 0x50980…509a0 4f 54 44 45 46 49 4e 54 5b 31 36 5d 2c 50 4f 53 29 3b 0d 0a 20 50 45 4e 55 50 3b 0d 0a 20 45 4e ┆OTDEFINTÆ16Å,POS); PENUP; EN┆ 0x509a0…509c0 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4e 45 45 44 4c 45 50 4c 4f 54 ┆D; END; PROCEDURE NEEDLEPLOT┆ 0x509c0…509e0 28 4f 42 53 50 31 2c 4f 42 53 50 32 2c 56 41 52 50 31 2c 56 41 52 50 32 2c 56 41 52 50 33 2c 49 ┆(OBSP1,OBSP2,VARP1,VARP2,VARP3,I┆ 0x509e0…50a00 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 50 2c 58 2c 59 2c 52 45 46 3a 20 ┆AXIS: INTEGER); VAR P,X,Y,REF: ┆ 0x50a00…50a20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 44 41 54 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d ┆INTEGER; DAT: REAL; BEGIN ┆ 0x50a20…50a40 0a 46 4f 52 20 50 3a 3d 4f 42 53 50 31 20 54 4f 20 4f 42 53 50 32 20 44 4f 0d 0a 49 46 20 28 44 ┆ FOR P:=OBSP1 TO OBSP2 DO IF (D┆ 0x50a40…50a60 41 54 41 5b 50 2c 56 41 52 50 31 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 41 4e 44 20 28 44 41 54 41 ┆ATAÆP,VARP1Å<>MISREAL) AND (DATA┆ 0x50a60…50a80 5b 50 2c 56 41 52 50 32 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e ┆ÆP,VARP2Å<>MISREAL) THEN BEGIN┆ 0x50a80…50aa0 0d 0a 20 49 46 20 56 41 52 50 33 3c 3e 4d 49 53 49 4e 54 20 54 48 45 4e 20 44 41 54 3a 3d 44 41 ┆ IF VARP3<>MISINT THEN DAT:=DA┆ 0x50aa0…50ac0 54 41 5b 50 2c 56 41 52 50 33 5d 0d 0a 20 45 4c 53 45 20 44 41 54 3a 3d 50 6c 6f 74 44 65 66 52 ┆TAÆP,VARP3Å ELSE DAT:=PlotDefR┆ 0x50ac0…50ae0 65 61 6c 5b 31 34 2d 49 41 58 49 53 5d 3b 0d 0a 20 49 46 20 44 41 54 3c 3e 4d 49 53 52 45 41 4c ┆ealÆ14-IAXISÅ; IF DAT<>MISREAL┆ 0x50ae0…50b00 20 54 48 45 4e 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 49 46 20 49 41 58 49 53 3d 31 20 54 48 45 ┆ THEN BEGIN IF IAXIS=1 THE┆ 0x50b00…50b20 4e 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 58 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 ┆N BEGIN X:=CONVERTSCALE(┆ 0x50b20…50b40 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 2c 31 29 3b 0d 0a 20 20 20 59 3a 3d 43 4f 4e 56 45 52 54 ┆DATAÆP,VARP1Å,1); Y:=CONVERT┆ 0x50b40…50b60 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 32 29 3b 0d 0a 20 20 20 52 45 46 3a ┆SCALE(DATAÆP,VARP2Å,2); REF:┆ 0x50b60…50b80 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 2c 32 29 3b 0d 0a 20 20 20 50 4c 41 43 45 44 ┆=CONVERTSCALE(DAT,2); PLACED┆ 0x50b80…50ba0 4f 57 4e 28 58 2c 52 45 46 29 3b 0d 0a 20 20 20 50 4c 54 4c 49 4e 45 28 58 2c 59 29 3b 0d 0a 20 ┆OWN(X,REF); PLTLINE(X,Y); ┆ 0x50ba0…50bc0 20 20 50 45 4e 55 50 3b 0d 0a 20 20 20 45 4e 44 0d 0a 20 20 45 4c 53 45 0d 0a 20 20 20 42 45 47 ┆ PENUP; END ELSE BEG┆ 0x50bc0…50be0 49 4e 0d 0a 20 20 20 59 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 ┆IN Y:=CONVERTSCALE(DATAÆP,VA┆ 0x50be0…50c00 52 50 31 5d 2c 32 29 3b 0d 0a 20 20 20 58 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 ┆RP1Å,2); X:=CONVERTSCALE(DAT┆ 0x50c00…50c20 (32, 0, 4) 41 5b 50 2c 56 41 52 50 32 5d 2c 31 29 3b 0d 0a 20 20 20 52 45 46 3a 3d 43 4f 4e 56 45 52 54 53 ┆AÆP,VARP2Å,1); REF:=CONVERTS┆ 0x50c20…50c40 43 41 4c 45 28 44 41 54 2c 31 29 3b 0d 0a 20 20 20 50 4c 41 43 45 44 4f 57 4e 28 52 45 46 2c 59 ┆CALE(DAT,1); PLACEDOWN(REF,Y┆ 0x50c40…50c60 29 3b 0d 0a 20 20 20 50 4c 54 4c 49 4e 45 28 58 2c 59 29 3b 0d 0a 20 20 20 50 45 4e 55 50 3b 0d ┆); PLTLINE(X,Y); PENUP; ┆ 0x50c60…50c80 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d ┆ END; END; END; END; ┆ 0x50c80…50ca0 0a 50 52 4f 43 45 44 55 52 45 20 42 41 52 53 28 4f 42 53 50 31 2c 4f 42 53 50 32 2c 56 41 52 50 ┆ PROCEDURE BARS(OBSP1,OBSP2,VARP┆ 0x50ca0…50cc0 31 2c 56 41 52 50 32 2c 56 41 52 50 33 3a 20 49 4e 54 45 47 45 52 3b 57 49 44 54 48 3a 20 52 45 ┆1,VARP2,VARP3: INTEGER;WIDTH: RE┆ 0x50cc0…50ce0 41 4c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 41 54 54 45 52 4e 31 2c 50 41 54 ┆AL; PATTERN1,PAT┆ 0x50ce0…50d00 54 45 52 4e 32 2c 49 41 58 49 53 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 58 4c 4f 57 ┆TERN2,IAXIS: INTEGER); VAR XLOW┆ 0x50d00…50d20 2c 59 4c 4f 57 2c 58 53 49 5a 45 2c 59 53 49 5a 45 2c 50 2c 4c 41 53 54 50 41 54 54 45 52 4e 3a ┆,YLOW,XSIZE,YSIZE,P,LASTPATTERN:┆ 0x50d20…50d40 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 44 49 46 2c 52 45 46 3a 20 52 45 41 4c 3b 0d 0a 42 ┆ INTEGER; DIF,REF: REAL; B┆ 0x50d40…50d60 45 47 49 4e 0d 0a 49 46 20 49 41 58 49 53 3d 31 20 54 48 45 4e 20 58 53 49 5a 45 3a 3d 52 4f 55 ┆EGIN IF IAXIS=1 THEN XSIZE:=ROU┆ 0x50d60…50d80 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 37 5d 2a 57 49 44 54 48 29 0d 0a 45 4c 53 45 20 59 ┆ND(PLOTDEFREALÆ7Å*WIDTH) ELSE Y┆ 0x50d80…50da0 53 49 5a 45 3a 3d 52 4f 55 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 31 5d 2a 57 49 44 54 ┆SIZE:=ROUND(PLOTDEFREALÆ11Å*WIDT┆ 0x50da0…50dc0 48 29 3b 0d 0a 4c 41 53 54 50 41 54 54 45 52 4e 3a 3d 4d 49 53 49 4e 54 3b 0d 0a 46 4f 52 20 50 ┆H); LASTPATTERN:=MISINT; FOR P┆ 0x50dc0…50de0 3a 3d 4f 42 53 50 31 20 54 4f 20 4f 42 53 50 32 20 44 4f 0d 0a 49 46 20 28 44 41 54 41 5b 50 2c ┆:=OBSP1 TO OBSP2 DO IF (DATAÆP,┆ 0x50de0…50e00 56 41 52 50 31 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 41 4e 44 20 28 44 41 54 41 5b 50 2c 56 41 52 ┆VARP1Å<>MISREAL) AND (DATAÆP,VAR┆ 0x50e00…50e20 50 32 5d 3c 3e 4d 49 53 52 45 41 4c 29 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 49 46 20 ┆P2Å<>MISREAL) THEN BEGIN IF ┆ 0x50e20…50e40 56 41 52 50 33 3c 3e 4d 49 53 49 4e 54 20 54 48 45 4e 20 52 45 46 3a 3d 44 41 54 41 5b 50 2c 56 ┆VARP3<>MISINT THEN REF:=DATAÆP,V┆ 0x50e40…50e60 41 52 50 33 5d 0d 0a 20 45 4c 53 45 20 52 45 46 3a 3d 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 34 ┆ARP3Å ELSE REF:=PLOTDEFREALÆ14┆ 0x50e60…50e80 2d 49 41 58 49 53 5d 3b 0d 0a 20 49 46 20 52 45 46 3c 3e 4d 49 53 52 45 41 4c 20 54 48 45 4e 0d ┆-IAXISÅ; IF REF<>MISREAL THEN ┆ 0x50e80…50ea0 0a 20 20 42 45 47 49 4e 0d 0a 20 20 44 49 46 3a 3d 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2d 52 ┆ BEGIN DIF:=DATAÆP,VARP2Å-R┆ 0x50ea0…50ec0 45 46 3b 0d 0a 20 20 49 46 20 49 41 58 49 53 3d 31 20 54 48 45 4e 0d 0a 20 20 20 42 45 47 49 4e ┆EF; IF IAXIS=1 THEN BEGIN┆ 0x50ec0…50ee0 0d 0a 20 20 20 58 4c 4f 57 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 ┆ XLOW:=CONVERTSCALE(DATAÆP,V┆ 0x50ee0…50f00 41 52 50 31 5d 2c 31 29 2d 28 58 53 49 5a 45 20 44 49 56 20 32 29 3b 0d 0a 20 20 20 59 53 49 5a ┆ARP1Å,1)-(XSIZE DIV 2); YSIZ┆ 0x50f00…50f20 45 3a 3d 52 4f 55 4e 44 28 50 4c 4f 54 44 45 46 52 45 41 4c 5b 31 31 5d 2a 41 42 53 28 44 49 46 ┆E:=ROUND(PLOTDEFREALÆ11Å*ABS(DIF┆ 0x50f20…50f40 29 29 3b 0d 0a 20 20 20 49 46 20 44 49 46 3c 30 20 54 48 45 4e 20 59 4c 4f 57 3a 3d 43 4f 4e 56 ┆)); IF DIF<0 THEN YLOW:=CONV┆ 0x50f40…50f60 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 32 29 0d 0a 20 20 20 45 4c ┆ERTSCALE(DATAÆP,VARP2Å,2) EL┆ 0x50f60…50f80 53 45 20 59 4c 4f 57 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 52 45 46 2c 32 29 3b 0d 0a 20 ┆SE YLOW:=CONVERTSCALE(REF,2); ┆ 0x50f80…50fa0 20 20 45 4e 44 0d 0a 20 20 45 4c 53 45 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 59 4c 4f 57 ┆ END ELSE BEGIN YLOW┆ 0x50fa0…50fc0 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 41 54 41 5b 50 2c 56 41 52 50 31 5d 2c 32 29 2d ┆:=CONVERTSCALE(DATAÆP,VARP1Å,2)-┆ 0x50fc0…50fe0 28 59 53 49 5a 45 20 44 49 56 20 32 29 3b 0d 0a 20 20 20 58 53 49 5a 45 3a 3d 52 4f 55 4e 44 28 ┆(YSIZE DIV 2); XSIZE:=ROUND(┆ 0x50fe0…51000 50 4c 4f 54 44 45 46 52 45 41 4c 5b 37 5d 2a 41 42 53 28 44 49 46 29 29 3b 0d 0a 20 20 20 49 46 ┆PLOTDEFREALÆ7Å*ABS(DIF)); IF┆ 0x51000…51020 (32, 0, 5) 20 44 49 46 3c 30 20 54 48 45 4e 20 58 4c 4f 57 3a 3d 43 4f 4e 56 45 52 54 53 43 41 4c 45 28 44 ┆ DIF<0 THEN XLOW:=CONVERTSCALE(D┆ 0x51020…51040 41 54 41 5b 50 2c 56 41 52 50 32 5d 2c 31 29 0d 0a 20 20 20 45 4c 53 45 20 58 4c 4f 57 3a 3d 43 ┆ATAÆP,VARP2Å,1) ELSE XLOW:=C┆ 0x51040…51060 4f 4e 56 45 52 54 53 43 41 4c 45 28 52 45 46 2c 31 29 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆ONVERTSCALE(REF,1); END; ┆ 0x51060…51080 49 46 20 28 44 49 46 3c 3d 30 29 20 41 4e 44 20 28 50 41 54 54 45 52 4e 31 3c 3e 4c 41 53 54 50 ┆IF (DIF<=0) AND (PATTERN1<>LASTP┆ 0x51080…510a0 41 54 54 45 52 4e 29 20 54 48 45 4e 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 46 49 4c 4c 50 ┆ATTERN) THEN BEGIN FILLP┆ 0x510a0…510c0 41 54 54 45 52 4e 28 50 41 54 54 45 52 4e 31 29 3b 0d 0a 20 20 20 4c 41 53 54 50 41 54 54 45 52 ┆ATTERN(PATTERN1); LASTPATTER┆ 0x510c0…510e0 4e 3a 3d 50 41 54 54 45 52 4e 31 3b 0d 0a 20 20 20 45 4e 44 0d 0a 20 20 45 4c 53 45 20 49 46 20 ┆N:=PATTERN1; END ELSE IF ┆ 0x510e0…51100 28 44 49 46 3e 30 29 20 41 4e 44 20 28 50 41 54 54 45 52 4e 32 3c 3e 4c 41 53 54 50 41 54 54 45 ┆(DIF>0) AND (PATTERN2<>LASTPATTE┆ 0x51100…51120 52 4e 29 20 54 48 45 4e 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 46 49 4c 4c 50 41 54 54 45 ┆RN) THEN BEGIN FILLPATTE┆ 0x51120…51140 52 4e 28 50 41 54 54 45 52 4e 32 29 3b 0d 0a 20 20 20 4c 41 53 54 50 41 54 54 45 52 4e 3a 3d 50 ┆RN(PATTERN2); LASTPATTERN:=P┆ 0x51140…51160 41 54 54 45 52 4e 32 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 4d 41 52 4b 52 45 43 54 41 4e 47 ┆ATTERN2; END; MARKRECTANG┆ 0x51160…51180 4c 45 28 58 4c 4f 57 2c 59 4c 4f 57 2c 58 53 49 5a 45 2c 59 53 49 5a 45 29 3b 0d 0a 20 20 49 46 ┆LE(XLOW,YLOW,XSIZE,YSIZE); IF┆ 0x51180…511a0 20 4c 41 53 54 50 41 54 54 45 52 4e 3e 30 20 54 48 45 4e 20 46 49 4c 4c 52 45 43 54 41 4e 47 4c ┆ LASTPATTERN>0 THEN FILLRECTANGL┆ 0x511a0…511c0 45 28 58 4c 4f 57 2c 59 4c 4f 57 2c 58 53 49 5a 45 2c 59 53 49 5a 45 29 3b 0d 0a 20 20 45 4e 44 ┆E(XLOW,YLOW,XSIZE,YSIZE); END┆ 0x511c0…511e0 3b 0d 0a 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 48 49 47 48 43 ┆; END; END; FUNCTION HIGHC┆ 0x511e0…51200 49 46 46 45 52 28 56 41 4c 55 45 3a 20 52 45 41 4c 29 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 56 41 ┆IFFER(VALUE: REAL): INTEGER; VA┆ 0x51200…51220 52 20 56 41 4c 53 54 52 49 4e 47 3a 20 53 54 52 32 30 3b 0d 0a 20 20 20 20 49 2c 44 3a 20 42 59 ┆R VALSTRING: STR20; I,D: BY┆ 0x51220…51240 54 45 3b 0d 0a 42 45 47 49 4e 0d 0a 53 54 52 28 56 41 4c 55 45 3a 31 30 3a 30 2c 56 41 4c 53 54 ┆TE; BEGIN STR(VALUE:10:0,VALST┆ 0x51240…51260 52 49 4e 47 29 3b 0d 0a 46 4f 52 20 49 3a 3d 31 20 54 4f 20 31 30 20 44 4f 20 49 46 20 56 41 4c ┆RING); FOR I:=1 TO 10 DO IF VAL┆ 0x51260…51280 53 54 52 49 4e 47 5b 49 5d 3d 27 20 27 20 54 48 45 4e 20 44 3a 3d 49 3b 0d 0a 48 49 47 48 43 49 ┆STRINGÆIÅ=' ' THEN D:=I; HIGHCI┆ 0x51280…512a0 46 46 45 52 3a 3d 31 30 2d 44 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 41 ┆FFER:=10-D END; PROCEDURE MA┆ 0x512a0…512c0 52 4b 45 52 53 49 5a 45 28 53 49 5a 45 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c ┆RKERSIZE(SIZE: REAL); BEGIN PL┆ 0x512c0…512e0 4f 54 44 45 46 52 45 41 4c 5b 33 5d 3a 3d 53 49 5a 45 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f ┆OTDEFREALÆ3Å:=SIZE; END; PRO┆ 0x512e0…51300 43 45 44 55 52 45 20 46 4f 4f 54 4e 4f 54 45 50 4c 41 43 45 28 50 4c 41 43 45 3a 20 49 4e 54 45 ┆CEDURE FOOTNOTEPLACE(PLACE: INTE┆ 0x51300…51320 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 36 5d 3a 3d 50 4c ┆GER); BEGIN PLOTDEFINTÆ26Å:=PL┆ 0x51320…51340 41 43 45 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 3a 3d 30 3b 0d 0a 45 4e 44 3b 0d 0a ┆ACE; PLOTDEFINTÆ28Å:=0; END; ┆ 0x51340…51360 0d 0a 50 52 4f 43 45 44 55 52 45 20 43 4f 4d 4d 45 4e 54 50 4c 41 43 45 28 50 4c 41 43 45 3a 20 ┆ PROCEDURE COMMENTPLACE(PLACE: ┆ 0x51360…51380 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 37 5d ┆INTEGER); BEGIN PLOTDEFINTÆ27Å┆ 0x51380…513a0 3a 3d 50 4c 41 43 45 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 4c 41 43 ┆:=PLACE; END; PROCEDURE PLAC┆ 0x513a0…513c0 45 4c 41 42 45 4c 28 58 2c 59 2c 4c 41 42 45 4c 4c 45 4e 47 54 48 3a 20 49 4e 54 45 47 45 52 3b ┆ELABEL(X,Y,LABELLENGTH: INTEGER;┆ 0x513c0…513e0 58 44 49 52 2c 59 44 49 52 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 69 66 20 50 6c 6f ┆XDIR,YDIR: REAL); BEGIN if Plo┆ 0x513e0…51400 74 44 65 66 49 6e 74 5b 31 33 5d 3d 30 20 74 68 65 6e 0d 0a 20 50 4c 41 43 45 55 50 28 58 2b 72 ┆tDefIntÆ13Å=0 then PLACEUP(X+r┆ 0x51400…51420 (32, 1, 1) 6f 75 6e 64 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2a 58 44 69 72 2a 4c 61 62 65 6c 4c ┆ound(PlotDefRealÆ20Å*XDir*LabelL┆ 0x51420…51440 65 6e 67 74 68 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 59 2b 72 6f 75 6e 64 28 50 6c 6f 74 44 65 ┆ength), Y+round(PlotDe┆ 0x51440…51460 66 52 65 61 6c 5b 32 31 5d 2a 59 44 69 72 29 29 0d 0a 65 6c 73 65 0d 0a 20 50 6c 61 63 65 55 70 ┆fRealÆ21Å*YDir)) else PlaceUp┆ 0x51460…51480 28 58 2d 72 6f 75 6e 64 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 59 44 69 72 29 2c 0d ┆(X-round(PlotDefRealÆ21Å*YDir), ┆ 0x51480…514a0 0a 20 20 20 20 20 20 20 20 20 59 2b 72 6f 75 6e 64 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 ┆ Y+round(PlotDefRealÆ20┆ 0x514a0…514c0 5d 2a 58 44 69 72 2a 4c 61 62 65 6c 4c 65 6e 67 74 68 29 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆Å*XDir*LabelLength)); END; P┆ 0x514c0…514e0 52 4f 43 45 44 55 52 45 20 48 45 41 44 49 4e 47 28 54 49 54 4c 45 3a 20 53 54 52 38 30 29 3b 0d ┆ROCEDURE HEADING(TITLE: STR80); ┆ 0x514e0…51500 0a 76 61 72 20 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 2e 2e 38 30 5d 20 6f 66 ┆ var ByteTitle: array Æ0..80Å of┆ 0x51500…51520 20 62 79 74 65 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 41 43 45 4c 41 42 ┆ byte at Title; BEGIN PLACELAB┆ 0x51520…51540 45 4c 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d ┆EL((PLOTDEFINTÆ8Å+PLOTDEFINTÆ10Å┆ 0x51540…51560 29 20 44 49 56 20 32 2c 50 4c 4f 54 44 45 46 49 4e 54 5b 31 32 5d 2c 42 79 74 65 54 69 74 6c 65 ┆) DIV 2,PLOTDEFINTÆ12Å,ByteTitle┆ 0x51560…51580 5b 30 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 2d 30 2e 35 2c 2d 31 29 3b 0d 0a 50 4c 54 4c ┆Æ0Å, -0.5,-1); PLTL┆ 0x51580…515a0 41 42 45 4c 28 54 49 54 4c 45 29 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 31 32 5d 3a 3d 50 4c ┆ABEL(TITLE); PLOTDEFINTÆ12Å:=PL┆ 0x515a0…515c0 4f 54 44 45 46 49 4e 54 5b 31 32 5d 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 ┆OTDEFINTÆ12Å-ROUND(PlotDefRealÆ2┆ 0x515c0…515e0 31 5d 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 46 4f 4f 54 4e 4f 54 45 ┆1Å); END; PROCEDURE FOOTNOTE┆ 0x515e0…51600 28 54 49 54 4c 45 3a 20 53 54 52 38 30 29 3b 0d 0a 56 41 52 20 58 2c 59 3a 20 49 4e 54 45 47 45 ┆(TITLE: STR80); VAR X,Y: INTEGE┆ 0x51600…51620 52 3b 0d 0a 20 20 20 20 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 2e 2e 38 30 5d ┆R; ByteTitle: array Æ0..80Å┆ 0x51620…51640 20 6f 66 20 62 79 74 65 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a 63 61 73 65 20 ┆ of byte at Title; BEGIN case ┆ 0x51640…51660 50 6c 6f 74 44 65 66 49 6e 74 5b 32 36 5d 20 6f 66 0d 0a 20 31 3a 20 42 45 47 49 4e 0d 0a 20 20 ┆PlotDefIntÆ26Å of 1: BEGIN ┆ 0x51660…51680 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 ┆ X:=PLOTDEFINTÆ8Å+ROUND(PlotDef┆ 0x51680…516a0 52 65 61 6c 5b 32 30 5d 2f 32 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b ┆RealÆ20Å/2); Y:=PLOTDEFINTÆ┆ 0x516a0…516c0 31 31 5d 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 37 35 2b ┆11Å-ROUND(PlotDefRealÆ21Å*(0.75+┆ 0x516c0…516e0 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 32 3a ┆PLOTDEFINTÆ28Å)); END; 2:┆ 0x516e0…51700 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 52 4f ┆ BEGIN X:=PLOTDEFINTÆ10Å-RO┆ 0x51700…51720 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2a 28 30 2e 32 2b 42 79 74 65 54 69 74 ┆UND(PlotDefRealÆ20Å*(0.2+ByteTit┆ 0x51720…51740 6c 65 5b 30 5d 29 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 31 5d 2d ┆leÆ0Å)); Y:=PLOTDEFINTÆ11Å-┆ 0x51740…51760 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 37 35 2b 50 4c 4f 54 ┆ROUND(PlotDefRealÆ21Å*(0.75+PLOT┆ 0x51760…51780 44 45 46 49 4e 54 5b 32 38 5d 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 33 3a 20 42 45 47 ┆DEFINTÆ28Å)); END; 3: BEG┆ 0x51780…517a0 49 4e 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 50 ┆IN X:=PLOTDEFINTÆ8Å+ROUND(P┆ 0x517a0…517c0 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2f 32 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 ┆lotDefRealÆ20Å/2); Y:=PLOTD┆ 0x517c0…517e0 45 46 49 4e 54 5b 39 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 ┆EFINTÆ9Å+ROUND(PlotDefRealÆ21Å*(┆ 0x517e0…51800 30 2e 32 35 2b 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b ┆0.25+PLOTDEFINTÆ28Å)); END;┆ 0x51800…51820 (32, 1, 2) 0d 0a 20 34 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 ┆ 4: BEGIN X:=PLOTDEFINTÆ1┆ 0x51820…51840 30 5d 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2a 28 30 2e 32 2b 42 79 ┆0Å-ROUND(PlotDefRealÆ20Å*(0.2+By┆ 0x51840…51860 74 65 54 69 74 6c 65 5b 30 5d 29 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 ┆teTitleÆ0Å)); Y:=PLOTDEFINT┆ 0x51860…51880 5b 39 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 32 35 2b ┆Æ9Å+ROUND(PlotDefRealÆ21Å*(0.25+┆ 0x51880…518a0 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 65 6e ┆PLOTDEFINTÆ28Å)); END; en┆ 0x518a0…518c0 64 3b 0d 0a 50 4c 41 43 45 55 50 28 58 2c 59 29 3b 0d 0a 50 4c 54 4c 41 42 45 4c 28 54 49 54 4c ┆d; PLACEUP(X,Y); PLTLABEL(TITL┆ 0x518c0…518e0 45 29 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 38 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b ┆E); PLOTDEFINTÆ28Å:=PLOTDEFINTÆ┆ 0x518e0…51900 32 38 5d 2b 31 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 43 4f 4d 4d 45 4e ┆28Å+1; END; PROCEDURE COMMEN┆ 0x51900…51920 54 28 54 49 54 4c 45 3a 20 53 54 52 38 30 3b 43 4f 4d 4d 45 4e 54 4e 55 4d 42 45 52 3a 20 49 4e ┆T(TITLE: STR80;COMMENTNUMBER: IN┆ 0x51920…51940 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 58 2c 59 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 ┆TEGER); VAR X,Y: INTEGER; ┆ 0x51940…51960 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 2e 2e 38 30 5d 20 6f 66 20 62 79 74 65 ┆ByteTitle: array Æ0..80Å of byte┆ 0x51960…51980 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a 63 61 73 65 20 50 6c 6f 74 44 65 66 49 ┆ at Title; BEGIN case PlotDefI┆ 0x51980…519a0 6e 74 5b 32 37 5d 20 6f 66 0d 0a 20 31 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f ┆ntÆ27Å of 1: BEGIN X:=PLO┆ 0x519a0…519c0 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d ┆TDEFINTÆ8Å+ROUND(PlotDefRealÆ20Å┆ 0x519c0…519e0 2f 32 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 31 5d 2d 52 4f 55 4e ┆/2); Y:=PLOTDEFINTÆ11Å-ROUN┆ 0x519e0…51a00 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 37 35 2b 43 4f 4d 4d 45 4e 54 4e ┆D(PlotDefRealÆ21Å*(0.75+COMMENTN┆ 0x51a00…51a20 55 4d 42 45 52 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 32 3a 20 42 45 47 49 4e 0d 0a 20 ┆UMBER)); END; 2: BEGIN ┆ 0x51a20…51a40 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 ┆ X:=PLOTDEFINTÆ10Å-ROUND(PlotD┆ 0x51a40…51a60 65 66 52 65 61 6c 5b 32 30 5d 2a 28 30 2e 32 2b 42 79 74 65 54 69 74 6c 65 5b 30 5d 29 29 3b 0d ┆efRealÆ20Å*(0.2+ByteTitleÆ0Å)); ┆ 0x51a60…51a80 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 31 5d 2d 52 4f 55 4e 44 28 50 6c 6f ┆ Y:=PLOTDEFINTÆ11Å-ROUND(Plo┆ 0x51a80…51aa0 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 37 35 2b 43 4f 4d 4d 45 4e 54 4e 55 4d 42 45 52 ┆tDefRealÆ21Å*(0.75+COMMENTNUMBER┆ 0x51aa0…51ac0 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 33 3a 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 3a ┆)); END; 3: BEGIN X:┆ 0x51ac0…51ae0 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c ┆=PLOTDEFINTÆ8Å+ROUND(PlotDefReal┆ 0x51ae0…51b00 5b 32 30 5d 2f 32 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 39 5d 2b 52 ┆Æ20Å/2); Y:=PLOTDEFINTÆ9Å+R┆ 0x51b00…51b20 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 32 35 2b 43 4f 4d 4d 45 ┆OUND(PlotDefRealÆ21Å*(0.25+COMME┆ 0x51b20…51b40 4e 54 4e 55 4d 42 45 52 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 34 3a 20 42 45 47 49 4e ┆NTNUMBER)); END; 4: BEGIN┆ 0x51b40…51b60 0d 0a 20 20 20 20 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 52 4f 55 4e 44 28 50 6c ┆ X:=PLOTDEFINTÆ10Å-ROUND(Pl┆ 0x51b60…51b80 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 2a 28 30 2e 32 2b 42 79 74 65 54 69 74 6c 65 5b 30 5d 29 ┆otDefRealÆ20Å*(0.2+ByteTitleÆ0Å)┆ 0x51b80…51ba0 29 3b 0d 0a 20 20 20 20 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 39 5d 2b 52 4f 55 4e 44 28 50 ┆); Y:=PLOTDEFINTÆ9Å+ROUND(P┆ 0x51ba0…51bc0 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 30 2e 32 35 2b 43 4f 4d 4d 45 4e 54 4e 55 4d 42 ┆lotDefRealÆ21Å*(0.25+COMMENTNUMB┆ 0x51bc0…51be0 45 52 29 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 65 6e 64 3b 0d 0a 50 4c 41 43 45 55 50 28 ┆ER)); END; end; PLACEUP(┆ 0x51be0…51c00 58 2c 59 29 3b 0d 0a 50 4c 54 4c 41 42 45 4c 28 54 49 54 4c 45 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d ┆X,Y); PLTLABEL(TITLE); END; ┆ 0x51c00…51c20 (32, 1, 3) 0a 50 52 4f 43 45 44 55 52 45 20 6d 61 72 6b 63 72 6f 73 73 28 58 2c 59 2c 72 61 64 69 75 73 3a ┆ PROCEDURE markcross(X,Y,radius:┆ 0x51c20…51c40 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 2c 59 29 ┆ INTEGER); BEGIN moveto(X,Y)┆ 0x51c40…51c60 3b 20 64 72 61 77 72 65 6c 28 2d 72 61 64 69 75 73 2c 2d 72 61 64 69 75 73 29 3b 20 64 72 61 77 ┆; drawrel(-radius,-radius); draw┆ 0x51c60…51c80 72 65 6c 28 32 2a 72 61 64 69 75 73 2c 32 2a 72 61 64 69 75 73 29 3b 0d 0a 20 20 6d 6f 76 65 72 ┆rel(2*radius,2*radius); mover┆ 0x51c80…51ca0 65 6c 28 30 2c 2d 32 2a 72 61 64 69 75 73 29 3b 20 64 72 61 77 72 65 6c 28 2d 32 2a 72 61 64 69 ┆el(0,-2*radius); drawrel(-2*radi┆ 0x51ca0…51cc0 75 73 2c 32 2a 72 61 64 69 75 73 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆us,2*radius); END; PROCEDURE┆ 0x51cc0…51ce0 20 6d 61 72 6b 70 6c 75 73 28 58 2c 59 2c 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 52 29 3b 0d ┆ markplus(X,Y,radius: INTEGER); ┆ 0x51ce0…51d00 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 2c 59 29 3b 20 64 72 61 77 72 65 6c 28 30 ┆ BEGIN moveto(X,Y); drawrel(0┆ 0x51d00…51d20 2c 72 61 64 69 75 73 29 3b 20 64 72 61 77 72 65 6c 28 30 2c 2d 32 2a 72 61 64 69 75 73 29 3b 0d ┆,radius); drawrel(0,-2*radius); ┆ 0x51d20…51d40 0a 20 20 6d 6f 76 65 72 65 6c 28 2d 72 61 64 69 75 73 2c 72 61 64 69 75 73 29 3b 20 64 72 61 77 ┆ moverel(-radius,radius); draw┆ 0x51d40…51d60 72 65 6c 28 32 2a 72 61 64 69 75 73 2c 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 ┆rel(2*radius,0); END; PROCED┆ 0x51d60…51d80 55 52 45 20 6d 61 72 6b 68 61 73 68 28 58 2c 59 2c 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 52 ┆URE markhash(X,Y,radius: INTEGER┆ 0x51d80…51da0 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 2d 72 61 64 69 75 73 2c 28 72 61 ┆); BEGIN moverel(-radius,(ra┆ 0x51da0…51dc0 64 69 75 73 20 44 49 56 20 32 29 29 3b 20 64 72 61 77 72 65 6c 28 32 2a 72 61 64 69 75 73 2c 30 ┆dius DIV 2)); drawrel(2*radius,0┆ 0x51dc0…51de0 29 3b 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 2d 32 2a 72 61 64 69 75 73 2c 2d 32 2a 28 72 61 64 69 ┆); moverel(-2*radius,-2*(radi┆ 0x51de0…51e00 75 73 20 44 49 56 20 32 29 29 3b 20 64 72 61 77 72 65 6c 28 32 2a 72 61 64 69 75 73 2c 30 29 3b ┆us DIV 2)); drawrel(2*radius,0);┆ 0x51e00…51e20 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 2d 72 61 64 69 75 73 2d 28 72 61 64 69 75 73 20 44 49 56 20 ┆ moverel(-radius-(radius DIV ┆ 0x51e20…51e40 32 29 2c 2d 28 72 61 64 69 75 73 20 44 49 56 20 32 29 29 3b 20 64 72 61 77 72 65 6c 28 30 2c 32 ┆2),-(radius DIV 2)); drawrel(0,2┆ 0x51e40…51e60 2a 72 61 64 69 75 73 29 3b 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 72 61 64 69 75 73 2c 30 29 3b 20 ┆*radius); moverel(radius,0); ┆ 0x51e60…51e80 64 72 61 77 72 65 6c 28 30 2c 2d 32 2a 72 61 64 69 75 73 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆drawrel(0,-2*radius); END; P┆ 0x51e80…51ea0 52 4f 43 45 44 55 52 45 20 6d 61 72 6b 79 28 58 2c 59 2c 72 61 64 69 75 73 3a 20 49 4e 54 45 47 ┆ROCEDURE marky(X,Y,radius: INTEG┆ 0x51ea0…51ec0 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 58 2c 59 29 3b 0d 0a 20 20 6d ┆ER); BEGIN moveto(X,Y); m┆ 0x51ec0…51ee0 6f 76 65 72 65 6c 28 30 2c 2d 72 61 64 69 75 73 29 3b 0d 0a 20 20 64 72 61 77 72 65 6c 28 30 2c ┆overel(0,-radius); drawrel(0,┆ 0x51ee0…51f00 72 61 64 69 75 73 29 3b 0d 0a 20 20 64 72 61 77 72 65 6c 28 2d 72 61 64 69 75 73 2c 72 61 64 69 ┆radius); drawrel(-radius,radi┆ 0x51f00…51f20 75 73 29 3b 0d 0a 20 20 6d 6f 76 65 72 65 6c 28 72 61 64 69 75 73 2c 2d 72 61 64 69 75 73 29 3b ┆us); moverel(radius,-radius);┆ 0x51f20…51f40 0d 0a 20 20 64 72 61 77 72 65 6c 28 72 61 64 69 75 73 2c 72 61 64 69 75 73 29 3b 0d 0a 45 4e 44 ┆ drawrel(radius,radius); END┆ 0x51f40…51f60 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 41 52 4b 45 52 28 58 2c 59 2c 53 59 4d 42 4f 4c ┆; PROCEDURE MARKER(X,Y,SYMBOL┆ 0x51f60…51f80 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 4d 41 52 4b 45 52 53 49 5a 45 3a 20 49 4e 54 ┆: INTEGER); VAR MARKERSIZE: INT┆ 0x51f80…51fa0 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 4d 41 52 4b 45 52 53 49 5a 45 3a 3d 31 36 3b 0d 0a 49 ┆EGER; BEGIN MARKERSIZE:=16; I┆ 0x51fa0…51fc0 46 20 53 59 4d 42 4f 4c 3d 30 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 50 4c 41 43 45 44 ┆F SYMBOL=0 THEN BEGIN PLACED┆ 0x51fc0…51fe0 4f 57 4e 28 58 2c 59 29 3b 0d 0a 20 50 45 4e 55 50 3b 0d 0a 20 45 4e 44 3b 0d 0a 49 46 20 53 59 ┆OWN(X,Y); PENUP; END; IF SY┆ 0x51fe0…52000 4d 42 4f 4c 3c 31 30 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 41 52 45 41 46 49 4c 4c 54 ┆MBOL<10 THEN BEGIN AREAFILLT┆ 0x52000…52020 (32, 1, 4) 59 50 45 28 31 2c 30 2c 30 29 3b 0d 0a 20 63 61 73 65 20 53 79 6d 62 6f 6c 20 6f 66 0d 0a 20 20 ┆YPE(1,0,0); case Symbol of ┆ 0x52020…52040 31 3a 20 46 49 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 ┆1: FILLWEDGE(X,Y,MARKERSIZE,0,36┆ 0x52040…52060 30 2c 35 29 3b 20 20 20 20 20 7b 20 46 69 6c 6c 65 64 20 63 69 72 63 6c 65 20 7d 0d 0a 20 20 32 ┆0,5); æ Filled circle å 2┆ 0x52060…52080 3a 20 46 49 4c 4c 52 45 43 54 41 4e 47 4c 45 28 58 2d 4d 41 52 4b 45 52 53 49 5a 45 2c 59 2d 4d ┆: FILLRECTANGLE(X-MARKERSIZE,Y-M┆ 0x52080…520a0 41 52 4b 45 52 53 49 5a 45 2c 32 2a 4d 41 52 4b 45 52 53 49 5a 45 2c 32 2a 4d 41 52 4b 45 52 53 ┆ARKERSIZE,2*MARKERSIZE,2*MARKERS┆ 0x520a0…520c0 49 5a 45 29 3b 20 7b 20 46 69 6c 6c 65 64 20 73 71 75 61 72 65 20 7d 0d 0a 20 20 33 3a 20 46 49 ┆IZE); æ Filled square å 3: FI┆ 0x520c0…520e0 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 30 2c 39 30 29 ┆LLWEDGE(X,Y,MARKERSIZE,0,360,90)┆ 0x520e0…52100 3b 20 20 20 20 7b 20 46 69 6c 6c 65 64 20 64 69 61 6d 6f 6e 64 20 7d 0d 0a 20 20 34 3a 20 46 49 ┆; æ Filled diamond å 4: FI┆ 0x52100…52120 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 2d 33 30 2c 33 36 30 2c 31 ┆LLWEDGE(X,Y,MARKERSIZE,-30,360,1┆ 0x52120…52140 32 30 29 3b 20 7b 20 46 69 6c 6c 65 64 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 75 70 20 ┆20); æ Filled triangle, edge up ┆ 0x52140…52160 7d 0d 0a 20 20 35 3a 20 46 49 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 ┆å 5: FILLWEDGE(X,Y,MARKERSIZE┆ 0x52160…52180 2c 33 30 2c 33 36 30 2c 31 32 30 29 3b 20 20 7b 20 46 69 6c 6c 65 64 20 74 72 69 61 6e 67 6c 65 ┆,30,360,120); æ Filled triangle┆ 0x52180…521a0 2c 20 65 64 67 65 20 64 6f 77 6e 20 7d 0d 0a 20 20 36 3a 20 46 49 4c 4c 57 45 44 47 45 28 58 2c ┆, edge down å 6: FILLWEDGE(X,┆ 0x521a0…521c0 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 30 2c 37 32 29 3b 20 20 20 20 7b 20 46 69 6c ┆Y,MARKERSIZE,0,360,72); æ Fil┆ 0x521c0…521e0 6c 65 64 20 50 65 6e 74 61 67 6f 6e 20 7d 0d 0a 20 20 37 3a 20 46 49 4c 4c 57 45 44 47 45 28 58 ┆led Pentagon å 7: FILLWEDGE(X┆ 0x521e0…52200 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 31 38 2c 33 36 30 2c 36 30 29 3b 20 20 20 7b 20 46 69 ┆,Y,MARKERSIZE,18,360,60); æ Fi┆ 0x52200…52220 6c 6c 65 64 20 48 65 78 61 67 6f 6e 20 7d 0d 0a 20 20 38 3a 20 42 45 47 49 4e 20 20 20 20 20 20 ┆lled Hexagon å 8: BEGIN ┆ 0x52220…52240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 46 69 ┆ æ Fi┆ 0x52240…52260 6c 6c 65 64 20 73 74 61 72 74 20 7d 0d 0a 20 20 20 20 20 46 49 4c 4c 57 45 44 47 45 28 58 2c 59 ┆lled start å FILLWEDGE(X,Y┆ 0x52260…52280 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 2d 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 20 ┆,MARKERSIZE,-30,360,120); ┆ 0x52280…522a0 46 49 4c 4c 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 33 30 2c 33 36 30 2c ┆FILLWEDGE(X,Y,MARKERSIZE,30,360,┆ 0x522a0…522c0 31 32 30 29 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 53 59 4d 42 4f ┆120); END; end; SYMBO┆ 0x522c0…522e0 4c 3a 3d 53 59 4d 42 4f 4c 2b 31 30 3b 0d 0a 20 45 4e 44 3b 0d 0a 63 61 73 65 20 53 79 6d 62 6f ┆L:=SYMBOL+10; END; case Symbo┆ 0x522e0…52300 6c 20 6f 66 0d 0a 20 31 31 3a 20 4d 41 52 4b 43 49 52 43 4c 45 28 58 2c 59 2c 4d 41 52 4b 45 52 ┆l of 11: MARKCIRCLE(X,Y,MARKER┆ 0x52300…52320 53 49 5a 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 43 69 72 63 6c 65 20 20 20 20 20 7d ┆SIZE); æ Circle å┆ 0x52320…52340 0d 0a 20 31 32 3a 20 4d 41 52 4b 52 45 43 54 41 4e 47 4c 45 28 58 2d 4d 41 52 4b 45 52 53 49 5a ┆ 12: MARKRECTANGLE(X-MARKERSIZ┆ 0x52340…52360 45 2c 59 2d 4d 41 52 4b 45 52 53 49 5a 45 2c 32 2a 4d 41 52 4b 45 52 53 49 5a 45 2c 32 2a 4d 41 ┆E,Y-MARKERSIZE,2*MARKERSIZE,2*MA┆ 0x52360…52380 52 4b 45 52 53 49 5a 45 29 3b 20 7b 20 73 71 75 61 72 65 20 7d 0d 0a 20 31 33 3a 20 4d 41 52 4b ┆RKERSIZE); æ square å 13: MARK┆ 0x52380…523a0 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 30 2c 39 30 29 3b 20 ┆WEDGE(X,Y,MARKERSIZE,0,360,90); ┆ 0x523a0…523c0 20 20 20 7b 20 64 69 61 6d 6f 6e 64 20 20 20 20 7d 0d 0a 20 31 34 3a 20 4d 41 52 4b 57 45 44 47 ┆ æ diamond å 14: MARKWEDG┆ 0x523c0…523e0 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 2d 33 30 2c 33 36 30 2c 31 32 30 29 3b 20 7b ┆E(X,Y,MARKERSIZE,-30,360,120); æ┆ 0x523e0…52400 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 75 70 20 7d 0d 0a 20 31 35 3a 20 4d 41 52 4b 57 ┆ triangle, edge up å 15: MARKW┆ 0x52400…52420 (32, 1, 5) 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 33 30 2c 33 36 30 2c 31 32 30 29 3b ┆EDGE(X,Y,MARKERSIZE,30,360,120);┆ 0x52420…52440 20 20 7b 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 64 6f 77 6e 20 7d 0d 0a 20 31 36 3a 20 ┆ æ triangle, edge down å 16: ┆ 0x52440…52460 4d 41 52 4b 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 31 38 2c 33 36 30 2c ┆MARKWEDGE(X,Y,MARKERSIZE,18,360,┆ 0x52460…52480 37 32 29 3b 20 20 20 7b 20 70 65 6e 74 61 67 6f 6e 20 20 20 7d 0d 0a 20 31 37 3a 20 4d 41 52 4b ┆72); æ pentagon å 17: MARK┆ 0x52480…524a0 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 30 2c 33 36 30 2c 36 30 29 3b 20 ┆WEDGE(X,Y,MARKERSIZE,0,360,60); ┆ 0x524a0…524c0 20 20 20 7b 20 68 65 78 61 67 6f 6e 20 20 20 20 7d 0d 0a 20 31 38 3a 20 20 20 20 20 20 20 20 20 ┆ æ hexagon å 18: ┆ 0x524c0…524e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ┆ (┆ 0x524e0…52500 2a 20 53 54 41 52 20 2a 29 0d 0a 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 4d 41 52 4b ┆* STAR *) BEGIN MARK┆ 0x52500…52520 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 2c 2d 33 30 2c 33 36 30 2c 31 32 30 ┆WEDGE(X,Y,MARKERSIZE,-30,360,120┆ 0x52520…52540 29 3b 0d 0a 20 20 20 20 20 4d 41 52 4b 57 45 44 47 45 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a ┆); MARKWEDGE(X,Y,MARKERSIZ┆ 0x52540…52560 45 2c 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 32 31 3a 20 ┆E,30,360,120); END; 21: ┆ 0x52560…52580 4d 41 52 4b 43 52 4f 53 53 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 29 3b 20 20 20 20 20 20 ┆MARKCROSS(X,Y,MARKERSIZE); ┆ 0x52580…525a0 20 20 20 20 20 20 20 7b 20 63 72 6f 73 73 20 20 20 20 20 20 7d 0d 0a 20 32 32 3a 20 4d 41 52 4b ┆ æ cross å 22: MARK┆ 0x525a0…525c0 50 4c 55 53 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 ┆PLUS(X,Y,MARKERSIZE); ┆ 0x525c0…525e0 20 20 20 7b 20 70 6c 75 73 20 20 20 20 20 20 20 7d 0d 0a 20 32 33 3a 20 4d 41 52 4b 48 41 53 48 ┆ æ plus å 23: MARKHASH┆ 0x525e0…52600 28 58 2c 59 2c 4d 41 52 4b 45 52 53 49 5a 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b ┆(X,Y,MARKERSIZE); æ┆ 0x52600…52620 20 68 61 73 68 20 20 20 20 20 20 20 7d 0d 0a 20 32 34 3a 20 4d 41 52 4b 59 28 58 2c 59 2c 4d 41 ┆ hash å 24: MARKY(X,Y,MA┆ 0x52620…52640 52 4b 45 52 53 49 5a 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 20 20 59 ┆RKERSIZE); æ Y┆ 0x52640…52660 20 20 20 20 7d 20 0d 0a 20 33 33 2e 2e 31 32 37 3a 20 4d 41 52 4b 53 59 4d 42 4f 4c 4d 4f 44 45 ┆ å 33..127: MARKSYMBOLMODE┆ 0x52660…52680 28 58 2c 59 2c 53 59 4d 42 4f 4c 29 3b 0d 0a 20 65 6e 64 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆(X,Y,SYMBOL); end; END; PR┆ 0x52680…526a0 4f 43 45 44 55 52 45 20 46 52 41 4d 45 3b 0d 0a 42 45 47 49 4e 0d 0a 4d 61 72 6b 52 65 63 74 61 ┆OCEDURE FRAME; BEGIN MarkRecta┆ 0x526a0…526c0 6e 67 6c 65 28 50 6c 6f 74 44 65 66 49 6e 74 5b 38 5d 2c 50 6c 6f 74 44 65 66 49 6e 74 5b 39 5d ┆ngle(PlotDefIntÆ8Å,PlotDefIntÆ9Å┆ 0x526c0…526e0 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c 6f 74 44 65 66 49 6e 74 5b 31 30 5d 2d ┆, PlotDefIntÆ10Å-┆ 0x526e0…52700 50 6c 6f 74 44 65 66 49 6e 74 5b 38 5d 2c 50 6c 6f 74 44 65 66 49 6e 74 5b 31 31 5d 2d 50 6c 6f ┆PlotDefIntÆ8Å,PlotDefIntÆ11Å-Plo┆ 0x52700…52720 74 44 65 66 49 6e 74 5b 39 5d 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆tDefIntÆ9Å); END; PROCEDURE ┆ 0x52720…52740 4c 45 47 45 4e 44 50 4f 53 49 54 49 4f 4e 28 58 2c 59 3a 20 52 45 41 4c 3b 4c 45 47 50 52 4c 49 ┆LEGENDPOSITION(X,Y: REAL;LEGPRLI┆ 0x52740…52760 4e 45 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 ┆NE: INTEGER); BEGIN PLOTDEFINT┆ 0x52760…52780 5b 32 30 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 58 2a 34 30 30 29 ┆Æ20Å:=PLOTDEFINTÆ8Å+ROUND(X*400)┆ 0x52780…527a0 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 31 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 39 5d ┆; PLOTDEFINTÆ21Å:=PLOTDEFINTÆ9Å┆ 0x527a0…527c0 2b 52 4f 55 4e 44 28 59 2a 34 30 30 29 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 3a 3d ┆+ROUND(Y*400); PLOTDEFINTÆ22Å:=┆ 0x527c0…527e0 4c 45 47 50 52 4c 49 4e 45 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 33 5d 3a 3d 30 3b 0d 0a ┆LEGPRLINE; PLOTDEFINTÆ23Å:=0; ┆ 0x527e0…52800 50 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 3a 3d 30 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 ┆PLOTDEFINTÆ24Å:=0; END; PROC┆ 0x52800…52820 (33, 0, 1) 45 44 55 52 45 20 4d 41 4b 45 4f 52 44 49 4e 41 52 59 4c 45 47 45 4e 44 28 58 2c 59 2c 4c 54 59 ┆EDURE MAKEORDINARYLEGEND(X,Y,LTY┆ 0x52820…52840 50 45 2c 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 45 52 3b 54 49 54 4c 45 3a 20 53 54 52 38 30 29 ┆PE,SYMBOL: INTEGER;TITLE: STR80)┆ 0x52840…52860 3b 0d 0a 56 41 52 20 58 52 65 6c 2c 59 52 45 4c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 ┆; VAR XRel,YREL: INTEGER; ┆ 0x52860…52880 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 2e 2e 38 30 5d 20 6f 66 20 62 79 74 65 ┆ByteTitle: array Æ0..80Å of byte┆ 0x52880…528a0 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a 49 46 20 53 59 4d 42 4f 4c 3e 30 20 54 ┆ at Title; BEGIN IF SYMBOL>0 T┆ 0x528a0…528c0 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 4d 41 52 4b 45 52 28 58 2c 59 2c 53 59 4d 42 4f 4c 29 ┆HEN BEGIN MARKER(X,Y,SYMBOL)┆ 0x528c0…528e0 3b 0d 0a 20 49 46 20 4c 54 59 50 45 3c 3d 30 20 54 48 45 4e 20 4d 41 52 4b 45 52 28 58 2b 32 30 ┆; IF LTYPE<=0 THEN MARKER(X+20┆ 0x528e0…52900 30 2c 59 2c 53 59 4d 42 4f 4c 29 3b 0d 0a 20 4d 41 52 4b 45 52 28 58 2b 34 30 30 2c 59 2c 53 59 ┆0,Y,SYMBOL); MARKER(X+400,Y,SY┆ 0x52900…52920 4d 42 4f 4c 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 49 46 20 4c 54 59 50 45 3e 30 20 54 48 45 4e 0d 0a ┆MBOL); END; IF LTYPE>0 THEN ┆ 0x52920…52940 20 42 45 47 49 4e 0d 0a 20 4c 49 4e 45 54 59 50 45 28 4c 54 59 50 45 29 3b 0d 0a 20 50 4c 41 43 ┆ BEGIN LINETYPE(LTYPE); PLAC┆ 0x52940…52960 45 44 4f 57 4e 28 58 2c 59 29 3b 0d 0a 20 50 4c 54 52 45 4c 41 54 49 56 45 28 34 30 30 2c 30 29 ┆EDOWN(X,Y); PLTRELATIVE(400,0)┆ 0x52960…52980 3b 0d 0a 20 50 45 4e 55 50 3b 0d 0a 20 4c 49 4e 45 54 59 50 45 28 31 29 3b 0d 0a 20 45 4e 44 3b ┆; PENUP; LINETYPE(1); END;┆ 0x52980…529a0 0d 0a 58 52 65 6c 3a 3d 72 6f 75 6e 64 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 3b 0d ┆ XRel:=round(PlotDefRealÆ20Å); ┆ 0x529a0…529c0 0a 59 52 45 4c 3a 3d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 30 2e 32 ┆ YREL:=ROUND(PlotDefRealÆ21Å*0.2┆ 0x529c0…529e0 35 29 3b 0d 0a 49 46 20 28 53 59 4d 42 4f 4c 3c 3d 30 29 20 41 4e 44 20 28 4c 54 59 50 45 3c 3d ┆5); IF (SYMBOL<=0) AND (LTYPE<=┆ 0x529e0…52a00 30 29 20 54 48 45 4e 20 50 4c 41 43 45 55 50 28 58 2c 59 2d 59 52 45 4c 29 0d 0a 45 4c 53 45 20 ┆0) THEN PLACEUP(X,Y-YREL) ELSE ┆ 0x52a00…52a20 49 46 20 53 59 4d 42 4f 4c 3c 3d 30 20 54 48 45 4e 20 50 4c 41 43 45 55 50 28 58 2b 34 30 30 2b ┆IF SYMBOL<=0 THEN PLACEUP(X+400+┆ 0x52a20…52a40 58 52 45 4c 2c 59 2d 59 52 45 4c 29 0d 0a 45 4c 53 45 20 50 4c 41 43 45 55 50 28 58 2b 34 30 30 ┆XREL,Y-YREL) ELSE PLACEUP(X+400┆ 0x52a40…52a60 2b 58 52 45 4c 2b 52 4f 55 4e 44 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b 35 5d 2d 50 4c 4f 54 44 ┆+XREL+ROUND((PLOTDEFINTÆ5Å-PLOTD┆ 0x52a60…52a80 45 46 49 4e 54 5b 34 5d 29 2a 50 4c 4f 54 44 45 46 52 45 41 4c 5b 33 5d 2f 32 30 30 29 2c 0d 0a ┆EFINTÆ4Å)*PLOTDEFREALÆ3Å/200), ┆ 0x52a80…52aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 59 2d 59 52 45 4c 29 3b 0d 0a 50 4c 54 4c 41 42 45 4c 28 ┆ Y-YREL); PLTLABEL(┆ 0x52aa0…52ac0 54 49 54 4c 45 29 3b 0d 0a 49 46 20 42 79 74 65 54 69 74 6c 65 5b 30 5d 3e 50 4c 4f 54 44 45 46 ┆TITLE); IF ByteTitleÆ0Å>PLOTDEF┆ 0x52ac0…52ae0 49 4e 54 5b 32 33 5d 20 54 48 45 4e 20 50 4c 4f 54 44 45 46 49 4e 54 5b 32 33 5d 3a 3d 42 79 74 ┆INTÆ23Å THEN PLOTDEFINTÆ23Å:=Byt┆ 0x52ae0…52b00 65 54 69 74 6c 65 5b 30 5d 3b 0d 0a 50 4c 4f 54 44 45 46 49 4e 54 5b 33 32 5d 3a 3d 30 3b 0d 0a ┆eTitleÆ0Å; PLOTDEFINTÆ32Å:=0; ┆ 0x52b00…52b20 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 41 4b 45 50 41 54 54 45 52 4e 4c 45 47 ┆END; PROCEDURE MAKEPATTERNLEG┆ 0x52b20…52b40 45 4e 44 28 58 2c 59 2c 50 41 54 54 45 52 4e 3a 20 49 4e 54 45 47 45 52 3b 54 49 54 4c 45 3a 20 ┆END(X,Y,PATTERN: INTEGER;TITLE: ┆ 0x52b40…52b60 53 54 52 38 30 29 3b 0d 0a 56 41 52 20 42 79 74 65 54 69 74 6c 65 3a 20 61 72 72 61 79 20 5b 30 ┆STR80); VAR ByteTitle: array Æ0┆ 0x52b60…52b80 2e 2e 38 30 5d 20 6f 66 20 62 79 74 65 20 61 74 20 54 69 74 6c 65 3b 0d 0a 42 45 47 49 4e 0d 0a ┆..80Å of byte at Title; BEGIN ┆ 0x52b80…52ba0 4d 41 52 4b 52 45 43 54 41 4e 47 4c 45 28 58 2c 59 2d 31 30 30 2c 34 30 30 2c 32 30 30 29 3b 0d ┆MARKRECTANGLE(X,Y-100,400,200); ┆ 0x52ba0…52bc0 0a 49 46 20 50 41 54 54 45 52 4e 3e 30 20 54 48 45 4e 0d 0a 20 42 45 47 49 4e 0d 0a 20 46 49 4c ┆ IF PATTERN>0 THEN BEGIN FIL┆ 0x52bc0…52be0 4c 50 41 54 54 45 52 4e 28 50 41 54 54 45 52 4e 29 3b 0d 0a 20 46 49 4c 4c 52 45 43 54 41 4e 47 ┆LPATTERN(PATTERN); FILLRECTANG┆ 0x52be0…52c00 4c 45 28 58 2c 59 2d 31 30 30 2c 34 30 30 2c 32 30 30 29 3b 0d 0a 20 45 4e 44 3b 0d 0a 50 4c 41 ┆LE(X,Y-100,400,200); END; PLA┆ 0x52c00…52c20 (33, 0, 2) 43 45 55 50 28 58 2b 34 30 30 2b 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d ┆CEUP(X+400+ROUND(PlotDefRealÆ20Å┆ 0x52c20…52c40 2b 28 50 4c 4f 54 44 45 46 49 4e 54 5b 35 5d 2d 50 4c 4f 54 44 45 46 49 4e 54 5b 34 5d 29 2a 50 ┆+(PLOTDEFINTÆ5Å-PLOTDEFINTÆ4Å)*P┆ 0x52c40…52c60 4c 4f 54 44 45 46 52 45 41 4c 5b 33 5d 2f 32 30 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆LOTDEFREALÆ3Å/200), ┆ 0x52c60…52c80 20 20 59 2d 52 4f 55 4e 44 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 30 2e 32 35 29 29 ┆ Y-ROUND(PlotDefRealÆ21Å*0.25))┆ 0x52c80…52ca0 3b 0d 0a 50 4c 54 4c 41 42 45 4c 28 54 49 54 4c 45 29 3b 0d 0a 49 46 20 42 79 74 65 54 69 74 6c ┆; PLTLABEL(TITLE); IF ByteTitl┆ 0x52ca0…52cc0 65 5b 30 5d 3e 50 4c 4f 54 44 45 46 49 4e 54 5b 32 33 5d 20 54 48 45 4e 20 50 4c 4f 54 44 45 46 ┆eÆ0Å>PLOTDEFINTÆ23Å THEN PLOTDEF┆ 0x52cc0…52ce0 49 4e 54 5b 32 33 5d 3a 3d 42 79 74 65 54 69 74 6c 65 5b 30 5d 3b 0d 0a 50 4c 4f 54 44 45 46 49 ┆INTÆ23Å:=ByteTitleÆ0Å; PLOTDEFI┆ 0x52ce0…52d00 4e 54 5b 33 32 5d 3a 3d 31 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4c 45 ┆NTÆ32Å:=1; END; PROCEDURE LE┆ 0x52d00…52d20 47 45 4e 44 28 54 69 74 6c 65 3a 20 53 74 72 38 30 3b 4c 45 47 4e 55 4d 42 45 52 2c 4c 54 59 50 ┆GEND(Title: Str80;LEGNUMBER,LTYP┆ 0x52d20…52d40 45 2c 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 58 52 45 4c 2c 4c 45 ┆E,SYMBOL: INTEGER); VAR XREL,LE┆ 0x52d40…52d60 47 53 2c 58 2c 59 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 4c 45 47 53 3a 3d 50 ┆GS,X,Y: INTEGER; BEGIN LEGS:=P┆ 0x52d60…52d80 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 4d 4f 44 20 31 30 3b 0d 0a 49 46 20 28 50 4c 4f 54 44 ┆LOTDEFINTÆ22Å MOD 10; IF (PLOTD┆ 0x52d80…52da0 45 46 49 4e 54 5b 32 32 5d 20 44 49 56 20 31 30 29 3d 30 20 54 48 45 4e 0d 0a 20 58 52 45 4c 3a ┆EFINTÆ22Å DIV 10)=0 THEN XREL:┆ 0x52da0…52dc0 3d 52 4f 55 4e 44 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 ┆=ROUND((PLOTDEFINTÆ8Å+PLOTDEFINT┆ 0x52dc0…52de0 5b 31 30 5d 2d 32 2a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 29 0d 0a 45 4c ┆Æ10Å-2*PLOTDEFINTÆ20Å)/LEGS) EL┆ 0x52de0…52e00 53 45 20 58 52 45 4c 3a 3d 52 4f 55 4e 44 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 50 ┆SE XREL:=ROUND((PLOTDEFINTÆ10Å-P┆ 0x52e00…52e20 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 29 3b 0d 0a 58 3a 3d 50 4c 4f 54 44 45 ┆LOTDEFINTÆ20Å)/LEGS); X:=PLOTDE┆ 0x52e20…52e40 46 49 4e 54 5b 32 30 5d 2b 58 52 45 4c 2a 28 28 4c 45 47 4e 55 4d 42 45 52 2d 31 29 20 4d 4f 44 ┆FINTÆ20Å+XREL*((LEGNUMBER-1) MOD┆ 0x52e40…52e60 20 4c 45 47 53 29 3b 0d 0a 59 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 31 5d 2d 72 6f 75 6e 64 ┆ LEGS); Y:=PLOTDEFINTÆ21Å-round┆ 0x52e60…52e80 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 2a 28 28 4c 45 47 4e 55 4d 42 45 52 2d 31 29 20 ┆(PlotDefRealÆ21Å*((LEGNUMBER-1) ┆ 0x52e80…52ea0 44 49 56 20 4c 45 47 53 29 29 3b 0d 0a 4d 41 4b 45 4f 52 44 49 4e 41 52 59 4c 45 47 45 4e 44 28 ┆DIV LEGS)); MAKEORDINARYLEGEND(┆ 0x52ea0…52ec0 58 2c 59 2c 4c 54 59 50 45 2c 53 59 4d 42 4f 4c 2c 54 49 54 4c 45 29 3b 0d 0a 49 46 20 4c 45 47 ┆X,Y,LTYPE,SYMBOL,TITLE); IF LEG┆ 0x52ec0…52ee0 4e 55 4d 42 45 52 3e 50 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 20 54 48 45 4e 20 50 4c 4f 54 44 ┆NUMBER>PLOTDEFINTÆ24Å THEN PLOTD┆ 0x52ee0…52f00 45 46 49 4e 54 5b 32 34 5d 3a 3d 4c 45 47 4e 55 4d 42 45 52 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆EFINTÆ24Å:=LEGNUMBER; END; P┆ 0x52f00…52f20 52 4f 43 45 44 55 52 45 20 50 41 54 54 45 52 4e 4c 45 47 45 4e 44 28 54 69 74 6c 65 3a 20 53 74 ┆ROCEDURE PATTERNLEGEND(Title: St┆ 0x52f20…52f40 72 38 30 3b 4c 45 47 4e 55 4d 42 45 52 2c 50 41 54 54 45 52 4e 3a 20 49 4e 54 45 47 45 52 29 3b ┆r80;LEGNUMBER,PATTERN: INTEGER);┆ 0x52f40…52f60 0d 0a 56 41 52 20 58 52 45 4c 2c 4c 45 47 53 2c 58 2c 59 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 ┆ VAR XREL,LEGS,X,Y: INTEGER; B┆ 0x52f60…52f80 45 47 49 4e 0d 0a 4c 45 47 53 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 4d 4f 44 20 31 ┆EGIN LEGS:=PLOTDEFINTÆ22Å MOD 1┆ 0x52f80…52fa0 30 3b 0d 0a 49 46 20 28 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 44 49 56 20 31 30 29 3d 30 ┆0; IF (PLOTDEFINTÆ22Å DIV 10)=0┆ 0x52fa0…52fc0 20 54 48 45 4e 0d 0a 20 58 52 45 4c 3a 3d 52 4f 55 4e 44 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b ┆ THEN XREL:=ROUND((PLOTDEFINTÆ┆ 0x52fc0…52fe0 38 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 32 2a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 ┆8Å+PLOTDEFINTÆ10Å-2*PLOTDEFINTÆ2┆ 0x52fe0…53000 30 5d 29 2f 4c 45 47 53 29 0d 0a 45 4c 53 45 20 58 52 45 4c 3a 3d 52 4f 55 4e 44 28 28 50 4c 4f ┆0Å)/LEGS) ELSE XREL:=ROUND((PLO┆ 0x53000…53020 (33, 0, 3) 54 44 45 46 49 4e 54 5b 31 30 5d 2d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 ┆TDEFINTÆ10Å-PLOTDEFINTÆ20Å)/LEGS┆ 0x53020…53040 29 3b 0d 0a 58 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 2b 58 52 45 4c 2a 28 28 4c 45 47 ┆); X:=PLOTDEFINTÆ20Å+XREL*((LEG┆ 0x53040…53060 4e 55 4d 42 45 52 2d 31 29 20 4d 4f 44 20 4c 45 47 53 29 3b 0d 0a 59 3a 3d 50 4c 4f 54 44 45 46 ┆NUMBER-1) MOD LEGS); Y:=PLOTDEF┆ 0x53060…53080 49 4e 54 5b 32 31 5d 2d 32 35 30 2a 28 28 4c 45 47 4e 55 4d 42 45 52 2d 31 29 20 44 49 56 20 4c ┆INTÆ21Å-250*((LEGNUMBER-1) DIV L┆ 0x53080…530a0 45 47 53 29 3b 0d 0a 4d 41 4b 45 50 41 54 54 45 52 4e 4c 45 47 45 4e 44 28 58 2c 59 2c 50 41 54 ┆EGS); MAKEPATTERNLEGEND(X,Y,PAT┆ 0x530a0…530c0 54 45 52 4e 2c 54 49 54 4c 45 29 3b 0d 0a 49 46 20 4c 45 47 4e 55 4d 42 45 52 3e 50 4c 4f 54 44 ┆TERN,TITLE); IF LEGNUMBER>PLOTD┆ 0x530c0…530e0 45 46 49 4e 54 5b 32 34 5d 20 54 48 45 4e 20 50 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 3a 3d 4c ┆EFINTÆ24Å THEN PLOTDEFINTÆ24Å:=L┆ 0x530e0…53100 45 47 4e 55 4d 42 45 52 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4c 45 47 ┆EGNUMBER; END; PROCEDURE LEG┆ 0x53100…53120 45 4e 44 46 52 41 4d 45 3b 0d 0a 56 41 52 20 50 4f 53 41 52 3a 20 41 52 52 41 59 20 5b 31 2e 2e ┆ENDFRAME; VAR POSAR: ARRAY Æ1..┆ 0x53120…53140 34 5d 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 4c 45 47 53 3a 20 49 4e 54 45 47 45 ┆4Å OF INTEGER; LEGS: INTEGE┆ 0x53140…53160 52 3b 0d 0a 20 20 20 20 58 52 45 4c 2c 59 52 45 4c 3a 20 52 45 41 4c 3b 0d 0a 42 45 47 49 4e 0d ┆R; XREL,YREL: REAL; BEGIN ┆ 0x53160…53180 0a 49 46 20 50 4c 4f 54 44 45 46 49 4e 54 5b 33 32 5d 3d 30 20 54 48 45 4e 20 59 52 45 4c 3a 3d ┆ IF PLOTDEFINTÆ32Å=0 THEN YREL:=┆ 0x53180…531a0 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 31 5d 0d 0a 45 4c 53 45 20 59 52 45 4c 3a 3d 32 35 30 3b ┆PlotDefRealÆ21Å ELSE YREL:=250;┆ 0x531a0…531c0 0d 0a 50 4f 53 41 52 5b 31 5d 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 2d 52 4f 55 4e 44 ┆ POSARÆ1Å:=PLOTDEFINTÆ20Å-ROUND┆ 0x531c0…531e0 28 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 3b 0d 0a 50 4f 53 41 52 5b 32 5d 3a 3d 50 4c ┆(PlotDefRealÆ20Å); POSARÆ2Å:=PL┆ 0x531e0…53200 4f 54 44 45 46 49 4e 54 5b 32 31 5d 2b 52 4f 55 4e 44 28 59 52 45 4c 2a 33 2f 34 29 3b 0d 0a 4c ┆OTDEFINTÆ21Å+ROUND(YREL*3/4); L┆ 0x53200…53220 45 47 53 3a 3d 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 4d 4f 44 20 31 30 3b 0d 0a 49 46 20 ┆EGS:=PLOTDEFINTÆ22Å MOD 10; IF ┆ 0x53220…53240 28 50 4c 4f 54 44 45 46 49 4e 54 5b 32 32 5d 20 44 49 56 20 31 30 29 3d 30 20 54 48 45 4e 0d 0a ┆(PLOTDEFINTÆ22Å DIV 10)=0 THEN ┆ 0x53240…53260 20 58 52 45 4c 3a 3d 28 50 4c 4f 54 44 45 46 49 4e 54 5b 38 5d 2b 50 4c 4f 54 44 45 46 49 4e 54 ┆ XREL:=(PLOTDEFINTÆ8Å+PLOTDEFINT┆ 0x53260…53280 5b 31 30 5d 2d 32 2a 50 4c 4f 54 44 45 46 49 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 0d 0a 45 4c 53 ┆Æ10Å-2*PLOTDEFINTÆ20Å)/LEGS ELS┆ 0x53280…532a0 45 20 58 52 45 4c 3a 3d 28 50 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 2d 50 4c 4f 54 44 45 46 49 ┆E XREL:=(PLOTDEFINTÆ10Å-PLOTDEFI┆ 0x532a0…532c0 4e 54 5b 32 30 5d 29 2f 4c 45 47 53 3b 0d 0a 50 4f 53 41 52 5b 34 5d 3a 3d 50 4c 4f 54 44 45 46 ┆NTÆ20Å)/LEGS; POSARÆ4Å:=PLOTDEF┆ 0x532c0…532e0 49 4e 54 5b 32 31 5d 2d 52 4f 55 4e 44 28 59 52 45 4c 2a 28 28 50 4c 4f 54 44 45 46 49 4e 54 5b ┆INTÆ21Å-ROUND(YREL*((PLOTDEFINTÆ┆ 0x532e0…53300 32 34 5d 2d 31 29 20 44 49 56 20 4c 45 47 53 29 2b 59 52 45 4c 2a 33 2f 34 29 3b 0d 0a 49 46 20 ┆24Å-1) DIV LEGS)+YREL*3/4); IF ┆ 0x53300…53320 50 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 3c 4c 45 47 53 20 54 48 45 4e 20 4c 45 47 53 3a 3d 50 ┆PLOTDEFINTÆ24Å<LEGS THEN LEGS:=P┆ 0x53320…53340 4c 4f 54 44 45 46 49 4e 54 5b 32 34 5d 3b 0d 0a 50 4f 53 41 52 5b 33 5d 3a 3d 50 4c 4f 54 44 45 ┆LOTDEFINTÆ24Å; POSARÆ3Å:=PLOTDE┆ 0x53340…53360 46 49 4e 54 5b 32 30 5d 2b 0d 0a 20 20 20 20 20 20 20 20 20 20 52 4f 55 4e 44 28 58 52 45 4c 2a ┆FINTÆ20Å+ ROUND(XREL*┆ 0x53360…53380 28 4c 45 47 53 2d 31 29 2b 34 30 30 2b 28 50 4c 4f 54 44 45 46 49 4e 54 5b 32 33 5d 2b 32 29 2a ┆(LEGS-1)+400+(PLOTDEFINTÆ23Å+2)*┆ 0x53380…533a0 50 6c 6f 74 44 65 66 52 65 61 6c 5b 32 30 5d 29 3b 0d 0a 49 46 20 50 4f 53 41 52 5b 33 5d 3e 50 ┆PlotDefRealÆ20Å); IF POSARÆ3Å>P┆ 0x533a0…533c0 4c 4f 54 44 45 46 49 4e 54 5b 31 30 5d 20 54 48 45 4e 20 50 4f 53 41 52 5b 33 5d 3a 3d 50 4c 4f ┆LOTDEFINTÆ10Å THEN POSARÆ3Å:=PLO┆ 0x533c0…533e0 54 44 45 46 49 4e 54 5b 31 30 5d 3b 0d 0a 49 46 20 50 4f 53 41 52 5b 34 5d 3e 50 4c 4f 54 44 45 ┆TDEFINTÆ10Å; IF POSARÆ4Å>PLOTDE┆ 0x533e0…53400 46 49 4e 54 5b 31 31 5d 20 54 48 45 4e 20 50 4f 53 41 52 5b 34 5d 3a 3d 50 4c 4f 54 44 45 46 49 ┆FINTÆ11Å THEN POSARÆ4Å:=PLOTDEFI┆ 0x53400…53420 (33, 0, 4) 4e 54 5b 31 31 5d 3b 0d 0a 4d 61 72 6b 52 65 63 74 61 6e 67 6c 65 28 50 6f 73 41 72 5b 31 5d 2c ┆NTÆ11Å; MarkRectangle(PosArÆ1Å,┆ 0x53420…53440 50 6f 73 41 72 5b 32 5d 2c 50 6f 73 41 72 5b 33 5d 2d 50 6f 73 41 72 5b 31 5d 2c 50 6f 73 41 72 ┆PosArÆ2Å,PosArÆ3Å-PosArÆ1Å,PosAr┆ 0x53440…53460 5b 34 5d 2d 50 6f 73 41 72 5b 32 5d 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆Æ4Å-PosArÆ2Å); END; PROCEDUR┆ 0x53460…53480 45 20 50 4c 4f 54 4c 49 4e 45 28 58 43 4d 2c 59 43 4d 3a 20 52 45 41 4c 3b 44 4f 57 4e 3a 20 42 ┆E PLOTLINE(XCM,YCM: REAL;DOWN: B┆ 0x53480…534a0 6f 6f 6c 65 61 6e 29 3b 0d 0a 42 45 47 49 4e 0d 0a 49 46 20 44 4f 57 4e 20 54 48 45 4e 20 50 65 ┆oolean); BEGIN IF DOWN THEN Pe┆ 0x534a0…534c0 6e 44 6f 77 6e 20 45 4c 53 45 20 50 65 6e 55 70 3b 0d 0a 50 4c 54 4c 49 4e 45 28 50 4c 4f 54 44 ┆nDown ELSE PenUp; PLTLINE(PLOTD┆ 0x534c0…534e0 45 46 49 4e 54 5b 38 5d 2b 52 4f 55 4e 44 28 58 43 4d 2a 34 30 30 29 2c 50 4c 4f 54 44 45 46 49 ┆EFINTÆ8Å+ROUND(XCM*400),PLOTDEFI┆ 0x534e0…53500 4e 54 5b 39 5d 2b 52 4f 55 4e 44 28 59 43 4d 2a 34 30 30 29 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆NTÆ9Å+ROUND(YCM*400)); END; ┆ 0x53500…53520 50 52 4f 43 45 44 55 52 45 20 50 4c 4f 54 4d 41 52 4b 45 52 28 58 43 4d 2c 59 43 4d 3a 20 49 4e ┆PROCEDURE PLOTMARKER(XCM,YCM: IN┆ 0x53520…53540 54 45 47 45 52 3b 53 59 4d 42 4f 4c 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a ┆TEGER;SYMBOL: INTEGER); BEGIN ┆ 0x53540…53560 4d 41 52 4b 45 52 28 58 43 4d 2c 59 43 4d 2c 53 59 4d 42 4f 4c 29 3b 0d 0a 45 4e 44 3b 0d 0a 00 ┆MARKER(XCM,YCM,SYMBOL); END; ┆ 0x53560…53580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x53580…535a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x13…] 0x53800…53820 (33, 0, 5) 28 2a 47 53 56 2d 4d 41 52 4b 2a 29 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 68 65 6c 74 61 6c 28 ┆(*GSV-MARK*) FUNCTION heltal(┆ 0x53820…53840 78 3a 52 45 41 4c 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 56 41 52 20 79 3a 20 69 6e 74 65 67 65 72 ┆x:REAL):INTEGER; VAR y: integer┆ 0x53840…53860 3b 0d 0a 42 45 47 49 4e 20 0d 0a 20 20 79 3a 3d 72 6f 75 6e 64 28 41 42 53 28 78 29 2d 30 2e 30 ┆; BEGIN y:=round(ABS(x)-0.0┆ 0x53860…53880 31 29 3b 0d 0a 20 20 49 46 20 78 3c 30 20 54 48 45 4e 20 68 65 6c 74 61 6c 3a 3d 79 2a 28 2d 31 ┆1); IF x<0 THEN heltal:=y*(-1┆ 0x53880…538a0 29 20 65 6c 73 65 20 68 65 6c 74 61 6c 3a 3d 79 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆) else heltal:=y; END; PROCE┆ 0x538a0…538c0 44 55 52 45 20 46 69 6c 6c 57 65 64 67 65 0d 0a 28 78 2c 79 2c 72 61 64 69 75 73 3a 49 4e 54 45 ┆DURE FillWedge (x,y,radius:INTE┆ 0x538c0…538e0 47 45 52 3b 20 73 74 61 72 74 61 6e 67 6c 65 2c 73 77 65 65 70 61 6e 67 6c 65 2c 63 68 6f 72 64 ┆GER; startangle,sweepangle,chord┆ 0x538e0…53900 61 6e 67 6c 65 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 43 4f 4e 53 54 20 50 68 69 20 3d 20 33 2e ┆angle: INTEGER); CONST Phi = 3.┆ 0x53900…53920 31 34 31 35 39 32 36 35 33 35 39 3b 0d 0a 56 41 52 0d 0a 20 20 4e 75 6d 2c 49 20 3a 20 49 6e 74 ┆14159265359; VAR Num,I : Int┆ 0x53920…53940 65 67 65 72 3b 0d 0a 20 20 46 61 63 20 20 20 3a 20 52 65 61 6c 3b 0d 0a 20 20 72 2c 78 31 2c 78 ┆eger; Fac : Real; r,x1,x┆ 0x53940…53960 32 2c 79 31 2c 79 32 3a 20 69 6e 74 65 67 65 72 3b 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 61 ┆2,y1,y2: integer; BEGIN Fa┆ 0x53960…53980 63 3a 3d 50 68 69 2f 31 38 30 2e 30 3b 0d 0a 20 20 4e 75 6d 3a 3d 53 77 65 65 70 41 6e 67 6c 65 ┆c:=Phi/180.0; Num:=SweepAngle┆ 0x53980…539a0 20 64 69 76 20 43 68 6f 72 64 41 6e 67 6c 65 3b 0d 0a 20 20 46 4f 52 20 72 3a 3d 31 20 74 6f 20 ┆ div ChordAngle; FOR r:=1 to ┆ 0x539a0…539c0 72 61 64 69 75 73 20 44 4f 0d 0a 20 20 42 45 47 49 4e 20 0d 0a 20 20 20 20 78 31 3a 3d 78 2b 68 ┆radius DO BEGIN x1:=x+h┆ 0x539c0…539e0 65 6c 74 61 6c 28 63 6f 73 28 53 74 61 72 74 41 6e 67 6c 65 2a 46 61 63 29 2a 72 29 3b 0d 0a 20 ┆eltal(cos(StartAngle*Fac)*r); ┆ 0x539e0…53a00 20 20 20 79 31 3a 3d 79 2b 68 65 6c 74 61 6c 28 73 69 6e 28 53 74 61 72 74 41 6e 67 6c 65 2a 46 ┆ y1:=y+heltal(sin(StartAngle*F┆ 0x53a00…53a20 61 63 29 2a 72 29 3b 0d 0a 20 20 20 20 46 4f 52 20 49 3a 3d 31 20 54 4f 20 4e 75 6d 20 44 4f 0d ┆ac)*r); FOR I:=1 TO Num DO ┆ 0x53a20…53a40 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 78 32 3a 3d 78 2b 68 65 6c 74 61 6c 28 63 ┆ BEGIN x2:=x+heltal(c┆ 0x53a40…53a60 6f 73 28 28 53 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 ┆os((StartAngle+i*ChordAngle)*Fac┆ 0x53a60…53a80 29 2a 72 29 3b 0d 0a 20 20 20 20 20 20 79 32 3a 3d 79 2b 68 65 6c 74 61 6c 28 73 69 6e 28 28 53 ┆)*r); y2:=y+heltal(sin((S┆ 0x53a80…53aa0 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 29 2a 72 29 3b ┆tartAngle+i*ChordAngle)*Fac)*r);┆ 0x53aa0…53ac0 0d 0a 20 20 20 20 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 31 2c 79 31 2c 78 32 2c 79 32 29 3b ┆ Wnd_Lineto(x1,y1,x2,y2);┆ 0x53ac0…53ae0 0d 0a 20 20 20 20 20 20 78 31 3a 3d 78 32 3b 20 79 31 3a 3d 79 32 3b 0d 0a 20 20 20 20 45 4e 44 ┆ x1:=x2; y1:=y2; END┆ 0x53ae0…53b00 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 61 72 ┆; END; END; PROCEDURE Mar┆ 0x53b00…53b20 6b 57 65 64 67 65 0d 0a 28 78 2c 79 2c 72 3a 49 4e 54 45 47 45 52 3b 20 73 74 61 72 74 61 6e 67 ┆kWedge (x,y,r:INTEGER; startang┆ 0x53b20…53b40 6c 65 2c 73 77 65 65 70 61 6e 67 6c 65 2c 63 68 6f 72 64 61 6e 67 6c 65 3a 20 49 4e 54 45 47 45 ┆le,sweepangle,chordangle: INTEGE┆ 0x53b40…53b60 52 29 3b 0d 0a 43 4f 4e 53 54 20 50 68 69 20 3d 20 33 2e 31 34 31 35 39 32 36 35 33 35 39 3b 0d ┆R); CONST Phi = 3.14159265359; ┆ 0x53b60…53b80 0a 56 41 52 0d 0a 20 20 4e 75 6d 2c 49 20 3a 20 49 6e 74 65 67 65 72 3b 0d 0a 20 20 46 61 63 20 ┆ VAR Num,I : Integer; Fac ┆ 0x53b80…53ba0 20 20 3a 20 52 65 61 6c 3b 0d 0a 20 20 78 31 2c 78 32 2c 79 31 2c 79 32 3a 20 69 6e 74 65 67 65 ┆ : Real; x1,x2,y1,y2: intege┆ 0x53ba0…53bc0 72 3b 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 61 63 3a 3d 50 68 69 2f 31 38 30 2e 30 3b 0d 0a ┆r; BEGIN Fac:=Phi/180.0; ┆ 0x53bc0…53be0 20 20 4e 75 6d 3a 3d 53 77 65 65 70 41 6e 67 6c 65 20 64 69 76 20 43 68 6f 72 64 41 6e 67 6c 65 ┆ Num:=SweepAngle div ChordAngle┆ 0x53be0…53c00 3b 0d 0a 20 20 78 31 3a 3d 78 2b 68 65 6c 74 61 6c 28 63 6f 73 28 53 74 61 72 74 41 6e 67 6c 65 ┆; x1:=x+heltal(cos(StartAngle┆ 0x53c00…53c20 (33, 1, 1) 2a 46 61 63 29 2a 72 29 3b 0d 0a 20 20 79 31 3a 3d 79 2b 68 65 6c 74 61 6c 28 73 69 6e 28 53 74 ┆*Fac)*r); y1:=y+heltal(sin(St┆ 0x53c20…53c40 61 72 74 41 6e 67 6c 65 2a 46 61 63 29 2a 72 29 3b 0d 0a 20 20 46 4f 52 20 49 3a 3d 31 20 54 4f ┆artAngle*Fac)*r); FOR I:=1 TO┆ 0x53c40…53c60 20 4e 75 6d 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 32 3a 3d 78 2b 68 65 6c 74 ┆ Num DO BEGIN x2:=x+helt┆ 0x53c60…53c80 61 6c 28 63 6f 73 28 28 53 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 ┆al(cos((StartAngle+i*ChordAngle)┆ 0x53c80…53ca0 2a 46 61 63 29 2a 72 29 3b 0d 0a 20 20 20 20 79 32 3a 3d 79 2b 68 65 6c 74 61 6c 28 73 69 6e 28 ┆*Fac)*r); y2:=y+heltal(sin(┆ 0x53ca0…53cc0 28 53 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 29 2a 72 ┆(StartAngle+i*ChordAngle)*Fac)*r┆ 0x53cc0…53ce0 29 3b 0d 0a 20 20 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 31 2c 79 31 2c 78 32 2c 79 32 29 3b ┆); Wnd_Lineto(x1,y1,x2,y2);┆ 0x53ce0…53d00 0d 0a 20 20 20 20 78 31 3a 3d 78 32 3b 20 79 31 3a 3d 79 32 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 ┆ x1:=x2; y1:=y2; END; E┆ 0x53d00…53d20 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 46 69 6c 6c 53 71 75 61 72 65 28 78 2c 79 2c ┆ND; PROCEDURE FillSquare(x,y,┆ 0x53d20…53d40 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 6a 3a 69 6e 74 65 67 65 72 3b 0d 0a 20 42 ┆r: INTEGER); VAR j:integer; B┆ 0x53d40…53d60 45 47 49 4e 0d 0a 20 20 46 4f 52 20 6a 3a 3d 79 2d 72 20 74 6f 20 79 2b 72 20 44 4f 0d 0a 20 20 ┆EGIN FOR j:=y-r to y+r DO ┆ 0x53d60…53d80 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 2c 6a 2c 78 2b 72 2c ┆BEGIN Wnd_Lineto(x-r,j,x+r,┆ 0x53d80…53da0 6a 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d ┆j); END; END; PROCEDURE M┆ 0x53da0…53dc0 61 72 6b 57 6e 64 5f 63 69 72 63 6c 65 28 78 2c 20 79 2c 20 72 61 64 69 75 73 3a 20 49 4e 54 45 ┆arkWnd_circle(x, y, radius: INTE┆ 0x53dc0…53de0 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 61 2c 62 2c 74 61 72 67 65 74 2c 20 72 32 3a 20 49 4e ┆GER); VAR a,b,target, r2: IN┆ 0x53de0…53e00 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 74 61 72 67 65 74 3a 3d 30 3b 20 61 3a 3d 20 ┆TEGER; BEGIN target:=0; a:= ┆ 0x53e00…53e20 72 61 64 69 75 73 3b 20 62 3a 3d 30 3b 20 72 32 3a 3d 73 71 72 28 72 61 64 69 75 73 29 3b 0d 0a ┆radius; b:=0; r2:=sqr(radius); ┆ 0x53e20…53e40 20 20 57 48 49 4c 45 20 61 3e 3d 62 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 62 3a 3d 69 73 ┆ WHILE a>=b DO BEGIN b:=is┆ 0x53e40…53e60 71 72 74 28 72 32 20 2d 20 73 71 72 28 61 29 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 74 61 72 67 ┆qrt(r2 - sqr(a)); swap(targ┆ 0x53e60…53e80 65 74 2c 20 62 29 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 62 3c 74 61 72 67 65 74 20 44 4f 20 42 ┆et, b); WHILE b<target DO B┆ 0x53e80…53ea0 45 47 49 4e 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 78 2b 61 2c 79 2b 62 29 3b ┆EGIN Wnd_SetDot(x+a,y+b);┆ 0x53ea0…53ec0 20 57 6e 64 5f 53 65 74 44 6f 74 28 78 2b 62 2c 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 ┆ Wnd_SetDot(x+b,y+a); Wnd┆ 0x53ec0…53ee0 5f 53 65 74 44 6f 74 28 78 2d 61 2c 79 2b 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 78 2d 62 ┆_SetDot(x-a,y+b); Wnd_SetDot(x-b┆ 0x53ee0…53f00 2c 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 78 2d 61 2c 79 2d 62 ┆,y+a); Wnd_SetDot(x-a,y-b┆ 0x53f00…53f20 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 78 2d 62 2c 79 2d 61 29 3b 0d 0a 20 20 20 20 20 20 57 ┆); Wnd_SetDot(x-b,y-a); W┆ 0x53f20…53f40 6e 64 5f 53 65 74 44 6f 74 28 78 2b 61 2c 79 2d 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 78 ┆nd_SetDot(x+a,y-b); Wnd_SetDot(x┆ 0x53f40…53f60 2b 62 2c 79 2d 61 29 3b 0d 0a 20 20 20 20 20 20 62 3a 3d 62 2b 31 3b 0d 0a 20 20 20 20 45 4e 44 ┆+b,y-a); b:=b+1; END┆ 0x53f60…53f80 3b 0d 0a 20 20 20 20 61 3a 3d 61 2d 31 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆; a:=a-1; END; END; ┆ 0x53f80…53fa0 50 52 4f 43 45 44 55 52 45 20 46 69 6c 6c 43 69 72 63 6c 65 28 78 2c 79 2c 72 61 64 69 75 73 3a ┆PROCEDURE FillCircle(x,y,radius:┆ 0x53fa0…53fc0 20 49 4e 54 45 47 45 52 29 3b 0d 0a 20 20 56 41 52 20 72 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 ┆ INTEGER); VAR r:INTEGER; BE┆ 0x53fc0…53fe0 47 49 4e 0d 0a 20 20 46 4f 52 20 72 3a 3d 31 20 74 6f 20 72 61 64 69 75 73 20 44 4f 0d 0a 20 20 ┆GIN FOR r:=1 to radius DO ┆ 0x53fe0…54000 4d 61 72 6b 57 6e 64 5f 63 69 72 63 6c 65 28 78 2c 79 2c 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆MarkWnd_circle(x,y,r); END; ┆ 0x54000…54020 (33, 1, 2) 50 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 43 69 72 63 6c 65 28 78 2c 79 2c 72 3a 20 49 4e 54 45 ┆PROCEDURE MarkCircle(x,y,r: INTE┆ 0x54020…54040 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 4d 61 72 6b 57 6e 64 5f 63 69 72 63 6c 65 28 78 ┆GER); BEGIN MarkWnd_circle(x┆ 0x54040…54060 2c 79 2c 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 53 71 ┆,y,r); END; PROCEDURE MarkSq┆ 0x54060…54080 75 61 72 65 28 78 2c 79 2c 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆uare(x,y,r: INTEGER); BEGIN ┆ 0x54080…540a0 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 2c 79 2d 72 2c 78 2b 72 2c 79 2d 72 29 3b 0d 0a 20 20 ┆Wnd_Lineto(x-r,y-r,x+r,y-r); ┆ 0x540a0…540c0 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2b 72 2c 79 2d 72 2c 78 2b 72 2c 79 2b 72 29 3b 0d 0a 20 20 ┆Wnd_Lineto(x+r,y-r,x+r,y+r); ┆ 0x540c0…540e0 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2b 72 2c 79 2b 72 2c 78 2d 72 2c 79 2b 72 29 3b 0d 0a 20 20 ┆Wnd_Lineto(x+r,y+r,x-r,y+r); ┆ 0x540e0…54100 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 2c 79 2b 72 2c 78 2d 72 2c 79 2d 72 29 3b 0d 0a 45 4e ┆Wnd_Lineto(x-r,y+r,x-r,y-r); EN┆ 0x54100…54120 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 43 72 6f 73 73 28 78 2c 79 2c 72 3a ┆D; PROCEDURE MarkCross(x,y,r:┆ 0x54120…54140 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 ┆ INTEGER); BEGIN Wnd_Lineto(┆ 0x54140…54160 78 2d 72 2c 79 2d 72 2c 78 2b 72 2c 79 2b 72 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 ┆x-r,y-r,x+r,y+r); Wnd_Lineto(┆ 0x54160…54180 78 2d 72 2c 79 2b 72 2c 78 2b 72 2c 79 2d 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆x-r,y+r,x+r,y-r); END; PROCE┆ 0x54180…541a0 44 55 52 45 20 4d 61 72 6b 50 6c 75 73 28 78 2c 79 2c 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a ┆DURE MarkPlus(x,y,r: INTEGER); ┆ 0x541a0…541c0 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 2c 79 2c 78 2b 72 2c 79 29 ┆BEGIN Wnd_Lineto(x-r,y,x+r,y)┆ 0x541c0…541e0 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2c 79 2b 72 2c 78 2c 79 2d 72 29 3b 0d 0a 45 ┆; Wnd_Lineto(x,y+r,x,y-r); E┆ 0x541e0…54200 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 48 61 73 68 28 78 2c 79 2c 72 3a ┆ND; PROCEDURE MarkHash(x,y,r:┆ 0x54200…54220 20 49 4e 54 45 47 45 52 29 3b 0d 0a 20 20 56 41 52 20 72 32 3a 20 69 6e 74 65 67 65 72 3b 0d 0a ┆ INTEGER); VAR r2: integer; ┆ 0x54220…54240 42 45 47 49 4e 0d 0a 20 20 72 32 3a 3d 72 20 64 69 76 20 32 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e ┆BEGIN r2:=r div 2; Wnd_Lin┆ 0x54240…54260 65 74 6f 28 78 2d 72 2c 79 2b 72 32 2c 78 2b 72 2c 79 2b 72 32 29 3b 0d 0a 20 20 57 6e 64 5f 4c ┆eto(x-r,y+r2,x+r,y+r2); Wnd_L┆ 0x54260…54280 69 6e 65 74 6f 28 78 2d 72 2c 79 2d 72 32 2c 78 2b 72 2c 79 2d 72 32 29 3b 0d 0a 20 20 57 6e 64 ┆ineto(x-r,y-r2,x+r,y-r2); Wnd┆ 0x54280…542a0 5f 4c 69 6e 65 74 6f 28 78 2d 72 32 2c 79 2b 72 2c 78 2d 72 32 2c 79 2d 72 29 3b 0d 0a 20 20 57 ┆_Lineto(x-r2,y+r,x-r2,y-r); W┆ 0x542a0…542c0 6e 64 5f 4c 69 6e 65 74 6f 28 78 2b 72 32 2c 79 2b 72 2c 78 2b 72 32 2c 79 2d 72 29 3b 0d 0a 45 ┆nd_Lineto(x+r2,y+r,x+r2,y-r); E┆ 0x542c0…542e0 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 59 28 78 2c 79 2c 72 3a 20 49 4e ┆ND; PROCEDURE MarkY(x,y,r: IN┆ 0x542e0…54300 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2c 79 ┆TEGER); BEGIN Wnd_Lineto(x,y┆ 0x54300…54320 2c 78 2c 79 2d 72 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2c 79 2c 78 2d 72 2c 79 ┆,x,y-r); Wnd_Lineto(x,y,x-r,y┆ 0x54320…54340 2b 72 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2c 79 2c 78 2b 72 2c 79 2b 72 29 3b ┆+r); Wnd_Lineto(x,y,x+r,y+r);┆ 0x54340…54360 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 6d 61 72 6b 65 72 28 78 ┆ END; PROCEDURE Plotmarker(x┆ 0x54360…54380 2c 79 3a 20 52 45 41 4c 3b 73 79 6d 62 6f 6c 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 ┆,y: REAL;symbol: INTEGER); VAR ┆ 0x54380…543a0 78 6f 6c 64 2c 79 6f 6c 64 3a 20 72 65 61 6c 3b 0d 0a 20 20 20 20 73 78 2c 73 79 3a 20 69 6e 74 ┆xold,yold: real; sx,sy: int┆ 0x543a0…543c0 65 67 65 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 6f 6c 64 3a 3d 78 3b 20 79 6f 6c 64 3a 3d 79 ┆eger; BEGIN xold:=x; yold:=y┆ 0x543c0…543e0 3b 0d 0a 20 20 73 78 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 6f 6c 64 29 3b 0d 0a ┆; sx:=_Wld_ToWindowX(xold); ┆ 0x543e0…54400 20 20 73 79 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 6f 6c 64 29 3b 0d 0a 20 20 43 ┆ sy:=_Wld_ToWindowY(yold); C┆ 0x54400…54420 (33, 1, 3) 41 53 45 20 73 79 6d 62 6f 6c 20 6f 66 0d 0a 20 20 20 31 3a 20 46 69 6c 6c 43 69 72 63 6c 65 28 ┆ASE symbol of 1: FillCircle(┆ 0x54420…54440 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 ┆sx,sy,markersize); æ ┆ 0x54440…54460 46 69 6c 6c 65 64 20 63 69 72 63 6c 65 20 7d 0d 0a 20 20 20 32 3a 20 46 69 6c 6c 53 71 75 61 72 ┆Filled circle å 2: FillSquar┆ 0x54460…54480 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 ┆e(sx,sy,markersize); ┆ 0x54480…544a0 7b 20 46 69 6c 6c 65 64 20 73 71 75 61 72 65 20 7d 0d 0a 20 20 20 33 3a 20 46 69 6c 6c 57 65 64 ┆æ Filled square å 3: FillWed┆ 0x544a0…544c0 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 20 30 2c 33 36 30 2c 20 39 30 29 ┆ge(sx,sy,markersize, 0,360, 90)┆ 0x544c0…544e0 3b 20 7b 20 46 69 6c 6c 65 64 20 64 69 61 6d 6f 6e 64 20 7d 0d 0a 20 20 20 34 3a 20 46 69 6c 6c ┆; æ Filled diamond å 4: Fill┆ 0x544e0…54500 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 2d 33 30 2c 33 36 30 2c 31 ┆Wedge(sx,sy,markersize,-30,360,1┆ 0x54500…54520 32 30 29 3b 20 7b 20 46 69 6c 6c 65 64 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 75 70 20 ┆20); æ Filled triangle, edge up ┆ 0x54520…54540 7d 0d 0a 20 20 20 35 3a 20 46 69 6c 6c 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 ┆å 5: FillWedge(sx,sy,markers┆ 0x54540…54560 69 7a 65 2c 20 33 30 2c 33 36 30 2c 31 32 30 29 3b 20 7b 20 46 69 6c 6c 65 64 20 74 72 69 61 6e ┆ize, 30,360,120); æ Filled trian┆ 0x54560…54580 67 6c 65 2c 20 65 64 67 65 20 64 6f 77 6e 20 7d 0d 0a 20 20 20 36 3a 20 46 69 6c 6c 57 65 64 67 ┆gle, edge down å 6: FillWedg┆ 0x54580…545a0 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 20 30 2c 33 36 30 2c 20 37 32 29 3b ┆e(sx,sy,markersize, 0,360, 72);┆ 0x545a0…545c0 20 7b 20 46 69 6c 6c 65 64 20 70 65 6e 74 61 67 6f 6e 20 7d 0d 0a 20 20 20 37 3a 20 46 69 6c 6c ┆ æ Filled pentagon å 7: Fill┆ 0x545c0…545e0 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 31 38 2c 33 36 30 2c 20 ┆Wedge(sx,sy,markersize, 18,360, ┆ 0x545e0…54600 36 30 29 3b 20 7b 20 46 69 6c 6c 65 64 20 68 65 78 61 67 6f 6e 20 7d 0d 0a 20 20 20 38 3a 20 42 ┆60); æ Filled hexagon å 8: B┆ 0x54600…54620 45 47 49 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆EGIN ┆ 0x54620…54640 20 20 20 20 20 20 7b 20 46 69 6c 6c 65 64 20 73 74 61 72 20 7d 0d 0a 20 20 20 20 20 20 46 69 6c ┆ æ Filled star å Fil┆ 0x54640…54660 6c 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 2d 33 30 2c 33 36 30 2c ┆lWedge(sx,sy,markersize,-30,360,┆ 0x54660…54680 31 32 30 29 3b 0d 0a 20 20 20 20 20 20 46 69 6c 6c 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 ┆120); FillWedge(sx,sy,mar┆ 0x54680…546a0 6b 65 72 73 69 7a 65 2c 20 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 ┆kersize, 30,360,120); END┆ 0x546a0…546c0 3b 0d 0a 20 20 31 31 3a 20 4d 61 72 6b 43 69 72 63 6c 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 ┆; 11: MarkCircle(sx,sy,marker┆ 0x546c0…546e0 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 63 69 72 63 6c 65 20 7d 0d 0a 20 20 ┆size); æ circle å ┆ 0x546e0…54700 31 32 3a 20 4d 61 72 6b 53 71 75 61 72 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 ┆12: MarkSquare(sx,sy,markersize)┆ 0x54700…54720 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆; ┆ 0x54720…54740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 73 71 75 61 72 65 20 7d 0d 0a 20 20 31 33 ┆ æ square å 13┆ 0x54740…54760 3a 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 20 30 ┆: MarkWedge(sx,sy,markersize, 0┆ 0x54760…54780 2c 33 36 30 2c 20 39 30 29 3b 20 7b 20 64 69 61 6d 6f 6e 64 20 7d 0d 0a 20 20 31 34 3a 20 4d 61 ┆,360, 90); æ diamond å 14: Ma┆ 0x54780…547a0 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 2d 33 30 2c 33 36 30 ┆rkWedge(sx,sy,markersize,-30,360┆ 0x547a0…547c0 2c 31 32 30 29 3b 20 7b 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 75 70 20 7d 0d 0a 20 20 ┆,120); æ triangle, edge up å ┆ 0x547c0…547e0 31 35 3a 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 ┆15: MarkWedge(sx,sy,markersize, ┆ 0x547e0…54800 33 30 2c 33 36 30 2c 31 32 30 29 3b 20 7b 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 64 6f ┆30,360,120); æ triangle, edge do┆ 0x54800…54820 (33, 1, 4) 77 6e 20 7d 0d 0a 20 20 31 36 3a 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b ┆wn å 16: MarkWedge(sx,sy,mark┆ 0x54820…54840 65 72 73 69 7a 65 2c 20 31 38 2c 33 36 30 2c 20 37 32 29 3b 20 7b 20 70 65 6e 74 61 67 6f 6e 20 ┆ersize, 18,360, 72); æ pentagon ┆ 0x54840…54860 7d 0d 0a 20 20 31 37 3a 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 ┆å 17: MarkWedge(sx,sy,markers┆ 0x54860…54880 69 7a 65 2c 20 20 30 2c 33 36 30 2c 20 36 30 29 3b 20 7b 20 68 65 78 61 67 6f 6e 20 7d 0d 0a 20 ┆ize, 0,360, 60); æ hexagon å ┆ 0x54880…548a0 20 31 38 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 18: ┆ 0x548a0…548c0 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 73 74 61 72 20 7d 0d 0a 20 20 20 20 20 20 42 45 47 49 ┆ æ star å BEGI┆ 0x548c0…548e0 4e 0d 0a 20 20 20 20 20 20 20 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 ┆N MarkWedge(sx,sy,marke┆ 0x548e0…54900 72 73 69 7a 65 2c 2d 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 4d 61 72 ┆rsize,-30,360,120); Mar┆ 0x54900…54920 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 33 30 2c 33 36 30 2c ┆kWedge(sx,sy,markersize, 30,360,┆ 0x54920…54940 31 32 30 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 32 31 3a 20 4d 61 72 6b 43 72 6f ┆120); END; 21: MarkCro┆ 0x54940…54960 73 73 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 ┆ss(sx,sy,markersize); ┆ 0x54960…54980 20 20 7b 20 63 72 6f 73 73 20 7d 0d 0a 20 20 32 32 3a 20 4d 61 72 6b 50 6c 75 73 28 73 78 2c 73 ┆ æ cross å 22: MarkPlus(sx,s┆ 0x54980…549a0 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 70 6c ┆y,markersize); æ pl┆ 0x549a0…549c0 75 73 20 20 7d 0d 0a 20 20 32 33 3a 20 4d 61 72 6b 48 61 73 68 28 73 78 2c 73 79 2c 6d 61 72 6b ┆us å 23: MarkHash(sx,sy,mark┆ 0x549c0…549e0 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 68 61 73 68 20 20 7d 0d ┆ersize); æ hash å ┆ 0x549e0…54a00 0a 20 20 32 34 3a 20 4d 61 72 6b 59 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 ┆ 24: MarkY(sx,sy,markersize); ┆ 0x54a00…54a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 59 20 20 20 20 20 7d 0d 0a 20 28 2a 20 33 ┆ æ Y å (* 3┆ 0x54a20…54a40 33 2e 2e 31 32 37 3a 20 4d 61 72 6b 53 79 6d 62 6f 6c 4d 6f 64 65 28 73 78 2c 73 79 2c 73 79 6d ┆3..127: MarkSymbolMode(sx,sy,sym┆ 0x54a40…54a60 62 6f 6c 29 3b 2a 29 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 20 78 3a 3d 78 6f 6c 64 3b 20 79 3a 3d ┆bol);*) END; x:=xold; y:=┆ 0x54a60…54a80 79 6f 6c 64 3b 20 6d 6f 76 65 74 6f 28 78 2c 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 00 00 00 00 00 00 ┆yold; moveto(x,y); END; ┆ 0x54a80…54aa0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x2b…] 0x55000…55020 (34, 0, 1) 28 2a 47 53 56 2d 4d 41 52 4b 2a 29 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 68 65 6c 74 61 6c 28 ┆(*GSV-MARK*) FUNCTION heltal(┆ 0x55020…55040 78 3a 52 45 41 4c 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 56 41 52 20 79 3a 20 69 6e 74 65 67 65 72 ┆x:REAL):INTEGER; VAR y: integer┆ 0x55040…55060 3b 0d 0a 42 45 47 49 4e 20 0d 0a 20 20 79 3a 3d 72 6f 75 6e 64 28 41 42 53 28 78 29 2d 30 2e 30 ┆; BEGIN y:=round(ABS(x)-0.0┆ 0x55060…55080 31 29 3b 0d 0a 20 20 49 46 20 78 3c 30 20 54 48 45 4e 20 68 65 6c 74 61 6c 3a 3d 79 2a 28 2d 31 ┆1); IF x<0 THEN heltal:=y*(-1┆ 0x55080…550a0 29 20 65 6c 73 65 20 68 65 6c 74 61 6c 3a 3d 79 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆) else heltal:=y; END; PROCE┆ 0x550a0…550c0 44 55 52 45 20 46 69 6c 6c 57 65 64 67 65 0d 0a 28 78 2c 79 2c 72 61 64 69 75 73 3a 49 4e 54 45 ┆DURE FillWedge (x,y,radius:INTE┆ 0x550c0…550e0 47 45 52 3b 20 73 74 61 72 74 61 6e 67 6c 65 2c 73 77 65 65 70 61 6e 67 6c 65 2c 63 68 6f 72 64 ┆GER; startangle,sweepangle,chord┆ 0x550e0…55100 61 6e 67 6c 65 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 43 4f 4e 53 54 20 50 68 69 20 3d 20 33 2e ┆angle: INTEGER); CONST Phi = 3.┆ 0x55100…55120 31 34 31 35 39 32 36 35 33 35 39 3b 0d 0a 56 41 52 0d 0a 20 20 4e 75 6d 2c 49 20 3a 20 49 6e 74 ┆14159265359; VAR Num,I : Int┆ 0x55120…55140 65 67 65 72 3b 0d 0a 20 20 46 61 63 20 20 20 3a 20 52 65 61 6c 3b 0d 0a 20 20 72 2c 78 31 2c 78 ┆eger; Fac : Real; r,x1,x┆ 0x55140…55160 32 2c 79 31 2c 79 32 3a 20 69 6e 74 65 67 65 72 3b 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 61 ┆2,y1,y2: integer; BEGIN Fa┆ 0x55160…55180 63 3a 3d 50 68 69 2f 31 38 30 2e 30 3b 0d 0a 20 20 4e 75 6d 3a 3d 53 77 65 65 70 41 6e 67 6c 65 ┆c:=Phi/180.0; Num:=SweepAngle┆ 0x55180…551a0 20 64 69 76 20 43 68 6f 72 64 41 6e 67 6c 65 3b 0d 0a 20 20 46 4f 52 20 72 3a 3d 31 20 74 6f 20 ┆ div ChordAngle; FOR r:=1 to ┆ 0x551a0…551c0 72 61 64 69 75 73 20 44 4f 0d 0a 20 20 42 45 47 49 4e 20 0d 0a 20 20 20 20 78 31 3a 3d 78 2b 68 ┆radius DO BEGIN x1:=x+h┆ 0x551c0…551e0 65 6c 74 61 6c 28 63 6f 73 28 53 74 61 72 74 41 6e 67 6c 65 2a 46 61 63 29 2a 72 29 3b 0d 0a 20 ┆eltal(cos(StartAngle*Fac)*r); ┆ 0x551e0…55200 20 20 20 79 31 3a 3d 79 2b 68 65 6c 74 61 6c 28 73 69 6e 28 53 74 61 72 74 41 6e 67 6c 65 2a 46 ┆ y1:=y+heltal(sin(StartAngle*F┆ 0x55200…55220 61 63 29 2a 72 29 3b 0d 0a 20 20 20 20 46 4f 52 20 49 3a 3d 31 20 54 4f 20 4e 75 6d 20 44 4f 0d ┆ac)*r); FOR I:=1 TO Num DO ┆ 0x55220…55240 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 78 32 3a 3d 78 2b 68 65 6c 74 61 6c 28 63 ┆ BEGIN x2:=x+heltal(c┆ 0x55240…55260 6f 73 28 28 53 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 ┆os((StartAngle+i*ChordAngle)*Fac┆ 0x55260…55280 29 2a 72 29 3b 0d 0a 20 20 20 20 20 20 79 32 3a 3d 79 2b 68 65 6c 74 61 6c 28 73 69 6e 28 28 53 ┆)*r); y2:=y+heltal(sin((S┆ 0x55280…552a0 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 29 2a 72 29 3b ┆tartAngle+i*ChordAngle)*Fac)*r);┆ 0x552a0…552c0 0d 0a 20 20 20 20 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 31 2c 79 31 2c 78 32 2c 79 32 29 3b ┆ Wnd_Lineto(x1,y1,x2,y2);┆ 0x552c0…552e0 0d 0a 20 20 20 20 20 20 78 31 3a 3d 78 32 3b 20 79 31 3a 3d 79 32 3b 0d 0a 20 20 20 20 45 4e 44 ┆ x1:=x2; y1:=y2; END┆ 0x552e0…55300 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 61 72 ┆; END; END; PROCEDURE Mar┆ 0x55300…55320 6b 57 65 64 67 65 0d 0a 28 78 2c 79 2c 72 3a 49 4e 54 45 47 45 52 3b 20 73 74 61 72 74 61 6e 67 ┆kWedge (x,y,r:INTEGER; startang┆ 0x55320…55340 6c 65 2c 73 77 65 65 70 61 6e 67 6c 65 2c 63 68 6f 72 64 61 6e 67 6c 65 3a 20 49 4e 54 45 47 45 ┆le,sweepangle,chordangle: INTEGE┆ 0x55340…55360 52 29 3b 0d 0a 43 4f 4e 53 54 20 50 68 69 20 3d 20 33 2e 31 34 31 35 39 32 36 35 33 35 39 3b 0d ┆R); CONST Phi = 3.14159265359; ┆ 0x55360…55380 0a 56 41 52 0d 0a 20 20 4e 75 6d 2c 49 20 3a 20 49 6e 74 65 67 65 72 3b 0d 0a 20 20 46 61 63 20 ┆ VAR Num,I : Integer; Fac ┆ 0x55380…553a0 20 20 3a 20 52 65 61 6c 3b 0d 0a 20 20 78 31 2c 78 32 2c 79 31 2c 79 32 3a 20 69 6e 74 65 67 65 ┆ : Real; x1,x2,y1,y2: intege┆ 0x553a0…553c0 72 3b 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 61 63 3a 3d 50 68 69 2f 31 38 30 2e 30 3b 0d 0a ┆r; BEGIN Fac:=Phi/180.0; ┆ 0x553c0…553e0 20 20 4e 75 6d 3a 3d 53 77 65 65 70 41 6e 67 6c 65 20 64 69 76 20 43 68 6f 72 64 41 6e 67 6c 65 ┆ Num:=SweepAngle div ChordAngle┆ 0x553e0…55400 3b 0d 0a 20 20 78 31 3a 3d 78 2b 68 65 6c 74 61 6c 28 63 6f 73 28 53 74 61 72 74 41 6e 67 6c 65 ┆; x1:=x+heltal(cos(StartAngle┆ 0x55400…55420 (34, 0, 2) 2a 46 61 63 29 2a 72 29 3b 0d 0a 20 20 79 31 3a 3d 79 2b 68 65 6c 74 61 6c 28 73 69 6e 28 53 74 ┆*Fac)*r); y1:=y+heltal(sin(St┆ 0x55420…55440 61 72 74 41 6e 67 6c 65 2a 46 61 63 29 2a 72 29 3b 0d 0a 20 20 46 4f 52 20 49 3a 3d 31 20 54 4f ┆artAngle*Fac)*r); FOR I:=1 TO┆ 0x55440…55460 20 4e 75 6d 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 32 3a 3d 78 2b 68 65 6c 74 ┆ Num DO BEGIN x2:=x+helt┆ 0x55460…55480 61 6c 28 63 6f 73 28 28 53 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 ┆al(cos((StartAngle+i*ChordAngle)┆ 0x55480…554a0 2a 46 61 63 29 2a 72 29 3b 0d 0a 20 20 20 20 79 32 3a 3d 79 2b 68 65 6c 74 61 6c 28 73 69 6e 28 ┆*Fac)*r); y2:=y+heltal(sin(┆ 0x554a0…554c0 28 53 74 61 72 74 41 6e 67 6c 65 2b 69 2a 43 68 6f 72 64 41 6e 67 6c 65 29 2a 46 61 63 29 2a 72 ┆(StartAngle+i*ChordAngle)*Fac)*r┆ 0x554c0…554e0 29 3b 0d 0a 20 20 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 31 2c 79 31 2c 78 32 2c 79 32 29 3b ┆); Wnd_Lineto(x1,y1,x2,y2);┆ 0x554e0…55500 0d 0a 20 20 20 20 78 31 3a 3d 78 32 3b 20 79 31 3a 3d 79 32 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 ┆ x1:=x2; y1:=y2; END; E┆ 0x55500…55520 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 46 69 6c 6c 53 71 75 61 72 65 28 78 2c 79 2c ┆ND; PROCEDURE FillSquare(x,y,┆ 0x55520…55540 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 6a 3a 69 6e 74 65 67 65 72 3b 0d 0a 20 42 ┆r: INTEGER); VAR j:integer; B┆ 0x55540…55560 45 47 49 4e 0d 0a 20 20 46 4f 52 20 6a 3a 3d 79 2d 72 20 74 6f 20 79 2b 72 20 44 4f 0d 0a 20 20 ┆EGIN FOR j:=y-r to y+r DO ┆ 0x55560…55580 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 2c 6a 2c 78 2b 72 2c ┆BEGIN Wnd_Lineto(x-r,j,x+r,┆ 0x55580…555a0 6a 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d ┆j); END; END; PROCEDURE M┆ 0x555a0…555c0 61 72 6b 57 6e 64 5f 63 69 72 63 6c 65 28 63 78 2c 20 63 79 2c 20 72 61 64 69 75 73 3a 20 49 4e ┆arkWnd_circle(cx, cy, radius: IN┆ 0x555c0…555e0 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 61 2c 20 61 66 2c 20 62 2c 20 62 66 2c 20 74 61 ┆TEGER); VAR a, af, b, bf, ta┆ 0x555e0…55600 72 67 65 74 2c 20 72 32 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 74 61 72 ┆rget, r2: INTEGER; BEGIN tar┆ 0x55600…55620 67 65 74 3a 3d 30 3b 20 61 3a 3d 20 72 61 64 69 75 73 3b 20 62 3a 3d 30 3b 20 72 32 3a 3d 73 71 ┆get:=0; a:= radius; b:=0; r2:=sq┆ 0x55620…55640 72 28 72 61 64 69 75 73 29 3b 0d 0a 20 20 57 48 49 4c 45 20 61 3e 3d 62 20 44 4f 20 42 45 47 49 ┆r(radius); WHILE a>=b DO BEGI┆ 0x55640…55660 4e 0d 0a 20 20 20 20 62 3a 3d 69 73 71 72 74 28 72 32 20 2d 20 73 71 72 28 61 29 29 3b 0d 0a 20 ┆N b:=isqrt(r2 - sqr(a)); ┆ 0x55660…55680 20 20 20 73 77 61 70 28 74 61 72 67 65 74 2c 20 62 29 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 62 ┆ swap(target, b); WHILE b┆ 0x55680…556a0 3c 74 61 72 67 65 74 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 61 66 3a 3d 61 3b 20 62 ┆<target DO BEGIN af:=a; b┆ 0x556a0…556c0 66 3a 3d 62 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2b 61 66 2c 63 79 ┆f:=b; Wnd_SetDot(cx+af,cy┆ 0x556c0…556e0 2b 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2b 62 66 2c 63 79 2b 61 29 3b 0d 0a 20 20 ┆+b); Wnd_SetDot(cx+bf,cy+a); ┆ 0x556e0…55700 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2d 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f ┆ Wnd_SetDot(cx-af,cy+b); Wnd_┆ 0x55700…55720 53 65 74 44 6f 74 28 63 78 2d 62 66 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 ┆SetDot(cx-bf,cy+a); Wnd_S┆ 0x55720…55740 65 74 44 6f 74 28 63 78 2d 61 66 2c 63 79 2d 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 ┆etDot(cx-af,cy-b); Wnd_SetDot(cx┆ 0x55740…55760 2d 62 66 2c 63 79 2d 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2b ┆-bf,cy-a); Wnd_SetDot(cx+┆ 0x55760…55780 61 66 2c 63 79 2d 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2b 62 66 2c 63 79 2d 61 29 ┆af,cy-b); Wnd_SetDot(cx+bf,cy-a)┆ 0x55780…557a0 3b 0d 0a 20 20 20 20 20 20 62 3a 3d 62 2b 31 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 ┆; b:=b+1; END; ┆ 0x557a0…557c0 61 3a 3d 61 2d 31 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆a:=a-1; END; END; PROCEDU┆ 0x557c0…557e0 52 45 20 46 69 6c 6c 43 69 72 63 6c 65 28 78 2c 79 2c 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 ┆RE FillCircle(x,y,radius: INTEGE┆ 0x557e0…55800 52 29 3b 0d 0a 20 20 56 41 52 20 72 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆R); VAR r:INTEGER; BEGIN ┆ 0x55800…55820 (34, 0, 3) 46 4f 52 20 72 3a 3d 31 20 74 6f 20 72 61 64 69 75 73 20 44 4f 0d 0a 20 20 4d 61 72 6b 57 6e 64 ┆FOR r:=1 to radius DO MarkWnd┆ 0x55820…55840 5f 63 69 72 63 6c 65 28 78 2c 79 2c 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆_circle(x,y,r); END; PROCEDU┆ 0x55840…55860 52 45 20 4d 61 72 6b 43 69 72 63 6c 65 28 78 2c 79 2c 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a ┆RE MarkCircle(x,y,r: INTEGER); ┆ 0x55860…55880 42 45 47 49 4e 0d 0a 20 20 4d 61 72 6b 57 6e 64 5f 63 69 72 63 6c 65 28 78 2c 79 2c 72 29 3b 0d ┆BEGIN MarkWnd_circle(x,y,r); ┆ 0x55880…558a0 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 53 71 75 61 72 65 28 78 2c ┆ END; PROCEDURE MarkSquare(x,┆ 0x558a0…558c0 79 2c 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 4c 69 6e ┆y,r: INTEGER); BEGIN Wnd_Lin┆ 0x558c0…558e0 65 74 6f 28 78 2d 72 2c 79 2d 72 2c 78 2b 72 2c 79 2d 72 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e ┆eto(x-r,y-r,x+r,y-r); Wnd_Lin┆ 0x558e0…55900 65 74 6f 28 78 2b 72 2c 79 2d 72 2c 78 2b 72 2c 79 2b 72 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e ┆eto(x+r,y-r,x+r,y+r); Wnd_Lin┆ 0x55900…55920 65 74 6f 28 78 2b 72 2c 79 2b 72 2c 78 2d 72 2c 79 2b 72 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e ┆eto(x+r,y+r,x-r,y+r); Wnd_Lin┆ 0x55920…55940 65 74 6f 28 78 2d 72 2c 79 2b 72 2c 78 2d 72 2c 79 2d 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆eto(x-r,y+r,x-r,y-r); END; P┆ 0x55940…55960 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 43 72 6f 73 73 28 78 2c 79 2c 72 3a 20 49 4e 54 45 47 45 ┆ROCEDURE MarkCross(x,y,r: INTEGE┆ 0x55960…55980 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 2c 79 2d 72 ┆R); BEGIN Wnd_Lineto(x-r,y-r┆ 0x55980…559a0 2c 78 2b 72 2c 79 2b 72 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 2c 79 2b 72 ┆,x+r,y+r); Wnd_Lineto(x-r,y+r┆ 0x559a0…559c0 2c 78 2b 72 2c 79 2d 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 61 ┆,x+r,y-r); END; PROCEDURE Ma┆ 0x559c0…559e0 72 6b 50 6c 75 73 28 78 2c 79 2c 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a ┆rkPlus(x,y,r: INTEGER); BEGIN ┆ 0x559e0…55a00 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 2c 79 2c 78 2b 72 2c 79 29 3b 0d 0a 20 20 57 6e ┆ Wnd_Lineto(x-r,y,x+r,y); Wn┆ 0x55a00…55a20 64 5f 4c 69 6e 65 74 6f 28 78 2c 79 2b 72 2c 78 2c 79 2d 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆d_Lineto(x,y+r,x,y-r); END; ┆ 0x55a20…55a40 50 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 48 61 73 68 28 78 2c 79 2c 72 3a 20 49 4e 54 45 47 45 ┆PROCEDURE MarkHash(x,y,r: INTEGE┆ 0x55a40…55a60 52 29 3b 0d 0a 20 20 56 41 52 20 72 32 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e 0d 0a ┆R); VAR r2: integer; BEGIN ┆ 0x55a60…55a80 20 20 72 32 3a 3d 72 20 64 69 76 20 32 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2d 72 ┆ r2:=r div 2; Wnd_Lineto(x-r┆ 0x55a80…55aa0 2c 79 2b 72 32 2c 78 2b 72 2c 79 2b 72 32 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 ┆,y+r2,x+r,y+r2); Wnd_Lineto(x┆ 0x55aa0…55ac0 2d 72 2c 79 2d 72 32 2c 78 2b 72 2c 79 2d 72 32 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f ┆-r,y-r2,x+r,y-r2); Wnd_Lineto┆ 0x55ac0…55ae0 28 78 2d 72 32 2c 79 2b 72 2c 78 2d 72 32 2c 79 2d 72 29 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 ┆(x-r2,y+r,x-r2,y-r); Wnd_Line┆ 0x55ae0…55b00 74 6f 28 78 2b 72 32 2c 79 2b 72 2c 78 2b 72 32 2c 79 2d 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆to(x+r2,y+r,x+r2,y-r); END; ┆ 0x55b00…55b20 50 52 4f 43 45 44 55 52 45 20 4d 61 72 6b 59 28 78 2c 79 2c 72 3a 20 49 4e 54 45 47 45 52 29 3b ┆PROCEDURE MarkY(x,y,r: INTEGER);┆ 0x55b20…55b40 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2c 79 2c 78 2c 79 2d 72 29 ┆ BEGIN Wnd_Lineto(x,y,x,y-r)┆ 0x55b40…55b60 3b 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2c 79 2c 78 2d 72 2c 79 2b 72 29 3b 0d 0a 20 ┆; Wnd_Lineto(x,y,x-r,y+r); ┆ 0x55b60…55b80 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 2c 79 2c 78 2b 72 2c 79 2b 72 29 3b 0d 0a 45 4e 44 3b 0d ┆ Wnd_Lineto(x,y,x+r,y+r); END; ┆ 0x55b80…55ba0 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 6d 61 72 6b 65 72 28 78 2c 79 3a 20 52 45 41 ┆ PROCEDURE Plotmarker(x,y: REA┆ 0x55ba0…55bc0 4c 3b 73 79 6d 62 6f 6c 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 78 6f 6c 64 2c 79 6f ┆L;symbol: INTEGER); VAR xold,yo┆ 0x55bc0…55be0 6c 64 3a 20 72 65 61 6c 3b 0d 0a 20 20 20 20 73 78 2c 73 79 3a 20 69 6e 74 65 67 65 72 3b 0d 0a ┆ld: real; sx,sy: integer; ┆ 0x55be0…55c00 42 45 47 49 4e 0d 0a 20 20 78 6f 6c 64 3a 3d 78 3b 20 79 6f 6c 64 3a 3d 79 3b 0d 0a 20 20 73 78 ┆BEGIN xold:=x; yold:=y; sx┆ 0x55c00…55c20 (34, 0, 4) 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 6f 6c 64 29 3b 0d 0a 20 20 73 79 3a 3d 5f ┆:=_Wld_ToWindowX(xold); sy:=_┆ 0x55c20…55c40 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 6f 6c 64 29 3b 0d 0a 20 20 43 41 53 45 20 73 79 6d ┆Wld_ToWindowY(yold); CASE sym┆ 0x55c40…55c60 62 6f 6c 20 6f 66 0d 0a 20 20 20 31 3a 20 46 69 6c 6c 43 69 72 63 6c 65 28 73 78 2c 73 79 2c 6d ┆bol of 1: FillCircle(sx,sy,m┆ 0x55c60…55c80 61 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 46 69 6c 6c 65 64 20 ┆arkersize); æ Filled ┆ 0x55c80…55ca0 63 69 72 63 6c 65 20 7d 0d 0a 20 20 20 32 3a 20 46 69 6c 6c 53 71 75 61 72 65 28 73 78 2c 73 79 ┆circle å 2: FillSquare(sx,sy┆ 0x55ca0…55cc0 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 46 69 6c 6c 65 ┆,markersize); æ Fille┆ 0x55cc0…55ce0 64 20 73 71 75 61 72 65 20 7d 0d 0a 20 20 20 33 3a 20 46 69 6c 6c 57 65 64 67 65 28 73 78 2c 73 ┆d square å 3: FillWedge(sx,s┆ 0x55ce0…55d00 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 20 30 2c 33 36 30 2c 20 39 30 29 3b 20 7b 20 46 69 6c ┆y,markersize, 0,360, 90); æ Fil┆ 0x55d00…55d20 6c 65 64 20 64 69 61 6d 6f 6e 64 20 7d 0d 0a 20 20 20 34 3a 20 46 69 6c 6c 57 65 64 67 65 28 73 ┆led diamond å 4: FillWedge(s┆ 0x55d20…55d40 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 2d 33 30 2c 33 36 30 2c 31 32 30 29 3b 20 7b 20 ┆x,sy,markersize,-30,360,120); æ ┆ 0x55d40…55d60 46 69 6c 6c 65 64 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 75 70 20 7d 0d 0a 20 20 20 35 ┆Filled triangle, edge up å 5┆ 0x55d60…55d80 3a 20 46 69 6c 6c 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 33 30 ┆: FillWedge(sx,sy,markersize, 30┆ 0x55d80…55da0 2c 33 36 30 2c 31 32 30 29 3b 20 7b 20 46 69 6c 6c 65 64 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 ┆,360,120); æ Filled triangle, ed┆ 0x55da0…55dc0 67 65 20 64 6f 77 6e 20 7d 0d 0a 20 20 20 36 3a 20 46 69 6c 6c 57 65 64 67 65 28 73 78 2c 73 79 ┆ge down å 6: FillWedge(sx,sy┆ 0x55dc0…55de0 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 20 30 2c 33 36 30 2c 20 37 32 29 3b 20 7b 20 46 69 6c 6c ┆,markersize, 0,360, 72); æ Fill┆ 0x55de0…55e00 65 64 20 70 65 6e 74 61 67 6f 6e 20 7d 0d 0a 20 20 20 37 3a 20 46 69 6c 6c 57 65 64 67 65 28 73 ┆ed pentagon å 7: FillWedge(s┆ 0x55e00…55e20 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 31 38 2c 33 36 30 2c 20 36 30 29 3b 20 7b 20 ┆x,sy,markersize, 18,360, 60); æ ┆ 0x55e20…55e40 46 69 6c 6c 65 64 20 68 65 78 61 67 6f 6e 20 7d 0d 0a 20 20 20 38 3a 20 42 45 47 49 4e 20 20 20 ┆Filled hexagon å 8: BEGIN ┆ 0x55e40…55e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b ┆ æ┆ 0x55e60…55e80 20 46 69 6c 6c 65 64 20 73 74 61 72 20 7d 0d 0a 20 20 20 20 20 20 46 69 6c 6c 57 65 64 67 65 28 ┆ Filled star å FillWedge(┆ 0x55e80…55ea0 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 2d 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a ┆sx,sy,markersize,-30,360,120); ┆ 0x55ea0…55ec0 20 20 20 20 20 20 46 69 6c 6c 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 ┆ FillWedge(sx,sy,markersize┆ 0x55ec0…55ee0 2c 20 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 31 31 ┆, 30,360,120); END; 11┆ 0x55ee0…55f00 3a 20 4d 61 72 6b 43 69 72 63 6c 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 ┆: MarkCircle(sx,sy,markersize); ┆ 0x55f00…55f20 20 20 20 20 20 20 20 20 20 20 20 7b 20 63 69 72 63 6c 65 20 7d 0d 0a 20 20 31 32 3a 20 4d 61 72 ┆ æ circle å 12: Mar┆ 0x55f20…55f40 6b 53 71 75 61 72 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 0d 0a 20 20 20 20 ┆kSquare(sx,sy,markersize); ┆ 0x55f40…55f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x55f60…55f80 20 20 20 20 20 20 20 20 20 7b 20 73 71 75 61 72 65 20 7d 0d 0a 20 20 31 33 3a 20 4d 61 72 6b 57 ┆ æ square å 13: MarkW┆ 0x55f80…55fa0 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 20 30 2c 33 36 30 2c 20 39 ┆edge(sx,sy,markersize, 0,360, 9┆ 0x55fa0…55fc0 30 29 3b 20 7b 20 64 69 61 6d 6f 6e 64 20 7d 0d 0a 20 20 31 34 3a 20 4d 61 72 6b 57 65 64 67 65 ┆0); æ diamond å 14: MarkWedge┆ 0x55fc0…55fe0 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 2d 33 30 2c 33 36 30 2c 31 32 30 29 3b 20 ┆(sx,sy,markersize,-30,360,120); ┆ 0x55fe0…56000 7b 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 75 70 20 7d 0d 0a 20 20 31 35 3a 20 4d 61 72 ┆æ triangle, edge up å 15: Mar┆ 0x56000…56020 (34, 0, 5) 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 33 30 2c 33 36 30 2c ┆kWedge(sx,sy,markersize, 30,360,┆ 0x56020…56040 31 32 30 29 3b 20 7b 20 74 72 69 61 6e 67 6c 65 2c 20 65 64 67 65 20 64 6f 77 6e 20 7d 0d 0a 20 ┆120); æ triangle, edge down å ┆ 0x56040…56060 20 31 36 3a 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c ┆ 16: MarkWedge(sx,sy,markersize,┆ 0x56060…56080 20 31 38 2c 33 36 30 2c 20 37 32 29 3b 20 7b 20 70 65 6e 74 61 67 6f 6e 20 7d 0d 0a 20 20 31 37 ┆ 18,360, 72); æ pentagon å 17┆ 0x56080…560a0 3a 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 20 30 ┆: MarkWedge(sx,sy,markersize, 0┆ 0x560a0…560c0 2c 33 36 30 2c 20 36 30 29 3b 20 7b 20 68 65 78 61 67 6f 6e 20 7d 0d 0a 20 20 31 38 3a 20 20 20 ┆,360, 60); æ hexagon å 18: ┆ 0x560c0…560e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x560e0…56100 20 20 20 20 20 7b 20 73 74 61 72 20 7d 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆ æ star å BEGIN ┆ 0x56100…56120 20 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 2d 33 30 ┆ MarkWedge(sx,sy,markersize,-30┆ 0x56120…56140 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 20 20 4d 61 72 6b 57 65 64 67 65 28 73 78 2c 73 ┆,360,120); MarkWedge(sx,s┆ 0x56140…56160 79 2c 6d 61 72 6b 65 72 73 69 7a 65 2c 20 33 30 2c 33 36 30 2c 31 32 30 29 3b 0d 0a 20 20 20 20 ┆y,markersize, 30,360,120); ┆ 0x56160…56180 20 20 45 4e 44 3b 0d 0a 20 20 32 31 3a 20 4d 61 72 6b 43 72 6f 73 73 28 73 78 2c 73 79 2c 6d 61 ┆ END; 21: MarkCross(sx,sy,ma┆ 0x56180…561a0 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 63 72 6f 73 73 20 7d ┆rkersize); æ cross å┆ 0x561a0…561c0 0d 0a 20 20 32 32 3a 20 4d 61 72 6b 50 6c 75 73 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a ┆ 22: MarkPlus(sx,sy,markersiz┆ 0x561c0…561e0 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 70 6c 75 73 20 20 7d 0d 0a 20 20 32 33 ┆e); æ plus å 23┆ 0x561e0…56200 3a 20 4d 61 72 6b 48 61 73 68 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 ┆: MarkHash(sx,sy,markersize); ┆ 0x56200…56220 20 20 20 20 20 20 20 20 20 20 20 7b 20 68 61 73 68 20 20 7d 0d 0a 20 20 32 34 3a 20 4d 61 72 6b ┆ æ hash å 24: Mark┆ 0x56220…56240 59 28 73 78 2c 73 79 2c 6d 61 72 6b 65 72 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 ┆Y(sx,sy,markersize); ┆ 0x56240…56260 20 20 20 20 20 7b 20 59 20 20 20 20 20 7d 0d 0a 20 28 2a 20 33 33 2e 2e 31 32 37 3a 20 4d 61 72 ┆ æ Y å (* 33..127: Mar┆ 0x56260…56280 6b 53 79 6d 62 6f 6c 4d 6f 64 65 28 73 78 2c 73 79 2c 73 79 6d 62 6f 6c 29 3b 2a 29 0d 0a 20 20 ┆kSymbolMode(sx,sy,symbol);*) ┆ 0x56280…562a0 45 4e 44 3b 0d 0a 20 20 20 78 3a 3d 78 6f 6c 64 3b 20 79 3a 3d 79 6f 6c 64 3b 20 6d 6f 76 65 74 ┆END; x:=xold; y:=yold; movet┆ 0x562a0…562c0 6f 28 78 2c 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆o(x,y); END; ┆ 0x562c0…562e0 00 00 00 00 00 00 00 00 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…] 0x56300…56320 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x27…] 0x56800…56820 (34, 1, 2) 28 2a 47 53 56 2d 42 41 53 45 2a 29 0d 0a 0d 0a 43 4f 4e 53 54 0d 0a 20 20 62 6c 61 63 6b 20 09 ┆(*GSV-BASE*) CONST black ┆ 0x56820…56840 3d 20 30 3b 0d 0a 20 20 77 68 69 74 65 20 09 3d 20 24 46 46 3b 0d 0a 20 20 74 72 61 6e 73 70 09 ┆= 0; white = $FF; transp ┆ 0x56840…56860 3d 20 30 31 3b 0d 0a 20 20 57 6e 64 5f 6d 61 78 20 09 3d 20 35 3b 0d 0a 20 20 63 68 61 72 66 69 ┆= 01; Wnd_max = 5; charfi┆ 0x56860…56880 6c 6e 61 6d 65 20 09 3d 20 27 61 3a 47 53 56 2d 66 6f 6e 74 2e 63 68 72 27 3b 0d 0a 20 20 74 78 ┆lname = 'a:GSV-font.chr'; tx┆ 0x56880…568a0 74 5f 6d 6f 64 65 09 3a 20 42 4f 4f 4c 45 41 4e 20 3d 20 74 72 75 65 3b 0d 0a 20 20 6c 69 6e 65 ┆t_mode : BOOLEAN = true; line┆ 0x568a0…568c0 74 79 70 65 20 20 20 20 20 20 3a 20 41 52 52 41 59 28 2e 30 2e 2e 31 34 2e 29 20 4f 46 20 42 59 ┆type : ARRAY(.0..14.) OF BY┆ 0x568c0…568e0 54 45 20 3d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 30 30 2c 24 46 46 ┆TE = ($00,$FF┆ 0x568e0…56900 2c 24 46 45 2c 24 46 43 2c 24 46 41 2c 24 46 38 2c 24 46 36 2c 24 46 30 2c 0d 0a 20 20 20 20 20 ┆,$FE,$FC,$FA,$F8,$F6,$F0, ┆ 0x56900…56920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 45 45 2c 24 45 41 2c 24 45 34 2c 24 43 43 2c 24 41 ┆ $EE,$EA,$E4,$CC,$A┆ 0x56920…56940 41 2c 24 38 38 2c 24 38 30 29 3b 0d 0a 0d 0a 20 20 70 61 74 74 65 72 6e 74 79 70 65 20 20 20 3a ┆A,$88,$80); patterntype :┆ 0x56940…56960 20 61 72 72 61 79 28 2e 30 2e 2e 31 35 2c 30 2e 2e 37 2e 29 20 4f 46 20 42 59 54 45 20 3d 0d 0a ┆ array(.0..15,0..7.) OF BYTE = ┆ 0x56960…56980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 ┆ (($00,$00,$00,$┆ 0x56980…569a0 30 30 2c 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 30 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆00,$00,$00,$00,$00), ┆ 0x569a0…569c0 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 46 46 2c 24 46 46 2c 24 46 46 2c 24 46 46 2c 24 46 46 ┆ ($FF,$FF,$FF,$FF,$FF,$FF┆ 0x569c0…569e0 2c 24 46 46 2c 24 46 46 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 ┆,$FF,$FF), ($┆ 0x569e0…56a00 38 38 2c 24 34 34 2c 24 32 32 2c 24 31 31 2c 24 38 38 2c 24 34 34 2c 24 32 32 2c 24 31 31 29 2c ┆88,$44,$22,$11,$88,$44,$22,$11),┆ 0x56a00…56a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x56a20…56a40 20 20 20 20 28 24 41 41 2c 24 41 41 2c 24 41 41 2c 24 41 41 2c 24 41 41 2c 24 41 41 2c 24 41 41 ┆ ($AA,$AA,$AA,$AA,$AA,$AA,$AA┆ 0x56a40…56a60 2c 24 41 41 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 ┆,$AA), ($FF,$┆ 0x56a60…56a80 30 30 2c 24 46 46 2c 24 30 30 2c 24 46 46 2c 24 30 30 2c 24 46 46 2c 24 30 30 29 2c 0d 0a 20 20 ┆00,$FF,$00,$FF,$00,$FF,$00), ┆ 0x56a80…56aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 41 41 2c 24 46 46 2c 24 41 41 ┆ ($FF,$AA,$FF,$AA┆ 0x56aa0…56ac0 2c 24 46 46 2c 24 41 41 2c 24 46 46 2c 24 41 41 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆,$FF,$AA,$FF,$AA), ┆ 0x56ac0…56ae0 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 ┆ ($┆ 0x56ae0…56b00 41 41 2c 24 35 35 2c 24 41 41 2c 24 35 35 2c 24 41 41 2c 24 35 35 2c 24 41 41 2c 24 35 35 29 2c ┆AA,$55,$AA,$55,$AA,$55,$AA,$55),┆ 0x56b00…56b20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 31 31 2c 24 32 32 2c 24 34 34 ┆ ($11,$22,$44┆ 0x56b20…56b40 2c 24 38 38 2c 24 31 31 2c 24 32 32 2c 24 34 34 2c 24 38 38 29 2c 20 20 20 20 20 20 20 20 20 20 ┆,$88,$11,$22,$44,$88), ┆ 0x56b40…56b60 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ┆ (┆ 0x56b60…56b80 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 29 ┆$88,$88,$88,$88,$88,$88,$88,$88)┆ 0x56b80…56ba0 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆, ┆ 0x56ba0…56bc0 20 20 20 28 24 46 46 2c 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 46 46 2c 24 30 30 2c 24 30 30 2c ┆ ($FF,$00,$00,$00,$FF,$00,$00,┆ 0x56bc0…56be0 24 30 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 38 ┆$00), ($FF,$8┆ 0x56be0…56c00 38 2c 24 38 38 2c 24 38 38 2c 24 46 46 2c 24 38 38 2c 24 38 38 2c 24 38 38 29 2c 20 20 20 20 20 ┆8,$88,$88,$FF,$88,$88,$88), ┆ 0x56c00…56c20 (34, 1, 3) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x56c20…56c40 20 20 20 20 20 20 28 24 30 33 2c 24 38 34 2c 24 34 38 2c 24 33 30 2c 24 33 30 2c 24 34 38 2c 24 ┆ ($03,$84,$48,$30,$30,$48,$┆ 0x56c40…56c60 38 34 2c 24 30 33 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 38 38 ┆84,$03), ($88┆ 0x56c60…56c80 2c 24 35 35 2c 24 32 32 2c 24 35 35 2c 24 38 38 2c 24 35 35 2c 24 32 32 2c 24 35 35 29 2c 0d 0a ┆,$55,$22,$55,$88,$55,$22,$55), ┆ 0x56c80…56ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 38 30 2c 24 38 30 2c 24 38 30 2c 24 ┆ ($80,$80,$80,$┆ 0x56ca0…56cc0 38 30 2c 24 38 30 2c 24 38 30 2c 24 38 30 2c 24 38 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆80,$80,$80,$80,$80), ┆ 0x56cc0…56ce0 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 30 30 ┆ ($FF,$00,$00,$00,$00,$00┆ 0x56ce0…56d00 2c 24 30 30 2c 24 30 30 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆,$00,$00), ┆ 0x56d00…56d20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 38 30 2c 24 38 30 ┆ ($FF,$80,$80┆ 0x56d20…56d40 2c 24 38 30 2c 24 38 30 2c 24 38 30 2c 24 38 30 2c 24 38 30 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 ┆,$80,$80,$80,$80,$80)); ┆ 0x56d40…56d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 28 2a 20 20 46 6f 72 65 2d 20 61 6e 64 20 62 61 ┆ (* Fore- and ba┆ 0x56d60…56d80 63 6b 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 2a 29 0d 0a 28 2a 20 20 20 20 4c 69 67 68 74 54 78 74 ┆ckgroundcolors*) (* LightTxt┆ 0x56d80…56da0 20 6f 6e 6c 79 20 77 6f 72 6b 73 20 46 4f 52 20 66 6f 72 65 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 ┆ only works FOR foregroundcolors┆ 0x56da0…56dc0 2a 29 0d 0a 28 2a 20 20 20 20 42 6c 69 6e 6b 54 78 74 20 6f 6e 6c 79 20 77 6f 72 6b 73 20 46 4f ┆*) (* BlinkTxt only works FO┆ 0x56dc0…56de0 52 20 62 61 63 6b 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 20 2a 29 0d 0a 20 20 62 6c 61 63 6b 54 78 ┆R backgroundcolors *) blackTx┆ 0x56de0…56e00 74 09 3d 20 30 3b 20 77 68 69 74 65 74 78 74 09 3d 20 37 3b 0d 0a 20 20 6c 69 67 68 74 74 78 74 ┆t = 0; whitetxt = 7; lighttxt┆ 0x56e00…56e20 09 3d 20 38 3b 20 20 62 6c 69 6e 6b 74 78 74 20 20 3d 20 38 3b 0d 0a 0d 0a 54 59 50 45 0d 0a 20 ┆ = 8; blinktxt = 8; TYPE ┆ 0x56e20…56e40 20 42 75 66 74 79 70 65 20 09 3d 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 38 30 20 09 ┆ Buftype = ^INTEGER; str80 ┆ 0x56e40…56e60 3d 20 53 54 52 49 4e 47 28 2e 38 30 2e 29 3b 0d 0a 20 20 73 74 72 31 20 20 20 20 20 20 20 20 20 ┆= STRING(.80.); str1 ┆ 0x56e60…56e80 20 3d 20 53 54 52 49 4e 47 5b 31 5d 3b 0d 0a 20 20 73 74 72 32 20 20 20 20 20 20 20 20 20 20 3d ┆ = STRINGÆ1Å; str2 =┆ 0x56e80…56ea0 20 53 54 52 49 4e 47 5b 32 5d 3b 0d 0a 20 20 73 74 72 31 35 20 20 20 20 20 20 20 20 20 3d 20 53 ┆ STRINGÆ2Å; str15 = S┆ 0x56ea0…56ec0 54 52 49 4e 47 5b 31 35 5d 3b 0d 0a 20 20 73 74 72 32 35 20 20 20 20 20 20 20 20 20 3d 20 53 54 ┆TRINGÆ15Å; str25 = ST┆ 0x56ec0…56ee0 52 49 4e 47 5b 32 35 5d 3b 0d 0a 20 20 63 68 61 72 73 65 74 20 20 20 20 20 20 20 3d 20 73 65 74 ┆RINGÆ25Å; charset = set┆ 0x56ee0…56f00 20 6f 66 20 63 68 61 72 3b 0d 0a 20 20 57 6e 64 5f 54 59 50 45 20 3d 20 52 45 43 4f 52 44 0d 0a ┆ of char; Wnd_TYPE = RECORD ┆ 0x56f00…56f20 20 20 20 20 78 31 2c 20 79 31 09 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 6d 61 78 78 ┆ x1, y1 : INTEGER; maxx┆ 0x56f20…56f40 2c 20 6d 61 78 79 09 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 70 65 6e 63 6f 6c 6f 72 ┆, maxy : INTEGER; pencolor┆ 0x56f40…56f60 2c 20 62 61 63 6b 63 6f 6c 6f 72 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 74 78 74 6d ┆, backcolor : INTEGER; txtm┆ 0x56f60…56f80 61 78 78 2c 20 74 78 74 6d 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 74 78 74 ┆axx, txtmaxy : INTEGER; txt┆ 0x56f80…56fa0 78 31 2c 20 74 78 74 79 31 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 68 64 72 09 09 09 ┆x1, txty1 : INTEGER; hdr ┆ 0x56fa0…56fc0 3a 20 73 74 72 38 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 57 6c 64 5f 54 59 50 45 20 3d ┆: str80; END; Wld_TYPE =┆ 0x56fc0…56fe0 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 78 31 2c 20 79 31 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 20 ┆ RECORD x1, y1 : REAL; ┆ 0x56fe0…57000 20 78 72 61 6e 67 65 2c 20 79 72 61 6e 67 65 3a 20 52 45 41 4c 3b 0d 0a 20 20 20 20 58 4f 6c 64 ┆ xrange, yrange: REAL; XOld┆ 0x57000…57020 (34, 1, 4) 2c 20 59 6f 6c 64 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 73 61 76 65 ┆, Yold : REAL; END; save┆ 0x57020…57040 5f 54 59 50 45 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 63 6f 6e 74 65 6e 74 09 3a 20 62 75 ┆_TYPE = RECORD content : bu┆ 0x57040…57060 66 74 79 70 65 3b 0d 0a 20 20 20 20 6c 65 6e 67 74 68 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆ftype; length : INTEGER; ┆ 0x57060…57080 20 20 20 77 69 6e 64 09 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 20 20 6f 6c 64 31 2c 20 6f ┆ wind : Wnd_TYPE; old1, o┆ 0x57080…570a0 6c 64 32 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 20 20 61 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 ┆ld2 : REAL; actual : INTEGE┆ 0x570a0…570c0 52 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 20 20 72 65 67 74 79 70 20 3d 20 52 45 43 4f 52 ┆R; END; regtyp = RECOR┆ 0x570c0…570e0 44 0d 0a 20 20 20 20 61 78 2c 62 78 2c 63 78 2c 64 78 2c 62 70 2c 73 69 2c 64 69 2c 64 73 2c 65 ┆D ax,bx,cx,dx,bp,si,di,ds,e┆ 0x570e0…57100 73 2c 66 6c 61 67 73 3a 49 4e 54 45 47 45 52 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 6f 70 72 74 79 ┆s,flags:INTEGER END; oprty┆ 0x57100…57120 70 65 09 3d 20 28 73 61 76 65 2c 6c 6f 61 64 2c 73 63 72 73 77 61 70 29 3b 0d 0a 20 20 63 68 61 ┆pe = (save,load,scrswap); cha┆ 0x57120…57140 72 66 69 6c 74 79 70 65 09 3d 20 41 52 52 41 59 28 2e 30 2e 2e 32 35 35 2e 29 20 4f 46 20 41 52 ┆rfiltype = ARRAY(.0..255.) OF AR┆ 0x57140…57160 52 41 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 42 59 54 45 3b 0d 0a 0d 0a 20 20 74 78 74 5f 6c 69 ┆RAY(.0..7.) OF BYTE; txt_li┆ 0x57160…57180 6e 65 63 68 61 72 09 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 43 41 53 45 20 42 4f 4f 4c 45 41 ┆nechar = RECORD CASE BOOLEA┆ 0x57180…571a0 4e 20 4f 46 0d 0a 20 20 20 20 20 20 74 72 75 65 3a 20 28 63 68 3a 20 43 48 41 52 3b 20 20 61 74 ┆N OF true: (ch: CHAR; at┆ 0x571a0…571c0 74 3a 20 42 59 54 45 29 3b 0d 0a 20 20 20 20 20 20 66 61 6c 73 65 3a 28 62 6f 74 68 3a 20 49 4e ┆t: BYTE); false:(both: IN┆ 0x571c0…571e0 54 45 47 45 52 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 50 72 6e 5f 54 59 50 45 20 20 20 ┆TEGER); END; Prn_TYPE ┆ 0x571e0…57200 20 20 20 3d 20 28 4e 45 43 5f 31 36 62 69 74 2c 4e 45 43 5f 38 62 69 74 29 3b 0d 0a 20 20 70 74 ┆ = (NEC_16bit,NEC_8bit); pt┆ 0x57200…57220 72 5f 54 59 50 45 09 3d 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 20 20 74 78 74 5f 6c 69 6e 65 09 3d ┆r_TYPE = ^INTEGER; txt_line =┆ 0x57220…57240 20 41 52 52 41 59 28 2e 30 2e 2e 37 39 2e 29 20 4f 46 20 74 78 74 5f 6c 69 6e 65 63 68 61 72 3b ┆ ARRAY(.0..79.) OF txt_linechar;┆ 0x57240…57260 0d 0a 20 20 74 78 74 5f 63 68 61 72 73 65 74 20 20 20 3d 20 53 45 54 20 4f 46 20 43 48 41 52 3b ┆ txt_charset = SET OF CHAR;┆ 0x57260…57280 0d 0a 20 20 61 6e 79 73 74 72 20 20 20 20 20 20 20 20 3d 20 73 74 72 69 6e 67 5b 32 35 35 5d 3b ┆ anystr = stringÆ255Å;┆ 0x57280…572a0 0d 0a 56 41 52 0d 0a 20 20 53 63 72 5f 6d 61 78 78 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 ┆ VAR Scr_maxx : INTEGER; ┆ 0x572a0…572c0 53 63 72 5f 6d 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 73 65 67 6d 09 ┆Scr_maxy : INTEGER; Scr_segm ┆ 0x572c0…572e0 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 61 73 70 65 63 74 09 3a 20 49 4e 54 45 47 ┆: INTEGER; Scr_aspect : INTEG┆ 0x572e0…57300 45 52 3b 0d 0a 20 20 53 63 72 5f 78 61 64 64 72 09 3a 20 41 52 52 41 59 28 2e 30 2e 2e 36 34 30 ┆ER; Scr_xaddr : ARRAY(.0..640┆ 0x57300…57320 2e 29 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 79 61 64 64 72 09 3a 20 41 52 ┆.) OF INTEGER; Scr_yaddr : AR┆ 0x57320…57340 52 41 59 28 2e 30 2e 2e 34 30 30 2e 29 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 ┆RAY(.0..400.) OF INTEGER; Scr┆ 0x57340…57360 5f 42 45 47 49 4e 09 3a 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 0d 0a 20 20 57 6e 64 5f 09 09 3a 20 ┆_BEGIN : ^INTEGER; Wnd_ : ┆ 0x57360…57380 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 57 6e 64 5f 70 61 6c 65 74 74 65 20 20 20 3a 20 41 52 52 ┆Wnd_TYPE; Wnd_palette : ARR┆ 0x57380…573a0 41 59 28 2e 30 2e 2e 31 35 2e 29 20 4f 46 20 62 79 74 65 3b 0d 0a 20 20 57 6c 64 5f 09 09 3a 20 ┆AY(.0..15.) OF byte; Wld_ : ┆ 0x573a0…573c0 57 6c 64 5f 54 59 50 45 3b 0d 0a 0d 0a 20 20 57 6e 64 5f 61 72 72 09 3a 20 41 52 52 41 59 28 2e ┆Wld_TYPE; Wnd_arr : ARRAY(.┆ 0x573c0…573e0 31 2e 2e 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 57 6c 64 ┆1..Wnd_max.) OF Wnd_TYPE; Wld┆ 0x573e0…57400 5f 61 72 72 09 3a 20 41 52 52 41 59 28 2e 31 2e 2e 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 57 6c ┆_arr : ARRAY(.1..Wnd_max.) OF Wl┆ 0x57400…57420 (34, 1, 5) 64 5f 54 59 50 45 3b 0d 0a 20 20 53 61 76 65 5f 61 72 72 09 3a 20 41 52 52 41 59 28 2e 31 2e 2e ┆d_TYPE; Save_arr : ARRAY(.1..┆ 0x57420…57440 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 73 61 76 65 5f 54 59 50 45 3b 0d 0a 20 20 57 6e 64 5f 61 ┆Wnd_max.) OF save_TYPE; Wnd_a┆ 0x57440…57460 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 57 6e 64 5f 43 6f 6c 6f 72 09 3a 20 ┆ctual : INTEGER; Wnd_Color : ┆ 0x57460…57480 49 4e 54 45 47 45 52 3b 0d 0a 20 20 72 65 67 09 09 3a 20 72 65 67 74 79 70 3b 0d 0a 20 20 53 63 ┆INTEGER; reg : regtyp; Sc┆ 0x57480…574a0 72 5f 73 74 61 72 74 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 43 48 41 52 09 3a ┆r_start : INTEGER; Scr_CHAR :┆ 0x574a0…574c0 20 63 68 61 72 66 69 6c 74 79 70 65 3b 0d 0a 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 09 3a 20 41 ┆ charfiltype; txt_lineptr : A┆ 0x574c0…574e0 52 52 41 59 28 2e 30 2e 2e 32 34 2e 29 20 4f 46 20 5e 74 78 74 5f 6c 69 6e 65 3b 0d 0a 20 20 74 ┆RRAY(.0..24.) OF ^txt_line; t┆ 0x574e0…57500 78 74 5f 6d 61 78 78 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 74 78 74 5f 6d 61 78 79 09 3a ┆xt_maxx : INTEGER; txt_maxy :┆ 0x57500…57520 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 69 74 6e 72 20 20 20 20 20 20 20 20 20 3a 20 49 4e 54 ┆ INTEGER; Bitnr : INT┆ 0x57520…57540 45 47 45 52 3b 0d 0a 20 20 4c 69 6e 65 50 61 74 74 65 72 6e 20 20 20 3a 20 42 59 54 45 3b 0d 0a ┆EGER; LinePattern : BYTE; ┆ 0x57540…57560 20 20 4c 69 6e 65 50 61 74 74 65 72 6e 53 69 7a 65 20 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆ LinePatternSize : INTEGER; ┆ 0x57560…57580 20 6d 61 72 6b 65 72 73 69 7a 65 20 20 20 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 43 68 48 ┆ markersize : INTEGER; ChH┆ 0x57580…575a0 65 69 67 74 68 20 20 20 20 20 20 3a 20 52 45 41 4c 3b 0d 0a 20 20 43 68 57 69 64 74 68 20 20 20 ┆eigth : REAL; ChWidth ┆ 0x575a0…575c0 20 20 20 20 3a 20 52 45 41 4c 3b 0d 0a 20 20 52 6f 74 61 74 69 6f 6e 20 20 20 20 20 20 3a 20 49 ┆ : REAL; Rotation : I┆ 0x575c0…575e0 4e 54 45 47 45 52 3b 0d 0a 0d 0a 43 4f 4e 53 54 0d 0a 20 20 73 63 72 5f 73 77 61 70 5f 3a 20 6f ┆NTEGER; CONST scr_swap_: o┆ 0x575e0…57600 70 72 74 79 70 65 3d 6c 6f 61 64 3b 0d 0a 0d 0a 7b 20 43 53 54 52 20 72 65 74 75 72 6e 73 20 61 ┆prtype=load; æ CSTR returns a┆ 0x57600…57620 20 73 74 72 69 6e 67 20 77 69 74 68 20 4e 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 76 61 6c ┆ string with N characters of val┆ 0x57620…57640 75 65 20 43 20 7d 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 73 74 72 28 63 3a 20 63 68 61 72 3b ┆ue C å FUNCTION cstr(c: char;┆ 0x57640…57660 20 6e 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 6e 79 73 74 72 3b 0d 0a 56 41 52 0d 0a 20 20 73 3a ┆ n: integer): anystr; VAR s:┆ 0x57660…57680 20 53 54 52 49 4e 47 5b 32 35 35 5d 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 6e 3c 30 20 54 ┆ STRINGÆ255Å; BEGIN IF n<0 T┆ 0x57680…576a0 48 45 4e 20 6e 3a 3d 30 3b 20 73 5b 30 5d 3a 3d 63 68 72 28 6e 29 3b 20 66 69 6c 6c 28 73 5b 31 ┆HEN n:=0; sÆ0Å:=chr(n); fill(sÆ1┆ 0x576a0…576c0 5d 2c 6e 2c 63 29 3b 0d 0a 20 20 63 73 74 72 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e ┆Å,n,c); cstr:=s; END; FUN┆ 0x576c0…576e0 43 54 49 4f 4e 20 73 70 63 28 6c 3a 20 49 4e 54 45 47 45 52 3b 20 63 68 3a 20 43 48 41 52 29 3a ┆CTION spc(l: INTEGER; ch: CHAR):┆ 0x576e0…57700 73 74 72 38 30 3b 0d 0a 56 41 52 20 0d 0a 20 20 73 09 3a 20 73 74 72 38 30 3b 0d 0a 20 20 73 6c ┆str80; VAR s : str80; sl┆ 0x57700…57720 67 74 20 20 3a 20 42 59 54 45 20 41 54 20 73 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 6c 67 74 3a ┆gt : BYTE AT s; BEGIN slgt:┆ 0x57720…57740 3d 6c 3b 0d 0a 20 20 66 69 6c 6c 28 73 28 2e 31 2e 29 2c 6c 2c 63 68 29 3b 0d 0a 20 20 73 70 63 ┆=l; fill(s(.1.),l,ch); spc┆ 0x57740…57760 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 77 61 70 28 56 41 52 ┆:=s; END; PROCEDURE swap(VAR┆ 0x57760…57780 20 61 2c 62 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 63 3a 20 49 4e 54 45 47 45 52 3b ┆ a,b: INTEGER); VAR c: INTEGER;┆ 0x57780…577a0 0d 0a 42 45 47 49 4e 0d 0a 20 20 63 3a 3d 61 3b 20 61 3a 3d 62 3b 20 62 3a 3d 63 3b 0d 0a 45 4e ┆ BEGIN c:=a; a:=b; b:=c; EN┆ 0x577a0…577c0 44 3b 20 0d 0a 20 20 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 74 5f 67 72 61 70 68 69 ┆D; PROCEDURE init_graphi┆ 0x577c0…577e0 63 73 3b 0d 0a 56 41 52 0d 0a 20 20 53 63 72 5f 4d 4f 44 2c 20 69 3a 20 49 4e 54 45 47 45 52 3b ┆cs; VAR Scr_MOD, i: INTEGER;┆ 0x577e0…57800 0d 0a 20 20 63 68 61 72 66 69 6c 3a 20 46 49 4c 45 20 4f 46 20 63 68 61 72 66 69 6c 74 79 70 65 ┆ charfil: FILE OF charfiltype┆ 0x57800…57820 (35, 0, 1) 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 28 2a 20 4f 6c 69 76 65 74 74 69 20 67 72 61 70 68 69 63 73 ┆; BEGIN (* Olivetti graphics┆ 0x57820…57840 20 36 34 30 2a 34 30 30 20 70 6f 69 6e 74 73 20 2a 29 0d 0a 20 20 53 63 72 5f 73 65 67 6d 3a 3d ┆ 640*400 points *) Scr_segm:=┆ 0x57840…57860 24 42 38 30 30 3b 0d 0a 20 20 53 63 72 5f 4d 4f 44 3a 3d 34 3b 0d 0a 20 20 53 63 72 5f 73 74 61 ┆$B800; Scr_MOD:=4; Scr_sta┆ 0x57860…57880 72 74 3a 3d 36 34 3b 0d 0a 20 20 53 63 72 5f 6d 61 78 78 3a 3d 36 33 39 3b 0d 0a 20 20 53 63 72 ┆rt:=64; Scr_maxx:=639; Scr┆ 0x57880…578a0 5f 6d 61 78 79 3a 3d 33 39 39 3b 0d 0a 20 20 53 63 72 5f 61 73 70 65 63 74 3a 3d 31 30 30 3b 20 ┆_maxy:=399; Scr_aspect:=100; ┆ 0x578a0…578c0 28 2a 53 63 72 5f 61 73 70 65 63 74 3a 3d 31 31 37 3b 2a 29 0d 0a 20 20 74 78 74 5f 6d 61 78 78 ┆(*Scr_aspect:=117;*) txt_maxx┆ 0x578c0…578e0 3a 3d 37 39 3b 0d 0a 20 20 74 78 74 5f 6d 61 78 79 3a 3d 32 34 3b 0d 0a 20 20 0d 0a 20 20 46 4f ┆:=79; txt_maxy:=24; FO┆ 0x578e0…57900 52 20 69 3a 3d 20 30 20 54 4f 20 53 63 72 5f 6d 61 78 78 20 44 4f 20 53 63 72 5f 78 61 64 64 72 ┆R i:= 0 TO Scr_maxx DO Scr_xaddr┆ 0x57900…57920 28 2e 69 2e 29 3a 3d 69 20 44 49 56 20 38 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 20 30 20 54 4f 20 ┆(.i.):=i DIV 8; FOR i:= 0 TO ┆ 0x57920…57940 53 63 72 5f 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 53 63 72 5f 79 61 64 64 72 28 2e 53 63 72 5f ┆Scr_maxy DO Scr_yaddr(.Scr_┆ 0x57940…57960 6d 61 78 79 2d 69 2e 29 3a 3d 28 28 69 20 4d 4f 44 20 53 63 72 5f 4d 4f 44 29 2a 24 32 30 30 30 ┆maxy-i.):=((i MOD Scr_MOD)*$2000┆ 0x57960…57980 29 20 2b 20 28 28 69 20 44 49 56 20 53 63 72 5f 4d 4f 44 29 2a 38 30 29 3b 0d 0a 20 20 61 73 73 ┆) + ((i DIV Scr_MOD)*80); ass┆ 0x57980…579a0 69 67 6e 28 63 68 61 72 66 69 6c 2c 63 68 61 72 66 69 6c 6e 61 6d 65 29 3b 0d 0a 20 20 72 65 73 ┆ign(charfil,charfilname); res┆ 0x579a0…579c0 65 74 28 63 68 61 72 66 69 6c 29 3b 0d 0a 20 20 72 65 61 64 28 63 68 61 72 66 69 6c 2c 53 63 72 ┆et(charfil); read(charfil,Scr┆ 0x579c0…579e0 5f 43 48 41 52 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 63 68 61 72 66 69 6c 29 3b 0d 0a 45 4e 44 3b ┆_CHAR); close(charfil); END;┆ 0x579e0…57a00 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 74 5f 74 65 78 74 3b 0d 0a 56 41 52 20 78 2c ┆ PROCEDURE init_text; VAR x,┆ 0x57a00…57a20 69 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 3a 3d 30 3b 0d 0a 20 20 ┆i : INTEGER; BEGIN x:=0; ┆ 0x57a20…57a40 46 4f 52 20 69 3a 3d 30 20 54 4f 20 32 34 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 ┆FOR i:=0 TO 24 DO BEGIN txt┆ 0x57a40…57a60 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 3a 3d 70 74 72 28 24 42 38 30 30 2c 78 29 3b 0d 0a 20 20 ┆_lineptr(.i.):=ptr($B800,x); ┆ 0x57a60…57a80 20 20 78 3a 3d 78 2b 31 36 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f ┆ x:=x+160; END; END; PRO┆ 0x57a80…57aa0 43 45 44 55 52 45 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 74 ┆CEDURE graphmode; BEGIN IF t┆ 0x57aa0…57ac0 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 78 ┆xt_mode THEN BEGIN txt_maxx┆ 0x57ac0…57ae0 3a 3d 53 63 72 5f 6d 61 78 78 20 44 49 56 20 38 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 79 3a ┆:=Scr_maxx DIV 8; txt_maxy:┆ 0x57ae0…57b00 3d 53 63 72 5f 6d 61 78 79 20 44 49 56 20 38 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 6f 64 65 3a 3d ┆=Scr_maxy DIV 8; txt_mode:=┆ 0x57b00…57b20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 65 67 2e 61 78 3a 3d 53 63 72 5f 73 74 61 72 74 3b 0d 0a ┆false; reg.ax:=Scr_start; ┆ 0x57b20…57b40 20 20 20 20 73 77 69 6e 74 28 24 31 30 2c 72 65 67 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆ swint($10,reg); END; END┆ 0x57b40…57b60 3b 20 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 42 45 47 49 4e ┆; PROCEDURE textmode; BEGIN┆ 0x57b60…57b80 0d 0a 20 20 49 46 20 4e 4f 54 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a ┆ IF NOT txt_mode THEN BEGIN ┆ 0x57b80…57ba0 20 20 20 20 74 78 74 5f 6d 61 78 78 3a 3d 37 39 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 79 3a ┆ txt_maxx:=79; txt_maxy:┆ 0x57ba0…57bc0 3d 32 34 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 6f 64 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 72 ┆=24; txt_mode:=true; r┆ 0x57bc0…57be0 65 67 2e 61 78 3a 3d 24 30 33 3b 0d 0a 20 20 20 20 73 77 69 6e 74 28 24 31 30 2c 72 65 67 29 3b ┆eg.ax:=$03; swint($10,reg);┆ 0x57be0…57c00 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 ┆ END; END; PROCEDURE wr┆ 0x57c00…57c20 (35, 0, 2) 69 74 65 73 74 72 28 63 6f 6c 2c 72 6f 77 3a 20 49 4e 54 45 47 45 52 3b 20 73 74 72 3a 20 73 74 ┆itestr(col,row: INTEGER; str: st┆ 0x57c20…57c40 72 38 30 29 3b 0d 0a 56 41 52 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e 0d ┆r80); VAR attrib: BYTE; BEGIN ┆ 0x57c40…57c60 0a 20 20 61 74 74 72 69 62 3a 3d 57 6e 64 5f 70 61 6c 65 74 74 65 28 2e 57 6e 64 5f 61 63 74 75 ┆ attrib:=Wnd_palette(.Wnd_actu┆ 0x57c60…57c80 61 6c 2e 29 3b 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 20 24 31 45 2c 24 31 45 2c 24 38 41 2c 24 38 ┆al.); CODE $1E,$1E,$8A,$8┆ 0x57c80…57ca0 36 2c 72 6f 77 2c 24 42 33 2c 24 35 30 2c 24 46 36 2c 24 45 33 2c 24 32 42 2c 24 44 42 2c 24 38 ┆6,row,$B3,$50,$F6,$E3,$2B,$DB,$8┆ 0x57ca0…57cc0 41 2c 24 39 45 2c 63 6f 6c 2c 0d 0a 20 20 20 24 30 33 2c 24 43 33 2c 24 30 33 2c 24 43 30 2c 24 ┆A,$9E,col, $03,$C3,$03,$C0,$┆ 0x57cc0…57ce0 38 42 2c 24 46 38 2c 24 42 45 2c 24 30 30 2c 24 30 30 2c 24 38 41 2c 24 42 45 2c 61 74 74 72 69 ┆8B,$F8,$BE,$00,$00,$8A,$BE,attri┆ 0x57ce0…57d00 62 2c 0d 0a 20 20 20 24 38 41 2c 24 38 45 2c 73 74 72 2c 24 32 32 2c 24 43 39 2c 24 37 34 2c 24 ┆b, $8A,$8E,str,$22,$C9,$74,$┆ 0x57d00…57d20 33 45 2c 24 32 42 2c 24 43 30 2c 24 38 45 2c 24 44 38 2c 24 41 30 2c 24 34 39 2c 24 30 34 2c 0d ┆3E,$2B,$C0,$8E,$D8,$A0,$49,$04, ┆ 0x57d20…57d40 0a 20 20 20 24 31 46 2c 24 32 43 2c 24 30 37 2c 24 37 34 2c 24 32 32 2c 24 42 41 2c 24 30 30 2c ┆ $1F,$2C,$07,$74,$22,$BA,$00,┆ 0x57d40…57d60 24 42 38 2c 24 38 45 2c 24 44 41 2c 24 42 41 2c 24 44 41 2c 24 30 33 2c 24 34 36 2c 0d 0a 20 20 ┆$B8,$8E,$DA,$BA,$DA,$03,$46, ┆ 0x57d60…57d80 20 24 38 41 2c 24 39 41 2c 73 74 72 2c 24 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 35 2c 24 46 42 ┆ $8A,$9A,str,$EC,$A8,$01,$75,$FB┆ 0x57d80…57da0 2c 24 46 41 2c 24 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 34 2c 24 46 42 2c 0d 0a 20 20 20 24 38 ┆,$FA,$EC,$A8,$01,$74,$FB, $8┆ 0x57da0…57dc0 39 2c 24 31 44 2c 24 34 37 2c 24 34 37 2c 24 45 32 2c 24 45 41 2c 24 32 41 2c 24 43 30 2c 24 37 ┆9,$1D,$47,$47,$E2,$EA,$2A,$C0,$7┆ 0x57dc0…57de0 34 2c 24 31 30 2c 24 42 41 2c 24 30 30 2c 24 42 30 2c 0d 0a 20 20 20 24 38 45 2c 24 44 41 2c 24 ┆4,$10,$BA,$00,$B0, $8E,$DA,$┆ 0x57de0…57e00 34 36 2c 24 38 41 2c 24 39 41 2c 73 74 72 2c 24 38 39 2c 24 31 44 2c 24 34 37 2c 24 34 37 2c 24 ┆46,$8A,$9A,str,$89,$1D,$47,$47,$┆ 0x57e00…57e20 45 32 2c 24 46 35 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 ┆E2,$F5,$1F; END; PROCEDURE S┆ 0x57e20…57e40 63 72 5f 73 65 74 44 6f 74 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d ┆cr_setDot(x,y: INTEGER); BEGIN ┆ 0x57e40…57e60 0a 20 20 57 6e 64 5f 43 6f 6c 6f 72 3a 3d 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 3b 0d 0a 20 20 ┆ Wnd_Color:=Wnd_.pencolor; ┆ 0x57e60…57e80 43 4f 44 45 0d 0a 20 20 24 38 42 2c 24 37 45 2c 24 30 36 2c 24 38 42 2c 24 37 36 2c 24 30 34 2c ┆CODE $8B,$7E,$06,$8B,$76,$04,┆ 0x57e80…57ea0 24 38 39 2c 24 46 39 2c 24 44 31 2c 24 45 37 2c 24 44 31 2c 24 45 36 2c 24 38 42 2c 24 39 44 2c ┆$89,$F9,$D1,$E7,$D1,$E6,$8B,$9D,┆ 0x57ea0…57ec0 3e 53 63 72 5f 78 61 64 64 72 2c 0d 0a 20 20 24 30 33 2c 24 39 43 2c 3e 53 63 72 5f 79 61 64 64 ┆>Scr_xaddr, $03,$9C,>Scr_yadd┆ 0x57ec0…57ee0 72 2c 24 38 30 2c 24 45 31 2c 24 30 37 2c 24 42 32 2c 24 38 30 2c 24 44 32 2c 24 45 41 2c 24 38 ┆r,$80,$E1,$07,$B2,$80,$D2,$EA,$8┆ 0x57ee0…57f00 45 2c 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 41 30 2c 0d 0a 20 20 3e 57 6e 64 5f 63 6f 6c ┆E,$06,>Scr_segm,$A0, >Wnd_col┆ 0x57f00…57f20 6f 72 2c 24 33 43 2c 24 46 46 2c 24 37 35 2c 24 30 35 2c 24 32 36 2c 24 30 38 2c 24 31 37 2c 24 ┆or,$3C,$FF,$75,$05,$26,$08,$17,$┆ 0x57f20…57f40 45 42 2c 24 30 45 2c 24 33 43 2c 24 30 30 2c 24 37 35 2c 24 30 37 2c 24 46 36 2c 0d 0a 20 20 24 ┆EB,$0E,$3C,$00,$75,$07,$F6, $┆ 0x57f40…57f60 44 32 2c 24 32 36 2c 24 32 30 2c 24 31 37 2c 24 45 42 2c 24 30 33 2c 24 32 36 2c 24 33 30 2c 24 ┆D2,$26,$20,$17,$EB,$03,$26,$30,$┆ 0x57f60…57f80 31 37 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 53 63 72 5f 74 ┆17; END; PROCEDURE moveScr_t┆ 0x57f80…57fa0 6f 6d 65 6d 28 78 2c 79 2c 78 6c 65 6e 3a 20 49 4e 54 45 47 45 52 3b 6b 31 2c 6b 32 3a 20 49 4e ┆omem(x,y,xlen: INTEGER;k1,k2: IN┆ 0x57fa0…57fc0 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 24 38 42 2c 24 37 ┆TEGER); BEGIN CODE $8B,$7┆ 0x57fc0…57fe0 45 2c 24 30 41 2c 24 44 31 2c 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 61 64 64 72 ┆E,$0A,$D1,$E7,$8B,$85,>Scr_yaddr┆ 0x57fe0…58000 2c 24 38 42 2c 24 34 45 2c 24 30 38 2c 24 38 42 2c 24 37 45 2c 24 30 43 2c 24 44 31 2c 0d 0a 20 ┆,$8B,$4E,$08,$8B,$7E,$0C,$D1, ┆ 0x58000…58020 (35, 0, 3) 20 24 45 37 2c 24 38 45 2c 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 31 45 2c 24 43 35 2c 24 ┆ $E7,$8E,$06,>Scr_segm,$1E,$C5,$┆ 0x58020…58040 37 36 2c 24 30 34 2c 24 38 43 2c 24 44 41 2c 24 38 39 2c 24 43 33 2c 24 31 46 2c 24 30 33 2c 24 ┆76,$04,$8C,$DA,$89,$C3,$1F,$03,$┆ 0x58040…58060 39 44 2c 0d 0a 20 20 3e 53 63 72 5f 78 61 64 64 72 2c 24 31 45 2c 24 38 45 2c 24 44 41 2c 24 35 ┆9D, >Scr_xaddr,$1E,$8E,$DA,$5┆ 0x58060…58080 31 2c 24 32 36 2c 24 38 41 2c 24 30 46 2c 24 38 38 2c 24 30 43 2c 24 35 39 2c 24 34 36 2c 24 38 ┆1,$26,$8A,$0F,$88,$0C,$59,$46,$8┆ 0x58080…580a0 33 2c 24 43 37 2c 24 31 30 2c 0d 0a 20 20 24 45 32 2c 24 45 39 2c 24 31 46 3b 0d 0a 45 4e 44 3b ┆3,$C7,$10, $E2,$E9,$1F; END;┆ 0x580a0…580c0 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 6d 65 6d 74 6f 53 63 72 5f 28 78 2c 79 2c ┆ PROCEDURE movememtoScr_(x,y,┆ 0x580c0…580e0 78 6c 65 6e 3a 20 49 4e 54 45 47 45 52 3b 6b 31 2c 6b 32 3a 49 4e 54 45 47 45 52 29 3b 0d 0a 42 ┆xlen: INTEGER;k1,k2:INTEGER); B┆ 0x580e0…58100 45 47 49 4e 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 44 31 2c ┆EGIN CODE $8B,$7E,$0A,$D1,┆ 0x58100…58120 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 38 42 2c 24 34 45 2c 24 ┆$E7,$8B,$85,>Scr_yaddr,$8B,$4E,$┆ 0x58120…58140 30 38 2c 24 38 42 2c 24 37 45 2c 24 30 43 2c 24 44 31 2c 0d 0a 20 20 24 45 37 2c 24 38 45 2c 24 ┆08,$8B,$7E,$0C,$D1, $E7,$8E,$┆ 0x58140…58160 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 31 45 2c 24 43 35 2c 24 37 36 2c 24 30 34 2c 24 38 43 ┆06,>Scr_segm,$1E,$C5,$76,$04,$8C┆ 0x58160…58180 2c 24 44 41 2c 24 38 39 2c 24 43 33 2c 24 31 46 2c 24 30 33 2c 24 39 44 2c 0d 0a 20 20 3e 53 63 ┆,$DA,$89,$C3,$1F,$03,$9D, >Sc┆ 0x58180…581a0 72 5f 78 61 64 64 72 2c 24 31 45 2c 24 38 45 2c 24 44 41 2c 24 35 31 2c 24 38 41 2c 24 30 43 2c ┆r_xaddr,$1E,$8E,$DA,$51,$8A,$0C,┆ 0x581a0…581c0 24 32 36 2c 24 38 38 2c 24 30 46 2c 24 35 39 2c 24 34 36 2c 24 38 33 2c 24 43 37 2c 24 31 30 2c ┆$26,$88,$0F,$59,$46,$83,$C7,$10,┆ 0x581c0…581e0 0d 0a 20 20 24 45 32 2c 24 45 39 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 ┆ $E2,$E9,$1F; END; PROCED┆ 0x581e0…58200 55 52 45 20 66 69 6c 6c 76 69 64 65 6f 6c 69 6e 65 28 78 2c 79 2c 78 6c 65 6e 2c 63 6f 6c 6f 72 ┆URE fillvideoline(x,y,xlen,color┆ 0x58200…58220 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 24 38 ┆: INTEGER); BEGIN CODE $8┆ 0x58220…58240 42 2c 24 37 45 2c 24 30 38 2c 24 44 31 2c 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 ┆B,$7E,$08,$D1,$E7,$8B,$85,>Scr_y┆ 0x58240…58260 61 64 64 72 2c 24 38 42 2c 24 34 45 2c 24 30 36 2c 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 38 45 ┆addr,$8B,$4E,$06,$8B,$7E,$0A,$8E┆ 0x58260…58280 2c 0d 0a 20 20 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 38 42 2c 24 35 36 2c 24 30 34 2c 24 ┆, $06,>Scr_segm,$8B,$56,$04,$┆ 0x58280…582a0 38 39 2c 24 43 33 2c 24 38 39 2c 24 46 45 2c 24 44 31 2c 24 45 36 2c 24 30 33 2c 24 39 43 2c 3e ┆89,$C3,$89,$FE,$D1,$E6,$03,$9C,>┆ 0x582a0…582c0 53 63 72 5f 78 61 64 64 72 2c 0d 0a 20 20 24 32 36 2c 24 38 38 2c 24 31 37 2c 24 38 33 2c 24 43 ┆Scr_xaddr, $26,$88,$17,$83,$C┆ 0x582c0…582e0 37 2c 24 30 38 2c 24 45 32 2c 24 45 45 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e ┆7,$08,$E2,$EE; END; FUNCTION┆ 0x582e0…58300 20 62 61 73 65 61 64 64 72 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3a 20 49 4e 54 45 47 45 52 ┆ baseaddr(x,y: INTEGER): INTEGER┆ 0x58300…58320 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 24 38 42 2c 24 37 45 2c 24 30 36 2c ┆; BEGIN CODE $8B,$7E,$06,┆ 0x58320…58340 24 38 42 2c 24 37 36 2c 24 30 34 2c 24 44 31 2c 24 45 37 2c 24 44 31 2c 24 45 36 2c 24 38 42 2c ┆$8B,$76,$04,$D1,$E7,$D1,$E6,$8B,┆ 0x58340…58360 24 39 43 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 30 33 2c 24 39 44 2c 0d 0a 20 20 3e 53 63 72 5f ┆$9C,>Scr_yaddr,$03,$9D, >Scr_┆ 0x58360…58380 78 61 64 64 72 2c 24 38 39 2c 24 35 45 2c 24 30 38 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 ┆xaddr,$89,$5E,$08; END; FUNC┆ 0x58380…583a0 54 49 4f 4e 20 53 63 72 5f 47 65 74 44 6f 74 28 78 2c 79 3a 49 4e 54 45 47 45 52 29 3a 42 4f 4f ┆TION Scr_GetDot(x,y:INTEGER):BOO┆ 0x583a0…583c0 4c 45 41 4e 3b 0d 0a 56 41 52 20 74 6f 74 61 6c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 ┆LEAN; VAR total: INTEGER; BEGI┆ 0x583c0…583e0 4e 0d 0a 20 74 6f 74 61 6c 3a 3d 53 63 72 5f 78 61 64 64 72 28 2e 78 2e 29 2b 53 63 72 5f 79 61 ┆N total:=Scr_xaddr(.x.)+Scr_ya┆ 0x583e0…58400 64 64 72 28 2e 79 2e 29 3b 0d 0a 20 53 63 72 5f 67 65 74 64 6f 74 3a 3d 0d 0a 20 28 57 6e 64 5f ┆ddr(.y.); Scr_getdot:= (Wnd_┆ 0x58400…58420 (35, 0, 4) 2e 70 65 6e 63 6f 6c 6f 72 3d 62 6c 61 63 6b 29 20 45 58 4f 52 20 28 6d 65 6d 28 2e 53 63 72 5f ┆.pencolor=black) EXOR (mem(.Scr_┆ 0x58420…58440 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 20 41 4e 44 20 28 31 32 38 20 53 48 52 20 28 78 20 41 4e 44 ┆segm:total.) AND (128 SHR (x AND┆ 0x58440…58460 20 37 29 29 3c 3e 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 ┆ 7))<>0); END; PROCEDURE Scr┆ 0x58460…58480 5f 66 69 6c 6c 28 78 31 2c 79 31 2c 78 32 2c 79 32 3a 49 4e 54 45 47 45 52 3b 20 63 6f 6c 6f 72 ┆_fill(x1,y1,x2,y2:INTEGER; color┆ 0x58480…584a0 3a 20 42 59 54 45 29 3b 0d 0a 56 41 52 20 79 2c 6c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 ┆: BYTE); VAR y,l: INTEGER; BEG┆ 0x584a0…584c0 49 4e 0d 0a 20 20 6c 3a 3d 28 78 32 2d 78 31 2b 31 29 20 44 49 56 20 38 3b 0d 0a 20 20 46 4f 52 ┆IN l:=(x2-x1+1) DIV 8; FOR┆ 0x584c0…584e0 20 79 3a 3d 79 31 20 54 4f 20 79 32 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 66 69 6c 6c 76 ┆ y:=y1 TO y2 DO BEGIN fillv┆ 0x584e0…58500 69 64 65 6f 6c 69 6e 65 28 78 31 2c 79 2c 6c 2c 63 6f 6c 6f 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d ┆ideoline(x1,y,l,color); END; ┆ 0x58500…58520 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 44 72 61 77 63 68 61 72 28 ┆ END; PROCEDURE Scr_Drawchar(┆ 0x58520…58540 78 2c 79 3a 20 49 4e 54 45 47 45 52 3b 63 68 3a 20 43 48 41 52 29 3b 0d 0a 56 41 52 20 20 74 6f ┆x,y: INTEGER;ch: CHAR); VAR to┆ 0x58540…58560 74 61 6c 2c 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 3a ┆tal,i: INTEGER; BEGIN FOR i:┆ 0x58560…58580 3d 30 20 54 4f 20 37 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 6f 74 61 6c 3a 3d 53 63 72 ┆=0 TO 7 DO BEGIN total:=Scr┆ 0x58580…585a0 5f 78 61 64 64 72 28 2e 78 2e 29 2b 53 63 72 5f 79 61 64 64 72 28 2e 79 2d 69 2b 37 2e 29 3b 0d ┆_xaddr(.x.)+Scr_yaddr(.y-i+7.); ┆ 0x585a0…585c0 0a 20 20 20 20 43 41 53 45 20 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 20 4f 46 0d 0a 20 20 20 20 ┆ CASE Wnd_.pencolor OF ┆ 0x585c0…585e0 77 68 69 74 65 3a 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 ┆white: mem(.Scr_segm:tota┆ 0x585e0…58600 6c 2e 29 3a 3d 53 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 3b 0d 0a 20 20 20 ┆l.):=Scr_CHAR(.ord(ch),i.); ┆ 0x58600…58620 20 62 6c 61 63 6b 3a 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 ┆ black: mem(.Scr_segm:tot┆ 0x58620…58640 61 6c 2e 29 3a 3d 20 28 4e 4f 54 20 53 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e ┆al.):= (NOT Scr_CHAR(.ord(ch),i.┆ 0x58640…58660 29 20 41 4e 44 20 24 46 46 29 3b 0d 0a 20 20 20 20 74 72 61 6e 73 70 3a 0d 0a 20 20 20 20 20 20 ┆) AND $FF); transp: ┆ 0x58660…58680 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d 20 53 63 72 5f 43 48 41 52 ┆mem(.Scr_segm:total.):= Scr_CHAR┆ 0x58680…586a0 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 20 45 58 4f 52 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d ┆(.ord(ch),i.) EXOR mem(.Scr_segm┆ 0x586a0…586c0 3a 74 6f 74 61 6c 2e 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆:total.); END; END; END┆ 0x586c0…586e0 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 4c 69 6e 65 54 6f 28 78 78 31 2c 79 79 ┆; PROCEDURE Scr_LineTo(xx1,yy┆ 0x586e0…58700 31 2c 78 78 32 2c 79 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 6c 67 5f ┆1,xx2,yy2: INTEGER); VAR lg_┆ 0x58700…58720 64 65 6c 74 61 2c 20 73 68 5f 64 65 6c 74 61 2c 20 6c 67 5f 73 74 65 70 2c 20 73 68 5f 73 74 65 ┆delta, sh_delta, lg_step, sh_ste┆ 0x58720…58740 70 2c 20 63 79 63 6c 65 2c 20 74 6f 74 61 6c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 0d 0a 50 52 4f ┆p, cycle, total: INTEGER; PRO┆ 0x58740…58760 43 45 44 55 52 45 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 31 3a 69 6e 74 65 ┆CEDURE ScreenSetDot(xx1,yy1:inte┆ 0x58760…58780 67 65 72 29 3b 0d 0a 20 20 76 61 72 20 62 69 74 3a 62 6f 6f 6c 65 61 6e 3b 0d 0a 42 45 47 49 4e ┆ger); var bit:boolean; BEGIN┆ 0x58780…587a0 0d 0a 20 20 20 20 42 69 74 3a 3d 28 6c 69 6e 65 70 61 74 74 65 72 6e 20 61 6e 64 20 24 38 30 29 ┆ Bit:=(linepattern and $80)┆ 0x587a0…587c0 3c 3e 30 3b 0d 0a 20 20 20 20 69 66 20 62 69 74 20 74 68 65 6e 20 53 63 72 5f 73 65 74 44 6f 74 ┆<>0; if bit then Scr_setDot┆ 0x587c0…587e0 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 20 20 62 69 74 6e 72 3a 3d 62 69 74 6e 72 2b 31 3b 0d ┆(xx1,yy1); bitnr:=bitnr+1; ┆ 0x587e0…58800 0a 20 20 20 20 69 66 20 62 69 74 6e 72 3e 6c 69 6e 65 70 61 74 74 65 72 6e 73 69 7a 65 2d 31 0d ┆ if bitnr>linepatternsize-1 ┆ 0x58800…58820 (35, 0, 5) 0a 20 20 20 20 74 68 65 6e 0d 0a 20 20 20 20 42 45 47 49 4e 3b 20 20 20 20 0d 0a 20 20 20 20 20 ┆ then BEGIN; ┆ 0x58820…58840 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 28 28 6c 69 6e 65 70 61 74 74 65 72 6e 20 73 68 6c 20 ┆ linepattern:=((linepattern shl ┆ 0x58840…58860 31 20 61 6e 64 20 32 35 35 29 20 6f 72 20 28 6c 69 6e 65 70 61 74 74 65 72 6e 20 73 68 72 20 37 ┆1 and 255) or (linepattern shr 7┆ 0x58860…58880 29 29 3b 0d 0a 20 20 20 20 20 20 62 69 74 6e 72 3a 3d 30 3b 0d 0a 20 20 20 20 45 4e 44 3b 20 20 ┆)); bitnr:=0; END; ┆ 0x58880…588a0 0d 0a 45 4e 44 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6c 67 5f 64 65 6c 74 61 3a 3d 78 78 32 2d 78 ┆ END; BEGIN lg_delta:=xx2-x┆ 0x588a0…588c0 78 31 3b 20 73 68 5f 64 65 6c 74 61 3a 3d 79 79 32 2d 79 79 31 3b 0d 0a 20 20 49 46 20 6c 67 5f ┆x1; sh_delta:=yy2-yy1; IF lg_┆ 0x588c0…588e0 64 65 6c 74 61 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 67 5f 64 65 6c 74 61 ┆delta<0 THEN BEGIN lg_delta┆ 0x588e0…58900 3a 3d 2d 6c 67 5f 64 65 6c 74 61 3b 20 6c 67 5f 73 74 65 70 3a 3d 2d 31 0d 0a 20 20 45 4e 44 20 ┆:=-lg_delta; lg_step:=-1 END ┆ 0x58900…58920 45 4c 53 45 20 6c 67 5f 73 74 65 70 3a 3d 31 3b 0d 0a 20 20 49 46 20 73 68 5f 64 65 6c 74 61 3c ┆ELSE lg_step:=1; IF sh_delta<┆ 0x58920…58940 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 68 5f 64 65 6c 74 61 3a 3d 2d 73 68 5f ┆0 THEN BEGIN sh_delta:=-sh_┆ 0x58940…58960 64 65 6c 74 61 3b 20 73 68 5f 73 74 65 70 3a 3d 2d 31 0d 0a 20 20 45 4e 44 20 45 4c 53 45 20 73 ┆delta; sh_step:=-1 END ELSE s┆ 0x58960…58980 68 5f 73 74 65 70 3a 3d 31 3b 0d 0a 20 20 49 46 20 73 68 5f 64 65 6c 74 61 3c 6c 67 5f 64 65 6c ┆h_step:=1; IF sh_delta<lg_del┆ 0x58980…589a0 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 79 63 6c 65 3a 3d 6c 67 5f 64 65 6c ┆ta THEN BEGIN cycle:=lg_del┆ 0x589a0…589c0 74 61 20 53 48 52 20 32 3b 0d 0a 20 20 20 20 49 66 20 63 79 63 6c 65 3d 30 20 74 68 65 6e 20 63 ┆ta SHR 2; If cycle=0 then c┆ 0x589c0…589e0 79 63 6c 65 3a 3d 31 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 78 78 31 3c 3e 78 78 32 20 44 4f 20 ┆ycle:=1; WHILE xx1<>xx2 DO ┆ 0x589e0…58a00 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 ┆BEGIN ScreenSetDot(xx1,yy┆ 0x58a00…58a20 31 29 3b 0d 0a 20 20 20 20 20 20 78 78 31 3a 3d 78 78 31 2b 6c 67 5f 73 74 65 70 3b 20 63 79 63 ┆1); xx1:=xx1+lg_step; cyc┆ 0x58a20…58a40 6c 65 3a 3d 63 79 63 6c 65 2b 73 68 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 49 46 20 63 79 ┆le:=cycle+sh_delta; IF cy┆ 0x58a40…58a60 63 6c 65 3e 6c 67 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 ┆cle>lg_delta THEN BEGIN ┆ 0x58a60…58a80 20 79 79 31 3a 3d 79 79 31 2b 73 68 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a 3d 63 79 63 6c 65 2d ┆ yy1:=yy1+sh_step; cycle:=cycle-┆ 0x58a80…58aa0 6c 67 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d ┆lg_delta; END; END; ┆ 0x58aa0…58ac0 0a 20 20 20 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 45 ┆ ScreenSetDot(xx1,yy1); E┆ 0x58ac0…58ae0 4e 44 0d 0a 20 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 79 63 6c 65 3a 3d 73 68 5f ┆ND ELSE BEGIN cycle:=sh_┆ 0x58ae0…58b00 64 65 6c 74 61 20 53 48 52 20 32 3b 0d 0a 20 20 20 20 49 66 20 63 79 63 6c 65 3d 30 20 74 68 65 ┆delta SHR 2; If cycle=0 the┆ 0x58b00…58b20 6e 20 63 79 63 6c 65 3a 3d 31 3b 0d 0a 20 20 20 20 73 77 61 70 28 6c 67 5f 64 65 6c 74 61 2c 73 ┆n cycle:=1; swap(lg_delta,s┆ 0x58b20…58b40 68 5f 64 65 6c 74 61 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 6c 67 5f 73 74 65 70 2c 73 68 5f 73 ┆h_delta); swap(lg_step,sh_s┆ 0x58b40…58b60 74 65 70 29 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 79 79 31 3c 3e 79 79 32 20 44 4f 20 42 45 47 ┆tep); WHILE yy1<>yy2 DO BEG┆ 0x58b60…58b80 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 31 29 3b ┆IN ScreenSetDot(xx1,yy1);┆ 0x58b80…58ba0 0d 0a 20 20 20 20 20 20 79 79 31 3a 3d 79 79 31 2b 6c 67 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a ┆ yy1:=yy1+lg_step; cycle:┆ 0x58ba0…58bc0 3d 63 79 63 6c 65 2b 73 68 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 49 46 20 63 79 63 6c 65 ┆=cycle+sh_delta; IF cycle┆ 0x58bc0…58be0 3e 6c 67 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 78 78 ┆>lg_delta THEN BEGIN xx┆ 0x58be0…58c00 31 3a 3d 78 78 31 2b 73 68 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a 3d 63 79 63 6c 65 2d 6c 67 5f ┆1:=xx1+sh_step; cycle:=cycle-lg_┆ 0x58c00…58c20 (35, 1, 1) 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆delta; END; END; ┆ 0x58c20…58c40 20 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 45 4e 44 3b ┆ ScreenSetDot(xx1,yy1); END;┆ 0x58c40…58c60 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 6f 70 65 72 61 74 69 6f ┆ END; PROCEDURE Scr_operatio┆ 0x58c60…58c80 6e 28 6f 70 72 3a 20 6f 70 72 74 79 70 65 3b 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 3a 20 49 ┆n(opr: oprtype;x1, y1, x2, y2: I┆ 0x58c80…58ca0 4e 54 45 47 45 52 3b 62 75 66 66 65 72 3a 20 62 75 66 74 79 70 65 29 3b 0d 0a 56 41 52 0d 0a 20 ┆NTEGER;buffer: buftype); VAR ┆ 0x58ca0…58cc0 20 69 2c 78 2c 79 2c 79 79 2c 6b 31 2c 6b 32 2c 6c 2c 74 6f 74 61 6c 3a 20 49 4e 54 45 47 45 52 ┆ i,x,y,yy,k1,k2,l,total: INTEGER┆ 0x58cc0…58ce0 3b 0d 0a 20 20 73 77 70 62 75 66 3a 20 61 72 72 61 79 28 2e 30 2e 2e 31 30 30 2e 29 20 6f 66 20 ┆; swpbuf: array(.0..100.) of ┆ 0x58ce0…58d00 62 79 74 65 3b 0d 0a 20 20 62 75 66 70 3a 5e 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e 0d 0a ┆byte; bufp:^integer; BEGIN ┆ 0x58d00…58d20 20 20 6b 31 3a 3d 6f 66 73 28 62 75 66 66 65 72 5e 29 3b 6b 32 3a 3d 73 65 67 28 62 75 66 66 65 ┆ k1:=ofs(buffer^);k2:=seg(buffe┆ 0x58d20…58d40 72 5e 29 3b 20 6c 3a 3d 28 78 32 2d 78 31 2b 37 29 20 44 49 56 20 38 3b 62 75 66 70 3a 3d 61 64 ┆r^); l:=(x2-x1+7) DIV 8;bufp:=ad┆ 0x58d40…58d60 64 72 28 73 77 70 62 75 66 29 3b 0d 0a 20 20 46 4f 52 20 79 3a 3d 79 31 20 54 4f 20 79 32 20 44 ┆dr(swpbuf); FOR y:=y1 TO y2 D┆ 0x58d60…58d80 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 61 73 65 20 6f 70 72 20 6f 66 0d 0a 20 20 20 20 20 20 ┆O BEGIN case opr of ┆ 0x58d80…58da0 6c 6f 61 64 3a 20 6d 6f 76 65 6d 65 6d 74 6f 53 63 72 5f 28 78 31 2c 79 2c 6c 2c 6b 32 2c 6b 31 ┆load: movememtoScr_(x1,y,l,k2,k1┆ 0x58da0…58dc0 29 3b 0d 0a 20 20 20 20 20 20 73 61 76 65 3a 20 6d 6f 76 65 53 63 72 5f 74 6f 6d 65 6d 28 78 31 ┆); save: moveScr_tomem(x1┆ 0x58dc0…58de0 2c 79 2c 6c 2c 6b 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 73 63 72 73 77 61 70 3a 0d 0a 20 20 ┆,y,l,k2,k1); scrswap: ┆ 0x58de0…58e00 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 73 63 72 5f 74 6f 6d 65 6d ┆ BEGIN movescr_tomem┆ 0x58e00…58e20 28 78 31 2c 79 2c 6c 2c 73 65 67 28 73 77 70 62 75 66 29 2c 6f 66 73 28 73 77 70 62 75 66 29 29 ┆(x1,y,l,seg(swpbuf),ofs(swpbuf))┆ 0x58e20…58e40 3b 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 6d 65 6d 74 6f 73 63 72 5f 28 78 31 2c 79 2c 6c 2c ┆; movememtoscr_(x1,y,l,┆ 0x58e40…58e60 6b 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 75 66 66 65 72 3a 3d 70 74 72 28 6b 32 2c ┆k2,k1); buffer:=ptr(k2,┆ 0x58e60…58e80 6b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 28 73 77 70 62 75 66 2c 62 75 66 66 65 72 ┆k1); move(swpbuf,buffer┆ 0x58e80…58ea0 5e 2c 6c 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 6f 74 68 65 72 77 69 ┆^,l); END; otherwi┆ 0x58ea0…58ec0 73 65 20 68 61 6c 74 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 6b 31 3a 3d 6b 31 2b ┆se halt; END; k1:=k1+┆ 0x58ec0…58ee0 6c 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e ┆l; END; END; PROCEDURE Wn┆ 0x58ee0…58f00 64 5f 53 65 74 44 6f 74 28 78 2c 20 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d ┆d_SetDot(x, y: INTEGER); BEGIN ┆ 0x58f00…58f20 0a 20 20 49 46 20 28 28 78 20 3e 3d 20 30 29 20 41 4e 44 20 28 78 20 3c 3d 20 57 6e 64 5f 2e 4d ┆ IF ((x >= 0) AND (x <= Wnd_.M┆ 0x58f20…58f40 61 78 58 29 29 20 41 4e 44 20 28 28 79 20 3e 3d 20 30 29 20 41 4e 44 20 28 79 20 3c 3d 20 57 6e ┆axX)) AND ((y >= 0) AND (y <= Wn┆ 0x58f40…58f60 64 5f 2e 4d 61 78 59 29 29 20 54 48 45 4e 0d 0a 20 20 20 20 53 63 72 5f 53 65 74 44 6f 74 28 78 ┆d_.MaxY)) THEN Scr_SetDot(x┆ 0x58f60…58f80 20 2b 20 57 6e 64 5f 2e 58 31 2c 20 79 20 2b 20 57 6e 64 5f 2e 59 31 29 0d 0a 45 4e 44 3b 0d 0a ┆ + Wnd_.X1, y + Wnd_.Y1) END; ┆ 0x58f80…58fa0 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 6f 6e 76 65 72 74 28 78 78 3a 52 45 41 4c 29 3a 49 4e 54 45 ┆ FUNCTION convert(xx:REAL):INTE┆ 0x58fa0…58fc0 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 78 78 3e 6d 61 78 69 6e 74 20 54 48 45 4e ┆GER; BEGIN IF xx>maxint THEN┆ 0x58fc0…58fe0 20 63 6f 6e 76 65 72 74 3a 3d 6d 61 78 69 6e 74 20 45 4c 53 45 20 49 46 20 78 78 3c 2d 6d 61 78 ┆ convert:=maxint ELSE IF xx<-max┆ 0x58fe0…59000 69 6e 74 20 54 48 45 4e 0d 0a 20 20 63 6f 6e 76 65 72 74 3a 3d 2d 6d 61 78 69 6e 74 20 45 4c 53 ┆int THEN convert:=-maxint ELS┆ 0x59000…59020 (35, 1, 2) 45 20 63 6f 6e 76 65 72 74 3a 3d 74 72 75 6e 63 28 78 78 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 ┆E convert:=trunc(xx); END; F┆ 0x59020…59040 55 4e 43 54 49 4f 4e 20 5f 47 72 4f 75 74 63 6f 64 65 28 78 31 2c 20 79 31 2c 20 4d 61 78 58 2c ┆UNCTION _GrOutcode(x1, y1, MaxX,┆ 0x59040…59060 20 4d 61 78 59 3a 20 49 4e 54 45 47 45 52 29 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 56 41 52 20 61 ┆ MaxY: INTEGER): INTEGER; VAR a┆ 0x59060…59080 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 31 ┆: BYTE; BEGIN a:=0; IF x1┆ 0x59080…590a0 3e 6d 61 78 78 20 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 30 34 3b 0d 0a 20 20 49 46 20 78 31 ┆>maxx THEN a:=a OR $04; IF x1┆ 0x590a0…590c0 3c 30 20 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 30 38 3b 0d 0a 20 20 49 46 20 79 31 3e 6d 61 ┆<0 THEN a:=a OR $08; IF y1>ma┆ 0x590c0…590e0 78 79 20 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 30 31 3b 0d 0a 20 20 49 46 20 79 31 3c 30 20 ┆xy THEN a:=a OR $01; IF y1<0 ┆ 0x590e0…59100 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 30 32 3b 0d 0a 20 20 5f 47 72 4f 75 74 63 6f 64 65 3a ┆THEN a:=a OR $02; _GrOutcode:┆ 0x59100…59120 3d 61 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 57 6e 64 5f 43 6c 69 70 4c ┆=a; END; FUNCTION _Wnd_ClipL┆ 0x59120…59140 69 6e 65 28 56 41 52 20 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 20 3a 20 49 4e 54 45 47 45 52 ┆ine(VAR x1, y1, x2, y2 : INTEGER┆ 0x59140…59160 29 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d 0a 56 41 52 20 64 6f 6e 65 20 3a 20 42 4f 4f 4c 45 41 4e ┆) : BOOLEAN; VAR done : BOOLEAN┆ 0x59160…59180 3b 0d 0a 20 20 6f 75 74 63 6f 64 65 31 2c 20 6f 75 74 63 6f 64 65 32 20 3a 20 49 4e 54 45 47 45 ┆; outcode1, outcode2 : INTEGE┆ 0x59180…591a0 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 64 6f 6e 65 20 20 3a 3d 20 46 41 4c 53 45 3b 0d 0a 20 20 ┆R; BEGIN done := FALSE; ┆ 0x591a0…591c0 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 3a 3d 20 46 41 4c 53 45 3b 0d 0a 20 20 6f 75 74 63 6f ┆_Wnd_ClipLine := FALSE; outco┆ 0x591c0…591e0 64 65 32 20 3a 3d 20 5f 47 72 4f 75 74 63 6f 64 65 28 78 32 2c 20 79 32 2c 20 57 6e 64 5f 2e 4d ┆de2 := _GrOutcode(x2, y2, Wnd_.M┆ 0x591e0…59200 61 78 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 29 3b 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 ┆axX, Wnd_.MaxY); REPEAT ┆ 0x59200…59220 6f 75 74 63 6f 64 65 31 20 3a 3d 20 5f 47 72 4f 75 74 63 6f 64 65 28 78 31 2c 20 79 31 2c 20 20 ┆outcode1 := _GrOutcode(x1, y1, ┆ 0x59220…59240 57 6e 64 5f 2e 4d 61 78 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 29 3b 0d 0a 20 20 20 20 49 46 20 28 ┆Wnd_.MaxX, Wnd_.MaxY); IF (┆ 0x59240…59260 6f 75 74 63 6f 64 65 31 20 4f 52 20 6f 75 74 63 6f 64 65 32 29 20 3d 20 30 20 54 48 45 4e 20 42 ┆outcode1 OR outcode2) = 0 THEN B┆ 0x59260…59280 45 47 49 4e 0d 0a 20 20 20 20 20 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 3a 3d 20 54 52 55 ┆EGIN _Wnd_ClipLine := TRU┆ 0x59280…592a0 45 3b 0d 0a 20 20 20 20 20 20 64 6f 6e 65 20 3a 3d 20 54 52 55 45 20 45 4e 44 0d 0a 20 20 20 20 ┆E; done := TRUE END ┆ 0x592a0…592c0 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 20 6f 75 74 63 6f 64 65 32 29 ┆ELSE IF (outcode1 AND outcode2)┆ 0x592c0…592e0 20 3c 3e 20 30 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 42 45 47 49 4e 20 5f 57 6e 64 5f 43 6c ┆ <> 0 THEN BEGIN _Wnd_Cl┆ 0x592e0…59300 69 70 4c 69 6e 65 20 3a 3d 20 46 41 4c 53 45 3b 20 64 6f 6e 65 20 3a 3d 20 54 52 55 45 0d 0a 20 ┆ipLine := FALSE; done := TRUE ┆ 0x59300…59320 20 20 20 45 4e 44 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 49 46 20 6f 75 74 63 ┆ END ELSE BEGIN IF outc┆ 0x59320…59340 6f 64 65 31 20 3d 20 30 20 54 48 45 4e 20 42 45 47 49 4e 20 53 77 61 70 28 6f 75 74 63 6f 64 65 ┆ode1 = 0 THEN BEGIN Swap(outcode┆ 0x59340…59360 31 2c 6f 75 74 63 6f 64 65 32 29 3b 0d 0a 20 20 20 20 20 20 53 77 61 70 28 78 31 2c 20 78 32 29 ┆1,outcode2); Swap(x1, x2)┆ 0x59360…59380 3b 0d 0a 20 20 20 20 20 20 53 77 61 70 28 79 31 2c 20 79 32 29 0d 0a 20 20 20 20 20 20 45 4e 44 ┆; Swap(y1, y2) END┆ 0x59380…593a0 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 20 41 4e 44 20 24 30 31 29 20 ┆; IF (outcode1 AND $01) ┆ 0x593a0…593c0 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 78 ┆<> 0 THEN BEGIN x1 := x┆ 0x593c0…593e0 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 78 32 20 2d 20 78 31 29 20 2a 20 28 28 57 6e 64 5f 2e 4d ┆1 + convert((x2 - x1) * ((Wnd_.M┆ 0x593e0…59400 61 78 59 20 2d 20 79 31 29 20 2f 20 28 79 32 20 20 2d 20 79 31 29 29 29 3b 0d 0a 20 20 20 20 20 ┆axY - y1) / (y2 - y1))); ┆ 0x59400…59420 (35, 1, 3) 20 20 20 79 31 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 59 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c ┆ y1 := Wnd_.MaxY END EL┆ 0x59420…59440 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 24 30 32 29 20 3c 3e 20 30 20 54 48 ┆SE IF (outcode1 AND $02) <> 0 TH┆ 0x59440…59460 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 63 6f 6e ┆EN BEGIN x1 := x1 + con┆ 0x59460…59480 76 65 72 74 28 28 78 32 20 2d 20 78 31 29 20 2a 20 28 28 30 2e 30 2d 79 31 29 20 2f 20 28 79 32 ┆vert((x2 - x1) * ((0.0-y1) / (y2┆ 0x59480…594a0 20 2d 20 79 31 29 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 30 0d 0a 20 20 20 20 ┆ - y1))); y1 := 0 ┆ 0x594a0…594c0 20 20 45 4e 44 20 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 24 30 34 29 ┆ END ELSE IF (outcode1 AND $04)┆ 0x594c0…594e0 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 ┆ <> 0 THEN BEGIN y1 := ┆ 0x594e0…59500 79 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 79 32 20 2d 20 79 31 29 20 2a 20 28 28 57 6e 64 5f 2e ┆y1 + convert((y2 - y1) * ((Wnd_.┆ 0x59500…59520 4d 61 78 58 20 2d 20 78 31 29 20 2f 20 28 78 32 20 2d 20 78 31 29 29 29 3b 0d 0a 20 20 20 20 20 ┆MaxX - x1) / (x2 - x1))); ┆ 0x59520…59540 20 20 20 78 31 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 58 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c ┆ x1 := Wnd_.MaxX END EL┆ 0x59540…59560 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 24 30 38 29 20 3c 3e 20 30 20 54 48 ┆SE IF (outcode1 AND $08) <> 0 TH┆ 0x59560…59580 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 79 31 20 2b 20 63 6f 6e ┆EN BEGIN y1 := y1 + con┆ 0x59580…595a0 76 65 72 74 28 28 79 32 20 2d 20 79 31 29 20 2a 28 28 30 2e 30 2d 78 31 29 20 2f 20 28 78 32 20 ┆vert((y2 - y1) *((0.0-x1) / (x2 ┆ 0x595a0…595c0 2d 20 78 31 29 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 30 0d 0a 20 20 20 20 20 ┆- x1))); x1 := 0 ┆ 0x595c0…595e0 20 45 4e 44 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 55 4e 54 49 4c 20 64 6f 6e 65 0d 0a 45 4e 44 ┆ END END UNTIL done END┆ 0x595e0…59600 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 4c 69 6e 65 54 6f 28 78 31 2c 20 79 31 ┆; PROCEDURE Wnd_LineTo(x1, y1┆ 0x59600…59620 2c 20 78 32 2c 20 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 ┆, x2, y2: INTEGER); BEGIN IF┆ 0x59620…59640 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 29 20 54 ┆ _Wnd_ClipLine(x1, y1, x2, y2) T┆ 0x59640…59660 48 45 4e 0d 0a 20 20 20 20 53 63 72 5f 4c 69 6e 65 54 6f 28 78 31 20 2b 20 57 6e 64 5f 2e 58 31 ┆HEN Scr_LineTo(x1 + Wnd_.X1┆ 0x59660…59680 2c 20 79 31 20 2b 20 57 6e 64 5f 2e 59 31 2c 20 78 32 20 2b 20 57 6e 64 5f 2e 58 31 2c 0d 0a 20 ┆, y1 + Wnd_.Y1, x2 + Wnd_.X1, ┆ 0x59680…596a0 20 20 20 79 32 20 2b 20 57 6e 64 5f 2e 59 31 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆ y2 + Wnd_.Y1); END; PROCE┆ 0x596a0…596c0 44 55 52 45 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 20 ┆DURE Wnd_DrawBox(x1, y1, x2, y2 ┆ 0x596c0…596e0 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 44 72 61 77 54 6f 70 2c 20 44 72 61 77 42 6f ┆: INTEGER); VAR DrawTop, DrawBo┆ 0x596e0…59700 74 2c 20 44 72 61 77 4c 65 66 74 2c 20 44 72 61 77 52 69 67 68 74 20 3a 20 42 4f 4f 4c 45 41 4e ┆t, DrawLeft, DrawRight : BOOLEAN┆ 0x59700…59720 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 78 31 20 3e 20 78 32 20 54 48 45 4e 20 53 77 61 70 ┆; BEGIN IF x1 > x2 THEN Swap┆ 0x59720…59740 28 78 31 2c 20 78 32 29 3b 0d 0a 20 20 49 46 20 79 31 20 3e 20 79 32 20 54 48 45 4e 20 53 77 61 ┆(x1, x2); IF y1 > y2 THEN Swa┆ 0x59740…59760 70 28 79 31 2c 20 79 32 29 3b 0d 0a 0d 0a 20 20 49 46 20 78 31 20 3e 20 57 6e 64 5f 2e 4d 61 78 ┆p(y1, y2); IF x1 > Wnd_.Max┆ 0x59760…59780 58 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 49 46 20 79 31 20 3e 20 57 6e 64 5f 2e 4d 61 78 ┆X THEN exit; IF y1 > Wnd_.Max┆ 0x59780…597a0 59 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 49 46 20 78 32 20 3c 20 30 20 54 48 45 4e 20 65 ┆Y THEN exit; IF x2 < 0 THEN e┆ 0x597a0…597c0 78 69 74 3b 0d 0a 20 20 49 46 20 79 32 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 0d 0a ┆xit; IF y2 < 0 THEN exit; ┆ 0x597c0…597e0 20 20 44 72 61 77 54 6f 70 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 44 72 61 77 42 6f 74 20 3a 3d ┆ DrawTop := TRUE; DrawBot :=┆ 0x597e0…59800 20 54 52 55 45 3b 0d 0a 20 20 44 72 61 77 4c 65 66 74 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 44 ┆ TRUE; DrawLeft := TRUE; D┆ 0x59800…59820 (35, 1, 4) 72 61 77 52 69 67 68 74 20 3a 3d 20 54 52 55 45 3b 0d 0a 0d 0a 20 20 49 46 20 78 31 20 3c 20 30 ┆rawRight := TRUE; IF x1 < 0┆ 0x59820…59840 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 20 3a 3d 20 30 3b 0d 0a 20 20 20 20 44 ┆ THEN BEGIN x1 := 0; D┆ 0x59840…59860 72 61 77 4c 65 66 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 49 46 20 79 ┆rawLeft := FALSE END; IF y┆ 0x59860…59880 31 20 3c 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 79 31 20 3a 3d 20 30 3b 0d 0a ┆1 < 0 THEN BEGIN y1 := 0; ┆ 0x59880…598a0 20 20 20 20 44 72 61 77 54 6f 70 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 ┆ DrawTop := FALSE END; ┆ 0x598a0…598c0 49 46 20 78 32 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 ┆IF x2 > Wnd_.MaxX THEN BEGIN ┆ 0x598c0…598e0 20 20 78 32 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 58 3b 0d 0a 20 20 20 20 44 72 61 77 52 69 67 68 ┆ x2 := Wnd_.MaxX; DrawRigh┆ 0x598e0…59900 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 49 46 20 79 32 20 3e 20 57 6e ┆t := FALSE END; IF y2 > Wn┆ 0x59900…59920 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 79 32 20 3a 3d 20 57 6e ┆d_.MaxY THEN BEGIN y2 := Wn┆ 0x59920…59940 64 5f 2e 4d 61 78 59 3b 0d 0a 20 20 20 20 44 72 61 77 42 6f 74 20 3a 3d 20 46 41 4c 53 45 0d 0a ┆d_.MaxY; DrawBot := FALSE ┆ 0x59940…59960 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 57 6e 64 5f 2e 58 31 3b 0d ┆ END; x1 := x1 + Wnd_.X1; ┆ 0x59960…59980 0a 20 20 78 32 20 3a 3d 20 78 32 20 2b 20 57 6e 64 5f 2e 58 31 3b 0d 0a 20 20 79 31 20 3a 3d 20 ┆ x2 := x2 + Wnd_.X1; y1 := ┆ 0x59980…599a0 28 79 31 20 2b 20 57 6e 64 5f 2e 59 31 29 3b 0d 0a 20 20 79 32 20 3a 3d 20 28 79 32 20 2b 20 57 ┆(y1 + Wnd_.Y1); y2 := (y2 + W┆ 0x599a0…599c0 6e 64 5f 2e 59 31 29 3b 0d 0a 0d 0a 20 20 49 46 20 44 72 61 77 54 6f 70 20 54 48 45 4e 20 53 63 ┆nd_.Y1); IF DrawTop THEN Sc┆ 0x599c0…599e0 72 5f 4c 69 6e 65 54 6f 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 31 29 3b 0d 0a 20 20 49 46 20 ┆r_LineTo(x1, y1, x2, y1); IF ┆ 0x599e0…59a00 44 72 61 77 52 69 67 68 74 20 54 48 45 4e 20 53 63 72 5f 4c 69 6e 65 54 6f 28 78 32 2c 20 79 31 ┆DrawRight THEN Scr_LineTo(x2, y1┆ 0x59a00…59a20 2c 20 78 32 2c 20 79 32 29 3b 0d 0a 20 20 49 46 20 44 72 61 77 42 6f 74 20 54 48 45 4e 20 53 63 ┆, x2, y2); IF DrawBot THEN Sc┆ 0x59a20…59a40 72 5f 4c 69 6e 65 54 6f 28 78 32 2c 20 79 32 2c 20 78 31 2c 20 79 32 29 3b 0d 0a 20 20 49 46 20 ┆r_LineTo(x2, y2, x1, y2); IF ┆ 0x59a40…59a60 44 72 61 77 4c 65 66 74 20 54 48 45 4e 20 53 63 72 5f 4c 69 6e 65 54 6f 28 78 31 2c 20 79 32 2c ┆DrawLeft THEN Scr_LineTo(x1, y2,┆ 0x59a60…59a80 20 78 31 2c 20 79 31 29 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f ┆ x1, y1) END; PROCEDURE Wnd_┆ 0x59a80…59aa0 44 72 61 77 43 68 61 72 28 78 2c 20 79 20 3a 20 49 4e 54 45 47 45 52 3b 20 63 20 3a 20 43 48 41 ┆DrawChar(x, y : INTEGER; c : CHA┆ 0x59aa0…59ac0 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 78 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 ┆R); BEGIN IF x < 0 THEN exit┆ 0x59ac0…59ae0 3b 0d 0a 20 20 49 46 20 28 78 2b 37 29 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 65 ┆; IF (x+7) > Wnd_.MaxX THEN e┆ 0x59ae0…59b00 78 69 74 3b 0d 0a 20 20 20 49 46 20 79 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 ┆xit; IF y < 0 THEN exit; ┆ 0x59b00…59b20 20 49 46 20 28 79 2b 37 29 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 65 78 69 74 3b ┆ IF (y+7) > Wnd_.MaxY THEN exit;┆ 0x59b20…59b40 0d 0a 20 20 53 63 72 5f 44 72 61 77 43 68 61 72 28 28 78 20 2b 20 57 6e 64 5f 2e 58 31 20 2b 20 ┆ Scr_DrawChar((x + Wnd_.X1 + ┆ 0x59b40…59b60 37 29 20 41 4e 44 20 24 46 46 46 38 2c 20 28 79 20 2b 20 57 6e 64 5f 2e 59 31 29 2c 20 63 29 0d ┆7) AND $FFF8, (y + Wnd_.Y1), c) ┆ 0x59b60…59b80 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 44 72 61 77 54 65 78 74 28 ┆ END; PROCEDURE Wnd_DrawText(┆ 0x59b80…59ba0 78 2c 20 79 20 3a 20 49 4e 54 45 47 45 52 3b 20 74 20 3a 73 74 72 38 30 20 29 3b 0d 0a 56 41 52 ┆x, y : INTEGER; t :str80 ); VAR┆ 0x59ba0…59bc0 20 69 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 20 3a 3d ┆ i : INTEGER; BEGIN FOR i :=┆ 0x59bc0…59be0 20 31 20 54 4f 20 6c 65 6e 28 74 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 44 ┆ 1 TO len(t) DO BEGIN Wnd_D┆ 0x59be0…59c00 72 61 77 43 68 61 72 28 78 2c 20 79 2c 20 74 5b 69 5d 29 3b 0d 0a 20 20 20 20 78 20 3a 3d 20 78 ┆rawChar(x, y, tÆiÅ); x := x┆ 0x59c00…59c20 (35, 1, 5) 20 2b 20 38 0d 0a 20 20 45 4e 44 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 69 73 ┆ + 8 END END; FUNCTION is┆ 0x59c20…59c40 71 72 74 28 61 72 67 3a 20 49 4e 54 45 47 45 52 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 56 41 52 0d ┆qrt(arg: INTEGER):INTEGER; VAR ┆ 0x59c40…59c60 0a 20 20 6f 64 64 5f 69 6e 74 2c 20 6f 6c 64 5f 61 72 67 2c 20 66 69 72 73 74 5f 73 71 72 74 3a ┆ odd_int, old_arg, first_sqrt:┆ 0x59c60…59c80 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6f 64 64 5f 69 6e 74 3a 3d 31 3b 20 ┆ INTEGER; BEGIN odd_int:=1; ┆ 0x59c80…59ca0 6f 6c 64 5f 61 72 67 3a 3d 61 72 67 3b 0d 0a 20 20 57 48 49 4c 45 20 61 72 67 3e 3d 30 20 44 4f ┆old_arg:=arg; WHILE arg>=0 DO┆ 0x59ca0…59cc0 20 42 45 47 49 4e 0d 0a 20 20 20 20 61 72 67 3a 3d 61 72 67 2d 6f 64 64 5f 69 6e 74 3b 0d 0a 20 ┆ BEGIN arg:=arg-odd_int; ┆ 0x59cc0…59ce0 20 20 20 6f 64 64 5f 69 6e 74 3a 3d 6f 64 64 5f 69 6e 74 2b 32 3b 0d 0a 20 20 45 4e 44 3b 0d 0a ┆ odd_int:=odd_int+2; END; ┆ 0x59ce0…59d00 20 20 66 69 72 73 74 5f 73 71 72 74 3a 3d 6f 64 64 5f 69 6e 74 20 53 48 52 20 31 3b 0d 0a 20 20 ┆ first_sqrt:=odd_int SHR 1; ┆ 0x59d00…59d20 49 46 20 73 71 72 28 66 69 72 73 74 5f 73 71 72 74 29 2d 66 69 72 73 74 5f 73 71 72 74 2b 31 3e ┆IF sqr(first_sqrt)-first_sqrt+1>┆ 0x59d20…59d40 6f 6c 64 5f 61 72 67 20 54 48 45 4e 0d 0a 20 20 20 20 69 73 71 72 74 3a 3d 66 69 72 73 74 5f 73 ┆old_arg THEN isqrt:=first_s┆ 0x59d40…59d60 71 72 74 2d 31 20 45 4c 53 45 20 69 73 71 72 74 3a 3d 66 69 72 73 74 5f 73 71 72 74 3b 0d 0a 45 ┆qrt-1 ELSE isqrt:=first_sqrt; E┆ 0x59d60…59d80 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 43 69 72 63 6c 65 28 63 78 2c 20 ┆ND; PROCEDURE Wnd_Circle(cx, ┆ 0x59d80…59da0 63 79 2c 20 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 61 2c ┆cy, radius: INTEGER); VAR a,┆ 0x59da0…59dc0 20 61 66 2c 20 62 2c 20 62 66 2c 20 74 61 72 67 65 74 2c 20 72 32 3a 20 49 4e 54 45 47 45 52 3b ┆ af, b, bf, target, r2: INTEGER;┆ 0x59dc0…59de0 0d 0a 42 45 47 49 4e 0d 0a 20 20 74 61 72 67 65 74 3a 3d 30 3b 20 61 3a 3d 20 72 61 64 69 75 73 ┆ BEGIN target:=0; a:= radius┆ 0x59de0…59e00 3b 20 62 3a 3d 30 3b 20 72 32 3a 3d 73 71 72 28 72 61 64 69 75 73 29 3b 0d 0a 20 20 57 48 49 4c ┆; b:=0; r2:=sqr(radius); WHIL┆ 0x59e00…59e20 45 20 61 3e 3d 62 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 62 3a 3d 69 73 71 72 74 28 72 32 ┆E a>=b DO BEGIN b:=isqrt(r2┆ 0x59e20…59e40 20 2d 20 73 71 72 28 61 29 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 74 61 72 67 65 74 2c 20 62 29 ┆ - sqr(a)); swap(target, b)┆ 0x59e40…59e60 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 62 3c 74 61 72 67 65 74 20 44 4f 20 42 45 47 49 4e 0d 0a ┆; WHILE b<target DO BEGIN ┆ 0x59e60…59e80 20 20 20 20 20 20 61 66 3a 3d 53 63 72 5f 61 73 70 65 63 74 2a 61 20 44 49 56 20 31 30 30 3b 20 ┆ af:=Scr_aspect*a DIV 100; ┆ 0x59e80…59ea0 62 66 3a 3d 53 63 72 5f 61 73 70 65 63 74 2a 62 20 44 49 56 20 31 30 30 3b 0d 0a 20 20 20 20 20 ┆bf:=Scr_aspect*b DIV 100; ┆ 0x59ea0…59ec0 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2b 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f 53 65 74 ┆ Wnd_SetDot(cx+af,cy+b); Wnd_Set┆ 0x59ec0…59ee0 44 6f 74 28 63 78 2b 62 66 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 ┆Dot(cx+bf,cy+a); Wnd_SetD┆ 0x59ee0…59f00 6f 74 28 63 78 2d 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2d 62 66 ┆ot(cx-af,cy+b); Wnd_SetDot(cx-bf┆ 0x59f00…59f20 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2d 61 66 2c ┆,cy+a); Wnd_SetDot(cx-af,┆ 0x59f20…59f40 63 79 2d 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2d 62 66 2c 63 79 2d 61 29 3b 0d 0a ┆cy-b); Wnd_SetDot(cx-bf,cy-a); ┆ 0x59f40…59f60 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2b 61 66 2c 63 79 2d 62 29 3b 20 57 6e ┆ Wnd_SetDot(cx+af,cy-b); Wn┆ 0x59f60…59f80 64 5f 53 65 74 44 6f 74 28 63 78 2b 62 66 2c 63 79 2d 61 29 3b 0d 0a 20 20 20 20 20 20 62 3a 3d ┆d_SetDot(cx+bf,cy-a); b:=┆ 0x59f80…59fa0 62 2b 31 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 61 3a 3d 61 2d 31 3b 0d 0a 20 20 45 ┆b+1; END; a:=a-1; E┆ 0x59fa0…59fc0 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 57 6c 64 5f 54 6f 57 69 6e ┆ND; END; FUNCTION _Wld_ToWin┆ 0x59fc0…59fe0 64 6f 77 58 28 78 20 3a 20 52 45 41 4c 29 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e ┆dowX(x : REAL) : INTEGER; BEGIN┆ 0x59fe0…5a000 0d 0a 20 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 20 3a 3d 20 63 6f 6e 76 65 72 74 28 28 28 ┆ _Wld_ToWindowX := convert(((┆ 0x5a000…5a020 (36, 0, 1) 78 20 2d 20 57 6c 64 5f 2e 58 31 29 20 2a 20 57 6e 64 5f 2e 4d 61 78 58 29 20 2f 20 57 6c 64 5f ┆x - Wld_.X1) * Wnd_.MaxX) / Wld_┆ 0x5a020…5a040 2e 58 52 61 6e 67 65 29 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 57 6c 64 5f ┆.XRange) END; FUNCTION _Wld_┆ 0x5a040…5a060 54 6f 57 69 6e 64 6f 77 59 28 79 20 3a 20 52 45 41 4c 29 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆ToWindowY(y : REAL) : INTEGER; ┆ 0x5a060…5a080 42 45 47 49 4e 0d 0a 20 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 20 3a 3d 20 63 6f 6e 76 65 ┆BEGIN _Wld_ToWindowY := conve┆ 0x5a080…5a0a0 72 74 28 28 28 79 20 2d 20 57 6c 64 5f 2e 59 31 29 20 2a 20 57 6e 64 5f 2e 4d 61 78 59 29 20 2f ┆rt(((y - Wld_.Y1) * Wnd_.MaxY) /┆ 0x5a0a0…5a0c0 20 57 6c 64 5f 2e 59 52 61 6e 67 65 29 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ Wld_.YRange) END; PROCEDURE┆ 0x5a0c0…5a0e0 20 53 61 76 65 57 69 6e 64 6f 77 28 6e 6f 3a 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 ┆ SaveWindow(no:INTEGER); VAR ┆ 0x5a0e0…5a100 20 73 69 7a 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 69 2c 6a 2c 61 64 72 6f 66 73 2c 61 64 72 ┆ siz: INTEGER; i,j,adrofs,adr┆ 0x5a100…5a120 73 65 67 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e ┆seg : INTEGER; BEGIN WITH Wn┆ 0x5a120…5a140 64 5f 61 72 72 28 2e 6e 6f 2e 29 2c 73 61 76 65 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 ┆d_arr(.no.),save_arr(.no.) DO BE┆ 0x5a140…5a160 47 49 4e 0d 0a 20 20 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d ┆GIN IF txt_mode THEN BEGIN ┆ 0x5a160…5a180 0a 20 20 20 20 20 20 73 69 7a 3a 3d 28 74 78 74 6d 61 78 78 2b 31 29 2a 28 74 78 74 6d 61 78 79 ┆ siz:=(txtmaxx+1)*(txtmaxy┆ 0x5a180…5a1a0 2b 31 29 2a 32 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f 6e 74 65 6e 74 3d 4e 49 4c 29 20 4f ┆+1)*2; IF (content=NIL) O┆ 0x5a1a0…5a1c0 52 20 28 73 69 7a 3e 6c 65 6e 67 74 68 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 42 45 47 ┆R (siz>length) THEN BEG┆ 0x5a1c0…5a1e0 49 4e 20 61 6c 6c 6f 63 61 74 65 28 63 6f 6e 74 65 6e 74 2c 73 69 7a 29 3b 20 6c 65 6e 67 74 68 ┆IN allocate(content,siz); length┆ 0x5a1e0…5a200 3a 3d 73 69 7a 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 61 64 72 73 65 67 3a 3d 73 65 67 28 63 6f ┆:=siz END; adrseg:=seg(co┆ 0x5a200…5a220 6e 74 65 6e 74 5e 29 3b 20 61 64 72 6f 66 73 3a 3d 6f 66 73 28 63 6f 6e 74 65 6e 74 5e 29 3b 0d ┆ntent^); adrofs:=ofs(content^); ┆ 0x5a220…5a240 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 74 78 74 79 31 20 54 4f 20 74 78 74 79 31 2b 74 78 74 ┆ FOR i:=txty1 TO txty1+txt┆ 0x5a240…5a260 6d 61 78 79 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 46 4f 52 20 6a 3a 3d 74 78 ┆maxy DO BEGIN FOR j:=tx┆ 0x5a260…5a280 74 78 31 20 54 4f 20 74 78 74 78 31 2b 74 78 74 6d 61 78 78 20 44 4f 20 42 45 47 49 4e 0d 0a 20 ┆tx1 TO txtx1+txtmaxx DO BEGIN ┆ 0x5a280…5a2a0 20 20 20 20 20 20 20 20 20 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3a 3d ┆ memw(.adrseg:adrofs.):=┆ 0x5a2a0…5a2c0 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 6f 74 68 3b 0d 0a 20 20 ┆txt_lineptr(.i.)^(.j.).both; ┆ 0x5a2c0…5a2e0 20 20 20 20 20 20 20 20 61 64 72 6f 66 73 3a 3d 61 64 72 6f 66 73 2b 32 3b 0d 0a 20 20 20 20 20 ┆ adrofs:=adrofs+2; ┆ 0x5a2e0…5a300 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 ┆ END; END; END ┆ 0x5a300…5a320 20 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 73 69 7a 3a 3d 28 6d 61 78 78 2b 38 ┆ ELSE BEGIN siz:=(maxx+8┆ 0x5a320…5a340 29 20 44 49 56 20 38 20 2a 20 28 6d 61 78 79 2b 31 29 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 63 ┆) DIV 8 * (maxy+1); IF (c┆ 0x5a340…5a360 6f 6e 74 65 6e 74 3d 4e 49 4c 29 20 4f 52 20 28 73 69 7a 3e 6c 65 6e 67 74 68 29 20 54 48 45 4e ┆ontent=NIL) OR (siz>length) THEN┆ 0x5a360…5a380 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 20 61 6c 6c 6f 63 61 74 65 28 63 6f 6e 74 65 6e 74 ┆ BEGIN allocate(content┆ 0x5a380…5a3a0 2c 73 69 7a 29 3b 20 6c 65 6e 67 74 68 3a 3d 73 69 7a 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 6f ┆,siz); length:=siz END; o┆ 0x5a3a0…5a3c0 6c 64 31 3a 3d 57 6c 64 5f 2e 78 6f 6c 64 3b 20 6f 6c 64 32 3a 3d 57 6c 64 5f 2e 79 6f 6c 64 3b ┆ld1:=Wld_.xold; old2:=Wld_.yold;┆ 0x5a3c0…5a3e0 0d 0a 20 20 20 20 20 20 53 63 72 5f 6f 70 65 72 61 74 69 6f 6e 28 73 61 76 65 2c 20 78 31 2c 20 ┆ Scr_operation(save, x1, ┆ 0x5a3e0…5a400 79 31 2c 20 6d 61 78 78 2b 78 31 2c 20 6d 61 78 79 2b 79 31 2c 63 6f 6e 74 65 6e 74 29 3b 0d 0a ┆y1, maxx+x1, maxy+y1,content); ┆ 0x5a400…5a420 (36, 0, 2) 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 77 69 6e 64 3a 3d 57 6e 64 5f 3b 0d 0a 20 20 45 4e 44 ┆ END; wind:=Wnd_; END┆ 0x5a420…5a440 3b 0d 0a 20 20 73 63 72 5f 73 77 61 70 5f 3a 3d 6c 6f 61 64 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆; scr_swap_:=load; END; P┆ 0x5a440…5a460 52 4f 43 45 44 55 52 45 20 4c 6f 61 64 57 69 6e 64 6f 77 28 6e 6f 2c 78 2c 79 3a 20 49 4e 54 45 ┆ROCEDURE LoadWindow(no,x,y: INTE┆ 0x5a460…5a480 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 62 6f 2c 69 2c 6a 2c 61 64 72 6f 66 73 2c 61 64 72 73 ┆GER); VAR bo,i,j,adrofs,adrs┆ 0x5a480…5a4a0 65 67 2c 6e 6f 32 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6e 6f 32 3a ┆eg,no2 : INTEGER; BEGIN no2:┆ 0x5a4a0…5a4c0 3d 61 62 73 28 6e 6f 29 3b 0d 0a 20 20 57 6e 64 5f 3a 3d 57 6e 64 5f 61 72 72 28 2e 6e 6f 32 2e ┆=abs(no); Wnd_:=Wnd_arr(.no2.┆ 0x5a4c0…5a4e0 29 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 32 2e 29 2c 20 73 61 76 65 5f ┆); WITH Wnd_arr(.no2.), save_┆ 0x5a4e0…5a500 61 72 72 28 2e 6e 6f 32 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 63 6f 6e 74 ┆arr(.no2.) DO BEGIN IF cont┆ 0x5a500…5a520 65 6e 74 3d 4e 49 4c 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 ┆ent=NIL THEN exit; x1:=x1+x┆ 0x5a520…5a540 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 79 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 74 78 74 ┆; y1:=y1+y; txtx1:=txt┆ 0x5a540…5a560 78 31 2b 78 3b 0d 0a 20 20 20 20 74 78 74 79 31 3a 3d 74 78 74 79 31 2b 79 3b 0d 0a 20 20 20 20 ┆x1+x; txty1:=txty1+y; ┆ 0x5a560…5a580 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 61 64 ┆IF txt_mode THEN BEGIN ad┆ 0x5a580…5a5a0 72 73 65 67 3a 3d 73 65 67 28 63 6f 6e 74 65 6e 74 5e 29 3b 20 61 64 72 6f 66 73 3a 3d 6f 66 73 ┆rseg:=seg(content^); adrofs:=ofs┆ 0x5a5a0…5a5c0 28 63 6f 6e 74 65 6e 74 5e 29 3b 0d 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 74 78 74 79 31 20 ┆(content^); FOR i:=txty1 ┆ 0x5a5c0…5a5e0 54 4f 20 74 78 74 79 31 2b 74 78 74 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 46 4f 52 ┆TO txty1+txtmaxy DO FOR┆ 0x5a5e0…5a600 20 6a 3a 3d 74 78 74 78 31 20 54 4f 20 74 78 74 78 31 2b 74 78 74 6d 61 78 78 20 44 4f 20 42 45 ┆ j:=txtx1 TO txtx1+txtmaxx DO BE┆ 0x5a600…5a620 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 73 63 72 5f 73 77 61 70 5f 20 3d 73 63 72 ┆GIN if scr_swap_ =scr┆ 0x5a620…5a640 73 77 61 70 20 74 68 65 6e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 3a ┆swap then BEGIN bo:┆ 0x5a640…5a660 3d 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 6f 74 68 3b 0d 0a 20 ┆=txt_lineptr(.i.)^(.j.).both; ┆ 0x5a660…5a680 20 20 20 20 20 20 20 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e ┆ txt_lineptr(.i.)^(.j.┆ 0x5a680…5a6a0 29 2e 62 6f 74 68 3a 3d 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3b 0d 0a ┆).both:=memw(.adrseg:adrofs.); ┆ 0x5a6a0…5a6c0 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e ┆ memw(.adrseg:adrofs.┆ 0x5a6c0…5a6e0 29 3a 3d 62 6f 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 0d 0a 20 20 20 20 ┆):=bo; END ELSE ┆ 0x5a6e0…5a700 20 20 20 20 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 ┆ txt_lineptr(.i.)^(.j.).b┆ 0x5a700…5a720 6f 74 68 3a 3d 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3b 0d 0a 20 20 20 ┆oth:=memw(.adrseg:adrofs.); ┆ 0x5a720…5a740 20 20 20 20 20 20 20 61 64 72 6f 66 73 3a 3d 61 64 72 6f 66 73 2b 32 3b 0d 0a 20 20 20 20 20 20 ┆ adrofs:=adrofs+2; ┆ 0x5a740…5a760 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 42 45 47 49 4e 0d ┆ END; END ELSE BEGIN ┆ 0x5a760…5a780 0a 20 20 20 20 20 20 20 53 63 72 5f 6f 70 65 72 61 74 69 6f 6e 28 73 63 72 5f 73 77 61 70 5f 2c ┆ Scr_operation(scr_swap_,┆ 0x5a780…5a7a0 78 31 2c 20 79 31 2c 20 6d 61 78 78 2b 78 31 2c 20 6d 61 78 79 2b 79 31 2c 63 6f 6e 74 65 6e 74 ┆x1, y1, maxx+x1, maxy+y1,content┆ 0x5a7a0…5a7c0 29 3b 0d 0a 20 20 20 20 20 20 20 57 6c 64 5f 2e 78 6f 6c 64 3a 3d 6f 6c 64 31 3b 20 57 6c 64 5f ┆); Wld_.xold:=old1; Wld_┆ 0x5a7c0…5a7e0 2e 79 6f 6c 64 3a 3d 6f 6c 64 32 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 49 46 20 6e ┆.yold:=old2; END; IF n┆ 0x5a7e0…5a800 6f 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 72 65 6c 65 61 73 65 28 63 6f ┆o<0 THEN BEGIN release(co┆ 0x5a800…5a820 (36, 0, 3) 6e 74 65 6e 74 29 3b 63 6f 6e 74 65 6e 74 3a 3d 4e 49 4c 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆ntent);content:=NIL END; ┆ 0x5a820…5a840 20 20 20 57 6e 64 5f 3a 3d 77 69 6e 64 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 57 49 54 48 20 57 ┆ Wnd_:=wind; END; WITH W┆ 0x5a840…5a860 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 3b 0d 0a 20 20 20 ┆nd_ DO BEGIN x1:=x1+x; ┆ 0x5a860…5a880 20 79 31 3a 3d 79 31 2b 79 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 74 78 74 78 31 2b 78 3b 0d ┆ y1:=y1+y; txtx1:=txtx1+x; ┆ 0x5a880…5a8a0 0a 20 20 20 20 74 78 74 79 31 3a 3d 74 78 74 79 31 2b 79 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 28 2a ┆ txty1:=txty1+y; END; (*┆ 0x5a8a0…5a8c0 20 20 73 61 76 65 5f 61 72 72 28 2e 6e 6f 32 2e 29 2e 77 69 6e 64 3a 3d 57 6e 64 5f 3b 2a 29 0d ┆ save_arr(.no2.).wind:=Wnd_;*) ┆ 0x5a8c0…5a8e0 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 3a 3d 6e 6f 32 3b 0d 0a 20 20 73 63 72 5f 73 77 61 70 5f ┆ Wnd_actual:=no2; scr_swap_┆ 0x5a8e0…5a900 3a 3d 6c 6f 61 64 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 77 61 70 57 69 ┆:=load END; PROCEDURE SwapWi┆ 0x5a900…5a920 6e 64 6f 77 28 6e 6f 2c 78 2c 79 3a 69 6e 74 65 67 65 72 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆ndow(no,x,y:integer); BEGIN ┆ 0x5a920…5a940 73 63 72 5f 73 77 61 70 5f 3a 3d 73 63 72 73 77 61 70 3b 0d 0a 20 20 6c 6f 61 64 57 69 6e 64 6f ┆scr_swap_:=scrswap; loadWindo┆ 0x5a940…5a960 77 28 6e 6f 2c 78 2c 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6c ┆w(no,x,y); END; PROCEDURE Wl┆ 0x5a960…5a980 64 52 61 6e 67 65 28 6e 6f 3a 20 49 4e 54 45 47 45 52 3b 20 78 78 31 2c 20 78 78 32 2c 20 79 79 ┆dRange(no: INTEGER; xx1, xx2, yy┆ 0x5a980…5a9a0 31 2c 20 79 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 ┆1, yy2 : REAL); BEGIN WITH W┆ 0x5a9a0…5a9c0 6c 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 31 20 3a 3d ┆ld_arr(.no.) DO BEGIN X1 :=┆ 0x5a9c0…5a9e0 20 78 78 31 3b 0d 0a 20 20 20 20 59 31 20 3a 3d 20 79 79 31 3b 0d 0a 20 20 20 20 58 4f 6c 64 3a ┆ xx1; Y1 := yy1; XOld:┆ 0x5a9e0…5aa00 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 4f 6c 64 3a 3d 20 79 79 31 3b 0d 0a 20 20 20 20 58 52 61 ┆= xx1; YOld:= yy1; XRa┆ 0x5aa00…5aa20 6e 67 65 20 3a 3d 20 78 78 32 20 2d 20 78 78 31 20 3b 0d 0a 20 20 20 20 59 52 61 6e 67 65 20 3a ┆nge := xx2 - xx1 ; YRange :┆ 0x5aa20…5aa40 3d 20 79 79 32 20 2d 20 79 79 31 20 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆= yy2 - yy1 END; END; PR┆ 0x5aa40…5aa60 4f 43 45 44 55 52 45 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 6e 6f 3a 20 49 4e 54 45 47 ┆OCEDURE SelectWldRange(no: INTEG┆ 0x5aa60…5aa80 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6c 64 5f 3a 3d 57 6c 64 5f 61 72 72 28 2e 6e 6f ┆ER); BEGIN Wld_:=Wld_arr(.no┆ 0x5aa80…5aaa0 2e 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 69 6e 64 6f 77 28 6e 6f ┆.); END; PROCEDURE Window(no┆ 0x5aaa0…5aac0 2c 20 78 78 31 2c 20 78 78 32 2c 20 79 79 31 2c 20 79 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d ┆, xx1, xx2, yy1, yy2: INTEGER); ┆ 0x5aac0…5aae0 0a 56 41 52 20 63 68 3a 20 43 48 41 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 78 31 20 3a 3d 20 ┆ VAR ch: CHAR; BEGIN xx1 := ┆ 0x5aae0…5ab00 28 78 78 31 20 2b 20 37 29 20 41 4e 44 20 24 66 66 66 38 3b 0d 0a 20 20 78 78 32 20 3a 3d 20 28 ┆(xx1 + 7) AND $fff8; xx2 := (┆ 0x5ab00…5ab20 28 78 78 32 20 2b 20 37 29 20 41 4e 44 20 24 66 66 66 38 29 2d 31 3b 0d 0a 20 20 49 46 20 78 78 ┆(xx2 + 7) AND $fff8)-1; IF xx┆ 0x5ab20…5ab40 31 3c 30 20 54 48 45 4e 20 78 78 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 78 32 3e 53 63 72 5f 6d ┆1<0 THEN xx1:=0; IF xx2>Scr_m┆ 0x5ab40…5ab60 61 78 78 20 54 48 45 4e 20 78 78 32 3a 3d 53 63 72 5f 6d 61 78 78 3b 0d 0a 20 20 49 46 20 79 79 ┆axx THEN xx2:=Scr_maxx; IF yy┆ 0x5ab60…5ab80 31 3c 30 20 54 48 45 4e 20 79 79 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 79 79 32 3e 53 63 72 5f 6d ┆1<0 THEN yy1:=0; IF yy2>Scr_m┆ 0x5ab80…5aba0 61 78 79 20 54 48 45 4e 20 79 79 32 3a 3d 53 63 72 5f 6d 61 78 79 3b 0d 0a 20 20 49 46 20 79 79 ┆axy THEN yy2:=Scr_maxy; IF yy┆ 0x5aba0…5abc0 31 3e 79 79 32 20 54 48 45 4e 20 73 77 61 70 28 79 79 31 2c 79 79 32 29 3b 0d 0a 20 20 49 46 20 ┆1>yy2 THEN swap(yy1,yy2); IF ┆ 0x5abc0…5abe0 78 78 31 3e 78 78 32 20 54 48 45 4e 20 73 77 61 70 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 57 ┆xx1>xx2 THEN swap(xx1,yy1); W┆ 0x5abe0…5ac00 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆ITH Wnd_arr(.no.) DO BEGIN ┆ 0x5ac00…5ac20 (36, 0, 4) 58 31 20 3a 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 31 20 3a 3d 20 79 79 31 3b 0d 0a 20 20 20 20 ┆X1 := xx1; Y1 := yy1; ┆ 0x5ac20…5ac40 4d 61 78 58 20 3a 3d 20 78 78 32 20 2d 20 78 78 31 20 3b 0d 0a 20 20 20 20 4d 61 78 59 20 3a 3d ┆MaxX := xx2 - xx1 ; MaxY :=┆ 0x5ac40…5ac60 20 79 79 32 20 2d 20 79 79 31 20 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆ yy2 - yy1 ; END; END; PR┆ 0x5ac60…5ac80 4f 43 45 44 55 52 45 20 57 69 6e 64 6f 77 43 6f 6c 6f 72 28 6e 6f 2c 20 66 63 6f 6c 6f 72 2c 20 ┆OCEDURE WindowColor(no, fcolor, ┆ 0x5ac80…5aca0 62 63 6f 6c 6f 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 ┆bcolor: INTEGER); BEGIN WITH┆ 0x5aca0…5acc0 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 70 65 6e ┆ Wnd_arr(.no.) DO BEGIN pen┆ 0x5acc0…5ace0 63 6f 6c 6f 72 3a 3d 66 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 62 61 63 6b 63 6f 6c 6f 72 3a 3d 62 ┆color:=fcolor; backcolor:=b┆ 0x5ace0…5ad00 63 6f 6c 6f 72 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆color; END; END; PROCEDUR┆ 0x5ad00…5ad20 45 20 57 69 6e 64 6f 77 48 65 61 64 65 72 28 6e 6f 3a 20 49 4e 54 45 47 45 52 3b 20 68 3a 20 73 ┆E WindowHeader(no: INTEGER; h: s┆ 0x5ad20…5ad40 74 72 38 30 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 2e 68 ┆tr80); BEGIN Wnd_arr(.no.).h┆ 0x5ad40…5ad60 64 72 3a 3d 68 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 65 6c 65 63 74 ┆dr:=h; END; PROCEDURE Select┆ 0x5ad60…5ad80 57 69 6e 64 6f 77 28 6e 6f 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 ┆Window(no: INTEGER); BEGIN W┆ 0x5ad80…5ada0 6e 64 5f 3a 3d 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 3b 0d 0a 20 20 57 6e 64 5f 61 63 74 75 61 ┆nd_:=Wnd_arr(.no.); Wnd_actua┆ 0x5ada0…5adc0 6c 3a 3d 6e 6f 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 54 65 78 74 57 69 ┆l:=no; END; PROCEDURE TextWi┆ 0x5adc0…5ade0 6e 64 6f 77 28 6e 6f 2c 20 78 78 31 2c 20 78 78 32 2c 20 79 79 31 2c 20 79 79 32 3a 20 49 4e 54 ┆ndow(no, xx1, xx2, yy1, yy2: INT┆ 0x5ade0…5ae00 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 78 78 32 3c 78 78 31 20 54 48 45 4e ┆EGER); BEGIN IF xx2<xx1 THEN┆ 0x5ae00…5ae20 20 68 61 6c 74 3b 0d 0a 20 20 49 46 20 79 79 32 3c 79 79 31 20 54 48 45 4e 20 68 61 6c 74 3b 0d ┆ halt; IF yy2<yy1 THEN halt; ┆ 0x5ae20…5ae40 0a 20 20 49 46 20 78 78 31 3c 30 20 54 48 45 4e 20 78 78 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 79 ┆ IF xx1<0 THEN xx1:=0; IF y┆ 0x5ae40…5ae60 79 31 3c 30 20 54 48 45 4e 20 79 79 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 78 32 3e 74 78 74 5f ┆y1<0 THEN yy1:=0; IF xx2>txt_┆ 0x5ae60…5ae80 6d 61 78 78 20 54 48 45 4e 20 78 78 32 3a 3d 74 78 74 5f 6d 61 78 78 3b 0d 0a 20 20 49 46 20 79 ┆maxx THEN xx2:=txt_maxx; IF y┆ 0x5ae80…5aea0 79 32 3e 74 78 74 5f 6d 61 78 79 20 54 48 45 4e 20 79 79 32 3a 3d 74 78 74 5f 6d 61 78 79 3b 0d ┆y2>txt_maxy THEN yy2:=txt_maxy; ┆ 0x5aea0…5aec0 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a ┆ WITH Wnd_arr(.no.) DO BEGIN ┆ 0x5aec0…5aee0 20 20 20 20 74 78 74 78 31 3a 3d 78 78 31 3b 0d 0a 20 20 20 20 74 78 74 79 31 3a 3d 79 79 31 3b ┆ txtx1:=xx1; txty1:=yy1;┆ 0x5aee0…5af00 0d 0a 20 20 20 20 74 78 74 6d 61 78 78 3a 3d 78 78 32 2d 78 78 31 3b 0d 0a 20 20 20 20 74 78 74 ┆ txtmaxx:=xx2-xx1; txt┆ 0x5af00…5af20 6d 61 78 79 3a 3d 79 79 32 2d 79 79 31 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 57 69 6e 64 6f 77 ┆maxy:=yy2-yy1; END; Window┆ 0x5af20…5af40 28 6e 6f 2c 78 78 31 2a 38 2c 78 78 32 2a 38 2b 37 2c 53 63 72 5f 6d 61 78 79 2d 28 28 79 79 32 ┆(no,xx1*8,xx2*8+7,Scr_maxy-((yy2┆ 0x5af40…5af60 2a 38 29 2b 37 29 2c 53 63 72 5f 6d 61 78 79 2d 28 79 79 31 2a 38 29 29 3b 0d 0a 45 4e 44 3b 0d ┆*8)+7),Scr_maxy-(yy1*8)); END; ┆ 0x5af60…5af80 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 54 65 78 74 57 69 6e 64 6f 77 43 6f 6c 6f 72 28 6e 6f 2c ┆ PROCEDURE TextWindowColor(no,┆ 0x5af80…5afa0 20 66 63 6f 6c 6f 72 2c 20 62 63 6f 6c 6f 72 3a 20 42 59 54 45 29 3b 0d 0a 42 45 47 49 4e 0d 0a ┆ fcolor, bcolor: BYTE); BEGIN ┆ 0x5afa0…5afc0 20 20 57 6e 64 5f 70 61 6c 65 74 74 65 28 2e 6e 6f 2e 29 3a 3d 66 63 6f 6c 6f 72 2b 28 62 63 6f ┆ Wnd_palette(.no.):=fcolor+(bco┆ 0x5afc0…5afe0 6c 6f 72 20 53 48 4c 20 34 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 47 ┆lor SHL 4); END; PROCEDURE G┆ 0x5afe0…5b000 72 61 70 68 69 63 53 63 72 65 65 6e 3b 0d 0a 56 41 52 20 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆raphicScreen; VAR i: INTEGER; ┆ 0x5b000…5b020 (36, 0, 5) 42 45 47 49 4e 0d 0a 20 20 74 78 74 5f 6d 6f 64 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 65 68 6f 66 ┆BEGIN txt_mode:=true; ehof┆ 0x5b020…5b040 73 3a 3d 6f 66 73 28 74 65 78 74 6d 6f 64 65 29 3b 0d 0a 20 20 6d 61 72 6b 28 53 63 72 5f 42 45 ┆s:=ofs(textmode); mark(Scr_BE┆ 0x5b040…5b060 47 49 4e 29 3b 0d 0a 20 20 69 6e 69 74 5f 67 72 61 70 68 69 63 73 3b 0d 0a 20 20 69 6e 69 74 5f ┆GIN); init_graphics; init_┆ 0x5b060…5b080 74 65 78 74 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 57 6e 64 5f 6d 61 78 20 44 4f 20 ┆text; FOR i:=1 TO Wnd_max DO ┆ 0x5b080…5b0a0 42 45 47 49 4e 0d 0a 20 20 20 20 74 65 78 74 57 69 6e 64 6f 77 28 69 2c 30 2c 37 39 2c 30 2c 32 ┆BEGIN textWindow(i,0,79,0,2┆ 0x5b0a0…5b0c0 34 29 3b 0d 0a 20 20 20 20 74 65 78 74 57 69 6e 64 6f 77 43 6f 6c 6f 72 28 69 2c 77 68 69 74 65 ┆4); textWindowColor(i,white┆ 0x5b0c0…5b0e0 74 78 74 2c 62 6c 61 63 6b 74 78 74 29 3b 0d 0a 20 20 20 20 57 69 6e 64 6f 77 28 69 2c 30 2c 20 ┆txt,blacktxt); Window(i,0, ┆ 0x5b0e0…5b100 53 63 72 5f 4d 61 78 58 2c 20 30 2c 20 53 63 72 5f 4d 61 78 59 29 3b 0d 0a 20 20 20 20 57 6c 64 ┆Scr_MaxX, 0, Scr_MaxY); Wld┆ 0x5b100…5b120 52 61 6e 67 65 28 69 2c 30 2e 30 2c 20 53 63 72 5f 4d 61 78 58 2c 20 30 2e 30 2c 20 53 63 72 5f ┆Range(i,0.0, Scr_MaxX, 0.0, Scr_┆ 0x5b120…5b140 4d 61 78 59 29 3b 0d 0a 20 20 20 20 57 69 6e 64 6f 77 43 6f 6c 6f 72 28 69 2c 77 68 69 74 65 2c ┆MaxY); WindowColor(i,white,┆ 0x5b140…5b160 62 6c 61 63 6b 29 3b 0d 0a 20 20 20 20 57 49 54 48 20 73 61 76 65 5f 61 72 72 28 2e 69 2e 29 20 ┆black); WITH save_arr(.i.) ┆ 0x5b160…5b180 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 3a 3d 4e 49 4c 3b 20 0d 0a ┆DO BEGIN content:=NIL; ┆ 0x5b180…5b1a0 20 20 20 20 20 20 6c 65 6e 67 74 68 3a 3d 30 3b 20 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 ┆ length:=0; END; ┆ 0x5b1a0…5b1c0 20 57 6e 64 5f 61 72 72 28 2e 69 2e 29 2e 68 64 72 3a 3d 27 27 3b 0d 0a 20 20 45 4e 44 3b 0d 0a ┆ Wnd_arr(.i.).hdr:=''; END; ┆ 0x5b1c0…5b1e0 20 20 73 65 6c 65 63 74 57 69 6e 64 6f 77 28 31 29 3b 0d 0a 20 20 73 65 6c 65 63 74 57 6c 64 52 ┆ selectWindow(1); selectWldR┆ 0x5b1e0…5b200 61 6e 67 65 28 31 29 3b 0d 0a 20 20 62 69 74 6e 72 3a 3d 30 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 ┆ange(1); bitnr:=0; linepat┆ 0x5b200…5b220 74 65 72 6e 73 69 7a 65 3a 3d 31 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 4c 49 4e ┆ternsize:=1; linepattern:=LIN┆ 0x5b220…5b240 45 54 59 50 45 28 2e 31 2e 29 3b 0d 0a 20 20 63 68 77 69 64 74 68 3a 3d 31 3b 0d 0a 20 20 63 68 ┆ETYPE(.1.); chwidth:=1; ch┆ 0x5b240…5b260 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 72 6f 74 61 74 69 6f 6e 3a 3d 30 3b 0d 0a 20 20 6d 61 ┆heigth:=1; rotation:=0; ma┆ 0x5b260…5b280 72 6b 65 72 73 69 7a 65 3a 3d 31 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 ┆rkersize:=1; END; PROCEDUR┆ 0x5b280…5b2a0 45 20 53 63 72 5f 64 75 6d 70 28 6d 6f 64 65 3a 70 72 6e 5f 54 59 50 45 29 3b 0d 0a 56 41 52 0d ┆E Scr_dump(mode:prn_TYPE); VAR ┆ 0x5b2a0…5b2c0 0a 20 20 70 72 69 6e 74 65 72 3a 20 74 65 78 74 3b 0d 0a 20 20 69 2c 6a 2c 6b 31 2c 73 6d 61 78 ┆ printer: text; i,j,k1,smax┆ 0x5b2c0…5b2e0 2c 74 6d 61 78 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 69 6e 69 74 5f 63 68 3a 20 53 54 52 49 ┆,tmax: INTEGER; init_ch: STRI┆ 0x5b2e0…5b300 4e 47 28 2e 36 2e 29 3b 0d 0a 20 20 67 72 5f 73 74 72 3a 20 53 54 52 49 4e 47 28 2e 34 2e 29 3b ┆NG(.6.); gr_str: STRING(.4.);┆ 0x5b300…5b320 0d 0a 20 20 63 68 3a 20 63 68 61 72 3b 0d 0a 20 20 48 69 67 68 43 48 2c 4c 6f 77 43 48 3a 20 62 ┆ ch: char; HighCH,LowCH: b┆ 0x5b320…5b340 79 74 65 3b 0d 0a 20 20 48 69 67 68 42 79 74 65 2c 4c 6f 77 42 79 74 65 3a 20 62 79 74 65 3b 0d ┆yte; HighByte,LowByte: byte; ┆ 0x5b340…5b360 0a 20 20 62 69 74 6d 6f 64 65 3a 20 63 68 61 72 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ bitmode: char; PROCEDURE┆ 0x5b360…5b380 20 42 69 74 42 69 74 28 4f 6c 64 42 79 74 65 3a 42 79 74 65 3b 56 41 52 20 4e 65 77 62 79 74 65 ┆ BitBit(OldByte:Byte;VAR Newbyte┆ 0x5b380…5b3a0 3a 20 62 79 74 65 29 3b 0d 0a 76 61 72 20 20 0d 0a 20 20 62 69 74 3a 20 62 79 74 65 3b 0d 0a 20 ┆: byte); var bit: byte; ┆ 0x5b3a0…5b3c0 20 6a 2c 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 4e 65 77 42 79 74 ┆ j,n:integer; BEGIN NewByt┆ 0x5b3c0…5b3e0 65 3a 3d 24 30 30 3b 0d 0a 20 20 46 4f 52 20 6a 3a 3d 20 31 20 74 6f 20 34 44 4f 0d 0a 20 20 42 ┆e:=$00; FOR j:= 1 to 4DO B┆ 0x5b3e0…5b400 45 47 49 4e 0d 0a 20 20 20 20 63 61 73 65 20 6a 20 6f 66 0d 0a 20 20 20 20 31 3a 20 6e 3a 3d 31 ┆EGIN case j of 1: n:=1┆ 0x5b400…5b420 (36, 1, 1) 3b 0d 0a 20 20 20 20 32 3a 20 6e 3a 3d 32 3b 0d 0a 20 20 20 20 33 3a 20 6e 3a 3d 34 3b 0d 0a 20 ┆; 2: n:=2; 3: n:=4; ┆ 0x5b420…5b440 20 20 20 34 3a 20 6e 3a 3d 38 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 42 69 74 3a 3d ┆ 4: n:=8; END; Bit:=┆ 0x5b440…5b460 4f 6c 64 62 79 74 65 20 41 4e 44 20 6e 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 20 53 48 4c ┆Oldbyte AND n; Bit:=Bit SHL┆ 0x5b460…5b480 20 6a 3b 0d 0a 20 20 20 20 4e 65 77 62 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 20 42 69 74 ┆ j; Newbyte:=Newbyte OR Bit┆ 0x5b480…5b4a0 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 20 53 48 52 20 31 3b 0d 0a 20 20 20 20 4e 65 77 62 ┆; Bit:=Bit SHR 1; Newb┆ 0x5b4a0…5b4c0 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 20 42 69 74 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e ┆yte:=Newbyte OR Bit; END; EN┆ 0x5b4c0…5b4e0 44 3b 0d 0a 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 73 73 69 67 6e 28 70 72 69 6e 74 65 72 2c ┆D; BEGIN assign(printer,┆ 0x5b4e0…5b500 27 6c 73 74 3a 27 29 3b 0d 0a 20 20 72 65 73 65 74 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 49 ┆'lst:'); reset(printer); I┆ 0x5b500…5b520 46 20 69 6f 72 65 73 3c 3e 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 49 46 20 6d 6f 64 65 ┆F iores<>0 THEN exit; IF mode┆ 0x5b520…5b540 20 69 6e 20 28 2e 4e 45 43 5f 31 36 62 69 74 2e 29 20 74 68 65 6e 20 0d 0a 20 20 42 45 47 49 4e ┆ in (.NEC_16bit.) then BEGIN┆ 0x5b540…5b560 0d 0a 20 20 20 20 62 69 74 6d 6f 64 65 3a 3d 27 49 27 3b 20 4b 31 3a 3d 32 3b 0d 0a 20 20 45 4e ┆ bitmode:='I'; K1:=2; EN┆ 0x5b560…5b580 44 20 65 6c 73 65 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 62 69 74 6d 6f 64 65 3a 3d 27 4b ┆D else BEGIN bitmode:='K┆ 0x5b580…5b5a0 27 3b 20 4b 31 3a 3d 31 3b 0d 0a 20 20 45 4e 44 3b 20 20 0d 0a 20 20 73 6d 61 78 3a 3d 28 53 63 ┆'; K1:=1; END; smax:=(Sc┆ 0x5b5a0…5b5c0 72 5f 6d 61 78 79 2b 31 29 2a 6b 31 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 ┆r_maxy+1)*k1; writeln(printer┆ 0x5b5c0…5b5e0 2c 63 68 72 28 32 37 29 2b 27 41 27 2b 63 68 72 28 38 29 2c 63 68 72 28 32 37 29 2b 27 32 27 29 ┆,chr(27)+'A'+chr(8),chr(27)+'2')┆ 0x5b5e0…5b600 3b 0d 0a 20 20 69 6e 69 74 5f 63 68 3a 3d 63 68 72 28 32 37 29 2b 62 69 74 6d 6f 64 65 2b 63 68 ┆; init_ch:=chr(27)+bitmode+ch┆ 0x5b600…5b620 72 28 6c 6f 28 73 6d 61 78 29 29 2b 63 68 72 28 68 69 28 73 6d 61 78 29 29 3b 0d 0a 20 20 46 4f ┆r(lo(smax))+chr(hi(smax)); FO┆ 0x5b620…5b640 52 20 69 3a 3d 30 20 54 4f 20 74 78 74 5f 6d 61 78 78 20 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d ┆R i:=0 TO txt_maxx DO BEGIN ┆ 0x5b640…5b660 0a 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 69 6e 69 74 5f 63 68 29 3b 0d 0a 20 20 ┆ write(printer,init_ch); ┆ 0x5b660…5b680 20 20 46 4f 52 20 6a 3a 3d 30 20 74 6f 20 53 63 72 5f 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 42 ┆ FOR j:=0 to Scr_maxy DO B┆ 0x5b680…5b6a0 45 47 49 4e 0d 0a 20 20 20 20 20 20 4c 6f 77 62 79 74 65 3a 3d 24 30 30 3b 20 48 69 67 68 62 79 ┆EGIN Lowbyte:=$00; Highby┆ 0x5b6a0…5b6c0 74 65 3a 3d 24 30 30 3b 20 0d 0a 20 20 20 20 20 20 63 68 3a 3d 63 68 72 28 6d 65 6d 28 2e 53 63 ┆te:=$00; ch:=chr(mem(.Sc┆ 0x5b6c0…5b6e0 72 5f 73 65 67 6d 3a 53 63 72 5f 79 61 64 64 72 28 2e 6a 2e 29 2b 53 63 72 5f 78 61 64 64 72 28 ┆r_segm:Scr_yaddr(.j.)+Scr_xaddr(┆ 0x5b6e0…5b700 2e 28 69 29 2a 38 2e 29 2e 29 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 62 69 74 6d 6f 64 65 3d 27 ┆.(i)*8.).)); if bitmode='┆ 0x5b700…5b720 4b 27 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 77 72 ┆K' then BEGIN wr┆ 0x5b720…5b740 69 74 65 28 70 72 69 6e 74 65 72 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 ┆ite(printer,ch); END ELSE┆ 0x5b740…5b760 20 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 49 46 20 43 48 3e 40 30 ┆ BEGIN IF CH>@0┆ 0x5b760…5b780 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ THEN BEGIN ┆ 0x5b780…5b7a0 48 69 67 68 43 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 66 30 3b 0d 0a 20 20 20 20 20 20 ┆HighCH:=ord(ch) and $f0; ┆ 0x5b7a0…5b7c0 20 20 20 20 48 69 67 68 43 48 3a 3d 48 69 67 68 43 48 20 73 68 72 20 34 3b 0d 0a 20 20 20 20 20 ┆ HighCH:=HighCH shr 4; ┆ 0x5b7c0…5b7e0 20 20 20 20 20 4c 6f 77 43 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 30 66 3b 0d 0a 20 20 ┆ LowCH:=ord(ch) and $0f; ┆ 0x5b7e0…5b800 20 20 20 20 20 20 20 20 42 69 74 42 69 74 28 48 69 67 68 43 48 2c 48 69 67 68 42 79 74 65 29 3b ┆ BitBit(HighCH,HighByte);┆ 0x5b800…5b820 (36, 1, 2) 20 42 69 74 42 69 74 28 4c 6f 77 43 48 2c 4c 6f 77 42 79 74 65 29 3b 0d 0a 20 20 20 20 20 20 20 ┆ BitBit(LowCH,LowByte); ┆ 0x5b820…5b840 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 63 ┆ END; write(printer,c┆ 0x5b840…5b860 68 72 28 48 69 67 68 42 79 74 65 29 2c 63 68 72 28 4c 6f 77 42 79 74 65 29 2c 63 68 72 28 48 69 ┆hr(HighByte),chr(LowByte),chr(Hi┆ 0x5b860…5b880 67 68 42 79 74 65 29 2c 63 68 72 28 4c 6f 77 42 79 74 65 29 29 3b 0d 0a 20 20 20 20 20 20 20 45 ┆ghByte),chr(LowByte)); E┆ 0x5b880…5b8a0 4e 44 3b 0d 0a 20 20 20 20 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 65 6e 0d 0a 20 20 20 ┆ND; if keypress then ┆ 0x5b8a0…5b8c0 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d ┆ BEGIN read(kbd,ch); ┆ 0x5b8c0…5b8e0 0a 20 20 20 20 20 20 20 20 65 78 69 74 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 ┆ exit; END; ┆ 0x5b8e0…5b900 45 4e 44 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 45 ┆END; writeln(printer); E┆ 0x5b900…5b920 4e 44 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b 27 ┆ND; writeln(printer,chr(27)+'┆ 0x5b920…5b940 63 31 27 29 3b 0d 0a 20 20 77 72 69 74 65 28 40 31 32 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 70 72 ┆c1'); write(@12); close(pr┆ 0x5b940…5b960 69 6e 74 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 41 ┆inter); END; PROCEDURE PlotA┆ 0x5b960…5b980 74 28 78 2c 79 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 53 65 74 44 ┆t(x,y: REAL); BEGIN Wnd_SetD┆ 0x5b980…5b9a0 6f 74 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e ┆ot(_Wld_ToWindowX(x), _Wld_ToWin┆ 0x5b9a0…5b9c0 64 6f 77 59 28 79 29 29 3b 0d 0a 20 20 57 6c 64 5f 2e 58 6f 6c 64 3a 3d 78 3b 20 57 6c 64 5f 2e ┆dowY(y)); Wld_.Xold:=x; Wld_.┆ 0x5b9c0…5b9e0 59 6f 6c 64 3a 3d 79 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 ┆Yold:=y; END; PROCEDURE Plot┆ 0x5b9e0…5ba00 62 79 28 78 2c 79 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 50 6c 6f 74 61 74 28 ┆by(x,y: REAL); BEGIN Plotat(┆ 0x5ba00…5ba20 57 6c 64 5f 2e 58 4f 6c 64 2b 78 2c 57 6c 64 5f 2e 59 4f 6c 64 2b 79 29 3b 0d 0a 45 4e 44 3b 0d ┆Wld_.XOld+x,Wld_.YOld+y); END; ┆ 0x5ba20…5ba40 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 43 69 72 63 6c 65 28 78 2c 79 2c 72 3a 20 52 45 41 4c 29 ┆ PROCEDURE Circle(x,y,r: REAL)┆ 0x5ba40…5ba60 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 63 69 72 63 6c 65 28 5f 57 6c 64 5f 54 6f ┆; BEGIN Wnd_circle(_Wld_To┆ 0x5ba60…5ba80 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 2c 20 5f ┆WindowX(x), _Wld_ToWindowY(y), _┆ 0x5ba80…5baa0 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 72 29 29 3b 0d 0a 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆Wld_ToWindowY(r)); END; PR┆ 0x5baa0…5bac0 4f 43 45 44 55 52 45 20 4d 6f 76 65 54 6f 28 78 2c 79 3a 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e ┆OCEDURE MoveTo(x,y:REAL); BEGIN┆ 0x5bac0…5bae0 0d 0a 20 20 57 6c 64 5f 2e 58 4f 6c 64 3a 3d 78 3b 20 57 6c 64 5f 2e 59 4f 6c 64 3a 3d 79 3b 0d ┆ Wld_.XOld:=x; Wld_.YOld:=y; ┆ 0x5bae0…5bb00 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 6f 76 65 42 79 28 78 2c 79 3a 20 52 ┆ END; PROCEDURE MoveBy(x,y: R┆ 0x5bb00…5bb20 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 57 6c 64 5f 2e 58 4f 6c 64 ┆EAL); BEGIN moveto(Wld_.XOld┆ 0x5bb20…5bb40 2b 78 2c 57 6c 64 5f 2e 59 4f 6c 64 2b 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 ┆+x,Wld_.YOld+y); END; PROCED┆ 0x5bb40…5bb60 55 52 45 20 4c 69 6e 65 54 6f 28 78 32 2c 20 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 ┆URE LineTo(x2, y2 : REAL); BEGI┆ 0x5bb60…5bb80 4e 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 54 6f 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 57 ┆N Wnd_LineTo(_Wld_ToWindowX(W┆ 0x5bb80…5bba0 6c 64 5f 2e 58 4f 6c 64 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 57 6c 64 5f 2e 59 ┆ld_.XOld), _Wld_ToWindowY(Wld_.Y┆ 0x5bba0…5bbc0 4f 6c 64 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f 57 6c 64 5f 54 6f 57 69 6e ┆Old), _Wld_ToWin┆ 0x5bbc0…5bbe0 64 6f 77 58 28 78 32 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 32 29 29 3b 0d 0a ┆dowX(x2), _Wld_ToWindowY(y2)); ┆ 0x5bbe0…5bc00 20 20 57 6c 64 5f 2e 58 4f 6c 64 3a 3d 78 32 3b 20 57 6c 64 5f 2e 59 4f 6c 64 3a 3d 79 32 3b 0d ┆ Wld_.XOld:=x2; Wld_.YOld:=y2; ┆ 0x5bc00…5bc20 (36, 1, 3) 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4c 69 6e 65 42 79 28 78 2c 79 3a 20 52 ┆ END; PROCEDURE LineBy(x,y: R┆ 0x5bc20…5bc40 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 4c 69 6e 65 54 6f 28 78 2b 57 6c 64 5f 2e 58 4f ┆EAL); BEGIN LineTo(x+Wld_.XO┆ 0x5bc40…5bc60 6c 64 2c 79 2b 57 6c 64 5f 2e 59 4f 6c 64 29 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 ┆ld,y+Wld_.YOld); END; PROC┆ 0x5bc60…5bc80 45 44 55 52 45 20 50 6c 6f 74 54 65 78 74 28 78 2c 79 3a 20 52 45 41 4c 3b 20 73 3a 20 73 74 72 ┆EDURE PlotText(x,y: REAL; s: str┆ 0x5bc80…5bca0 38 30 29 3b 0d 0a 76 61 72 0d 0a 20 20 69 2c 78 31 2c 79 31 2c 78 32 2c 79 32 2c 78 62 65 67 2c ┆80); var i,x1,y1,x2,y2,xbeg,┆ 0x5bca0…5bcc0 78 65 6e 64 2c 79 62 65 67 2c 79 65 6e 64 2c 73 69 7a 78 2c 73 69 7a 79 2c 78 78 2c 79 79 3a 20 ┆xend,ybeg,yend,sizx,sizy,xx,yy: ┆ 0x5bcc0…5bce0 69 6e 74 65 67 65 72 3b 0d 0a 20 20 63 62 79 74 65 3a 20 62 79 74 65 3b 0d 0a 20 20 72 6f 74 61 ┆integer; cbyte: byte; rota┆ 0x5bce0…5bd00 74 65 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 78 3a 3d 5f 57 6c 64 5f ┆te: boolean; BEGIN xx:=_Wld_┆ 0x5bd00…5bd20 74 6f 77 69 6e 64 6f 77 78 28 78 29 3b 20 20 79 79 3a 3d 5f 57 6c 64 5f 74 6f 77 69 6e 64 6f 77 ┆towindowx(x); yy:=_Wld_towindow┆ 0x5bd20…5bd40 79 28 79 29 3b 0d 0a 20 20 73 69 7a 78 3a 3d 72 6f 75 6e 64 28 63 68 77 69 64 74 68 29 3b 20 73 ┆y(y); sizx:=round(chwidth); s┆ 0x5bd40…5bd60 69 7a 79 3a 3d 72 6f 75 6e 64 28 63 68 68 65 69 67 74 68 29 3b 0d 0a 20 20 72 6f 74 61 74 65 3a ┆izy:=round(chheigth); rotate:┆ 0x5bd60…5bd80 3d 72 6f 74 61 74 69 6f 6e 3c 3e 30 3b 0d 0a 20 20 66 6f 72 20 69 3a 3d 31 20 74 6f 20 6c 65 6e ┆=rotation<>0; for i:=1 to len┆ 0x5bd80…5bda0 28 73 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 46 4f 52 20 79 31 3a 3d 30 20 74 6f 20 37 ┆(s) DO BEGIN FOR y1:=0 to 7┆ 0x5bda0…5bdc0 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 63 62 79 74 65 3a 3d 73 63 72 5f 63 68 61 72 ┆ DO BEGIN cbyte:=scr_char┆ 0x5bdc0…5bde0 28 2e 62 79 74 65 28 73 28 2e 69 2e 29 29 2c 28 37 2d 79 31 29 2e 29 20 3b 0d 0a 20 20 20 20 20 ┆(.byte(s(.i.)),(7-y1).) ; ┆ 0x5bde0…5be00 20 46 4f 52 20 78 31 3a 3d 30 20 74 6f 20 37 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 ┆ FOR x1:=0 to 7 DO BEGIN ┆ 0x5be00…5be20 20 20 69 66 20 28 63 62 79 74 65 20 73 68 72 20 28 37 2d 78 31 29 29 20 61 6e 64 20 31 3c 3e 30 ┆ if (cbyte shr (7-x1)) and 1<>0┆ 0x5be20…5be40 20 74 68 65 6e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 78 62 65 67 3a 3d 78 78 2b ┆ then BEGIN xbeg:=xx+┆ 0x5be40…5be60 78 31 2a 73 69 7a 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 78 65 6e 64 3a 3d 78 62 65 67 2b 73 ┆x1*sizx; xend:=xbeg+s┆ 0x5be60…5be80 69 7a 78 2d 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 79 62 65 67 3a 3d 79 79 2b 79 31 2a 73 69 ┆izx-1; ybeg:=yy+y1*si┆ 0x5be80…5bea0 7a 79 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 79 65 6e 64 3a 3d 79 62 65 67 2b 73 69 7a 79 2d 31 ┆zy; yend:=ybeg+sizy-1┆ 0x5bea0…5bec0 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 46 4f 52 20 78 32 3a 3d 78 62 65 67 20 74 6f 20 78 65 6e ┆; FOR x2:=xbeg to xen┆ 0x5bec0…5bee0 64 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 ┆d DO BEGIN ┆ 0x5bee0…5bf00 20 20 20 46 4f 52 20 79 32 3a 3d 79 62 65 67 20 74 6f 20 79 65 6e 64 20 44 4f 0d 0a 20 20 20 20 ┆ FOR y2:=ybeg to yend DO ┆ 0x5bf00…5bf20 20 20 20 20 20 20 20 20 49 46 20 6e 6f 74 20 72 6f 74 61 74 65 20 74 68 65 6e 20 77 6e 64 5f 53 ┆ IF not rotate then wnd_S┆ 0x5bf20…5bf40 65 74 44 6f 74 28 78 32 2c 79 32 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 77 ┆etDot(x2,y2) else w┆ 0x5bf40…5bf60 6e 64 5f 53 65 74 44 6f 74 28 79 79 2a 32 2d 79 32 2c 78 32 29 0d 0a 20 20 20 20 20 20 20 20 20 ┆nd_SetDot(yy*2-y2,x2) ┆ 0x5bf60…5bf80 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d ┆ END; END; END; ┆ 0x5bf80…5bfa0 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 78 78 3a 3d 78 78 2b 73 69 7a 78 2a 38 3b 0d 0a 20 ┆ END; xx:=xx+sizx*8; ┆ 0x5bfa0…5bfc0 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 74 65 78 ┆ END; END; PROCEDURE Drawtex┆ 0x5bfc0…5bfe0 74 28 63 6f 6c 2c 72 6f 77 3a 49 4e 54 45 47 45 52 3b 73 3a 73 74 72 38 30 29 3b 0d 0a 56 41 52 ┆t(col,row:INTEGER;s:str80); VAR┆ 0x5bfe0…5c000 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 20 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 ┆ attrib: BYTE; l : INTEGER; B┆ 0x5c000…5c020 (36, 1, 4) 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d 0a 20 20 20 20 49 46 20 74 78 74 ┆EGIN WITH Wnd_ DO IF txt┆ 0x5c020…5c040 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 72 6f 77 3a 3d 72 6f 77 ┆_mode THEN BEGIN row:=row┆ 0x5c040…5c060 2b 74 78 74 79 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f 6c 2b 6c 65 6e 28 73 29 29 3e 28 ┆+txty1; IF (col+len(s))>(┆ 0x5c060…5c080 74 78 74 6d 61 78 78 2b 31 29 20 54 48 45 4e 20 6c 3a 3d 74 78 74 6d 61 78 78 2b 31 2d 63 6f 6c ┆txtmaxx+1) THEN l:=txtmaxx+1-col┆ 0x5c080…5c0a0 20 45 4c 53 45 20 6c 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 20 20 20 20 63 6f 6c 3a 3d 63 6f 6c ┆ ELSE l:=len(s); col:=col┆ 0x5c0a0…5c0c0 2b 74 78 74 78 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 72 6f 77 3c 3d 74 78 74 6d 61 78 79 2b 74 ┆+txtx1; IF row<=txtmaxy+t┆ 0x5c0c0…5c0e0 78 74 79 31 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 73 74 72 28 63 6f 6c 2c ┆xty1 THEN writestr(col,┆ 0x5c0e0…5c100 72 6f 77 2c 63 6f 70 79 28 73 2c 31 2c 6c 29 29 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 ┆row,copy(s,1,l)); END ┆ 0x5c100…5c120 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 63 6f 6c 3a 3d 20 63 6f 6c 20 53 48 4c 20 ┆ELSE BEGIN col:= col SHL ┆ 0x5c120…5c140 33 20 3b 0d 0a 20 20 20 20 20 20 72 6f 77 3a 3d 20 6d 61 78 79 20 2d 20 37 20 2d 20 28 72 6f 77 ┆3 ; row:= maxy - 7 - (row┆ 0x5c140…5c160 20 2a 20 38 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 64 72 61 77 74 65 78 74 28 63 6f 6c 2c 72 ┆ * 8); Wnd_drawtext(col,r┆ 0x5c160…5c180 6f 77 2c 73 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 ┆ow,s); END; END; PROCED┆ 0x5c180…5c1a0 55 52 45 20 44 72 61 77 72 65 61 6c 28 63 6f 6c 2c 72 6f 77 3a 49 4e 54 45 47 45 52 3b 20 72 3a ┆URE Drawreal(col,row:INTEGER; r:┆ 0x5c1a0…5c1c0 52 45 41 4c 3b 20 6c 2c 64 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 73 3a 20 ┆REAL; l,d: INTEGER); VAR s: ┆ 0x5c1c0…5c1e0 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 28 72 3a 6c 3a 64 2c 73 29 3b 0d 0a ┆str80; BEGIN str(r:l:d,s); ┆ 0x5c1e0…5c200 20 20 64 72 61 77 74 65 78 74 28 63 6f 6c 2c 72 6f 77 2c 73 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆ drawtext(col,row,s); END; ┆ 0x5c200…5c220 50 52 4f 43 45 44 55 52 45 20 52 65 63 74 61 6e 67 6c 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 ┆PROCEDURE Rectangle(x1, y1, x2, ┆ 0x5c220…5c240 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 56 41 52 20 6f 6c 64 3a 69 6e 74 65 67 65 72 3b 0d 0a 42 ┆y2 : REAL); VAR old:integer; B┆ 0x5c240…5c260 45 47 49 4e 0d 0a 20 20 6f 6c 64 3a 3d 6c 69 6e 65 70 61 74 74 65 72 6e 3b 0d 0a 20 20 6c 69 6e ┆EGIN old:=linepattern; lin┆ 0x5c260…5c280 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e 65 74 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 20 57 6e 64 5f ┆epattern:=linetype(.1.); Wnd_┆ 0x5c280…5c2a0 44 72 61 77 42 6f 78 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 31 29 2c 20 5f 57 6c 64 ┆DrawBox(_Wld_ToWindowX(x1), _Wld┆ 0x5c2a0…5c2c0 5f 54 6f 57 69 6e 64 6f 77 59 28 79 31 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f ┆_ToWindowY(y1), _┆ 0x5c2c0…5c2e0 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 32 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 ┆Wld_ToWindowX(x2), _Wld_ToWindow┆ 0x5c2e0…5c300 59 28 79 32 29 29 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6f 6c 64 3b 0d 0a 45 4e ┆Y(y2)); linepattern:=old; EN┆ 0x5c300…5c320 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 57 69 6e 64 6f 77 3b 0d 0a 42 45 47 ┆D; PROCEDURE DrawWindow; BEG┆ 0x5c320…5c340 49 4e 0d 0a 20 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 30 2c 20 30 2c 20 57 6e 64 5f 2e 4d 61 78 ┆IN Wnd_DrawBox(0, 0, Wnd_.Max┆ 0x5c340…5c360 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆X, Wnd_.MaxY); END; PROCEDUR┆ 0x5c360…5c380 45 20 44 72 61 77 48 65 61 64 65 72 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6f 6c 64 63 6f 6c 6f 72 ┆E DrawHeader; VAR i,oldcolor┆ 0x5c380…5c3a0 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 ┆: INTEGER; BEGIN WITH Wnd_ D┆ 0x5c3a0…5c3c0 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 68 64 72 3c 3e 27 27 20 54 48 45 4e 20 42 45 47 ┆O BEGIN IF hdr<>'' THEN BEG┆ 0x5c3c0…5c3e0 49 4e 0d 0a 20 20 20 20 20 20 69 3a 3d 28 6d 61 78 78 20 44 49 56 20 38 20 2d 20 6c 65 6e 28 68 ┆IN i:=(maxx DIV 8 - len(h┆ 0x5c3e0…5c400 64 72 29 29 20 44 49 56 20 32 3b 0d 0a 20 20 20 20 20 20 49 46 20 69 3c 30 20 54 48 45 4e 20 69 ┆dr)) DIV 2; IF i<0 THEN i┆ 0x5c400…5c420 (36, 1, 5) 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 66 69 6c 6c 28 78 31 2c 79 31 2b 6d 61 78 79 2d ┆:=0; Scr_fill(x1,y1+maxy-┆ 0x5c420…5c440 31 30 2c 78 31 2b 6d 61 78 78 2c 79 31 2b 6d 61 78 79 2c 24 46 46 29 3b 0d 0a 20 20 20 20 20 20 ┆10,x1+maxx,y1+maxy,$FF); ┆ 0x5c440…5c460 6f 6c 64 63 6f 6c 6f 72 3a 3d 70 65 6e 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 20 20 70 65 6e 63 6f ┆oldcolor:=pencolor; penco┆ 0x5c460…5c480 6c 6f 72 3a 3d 62 6c 61 63 6b 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 64 72 61 77 62 6f 78 28 30 ┆lor:=black; Wnd_drawbox(0┆ 0x5c480…5c4a0 2c 6d 61 78 79 2d 31 30 2c 6d 61 78 78 2c 6d 61 78 79 29 3b 0d 0a 20 20 20 20 20 20 6d 61 78 79 ┆,maxy-10,maxx,maxy); maxy┆ 0x5c4a0…5c4c0 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 20 20 44 72 61 77 74 65 78 74 28 69 2c 30 2c 68 64 ┆:=maxy-2; Drawtext(i,0,hd┆ 0x5c4c0…5c4e0 72 29 3b 0d 0a 20 20 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 38 3b 0d 0a 20 20 20 20 20 20 ┆r); maxy:=maxy-8; ┆ 0x5c4e0…5c500 70 65 6e 63 6f 6c 6f 72 3a 3d 6f 6c 64 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆pencolor:=oldcolor; END; ┆ 0x5c500…5c520 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 66 72 61 ┆ END; END; PROCEDURE Drawfra┆ 0x5c520…5c540 6d 65 3b 0d 0a 76 61 72 20 6f 6c 64 3a 62 79 74 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6f 6c 64 ┆me; var old:byte; BEGIN old┆ 0x5c540…5c560 3a 3d 6c 69 6e 65 70 61 74 74 65 72 6e 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c ┆:=linepattern; linepattern:=l┆ 0x5c560…5c580 69 6e 65 74 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 42 45 ┆inetype(.1.); WITH Wnd_ DO BE┆ 0x5c580…5c5a0 47 49 4e 0d 0a 20 20 20 20 64 72 61 77 68 65 61 64 65 72 3b 0d 0a 20 20 20 20 57 6e 64 5f 44 72 ┆GIN drawheader; Wnd_Dr┆ 0x5c5a0…5c5c0 61 77 42 6f 78 28 30 2c 20 30 2c 20 4d 61 78 58 2c 20 4d 61 78 59 29 3b 0d 0a 20 20 20 20 78 31 ┆awBox(0, 0, MaxX, MaxY); x1┆ 0x5c5c0…5c5e0 3a 3d 78 31 2b 31 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 31 3b 0d 0a 20 20 20 20 6d 61 78 79 ┆:=x1+1; y1:=y1+1; maxy┆ 0x5c5e0…5c600 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 6d 61 78 78 3a 3d 6d 61 78 78 2d 32 3b 0d 0a 20 20 ┆:=maxy-2; maxx:=maxx-2; ┆ 0x5c600…5c620 45 4e 44 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6f 6c 64 3b 0d 0a 45 4e 44 3b 0d ┆END; linepattern:=old; END; ┆ 0x5c620…5c640 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 43 6c 65 61 72 57 69 6e 64 6f 77 3b 0d 0a 56 41 52 20 69 ┆ PROCEDURE ClearWindow; VAR i┆ 0x5c640…5c660 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 ┆ : INTEGER; str: str80; BEGI┆ 0x5c660…5c680 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d 0a 20 20 20 20 49 46 20 74 78 74 5f 6d 6f ┆N WITH Wnd_ DO IF txt_mo┆ 0x5c680…5c6a0 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 73 74 72 3a 3d 73 70 63 28 74 78 ┆de THEN BEGIN str:=spc(tx┆ 0x5c6a0…5c6c0 74 6d 61 78 78 2b 31 2c 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f ┆tmaxx+1,' '); FOR i:=0 TO┆ 0x5c6c0…5c6e0 20 74 78 74 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 64 72 61 77 74 65 78 74 28 30 2c ┆ txtmaxy DO drawtext(0,┆ 0x5c6e0…5c700 69 2c 73 74 72 29 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 ┆i,str); END ELSE ┆ 0x5c700…5c720 20 20 53 63 72 5f 46 69 6c 6c 28 78 31 2b 31 2c 20 79 31 2b 31 2c 20 78 31 2b 4d 61 78 58 2c 20 ┆ Scr_Fill(x1+1, y1+1, x1+MaxX, ┆ 0x5c720…5c740 79 31 20 2b 20 6d 61 78 59 20 2c 62 61 63 6b 63 6f 6c 6f 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆y1 + maxY ,backcolor); END; ┆ 0x5c740…5c760 50 52 4f 43 45 44 55 52 45 20 52 65 63 74 66 69 6c 6c 28 78 31 2c 79 31 2c 78 32 2c 79 32 3a 20 ┆PROCEDURE Rectfill(x1,y1,x2,y2: ┆ 0x5c760…5c780 72 65 61 6c 3b 20 6e 6f 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 56 41 52 0d 0a 20 20 70 61 74 74 ┆real; no: integer); VAR patt┆ 0x5c780…5c7a0 65 72 6e 20 3a 20 41 52 52 41 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 69 6e 74 65 67 65 72 3b 0d ┆ern : ARRAY(.0..7.) OF integer; ┆ 0x5c7a0…5c7c0 0a 20 20 20 78 2c 73 78 31 2c 73 78 32 2c 79 2c 73 79 2c 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆ x,sx1,sx2,y,sy,i: INTEGER; ┆ 0x5c7c0…5c7e0 20 20 20 73 3a 20 73 74 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 52 65 63 ┆ s: string(.2.); BEGIN Rec┆ 0x5c7e0…5c800 74 61 6e 67 6c 65 28 78 31 2c 79 31 2c 78 32 2c 79 32 29 3b 0d 0a 20 20 73 74 72 28 6e 6f 3a 32 ┆tangle(x1,y1,x2,y2); str(no:2┆ 0x5c800…5c820 (37, 0, 1) 2c 73 29 3b 0d 0a 20 20 73 78 31 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 31 29 3b ┆,s); sx1:=_Wld_ToWindowX(x1);┆ 0x5c820…5c840 0d 0a 20 20 73 78 32 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 32 29 3b 0d 0a 20 20 ┆ sx2:=_Wld_ToWindowX(x2); ┆ 0x5c840…5c860 46 4f 52 20 69 3a 3d 30 20 74 6f 20 37 20 44 4f 0d 0a 20 20 70 61 74 74 65 72 6e 28 2e 69 2e 29 ┆FOR i:=0 to 7 DO pattern(.i.)┆ 0x5c860…5c880 3a 3d 70 61 74 74 65 72 6e 74 79 70 65 28 2e 6e 6f 2c 69 2e 29 3b 0d 0a 20 20 46 4f 52 20 73 79 ┆:=patterntype(.no,i.); FOR sy┆ 0x5c880…5c8a0 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 31 29 20 54 4f 20 5f 57 6c 64 5f 54 6f 57 ┆:=_Wld_ToWindowY(y1) TO _Wld_ToW┆ 0x5c8a0…5c8c0 69 6e 64 6f 77 59 28 79 32 29 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 69 3a 3d 73 ┆indowY(y2) DO BEGIN i:=s┆ 0x5c8c0…5c8e0 79 20 4d 4f 44 20 38 3b 20 62 69 74 6e 72 3a 3d 30 3b 0d 0a 20 20 20 20 6c 69 6e 65 70 61 74 74 ┆y MOD 8; bitnr:=0; linepatt┆ 0x5c8e0…5c900 65 72 6e 3a 3d 70 61 74 74 65 72 6e 28 2e 69 2e 29 3b 20 0d 0a 20 20 20 20 57 6e 64 5f 4c 69 6e ┆ern:=pattern(.i.); Wnd_Lin┆ 0x5c900…5c920 65 54 6f 28 73 78 31 2c 73 79 2c 73 78 32 2c 73 79 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆eTo(sx1,sy,sx2,sy); END; END┆ 0x5c920…5c940 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆; ┆ 0x5c940…5c960 00 00 00 00 00 00 00 00 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…] 0x5c980…5c9a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x33…] 0x5d000…5d020 (37, 0, 3) 28 2a 47 53 56 2d 42 41 53 45 2a 29 0d 0a 0d 0a 43 4f 4e 53 54 0d 0a 20 20 62 6c 61 63 6b 20 09 ┆(*GSV-BASE*) CONST black ┆ 0x5d020…5d040 3d 20 30 3b 0d 0a 20 20 77 68 69 74 65 20 09 3d 20 24 46 46 3b 0d 0a 20 20 74 72 61 6e 73 70 09 ┆= 0; white = $FF; transp ┆ 0x5d040…5d060 3d 20 30 31 3b 0d 0a 20 20 57 6e 64 5f 6d 61 78 20 09 3d 20 35 3b 0d 0a 20 20 63 68 61 72 66 69 ┆= 01; Wnd_max = 5; charfi┆ 0x5d060…5d080 6c 6e 61 6d 65 20 09 3d 20 27 61 3a 47 53 56 2d 66 6f 6e 74 2e 63 68 72 27 3b 0d 0a 20 20 74 78 ┆lname = 'a:GSV-font.chr'; tx┆ 0x5d080…5d0a0 74 5f 6d 6f 64 65 09 3a 20 42 4f 4f 4c 45 41 4e 20 3d 20 74 72 75 65 3b 0d 0a 20 20 6c 69 6e 65 ┆t_mode : BOOLEAN = true; line┆ 0x5d0a0…5d0c0 74 79 70 65 20 20 20 20 20 20 3a 20 41 52 52 41 59 28 2e 30 2e 2e 31 34 2e 29 20 4f 46 20 42 59 ┆type : ARRAY(.0..14.) OF BY┆ 0x5d0c0…5d0e0 54 45 20 3d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 30 30 2c 24 46 46 ┆TE = ($00,$FF┆ 0x5d0e0…5d100 2c 24 46 45 2c 24 46 43 2c 24 46 41 2c 24 46 38 2c 24 46 36 2c 24 46 30 2c 0d 0a 20 20 20 20 20 ┆,$FE,$FC,$FA,$F8,$F6,$F0, ┆ 0x5d100…5d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 45 45 2c 24 45 41 2c 24 45 34 2c 24 43 43 2c 24 41 ┆ $EE,$EA,$E4,$CC,$A┆ 0x5d120…5d140 41 2c 24 38 38 2c 24 38 30 29 3b 0d 0a 0d 0a 20 20 70 61 74 74 65 72 6e 74 79 70 65 20 20 20 3a ┆A,$88,$80); patterntype :┆ 0x5d140…5d160 20 61 72 72 61 79 28 2e 30 2e 2e 31 35 2c 30 2e 2e 37 2e 29 20 4f 46 20 42 59 54 45 20 3d 0d 0a ┆ array(.0..15,0..7.) OF BYTE = ┆ 0x5d160…5d180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 ┆ (($00,$00,$00,$┆ 0x5d180…5d1a0 30 30 2c 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 30 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆00,$00,$00,$00,$00), ┆ 0x5d1a0…5d1c0 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 46 46 2c 24 46 46 2c 24 46 46 2c 24 46 46 2c 24 46 46 ┆ ($FF,$FF,$FF,$FF,$FF,$FF┆ 0x5d1c0…5d1e0 2c 24 46 46 2c 24 46 46 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 ┆,$FF,$FF), ($┆ 0x5d1e0…5d200 38 38 2c 24 34 34 2c 24 32 32 2c 24 31 31 2c 24 38 38 2c 24 34 34 2c 24 32 32 2c 24 31 31 29 2c ┆88,$44,$22,$11,$88,$44,$22,$11),┆ 0x5d200…5d220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x5d220…5d240 20 20 20 20 28 24 41 41 2c 24 41 41 2c 24 41 41 2c 24 41 41 2c 24 41 41 2c 24 41 41 2c 24 41 41 ┆ ($AA,$AA,$AA,$AA,$AA,$AA,$AA┆ 0x5d240…5d260 2c 24 41 41 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 ┆,$AA), ($FF,$┆ 0x5d260…5d280 30 30 2c 24 46 46 2c 24 30 30 2c 24 46 46 2c 24 30 30 2c 24 46 46 2c 24 30 30 29 2c 0d 0a 20 20 ┆00,$FF,$00,$FF,$00,$FF,$00), ┆ 0x5d280…5d2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 41 41 2c 24 46 46 2c 24 41 41 ┆ ($FF,$AA,$FF,$AA┆ 0x5d2a0…5d2c0 2c 24 46 46 2c 24 41 41 2c 24 46 46 2c 24 41 41 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆,$FF,$AA,$FF,$AA), ┆ 0x5d2c0…5d2e0 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 ┆ ($┆ 0x5d2e0…5d300 41 41 2c 24 35 35 2c 24 41 41 2c 24 35 35 2c 24 41 41 2c 24 35 35 2c 24 41 41 2c 24 35 35 29 2c ┆AA,$55,$AA,$55,$AA,$55,$AA,$55),┆ 0x5d300…5d320 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 31 31 2c 24 32 32 2c 24 34 34 ┆ ($11,$22,$44┆ 0x5d320…5d340 2c 24 38 38 2c 24 31 31 2c 24 32 32 2c 24 34 34 2c 24 38 38 29 2c 20 20 20 20 20 20 20 20 20 20 ┆,$88,$11,$22,$44,$88), ┆ 0x5d340…5d360 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ┆ (┆ 0x5d360…5d380 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 2c 24 38 38 29 ┆$88,$88,$88,$88,$88,$88,$88,$88)┆ 0x5d380…5d3a0 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆, ┆ 0x5d3a0…5d3c0 20 20 20 28 24 46 46 2c 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 46 46 2c 24 30 30 2c 24 30 30 2c ┆ ($FF,$00,$00,$00,$FF,$00,$00,┆ 0x5d3c0…5d3e0 24 30 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 38 ┆$00), ($FF,$8┆ 0x5d3e0…5d400 38 2c 24 38 38 2c 24 38 38 2c 24 46 46 2c 24 38 38 2c 24 38 38 2c 24 38 38 29 2c 20 20 20 20 20 ┆8,$88,$88,$FF,$88,$88,$88), ┆ 0x5d400…5d420 (37, 0, 4) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x5d420…5d440 20 20 20 20 20 20 28 24 30 33 2c 24 38 34 2c 24 34 38 2c 24 33 30 2c 24 33 30 2c 24 34 38 2c 24 ┆ ($03,$84,$48,$30,$30,$48,$┆ 0x5d440…5d460 38 34 2c 24 30 33 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 38 38 ┆84,$03), ($88┆ 0x5d460…5d480 2c 24 35 35 2c 24 32 32 2c 24 35 35 2c 24 38 38 2c 24 35 35 2c 24 32 32 2c 24 35 35 29 2c 0d 0a ┆,$55,$22,$55,$88,$55,$22,$55), ┆ 0x5d480…5d4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 38 30 2c 24 38 30 2c 24 38 30 2c 24 ┆ ($80,$80,$80,$┆ 0x5d4a0…5d4c0 38 30 2c 24 38 30 2c 24 38 30 2c 24 38 30 2c 24 38 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆80,$80,$80,$80,$80), ┆ 0x5d4c0…5d4e0 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 30 30 2c 24 30 30 ┆ ($FF,$00,$00,$00,$00,$00┆ 0x5d4e0…5d500 2c 24 30 30 2c 24 30 30 29 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆,$00,$00), ┆ 0x5d500…5d520 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 46 46 2c 24 38 30 2c 24 38 30 ┆ ($FF,$80,$80┆ 0x5d520…5d540 2c 24 38 30 2c 24 38 30 2c 24 38 30 2c 24 38 30 2c 24 38 30 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 ┆,$80,$80,$80,$80,$80)); ┆ 0x5d540…5d560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 28 2a 20 20 46 6f 72 65 2d 20 61 6e 64 20 62 61 ┆ (* Fore- and ba┆ 0x5d560…5d580 63 6b 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 2a 29 0d 0a 28 2a 20 20 20 20 4c 69 67 68 74 54 78 74 ┆ckgroundcolors*) (* LightTxt┆ 0x5d580…5d5a0 20 6f 6e 6c 79 20 77 6f 72 6b 73 20 46 4f 52 20 66 6f 72 65 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 ┆ only works FOR foregroundcolors┆ 0x5d5a0…5d5c0 2a 29 0d 0a 28 2a 20 20 20 20 42 6c 69 6e 6b 54 78 74 20 6f 6e 6c 79 20 77 6f 72 6b 73 20 46 4f ┆*) (* BlinkTxt only works FO┆ 0x5d5c0…5d5e0 52 20 62 61 63 6b 67 72 6f 75 6e 64 63 6f 6c 6f 72 73 20 2a 29 0d 0a 20 20 62 6c 61 63 6b 54 78 ┆R backgroundcolors *) blackTx┆ 0x5d5e0…5d600 74 09 3d 20 30 3b 20 77 68 69 74 65 74 78 74 09 3d 20 37 3b 0d 0a 20 20 6c 69 67 68 74 74 78 74 ┆t = 0; whitetxt = 7; lighttxt┆ 0x5d600…5d620 09 3d 20 38 3b 20 20 62 6c 69 6e 6b 74 78 74 20 20 3d 20 38 3b 0d 0a 0d 0a 54 59 50 45 0d 0a 20 ┆ = 8; blinktxt = 8; TYPE ┆ 0x5d620…5d640 20 42 75 66 74 79 70 65 20 09 3d 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 38 30 20 09 ┆ Buftype = ^INTEGER; str80 ┆ 0x5d640…5d660 3d 20 53 54 52 49 4e 47 28 2e 38 30 2e 29 3b 0d 0a 20 20 73 74 72 31 20 20 20 20 20 20 20 20 20 ┆= STRING(.80.); str1 ┆ 0x5d660…5d680 20 3d 20 53 54 52 49 4e 47 5b 31 5d 3b 0d 0a 20 20 73 74 72 32 20 20 20 20 20 20 20 20 20 20 3d ┆ = STRINGÆ1Å; str2 =┆ 0x5d680…5d6a0 20 53 54 52 49 4e 47 5b 32 5d 3b 0d 0a 20 20 73 74 72 31 35 20 20 20 20 20 20 20 20 20 3d 20 53 ┆ STRINGÆ2Å; str15 = S┆ 0x5d6a0…5d6c0 54 52 49 4e 47 5b 31 35 5d 3b 0d 0a 20 20 73 74 72 32 35 20 20 20 20 20 20 20 20 20 3d 20 53 54 ┆TRINGÆ15Å; str25 = ST┆ 0x5d6c0…5d6e0 52 49 4e 47 5b 32 35 5d 3b 0d 0a 20 20 63 68 61 72 73 65 74 20 20 20 20 20 20 20 3d 20 73 65 74 ┆RINGÆ25Å; charset = set┆ 0x5d6e0…5d700 20 6f 66 20 63 68 61 72 3b 0d 0a 20 20 57 6e 64 5f 54 59 50 45 20 3d 20 52 45 43 4f 52 44 0d 0a ┆ of char; Wnd_TYPE = RECORD ┆ 0x5d700…5d720 20 20 20 20 78 31 2c 20 79 31 09 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 6d 61 78 78 ┆ x1, y1 : INTEGER; maxx┆ 0x5d720…5d740 2c 20 6d 61 78 79 09 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 70 65 6e 63 6f 6c 6f 72 ┆, maxy : INTEGER; pencolor┆ 0x5d740…5d760 2c 20 62 61 63 6b 63 6f 6c 6f 72 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 74 78 74 6d ┆, backcolor : INTEGER; txtm┆ 0x5d760…5d780 61 78 78 2c 20 74 78 74 6d 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 74 78 74 ┆axx, txtmaxy : INTEGER; txt┆ 0x5d780…5d7a0 78 31 2c 20 74 78 74 79 31 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 68 64 72 09 09 09 ┆x1, txty1 : INTEGER; hdr ┆ 0x5d7a0…5d7c0 3a 20 73 74 72 38 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 57 6c 64 5f 54 59 50 45 20 3d ┆: str80; END; Wld_TYPE =┆ 0x5d7c0…5d7e0 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 78 31 2c 20 79 31 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 20 ┆ RECORD x1, y1 : REAL; ┆ 0x5d7e0…5d800 20 78 72 61 6e 67 65 2c 20 79 72 61 6e 67 65 3a 20 52 45 41 4c 3b 0d 0a 20 20 20 20 58 4f 6c 64 ┆ xrange, yrange: REAL; XOld┆ 0x5d800…5d820 (37, 0, 5) 2c 20 59 6f 6c 64 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 73 61 76 65 ┆, Yold : REAL; END; save┆ 0x5d820…5d840 5f 54 59 50 45 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 63 6f 6e 74 65 6e 74 09 3a 20 62 75 ┆_TYPE = RECORD content : bu┆ 0x5d840…5d860 66 74 79 70 65 3b 0d 0a 20 20 20 20 6c 65 6e 67 74 68 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆ftype; length : INTEGER; ┆ 0x5d860…5d880 20 20 20 77 69 6e 64 09 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 20 20 6f 6c 64 31 2c 20 6f ┆ wind : Wnd_TYPE; old1, o┆ 0x5d880…5d8a0 6c 64 32 09 3a 20 52 45 41 4c 3b 0d 0a 20 20 20 20 61 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 ┆ld2 : REAL; actual : INTEGE┆ 0x5d8a0…5d8c0 52 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 20 20 72 65 67 74 79 70 20 3d 20 52 45 43 4f 52 ┆R; END; regtyp = RECOR┆ 0x5d8c0…5d8e0 44 0d 0a 20 20 20 20 61 78 2c 62 78 2c 63 78 2c 64 78 2c 62 70 2c 73 69 2c 64 69 2c 64 73 2c 65 ┆D ax,bx,cx,dx,bp,si,di,ds,e┆ 0x5d8e0…5d900 73 2c 66 6c 61 67 73 3a 49 4e 54 45 47 45 52 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 6f 70 72 74 79 ┆s,flags:INTEGER END; oprty┆ 0x5d900…5d920 70 65 09 3d 20 28 73 61 76 65 2c 6c 6f 61 64 2c 73 63 72 73 77 61 70 29 3b 0d 0a 20 20 63 68 61 ┆pe = (save,load,scrswap); cha┆ 0x5d920…5d940 72 66 69 6c 74 79 70 65 09 3d 20 41 52 52 41 59 28 2e 30 2e 2e 32 35 35 2e 29 20 4f 46 20 41 52 ┆rfiltype = ARRAY(.0..255.) OF AR┆ 0x5d940…5d960 52 41 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 42 59 54 45 3b 0d 0a 0d 0a 20 20 74 78 74 5f 6c 69 ┆RAY(.0..7.) OF BYTE; txt_li┆ 0x5d960…5d980 6e 65 63 68 61 72 09 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 43 41 53 45 20 42 4f 4f 4c 45 41 ┆nechar = RECORD CASE BOOLEA┆ 0x5d980…5d9a0 4e 20 4f 46 0d 0a 20 20 20 20 20 20 74 72 75 65 3a 20 28 63 68 3a 20 43 48 41 52 3b 20 20 61 74 ┆N OF true: (ch: CHAR; at┆ 0x5d9a0…5d9c0 74 3a 20 42 59 54 45 29 3b 0d 0a 20 20 20 20 20 20 66 61 6c 73 65 3a 28 62 6f 74 68 3a 20 49 4e ┆t: BYTE); false:(both: IN┆ 0x5d9c0…5d9e0 54 45 47 45 52 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 50 72 6e 5f 54 59 50 45 20 20 20 ┆TEGER); END; Prn_TYPE ┆ 0x5d9e0…5da00 20 20 20 3d 20 28 4e 45 43 5f 31 36 62 69 74 2c 4e 45 43 5f 38 62 69 74 29 3b 0d 0a 20 20 70 74 ┆ = (NEC_16bit,NEC_8bit); pt┆ 0x5da00…5da20 72 5f 54 59 50 45 09 3d 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 20 20 74 78 74 5f 6c 69 6e 65 09 3d ┆r_TYPE = ^INTEGER; txt_line =┆ 0x5da20…5da40 20 41 52 52 41 59 28 2e 30 2e 2e 37 39 2e 29 20 4f 46 20 74 78 74 5f 6c 69 6e 65 63 68 61 72 3b ┆ ARRAY(.0..79.) OF txt_linechar;┆ 0x5da40…5da60 0d 0a 20 20 74 78 74 5f 63 68 61 72 73 65 74 20 20 20 3d 20 53 45 54 20 4f 46 20 43 48 41 52 3b ┆ txt_charset = SET OF CHAR;┆ 0x5da60…5da80 0d 0a 20 20 61 6e 79 73 74 72 20 20 20 20 20 20 20 20 3d 20 73 74 72 69 6e 67 5b 32 35 35 5d 3b ┆ anystr = stringÆ255Å;┆ 0x5da80…5daa0 0d 0a 56 41 52 0d 0a 20 20 53 63 72 5f 6d 61 78 78 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 ┆ VAR Scr_maxx : INTEGER; ┆ 0x5daa0…5dac0 53 63 72 5f 6d 61 78 79 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 73 65 67 6d 09 ┆Scr_maxy : INTEGER; Scr_segm ┆ 0x5dac0…5dae0 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 61 73 70 65 63 74 09 3a 20 49 4e 54 45 47 ┆: INTEGER; Scr_aspect : INTEG┆ 0x5dae0…5db00 45 52 3b 0d 0a 20 20 53 63 72 5f 78 61 64 64 72 09 3a 20 41 52 52 41 59 28 2e 30 2e 2e 36 34 30 ┆ER; Scr_xaddr : ARRAY(.0..640┆ 0x5db00…5db20 2e 29 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 79 61 64 64 72 09 3a 20 41 52 ┆.) OF INTEGER; Scr_yaddr : AR┆ 0x5db20…5db40 52 41 59 28 2e 30 2e 2e 34 30 30 2e 29 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 ┆RAY(.0..400.) OF INTEGER; Scr┆ 0x5db40…5db60 5f 42 45 47 49 4e 09 3a 20 5e 49 4e 54 45 47 45 52 3b 0d 0a 0d 0a 20 20 57 6e 64 5f 09 09 3a 20 ┆_BEGIN : ^INTEGER; Wnd_ : ┆ 0x5db60…5db80 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 57 6e 64 5f 70 61 6c 65 74 74 65 20 20 20 3a 20 41 52 52 ┆Wnd_TYPE; Wnd_palette : ARR┆ 0x5db80…5dba0 41 59 28 2e 30 2e 2e 31 35 2e 29 20 4f 46 20 62 79 74 65 3b 0d 0a 20 20 57 6c 64 5f 09 09 3a 20 ┆AY(.0..15.) OF byte; Wld_ : ┆ 0x5dba0…5dbc0 57 6c 64 5f 54 59 50 45 3b 0d 0a 0d 0a 20 20 57 6e 64 5f 61 72 72 09 3a 20 41 52 52 41 59 28 2e ┆Wld_TYPE; Wnd_arr : ARRAY(.┆ 0x5dbc0…5dbe0 31 2e 2e 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 20 20 57 6c 64 ┆1..Wnd_max.) OF Wnd_TYPE; Wld┆ 0x5dbe0…5dc00 5f 61 72 72 09 3a 20 41 52 52 41 59 28 2e 31 2e 2e 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 57 6c ┆_arr : ARRAY(.1..Wnd_max.) OF Wl┆ 0x5dc00…5dc20 (37, 1, 1) 64 5f 54 59 50 45 3b 0d 0a 20 20 53 61 76 65 5f 61 72 72 09 3a 20 41 52 52 41 59 28 2e 31 2e 2e ┆d_TYPE; Save_arr : ARRAY(.1..┆ 0x5dc20…5dc40 57 6e 64 5f 6d 61 78 2e 29 20 4f 46 20 73 61 76 65 5f 54 59 50 45 3b 0d 0a 20 20 57 6e 64 5f 61 ┆Wnd_max.) OF save_TYPE; Wnd_a┆ 0x5dc40…5dc60 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 57 6e 64 5f 43 6f 6c 6f 72 09 3a 20 ┆ctual : INTEGER; Wnd_Color : ┆ 0x5dc60…5dc80 49 4e 54 45 47 45 52 3b 0d 0a 20 20 72 65 67 09 09 3a 20 72 65 67 74 79 70 3b 0d 0a 20 20 53 63 ┆INTEGER; reg : regtyp; Sc┆ 0x5dc80…5dca0 72 5f 73 74 61 72 74 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 53 63 72 5f 43 48 41 52 09 3a ┆r_start : INTEGER; Scr_CHAR :┆ 0x5dca0…5dcc0 20 63 68 61 72 66 69 6c 74 79 70 65 3b 0d 0a 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 09 3a 20 41 ┆ charfiltype; txt_lineptr : A┆ 0x5dcc0…5dce0 52 52 41 59 28 2e 30 2e 2e 32 34 2e 29 20 4f 46 20 5e 74 78 74 5f 6c 69 6e 65 3b 0d 0a 20 20 74 ┆RRAY(.0..24.) OF ^txt_line; t┆ 0x5dce0…5dd00 78 74 5f 6d 61 78 78 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 74 78 74 5f 6d 61 78 79 09 3a ┆xt_maxx : INTEGER; txt_maxy :┆ 0x5dd00…5dd20 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 69 74 6e 72 20 20 20 20 20 20 20 20 20 3a 20 49 4e 54 ┆ INTEGER; Bitnr : INT┆ 0x5dd20…5dd40 45 47 45 52 3b 0d 0a 20 20 4c 69 6e 65 50 61 74 74 65 72 6e 20 20 20 3a 20 42 59 54 45 3b 0d 0a ┆EGER; LinePattern : BYTE; ┆ 0x5dd40…5dd60 20 20 4c 69 6e 65 50 61 74 74 65 72 6e 53 69 7a 65 20 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 ┆ LinePatternSize : INTEGER; ┆ 0x5dd60…5dd80 20 6d 61 72 6b 65 72 73 69 7a 65 20 20 20 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 43 68 48 ┆ markersize : INTEGER; ChH┆ 0x5dd80…5dda0 65 69 67 74 68 20 20 20 20 20 20 3a 20 52 45 41 4c 3b 0d 0a 20 20 43 68 57 69 64 74 68 20 20 20 ┆eigth : REAL; ChWidth ┆ 0x5dda0…5ddc0 20 20 20 20 3a 20 52 45 41 4c 3b 0d 0a 20 20 52 6f 74 61 74 69 6f 6e 20 20 20 20 20 20 3a 20 49 ┆ : REAL; Rotation : I┆ 0x5ddc0…5dde0 4e 54 45 47 45 52 3b 0d 0a 0d 0a 43 4f 4e 53 54 0d 0a 20 20 73 63 72 5f 73 77 61 70 5f 3a 20 6f ┆NTEGER; CONST scr_swap_: o┆ 0x5dde0…5de00 70 72 74 79 70 65 3d 6c 6f 61 64 3b 0d 0a 0d 0a 7b 20 43 53 54 52 20 72 65 74 75 72 6e 73 20 61 ┆prtype=load; æ CSTR returns a┆ 0x5de00…5de20 20 73 74 72 69 6e 67 20 77 69 74 68 20 4e 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 76 61 6c ┆ string with N characters of val┆ 0x5de20…5de40 75 65 20 43 20 7d 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 73 74 72 28 63 3a 20 63 68 61 72 3b ┆ue C å FUNCTION cstr(c: char;┆ 0x5de40…5de60 20 6e 3a 20 69 6e 74 65 67 65 72 29 3a 20 61 6e 79 73 74 72 3b 0d 0a 56 41 52 0d 0a 20 20 73 3a ┆ n: integer): anystr; VAR s:┆ 0x5de60…5de80 20 53 54 52 49 4e 47 5b 32 35 35 5d 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 6e 3c 30 20 54 ┆ STRINGÆ255Å; BEGIN IF n<0 T┆ 0x5de80…5dea0 48 45 4e 20 6e 3a 3d 30 3b 20 73 5b 30 5d 3a 3d 63 68 72 28 6e 29 3b 20 66 69 6c 6c 28 73 5b 31 ┆HEN n:=0; sÆ0Å:=chr(n); fill(sÆ1┆ 0x5dea0…5dec0 5d 2c 6e 2c 63 29 3b 0d 0a 20 20 63 73 74 72 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e ┆Å,n,c); cstr:=s; END; FUN┆ 0x5dec0…5dee0 43 54 49 4f 4e 20 73 70 63 28 6c 3a 20 49 4e 54 45 47 45 52 3b 20 63 68 3a 20 43 48 41 52 29 3a ┆CTION spc(l: INTEGER; ch: CHAR):┆ 0x5dee0…5df00 73 74 72 38 30 3b 0d 0a 56 41 52 20 0d 0a 20 20 73 09 3a 20 73 74 72 38 30 3b 0d 0a 20 20 73 6c ┆str80; VAR s : str80; sl┆ 0x5df00…5df20 67 74 20 20 3a 20 42 59 54 45 20 41 54 20 73 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 6c 67 74 3a ┆gt : BYTE AT s; BEGIN slgt:┆ 0x5df20…5df40 3d 6c 3b 0d 0a 20 20 66 69 6c 6c 28 73 28 2e 31 2e 29 2c 6c 2c 63 68 29 3b 0d 0a 20 20 73 70 63 ┆=l; fill(s(.1.),l,ch); spc┆ 0x5df40…5df60 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 77 61 70 28 56 41 52 ┆:=s; END; PROCEDURE swap(VAR┆ 0x5df60…5df80 20 61 2c 62 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 63 3a 20 49 4e 54 45 47 45 52 3b ┆ a,b: INTEGER); VAR c: INTEGER;┆ 0x5df80…5dfa0 0d 0a 42 45 47 49 4e 0d 0a 20 20 63 3a 3d 61 3b 20 61 3a 3d 62 3b 20 62 3a 3d 63 3b 0d 0a 45 4e ┆ BEGIN c:=a; a:=b; b:=c; EN┆ 0x5dfa0…5dfc0 44 3b 20 0d 0a 20 20 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 74 5f 67 72 61 70 68 69 ┆D; PROCEDURE init_graphi┆ 0x5dfc0…5dfe0 63 73 3b 0d 0a 56 41 52 0d 0a 20 20 53 63 72 5f 4d 4f 44 2c 20 69 3a 20 49 4e 54 45 47 45 52 3b ┆cs; VAR Scr_MOD, i: INTEGER;┆ 0x5dfe0…5e000 0d 0a 20 20 63 68 61 72 66 69 6c 3a 20 46 49 4c 45 20 4f 46 20 63 68 61 72 66 69 6c 74 79 70 65 ┆ charfil: FILE OF charfiltype┆ 0x5e000…5e020 (37, 1, 2) 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 28 2a 20 4f 6c 69 76 65 74 74 69 20 67 72 61 70 68 69 63 73 ┆; BEGIN (* Olivetti graphics┆ 0x5e020…5e040 20 36 34 30 2a 34 30 30 20 70 6f 69 6e 74 73 20 2a 29 0d 0a 20 20 53 63 72 5f 73 65 67 6d 3a 3d ┆ 640*400 points *) Scr_segm:=┆ 0x5e040…5e060 24 42 38 30 30 3b 0d 0a 20 20 53 63 72 5f 4d 4f 44 3a 3d 34 3b 0d 0a 20 20 53 63 72 5f 73 74 61 ┆$B800; Scr_MOD:=4; Scr_sta┆ 0x5e060…5e080 72 74 3a 3d 36 34 3b 0d 0a 20 20 53 63 72 5f 6d 61 78 78 3a 3d 36 33 39 3b 0d 0a 20 20 53 63 72 ┆rt:=64; Scr_maxx:=639; Scr┆ 0x5e080…5e0a0 5f 6d 61 78 79 3a 3d 33 39 39 3b 0d 0a 20 20 53 63 72 5f 61 73 70 65 63 74 3a 3d 31 30 30 3b 20 ┆_maxy:=399; Scr_aspect:=100; ┆ 0x5e0a0…5e0c0 28 2a 53 63 72 5f 61 73 70 65 63 74 3a 3d 31 31 37 3b 2a 29 0d 0a 20 20 74 78 74 5f 6d 61 78 78 ┆(*Scr_aspect:=117;*) txt_maxx┆ 0x5e0c0…5e0e0 3a 3d 37 39 3b 0d 0a 20 20 74 78 74 5f 6d 61 78 79 3a 3d 32 34 3b 0d 0a 20 20 0d 0a 20 20 46 4f ┆:=79; txt_maxy:=24; FO┆ 0x5e0e0…5e100 52 20 69 3a 3d 20 30 20 54 4f 20 53 63 72 5f 6d 61 78 78 20 44 4f 20 53 63 72 5f 78 61 64 64 72 ┆R i:= 0 TO Scr_maxx DO Scr_xaddr┆ 0x5e100…5e120 28 2e 69 2e 29 3a 3d 69 20 44 49 56 20 38 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 20 30 20 54 4f 20 ┆(.i.):=i DIV 8; FOR i:= 0 TO ┆ 0x5e120…5e140 53 63 72 5f 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 53 63 72 5f 79 61 64 64 72 28 2e 53 63 72 5f ┆Scr_maxy DO Scr_yaddr(.Scr_┆ 0x5e140…5e160 6d 61 78 79 2d 69 2e 29 3a 3d 28 28 69 20 4d 4f 44 20 53 63 72 5f 4d 4f 44 29 2a 24 32 30 30 30 ┆maxy-i.):=((i MOD Scr_MOD)*$2000┆ 0x5e160…5e180 29 20 2b 20 28 28 69 20 44 49 56 20 53 63 72 5f 4d 4f 44 29 2a 38 30 29 3b 0d 0a 20 20 61 73 73 ┆) + ((i DIV Scr_MOD)*80); ass┆ 0x5e180…5e1a0 69 67 6e 28 63 68 61 72 66 69 6c 2c 63 68 61 72 66 69 6c 6e 61 6d 65 29 3b 0d 0a 20 20 72 65 73 ┆ign(charfil,charfilname); res┆ 0x5e1a0…5e1c0 65 74 28 63 68 61 72 66 69 6c 29 3b 0d 0a 20 20 72 65 61 64 28 63 68 61 72 66 69 6c 2c 53 63 72 ┆et(charfil); read(charfil,Scr┆ 0x5e1c0…5e1e0 5f 43 48 41 52 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 63 68 61 72 66 69 6c 29 3b 0d 0a 45 4e 44 3b ┆_CHAR); close(charfil); END;┆ 0x5e1e0…5e200 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 69 74 5f 74 65 78 74 3b 0d 0a 56 41 52 20 78 2c ┆ PROCEDURE init_text; VAR x,┆ 0x5e200…5e220 69 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 3a 3d 30 3b 0d 0a 20 20 ┆i : INTEGER; BEGIN x:=0; ┆ 0x5e220…5e240 46 4f 52 20 69 3a 3d 30 20 54 4f 20 32 34 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 ┆FOR i:=0 TO 24 DO BEGIN txt┆ 0x5e240…5e260 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 3a 3d 70 74 72 28 24 42 38 30 30 2c 78 29 3b 0d 0a 20 20 ┆_lineptr(.i.):=ptr($B800,x); ┆ 0x5e260…5e280 20 20 78 3a 3d 78 2b 31 36 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f ┆ x:=x+160; END; END; PRO┆ 0x5e280…5e2a0 43 45 44 55 52 45 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 74 ┆CEDURE graphmode; BEGIN IF t┆ 0x5e2a0…5e2c0 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 78 ┆xt_mode THEN BEGIN txt_maxx┆ 0x5e2c0…5e2e0 3a 3d 53 63 72 5f 6d 61 78 78 20 44 49 56 20 38 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 79 3a ┆:=Scr_maxx DIV 8; txt_maxy:┆ 0x5e2e0…5e300 3d 53 63 72 5f 6d 61 78 79 20 44 49 56 20 38 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 6f 64 65 3a 3d ┆=Scr_maxy DIV 8; txt_mode:=┆ 0x5e300…5e320 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 65 67 2e 61 78 3a 3d 53 63 72 5f 73 74 61 72 74 3b 0d 0a ┆false; reg.ax:=Scr_start; ┆ 0x5e320…5e340 20 20 20 20 73 77 69 6e 74 28 24 31 30 2c 72 65 67 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆ swint($10,reg); END; END┆ 0x5e340…5e360 3b 20 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 42 45 47 49 4e ┆; PROCEDURE textmode; BEGIN┆ 0x5e360…5e380 0d 0a 20 20 49 46 20 4e 4f 54 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a ┆ IF NOT txt_mode THEN BEGIN ┆ 0x5e380…5e3a0 20 20 20 20 74 78 74 5f 6d 61 78 78 3a 3d 37 39 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 61 78 79 3a ┆ txt_maxx:=79; txt_maxy:┆ 0x5e3a0…5e3c0 3d 32 34 3b 0d 0a 20 20 20 20 74 78 74 5f 6d 6f 64 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 72 ┆=24; txt_mode:=true; r┆ 0x5e3c0…5e3e0 65 67 2e 61 78 3a 3d 24 30 33 3b 0d 0a 20 20 20 20 73 77 69 6e 74 28 24 31 30 2c 72 65 67 29 3b ┆eg.ax:=$03; swint($10,reg);┆ 0x5e3e0…5e400 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 ┆ END; END; PROCEDURE wr┆ 0x5e400…5e420 (37, 1, 3) 69 74 65 73 74 72 28 63 6f 6c 2c 72 6f 77 3a 20 49 4e 54 45 47 45 52 3b 20 73 74 72 3a 20 73 74 ┆itestr(col,row: INTEGER; str: st┆ 0x5e420…5e440 72 38 30 29 3b 0d 0a 56 41 52 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e 0d ┆r80); VAR attrib: BYTE; BEGIN ┆ 0x5e440…5e460 0a 20 20 61 74 74 72 69 62 3a 3d 57 6e 64 5f 70 61 6c 65 74 74 65 28 2e 57 6e 64 5f 61 63 74 75 ┆ attrib:=Wnd_palette(.Wnd_actu┆ 0x5e460…5e480 61 6c 2e 29 3b 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 20 24 31 45 2c 24 31 45 2c 24 38 41 2c 24 38 ┆al.); CODE $1E,$1E,$8A,$8┆ 0x5e480…5e4a0 36 2c 72 6f 77 2c 24 42 33 2c 24 35 30 2c 24 46 36 2c 24 45 33 2c 24 32 42 2c 24 44 42 2c 24 38 ┆6,row,$B3,$50,$F6,$E3,$2B,$DB,$8┆ 0x5e4a0…5e4c0 41 2c 24 39 45 2c 63 6f 6c 2c 0d 0a 20 20 20 24 30 33 2c 24 43 33 2c 24 30 33 2c 24 43 30 2c 24 ┆A,$9E,col, $03,$C3,$03,$C0,$┆ 0x5e4c0…5e4e0 38 42 2c 24 46 38 2c 24 42 45 2c 24 30 30 2c 24 30 30 2c 24 38 41 2c 24 42 45 2c 61 74 74 72 69 ┆8B,$F8,$BE,$00,$00,$8A,$BE,attri┆ 0x5e4e0…5e500 62 2c 0d 0a 20 20 20 24 38 41 2c 24 38 45 2c 73 74 72 2c 24 32 32 2c 24 43 39 2c 24 37 34 2c 24 ┆b, $8A,$8E,str,$22,$C9,$74,$┆ 0x5e500…5e520 33 45 2c 24 32 42 2c 24 43 30 2c 24 38 45 2c 24 44 38 2c 24 41 30 2c 24 34 39 2c 24 30 34 2c 0d ┆3E,$2B,$C0,$8E,$D8,$A0,$49,$04, ┆ 0x5e520…5e540 0a 20 20 20 24 31 46 2c 24 32 43 2c 24 30 37 2c 24 37 34 2c 24 32 32 2c 24 42 41 2c 24 30 30 2c ┆ $1F,$2C,$07,$74,$22,$BA,$00,┆ 0x5e540…5e560 24 42 38 2c 24 38 45 2c 24 44 41 2c 24 42 41 2c 24 44 41 2c 24 30 33 2c 24 34 36 2c 0d 0a 20 20 ┆$B8,$8E,$DA,$BA,$DA,$03,$46, ┆ 0x5e560…5e580 20 24 38 41 2c 24 39 41 2c 73 74 72 2c 24 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 35 2c 24 46 42 ┆ $8A,$9A,str,$EC,$A8,$01,$75,$FB┆ 0x5e580…5e5a0 2c 24 46 41 2c 24 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 34 2c 24 46 42 2c 0d 0a 20 20 20 24 38 ┆,$FA,$EC,$A8,$01,$74,$FB, $8┆ 0x5e5a0…5e5c0 39 2c 24 31 44 2c 24 34 37 2c 24 34 37 2c 24 45 32 2c 24 45 41 2c 24 32 41 2c 24 43 30 2c 24 37 ┆9,$1D,$47,$47,$E2,$EA,$2A,$C0,$7┆ 0x5e5c0…5e5e0 34 2c 24 31 30 2c 24 42 41 2c 24 30 30 2c 24 42 30 2c 0d 0a 20 20 20 24 38 45 2c 24 44 41 2c 24 ┆4,$10,$BA,$00,$B0, $8E,$DA,$┆ 0x5e5e0…5e600 34 36 2c 24 38 41 2c 24 39 41 2c 73 74 72 2c 24 38 39 2c 24 31 44 2c 24 34 37 2c 24 34 37 2c 24 ┆46,$8A,$9A,str,$89,$1D,$47,$47,$┆ 0x5e600…5e620 45 32 2c 24 46 35 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 ┆E2,$F5,$1F; END; PROCEDURE S┆ 0x5e620…5e640 63 72 5f 73 65 74 44 6f 74 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d ┆cr_setDot(x,y: INTEGER); BEGIN ┆ 0x5e640…5e660 0a 20 20 57 6e 64 5f 43 6f 6c 6f 72 3a 3d 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 3b 0d 0a 20 20 ┆ Wnd_Color:=Wnd_.pencolor; ┆ 0x5e660…5e680 43 4f 44 45 0d 0a 20 20 24 38 42 2c 24 37 45 2c 24 30 36 2c 24 38 42 2c 24 37 36 2c 24 30 34 2c ┆CODE $8B,$7E,$06,$8B,$76,$04,┆ 0x5e680…5e6a0 24 38 39 2c 24 46 39 2c 24 44 31 2c 24 45 37 2c 24 44 31 2c 24 45 36 2c 24 38 42 2c 24 39 44 2c ┆$89,$F9,$D1,$E7,$D1,$E6,$8B,$9D,┆ 0x5e6a0…5e6c0 3e 53 63 72 5f 78 61 64 64 72 2c 0d 0a 20 20 24 30 33 2c 24 39 43 2c 3e 53 63 72 5f 79 61 64 64 ┆>Scr_xaddr, $03,$9C,>Scr_yadd┆ 0x5e6c0…5e6e0 72 2c 24 38 30 2c 24 45 31 2c 24 30 37 2c 24 42 32 2c 24 38 30 2c 24 44 32 2c 24 45 41 2c 24 38 ┆r,$80,$E1,$07,$B2,$80,$D2,$EA,$8┆ 0x5e6e0…5e700 45 2c 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 41 30 2c 0d 0a 20 20 3e 57 6e 64 5f 63 6f 6c ┆E,$06,>Scr_segm,$A0, >Wnd_col┆ 0x5e700…5e720 6f 72 2c 24 33 43 2c 24 46 46 2c 24 37 35 2c 24 30 35 2c 24 32 36 2c 24 30 38 2c 24 31 37 2c 24 ┆or,$3C,$FF,$75,$05,$26,$08,$17,$┆ 0x5e720…5e740 45 42 2c 24 30 45 2c 24 33 43 2c 24 30 30 2c 24 37 35 2c 24 30 37 2c 24 46 36 2c 0d 0a 20 20 24 ┆EB,$0E,$3C,$00,$75,$07,$F6, $┆ 0x5e740…5e760 44 32 2c 24 32 36 2c 24 32 30 2c 24 31 37 2c 24 45 42 2c 24 30 33 2c 24 32 36 2c 24 33 30 2c 24 ┆D2,$26,$20,$17,$EB,$03,$26,$30,$┆ 0x5e760…5e780 31 37 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 53 63 72 5f 74 ┆17; END; PROCEDURE moveScr_t┆ 0x5e780…5e7a0 6f 6d 65 6d 28 78 2c 79 2c 78 6c 65 6e 3a 20 49 4e 54 45 47 45 52 3b 6b 31 2c 6b 32 3a 20 49 4e ┆omem(x,y,xlen: INTEGER;k1,k2: IN┆ 0x5e7a0…5e7c0 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 24 38 42 2c 24 37 ┆TEGER); BEGIN CODE $8B,$7┆ 0x5e7c0…5e7e0 45 2c 24 30 41 2c 24 44 31 2c 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 61 64 64 72 ┆E,$0A,$D1,$E7,$8B,$85,>Scr_yaddr┆ 0x5e7e0…5e800 2c 24 38 42 2c 24 34 45 2c 24 30 38 2c 24 38 42 2c 24 37 45 2c 24 30 43 2c 24 44 31 2c 0d 0a 20 ┆,$8B,$4E,$08,$8B,$7E,$0C,$D1, ┆ 0x5e800…5e820 (37, 1, 4) 20 24 45 37 2c 24 38 45 2c 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 31 45 2c 24 43 35 2c 24 ┆ $E7,$8E,$06,>Scr_segm,$1E,$C5,$┆ 0x5e820…5e840 37 36 2c 24 30 34 2c 24 38 43 2c 24 44 41 2c 24 38 39 2c 24 43 33 2c 24 31 46 2c 24 30 33 2c 24 ┆76,$04,$8C,$DA,$89,$C3,$1F,$03,$┆ 0x5e840…5e860 39 44 2c 0d 0a 20 20 3e 53 63 72 5f 78 61 64 64 72 2c 24 31 45 2c 24 38 45 2c 24 44 41 2c 24 35 ┆9D, >Scr_xaddr,$1E,$8E,$DA,$5┆ 0x5e860…5e880 31 2c 24 32 36 2c 24 38 41 2c 24 30 46 2c 24 38 38 2c 24 30 43 2c 24 35 39 2c 24 34 36 2c 24 38 ┆1,$26,$8A,$0F,$88,$0C,$59,$46,$8┆ 0x5e880…5e8a0 33 2c 24 43 37 2c 24 31 30 2c 0d 0a 20 20 24 45 32 2c 24 45 39 2c 24 31 46 3b 0d 0a 45 4e 44 3b ┆3,$C7,$10, $E2,$E9,$1F; END;┆ 0x5e8a0…5e8c0 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 6d 65 6d 74 6f 53 63 72 5f 28 78 2c 79 2c ┆ PROCEDURE movememtoScr_(x,y,┆ 0x5e8c0…5e8e0 78 6c 65 6e 3a 20 49 4e 54 45 47 45 52 3b 6b 31 2c 6b 32 3a 49 4e 54 45 47 45 52 29 3b 0d 0a 42 ┆xlen: INTEGER;k1,k2:INTEGER); B┆ 0x5e8e0…5e900 45 47 49 4e 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 44 31 2c ┆EGIN CODE $8B,$7E,$0A,$D1,┆ 0x5e900…5e920 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 38 42 2c 24 34 45 2c 24 ┆$E7,$8B,$85,>Scr_yaddr,$8B,$4E,$┆ 0x5e920…5e940 30 38 2c 24 38 42 2c 24 37 45 2c 24 30 43 2c 24 44 31 2c 0d 0a 20 20 24 45 37 2c 24 38 45 2c 24 ┆08,$8B,$7E,$0C,$D1, $E7,$8E,$┆ 0x5e940…5e960 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 31 45 2c 24 43 35 2c 24 37 36 2c 24 30 34 2c 24 38 43 ┆06,>Scr_segm,$1E,$C5,$76,$04,$8C┆ 0x5e960…5e980 2c 24 44 41 2c 24 38 39 2c 24 43 33 2c 24 31 46 2c 24 30 33 2c 24 39 44 2c 0d 0a 20 20 3e 53 63 ┆,$DA,$89,$C3,$1F,$03,$9D, >Sc┆ 0x5e980…5e9a0 72 5f 78 61 64 64 72 2c 24 31 45 2c 24 38 45 2c 24 44 41 2c 24 35 31 2c 24 38 41 2c 24 30 43 2c ┆r_xaddr,$1E,$8E,$DA,$51,$8A,$0C,┆ 0x5e9a0…5e9c0 24 32 36 2c 24 38 38 2c 24 30 46 2c 24 35 39 2c 24 34 36 2c 24 38 33 2c 24 43 37 2c 24 31 30 2c ┆$26,$88,$0F,$59,$46,$83,$C7,$10,┆ 0x5e9c0…5e9e0 0d 0a 20 20 24 45 32 2c 24 45 39 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 ┆ $E2,$E9,$1F; END; PROCED┆ 0x5e9e0…5ea00 55 52 45 20 66 69 6c 6c 76 69 64 65 6f 6c 69 6e 65 28 78 2c 79 2c 78 6c 65 6e 2c 63 6f 6c 6f 72 ┆URE fillvideoline(x,y,xlen,color┆ 0x5ea00…5ea20 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 24 38 ┆: INTEGER); BEGIN CODE $8┆ 0x5ea20…5ea40 42 2c 24 37 45 2c 24 30 38 2c 24 44 31 2c 24 45 37 2c 24 38 42 2c 24 38 35 2c 3e 53 63 72 5f 79 ┆B,$7E,$08,$D1,$E7,$8B,$85,>Scr_y┆ 0x5ea40…5ea60 61 64 64 72 2c 24 38 42 2c 24 34 45 2c 24 30 36 2c 24 38 42 2c 24 37 45 2c 24 30 41 2c 24 38 45 ┆addr,$8B,$4E,$06,$8B,$7E,$0A,$8E┆ 0x5ea60…5ea80 2c 0d 0a 20 20 24 30 36 2c 3e 53 63 72 5f 73 65 67 6d 2c 24 38 42 2c 24 35 36 2c 24 30 34 2c 24 ┆, $06,>Scr_segm,$8B,$56,$04,$┆ 0x5ea80…5eaa0 38 39 2c 24 43 33 2c 24 38 39 2c 24 46 45 2c 24 44 31 2c 24 45 36 2c 24 30 33 2c 24 39 43 2c 3e ┆89,$C3,$89,$FE,$D1,$E6,$03,$9C,>┆ 0x5eaa0…5eac0 53 63 72 5f 78 61 64 64 72 2c 0d 0a 20 20 24 32 36 2c 24 38 38 2c 24 31 37 2c 24 38 33 2c 24 43 ┆Scr_xaddr, $26,$88,$17,$83,$C┆ 0x5eac0…5eae0 37 2c 24 30 38 2c 24 45 32 2c 24 45 45 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e ┆7,$08,$E2,$EE; END; FUNCTION┆ 0x5eae0…5eb00 20 62 61 73 65 61 64 64 72 28 78 2c 79 3a 20 49 4e 54 45 47 45 52 29 3a 20 49 4e 54 45 47 45 52 ┆ baseaddr(x,y: INTEGER): INTEGER┆ 0x5eb00…5eb20 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 24 38 42 2c 24 37 45 2c 24 30 36 2c ┆; BEGIN CODE $8B,$7E,$06,┆ 0x5eb20…5eb40 24 38 42 2c 24 37 36 2c 24 30 34 2c 24 44 31 2c 24 45 37 2c 24 44 31 2c 24 45 36 2c 24 38 42 2c ┆$8B,$76,$04,$D1,$E7,$D1,$E6,$8B,┆ 0x5eb40…5eb60 24 39 43 2c 3e 53 63 72 5f 79 61 64 64 72 2c 24 30 33 2c 24 39 44 2c 0d 0a 20 20 3e 53 63 72 5f ┆$9C,>Scr_yaddr,$03,$9D, >Scr_┆ 0x5eb60…5eb80 78 61 64 64 72 2c 24 38 39 2c 24 35 45 2c 24 30 38 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 ┆xaddr,$89,$5E,$08; END; FUNC┆ 0x5eb80…5eba0 54 49 4f 4e 20 53 63 72 5f 47 65 74 44 6f 74 28 78 2c 79 3a 49 4e 54 45 47 45 52 29 3a 42 4f 4f ┆TION Scr_GetDot(x,y:INTEGER):BOO┆ 0x5eba0…5ebc0 4c 45 41 4e 3b 0d 0a 56 41 52 20 74 6f 74 61 6c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 ┆LEAN; VAR total: INTEGER; BEGI┆ 0x5ebc0…5ebe0 4e 0d 0a 20 74 6f 74 61 6c 3a 3d 53 63 72 5f 78 61 64 64 72 28 2e 78 2e 29 2b 53 63 72 5f 79 61 ┆N total:=Scr_xaddr(.x.)+Scr_ya┆ 0x5ebe0…5ec00 64 64 72 28 2e 79 2e 29 3b 0d 0a 20 53 63 72 5f 67 65 74 64 6f 74 3a 3d 0d 0a 20 28 57 6e 64 5f ┆ddr(.y.); Scr_getdot:= (Wnd_┆ 0x5ec00…5ec20 (37, 1, 5) 2e 70 65 6e 63 6f 6c 6f 72 3d 62 6c 61 63 6b 29 20 45 58 4f 52 20 28 6d 65 6d 28 2e 53 63 72 5f ┆.pencolor=black) EXOR (mem(.Scr_┆ 0x5ec20…5ec40 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 20 41 4e 44 20 28 31 32 38 20 53 48 52 20 28 78 20 41 4e 44 ┆segm:total.) AND (128 SHR (x AND┆ 0x5ec40…5ec60 20 37 29 29 3c 3e 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 ┆ 7))<>0); END; PROCEDURE Scr┆ 0x5ec60…5ec80 5f 66 69 6c 6c 28 78 31 2c 79 31 2c 78 32 2c 79 32 3a 49 4e 54 45 47 45 52 3b 20 63 6f 6c 6f 72 ┆_fill(x1,y1,x2,y2:INTEGER; color┆ 0x5ec80…5eca0 3a 20 42 59 54 45 29 3b 0d 0a 56 41 52 20 79 2c 6c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 ┆: BYTE); VAR y,l: INTEGER; BEG┆ 0x5eca0…5ecc0 49 4e 0d 0a 20 20 6c 3a 3d 28 78 32 2d 78 31 2b 31 29 20 44 49 56 20 38 3b 0d 0a 20 20 46 4f 52 ┆IN l:=(x2-x1+1) DIV 8; FOR┆ 0x5ecc0…5ece0 20 79 3a 3d 79 31 20 54 4f 20 79 32 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 66 69 6c 6c 76 ┆ y:=y1 TO y2 DO BEGIN fillv┆ 0x5ece0…5ed00 69 64 65 6f 6c 69 6e 65 28 78 31 2c 79 2c 6c 2c 63 6f 6c 6f 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d ┆ideoline(x1,y,l,color); END; ┆ 0x5ed00…5ed20 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 44 72 61 77 63 68 61 72 28 ┆ END; PROCEDURE Scr_Drawchar(┆ 0x5ed20…5ed40 78 2c 79 3a 20 49 4e 54 45 47 45 52 3b 63 68 3a 20 43 48 41 52 29 3b 0d 0a 56 41 52 20 20 74 6f ┆x,y: INTEGER;ch: CHAR); VAR to┆ 0x5ed40…5ed60 74 61 6c 2c 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 3a ┆tal,i: INTEGER; BEGIN FOR i:┆ 0x5ed60…5ed80 3d 30 20 54 4f 20 37 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 6f 74 61 6c 3a 3d 53 63 72 ┆=0 TO 7 DO BEGIN total:=Scr┆ 0x5ed80…5eda0 5f 78 61 64 64 72 28 2e 78 2e 29 2b 53 63 72 5f 79 61 64 64 72 28 2e 79 2d 69 2b 37 2e 29 3b 0d ┆_xaddr(.x.)+Scr_yaddr(.y-i+7.); ┆ 0x5eda0…5edc0 0a 20 20 20 20 43 41 53 45 20 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 20 4f 46 0d 0a 20 20 20 20 ┆ CASE Wnd_.pencolor OF ┆ 0x5edc0…5ede0 77 68 69 74 65 3a 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 ┆white: mem(.Scr_segm:tota┆ 0x5ede0…5ee00 6c 2e 29 3a 3d 53 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 3b 0d 0a 20 20 20 ┆l.):=Scr_CHAR(.ord(ch),i.); ┆ 0x5ee00…5ee20 20 62 6c 61 63 6b 3a 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 ┆ black: mem(.Scr_segm:tot┆ 0x5ee20…5ee40 61 6c 2e 29 3a 3d 20 28 4e 4f 54 20 53 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e ┆al.):= (NOT Scr_CHAR(.ord(ch),i.┆ 0x5ee40…5ee60 29 20 41 4e 44 20 24 46 46 29 3b 0d 0a 20 20 20 20 74 72 61 6e 73 70 3a 0d 0a 20 20 20 20 20 20 ┆) AND $FF); transp: ┆ 0x5ee60…5ee80 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d 20 53 63 72 5f 43 48 41 52 ┆mem(.Scr_segm:total.):= Scr_CHAR┆ 0x5ee80…5eea0 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 20 45 58 4f 52 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d ┆(.ord(ch),i.) EXOR mem(.Scr_segm┆ 0x5eea0…5eec0 3a 74 6f 74 61 6c 2e 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆:total.); END; END; END┆ 0x5eec0…5eee0 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 4c 69 6e 65 54 6f 28 78 78 31 2c 79 79 ┆; PROCEDURE Scr_LineTo(xx1,yy┆ 0x5eee0…5ef00 31 2c 78 78 32 2c 79 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 6c 67 5f ┆1,xx2,yy2: INTEGER); VAR lg_┆ 0x5ef00…5ef20 64 65 6c 74 61 2c 20 73 68 5f 64 65 6c 74 61 2c 20 6c 67 5f 73 74 65 70 2c 20 73 68 5f 73 74 65 ┆delta, sh_delta, lg_step, sh_ste┆ 0x5ef20…5ef40 70 2c 20 63 79 63 6c 65 2c 20 74 6f 74 61 6c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 0d 0a 50 52 4f ┆p, cycle, total: INTEGER; PRO┆ 0x5ef40…5ef60 43 45 44 55 52 45 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 31 3a 69 6e 74 65 ┆CEDURE ScreenSetDot(xx1,yy1:inte┆ 0x5ef60…5ef80 67 65 72 29 3b 0d 0a 20 20 76 61 72 20 62 69 74 3a 62 6f 6f 6c 65 61 6e 3b 0d 0a 42 45 47 49 4e ┆ger); var bit:boolean; BEGIN┆ 0x5ef80…5efa0 0d 0a 20 20 20 20 42 69 74 3a 3d 28 6c 69 6e 65 70 61 74 74 65 72 6e 20 61 6e 64 20 24 38 30 29 ┆ Bit:=(linepattern and $80)┆ 0x5efa0…5efc0 3c 3e 30 3b 0d 0a 20 20 20 20 69 66 20 62 69 74 20 74 68 65 6e 20 53 63 72 5f 73 65 74 44 6f 74 ┆<>0; if bit then Scr_setDot┆ 0x5efc0…5efe0 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 20 20 62 69 74 6e 72 3a 3d 62 69 74 6e 72 2b 31 3b 0d ┆(xx1,yy1); bitnr:=bitnr+1; ┆ 0x5efe0…5f000 0a 20 20 20 20 69 66 20 62 69 74 6e 72 3e 6c 69 6e 65 70 61 74 74 65 72 6e 73 69 7a 65 2d 31 0d ┆ if bitnr>linepatternsize-1 ┆ 0x5f000…5f020 (38, 0, 1) 0a 20 20 20 20 74 68 65 6e 0d 0a 20 20 20 20 42 45 47 49 4e 3b 20 20 20 20 0d 0a 20 20 20 20 20 ┆ then BEGIN; ┆ 0x5f020…5f040 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 28 28 6c 69 6e 65 70 61 74 74 65 72 6e 20 73 68 6c 20 ┆ linepattern:=((linepattern shl ┆ 0x5f040…5f060 31 20 61 6e 64 20 32 35 35 29 20 6f 72 20 28 6c 69 6e 65 70 61 74 74 65 72 6e 20 73 68 72 20 37 ┆1 and 255) or (linepattern shr 7┆ 0x5f060…5f080 29 29 3b 0d 0a 20 20 20 20 20 20 62 69 74 6e 72 3a 3d 30 3b 0d 0a 20 20 20 20 45 4e 44 3b 20 20 ┆)); bitnr:=0; END; ┆ 0x5f080…5f0a0 0d 0a 45 4e 44 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6c 67 5f 64 65 6c 74 61 3a 3d 78 78 32 2d 78 ┆ END; BEGIN lg_delta:=xx2-x┆ 0x5f0a0…5f0c0 78 31 3b 20 73 68 5f 64 65 6c 74 61 3a 3d 79 79 32 2d 79 79 31 3b 0d 0a 20 20 49 46 20 6c 67 5f ┆x1; sh_delta:=yy2-yy1; IF lg_┆ 0x5f0c0…5f0e0 64 65 6c 74 61 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 67 5f 64 65 6c 74 61 ┆delta<0 THEN BEGIN lg_delta┆ 0x5f0e0…5f100 3a 3d 2d 6c 67 5f 64 65 6c 74 61 3b 20 6c 67 5f 73 74 65 70 3a 3d 2d 31 0d 0a 20 20 45 4e 44 20 ┆:=-lg_delta; lg_step:=-1 END ┆ 0x5f100…5f120 45 4c 53 45 20 6c 67 5f 73 74 65 70 3a 3d 31 3b 0d 0a 20 20 49 46 20 73 68 5f 64 65 6c 74 61 3c ┆ELSE lg_step:=1; IF sh_delta<┆ 0x5f120…5f140 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 68 5f 64 65 6c 74 61 3a 3d 2d 73 68 5f ┆0 THEN BEGIN sh_delta:=-sh_┆ 0x5f140…5f160 64 65 6c 74 61 3b 20 73 68 5f 73 74 65 70 3a 3d 2d 31 0d 0a 20 20 45 4e 44 20 45 4c 53 45 20 73 ┆delta; sh_step:=-1 END ELSE s┆ 0x5f160…5f180 68 5f 73 74 65 70 3a 3d 31 3b 0d 0a 20 20 49 46 20 73 68 5f 64 65 6c 74 61 3c 6c 67 5f 64 65 6c ┆h_step:=1; IF sh_delta<lg_del┆ 0x5f180…5f1a0 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 79 63 6c 65 3a 3d 6c 67 5f 64 65 6c ┆ta THEN BEGIN cycle:=lg_del┆ 0x5f1a0…5f1c0 74 61 20 53 48 52 20 32 3b 0d 0a 20 20 20 20 49 66 20 63 79 63 6c 65 3d 30 20 74 68 65 6e 20 63 ┆ta SHR 2; If cycle=0 then c┆ 0x5f1c0…5f1e0 79 63 6c 65 3a 3d 31 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 78 78 31 3c 3e 78 78 32 20 44 4f 20 ┆ycle:=1; WHILE xx1<>xx2 DO ┆ 0x5f1e0…5f200 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 ┆BEGIN ScreenSetDot(xx1,yy┆ 0x5f200…5f220 31 29 3b 0d 0a 20 20 20 20 20 20 78 78 31 3a 3d 78 78 31 2b 6c 67 5f 73 74 65 70 3b 20 63 79 63 ┆1); xx1:=xx1+lg_step; cyc┆ 0x5f220…5f240 6c 65 3a 3d 63 79 63 6c 65 2b 73 68 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 49 46 20 63 79 ┆le:=cycle+sh_delta; IF cy┆ 0x5f240…5f260 63 6c 65 3e 6c 67 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 ┆cle>lg_delta THEN BEGIN ┆ 0x5f260…5f280 20 79 79 31 3a 3d 79 79 31 2b 73 68 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a 3d 63 79 63 6c 65 2d ┆ yy1:=yy1+sh_step; cycle:=cycle-┆ 0x5f280…5f2a0 6c 67 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d ┆lg_delta; END; END; ┆ 0x5f2a0…5f2c0 0a 20 20 20 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 45 ┆ ScreenSetDot(xx1,yy1); E┆ 0x5f2c0…5f2e0 4e 44 0d 0a 20 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 79 63 6c 65 3a 3d 73 68 5f ┆ND ELSE BEGIN cycle:=sh_┆ 0x5f2e0…5f300 64 65 6c 74 61 20 53 48 52 20 32 3b 0d 0a 20 20 20 20 49 66 20 63 79 63 6c 65 3d 30 20 74 68 65 ┆delta SHR 2; If cycle=0 the┆ 0x5f300…5f320 6e 20 63 79 63 6c 65 3a 3d 31 3b 0d 0a 20 20 20 20 73 77 61 70 28 6c 67 5f 64 65 6c 74 61 2c 73 ┆n cycle:=1; swap(lg_delta,s┆ 0x5f320…5f340 68 5f 64 65 6c 74 61 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 6c 67 5f 73 74 65 70 2c 73 68 5f 73 ┆h_delta); swap(lg_step,sh_s┆ 0x5f340…5f360 74 65 70 29 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 79 79 31 3c 3e 79 79 32 20 44 4f 20 42 45 47 ┆tep); WHILE yy1<>yy2 DO BEG┆ 0x5f360…5f380 49 4e 0d 0a 20 20 20 20 20 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 31 29 3b ┆IN ScreenSetDot(xx1,yy1);┆ 0x5f380…5f3a0 0d 0a 20 20 20 20 20 20 79 79 31 3a 3d 79 79 31 2b 6c 67 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a ┆ yy1:=yy1+lg_step; cycle:┆ 0x5f3a0…5f3c0 3d 63 79 63 6c 65 2b 73 68 5f 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 49 46 20 63 79 63 6c 65 ┆=cycle+sh_delta; IF cycle┆ 0x5f3c0…5f3e0 3e 6c 67 5f 64 65 6c 74 61 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 78 78 ┆>lg_delta THEN BEGIN xx┆ 0x5f3e0…5f400 31 3a 3d 78 78 31 2b 73 68 5f 73 74 65 70 3b 20 63 79 63 6c 65 3a 3d 63 79 63 6c 65 2d 6c 67 5f ┆1:=xx1+sh_step; cycle:=cycle-lg_┆ 0x5f400…5f420 (38, 0, 2) 64 65 6c 74 61 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆delta; END; END; ┆ 0x5f420…5f440 20 20 53 63 72 65 65 6e 53 65 74 44 6f 74 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 45 4e 44 3b ┆ ScreenSetDot(xx1,yy1); END;┆ 0x5f440…5f460 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 6f 70 65 72 61 74 69 6f ┆ END; PROCEDURE Scr_operatio┆ 0x5f460…5f480 6e 28 6f 70 72 3a 20 6f 70 72 74 79 70 65 3b 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 3a 20 49 ┆n(opr: oprtype;x1, y1, x2, y2: I┆ 0x5f480…5f4a0 4e 54 45 47 45 52 3b 62 75 66 66 65 72 3a 20 62 75 66 74 79 70 65 29 3b 0d 0a 56 41 52 0d 0a 20 ┆NTEGER;buffer: buftype); VAR ┆ 0x5f4a0…5f4c0 20 69 2c 78 2c 79 2c 79 79 2c 6b 31 2c 6b 32 2c 6c 2c 74 6f 74 61 6c 3a 20 49 4e 54 45 47 45 52 ┆ i,x,y,yy,k1,k2,l,total: INTEGER┆ 0x5f4c0…5f4e0 3b 0d 0a 20 20 73 77 70 62 75 66 3a 20 61 72 72 61 79 28 2e 30 2e 2e 31 30 30 2e 29 20 6f 66 20 ┆; swpbuf: array(.0..100.) of ┆ 0x5f4e0…5f500 62 79 74 65 3b 0d 0a 20 20 62 75 66 70 3a 5e 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 49 4e 0d 0a ┆byte; bufp:^integer; BEGIN ┆ 0x5f500…5f520 20 20 6b 31 3a 3d 6f 66 73 28 62 75 66 66 65 72 5e 29 3b 6b 32 3a 3d 73 65 67 28 62 75 66 66 65 ┆ k1:=ofs(buffer^);k2:=seg(buffe┆ 0x5f520…5f540 72 5e 29 3b 20 6c 3a 3d 28 78 32 2d 78 31 2b 37 29 20 44 49 56 20 38 3b 62 75 66 70 3a 3d 61 64 ┆r^); l:=(x2-x1+7) DIV 8;bufp:=ad┆ 0x5f540…5f560 64 72 28 73 77 70 62 75 66 29 3b 0d 0a 20 20 46 4f 52 20 79 3a 3d 79 31 20 54 4f 20 79 32 20 44 ┆dr(swpbuf); FOR y:=y1 TO y2 D┆ 0x5f560…5f580 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 63 61 73 65 20 6f 70 72 20 6f 66 0d 0a 20 20 20 20 20 20 ┆O BEGIN case opr of ┆ 0x5f580…5f5a0 6c 6f 61 64 3a 20 6d 6f 76 65 6d 65 6d 74 6f 53 63 72 5f 28 78 31 2c 79 2c 6c 2c 6b 32 2c 6b 31 ┆load: movememtoScr_(x1,y,l,k2,k1┆ 0x5f5a0…5f5c0 29 3b 0d 0a 20 20 20 20 20 20 73 61 76 65 3a 20 6d 6f 76 65 53 63 72 5f 74 6f 6d 65 6d 28 78 31 ┆); save: moveScr_tomem(x1┆ 0x5f5c0…5f5e0 2c 79 2c 6c 2c 6b 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 73 63 72 73 77 61 70 3a 0d 0a 20 20 ┆,y,l,k2,k1); scrswap: ┆ 0x5f5e0…5f600 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 73 63 72 5f 74 6f 6d 65 6d ┆ BEGIN movescr_tomem┆ 0x5f600…5f620 28 78 31 2c 79 2c 6c 2c 73 65 67 28 73 77 70 62 75 66 29 2c 6f 66 73 28 73 77 70 62 75 66 29 29 ┆(x1,y,l,seg(swpbuf),ofs(swpbuf))┆ 0x5f620…5f640 3b 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 6d 65 6d 74 6f 73 63 72 5f 28 78 31 2c 79 2c 6c 2c ┆; movememtoscr_(x1,y,l,┆ 0x5f640…5f660 6b 32 2c 6b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 75 66 66 65 72 3a 3d 70 74 72 28 6b 32 2c ┆k2,k1); buffer:=ptr(k2,┆ 0x5f660…5f680 6b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 28 73 77 70 62 75 66 2c 62 75 66 66 65 72 ┆k1); move(swpbuf,buffer┆ 0x5f680…5f6a0 5e 2c 6c 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 6f 74 68 65 72 77 69 ┆^,l); END; otherwi┆ 0x5f6a0…5f6c0 73 65 20 68 61 6c 74 3b 0d 0a 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 6b 31 3a 3d 6b 31 2b ┆se halt; END; k1:=k1+┆ 0x5f6c0…5f6e0 6c 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e ┆l; END; END; PROCEDURE Wn┆ 0x5f6e0…5f700 64 5f 53 65 74 44 6f 74 28 78 2c 20 79 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d ┆d_SetDot(x, y: INTEGER); BEGIN ┆ 0x5f700…5f720 0a 20 20 49 46 20 28 28 78 20 3e 3d 20 30 29 20 41 4e 44 20 28 78 20 3c 3d 20 57 6e 64 5f 2e 4d ┆ IF ((x >= 0) AND (x <= Wnd_.M┆ 0x5f720…5f740 61 78 58 29 29 20 41 4e 44 20 28 28 79 20 3e 3d 20 30 29 20 41 4e 44 20 28 79 20 3c 3d 20 57 6e ┆axX)) AND ((y >= 0) AND (y <= Wn┆ 0x5f740…5f760 64 5f 2e 4d 61 78 59 29 29 20 54 48 45 4e 0d 0a 20 20 20 20 53 63 72 5f 53 65 74 44 6f 74 28 78 ┆d_.MaxY)) THEN Scr_SetDot(x┆ 0x5f760…5f780 20 2b 20 57 6e 64 5f 2e 58 31 2c 20 79 20 2b 20 57 6e 64 5f 2e 59 31 29 0d 0a 45 4e 44 3b 0d 0a ┆ + Wnd_.X1, y + Wnd_.Y1) END; ┆ 0x5f780…5f7a0 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 6f 6e 76 65 72 74 28 78 78 3a 52 45 41 4c 29 3a 49 4e 54 45 ┆ FUNCTION convert(xx:REAL):INTE┆ 0x5f7a0…5f7c0 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 78 78 3e 6d 61 78 69 6e 74 20 54 48 45 4e ┆GER; BEGIN IF xx>maxint THEN┆ 0x5f7c0…5f7e0 20 63 6f 6e 76 65 72 74 3a 3d 6d 61 78 69 6e 74 20 45 4c 53 45 20 49 46 20 78 78 3c 2d 6d 61 78 ┆ convert:=maxint ELSE IF xx<-max┆ 0x5f7e0…5f800 69 6e 74 20 54 48 45 4e 0d 0a 20 20 63 6f 6e 76 65 72 74 3a 3d 2d 6d 61 78 69 6e 74 20 45 4c 53 ┆int THEN convert:=-maxint ELS┆ 0x5f800…5f820 (38, 0, 3) 45 20 63 6f 6e 76 65 72 74 3a 3d 74 72 75 6e 63 28 78 78 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 ┆E convert:=trunc(xx); END; F┆ 0x5f820…5f840 55 4e 43 54 49 4f 4e 20 5f 47 72 4f 75 74 63 6f 64 65 28 78 31 2c 20 79 31 2c 20 4d 61 78 58 2c ┆UNCTION _GrOutcode(x1, y1, MaxX,┆ 0x5f840…5f860 20 4d 61 78 59 3a 20 49 4e 54 45 47 45 52 29 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 56 41 52 20 61 ┆ MaxY: INTEGER): INTEGER; VAR a┆ 0x5f860…5f880 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 31 ┆: BYTE; BEGIN a:=0; IF x1┆ 0x5f880…5f8a0 3e 6d 61 78 78 20 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 30 34 3b 0d 0a 20 20 49 46 20 78 31 ┆>maxx THEN a:=a OR $04; IF x1┆ 0x5f8a0…5f8c0 3c 30 20 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 30 38 3b 0d 0a 20 20 49 46 20 79 31 3e 6d 61 ┆<0 THEN a:=a OR $08; IF y1>ma┆ 0x5f8c0…5f8e0 78 79 20 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 30 31 3b 0d 0a 20 20 49 46 20 79 31 3c 30 20 ┆xy THEN a:=a OR $01; IF y1<0 ┆ 0x5f8e0…5f900 54 48 45 4e 20 61 3a 3d 61 20 4f 52 20 24 30 32 3b 0d 0a 20 20 5f 47 72 4f 75 74 63 6f 64 65 3a ┆THEN a:=a OR $02; _GrOutcode:┆ 0x5f900…5f920 3d 61 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 57 6e 64 5f 43 6c 69 70 4c ┆=a; END; FUNCTION _Wnd_ClipL┆ 0x5f920…5f940 69 6e 65 28 56 41 52 20 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 20 3a 20 49 4e 54 45 47 45 52 ┆ine(VAR x1, y1, x2, y2 : INTEGER┆ 0x5f940…5f960 29 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d 0a 56 41 52 20 64 6f 6e 65 20 3a 20 42 4f 4f 4c 45 41 4e ┆) : BOOLEAN; VAR done : BOOLEAN┆ 0x5f960…5f980 3b 0d 0a 20 20 6f 75 74 63 6f 64 65 31 2c 20 6f 75 74 63 6f 64 65 32 20 3a 20 49 4e 54 45 47 45 ┆; outcode1, outcode2 : INTEGE┆ 0x5f980…5f9a0 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 64 6f 6e 65 20 20 3a 3d 20 46 41 4c 53 45 3b 0d 0a 20 20 ┆R; BEGIN done := FALSE; ┆ 0x5f9a0…5f9c0 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 3a 3d 20 46 41 4c 53 45 3b 0d 0a 20 20 6f 75 74 63 6f ┆_Wnd_ClipLine := FALSE; outco┆ 0x5f9c0…5f9e0 64 65 32 20 3a 3d 20 5f 47 72 4f 75 74 63 6f 64 65 28 78 32 2c 20 79 32 2c 20 57 6e 64 5f 2e 4d ┆de2 := _GrOutcode(x2, y2, Wnd_.M┆ 0x5f9e0…5fa00 61 78 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 29 3b 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 ┆axX, Wnd_.MaxY); REPEAT ┆ 0x5fa00…5fa20 6f 75 74 63 6f 64 65 31 20 3a 3d 20 5f 47 72 4f 75 74 63 6f 64 65 28 78 31 2c 20 79 31 2c 20 20 ┆outcode1 := _GrOutcode(x1, y1, ┆ 0x5fa20…5fa40 57 6e 64 5f 2e 4d 61 78 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 29 3b 0d 0a 20 20 20 20 49 46 20 28 ┆Wnd_.MaxX, Wnd_.MaxY); IF (┆ 0x5fa40…5fa60 6f 75 74 63 6f 64 65 31 20 4f 52 20 6f 75 74 63 6f 64 65 32 29 20 3d 20 30 20 54 48 45 4e 20 42 ┆outcode1 OR outcode2) = 0 THEN B┆ 0x5fa60…5fa80 45 47 49 4e 0d 0a 20 20 20 20 20 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 20 3a 3d 20 54 52 55 ┆EGIN _Wnd_ClipLine := TRU┆ 0x5fa80…5faa0 45 3b 0d 0a 20 20 20 20 20 20 64 6f 6e 65 20 3a 3d 20 54 52 55 45 20 45 4e 44 0d 0a 20 20 20 20 ┆E; done := TRUE END ┆ 0x5faa0…5fac0 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 20 6f 75 74 63 6f 64 65 32 29 ┆ELSE IF (outcode1 AND outcode2)┆ 0x5fac0…5fae0 20 3c 3e 20 30 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 42 45 47 49 4e 20 5f 57 6e 64 5f 43 6c ┆ <> 0 THEN BEGIN _Wnd_Cl┆ 0x5fae0…5fb00 69 70 4c 69 6e 65 20 3a 3d 20 46 41 4c 53 45 3b 20 64 6f 6e 65 20 3a 3d 20 54 52 55 45 0d 0a 20 ┆ipLine := FALSE; done := TRUE ┆ 0x5fb00…5fb20 20 20 20 45 4e 44 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 49 46 20 6f 75 74 63 ┆ END ELSE BEGIN IF outc┆ 0x5fb20…5fb40 6f 64 65 31 20 3d 20 30 20 54 48 45 4e 20 42 45 47 49 4e 20 53 77 61 70 28 6f 75 74 63 6f 64 65 ┆ode1 = 0 THEN BEGIN Swap(outcode┆ 0x5fb40…5fb60 31 2c 6f 75 74 63 6f 64 65 32 29 3b 0d 0a 20 20 20 20 20 20 53 77 61 70 28 78 31 2c 20 78 32 29 ┆1,outcode2); Swap(x1, x2)┆ 0x5fb60…5fb80 3b 0d 0a 20 20 20 20 20 20 53 77 61 70 28 79 31 2c 20 79 32 29 0d 0a 20 20 20 20 20 20 45 4e 44 ┆; Swap(y1, y2) END┆ 0x5fb80…5fba0 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 20 41 4e 44 20 24 30 31 29 20 ┆; IF (outcode1 AND $01) ┆ 0x5fba0…5fbc0 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 78 ┆<> 0 THEN BEGIN x1 := x┆ 0x5fbc0…5fbe0 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 78 32 20 2d 20 78 31 29 20 2a 20 28 28 57 6e 64 5f 2e 4d ┆1 + convert((x2 - x1) * ((Wnd_.M┆ 0x5fbe0…5fc00 61 78 59 20 2d 20 79 31 29 20 2f 20 28 79 32 20 20 2d 20 79 31 29 29 29 3b 0d 0a 20 20 20 20 20 ┆axY - y1) / (y2 - y1))); ┆ 0x5fc00…5fc20 (38, 0, 4) 20 20 20 79 31 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 59 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c ┆ y1 := Wnd_.MaxY END EL┆ 0x5fc20…5fc40 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 24 30 32 29 20 3c 3e 20 30 20 54 48 ┆SE IF (outcode1 AND $02) <> 0 TH┆ 0x5fc40…5fc60 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 63 6f 6e ┆EN BEGIN x1 := x1 + con┆ 0x5fc60…5fc80 76 65 72 74 28 28 78 32 20 2d 20 78 31 29 20 2a 20 28 28 30 2e 30 2d 79 31 29 20 2f 20 28 79 32 ┆vert((x2 - x1) * ((0.0-y1) / (y2┆ 0x5fc80…5fca0 20 2d 20 79 31 29 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 30 0d 0a 20 20 20 20 ┆ - y1))); y1 := 0 ┆ 0x5fca0…5fcc0 20 20 45 4e 44 20 45 4c 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 24 30 34 29 ┆ END ELSE IF (outcode1 AND $04)┆ 0x5fcc0…5fce0 20 3c 3e 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 ┆ <> 0 THEN BEGIN y1 := ┆ 0x5fce0…5fd00 79 31 20 2b 20 63 6f 6e 76 65 72 74 28 28 79 32 20 2d 20 79 31 29 20 2a 20 28 28 57 6e 64 5f 2e ┆y1 + convert((y2 - y1) * ((Wnd_.┆ 0x5fd00…5fd20 4d 61 78 58 20 2d 20 78 31 29 20 2f 20 28 78 32 20 2d 20 78 31 29 29 29 3b 0d 0a 20 20 20 20 20 ┆MaxX - x1) / (x2 - x1))); ┆ 0x5fd20…5fd40 20 20 20 78 31 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 58 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c ┆ x1 := Wnd_.MaxX END EL┆ 0x5fd40…5fd60 53 45 20 49 46 20 28 6f 75 74 63 6f 64 65 31 20 41 4e 44 20 24 30 38 29 20 3c 3e 20 30 20 54 48 ┆SE IF (outcode1 AND $08) <> 0 TH┆ 0x5fd60…5fd80 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 79 31 20 3a 3d 20 79 31 20 2b 20 63 6f 6e ┆EN BEGIN y1 := y1 + con┆ 0x5fd80…5fda0 76 65 72 74 28 28 79 32 20 2d 20 79 31 29 20 2a 28 28 30 2e 30 2d 78 31 29 20 2f 20 28 78 32 20 ┆vert((y2 - y1) *((0.0-x1) / (x2 ┆ 0x5fda0…5fdc0 2d 20 78 31 29 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 78 31 20 3a 3d 20 30 0d 0a 20 20 20 20 20 ┆- x1))); x1 := 0 ┆ 0x5fdc0…5fde0 20 45 4e 44 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 55 4e 54 49 4c 20 64 6f 6e 65 0d 0a 45 4e 44 ┆ END END UNTIL done END┆ 0x5fde0…5fe00 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 4c 69 6e 65 54 6f 28 78 31 2c 20 79 31 ┆; PROCEDURE Wnd_LineTo(x1, y1┆ 0x5fe00…5fe20 2c 20 78 32 2c 20 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 ┆, x2, y2: INTEGER); BEGIN IF┆ 0x5fe20…5fe40 20 5f 57 6e 64 5f 43 6c 69 70 4c 69 6e 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 29 20 54 ┆ _Wnd_ClipLine(x1, y1, x2, y2) T┆ 0x5fe40…5fe60 48 45 4e 0d 0a 20 20 20 20 53 63 72 5f 4c 69 6e 65 54 6f 28 78 31 20 2b 20 57 6e 64 5f 2e 58 31 ┆HEN Scr_LineTo(x1 + Wnd_.X1┆ 0x5fe60…5fe80 2c 20 79 31 20 2b 20 57 6e 64 5f 2e 59 31 2c 20 78 32 20 2b 20 57 6e 64 5f 2e 58 31 2c 0d 0a 20 ┆, y1 + Wnd_.Y1, x2 + Wnd_.X1, ┆ 0x5fe80…5fea0 20 20 20 79 32 20 2b 20 57 6e 64 5f 2e 59 31 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆ y2 + Wnd_.Y1); END; PROCE┆ 0x5fea0…5fec0 44 55 52 45 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 20 ┆DURE Wnd_DrawBox(x1, y1, x2, y2 ┆ 0x5fec0…5fee0 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 20 44 72 61 77 54 6f 70 2c 20 44 72 61 77 42 6f ┆: INTEGER); VAR DrawTop, DrawBo┆ 0x5fee0…5ff00 74 2c 20 44 72 61 77 4c 65 66 74 2c 20 44 72 61 77 52 69 67 68 74 20 3a 20 42 4f 4f 4c 45 41 4e ┆t, DrawLeft, DrawRight : BOOLEAN┆ 0x5ff00…5ff20 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 78 31 20 3e 20 78 32 20 54 48 45 4e 20 53 77 61 70 ┆; BEGIN IF x1 > x2 THEN Swap┆ 0x5ff20…5ff40 28 78 31 2c 20 78 32 29 3b 0d 0a 20 20 49 46 20 79 31 20 3e 20 79 32 20 54 48 45 4e 20 53 77 61 ┆(x1, x2); IF y1 > y2 THEN Swa┆ 0x5ff40…5ff60 70 28 79 31 2c 20 79 32 29 3b 0d 0a 0d 0a 20 20 49 46 20 78 31 20 3e 20 57 6e 64 5f 2e 4d 61 78 ┆p(y1, y2); IF x1 > Wnd_.Max┆ 0x5ff60…5ff80 58 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 49 46 20 79 31 20 3e 20 57 6e 64 5f 2e 4d 61 78 ┆X THEN exit; IF y1 > Wnd_.Max┆ 0x5ff80…5ffa0 59 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 49 46 20 78 32 20 3c 20 30 20 54 48 45 4e 20 65 ┆Y THEN exit; IF x2 < 0 THEN e┆ 0x5ffa0…5ffc0 78 69 74 3b 0d 0a 20 20 49 46 20 79 32 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 0d 0a ┆xit; IF y2 < 0 THEN exit; ┆ 0x5ffc0…5ffe0 20 20 44 72 61 77 54 6f 70 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 44 72 61 77 42 6f 74 20 3a 3d ┆ DrawTop := TRUE; DrawBot :=┆ 0x5ffe0…60000 20 54 52 55 45 3b 0d 0a 20 20 44 72 61 77 4c 65 66 74 20 3a 3d 20 54 52 55 45 3b 0d 0a 20 20 44 ┆ TRUE; DrawLeft := TRUE; D┆ 0x60000…60020 (38, 0, 5) 72 61 77 52 69 67 68 74 20 3a 3d 20 54 52 55 45 3b 0d 0a 0d 0a 20 20 49 46 20 78 31 20 3c 20 30 ┆rawRight := TRUE; IF x1 < 0┆ 0x60020…60040 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 20 3a 3d 20 30 3b 0d 0a 20 20 20 20 44 ┆ THEN BEGIN x1 := 0; D┆ 0x60040…60060 72 61 77 4c 65 66 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 49 46 20 79 ┆rawLeft := FALSE END; IF y┆ 0x60060…60080 31 20 3c 20 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 79 31 20 3a 3d 20 30 3b 0d 0a ┆1 < 0 THEN BEGIN y1 := 0; ┆ 0x60080…600a0 20 20 20 20 44 72 61 77 54 6f 70 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 ┆ DrawTop := FALSE END; ┆ 0x600a0…600c0 49 46 20 78 32 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 ┆IF x2 > Wnd_.MaxX THEN BEGIN ┆ 0x600c0…600e0 20 20 78 32 20 3a 3d 20 57 6e 64 5f 2e 4d 61 78 58 3b 0d 0a 20 20 20 20 44 72 61 77 52 69 67 68 ┆ x2 := Wnd_.MaxX; DrawRigh┆ 0x600e0…60100 74 20 3a 3d 20 46 41 4c 53 45 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 49 46 20 79 32 20 3e 20 57 6e ┆t := FALSE END; IF y2 > Wn┆ 0x60100…60120 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 79 32 20 3a 3d 20 57 6e ┆d_.MaxY THEN BEGIN y2 := Wn┆ 0x60120…60140 64 5f 2e 4d 61 78 59 3b 0d 0a 20 20 20 20 44 72 61 77 42 6f 74 20 3a 3d 20 46 41 4c 53 45 0d 0a ┆d_.MaxY; DrawBot := FALSE ┆ 0x60140…60160 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 78 31 20 3a 3d 20 78 31 20 2b 20 57 6e 64 5f 2e 58 31 3b 0d ┆ END; x1 := x1 + Wnd_.X1; ┆ 0x60160…60180 0a 20 20 78 32 20 3a 3d 20 78 32 20 2b 20 57 6e 64 5f 2e 58 31 3b 0d 0a 20 20 79 31 20 3a 3d 20 ┆ x2 := x2 + Wnd_.X1; y1 := ┆ 0x60180…601a0 28 79 31 20 2b 20 57 6e 64 5f 2e 59 31 29 3b 0d 0a 20 20 79 32 20 3a 3d 20 28 79 32 20 2b 20 57 ┆(y1 + Wnd_.Y1); y2 := (y2 + W┆ 0x601a0…601c0 6e 64 5f 2e 59 31 29 3b 0d 0a 0d 0a 20 20 49 46 20 44 72 61 77 54 6f 70 20 54 48 45 4e 20 53 63 ┆nd_.Y1); IF DrawTop THEN Sc┆ 0x601c0…601e0 72 5f 4c 69 6e 65 54 6f 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 31 29 3b 0d 0a 20 20 49 46 20 ┆r_LineTo(x1, y1, x2, y1); IF ┆ 0x601e0…60200 44 72 61 77 52 69 67 68 74 20 54 48 45 4e 20 53 63 72 5f 4c 69 6e 65 54 6f 28 78 32 2c 20 79 31 ┆DrawRight THEN Scr_LineTo(x2, y1┆ 0x60200…60220 2c 20 78 32 2c 20 79 32 29 3b 0d 0a 20 20 49 46 20 44 72 61 77 42 6f 74 20 54 48 45 4e 20 53 63 ┆, x2, y2); IF DrawBot THEN Sc┆ 0x60220…60240 72 5f 4c 69 6e 65 54 6f 28 78 32 2c 20 79 32 2c 20 78 31 2c 20 79 32 29 3b 0d 0a 20 20 49 46 20 ┆r_LineTo(x2, y2, x1, y2); IF ┆ 0x60240…60260 44 72 61 77 4c 65 66 74 20 54 48 45 4e 20 53 63 72 5f 4c 69 6e 65 54 6f 28 78 31 2c 20 79 32 2c ┆DrawLeft THEN Scr_LineTo(x1, y2,┆ 0x60260…60280 20 78 31 2c 20 79 31 29 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f ┆ x1, y1) END; PROCEDURE Wnd_┆ 0x60280…602a0 44 72 61 77 43 68 61 72 28 78 2c 20 79 20 3a 20 49 4e 54 45 47 45 52 3b 20 63 20 3a 20 43 48 41 ┆DrawChar(x, y : INTEGER; c : CHA┆ 0x602a0…602c0 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 78 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 ┆R); BEGIN IF x < 0 THEN exit┆ 0x602c0…602e0 3b 0d 0a 20 20 49 46 20 28 78 2b 37 29 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 65 ┆; IF (x+7) > Wnd_.MaxX THEN e┆ 0x602e0…60300 78 69 74 3b 0d 0a 20 20 20 49 46 20 79 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 ┆xit; IF y < 0 THEN exit; ┆ 0x60300…60320 20 49 46 20 28 79 2b 37 29 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 65 78 69 74 3b ┆ IF (y+7) > Wnd_.MaxY THEN exit;┆ 0x60320…60340 0d 0a 20 20 53 63 72 5f 44 72 61 77 43 68 61 72 28 28 78 20 2b 20 57 6e 64 5f 2e 58 31 20 2b 20 ┆ Scr_DrawChar((x + Wnd_.X1 + ┆ 0x60340…60360 37 29 20 41 4e 44 20 24 46 46 46 38 2c 20 28 79 20 2b 20 57 6e 64 5f 2e 59 31 29 2c 20 63 29 0d ┆7) AND $FFF8, (y + Wnd_.Y1), c) ┆ 0x60360…60380 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 44 72 61 77 54 65 78 74 28 ┆ END; PROCEDURE Wnd_DrawText(┆ 0x60380…603a0 78 2c 20 79 20 3a 20 49 4e 54 45 47 45 52 3b 20 74 20 3a 73 74 72 38 30 20 29 3b 0d 0a 56 41 52 ┆x, y : INTEGER; t :str80 ); VAR┆ 0x603a0…603c0 20 69 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 20 3a 3d ┆ i : INTEGER; BEGIN FOR i :=┆ 0x603c0…603e0 20 31 20 54 4f 20 6c 65 6e 28 74 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 44 ┆ 1 TO len(t) DO BEGIN Wnd_D┆ 0x603e0…60400 72 61 77 43 68 61 72 28 78 2c 20 79 2c 20 74 5b 69 5d 29 3b 0d 0a 20 20 20 20 78 20 3a 3d 20 78 ┆rawChar(x, y, tÆiÅ); x := x┆ 0x60400…60420 (38, 1, 1) 20 2b 20 38 0d 0a 20 20 45 4e 44 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 69 73 ┆ + 8 END END; FUNCTION is┆ 0x60420…60440 71 72 74 28 61 72 67 3a 20 49 4e 54 45 47 45 52 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 56 41 52 0d ┆qrt(arg: INTEGER):INTEGER; VAR ┆ 0x60440…60460 0a 20 20 6f 64 64 5f 69 6e 74 2c 20 6f 6c 64 5f 61 72 67 2c 20 66 69 72 73 74 5f 73 71 72 74 3a ┆ odd_int, old_arg, first_sqrt:┆ 0x60460…60480 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6f 64 64 5f 69 6e 74 3a 3d 31 3b 20 ┆ INTEGER; BEGIN odd_int:=1; ┆ 0x60480…604a0 6f 6c 64 5f 61 72 67 3a 3d 61 72 67 3b 0d 0a 20 20 57 48 49 4c 45 20 61 72 67 3e 3d 30 20 44 4f ┆old_arg:=arg; WHILE arg>=0 DO┆ 0x604a0…604c0 20 42 45 47 49 4e 0d 0a 20 20 20 20 61 72 67 3a 3d 61 72 67 2d 6f 64 64 5f 69 6e 74 3b 0d 0a 20 ┆ BEGIN arg:=arg-odd_int; ┆ 0x604c0…604e0 20 20 20 6f 64 64 5f 69 6e 74 3a 3d 6f 64 64 5f 69 6e 74 2b 32 3b 0d 0a 20 20 45 4e 44 3b 0d 0a ┆ odd_int:=odd_int+2; END; ┆ 0x604e0…60500 20 20 66 69 72 73 74 5f 73 71 72 74 3a 3d 6f 64 64 5f 69 6e 74 20 53 48 52 20 31 3b 0d 0a 20 20 ┆ first_sqrt:=odd_int SHR 1; ┆ 0x60500…60520 49 46 20 73 71 72 28 66 69 72 73 74 5f 73 71 72 74 29 2d 66 69 72 73 74 5f 73 71 72 74 2b 31 3e ┆IF sqr(first_sqrt)-first_sqrt+1>┆ 0x60520…60540 6f 6c 64 5f 61 72 67 20 54 48 45 4e 0d 0a 20 20 20 20 69 73 71 72 74 3a 3d 66 69 72 73 74 5f 73 ┆old_arg THEN isqrt:=first_s┆ 0x60540…60560 71 72 74 2d 31 20 45 4c 53 45 20 69 73 71 72 74 3a 3d 66 69 72 73 74 5f 73 71 72 74 3b 0d 0a 45 ┆qrt-1 ELSE isqrt:=first_sqrt; E┆ 0x60560…60580 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 43 69 72 63 6c 65 28 63 78 2c 20 ┆ND; PROCEDURE Wnd_Circle(cx, ┆ 0x60580…605a0 63 79 2c 20 72 61 64 69 75 73 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 61 2c ┆cy, radius: INTEGER); VAR a,┆ 0x605a0…605c0 20 61 66 2c 20 62 2c 20 62 66 2c 20 74 61 72 67 65 74 2c 20 72 32 3a 20 49 4e 54 45 47 45 52 3b ┆ af, b, bf, target, r2: INTEGER;┆ 0x605c0…605e0 0d 0a 42 45 47 49 4e 0d 0a 20 20 74 61 72 67 65 74 3a 3d 30 3b 20 61 3a 3d 20 72 61 64 69 75 73 ┆ BEGIN target:=0; a:= radius┆ 0x605e0…60600 3b 20 62 3a 3d 30 3b 20 72 32 3a 3d 73 71 72 28 72 61 64 69 75 73 29 3b 0d 0a 20 20 57 48 49 4c ┆; b:=0; r2:=sqr(radius); WHIL┆ 0x60600…60620 45 20 61 3e 3d 62 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 62 3a 3d 69 73 71 72 74 28 72 32 ┆E a>=b DO BEGIN b:=isqrt(r2┆ 0x60620…60640 20 2d 20 73 71 72 28 61 29 29 3b 0d 0a 20 20 20 20 73 77 61 70 28 74 61 72 67 65 74 2c 20 62 29 ┆ - sqr(a)); swap(target, b)┆ 0x60640…60660 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 62 3c 74 61 72 67 65 74 20 44 4f 20 42 45 47 49 4e 0d 0a ┆; WHILE b<target DO BEGIN ┆ 0x60660…60680 20 20 20 20 20 20 61 66 3a 3d 53 63 72 5f 61 73 70 65 63 74 2a 61 20 44 49 56 20 31 30 30 3b 20 ┆ af:=Scr_aspect*a DIV 100; ┆ 0x60680…606a0 62 66 3a 3d 53 63 72 5f 61 73 70 65 63 74 2a 62 20 44 49 56 20 31 30 30 3b 0d 0a 20 20 20 20 20 ┆bf:=Scr_aspect*b DIV 100; ┆ 0x606a0…606c0 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2b 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f 53 65 74 ┆ Wnd_SetDot(cx+af,cy+b); Wnd_Set┆ 0x606c0…606e0 44 6f 74 28 63 78 2b 62 66 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 ┆Dot(cx+bf,cy+a); Wnd_SetD┆ 0x606e0…60700 6f 74 28 63 78 2d 61 66 2c 63 79 2b 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2d 62 66 ┆ot(cx-af,cy+b); Wnd_SetDot(cx-bf┆ 0x60700…60720 2c 63 79 2b 61 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2d 61 66 2c ┆,cy+a); Wnd_SetDot(cx-af,┆ 0x60720…60740 63 79 2d 62 29 3b 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2d 62 66 2c 63 79 2d 61 29 3b 0d 0a ┆cy-b); Wnd_SetDot(cx-bf,cy-a); ┆ 0x60740…60760 20 20 20 20 20 20 57 6e 64 5f 53 65 74 44 6f 74 28 63 78 2b 61 66 2c 63 79 2d 62 29 3b 20 57 6e ┆ Wnd_SetDot(cx+af,cy-b); Wn┆ 0x60760…60780 64 5f 53 65 74 44 6f 74 28 63 78 2b 62 66 2c 63 79 2d 61 29 3b 0d 0a 20 20 20 20 20 20 62 3a 3d ┆d_SetDot(cx+bf,cy-a); b:=┆ 0x60780…607a0 62 2b 31 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 61 3a 3d 61 2d 31 3b 0d 0a 20 20 45 ┆b+1; END; a:=a-1; E┆ 0x607a0…607c0 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 5f 57 6c 64 5f 54 6f 57 69 6e ┆ND; END; FUNCTION _Wld_ToWin┆ 0x607c0…607e0 64 6f 77 58 28 78 20 3a 20 52 45 41 4c 29 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e ┆dowX(x : REAL) : INTEGER; BEGIN┆ 0x607e0…60800 0d 0a 20 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 20 3a 3d 20 63 6f 6e 76 65 72 74 28 28 28 ┆ _Wld_ToWindowX := convert(((┆ 0x60800…60820 (38, 1, 2) 02 04 00 00 00 00 7f 00 45 4d 50 3a 4e 4d 42 52 00 00 00 4e 03 b9 70 00 4c 41 53 54 00 00 00 00 ┆ EMP:NMBR N p LAST ┆ 0x60820…60840 00 00 00 43 0a bc 70 00 46 49 52 53 54 00 00 00 00 00 00 43 0a c6 70 00 41 44 44 52 00 00 00 00 ┆ C p FIRST C p ADDR ┆ 0x60840…60860 00 00 00 43 14 d0 70 00 43 49 54 59 00 00 00 00 00 00 00 43 0f e4 70 00 5a 49 50 3a 43 4f 44 45 ┆ C p CITY C p ZIP:CODE┆ 0x60860…60880 00 00 00 43 0a f3 70 00 50 48 4f 4e 45 00 00 00 00 00 00 43 09 fd 70 00 53 53 4e 00 00 00 00 00 ┆ C p PHONE C p SSN ┆ 0x60880…608a0 00 00 00 43 0b 06 71 00 48 49 52 45 44 41 54 45 00 00 00 43 08 11 71 00 54 45 52 4d 44 41 54 45 ┆ C q HIREDATE C q TERMDATE┆ 0x608a0…608c0 00 00 00 43 08 19 71 00 43 4c 41 53 53 00 00 00 00 00 00 43 03 21 71 00 44 45 50 54 00 00 00 00 ┆ C q CLASS C !q DEPT ┆ 0x608c0…608e0 00 00 00 43 03 24 71 00 50 41 59 52 41 54 45 00 00 00 00 4e 08 27 71 03 53 54 41 52 54 3a 50 41 ┆ C $q PAYRATE N 'q START:PA┆ 0x608e0…60900 59 00 00 4e 08 2f 71 03 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆Y N /q ┆ 0x60900…60920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x7…] 0x60a00…60a20 00 00 00 00 00 00 00 00 00 20 20 20 36 44 6f 6e 73 20 20 20 20 20 20 4a 61 6e 20 20 20 20 20 20 ┆ 6Dons Jan ┆ 0x60a20…60a40 20 6f 74 69 63 6f 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 70 68 20 20 20 20 20 20 20 20 ┆ oticon cph ┆ 0x60a40…60a60 20 20 20 20 32 31 30 30 20 2d 20 20 20 20 32 32 36 2d 35 39 34 34 20 34 30 33 2d 36 35 2d 35 39 ┆ 2100 - 226-5944 403-65-59┆ 0x60a60…60a80 35 33 31 31 2f 31 31 2f 38 33 30 34 2f 30 32 2f 38 34 31 32 32 32 32 33 32 30 30 30 2e 30 30 30 ┆5311/11/8304/02/841222232000.000┆ 0x60a80…60aa0 32 30 30 30 2e 30 30 30 20 20 20 37 4f 6c 73 65 6e 20 20 20 20 20 55 6c 6c 61 20 20 20 20 20 20 ┆2000.000 7Olsen Ulla ┆ 0x60aa0…60ac0 42 69 73 70 65 76 61 6e 67 65 6e 20 36 2c 31 33 2c 74 68 20 42 61 6c 6c 65 72 75 70 20 20 20 20 ┆Bispevangen 6,13,th Ballerup ┆ 0x60ac0…60ae0 20 20 20 32 37 35 30 20 2d 20 20 20 20 36 35 35 2d 39 37 36 20 20 30 31 30 2d 38 36 2d 30 30 37 ┆ 2750 - 655-976 010-86-007┆ 0x60ae0…60b00 38 30 38 2f 30 31 2f 38 34 30 34 2f 30 32 2f 38 34 31 32 35 31 30 30 38 32 30 30 2e 30 30 30 38 ┆808/01/8404/02/841251008200.0008┆ 0x60b00…60b20 32 30 30 2e 30 30 30 20 20 20 38 4c 69 6e 6e 65 6d 61 6e 6e 20 41 6e 65 74 74 65 20 20 20 20 5c ┆200.000 8Linnemann Anette Ø┆ 0x60b20…60b40 73 74 62 61 6e 65 67 61 64 65 20 39 2c 35 2c 38 20 20 20 6b 7c 62 65 6e 68 61 76 6e 20 5c 20 20 ┆stbanegade 9,5,8 københavn Ø ┆ 0x60b40…60b60 20 20 32 31 30 30 20 2d 20 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 20 2d 20 20 2d 20 20 20 20 ┆ 2100 - - - - ┆ 0x60b60…60b80 31 32 2f 30 31 2f 38 34 20 20 2f 20 20 2f 20 20 36 36 20 31 30 30 39 30 30 30 2e 30 30 30 39 30 ┆12/01/84 / / 66 1009000.00090┆ 0x60b80…60ba0 30 30 2e 30 30 30 20 20 20 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆00.000 9 ┆ 0x60ba0…60bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x60bc0…60be0 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 20 2d 20 20 2d 20 20 20 20 31 ┆ - - - - 1┆ 0x60be0…60c00 30 2f 31 30 2f 38 34 30 34 2f 30 32 2f 38 34 20 20 20 20 20 20 20 20 20 30 2e 30 30 30 20 20 20 ┆0/10/8404/02/84 0.000 ┆ 0x60c00…60c20 (38, 1, 3) 30 2e 30 30 30 1a 32 34 2f 38 33 20 20 66 6f 72 20 41 73 68 74 6f 6e 2d 54 61 74 65 20 20 20 20 ┆0.000 24/83 for Ashton-Tate ┆ 0x60c20…60c40 62 79 20 6a 6f 65 20 73 74 65 67 6d 61 6e 0d 0a 2a 20 20 20 20 44 65 6d 6f 6e 73 74 72 61 74 69 ┆by joe stegman * Demonstrati┆ 0x60c40…60c60 6f 6e 20 70 72 6f 67 72 61 6d 20 45 4d 50 4c 4f 59 45 45 20 41 44 44 2e 20 20 45 4d 50 2d 45 4e ┆on program EMPLOYEE ADD. EMP-EN┆ 0x60c60…60c80 54 52 2e 43 4d 44 0d 0a 2a 0d 0a 2a 20 20 45 6d 70 6c 6f 79 65 65 20 65 6e 74 72 79 20 72 6f 75 ┆TR.CMD * * Employee entry rou┆ 0x60c80…60ca0 74 69 6e 65 2e 2e 2e 20 20 75 73 65 20 74 68 65 20 65 6d 70 73 63 72 6e 20 66 6f 72 6d 61 74 20 ┆tine... use the empscrn format ┆ 0x60ca0…60cc0 73 63 72 65 65 6e 20 61 73 20 74 68 65 20 65 6e 74 72 79 20 66 6f 72 6d 61 74 0d 0a 2a 0d 0a 2a ┆screen as the entry format * *┆ 0x60cc0…60ce0 20 20 20 74 68 65 20 65 6d 70 6c 6f 79 65 65 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 61 73 6c 6f ┆ the employee file should aslo┆ 0x60ce0…60d00 20 62 65 20 69 6e 64 65 78 65 64 20 6f 6e 20 74 68 65 20 64 65 70 74 2b 63 6c 61 73 73 2b 65 6d ┆ be indexed on the dept+class+em┆ 0x60d00…60d20 70 6c 6f 79 65 65 20 6e 61 6d 65 0d 0a 2a 20 20 20 74 68 69 73 20 77 69 6c 6c 20 61 6c 6c 6f 77 ┆ployee name * this will allow┆ 0x60d20…60d40 20 74 68 65 20 65 6d 70 6c 6f 79 65 65 20 64 61 74 61 20 74 6f 20 62 65 20 72 65 70 6f 72 74 65 ┆ the employee data to be reporte┆ 0x60d40…60d60 64 20 69 6e 20 74 68 61 74 20 6f 72 64 65 72 0d 0a 2a 0d 0a 2a 20 20 20 74 68 69 73 20 73 61 6d ┆d in that order * * this sam┆ 0x60d60…60d80 70 6c 65 20 70 72 6f 67 72 61 6d 20 75 73 65 73 20 61 20 66 6f 72 6d 61 74 20 73 63 72 65 65 6e ┆ple program uses a format screen┆ 0x60d80…60da0 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 65 64 69 74 0d 0a 2a ┆ in conjunction with the edit *┆ 0x60da0…60dc0 20 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 65 6e 74 65 72 69 6e 67 20 74 68 65 20 65 6d 70 6c 6f ┆ command for entering the emplo┆ 0x60dc0…60de0 79 65 65 20 64 61 74 61 2e 0d 0a 2a 0d 0a 2a 20 20 4c 6f 63 61 6c 20 6d 65 6d 6f 72 79 20 76 61 ┆yee data. * * Local memory va┆ 0x60de0…60e00 72 69 61 62 6c 65 73 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 20 77 ┆riables for the function start w┆ 0x60e00…60e20 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 73 63 72 5f 73 77 61 70 5f 20 3d 73 63 72 ┆GIN if scr_swap_ =scr┆ 0x60e20…60e40 73 77 61 70 20 74 68 65 6e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 3a ┆swap then BEGIN bo:┆ 0x60e40…60e60 3d 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 6f 74 68 3b 0d 0a 20 ┆=txt_lineptr(.i.)^(.j.).both; ┆ 0x60e60…60e80 20 20 20 20 20 20 20 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e ┆ txt_lineptr(.i.)^(.j.┆ 0x60e80…60ea0 29 2e 62 6f 74 68 3a 3d 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3b 0d 0a ┆).both:=memw(.adrseg:adrofs.); ┆ 0x60ea0…60ec0 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e ┆ memw(.adrseg:adrofs.┆ 0x60ec0…60ee0 29 3a 3d 62 6f 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 0d 0a 20 20 20 20 ┆):=bo; END ELSE ┆ 0x60ee0…60f00 20 20 20 20 20 20 20 20 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 69 2e 29 5e 28 2e 6a 2e 29 2e 62 ┆ txt_lineptr(.i.)^(.j.).b┆ 0x60f00…60f20 6f 74 68 3a 3d 6d 65 6d 77 28 2e 61 64 72 73 65 67 3a 61 64 72 6f 66 73 2e 29 3b 0d 0a 20 20 20 ┆oth:=memw(.adrseg:adrofs.); ┆ 0x60f20…60f40 20 20 20 20 20 20 20 61 64 72 6f 66 73 3a 3d 61 64 72 6f 66 73 2b 32 3b 0d 0a 20 20 20 20 20 20 ┆ adrofs:=adrofs+2; ┆ 0x60f40…60f60 20 20 45 4e 44 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 42 45 47 49 4e 0d ┆ END; END ELSE BEGIN ┆ 0x60f60…60f80 0a 20 20 20 20 20 20 20 53 63 72 5f 6f 70 65 72 61 74 69 6f 6e 28 73 63 72 5f 73 77 61 70 5f 2c ┆ Scr_operation(scr_swap_,┆ 0x60f80…60fa0 78 31 2c 20 79 31 2c 20 6d 61 78 78 2b 78 31 2c 20 6d 61 78 79 2b 79 31 2c 63 6f 6e 74 65 6e 74 ┆x1, y1, maxx+x1, maxy+y1,content┆ 0x60fa0…60fc0 29 3b 0d 0a 20 20 20 20 20 20 20 57 6c 64 5f 2e 78 6f 6c 64 3a 3d 6f 6c 64 31 3b 20 57 6c 64 5f ┆); Wld_.xold:=old1; Wld_┆ 0x60fc0…60fe0 2e 79 6f 6c 64 3a 3d 6f 6c 64 32 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 49 46 20 6e ┆.yold:=old2; END; IF n┆ 0x60fe0…61000 6f 3c 30 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 72 65 6c 65 61 73 65 28 63 6f ┆o<0 THEN BEGIN release(co┆ 0x61000…61020 (38, 1, 4) 6e 74 65 6e 74 29 3b 63 6f 6e 74 65 6e 74 3a 3d 4e 49 4c 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆ntent);content:=NIL END; ┆ 0x61020…61040 20 20 20 57 6e 64 5f 3a 3d 77 69 6e 64 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 57 49 54 48 20 57 ┆ Wnd_:=wind; END; WITH W┆ 0x61040…61060 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 3b 0d 0a 20 20 20 ┆nd_ DO BEGIN x1:=x1+x; ┆ 0x61060…61080 20 79 31 3a 3d 79 31 2b 79 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 74 78 74 78 31 2b 78 3b 0d ┆ y1:=y1+y; txtx1:=txtx1+x; ┆ 0x61080…610a0 0a 20 20 20 20 74 78 74 79 31 3a 3d 74 78 74 79 31 2b 79 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 28 2a ┆ txty1:=txty1+y; END; (*┆ 0x610a0…610c0 20 20 73 61 76 65 5f 61 72 72 28 2e 6e 6f 32 2e 29 2e 77 69 6e 64 3a 3d 57 6e 64 5f 3b 2a 29 0d ┆ save_arr(.no2.).wind:=Wnd_;*) ┆ 0x610c0…610e0 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 3a 3d 6e 6f 32 3b 0d 0a 20 20 73 63 72 5f 73 77 61 70 5f ┆ Wnd_actual:=no2; scr_swap_┆ 0x610e0…61100 3a 3d 6c 6f 61 64 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 77 61 70 57 69 ┆:=load END; PROCEDURE SwapWi┆ 0x61100…61120 6e 64 6f 77 28 6e 6f 2c 78 2c 79 3a 69 6e 74 65 67 65 72 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆ndow(no,x,y:integer); BEGIN ┆ 0x61120…61140 73 63 72 5f 73 77 61 70 5f 3a 3d 73 63 72 73 77 61 70 3b 0d 0a 20 20 6c 6f 61 64 57 69 6e 64 6f ┆scr_swap_:=scrswap; loadWindo┆ 0x61140…61160 77 28 6e 6f 2c 78 2c 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6c ┆w(no,x,y); END; PROCEDURE Wl┆ 0x61160…61180 64 52 61 6e 67 65 28 6e 6f 3a 20 49 4e 54 45 47 45 52 3b 20 78 78 31 2c 20 78 78 32 2c 20 79 79 ┆dRange(no: INTEGER; xx1, xx2, yy┆ 0x61180…611a0 31 2c 20 79 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 ┆1, yy2 : REAL); BEGIN WITH W┆ 0x611a0…611c0 6c 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 58 31 20 3a 3d ┆ld_arr(.no.) DO BEGIN X1 :=┆ 0x611c0…611e0 20 78 78 31 3b 0d 0a 20 20 20 20 59 31 20 3a 3d 20 79 79 31 3b 0d 0a 20 20 20 20 58 4f 6c 64 3a ┆ xx1; Y1 := yy1; XOld:┆ 0x611e0…61200 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 4f 6c 64 3a 3d 20 79 79 31 3b 0d 0a 20 20 20 20 58 52 61 ┆= xx1; YOld:= yy1; XRa┆ 0x61200…61220 6e 67 65 20 3a 3d 20 78 78 32 20 2d 20 78 78 31 20 3b 0d 0a 20 20 20 20 59 52 61 6e 67 65 20 3a ┆nge := xx2 - xx1 ; YRange :┆ 0x61220…61240 3d 20 79 79 32 20 2d 20 79 79 31 20 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆= yy2 - yy1 END; END; PR┆ 0x61240…61260 4f 43 45 44 55 52 45 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 6e 6f 3a 20 49 4e 54 45 47 ┆OCEDURE SelectWldRange(no: INTEG┆ 0x61260…61280 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6c 64 5f 3a 3d 57 6c 64 5f 61 72 72 28 2e 6e 6f ┆ER); BEGIN Wld_:=Wld_arr(.no┆ 0x61280…612a0 2e 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 69 6e 64 6f 77 28 6e 6f ┆.); END; PROCEDURE Window(no┆ 0x612a0…612c0 2c 20 78 78 31 2c 20 78 78 32 2c 20 79 79 31 2c 20 79 79 32 3a 20 49 4e 54 45 47 45 52 29 3b 0d ┆, xx1, xx2, yy1, yy2: INTEGER); ┆ 0x612c0…612e0 0a 56 41 52 20 63 68 3a 20 43 48 41 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 78 31 20 3a 3d 20 ┆ VAR ch: CHAR; BEGIN xx1 := ┆ 0x612e0…61300 28 78 78 31 20 2b 20 37 29 20 41 4e 44 20 24 66 66 66 38 3b 0d 0a 20 20 78 78 32 20 3a 3d 20 28 ┆(xx1 + 7) AND $fff8; xx2 := (┆ 0x61300…61320 28 78 78 32 20 2b 20 37 29 20 41 4e 44 20 24 66 66 66 38 29 2d 31 3b 0d 0a 20 20 49 46 20 78 78 ┆(xx2 + 7) AND $fff8)-1; IF xx┆ 0x61320…61340 31 3c 30 20 54 48 45 4e 20 78 78 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 78 32 3e 53 63 72 5f 6d ┆1<0 THEN xx1:=0; IF xx2>Scr_m┆ 0x61340…61360 61 78 78 20 54 48 45 4e 20 78 78 32 3a 3d 53 63 72 5f 6d 61 78 78 3b 0d 0a 20 20 49 46 20 79 79 ┆axx THEN xx2:=Scr_maxx; IF yy┆ 0x61360…61380 31 3c 30 20 54 48 45 4e 20 79 79 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 79 79 32 3e 53 63 72 5f 6d ┆1<0 THEN yy1:=0; IF yy2>Scr_m┆ 0x61380…613a0 61 78 79 20 54 48 45 4e 20 79 79 32 3a 3d 53 63 72 5f 6d 61 78 79 3b 0d 0a 20 20 49 46 20 79 79 ┆axy THEN yy2:=Scr_maxy; IF yy┆ 0x613a0…613c0 31 3e 79 79 32 20 54 48 45 4e 20 73 77 61 70 28 79 79 31 2c 79 79 32 29 3b 0d 0a 20 20 49 46 20 ┆1>yy2 THEN swap(yy1,yy2); IF ┆ 0x613c0…613e0 78 78 31 3e 78 78 32 20 54 48 45 4e 20 73 77 61 70 28 78 78 31 2c 79 79 31 29 3b 0d 0a 20 20 57 ┆xx1>xx2 THEN swap(xx1,yy1); W┆ 0x613e0…61400 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆ITH Wnd_arr(.no.) DO BEGIN ┆ 0x61400…61420 (38, 1, 5) 58 31 20 3a 3d 20 78 78 31 3b 0d 0a 20 20 20 20 59 31 20 3a 3d 20 79 79 31 3b 0d 0a 20 20 20 20 ┆X1 := xx1; Y1 := yy1; ┆ 0x61420…61440 4d 61 78 58 20 3a 3d 20 78 78 32 20 2d 20 78 78 31 20 3b 0d 0a 20 20 20 20 4d 61 78 59 20 3a 3d ┆MaxX := xx2 - xx1 ; MaxY :=┆ 0x61440…61460 20 79 79 32 20 2d 20 79 79 31 20 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆ yy2 - yy1 ; END; END; PR┆ 0x61460…61480 4f 43 45 44 55 52 45 20 57 69 6e 64 6f 77 43 6f 6c 6f 72 28 6e 6f 2c 20 66 63 6f 6c 6f 72 2c 20 ┆OCEDURE WindowColor(no, fcolor, ┆ 0x61480…614a0 62 63 6f 6c 6f 72 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 ┆bcolor: INTEGER); BEGIN WITH┆ 0x614a0…614c0 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 70 65 6e ┆ Wnd_arr(.no.) DO BEGIN pen┆ 0x614c0…614e0 63 6f 6c 6f 72 3a 3d 66 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 62 61 63 6b 63 6f 6c 6f 72 3a 3d 62 ┆color:=fcolor; backcolor:=b┆ 0x614e0…61500 63 6f 6c 6f 72 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆color; END; END; PROCEDUR┆ 0x61500…61520 45 20 57 69 6e 64 6f 77 48 65 61 64 65 72 28 6e 6f 3a 20 49 4e 54 45 47 45 52 3b 20 68 3a 20 73 ┆E WindowHeader(no: INTEGER; h: s┆ 0x61520…61540 74 72 38 30 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 2e 68 ┆tr80); BEGIN Wnd_arr(.no.).h┆ 0x61540…61560 64 72 3a 3d 68 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 65 6c 65 63 74 ┆dr:=h; END; PROCEDURE Select┆ 0x61560…61580 57 69 6e 64 6f 77 28 6e 6f 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 ┆Window(no: INTEGER); BEGIN W┆ 0x61580…615a0 6e 64 5f 3a 3d 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 3b 0d 0a 20 20 57 6e 64 5f 61 63 74 75 61 ┆nd_:=Wnd_arr(.no.); Wnd_actua┆ 0x615a0…615c0 6c 3a 3d 6e 6f 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 54 65 78 74 57 69 ┆l:=no; END; PROCEDURE TextWi┆ 0x615c0…615e0 6e 64 6f 77 28 6e 6f 2c 20 78 78 31 2c 20 78 78 32 2c 20 79 79 31 2c 20 79 79 32 3a 20 49 4e 54 ┆ndow(no, xx1, xx2, yy1, yy2: INT┆ 0x615e0…61600 45 47 45 52 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 78 78 32 3c 78 78 31 20 54 48 45 4e ┆EGER); BEGIN IF xx2<xx1 THEN┆ 0x61600…61620 20 68 61 6c 74 3b 0d 0a 20 20 49 46 20 79 79 32 3c 79 79 31 20 54 48 45 4e 20 68 61 6c 74 3b 0d ┆ halt; IF yy2<yy1 THEN halt; ┆ 0x61620…61640 0a 20 20 49 46 20 78 78 31 3c 30 20 54 48 45 4e 20 78 78 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 79 ┆ IF xx1<0 THEN xx1:=0; IF y┆ 0x61640…61660 79 31 3c 30 20 54 48 45 4e 20 79 79 31 3a 3d 30 3b 0d 0a 20 20 49 46 20 78 78 32 3e 74 78 74 5f ┆y1<0 THEN yy1:=0; IF xx2>txt_┆ 0x61660…61680 6d 61 78 78 20 54 48 45 4e 20 78 78 32 3a 3d 74 78 74 5f 6d 61 78 78 3b 0d 0a 20 20 49 46 20 79 ┆maxx THEN xx2:=txt_maxx; IF y┆ 0x61680…616a0 79 32 3e 74 78 74 5f 6d 61 78 79 20 54 48 45 4e 20 79 79 32 3a 3d 74 78 74 5f 6d 61 78 79 3b 0d ┆y2>txt_maxy THEN yy2:=txt_maxy; ┆ 0x616a0…616c0 0a 20 20 57 49 54 48 20 57 6e 64 5f 61 72 72 28 2e 6e 6f 2e 29 20 44 4f 20 42 45 47 49 4e 0d 0a ┆ WITH Wnd_arr(.no.) DO BEGIN ┆ 0x616c0…616e0 20 20 20 20 74 78 74 78 31 3a 3d 78 78 31 3b 0d 0a 20 20 20 20 74 78 74 79 31 3a 3d 79 79 31 3b ┆ txtx1:=xx1; txty1:=yy1;┆ 0x616e0…61700 0d 0a 20 20 20 20 74 78 74 6d 61 78 78 3a 3d 78 78 32 2d 78 78 31 3b 0d 0a 20 20 20 20 74 78 74 ┆ txtmaxx:=xx2-xx1; txt┆ 0x61700…61720 6d 61 78 79 3a 3d 79 79 32 2d 79 79 31 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 57 69 6e 64 6f 77 ┆maxy:=yy2-yy1; END; Window┆ 0x61720…61740 28 6e 6f 2c 78 78 31 2a 38 2c 78 78 32 2a 38 2b 37 2c 53 63 72 5f 6d 61 78 79 2d 28 28 79 79 32 ┆(no,xx1*8,xx2*8+7,Scr_maxy-((yy2┆ 0x61740…61760 2a 38 29 2b 37 29 2c 53 63 72 5f 6d 61 78 79 2d 28 79 79 31 2a 38 29 29 3b 0d 0a 45 4e 44 3b 0d ┆*8)+7),Scr_maxy-(yy1*8)); END; ┆ 0x61760…61780 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 54 65 78 74 57 69 6e 64 6f 77 43 6f 6c 6f 72 28 6e 6f 2c ┆ PROCEDURE TextWindowColor(no,┆ 0x61780…617a0 20 66 63 6f 6c 6f 72 2c 20 62 63 6f 6c 6f 72 3a 20 42 59 54 45 29 3b 0d 0a 42 45 47 49 4e 0d 0a ┆ fcolor, bcolor: BYTE); BEGIN ┆ 0x617a0…617c0 20 20 57 6e 64 5f 70 61 6c 65 74 74 65 28 2e 6e 6f 2e 29 3a 3d 66 63 6f 6c 6f 72 2b 28 62 63 6f ┆ Wnd_palette(.no.):=fcolor+(bco┆ 0x617c0…617e0 6c 6f 72 20 53 48 4c 20 34 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 47 ┆lor SHL 4); END; PROCEDURE G┆ 0x617e0…61800 72 61 70 68 69 63 53 63 72 65 65 6e 3b 0d 0a 56 41 52 20 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆raphicScreen; VAR i: INTEGER; ┆ 0x61800…61820 (39, 0, 1) 42 45 47 49 4e 0d 0a 20 20 74 78 74 5f 6d 6f 64 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 65 68 6f 66 ┆BEGIN txt_mode:=true; ehof┆ 0x61820…61840 73 3a 3d 6f 66 73 28 74 65 78 74 6d 6f 64 65 29 3b 0d 0a 20 20 6d 61 72 6b 28 53 63 72 5f 42 45 ┆s:=ofs(textmode); mark(Scr_BE┆ 0x61840…61860 47 49 4e 29 3b 0d 0a 20 20 69 6e 69 74 5f 67 72 61 70 68 69 63 73 3b 0d 0a 20 20 69 6e 69 74 5f ┆GIN); init_graphics; init_┆ 0x61860…61880 74 65 78 74 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 57 6e 64 5f 6d 61 78 20 44 4f 20 ┆text; FOR i:=1 TO Wnd_max DO ┆ 0x61880…618a0 42 45 47 49 4e 0d 0a 20 20 20 20 74 65 78 74 57 69 6e 64 6f 77 28 69 2c 30 2c 37 39 2c 30 2c 32 ┆BEGIN textWindow(i,0,79,0,2┆ 0x618a0…618c0 34 29 3b 0d 0a 20 20 20 20 74 65 78 74 57 69 6e 64 6f 77 43 6f 6c 6f 72 28 69 2c 77 68 69 74 65 ┆4); textWindowColor(i,white┆ 0x618c0…618e0 74 78 74 2c 62 6c 61 63 6b 74 78 74 29 3b 0d 0a 20 20 20 20 57 69 6e 64 6f 77 28 69 2c 30 2c 20 ┆txt,blacktxt); Window(i,0, ┆ 0x618e0…61900 53 63 72 5f 4d 61 78 58 2c 20 30 2c 20 53 63 72 5f 4d 61 78 59 29 3b 0d 0a 20 20 20 20 57 6c 64 ┆Scr_MaxX, 0, Scr_MaxY); Wld┆ 0x61900…61920 52 61 6e 67 65 28 69 2c 30 2e 30 2c 20 53 63 72 5f 4d 61 78 58 2c 20 30 2e 30 2c 20 53 63 72 5f ┆Range(i,0.0, Scr_MaxX, 0.0, Scr_┆ 0x61920…61940 4d 61 78 59 29 3b 0d 0a 20 20 20 20 57 69 6e 64 6f 77 43 6f 6c 6f 72 28 69 2c 77 68 69 74 65 2c ┆MaxY); WindowColor(i,white,┆ 0x61940…61960 62 6c 61 63 6b 29 3b 0d 0a 20 20 20 20 57 49 54 48 20 73 61 76 65 5f 61 72 72 28 2e 69 2e 29 20 ┆black); WITH save_arr(.i.) ┆ 0x61960…61980 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 3a 3d 4e 49 4c 3b 20 0d 0a ┆DO BEGIN content:=NIL; ┆ 0x61980…619a0 20 20 20 20 20 20 6c 65 6e 67 74 68 3a 3d 30 3b 20 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 ┆ length:=0; END; ┆ 0x619a0…619c0 20 57 6e 64 5f 61 72 72 28 2e 69 2e 29 2e 68 64 72 3a 3d 27 27 3b 0d 0a 20 20 45 4e 44 3b 0d 0a ┆ Wnd_arr(.i.).hdr:=''; END; ┆ 0x619c0…619e0 20 20 73 65 6c 65 63 74 57 69 6e 64 6f 77 28 31 29 3b 0d 0a 20 20 73 65 6c 65 63 74 57 6c 64 52 ┆ selectWindow(1); selectWldR┆ 0x619e0…61a00 61 6e 67 65 28 31 29 3b 0d 0a 20 20 62 69 74 6e 72 3a 3d 30 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 ┆ange(1); bitnr:=0; linepat┆ 0x61a00…61a20 74 65 72 6e 73 69 7a 65 3a 3d 31 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 4c 49 4e ┆ternsize:=1; linepattern:=LIN┆ 0x61a20…61a40 45 54 59 50 45 28 2e 31 2e 29 3b 0d 0a 20 20 63 68 77 69 64 74 68 3a 3d 31 3b 0d 0a 20 20 63 68 ┆ETYPE(.1.); chwidth:=1; ch┆ 0x61a40…61a60 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 72 6f 74 61 74 69 6f 6e 3a 3d 30 3b 0d 0a 20 20 6d 61 ┆heigth:=1; rotation:=0; ma┆ 0x61a60…61a80 72 6b 65 72 73 69 7a 65 3a 3d 31 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 ┆rkersize:=1; END; PROCEDUR┆ 0x61a80…61aa0 45 20 53 63 72 5f 64 75 6d 70 28 6d 6f 64 65 3a 70 72 6e 5f 54 59 50 45 29 3b 0d 0a 56 41 52 0d ┆E Scr_dump(mode:prn_TYPE); VAR ┆ 0x61aa0…61ac0 0a 20 20 70 72 69 6e 74 65 72 3a 20 74 65 78 74 3b 0d 0a 20 20 69 2c 6a 2c 6b 31 2c 73 6d 61 78 ┆ printer: text; i,j,k1,smax┆ 0x61ac0…61ae0 2c 74 6d 61 78 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 69 6e 69 74 5f 63 68 3a 20 53 54 52 49 ┆,tmax: INTEGER; init_ch: STRI┆ 0x61ae0…61b00 4e 47 28 2e 36 2e 29 3b 0d 0a 20 20 67 72 5f 73 74 72 3a 20 53 54 52 49 4e 47 28 2e 34 2e 29 3b ┆NG(.6.); gr_str: STRING(.4.);┆ 0x61b00…61b20 0d 0a 20 20 63 68 3a 20 63 68 61 72 3b 0d 0a 20 20 48 69 67 68 43 48 2c 4c 6f 77 43 48 3a 20 62 ┆ ch: char; HighCH,LowCH: b┆ 0x61b20…61b40 79 74 65 3b 0d 0a 20 20 48 69 67 68 42 79 74 65 2c 4c 6f 77 42 79 74 65 3a 20 62 79 74 65 3b 0d ┆yte; HighByte,LowByte: byte; ┆ 0x61b40…61b60 0a 20 20 62 69 74 6d 6f 64 65 3a 20 63 68 61 72 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ bitmode: char; PROCEDURE┆ 0x61b60…61b80 20 42 69 74 42 69 74 28 4f 6c 64 42 79 74 65 3a 42 79 74 65 3b 56 41 52 20 4e 65 77 62 79 74 65 ┆ BitBit(OldByte:Byte;VAR Newbyte┆ 0x61b80…61ba0 3a 20 62 79 74 65 29 3b 0d 0a 76 61 72 20 20 0d 0a 20 20 62 69 74 3a 20 62 79 74 65 3b 0d 0a 20 ┆: byte); var bit: byte; ┆ 0x61ba0…61bc0 20 6a 2c 6e 3a 69 6e 74 65 67 65 72 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 4e 65 77 42 79 74 ┆ j,n:integer; BEGIN NewByt┆ 0x61bc0…61be0 65 3a 3d 24 30 30 3b 0d 0a 20 20 46 4f 52 20 6a 3a 3d 20 31 20 74 6f 20 34 44 4f 0d 0a 20 20 42 ┆e:=$00; FOR j:= 1 to 4DO B┆ 0x61be0…61c00 45 47 49 4e 0d 0a 20 20 20 20 63 61 73 65 20 6a 20 6f 66 0d 0a 20 20 20 20 31 3a 20 6e 3a 3d 31 ┆EGIN case j of 1: n:=1┆ 0x61c00…61c20 (39, 0, 2) 3b 0d 0a 20 20 20 20 32 3a 20 6e 3a 3d 32 3b 0d 0a 20 20 20 20 33 3a 20 6e 3a 3d 34 3b 0d 0a 20 ┆; 2: n:=2; 3: n:=4; ┆ 0x61c20…61c40 20 20 20 34 3a 20 6e 3a 3d 38 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 42 69 74 3a 3d ┆ 4: n:=8; END; Bit:=┆ 0x61c40…61c60 4f 6c 64 62 79 74 65 20 41 4e 44 20 6e 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 20 53 48 4c ┆Oldbyte AND n; Bit:=Bit SHL┆ 0x61c60…61c80 20 6a 3b 0d 0a 20 20 20 20 4e 65 77 62 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 20 42 69 74 ┆ j; Newbyte:=Newbyte OR Bit┆ 0x61c80…61ca0 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 20 53 48 52 20 31 3b 0d 0a 20 20 20 20 4e 65 77 62 ┆; Bit:=Bit SHR 1; Newb┆ 0x61ca0…61cc0 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 20 42 69 74 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e ┆yte:=Newbyte OR Bit; END; EN┆ 0x61cc0…61ce0 44 3b 0d 0a 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 73 73 69 67 6e 28 70 72 69 6e 74 65 72 2c ┆D; BEGIN assign(printer,┆ 0x61ce0…61d00 27 6c 73 74 3a 27 29 3b 0d 0a 20 20 72 65 73 65 74 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 49 ┆'lst:'); reset(printer); I┆ 0x61d00…61d20 46 20 69 6f 72 65 73 3c 3e 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 49 46 20 6d 6f 64 65 ┆F iores<>0 THEN exit; IF mode┆ 0x61d20…61d40 20 69 6e 20 28 2e 4e 45 43 5f 31 36 62 69 74 2e 29 20 74 68 65 6e 20 0d 0a 20 20 42 45 47 49 4e ┆ in (.NEC_16bit.) then BEGIN┆ 0x61d40…61d60 0d 0a 20 20 20 20 62 69 74 6d 6f 64 65 3a 3d 27 49 27 3b 20 4b 31 3a 3d 32 3b 0d 0a 20 20 45 4e ┆ bitmode:='I'; K1:=2; EN┆ 0x61d60…61d80 44 20 65 6c 73 65 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 62 69 74 6d 6f 64 65 3a 3d 27 4b ┆D else BEGIN bitmode:='K┆ 0x61d80…61da0 27 3b 20 4b 31 3a 3d 31 3b 0d 0a 20 20 45 4e 44 3b 20 20 0d 0a 20 20 73 6d 61 78 3a 3d 28 53 63 ┆'; K1:=1; END; smax:=(Sc┆ 0x61da0…61dc0 72 5f 6d 61 78 79 2b 31 29 2a 6b 31 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 ┆r_maxy+1)*k1; writeln(printer┆ 0x61dc0…61de0 2c 63 68 72 28 32 37 29 2b 27 41 27 2b 63 68 72 28 38 29 2c 63 68 72 28 32 37 29 2b 27 32 27 29 ┆,chr(27)+'A'+chr(8),chr(27)+'2')┆ 0x61de0…61e00 3b 0d 0a 20 20 69 6e 69 74 5f 63 68 3a 3d 63 68 72 28 32 37 29 2b 62 69 74 6d 6f 64 65 2b 63 68 ┆; init_ch:=chr(27)+bitmode+ch┆ 0x61e00…61e20 72 28 6c 6f 28 73 6d 61 78 29 29 2b 63 68 72 28 68 69 28 73 6d 61 78 29 29 3b 0d 0a 20 20 46 4f ┆r(lo(smax))+chr(hi(smax)); FO┆ 0x61e20…61e40 52 20 69 3a 3d 30 20 54 4f 20 74 78 74 5f 6d 61 78 78 20 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d ┆R i:=0 TO txt_maxx DO BEGIN ┆ 0x61e40…61e60 0a 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 69 6e 69 74 5f 63 68 29 3b 0d 0a 20 20 ┆ write(printer,init_ch); ┆ 0x61e60…61e80 20 20 46 4f 52 20 6a 3a 3d 30 20 74 6f 20 53 63 72 5f 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 42 ┆ FOR j:=0 to Scr_maxy DO B┆ 0x61e80…61ea0 45 47 49 4e 0d 0a 20 20 20 20 20 20 4c 6f 77 62 79 74 65 3a 3d 24 30 30 3b 20 48 69 67 68 62 79 ┆EGIN Lowbyte:=$00; Highby┆ 0x61ea0…61ec0 74 65 3a 3d 24 30 30 3b 20 0d 0a 20 20 20 20 20 20 63 68 3a 3d 63 68 72 28 6d 65 6d 28 2e 53 63 ┆te:=$00; ch:=chr(mem(.Sc┆ 0x61ec0…61ee0 72 5f 73 65 67 6d 3a 53 63 72 5f 79 61 64 64 72 28 2e 6a 2e 29 2b 53 63 72 5f 78 61 64 64 72 28 ┆r_segm:Scr_yaddr(.j.)+Scr_xaddr(┆ 0x61ee0…61f00 2e 28 69 29 2a 38 2e 29 2e 29 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 62 69 74 6d 6f 64 65 3d 27 ┆.(i)*8.).)); if bitmode='┆ 0x61f00…61f20 4b 27 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 77 72 ┆K' then BEGIN wr┆ 0x61f20…61f40 69 74 65 28 70 72 69 6e 74 65 72 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 ┆ite(printer,ch); END ELSE┆ 0x61f40…61f60 20 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 49 46 20 43 48 3e 40 30 ┆ BEGIN IF CH>@0┆ 0x61f60…61f80 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ THEN BEGIN ┆ 0x61f80…61fa0 48 69 67 68 43 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 66 30 3b 0d 0a 20 20 20 20 20 20 ┆HighCH:=ord(ch) and $f0; ┆ 0x61fa0…61fc0 20 20 20 20 48 69 67 68 43 48 3a 3d 48 69 67 68 43 48 20 73 68 72 20 34 3b 0d 0a 20 20 20 20 20 ┆ HighCH:=HighCH shr 4; ┆ 0x61fc0…61fe0 20 20 20 20 20 4c 6f 77 43 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 30 66 3b 0d 0a 20 20 ┆ LowCH:=ord(ch) and $0f; ┆ 0x61fe0…62000 20 20 20 20 20 20 20 20 42 69 74 42 69 74 28 48 69 67 68 43 48 2c 48 69 67 68 42 79 74 65 29 3b ┆ BitBit(HighCH,HighByte);┆ 0x62000…62020 (39, 0, 3) 20 42 69 74 42 69 74 28 4c 6f 77 43 48 2c 4c 6f 77 42 79 74 65 29 3b 0d 0a 20 20 20 20 20 20 20 ┆ BitBit(LowCH,LowByte); ┆ 0x62020…62040 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 63 ┆ END; write(printer,c┆ 0x62040…62060 68 72 28 48 69 67 68 42 79 74 65 29 2c 63 68 72 28 4c 6f 77 42 79 74 65 29 2c 63 68 72 28 48 69 ┆hr(HighByte),chr(LowByte),chr(Hi┆ 0x62060…62080 67 68 42 79 74 65 29 2c 63 68 72 28 4c 6f 77 42 79 74 65 29 29 3b 0d 0a 20 20 20 20 20 20 20 45 ┆ghByte),chr(LowByte)); E┆ 0x62080…620a0 4e 44 3b 0d 0a 20 20 20 20 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 65 6e 0d 0a 20 20 20 ┆ND; if keypress then ┆ 0x620a0…620c0 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d ┆ BEGIN read(kbd,ch); ┆ 0x620c0…620e0 0a 20 20 20 20 20 20 20 20 65 78 69 74 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 ┆ exit; END; ┆ 0x620e0…62100 45 4e 44 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 45 ┆END; writeln(printer); E┆ 0x62100…62120 4e 44 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b 27 ┆ND; writeln(printer,chr(27)+'┆ 0x62120…62140 23 41 27 29 3b 0d 0a 20 20 77 72 69 74 65 28 40 31 32 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 70 72 ┆#A'); write(@12); close(pr┆ 0x62140…62160 69 6e 74 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 41 ┆inter); END; PROCEDURE PlotA┆ 0x62160…62180 74 28 78 2c 79 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 53 65 74 44 ┆t(x,y: REAL); BEGIN Wnd_SetD┆ 0x62180…621a0 6f 74 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e ┆ot(_Wld_ToWindowX(x), _Wld_ToWin┆ 0x621a0…621c0 64 6f 77 59 28 79 29 29 3b 0d 0a 20 20 57 6c 64 5f 2e 58 6f 6c 64 3a 3d 78 3b 20 57 6c 64 5f 2e ┆dowY(y)); Wld_.Xold:=x; Wld_.┆ 0x621c0…621e0 59 6f 6c 64 3a 3d 79 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 50 6c 6f 74 ┆Yold:=y; END; PROCEDURE Plot┆ 0x621e0…62200 62 79 28 78 2c 79 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 50 6c 6f 74 61 74 28 ┆by(x,y: REAL); BEGIN Plotat(┆ 0x62200…62220 57 6c 64 5f 2e 58 4f 6c 64 2b 78 2c 57 6c 64 5f 2e 59 4f 6c 64 2b 79 29 3b 0d 0a 45 4e 44 3b 0d ┆Wld_.XOld+x,Wld_.YOld+y); END; ┆ 0x62220…62240 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 43 69 72 63 6c 65 28 78 2c 79 2c 72 3a 20 52 45 41 4c 29 ┆ PROCEDURE Circle(x,y,r: REAL)┆ 0x62240…62260 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 20 20 57 6e 64 5f 63 69 72 63 6c 65 28 5f 57 6c 64 5f 54 6f ┆; BEGIN Wnd_circle(_Wld_To┆ 0x62260…62280 57 69 6e 64 6f 77 58 28 78 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 29 2c 20 5f ┆WindowX(x), _Wld_ToWindowY(y), _┆ 0x62280…622a0 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 72 29 29 3b 0d 0a 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆Wld_ToWindowY(r)); END; PR┆ 0x622a0…622c0 4f 43 45 44 55 52 45 20 4d 6f 76 65 54 6f 28 78 2c 79 3a 52 45 41 4c 29 3b 0d 0a 42 45 47 49 4e ┆OCEDURE MoveTo(x,y:REAL); BEGIN┆ 0x622c0…622e0 0d 0a 20 20 57 6c 64 5f 2e 58 4f 6c 64 3a 3d 78 3b 20 57 6c 64 5f 2e 59 4f 6c 64 3a 3d 79 3b 0d ┆ Wld_.XOld:=x; Wld_.YOld:=y; ┆ 0x622e0…62300 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4d 6f 76 65 42 79 28 78 2c 79 3a 20 52 ┆ END; PROCEDURE MoveBy(x,y: R┆ 0x62300…62320 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6d 6f 76 65 74 6f 28 57 6c 64 5f 2e 58 4f 6c 64 ┆EAL); BEGIN moveto(Wld_.XOld┆ 0x62320…62340 2b 78 2c 57 6c 64 5f 2e 59 4f 6c 64 2b 79 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 ┆+x,Wld_.YOld+y); END; PROCED┆ 0x62340…62360 55 52 45 20 4c 69 6e 65 54 6f 28 78 32 2c 20 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 42 45 47 49 ┆URE LineTo(x2, y2 : REAL); BEGI┆ 0x62360…62380 4e 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 54 6f 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 57 ┆N Wnd_LineTo(_Wld_ToWindowX(W┆ 0x62380…623a0 6c 64 5f 2e 58 4f 6c 64 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 57 6c 64 5f 2e 59 ┆ld_.XOld), _Wld_ToWindowY(Wld_.Y┆ 0x623a0…623c0 4f 6c 64 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f 57 6c 64 5f 54 6f 57 69 6e ┆Old), _Wld_ToWin┆ 0x623c0…623e0 64 6f 77 58 28 78 32 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 32 29 29 3b 0d 0a ┆dowX(x2), _Wld_ToWindowY(y2)); ┆ 0x623e0…62400 20 20 57 6c 64 5f 2e 58 4f 6c 64 3a 3d 78 32 3b 20 57 6c 64 5f 2e 59 4f 6c 64 3a 3d 79 32 3b 0d ┆ Wld_.XOld:=x2; Wld_.YOld:=y2; ┆ 0x62400…62420 (39, 0, 4) 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 4c 69 6e 65 42 79 28 78 2c 79 3a 20 52 ┆ END; PROCEDURE LineBy(x,y: R┆ 0x62420…62440 45 41 4c 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 4c 69 6e 65 54 6f 28 78 2b 57 6c 64 5f 2e 58 4f ┆EAL); BEGIN LineTo(x+Wld_.XO┆ 0x62440…62460 6c 64 2c 79 2b 57 6c 64 5f 2e 59 4f 6c 64 29 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 ┆ld,y+Wld_.YOld); END; PROC┆ 0x62460…62480 45 44 55 52 45 20 50 6c 6f 74 54 65 78 74 28 78 2c 79 3a 20 52 45 41 4c 3b 20 73 3a 20 73 74 72 ┆EDURE PlotText(x,y: REAL; s: str┆ 0x62480…624a0 38 30 29 3b 0d 0a 76 61 72 0d 0a 20 20 69 2c 78 31 2c 79 31 2c 78 32 2c 79 32 2c 78 62 65 67 2c ┆80); var i,x1,y1,x2,y2,xbeg,┆ 0x624a0…624c0 78 65 6e 64 2c 79 62 65 67 2c 79 65 6e 64 2c 73 69 7a 78 2c 73 69 7a 79 2c 78 78 2c 79 79 3a 20 ┆xend,ybeg,yend,sizx,sizy,xx,yy: ┆ 0x624c0…624e0 69 6e 74 65 67 65 72 3b 0d 0a 20 20 63 62 79 74 65 3a 20 62 79 74 65 3b 0d 0a 20 20 72 6f 74 61 ┆integer; cbyte: byte; rota┆ 0x624e0…62500 74 65 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 78 78 3a 3d 5f 57 6c 64 5f ┆te: boolean; BEGIN xx:=_Wld_┆ 0x62500…62520 74 6f 77 69 6e 64 6f 77 78 28 78 29 3b 20 20 79 79 3a 3d 5f 57 6c 64 5f 74 6f 77 69 6e 64 6f 77 ┆towindowx(x); yy:=_Wld_towindow┆ 0x62520…62540 79 28 79 29 3b 0d 0a 20 20 73 69 7a 78 3a 3d 72 6f 75 6e 64 28 63 68 77 69 64 74 68 29 3b 20 73 ┆y(y); sizx:=round(chwidth); s┆ 0x62540…62560 69 7a 79 3a 3d 72 6f 75 6e 64 28 63 68 68 65 69 67 74 68 29 3b 0d 0a 20 20 72 6f 74 61 74 65 3a ┆izy:=round(chheigth); rotate:┆ 0x62560…62580 3d 72 6f 74 61 74 69 6f 6e 3c 3e 30 3b 0d 0a 20 20 66 6f 72 20 69 3a 3d 31 20 74 6f 20 6c 65 6e ┆=rotation<>0; for i:=1 to len┆ 0x62580…625a0 28 73 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 46 4f 52 20 79 31 3a 3d 30 20 74 6f 20 37 ┆(s) DO BEGIN FOR y1:=0 to 7┆ 0x625a0…625c0 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 63 62 79 74 65 3a 3d 73 63 72 5f 63 68 61 72 ┆ DO BEGIN cbyte:=scr_char┆ 0x625c0…625e0 28 2e 62 79 74 65 28 73 28 2e 69 2e 29 29 2c 28 37 2d 79 31 29 2e 29 20 3b 0d 0a 20 20 20 20 20 ┆(.byte(s(.i.)),(7-y1).) ; ┆ 0x625e0…62600 20 46 4f 52 20 78 31 3a 3d 30 20 74 6f 20 37 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 ┆ FOR x1:=0 to 7 DO BEGIN ┆ 0x62600…62620 20 20 69 66 20 28 63 62 79 74 65 20 73 68 72 20 28 37 2d 78 31 29 29 20 61 6e 64 20 31 3c 3e 30 ┆ if (cbyte shr (7-x1)) and 1<>0┆ 0x62620…62640 20 74 68 65 6e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 78 62 65 67 3a 3d 78 78 2b ┆ then BEGIN xbeg:=xx+┆ 0x62640…62660 78 31 2a 73 69 7a 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 78 65 6e 64 3a 3d 78 62 65 67 2b 73 ┆x1*sizx; xend:=xbeg+s┆ 0x62660…62680 69 7a 78 2d 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 79 62 65 67 3a 3d 79 79 2b 79 31 2a 73 69 ┆izx-1; ybeg:=yy+y1*si┆ 0x62680…626a0 7a 79 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 79 65 6e 64 3a 3d 79 62 65 67 2b 73 69 7a 79 2d 31 ┆zy; yend:=ybeg+sizy-1┆ 0x626a0…626c0 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 46 4f 52 20 78 32 3a 3d 78 62 65 67 20 74 6f 20 78 65 6e ┆; FOR x2:=xbeg to xen┆ 0x626c0…626e0 64 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 ┆d DO BEGIN ┆ 0x626e0…62700 20 20 20 46 4f 52 20 79 32 3a 3d 79 62 65 67 20 74 6f 20 79 65 6e 64 20 44 4f 0d 0a 20 20 20 20 ┆ FOR y2:=ybeg to yend DO ┆ 0x62700…62720 20 20 20 20 20 20 20 20 49 46 20 6e 6f 74 20 72 6f 74 61 74 65 20 74 68 65 6e 20 77 6e 64 5f 53 ┆ IF not rotate then wnd_S┆ 0x62720…62740 65 74 44 6f 74 28 78 32 2c 79 32 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 77 ┆etDot(x2,y2) else w┆ 0x62740…62760 6e 64 5f 53 65 74 44 6f 74 28 79 79 2a 32 2d 79 32 2c 78 32 29 0d 0a 20 20 20 20 20 20 20 20 20 ┆nd_SetDot(yy*2-y2,x2) ┆ 0x62760…62780 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d ┆ END; END; END; ┆ 0x62780…627a0 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 78 78 3a 3d 78 78 2b 73 69 7a 78 2a 38 3b 0d 0a 20 ┆ END; xx:=xx+sizx*8; ┆ 0x627a0…627c0 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 74 65 78 ┆ END; END; PROCEDURE Drawtex┆ 0x627c0…627e0 74 28 63 6f 6c 2c 72 6f 77 3a 49 4e 54 45 47 45 52 3b 73 3a 73 74 72 38 30 29 3b 0d 0a 56 41 52 ┆t(col,row:INTEGER;s:str80); VAR┆ 0x627e0…62800 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 20 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 ┆ attrib: BYTE; l : INTEGER; B┆ 0x62800…62820 (39, 0, 5) 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d 0a 20 20 20 20 49 46 20 74 78 74 ┆EGIN WITH Wnd_ DO IF txt┆ 0x62820…62840 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 72 6f 77 3a 3d 72 6f 77 ┆_mode THEN BEGIN row:=row┆ 0x62840…62860 2b 74 78 74 79 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 63 6f 6c 2b 6c 65 6e 28 73 29 29 3e 28 ┆+txty1; IF (col+len(s))>(┆ 0x62860…62880 74 78 74 6d 61 78 78 2b 31 29 20 54 48 45 4e 20 6c 3a 3d 74 78 74 6d 61 78 78 2b 31 2d 63 6f 6c ┆txtmaxx+1) THEN l:=txtmaxx+1-col┆ 0x62880…628a0 20 45 4c 53 45 20 6c 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 20 20 20 20 63 6f 6c 3a 3d 63 6f 6c ┆ ELSE l:=len(s); col:=col┆ 0x628a0…628c0 2b 74 78 74 78 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 72 6f 77 3c 3d 74 78 74 6d 61 78 79 2b 74 ┆+txtx1; IF row<=txtmaxy+t┆ 0x628c0…628e0 78 74 79 31 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 73 74 72 28 63 6f 6c 2c ┆xty1 THEN writestr(col,┆ 0x628e0…62900 72 6f 77 2c 63 6f 70 79 28 73 2c 31 2c 6c 29 29 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 ┆row,copy(s,1,l)); END ┆ 0x62900…62920 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 63 6f 6c 3a 3d 20 63 6f 6c 20 53 48 4c 20 ┆ELSE BEGIN col:= col SHL ┆ 0x62920…62940 33 20 3b 0d 0a 20 20 20 20 20 20 72 6f 77 3a 3d 20 6d 61 78 79 20 2d 20 37 20 2d 20 28 72 6f 77 ┆3 ; row:= maxy - 7 - (row┆ 0x62940…62960 20 2a 20 38 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 64 72 61 77 74 65 78 74 28 63 6f 6c 2c 72 ┆ * 8); Wnd_drawtext(col,r┆ 0x62960…62980 6f 77 2c 73 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 ┆ow,s); END; END; PROCED┆ 0x62980…629a0 55 52 45 20 44 72 61 77 72 65 61 6c 28 63 6f 6c 2c 72 6f 77 3a 49 4e 54 45 47 45 52 3b 20 72 3a ┆URE Drawreal(col,row:INTEGER; r:┆ 0x629a0…629c0 52 45 41 4c 3b 20 6c 2c 64 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a 56 41 52 0d 0a 20 20 73 3a 20 ┆REAL; l,d: INTEGER); VAR s: ┆ 0x629c0…629e0 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 28 72 3a 6c 3a 64 2c 73 29 3b 0d 0a ┆str80; BEGIN str(r:l:d,s); ┆ 0x629e0…62a00 20 20 64 72 61 77 74 65 78 74 28 63 6f 6c 2c 72 6f 77 2c 73 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆ drawtext(col,row,s); END; ┆ 0x62a00…62a20 50 52 4f 43 45 44 55 52 45 20 52 65 63 74 61 6e 67 6c 65 28 78 31 2c 20 79 31 2c 20 78 32 2c 20 ┆PROCEDURE Rectangle(x1, y1, x2, ┆ 0x62a20…62a40 79 32 20 3a 20 52 45 41 4c 29 3b 0d 0a 56 41 52 20 6f 6c 64 3a 69 6e 74 65 67 65 72 3b 0d 0a 42 ┆y2 : REAL); VAR old:integer; B┆ 0x62a40…62a60 45 47 49 4e 0d 0a 20 20 6f 6c 64 3a 3d 6c 69 6e 65 70 61 74 74 65 72 6e 3b 0d 0a 20 20 6c 69 6e ┆EGIN old:=linepattern; lin┆ 0x62a60…62a80 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e 65 74 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 20 57 6e 64 5f ┆epattern:=linetype(.1.); Wnd_┆ 0x62a80…62aa0 44 72 61 77 42 6f 78 28 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 31 29 2c 20 5f 57 6c 64 ┆DrawBox(_Wld_ToWindowX(x1), _Wld┆ 0x62aa0…62ac0 5f 54 6f 57 69 6e 64 6f 77 59 28 79 31 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f ┆_ToWindowY(y1), _┆ 0x62ac0…62ae0 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 32 29 2c 20 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 ┆Wld_ToWindowX(x2), _Wld_ToWindow┆ 0x62ae0…62b00 59 28 79 32 29 29 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6f 6c 64 3b 0d 0a 45 4e ┆Y(y2)); linepattern:=old; EN┆ 0x62b00…62b20 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 57 69 6e 64 6f 77 3b 0d 0a 42 45 47 ┆D; PROCEDURE DrawWindow; BEG┆ 0x62b20…62b40 49 4e 0d 0a 20 20 57 6e 64 5f 44 72 61 77 42 6f 78 28 30 2c 20 30 2c 20 57 6e 64 5f 2e 4d 61 78 ┆IN Wnd_DrawBox(0, 0, Wnd_.Max┆ 0x62b40…62b60 58 2c 20 57 6e 64 5f 2e 4d 61 78 59 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆X, Wnd_.MaxY); END; PROCEDUR┆ 0x62b60…62b80 45 20 44 72 61 77 48 65 61 64 65 72 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6f 6c 64 63 6f 6c 6f 72 ┆E DrawHeader; VAR i,oldcolor┆ 0x62b80…62ba0 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 ┆: INTEGER; BEGIN WITH Wnd_ D┆ 0x62ba0…62bc0 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 68 64 72 3c 3e 27 27 20 54 48 45 4e 20 42 45 47 ┆O BEGIN IF hdr<>'' THEN BEG┆ 0x62bc0…62be0 49 4e 0d 0a 20 20 20 20 20 20 69 3a 3d 28 6d 61 78 78 20 44 49 56 20 38 20 2d 20 6c 65 6e 28 68 ┆IN i:=(maxx DIV 8 - len(h┆ 0x62be0…62c00 64 72 29 29 20 44 49 56 20 32 3b 0d 0a 20 20 20 20 20 20 49 46 20 69 3c 30 20 54 48 45 4e 20 69 ┆dr)) DIV 2; IF i<0 THEN i┆ 0x62c00…62c20 (39, 1, 1) 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 66 69 6c 6c 28 78 31 2c 79 31 2b 6d 61 78 79 2d ┆:=0; Scr_fill(x1,y1+maxy-┆ 0x62c20…62c40 31 30 2c 78 31 2b 6d 61 78 78 2c 79 31 2b 6d 61 78 79 2c 24 46 46 29 3b 0d 0a 20 20 20 20 20 20 ┆10,x1+maxx,y1+maxy,$FF); ┆ 0x62c40…62c60 6f 6c 64 63 6f 6c 6f 72 3a 3d 70 65 6e 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 20 20 70 65 6e 63 6f ┆oldcolor:=pencolor; penco┆ 0x62c60…62c80 6c 6f 72 3a 3d 62 6c 61 63 6b 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f 64 72 61 77 62 6f 78 28 30 ┆lor:=black; Wnd_drawbox(0┆ 0x62c80…62ca0 2c 6d 61 78 79 2d 31 30 2c 6d 61 78 78 2c 6d 61 78 79 29 3b 0d 0a 20 20 20 20 20 20 6d 61 78 79 ┆,maxy-10,maxx,maxy); maxy┆ 0x62ca0…62cc0 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 20 20 44 72 61 77 74 65 78 74 28 69 2c 30 2c 68 64 ┆:=maxy-2; Drawtext(i,0,hd┆ 0x62cc0…62ce0 72 29 3b 0d 0a 20 20 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 38 3b 0d 0a 20 20 20 20 20 20 ┆r); maxy:=maxy-8; ┆ 0x62ce0…62d00 70 65 6e 63 6f 6c 6f 72 3a 3d 6f 6c 64 63 6f 6c 6f 72 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 ┆pencolor:=oldcolor; END; ┆ 0x62d00…62d20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 66 72 61 ┆ END; END; PROCEDURE Drawfra┆ 0x62d20…62d40 6d 65 3b 0d 0a 76 61 72 20 6f 6c 64 3a 62 79 74 65 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6f 6c 64 ┆me; var old:byte; BEGIN old┆ 0x62d40…62d60 3a 3d 6c 69 6e 65 70 61 74 74 65 72 6e 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c ┆:=linepattern; linepattern:=l┆ 0x62d60…62d80 69 6e 65 74 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 42 45 ┆inetype(.1.); WITH Wnd_ DO BE┆ 0x62d80…62da0 47 49 4e 0d 0a 20 20 20 20 64 72 61 77 68 65 61 64 65 72 3b 0d 0a 20 20 20 20 57 6e 64 5f 44 72 ┆GIN drawheader; Wnd_Dr┆ 0x62da0…62dc0 61 77 42 6f 78 28 30 2c 20 30 2c 20 4d 61 78 58 2c 20 4d 61 78 59 29 3b 0d 0a 20 20 20 20 78 31 ┆awBox(0, 0, MaxX, MaxY); x1┆ 0x62dc0…62de0 3a 3d 78 31 2b 31 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 31 3b 0d 0a 20 20 20 20 6d 61 78 79 ┆:=x1+1; y1:=y1+1; maxy┆ 0x62de0…62e00 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 6d 61 78 78 3a 3d 6d 61 78 78 2d 32 3b 0d 0a 20 20 ┆:=maxy-2; maxx:=maxx-2; ┆ 0x62e00…62e20 45 4e 44 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6f 6c 64 3b 0d 0a 45 4e 44 3b 0d ┆END; linepattern:=old; END; ┆ 0x62e20…62e40 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 43 6c 65 61 72 57 69 6e 64 6f 77 3b 0d 0a 56 41 52 20 69 ┆ PROCEDURE ClearWindow; VAR i┆ 0x62e40…62e60 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 ┆ : INTEGER; str: str80; BEGI┆ 0x62e60…62e80 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d 0a 20 20 20 20 49 46 20 74 78 74 5f 6d 6f ┆N WITH Wnd_ DO IF txt_mo┆ 0x62e80…62ea0 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 73 74 72 3a 3d 73 70 63 28 74 78 ┆de THEN BEGIN str:=spc(tx┆ 0x62ea0…62ec0 74 6d 61 78 78 2b 31 2c 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f ┆tmaxx+1,' '); FOR i:=0 TO┆ 0x62ec0…62ee0 20 74 78 74 6d 61 78 79 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 64 72 61 77 74 65 78 74 28 30 2c ┆ txtmaxy DO drawtext(0,┆ 0x62ee0…62f00 69 2c 73 74 72 29 3b 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 ┆i,str); END ELSE ┆ 0x62f00…62f20 20 20 53 63 72 5f 46 69 6c 6c 28 78 31 2b 31 2c 20 79 31 2b 31 2c 20 78 31 2b 4d 61 78 58 2c 20 ┆ Scr_Fill(x1+1, y1+1, x1+MaxX, ┆ 0x62f20…62f40 79 31 20 2b 20 6d 61 78 59 20 2c 62 61 63 6b 63 6f 6c 6f 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆y1 + maxY ,backcolor); END; ┆ 0x62f40…62f60 50 52 4f 43 45 44 55 52 45 20 52 65 63 74 66 69 6c 6c 28 78 31 2c 79 31 2c 78 32 2c 79 32 3a 20 ┆PROCEDURE Rectfill(x1,y1,x2,y2: ┆ 0x62f60…62f80 72 65 61 6c 3b 20 6e 6f 3a 20 69 6e 74 65 67 65 72 29 3b 0d 0a 56 41 52 0d 0a 20 20 70 61 74 74 ┆real; no: integer); VAR patt┆ 0x62f80…62fa0 65 72 6e 20 3a 20 41 52 52 41 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 69 6e 74 65 67 65 72 3b 0d ┆ern : ARRAY(.0..7.) OF integer; ┆ 0x62fa0…62fc0 0a 20 20 20 78 2c 73 78 31 2c 73 78 32 2c 79 2c 73 79 2c 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆ x,sx1,sx2,y,sy,i: INTEGER; ┆ 0x62fc0…62fe0 20 20 20 73 3a 20 73 74 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 52 65 63 ┆ s: string(.2.); BEGIN Rec┆ 0x62fe0…63000 74 61 6e 67 6c 65 28 78 31 2c 79 31 2c 78 32 2c 79 32 29 3b 0d 0a 20 20 73 74 72 28 6e 6f 3a 32 ┆tangle(x1,y1,x2,y2); str(no:2┆ 0x63000…63020 (39, 1, 2) 2c 73 29 3b 0d 0a 20 20 73 78 31 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 31 29 3b ┆,s); sx1:=_Wld_ToWindowX(x1);┆ 0x63020…63040 0d 0a 20 20 73 78 32 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 58 28 78 32 29 3b 0d 0a 20 20 ┆ sx2:=_Wld_ToWindowX(x2); ┆ 0x63040…63060 46 4f 52 20 69 3a 3d 30 20 74 6f 20 37 20 44 4f 0d 0a 20 20 70 61 74 74 65 72 6e 28 2e 69 2e 29 ┆FOR i:=0 to 7 DO pattern(.i.)┆ 0x63060…63080 3a 3d 70 61 74 74 65 72 6e 74 79 70 65 28 2e 6e 6f 2c 69 2e 29 3b 0d 0a 20 20 46 4f 52 20 73 79 ┆:=patterntype(.no,i.); FOR sy┆ 0x63080…630a0 3a 3d 5f 57 6c 64 5f 54 6f 57 69 6e 64 6f 77 59 28 79 31 29 20 54 4f 20 5f 57 6c 64 5f 54 6f 57 ┆:=_Wld_ToWindowY(y1) TO _Wld_ToW┆ 0x630a0…630c0 69 6e 64 6f 77 59 28 79 32 29 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 69 3a 3d 73 ┆indowY(y2) DO BEGIN i:=s┆ 0x630c0…630e0 79 20 4d 4f 44 20 38 3b 20 62 69 74 6e 72 3a 3d 30 3b 0d 0a 20 20 20 20 6c 69 6e 65 70 61 74 74 ┆y MOD 8; bitnr:=0; linepatt┆ 0x630e0…63100 65 72 6e 3a 3d 70 61 74 74 65 72 6e 28 2e 69 2e 29 3b 20 0d 0a 20 20 20 20 57 6e 64 5f 4c 69 6e ┆ern:=pattern(.i.); Wnd_Lin┆ 0x63100…63120 65 54 6f 28 73 78 31 2c 73 79 2c 73 78 32 2c 73 79 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆eTo(sx1,sy,sx2,sy); END; END┆ 0x63120…63140 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆; ┆ 0x63140…63160 00 00 00 00 00 00 00 00 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…] 0x63180…631a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x33…] 0x63800…63820 (39, 1, 4) 28 2a 47 53 56 2d 50 4c 30 31 2a 29 0d 0a 28 2a 24 49 20 6b 2d 67 72 61 66 30 2a 29 0d 0a 70 72 ┆(*GSV-PL01*) (*$I k-graf0*) pr┆ 0x63820…63840 6f 63 65 64 75 72 65 20 6d 61 6b 65 61 78 65 72 28 78 31 2c 78 32 2c 79 31 2c 79 32 3a 20 72 65 ┆ocedure makeaxer(x1,x2,y1,y2: re┆ 0x63840…63860 61 6c 29 3b 0d 0a 76 61 72 20 6a 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 73 3a 20 73 74 ┆al); var j: integer; s: st┆ 0x63860…63880 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 6d 6f 76 65 74 6f 28 78 31 2c 79 ┆ring(.2.); begin moveto(x1,y┆ 0x63880…638a0 31 29 3b 20 64 72 61 77 74 6f 28 78 31 2c 79 32 29 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 78 31 2c ┆1); drawto(x1,y2); moveto(x1,┆ 0x638a0…638c0 79 31 29 3b 20 64 72 61 77 74 6f 28 78 32 2c 79 31 29 3b 20 64 72 61 77 74 6f 28 78 32 2c 79 32 ┆y1); drawto(x2,y1); drawto(x2,y2┆ 0x638c0…638e0 29 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 78 31 2c 30 29 3b 20 64 72 61 77 74 6f 28 78 32 2c 30 29 ┆); moveto(x1,0); drawto(x2,0)┆ 0x638e0…63900 3b 0d 0a 20 20 66 6f 72 20 6a 3a 3d 72 6f 75 6e 64 28 78 31 29 20 74 6f 20 72 6f 75 6e 64 28 78 ┆; for j:=round(x1) to round(x┆ 0x63900…63920 32 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 66 20 28 6a 20 6d 6f 64 20 35 29 ┆2) do begin if (j mod 5)┆ 0x63920…63940 3d 30 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 73 74 72 28 6a 3a ┆=0 then begin str(j:┆ 0x63940…63960 32 2c 73 29 3b 0d 0a 20 20 20 20 20 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 6a 2d 30 2e 34 2c ┆2,s); plottextsize(j-0.4,┆ 0x63960…63980 79 31 2d 33 2c 31 2c 31 2c 73 29 3b 20 0d 0a 20 20 20 20 20 20 6d 6f 76 65 74 6f 28 6a 2c 79 31 ┆y1-3,1,1,s); moveto(j,y1┆ 0x63980…639a0 2d 31 29 0d 0a 20 20 20 20 65 6e 64 20 20 20 20 20 0d 0a 20 20 20 20 65 6c 73 65 20 6d 6f 76 65 ┆-1) end else move┆ 0x639a0…639c0 74 6f 28 6a 2c 79 31 2b 30 2e 35 29 3b 20 64 72 61 77 74 6f 28 6a 2c 79 31 29 3b 20 20 0d 0a 20 ┆to(j,y1+0.5); drawto(j,y1); ┆ 0x639c0…639e0 20 65 6e 64 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 78 32 2c 79 31 2d 33 2c 31 2c ┆ end; plottextsize(x2,y1-3,1,┆ 0x639e0…63a00 31 2c 27 64 61 67 65 27 29 3b 20 0d 0a 20 20 66 6f 72 20 6a 3a 3d 72 6f 75 6e 64 28 79 31 29 20 ┆1,'dage'); for j:=round(y1) ┆ 0x63a00…63a20 74 6f 20 72 6f 75 6e 64 28 79 32 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 20 20 0d 0a 20 20 20 20 ┆to round(y2) do begin ┆ 0x63a20…63a40 69 66 20 28 6a 20 6d 6f 64 20 31 30 29 3d 30 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d ┆if (j mod 10)=0 then begin ┆ 0x63a40…63a60 0a 20 20 20 20 20 20 73 74 72 28 6a 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 20 20 70 6c 6f 74 74 65 ┆ str(j:2,s); plotte┆ 0x63a60…63a80 78 74 73 69 7a 65 28 78 31 2d 32 2c 6a 2d 30 2e 35 2c 31 2c 31 2c 73 29 3b 20 0d 0a 20 20 20 20 ┆xtsize(x1-2,j-0.5,1,1,s); ┆ 0x63a80…63aa0 20 20 6d 6f 76 65 74 6f 28 78 31 2d 30 2e 33 2c 6a 29 0d 0a 20 20 20 20 20 20 0d 0a 20 20 20 20 ┆ moveto(x1-0.3,j) ┆ 0x63aa0…63ac0 65 6e 64 20 65 6c 73 65 20 6d 6f 76 65 74 6f 28 78 31 2d 30 2e 31 35 2c 6a 29 3b 20 64 72 61 77 ┆end else moveto(x1-0.15,j); draw┆ 0x63ac0…63ae0 74 6f 28 78 31 2c 6a 29 3b 0d 0a 20 20 65 6e 64 3b 20 20 20 20 20 20 0d 0a 65 6e 64 3b 0d 0a 0d ┆to(x1,j); end; end; ┆ 0x63ae0…63b00 0a 76 61 72 20 63 68 3a 63 68 61 72 3b 0d 0a 20 20 20 20 20 6a 3a 20 69 6e 74 65 67 65 72 3b 0d ┆ var ch:char; j: integer; ┆ 0x63b00…63b20 0a 62 65 67 69 6e 0d 0a 20 20 67 72 61 70 68 69 63 73 63 72 65 65 6e 28 4f 4c 49 5f 68 69 67 68 ┆ begin graphicscreen(OLI_high┆ 0x63b20…63b40 29 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 32 2c 2d 35 2c ┆); graphmode; window(2,-5,┆ 0x63b40…63b60 33 36 2c 2d 33 35 2c 33 35 29 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 33 2c 2d 31 30 2c 34 30 2c 2d ┆36,-35,35); window(3,-10,40,-┆ 0x63b60…63b80 34 30 2c 34 30 29 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 34 2c 2d 31 30 30 2c 31 30 30 2c 2d 31 30 ┆40,40); window(4,-100,100,-10┆ 0x63b80…63ba0 30 2c 31 30 30 29 3b 0d 0a 20 20 76 69 65 77 70 6f 72 74 28 32 2c 31 30 30 2c 35 34 30 2c 31 30 ┆0,100); viewport(2,100,540,10┆ 0x63ba0…63bc0 30 2c 33 30 30 29 3b 0d 0a 20 20 73 65 6c 65 63 74 77 69 6e 64 6f 77 28 32 29 3b 0d 0a 20 20 73 ┆0,300); selectwindow(2); s┆ 0x63bc0…63be0 65 6c 65 63 74 76 69 65 77 70 6f 72 74 28 31 29 3b 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b 0d ┆electviewport(1); drawframe; ┆ 0x63be0…63c00 0a 20 20 6d 61 6b 65 61 78 65 72 28 30 2c 33 32 2c 2d 33 30 2c 33 30 29 3b 0d 0a 20 20 73 61 76 ┆ makeaxer(0,32,-30,30); sav┆ 0x63c00…63c20 (39, 1, 5) 65 76 69 65 77 70 6f 72 74 28 31 29 3b 0d 0a 20 20 63 6c 65 61 72 3b 0d 0a 20 20 73 65 6c 65 63 ┆eviewport(1); clear; selec┆ 0x63c20…63c40 74 77 69 6e 64 6f 77 28 32 29 3b 0d 0a 20 20 73 65 6c 65 63 74 76 69 65 77 70 6f 72 74 28 32 29 ┆twindow(2); selectviewport(2)┆ 0x63c40…63c60 3b 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b 0d 0a 20 20 6d 61 6b 65 61 78 65 72 28 30 2c 33 32 ┆; drawframe; makeaxer(0,32┆ 0x63c60…63c80 2c 2d 33 30 2c 33 30 29 3b 0d 0a 20 20 63 6c 65 61 72 3b 0d 0a 20 20 73 65 6c 65 63 74 77 69 6e ┆,-30,30); clear; selectwin┆ 0x63c80…63ca0 64 6f 77 28 32 29 3b 0d 0a 20 20 6c 6f 61 64 76 69 65 77 70 6f 72 74 28 31 2c 31 2c 31 29 3b 0d ┆dow(2); loadviewport(1,1,1); ┆ 0x63ca0…63cc0 0a 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 65 ┆ read(kbd,ch); textmode; e┆ 0x63cc0…63ce0 6e 64 2e 20 20 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆nd. ┆ 0x63ce0…63d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x63d00…63d20 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x17…] 0x64000…64020 (40, 0, 1) 28 2a 47 53 56 2d 50 4c 30 32 2a 29 0d 0a 28 2a 24 49 20 6b 2d 67 72 61 66 30 2a 29 0d 0a 70 72 ┆(*GSV-PL02*) (*$I k-graf0*) pr┆ 0x64020…64040 6f 63 65 64 75 72 65 20 6d 61 6b 65 61 78 65 72 28 78 31 2c 78 32 2c 79 31 2c 79 32 3a 20 72 65 ┆ocedure makeaxer(x1,x2,y1,y2: re┆ 0x64040…64060 61 6c 29 3b 0d 0a 76 61 72 20 6a 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 73 3a 20 73 74 ┆al); var j: integer; s: st┆ 0x64060…64080 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 6d 6f 76 65 74 6f 28 78 31 2c 79 ┆ring(.2.); begin moveto(x1,y┆ 0x64080…640a0 31 29 3b 20 64 72 61 77 74 6f 28 78 31 2c 79 32 29 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 78 31 2c ┆1); drawto(x1,y2); moveto(x1,┆ 0x640a0…640c0 79 31 29 3b 20 64 72 61 77 74 6f 28 78 32 2c 79 31 29 3b 20 64 72 61 77 74 6f 28 78 32 2c 79 32 ┆y1); drawto(x2,y1); drawto(x2,y2┆ 0x640c0…640e0 29 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 78 31 2c 30 29 3b 20 64 72 61 77 74 6f 28 78 32 2c 30 29 ┆); moveto(x1,0); drawto(x2,0)┆ 0x640e0…64100 3b 0d 0a 20 20 66 6f 72 20 6a 3a 3d 72 6f 75 6e 64 28 78 31 29 20 74 6f 20 72 6f 75 6e 64 28 78 ┆; for j:=round(x1) to round(x┆ 0x64100…64120 32 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 66 20 28 6a 20 6d 6f 64 20 35 29 ┆2) do begin if (j mod 5)┆ 0x64120…64140 3d 30 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 73 74 72 28 6a 3a ┆=0 then begin str(j:┆ 0x64140…64160 32 2c 73 29 3b 0d 0a 20 20 20 20 20 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 6a 2d 30 2e 34 2c ┆2,s); plottextsize(j-0.4,┆ 0x64160…64180 79 31 2d 33 2c 31 2c 31 2c 73 29 3b 20 0d 0a 20 20 20 20 20 20 6d 6f 76 65 74 6f 28 6a 2c 79 31 ┆y1-3,1,1,s); moveto(j,y1┆ 0x64180…641a0 2d 31 29 0d 0a 20 20 20 20 65 6e 64 20 20 20 20 20 0d 0a 20 20 20 20 65 6c 73 65 20 6d 6f 76 65 ┆-1) end else move┆ 0x641a0…641c0 74 6f 28 6a 2c 79 31 2b 30 2e 35 29 3b 20 64 72 61 77 74 6f 28 6a 2c 79 31 29 3b 20 20 0d 0a 20 ┆to(j,y1+0.5); drawto(j,y1); ┆ 0x641c0…641e0 20 65 6e 64 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 78 32 2c 79 31 2d 33 2c 31 2c ┆ end; plottextsize(x2,y1-3,1,┆ 0x641e0…64200 31 2c 27 64 61 67 65 27 29 3b 20 0d 0a 20 20 66 6f 72 20 6a 3a 3d 72 6f 75 6e 64 28 79 31 29 20 ┆1,'dage'); for j:=round(y1) ┆ 0x64200…64220 74 6f 20 72 6f 75 6e 64 28 79 32 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 20 20 0d 0a 20 20 20 20 ┆to round(y2) do begin ┆ 0x64220…64240 69 66 20 28 6a 20 6d 6f 64 20 31 30 29 3d 30 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d ┆if (j mod 10)=0 then begin ┆ 0x64240…64260 0a 20 20 20 20 20 20 73 74 72 28 6a 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 20 20 70 6c 6f 74 74 65 ┆ str(j:2,s); plotte┆ 0x64260…64280 78 74 73 69 7a 65 28 78 31 2d 32 2c 6a 2d 30 2e 35 2c 31 2c 31 2c 73 29 3b 20 0d 0a 20 20 20 20 ┆xtsize(x1-2,j-0.5,1,1,s); ┆ 0x64280…642a0 20 20 6d 6f 76 65 74 6f 28 78 31 2d 30 2e 33 2c 6a 29 0d 0a 20 20 20 20 20 20 0d 0a 20 20 20 20 ┆ moveto(x1-0.3,j) ┆ 0x642a0…642c0 65 6e 64 20 65 6c 73 65 20 6d 6f 76 65 74 6f 28 78 31 2d 30 2e 31 35 2c 6a 29 3b 20 64 72 61 77 ┆end else moveto(x1-0.15,j); draw┆ 0x642c0…642e0 74 6f 28 78 31 2c 6a 29 3b 0d 0a 20 20 65 6e 64 3b 20 20 20 20 20 20 0d 0a 65 6e 64 3b 0d 0a 0d ┆to(x1,j); end; end; ┆ 0x642e0…64300 0a 76 61 72 20 63 68 3a 63 68 61 72 3b 0d 0a 20 20 20 20 20 6a 3a 20 69 6e 74 65 67 65 72 3b 0d ┆ var ch:char; j: integer; ┆ 0x64300…64320 0a 62 65 67 69 6e 0d 0a 20 20 67 72 61 70 68 69 63 73 63 72 65 65 6e 28 4f 4c 49 5f 68 69 67 68 ┆ begin graphicscreen(OLI_high┆ 0x64320…64340 29 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 32 2c 2d 35 2c ┆); graphmode; window(2,-5,┆ 0x64340…64360 33 36 2c 2d 33 35 2c 33 35 29 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 33 2c 2d 31 30 2c 34 30 2c 2d ┆36,-35,35); window(3,-10,40,-┆ 0x64360…64380 34 30 2c 34 30 29 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 34 2c 2d 31 30 30 2c 31 30 30 2c 2d 31 30 ┆40,40); window(4,-100,100,-10┆ 0x64380…643a0 30 2c 31 30 30 29 3b 0d 0a 20 20 76 69 65 77 70 6f 72 74 28 32 2c 31 30 30 2c 35 34 30 2c 31 30 ┆0,100); viewport(2,100,540,10┆ 0x643a0…643c0 30 2c 33 30 30 29 3b 0d 0a 20 20 73 65 6c 65 63 74 77 69 6e 64 6f 77 28 31 29 3b 0d 0a 20 20 73 ┆0,300); selectwindow(1); s┆ 0x643c0…643e0 65 6c 65 63 74 76 69 65 77 70 6f 72 74 28 31 29 3b 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b 0d ┆electviewport(1); drawframe; ┆ 0x643e0…64400 0a 20 20 6d 6f 76 65 74 6f 28 30 2c 30 29 3b 20 64 72 61 77 74 6f 28 36 33 39 2c 33 39 39 29 3b ┆ moveto(0,0); drawto(639,399);┆ 0x64400…64420 (40, 0, 2) 0d 0a 20 20 0d 0a 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 74 65 78 74 6d 6f 64 ┆ read(kbd,ch); textmod┆ 0x64420…64440 65 3b 0d 0a 65 6e 64 2e 20 20 0d 0a 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆e; end. G ┆ 0x64440…64460 00 00 00 00 00 00 00 00 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…] 0x64480…644a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x1b…] 0x64800…64820 (40, 0, 3) 28 2a 47 53 56 2d 50 4c 30 33 2a 29 0d 0a 28 2a 24 49 20 47 53 56 2d 42 41 53 45 2a 29 0d 0a 28 ┆(*GSV-PL03*) (*$I GSV-BASE*) (┆ 0x64820…64840 2a 24 49 20 47 53 56 2d 4d 41 52 4b 2a 29 0d 0a 0d 0a 76 61 72 20 63 68 3a 63 68 61 72 3b 0d 0a ┆*$I GSV-MARK*) var ch:char; ┆ 0x64840…64860 20 20 20 20 20 6a 2c 69 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 20 73 3a 20 73 74 72 69 ┆ j,i: integer; s: stri┆ 0x64860…64880 6e 67 28 2e 32 2e 29 3b 0d 0a 20 20 20 20 20 78 2c 79 3a 72 65 61 6c 3b 0d 0a 62 65 67 69 6e 0d ┆ng(.2.); x,y:real; begin ┆ 0x64880…648a0 0a 20 20 67 72 61 70 68 69 63 73 63 72 65 65 6e 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d ┆ graphicscreen; graphmode; ┆ 0x648a0…648c0 0a 20 20 64 72 61 77 66 72 61 6d 65 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 ┆ drawframe; linepattern:=li┆ 0x648c0…648e0 6e 65 74 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 ┆netype(.1.); FOR i:=1 TO ┆ 0x648e0…64900 32 30 20 44 4f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 ┆20 DO begin if keypress th┆ 0x64900…64920 65 6e 20 65 78 69 74 3b 0d 0a 20 20 20 20 79 3a 3d 33 39 39 2d 69 2a 32 30 3b 0d 0a 20 20 20 20 ┆en exit; y:=399-i*20; ┆ 0x64920…64940 73 74 72 28 69 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 70 6c 6f 74 74 65 78 74 28 34 35 30 2c 79 2c ┆str(i:2,s); plottext(450,y,┆ 0x64940…64960 73 29 3b 0d 0a 20 20 20 20 66 6f 72 20 6a 3a 3d 31 20 74 6f 20 33 20 64 6f 0d 0a 20 20 20 20 62 ┆s); for j:=1 to 3 do b┆ 0x64960…64980 65 67 69 6e 0d 0a 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 65 6e 20 65 78 69 74 3b 0d 0a ┆egin if keypress then exit; ┆ 0x64980…649a0 20 20 20 20 20 20 20 20 79 3a 3d 2b 33 39 39 2d 69 2a 32 30 3b 0d 0a 0d 0a 20 20 20 20 20 20 6d ┆ y:=+399-i*20; m┆ 0x649a0…649c0 61 72 6b 65 72 73 69 7a 65 3a 3d 6a 2a 33 3b 0d 0a 20 20 20 20 20 20 50 4c 4f 54 4d 41 52 4b 45 ┆arkersize:=j*3; PLOTMARKE┆ 0x649c0…649e0 52 28 34 36 30 2b 6a 2a 32 35 2c 79 2c 69 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e ┆R(460+j*25,y,i); end; en┆ 0x649e0…64a00 64 3b 0d 0a 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 32 31 20 54 4f 20 32 34 20 44 4f 0d 0a 20 20 ┆d; FOR i:=21 TO 24 DO ┆ 0x64a00…64a20 62 65 67 69 6e 0d 0a 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 65 6e 20 65 78 69 74 3b 0d ┆begin if keypress then exit; ┆ 0x64a20…64a40 0a 20 20 20 20 79 3a 3d 31 36 30 2d 28 69 2d 32 30 29 2a 32 30 3b 0d 0a 20 20 20 20 73 74 72 28 ┆ y:=160-(i-20)*20; str(┆ 0x64a40…64a60 69 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 70 6c 6f 74 74 65 78 74 28 31 30 2c 79 2c 73 29 3b 0d 0a ┆i:2,s); plottext(10,y,s); ┆ 0x64a60…64a80 20 20 20 20 66 6f 72 20 6a 3a 3d 31 20 74 6f 20 33 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d ┆ for j:=1 to 3 do begin ┆ 0x64a80…64aa0 0a 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 65 6e 20 65 78 69 74 3b 0d 0a 20 20 20 20 20 ┆ if keypress then exit; ┆ 0x64aa0…64ac0 20 6d 61 72 6b 65 72 73 69 7a 65 3a 3d 6a 2a 33 3b 0d 0a 20 20 20 20 20 20 50 4c 4f 54 4d 41 52 ┆ markersize:=j*3; PLOTMAR┆ 0x64ac0…64ae0 4b 45 52 28 35 30 2b 6a 2a 32 35 2c 79 2c 69 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 ┆KER(50+j*25,y,i); end; e┆ 0x64ae0…64b00 6e 64 3b 0d 0a 20 20 66 6f 72 20 69 3a 3d 30 20 74 6f 20 31 31 20 64 6f 0d 0a 20 20 62 65 67 69 ┆nd; for i:=0 to 11 do begi┆ 0x64b00…64b20 6e 0d 0a 20 20 20 20 79 3a 3d 33 39 39 2d 69 2a 32 30 3b 0d 0a 20 20 20 20 6c 69 6e 65 70 61 74 ┆n y:=399-i*20; linepat┆ 0x64b20…64b40 74 65 72 6e 3a 3d 6c 69 6e 65 74 79 70 65 28 2e 69 2e 29 3b 0d 0a 20 20 20 20 73 74 72 28 69 3a ┆tern:=linetype(.i.); str(i:┆ 0x64b40…64b60 32 2c 73 29 3b 0d 0a 20 20 20 20 70 6c 6f 74 74 65 78 74 28 31 30 2c 79 2b 38 2c 73 29 3b 0d 0a ┆2,s); plottext(10,y+8,s); ┆ 0x64b60…64b80 20 20 20 20 66 6f 72 20 6a 3a 3d 31 20 74 6f 20 33 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d ┆ for j:=1 to 3 do begin ┆ 0x64b80…64ba0 0a 20 20 20 20 20 20 79 3a 3d 6a 2a 35 2b 33 39 39 2d 69 2a 32 30 3b 0d 0a 20 20 20 20 20 20 6c ┆ y:=j*5+399-i*20; l┆ 0x64ba0…64bc0 69 6e 65 70 61 74 74 65 72 6e 73 69 7a 65 3a 3d 6a 2a 32 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 ┆inepatternsize:=j*2; move┆ 0x64bc0…64be0 74 6f 28 34 30 2c 79 29 3b 20 64 72 61 77 74 6f 28 34 30 30 2c 79 29 3b 0d 0a 20 20 20 20 65 6e ┆to(40,y); drawto(400,y); en┆ 0x64be0…64c00 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e 65 74 ┆d; end; linepattern:=linet┆ 0x64c00…64c20 (40, 0, 4) 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 53 63 ┆ype(.1.); read(kbd,ch); Sc┆ 0x64c20…64c40 72 5f 64 75 6d 70 28 6e 65 63 5f 31 36 62 69 74 29 3b 0d 0a 20 20 74 65 78 74 6d 6f 64 65 3b 0d ┆r_dump(nec_16bit); textmode; ┆ 0x64c40…64c60 0a 65 6e 64 2e 20 20 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ end. ┆ 0x64c60…64c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x64c80…64ca0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x1b…] 0x65000…65020 (40, 0, 5) 28 2a 47 53 56 2d 50 4c 30 33 2a 29 0d 0a 28 2a 24 49 20 41 3a 47 53 56 2d 42 41 53 45 2a 29 0d ┆(*GSV-PL03*) (*$I A:GSV-BASE*) ┆ 0x65020…65040 0a 0d 0a 76 61 72 20 63 68 3a 63 68 61 72 3b 0d 0a 20 20 20 20 20 6a 2c 69 3a 20 69 6e 74 65 67 ┆ var ch:char; j,i: integ┆ 0x65040…65060 65 72 3b 0d 0a 20 20 20 20 20 73 3a 20 73 74 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 20 20 20 20 20 ┆er; s: string(.2.); ┆ 0x65060…65080 78 2c 79 3a 72 65 61 6c 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 67 72 61 70 68 69 63 73 63 72 65 65 ┆x,y:real; begin graphicscree┆ 0x65080…650a0 6e 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b 0d 0a ┆n; graphmode; drawframe; ┆ 0x650a0…650c0 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e 65 74 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 ┆ linepattern:=linetype(.1.); ┆ 0x650c0…650e0 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 31 30 2c 31 30 2c 31 2c 31 2c 27 4d 27 29 3b 0d 0a 20 ┆ plottextsize(10,10,1,1,'M'); ┆ 0x650e0…65100 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 31 30 2c 35 30 2c 31 2c 32 2c 27 4d 27 29 3b 0d 0a 20 20 ┆plottextsize(10,50,1,2,'M'); ┆ 0x65100…65120 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 31 30 2c 39 30 2c 32 2c 32 2c 27 4d 27 29 3b 0d 0a 20 20 ┆plottextsize(10,90,2,2,'M'); ┆ 0x65120…65140 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 31 30 2c 31 35 30 2c 32 2c 33 2c 27 4d 27 29 3b 0d 0a 20 ┆plottextsize(10,150,2,3,'M'); ┆ 0x65140…65160 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 31 30 2c 32 30 30 2c 33 2c 33 2c 27 4d 27 29 3b 0d 0a ┆ plottextsize(10,200,3,3,'M'); ┆ 0x65160…65180 20 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 31 30 2c 33 30 30 2c 33 2c 34 2c 27 4d 27 29 3b 0d ┆ plottextsize(10,300,3,4,'M'); ┆ 0x65180…651a0 0a 20 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 33 30 30 2c 31 30 30 2c 38 2c 31 32 2c 27 4d 27 ┆ plottextsize(300,100,8,12,'M'┆ 0x651a0…651c0 29 3b 0d 0a 20 0d 0a 20 72 65 61 64 6c 6e 3b 0d 0a 20 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 65 6e ┆); readln; textmode; en┆ 0x651c0…651e0 64 2e 20 20 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆d. ┆ 0x651e0…65200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x65200…65220 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x2f…] 0x65800…65820 (40, 1, 2) 28 2a 47 53 56 2d 50 4d 52 4b 2a 29 0d 0a 28 2a 24 49 20 61 3a 47 53 56 2d 42 41 53 45 2a 29 0d ┆(*GSV-PMRK*) (*$I a:GSV-BASE*) ┆ 0x65820…65840 0a 28 2a 24 49 20 41 3a 47 53 56 2d 4d 41 52 4b 2a 29 0d 0a 0d 0a 76 61 72 20 63 68 3a 63 68 61 ┆ (*$I A:GSV-MARK*) var ch:cha┆ 0x65840…65860 72 3b 0d 0a 20 20 20 20 20 6a 2c 69 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 20 73 3a 20 ┆r; j,i: integer; s: ┆ 0x65860…65880 73 74 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 20 20 20 20 20 78 2c 79 3a 72 65 61 6c 3b 0d 0a 0d 0a ┆string(.2.); x,y:real; ┆ 0x65880…658a0 50 52 4f 43 45 44 55 52 45 20 53 68 6f 77 4d 61 72 6b 73 79 6d 62 6f 6c 65 72 3b 0d 0a 70 72 6f ┆PROCEDURE ShowMarksymboler; pro┆ 0x658a0…658c0 63 65 64 75 72 65 20 6d 61 72 6b 68 65 6c 70 28 69 3a 69 6e 74 65 67 65 72 29 3b 0d 0a 42 45 47 ┆cedure markhelp(i:integer); BEG┆ 0x658c0…658e0 49 4e 0d 0a 20 20 78 3a 3d 69 3b 0d 0a 20 20 73 74 72 28 69 3a 32 2c 73 29 3b 0d 0a 20 20 50 6c ┆IN x:=i; str(i:2,s); Pl┆ 0x658e0…65900 6f 74 54 65 78 74 28 78 2d 30 2e 35 2c 31 2e 35 2c 73 29 3b 0d 0a 20 20 46 4f 52 20 6a 3a 3d 31 ┆otText(x-0.5,1.5,s); FOR j:=1┆ 0x65900…65920 20 74 6f 20 37 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 6d 61 72 6b 65 72 73 69 7a ┆ to 7 DO BEGIN markersiz┆ 0x65920…65940 65 3a 3d 6a 3b 0d 0a 20 20 20 20 50 6c 6f 74 6d 61 72 6b 65 72 28 78 2c 6a 2b 31 2c 69 29 3b 0d ┆e:=j; Plotmarker(x,j+1,i); ┆ 0x65940…65960 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6c 64 52 61 6e ┆ END; END; BEGIN WldRan┆ 0x65960…65980 67 65 28 34 2c 30 2c 32 35 2c 31 30 2c 30 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 69 6e 64 6f 77 ┆ge(4,0,25,10,0); SelectWindow┆ 0x65980…659a0 28 34 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 34 29 3b 20 0d 0a 20 20 6c ┆(4); SelectWldRange(4); l┆ 0x659a0…659c0 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e 65 74 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 20 63 68 ┆inepattern:=linetype(.1.); ch┆ 0x659c0…659e0 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 2c 30 2e 35 2c 27 50 6c ┆heigth:=1; plottext(1,0.5,'Pl┆ 0x659e0…65a00 6f 74 6d 61 72 6b 65 72 28 78 2c 79 2c 69 29 2c 20 4d 61 72 6b 65 72 73 69 7a 65 20 3d 20 31 20 ┆otmarker(x,y,i), Markersize = 1 ┆ 0x65a00…65a20 74 69 6c 20 37 27 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 0d 0a 20 20 ┆til 7'); chheigth:=1; ┆ 0x65a20…65a40 46 4f 52 20 69 3a 3d 31 20 54 4f 20 38 20 44 4f 20 6d 61 72 6b 68 65 6c 70 28 69 29 3b 0d 0a 20 ┆FOR i:=1 TO 8 DO markhelp(i); ┆ 0x65a40…65a60 20 46 4f 52 20 69 3a 3d 31 31 20 54 4f 20 31 38 20 44 4f 20 6d 61 72 6b 68 65 6c 70 28 69 29 3b ┆ FOR i:=11 TO 18 DO markhelp(i);┆ 0x65a60…65a80 0d 0a 20 20 46 4f 52 20 69 3a 3d 32 31 20 54 4f 20 32 34 20 44 4f 20 6d 61 72 6b 68 65 6c 70 28 ┆ FOR i:=21 TO 24 DO markhelp(┆ 0x65a80…65aa0 69 29 3b 0d 0a 20 20 0d 0a 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 69 66 20 28 ┆i); read(kbd,ch); if (┆ 0x65aa0…65ac0 63 68 3d 27 70 27 29 20 6f 72 20 28 63 68 3d 27 50 27 29 20 74 68 65 6e 20 20 53 63 72 5f 64 75 ┆ch='p') or (ch='P') then Scr_du┆ 0x65ac0…65ae0 6d 70 28 6e 65 63 5f 31 36 62 69 74 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆mp(nec_16bit); END; PROCEDUR┆ 0x65ae0…65b00 45 20 53 68 6f 77 4c 69 6e 65 70 61 74 74 65 72 6e 3b 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 ┆E ShowLinepattern; BEGIN W┆ 0x65b00…65b20 6c 64 52 61 6e 67 65 28 33 2c 30 2c 31 30 2c 31 36 2c 30 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 ┆ldRange(3,0,10,16,0); SelectW┆ 0x65b20…65b40 69 6e 64 6f 77 28 33 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 33 29 3b 20 ┆indow(3); SelectWldRange(3); ┆ 0x65b40…65b60 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 2c 30 ┆ chheigth:=1; plottext(1,0┆ 0x65b60…65b80 2e 35 2c 27 4c 69 6e 65 74 79 70 65 28 2e 69 2e 29 2c 20 20 4c 69 6e 65 70 61 74 74 65 72 6e 3a ┆.5,'Linetype(.i.), Linepattern:┆ 0x65b80…65ba0 3d 4c 69 6e 65 74 79 70 65 28 2e 69 2e 29 27 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 32 ┆=Linetype(.i.)'); chheigth:=2┆ 0x65ba0…65bc0 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 74 6f 20 31 34 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d ┆; FOR i:=1 to 14 DO BEGIN ┆ 0x65bc0…65be0 0a 20 20 20 20 79 3a 3d 69 3b 0d 0a 20 20 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e ┆ y:=i; linepattern:=lin┆ 0x65be0…65c00 65 74 79 70 65 28 2e 69 2e 29 3b 0d 0a 20 20 20 20 73 74 72 28 69 3a 32 2c 73 29 3b 0d 0a 20 20 ┆etype(.i.); str(i:2,s); ┆ 0x65c00…65c20 (40, 1, 3) 20 20 50 6c 6f 74 54 65 78 74 28 30 2e 35 2c 79 2b 31 2c 73 29 3b 0d 0a 20 20 20 20 46 4f 52 20 ┆ PlotText(0.5,y+1,s); FOR ┆ 0x65c20…65c40 6a 3a 3d 31 20 74 6f 20 32 20 44 4f 0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 62 ┆j:=1 to 2 DO BEGIN b┆ 0x65c40…65c60 69 74 6e 72 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e ┆itnr:=0; linepattern:=lin┆ 0x65c60…65c80 65 74 79 70 65 28 2e 69 2e 29 3b 0d 0a 20 20 20 20 20 20 79 3a 3d 69 2b 6a 2a 30 2e 32 2b 30 2e ┆etype(.i.); y:=i+j*0.2+0.┆ 0x65c80…65ca0 32 3b 0d 0a 20 20 20 20 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 73 69 7a 65 3a 3d 6a 2a 32 3b 0d ┆2; linepatternsize:=j*2; ┆ 0x65ca0…65cc0 0a 20 20 20 20 20 20 6d 6f 76 65 74 6f 28 31 2c 79 29 3b 20 6c 69 6e 65 74 6f 28 31 30 2c 79 29 ┆ moveto(1,y); lineto(10,y)┆ 0x65cc0…65ce0 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 72 65 61 64 28 6b 62 64 2c ┆; END; END; read(kbd,┆ 0x65ce0…65d00 63 68 29 3b 0d 0a 20 20 69 66 20 28 63 68 3d 27 70 27 29 20 6f 72 20 28 63 68 3d 27 50 27 29 20 ┆ch); if (ch='p') or (ch='P') ┆ 0x65d00…65d20 74 68 65 6e 20 20 53 63 72 5f 64 75 6d 70 28 6e 65 63 5f 31 36 62 69 74 29 3b 0d 0a 45 4e 44 3b ┆then Scr_dump(nec_16bit); END;┆ 0x65d20…65d40 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 68 6f 77 46 69 6c 6c 70 61 74 74 65 72 6e 3b 0d 0a ┆ PROCEDURE ShowFillpattern; ┆ 0x65d40…65d60 42 45 47 49 4e 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e 65 74 79 70 65 28 2e ┆BEGIN linepattern:=linetype(.┆ 0x65d60…65d80 31 2e 29 3b 0d 0a 20 20 6c 69 6e 65 50 61 74 74 65 72 6e 73 69 7a 65 3a 3d 31 3b 0d 0a 20 20 57 ┆1.); linePatternsize:=1; W┆ 0x65d80…65da0 6c 64 52 61 6e 67 65 28 32 2c 30 2c 39 2c 31 2c 37 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 69 6e ┆ldRange(2,0,9,1,7); SelectWin┆ 0x65da0…65dc0 64 6f 77 28 32 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 32 29 3b 20 0d 0a ┆dow(2); SelectWldRange(2); ┆ 0x65dc0…65de0 20 20 63 68 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 2c 36 2e 35 ┆ chheigth:=1; plottext(1,6.5┆ 0x65de0…65e00 2c 27 50 61 74 74 65 72 6e 74 79 70 65 28 2e 69 2e 29 2c 20 20 6e 6f 20 69 20 52 65 63 74 66 69 ┆,'Patterntype(.i.), no i Rectfi┆ 0x65e00…65e20 6c 6c 20 3a 3d 70 61 74 74 65 72 6e 74 79 70 65 28 2e 69 2e 29 27 29 3b 0d 0a 20 20 63 68 68 65 ┆ll :=patterntype(.i.)'); chhe┆ 0x65e20…65e40 69 67 74 68 3a 3d 32 3b 0d 0a 20 20 46 4f 52 20 6a 3a 3d 31 20 74 6f 20 35 20 20 44 4f 0d 0a 20 ┆igth:=2; FOR j:=1 to 5 DO ┆ 0x65e40…65e60 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 28 6a 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 70 6c 6f ┆ BEGIN str(j:2,s); plo┆ 0x65e60…65e80 74 74 65 78 74 28 30 2e 35 2c 6a 2b 30 2e 35 2c 73 29 3b 0d 0a 20 20 20 20 52 65 63 74 66 69 6c ┆ttext(0.5,j+0.5,s); Rectfil┆ 0x65e80…65ea0 6c 28 31 2c 6a 2c 33 2c 6a 2b 31 2c 6a 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 46 4f 52 20 6a ┆l(1,j,3,j+1,j); END; FOR j┆ 0x65ea0…65ec0 3a 3d 36 20 74 6f 20 31 30 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 28 6a ┆:=6 to 10 DO BEGIN str(j┆ 0x65ec0…65ee0 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 70 6c 6f 74 74 65 78 74 28 33 2e 35 2c 6a 2d 35 2b 30 2e 35 ┆:2,s); plottext(3.5,j-5+0.5┆ 0x65ee0…65f00 2c 73 29 3b 0d 0a 20 20 20 20 52 65 63 74 66 69 6c 6c 28 34 2c 6a 2d 35 2c 36 2c 6a 2d 35 2b 31 ┆,s); Rectfill(4,j-5,6,j-5+1┆ 0x65f00…65f20 2c 6a 29 3b 0d 0a 20 20 45 4e 44 3b 20 0d 0a 20 20 46 4f 52 20 6a 3a 3d 31 31 20 74 6f 20 31 35 ┆,j); END; FOR j:=11 to 15┆ 0x65f20…65f40 20 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 28 6a 3a 32 2c 73 29 3b 0d 0a ┆ DO BEGIN str(j:2,s); ┆ 0x65f40…65f60 20 20 20 20 70 6c 6f 74 74 65 78 74 28 36 2e 35 2c 6a 2d 31 30 2b 30 2e 35 2c 73 29 3b 0d 0a 20 ┆ plottext(6.5,j-10+0.5,s); ┆ 0x65f60…65f80 20 20 20 72 65 63 74 66 69 6c 6c 28 37 2c 6a 2d 31 30 2c 39 2c 6a 2d 31 30 2b 31 2c 6a 29 3b 0d ┆ rectfill(7,j-10,9,j-10+1,j); ┆ 0x65f80…65fa0 0a 20 20 45 4e 44 3b 0d 0a 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 69 66 20 ┆ END; read(kbd,ch); if ┆ 0x65fa0…65fc0 28 63 68 3d 27 70 27 29 20 6f 72 20 28 63 68 3d 27 50 27 29 20 74 68 65 6e 20 20 53 63 72 5f 64 ┆(ch='p') or (ch='P') then Scr_d┆ 0x65fc0…65fe0 75 6d 70 28 6e 65 63 5f 31 36 62 69 74 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a ┆ump(nec_16bit); END; BEGIN ┆ 0x65fe0…66000 20 20 67 72 61 70 68 69 63 73 63 72 65 65 6e 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a ┆ graphicscreen; graphmode; ┆ 0x66000…66020 (40, 1, 4) 20 20 53 61 76 65 57 69 6e 64 6f 77 28 31 29 3b 0d 0a 20 20 53 68 6f 77 4c 69 6e 65 70 61 74 74 ┆ SaveWindow(1); ShowLinepatt┆ 0x66020…66040 65 72 6e 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 31 29 3b 0d 0a 20 20 4c 6f ┆ern; SelectWldRange(1); Lo┆ 0x66040…66060 61 64 57 69 6e 64 6f 77 28 31 2c 30 2c 30 29 3b 0d 0a 20 20 53 68 6f 77 46 69 6c 6c 70 61 74 74 ┆adWindow(1,0,0); ShowFillpatt┆ 0x66060…66080 65 72 6e 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 31 29 3b 0d 0a 20 20 4c 6f ┆ern; SelectWldRange(1); Lo┆ 0x66080…660a0 61 64 57 69 6e 64 6f 77 28 31 2c 30 2c 30 29 3b 0d 0a 20 20 53 68 6f 77 4d 61 72 6b 73 79 6d 62 ┆adWindow(1,0,0); ShowMarksymb┆ 0x660a0…660c0 6f 6c 65 72 3b 0d 0a 20 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 45 4e 44 2e 0d 0a 00 00 00 00 00 00 ┆oler; textmode; END. ┆ 0x660c0…660e0 00 00 00 00 00 00 00 00 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…] 0x66100…66120 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x37…] 0x66800…66820 (41, 0, 1) 28 2a 47 53 56 2d 50 4d 52 4b 2a 29 0d 0a 28 2a 24 49 20 61 3a 47 53 56 2d 42 41 53 45 2a 29 0d ┆(*GSV-PMRK*) (*$I a:GSV-BASE*) ┆ 0x66820…66840 0a 28 2a 24 49 20 41 3a 47 53 56 2d 4d 41 52 4b 2a 29 0d 0a 0d 0a 76 61 72 20 63 68 3a 63 68 61 ┆ (*$I A:GSV-MARK*) var ch:cha┆ 0x66840…66860 72 3b 0d 0a 20 20 20 20 20 6a 2c 69 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 20 73 3a 20 ┆r; j,i: integer; s: ┆ 0x66860…66880 73 74 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 20 20 20 20 20 78 2c 79 3a 72 65 61 6c 3b 0d 0a 0d 0a ┆string(.2.); x,y:real; ┆ 0x66880…668a0 50 52 4f 43 45 44 55 52 45 20 53 68 6f 77 4d 61 72 6b 73 79 6d 62 6f 6c 65 72 3b 0d 0a 70 72 6f ┆PROCEDURE ShowMarksymboler; pro┆ 0x668a0…668c0 63 65 64 75 72 65 20 6d 61 72 6b 68 65 6c 70 28 69 3a 69 6e 74 65 67 65 72 29 3b 0d 0a 42 45 47 ┆cedure markhelp(i:integer); BEG┆ 0x668c0…668e0 49 4e 0d 0a 20 20 78 3a 3d 69 3b 0d 0a 20 20 73 74 72 28 69 3a 32 2c 73 29 3b 0d 0a 20 20 50 6c ┆IN x:=i; str(i:2,s); Pl┆ 0x668e0…66900 6f 74 54 65 78 74 28 78 2d 30 2e 35 2c 31 2e 35 2c 73 29 3b 0d 0a 20 20 46 4f 52 20 6a 3a 3d 31 ┆otText(x-0.5,1.5,s); FOR j:=1┆ 0x66900…66920 20 74 6f 20 37 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 6d 61 72 6b 65 72 73 69 7a ┆ to 7 DO BEGIN markersiz┆ 0x66920…66940 65 3a 3d 6a 3b 0d 0a 20 20 20 20 50 6c 6f 74 6d 61 72 6b 65 72 28 78 2c 6a 2b 31 2c 69 29 3b 0d ┆e:=j; Plotmarker(x,j+1,i); ┆ 0x66940…66960 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6c 64 52 61 6e ┆ END; END; BEGIN WldRan┆ 0x66960…66980 67 65 28 34 2c 30 2c 32 35 2c 31 30 2c 30 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 69 6e 64 6f 77 ┆ge(4,0,25,10,0); SelectWindow┆ 0x66980…669a0 28 34 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 34 29 3b 20 0d 0a 20 20 6c ┆(4); SelectWldRange(4); l┆ 0x669a0…669c0 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e 65 74 79 70 65 28 2e 31 2e 29 3b 0d 0a 20 20 63 68 ┆inepattern:=linetype(.1.); ch┆ 0x669c0…669e0 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 2c 30 2e 35 2c 27 50 6c ┆heigth:=1; plottext(1,0.5,'Pl┆ 0x669e0…66a00 6f 74 6d 61 72 6b 65 72 28 78 2c 79 2c 69 29 2c 20 4d 61 72 6b 65 72 73 69 7a 65 20 3d 20 31 20 ┆otmarker(x,y,i), Markersize = 1 ┆ 0x66a00…66a20 74 69 6c 20 37 27 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 0d 0a 20 20 ┆til 7'); chheigth:=1; ┆ 0x66a20…66a40 46 4f 52 20 69 3a 3d 31 20 54 4f 20 38 20 44 4f 20 6d 61 72 6b 68 65 6c 70 28 69 29 3b 0d 0a 20 ┆FOR i:=1 TO 8 DO markhelp(i); ┆ 0x66a40…66a60 20 46 4f 52 20 69 3a 3d 31 31 20 54 4f 20 31 38 20 44 4f 20 6d 61 72 6b 68 65 6c 70 28 69 29 3b ┆ FOR i:=11 TO 18 DO markhelp(i);┆ 0x66a60…66a80 0d 0a 20 20 46 4f 52 20 69 3a 3d 32 31 20 54 4f 20 32 34 20 44 4f 20 6d 61 72 6b 68 65 6c 70 28 ┆ FOR i:=21 TO 24 DO markhelp(┆ 0x66a80…66aa0 69 29 3b 0d 0a 20 20 0d 0a 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 69 66 20 28 ┆i); read(kbd,ch); if (┆ 0x66aa0…66ac0 63 68 3d 27 70 27 29 20 6f 72 20 28 63 68 3d 27 50 27 29 20 74 68 65 6e 20 20 53 63 72 5f 64 75 ┆ch='p') or (ch='P') then Scr_du┆ 0x66ac0…66ae0 6d 70 28 6e 65 63 5f 31 36 62 69 74 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 ┆mp(nec_16bit); END; PROCEDUR┆ 0x66ae0…66b00 45 20 53 68 6f 77 4c 69 6e 65 70 61 74 74 65 72 6e 3b 20 20 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 ┆E ShowLinepattern; BEGIN W┆ 0x66b00…66b20 6c 64 52 61 6e 67 65 28 33 2c 30 2c 31 30 2c 31 36 2c 30 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 ┆ldRange(3,0,10,16,0); SelectW┆ 0x66b20…66b40 69 6e 64 6f 77 28 33 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 33 29 3b 20 ┆indow(3); SelectWldRange(3); ┆ 0x66b40…66b60 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 2c 30 ┆ chheigth:=1; plottext(1,0┆ 0x66b60…66b80 2e 35 2c 27 4c 69 6e 65 74 79 70 65 28 2e 69 2e 29 2c 20 20 4c 69 6e 65 70 61 74 74 65 72 6e 3a ┆.5,'Linetype(.i.), Linepattern:┆ 0x66b80…66ba0 3d 70 61 74 74 65 72 6e 74 79 70 65 28 2e 69 2e 29 27 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 ┆=patterntype(.i.)'); chheigth┆ 0x66ba0…66bc0 3a 3d 32 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 74 6f 20 31 34 20 44 4f 0d 0a 20 20 42 45 47 ┆:=2; FOR i:=1 to 14 DO BEG┆ 0x66bc0…66be0 49 4e 0d 0a 20 20 20 20 79 3a 3d 69 3b 0d 0a 20 20 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d ┆IN y:=i; linepattern:=┆ 0x66be0…66c00 6c 69 6e 65 74 79 70 65 28 2e 69 2e 29 3b 0d 0a 20 20 20 20 73 74 72 28 69 3a 32 2c 73 29 3b 0d ┆linetype(.i.); str(i:2,s); ┆ 0x66c00…66c20 (41, 0, 2) 0a 20 20 20 20 50 6c 6f 74 54 65 78 74 28 30 2e 35 2c 79 2b 31 2c 73 29 3b 0d 0a 20 20 20 20 46 ┆ PlotText(0.5,y+1,s); F┆ 0x66c20…66c40 4f 52 20 6a 3a 3d 31 20 74 6f 20 32 20 44 4f 0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆OR j:=1 to 2 DO BEGIN ┆ 0x66c40…66c60 20 20 62 69 74 6e 72 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d ┆ bitnr:=0; linepattern:=┆ 0x66c60…66c80 6c 69 6e 65 74 79 70 65 28 2e 69 2e 29 3b 0d 0a 20 20 20 20 20 20 79 3a 3d 69 2b 6a 2a 30 2e 32 ┆linetype(.i.); y:=i+j*0.2┆ 0x66c80…66ca0 2b 30 2e 32 3b 0d 0a 20 20 20 20 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 73 69 7a 65 3a 3d 6a 2a ┆+0.2; linepatternsize:=j*┆ 0x66ca0…66cc0 32 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 74 6f 28 31 2c 79 29 3b 20 6c 69 6e 65 74 6f 28 31 30 ┆2; moveto(1,y); lineto(10┆ 0x66cc0…66ce0 2c 79 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 72 65 61 64 28 6b ┆,y); END; END; read(k┆ 0x66ce0…66d00 62 64 2c 63 68 29 3b 0d 0a 20 20 69 66 20 28 63 68 3d 27 70 27 29 20 6f 72 20 28 63 68 3d 27 50 ┆bd,ch); if (ch='p') or (ch='P┆ 0x66d00…66d20 27 29 20 74 68 65 6e 20 20 53 63 72 5f 64 75 6d 70 28 6e 65 63 5f 31 36 62 69 74 29 3b 0d 0a 45 ┆') then Scr_dump(nec_16bit); E┆ 0x66d20…66d40 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 68 6f 77 46 69 6c 6c 70 61 74 74 65 72 6e ┆ND; PROCEDURE ShowFillpattern┆ 0x66d40…66d60 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 6c 69 6e 65 70 61 74 74 65 72 6e 3a 3d 6c 69 6e 65 74 79 70 ┆; BEGIN linepattern:=linetyp┆ 0x66d60…66d80 65 28 2e 31 2e 29 3b 0d 0a 20 20 6c 69 6e 65 50 61 74 74 65 72 6e 73 69 7a 65 3a 3d 31 3b 0d 0a ┆e(.1.); linePatternsize:=1; ┆ 0x66d80…66da0 20 20 57 6c 64 52 61 6e 67 65 28 32 2c 30 2c 39 2c 31 2c 37 29 3b 0d 0a 20 20 53 65 6c 65 63 74 ┆ WldRange(2,0,9,1,7); Select┆ 0x66da0…66dc0 57 69 6e 64 6f 77 28 32 29 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 32 29 3b ┆Window(2); SelectWldRange(2);┆ 0x66dc0…66de0 20 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 31 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 2c ┆ chheigth:=1; plottext(1,┆ 0x66de0…66e00 36 2e 35 2c 27 50 61 74 74 65 72 6e 74 79 70 65 28 2e 69 2e 29 2c 20 20 46 69 6c 6c 70 61 74 74 ┆6.5,'Patterntype(.i.), Fillpatt┆ 0x66e00…66e20 65 72 6e 3a 3d 70 61 74 74 65 72 6e 74 79 70 65 28 2e 69 2e 29 27 29 3b 0d 0a 20 20 63 68 68 65 ┆ern:=patterntype(.i.)'); chhe┆ 0x66e20…66e40 69 67 74 68 3a 3d 32 3b 0d 0a 20 20 46 4f 52 20 6a 3a 3d 31 20 74 6f 20 35 20 20 44 4f 0d 0a 20 ┆igth:=2; FOR j:=1 to 5 DO ┆ 0x66e40…66e60 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 28 6a 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 70 6c 6f ┆ BEGIN str(j:2,s); plo┆ 0x66e60…66e80 74 74 65 78 74 28 30 2e 35 2c 6a 2b 30 2e 35 2c 73 29 3b 0d 0a 20 20 20 20 52 65 63 74 66 69 6c ┆ttext(0.5,j+0.5,s); Rectfil┆ 0x66e80…66ea0 6c 28 31 2c 6a 2c 33 2c 6a 2b 31 2c 6a 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 46 4f 52 20 6a ┆l(1,j,3,j+1,j); END; FOR j┆ 0x66ea0…66ec0 3a 3d 36 20 74 6f 20 31 30 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 28 6a ┆:=6 to 10 DO BEGIN str(j┆ 0x66ec0…66ee0 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 70 6c 6f 74 74 65 78 74 28 33 2e 35 2c 6a 2d 35 2b 30 2e 35 ┆:2,s); plottext(3.5,j-5+0.5┆ 0x66ee0…66f00 2c 73 29 3b 0d 0a 20 20 20 20 52 65 63 74 66 69 6c 6c 28 34 2c 6a 2d 35 2c 36 2c 6a 2d 35 2b 31 ┆,s); Rectfill(4,j-5,6,j-5+1┆ 0x66f00…66f20 2c 6a 29 3b 0d 0a 20 20 45 4e 44 3b 20 0d 0a 20 20 46 4f 52 20 6a 3a 3d 31 31 20 74 6f 20 31 35 ┆,j); END; FOR j:=11 to 15┆ 0x66f20…66f40 20 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 28 6a 3a 32 2c 73 29 3b 0d 0a ┆ DO BEGIN str(j:2,s); ┆ 0x66f40…66f60 20 20 20 20 70 6c 6f 74 74 65 78 74 28 36 2e 35 2c 6a 2d 31 30 2b 30 2e 35 2c 73 29 3b 0d 0a 20 ┆ plottext(6.5,j-10+0.5,s); ┆ 0x66f60…66f80 20 20 20 72 65 63 74 66 69 6c 6c 28 37 2c 6a 2d 31 30 2c 39 2c 6a 2d 31 30 2b 31 2c 6a 29 3b 0d ┆ rectfill(7,j-10,9,j-10+1,j); ┆ 0x66f80…66fa0 0a 20 20 45 4e 44 3b 0d 0a 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 69 66 20 ┆ END; read(kbd,ch); if ┆ 0x66fa0…66fc0 28 63 68 3d 27 70 27 29 20 6f 72 20 28 63 68 3d 27 50 27 29 20 74 68 65 6e 20 20 53 63 72 5f 64 ┆(ch='p') or (ch='P') then Scr_d┆ 0x66fc0…66fe0 75 6d 70 28 6e 65 63 5f 31 36 62 69 74 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a ┆ump(nec_16bit); END; BEGIN ┆ 0x66fe0…67000 20 20 67 72 61 70 68 69 63 73 63 72 65 65 6e 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a ┆ graphicscreen; graphmode; ┆ 0x67000…67020 (41, 0, 3) 20 20 53 61 76 65 57 69 6e 64 6f 77 28 31 29 3b 0d 0a 20 20 53 68 6f 77 4c 69 6e 65 70 61 74 74 ┆ SaveWindow(1); ShowLinepatt┆ 0x67020…67040 65 72 6e 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 31 29 3b 0d 0a 20 20 4c 6f ┆ern; SelectWldRange(1); Lo┆ 0x67040…67060 61 64 57 69 6e 64 6f 77 28 31 2c 30 2c 30 29 3b 0d 0a 20 20 53 68 6f 77 46 69 6c 6c 70 61 74 74 ┆adWindow(1,0,0); ShowFillpatt┆ 0x67060…67080 65 72 6e 3b 0d 0a 20 20 53 65 6c 65 63 74 57 6c 64 52 61 6e 67 65 28 31 29 3b 0d 0a 20 20 4c 6f ┆ern; SelectWldRange(1); Lo┆ 0x67080…670a0 61 64 57 69 6e 64 6f 77 28 31 2c 30 2c 30 29 3b 0d 0a 20 20 53 68 6f 77 4d 61 72 6b 73 79 6d 62 ┆adWindow(1,0,0); ShowMarksymb┆ 0x670a0…670c0 6f 6c 65 72 3b 0d 0a 20 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 45 4e 44 2e 0d 0a 00 00 00 00 00 00 ┆oler; textmode; END. ┆ 0x670c0…670e0 00 00 00 00 00 00 00 00 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…] 0x67100…67120 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x37…] 0x67800…67820 (41, 0, 5) 28 2a 67 73 76 2d 74 65 73 74 2a 29 0d 0a 28 2a 24 69 20 61 3a 67 73 76 2d 62 61 73 65 2a 29 0d ┆(*gsv-test*) (*$i a:gsv-base*) ┆ 0x67820…67840 0a 0d 0a 76 61 72 20 63 68 3a 63 68 61 72 3b 0d 0a 20 20 20 20 20 6a 2c 69 3a 20 69 6e 74 65 67 ┆ var ch:char; j,i: integ┆ 0x67840…67860 65 72 3b 0d 0a 20 20 20 20 20 73 3a 20 73 74 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 20 20 20 20 20 ┆er; s: string(.2.); ┆ 0x67860…67880 78 2c 79 3a 72 65 61 6c 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 72 61 70 68 69 63 73 63 72 ┆x,y:real; BEGIN graphicscr┆ 0x67880…678a0 65 65 6e 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b ┆een; graphmode; drawframe;┆ 0x678a0…678c0 0d 0a 20 20 63 68 77 69 64 74 68 3a 3d 31 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 31 3b 0d ┆ chwidth:=1; chheigth:=1; ┆ 0x678c0…678e0 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 34 30 2c 27 56 91 6b 73 74 68 75 73 61 66 64 65 ┆ plottext(100,40,'V ksthusafde┆ 0x678e0…67900 6c 69 6e 67 65 6e 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 32 34 2c 27 41 67 ┆lingen'); plottext(100,24,'Ag┆ 0x67900…67920 72 6f 76 65 6a 20 31 30 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 38 2c 27 32 ┆rovej 10'); plottext(100,8,'2┆ 0x67920…67940 36 33 30 20 54 86 73 74 72 75 70 27 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 32 3b 0d 0a ┆630 T strup'); chheigth:=2; ┆ 0x67940…67960 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 31 32 38 2c 27 56 91 6b 73 74 68 75 73 61 66 64 65 ┆ plottext(100,128,'V ksthusafde┆ 0x67960…67980 6c 69 6e 67 65 6e 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 31 30 34 2c 27 41 ┆lingen'); plottext(100,104,'A┆ 0x67980…679a0 67 72 6f 76 65 6a 20 31 30 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 38 30 2c ┆grovej 10'); plottext(100,80,┆ 0x679a0…679c0 27 32 36 33 30 20 54 86 73 74 72 75 70 27 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 32 3b ┆'2630 T strup'); chheigth:=2;┆ 0x679c0…679e0 0d 0a 20 20 63 68 77 69 64 74 68 3a 3d 32 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c ┆ chwidth:=2; plottext(100,┆ 0x679e0…67a00 32 31 36 2c 27 56 91 6b 73 74 68 75 73 61 66 64 65 6c 69 6e 67 65 6e 27 29 3b 0d 0a 20 20 70 6c ┆216,'V ksthusafdelingen'); pl┆ 0x67a00…67a20 6f 74 74 65 78 74 28 31 30 30 2c 31 39 32 2c 27 41 67 72 6f 76 65 6a 20 31 30 27 29 3b 0d 0a 20 ┆ottext(100,192,'Agrovej 10'); ┆ 0x67a20…67a40 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 31 36 38 2c 27 32 36 33 30 20 54 86 73 74 72 75 70 27 ┆ plottext(100,168,'2630 T strup'┆ 0x67a40…67a60 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 33 3b 0d 0a 20 20 63 68 77 69 64 74 68 3a 3d 32 ┆); chheigth:=3; chwidth:=2┆ 0x67a60…67a80 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 33 32 32 2c 27 56 91 6b 73 74 68 75 73 61 ┆; plottext(100,322,'V ksthusa┆ 0x67a80…67aa0 66 64 65 6c 69 6e 67 65 6e 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 32 39 32 ┆fdelingen'); plottext(100,292┆ 0x67aa0…67ac0 2c 27 41 67 72 6f 76 65 6a 20 31 30 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c ┆,'Agrovej 10'); plottext(100,┆ 0x67ac0…67ae0 32 36 30 2c 27 32 36 33 30 20 54 86 73 74 72 75 70 27 29 3b 0d 0a 20 20 72 65 61 64 28 6b 62 64 ┆260,'2630 T strup'); read(kbd┆ 0x67ae0…67b00 2c 63 68 29 3b 0d 0a 20 20 69 66 20 63 68 3d 27 70 27 20 74 68 65 6e 0d 0a 20 20 73 63 72 5f 64 ┆,ch); if ch='p' then scr_d┆ 0x67b00…67b20 75 6d 70 28 6e 65 63 5f 31 36 62 69 74 29 3b 20 20 0d 0a 20 20 74 65 78 74 6d 6f 64 65 3b 0d 0a ┆ump(nec_16bit); textmode; ┆ 0x67b20…67b40 45 4e 44 2e 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆END. ┆ 0x67b40…67b60 00 00 00 00 00 00 00 00 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…] 0x67b80…67ba0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x23…] 0x68000…68020 (41, 1, 2) 28 2a 67 73 76 2d 74 65 73 74 2a 29 0d 0a 28 2a 24 69 20 61 3a 67 73 76 2d 62 61 73 65 2a 29 0d ┆(*gsv-test*) (*$i a:gsv-base*) ┆ 0x68020…68040 0a 0d 0a 76 61 72 20 63 68 3a 63 68 61 72 3b 0d 0a 20 20 20 20 20 6a 2c 69 3a 20 69 6e 74 65 67 ┆ var ch:char; j,i: integ┆ 0x68040…68060 65 72 3b 0d 0a 20 20 20 20 20 73 3a 20 73 74 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 20 20 20 20 20 ┆er; s: string(.2.); ┆ 0x68060…68080 78 2c 79 3a 72 65 61 6c 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 72 61 70 68 69 63 73 63 72 ┆x,y:real; BEGIN graphicscr┆ 0x68080…680a0 65 65 6e 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b ┆een; graphmode; drawframe;┆ 0x680a0…680c0 0d 0a 20 20 63 68 77 69 64 74 68 3a 3d 31 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 31 3b 0d ┆ chwidth:=1; chheigth:=1; ┆ 0x680c0…680e0 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 34 30 2c 27 56 91 6b 73 74 68 75 73 61 66 64 65 ┆ plottext(100,40,'V ksthusafde┆ 0x680e0…68100 6c 69 6e 67 65 6e 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 32 34 2c 27 41 67 ┆lingen'); plottext(100,24,'Ag┆ 0x68100…68120 72 6f 76 65 6a 20 31 30 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 38 2c 27 32 ┆rovej 10'); plottext(100,8,'2┆ 0x68120…68140 36 33 30 20 54 86 73 74 72 75 70 27 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 32 3b 0d 0a ┆630 T strup'); chheigth:=2; ┆ 0x68140…68160 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 31 32 38 2c 27 56 91 6b 73 74 68 75 73 61 66 64 65 ┆ plottext(100,128,'V ksthusafde┆ 0x68160…68180 6c 69 6e 67 65 6e 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 31 30 34 2c 27 41 ┆lingen'); plottext(100,104,'A┆ 0x68180…681a0 67 72 6f 76 65 6a 20 31 30 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 38 30 2c ┆grovej 10'); plottext(100,80,┆ 0x681a0…681c0 27 32 36 33 30 20 54 86 73 74 72 75 70 27 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 32 3b ┆'2630 T strup'); chheigth:=2;┆ 0x681c0…681e0 0d 0a 20 20 63 68 77 69 64 74 68 3a 3d 32 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c ┆ chwidth:=2; plottext(100,┆ 0x681e0…68200 32 31 36 2c 27 56 91 6b 73 74 68 75 73 61 66 64 65 6c 69 6e 67 65 6e 27 29 3b 0d 0a 20 20 70 6c ┆216,'V ksthusafdelingen'); pl┆ 0x68200…68220 6f 74 74 65 78 74 28 31 30 30 2c 31 39 32 2c 27 41 67 72 6f 76 65 6a 20 31 30 27 29 3b 0d 0a 20 ┆ottext(100,192,'Agrovej 10'); ┆ 0x68220…68240 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 31 36 38 2c 27 32 36 33 30 20 54 86 73 74 72 75 70 27 ┆ plottext(100,168,'2630 T strup'┆ 0x68240…68260 29 3b 0d 0a 20 20 63 68 68 65 69 67 74 68 3a 3d 33 3b 0d 0a 20 20 63 68 77 69 64 74 68 3a 3d 32 ┆); chheigth:=3; chwidth:=2┆ 0x68260…68280 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 33 32 32 2c 27 56 91 6b 73 74 68 75 73 61 ┆; plottext(100,322,'V ksthusa┆ 0x68280…682a0 66 64 65 6c 69 6e 67 65 6e 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c 32 39 32 ┆fdelingen'); plottext(100,292┆ 0x682a0…682c0 2c 27 41 67 72 6f 76 65 6a 20 31 30 27 29 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 28 31 30 30 2c ┆,'Agrovej 10'); plottext(100,┆ 0x682c0…682e0 32 36 30 2c 27 32 36 33 30 20 54 86 73 74 72 75 70 27 29 3b 0d 0a 20 20 72 65 61 64 28 6b 62 64 ┆260,'2630 T strup'); read(kbd┆ 0x682e0…68300 2c 63 68 29 3b 0d 0a 20 20 69 66 20 63 68 3d 27 70 27 20 74 68 65 6e 0d 0a 20 20 73 63 72 5f 64 ┆,ch); if ch='p' then scr_d┆ 0x68300…68320 75 6d 70 28 6e 65 63 5f 38 62 69 74 29 3b 20 20 0d 0a 20 20 74 65 78 74 6d 6f 64 65 3b 0d 0a 45 ┆ump(nec_8bit); textmode; E┆ 0x68320…68340 4e 44 2e 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ND. ┆ 0x68340…68360 00 00 00 00 00 00 00 00 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…] 0x68380…683a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x23…] 0x68800…68820 (41, 1, 4) 28 2a 47 53 56 2d 41 78 65 72 2a 29 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 61 6b 73 65 73 79 73 ┆(*GSV-Axer*) æUdskriver aksesys┆ 0x68820…68840 74 65 6d 65 74 20 74 69 6c 20 65 6e 20 78 2c 79 20 67 72 61 66 3a 20 20 20 20 20 20 20 20 20 20 ┆temet til en x,y graf: ┆ 0x68840…68860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 7b 78 64 ┆ å æxd┆ 0x68860…68880 65 6e 73 2f 79 64 65 6e 73 3a 20 20 65 74 20 74 61 6c 20 6d 65 6c 6c 65 6d 20 30 20 6f 67 20 39 ┆ens/ydens: et tal mellem 0 og 9┆ 0x68880…688a0 2c 20 64 65 72 20 61 6e 67 69 76 65 72 20 68 76 6f 72 6d 61 6e 67 65 20 6d 65 6c 6c 65 6d 72 75 ┆, der angiver hvormange mellemru┆ 0x688a0…688c0 6d 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 72 20 65 72 20 6d 65 6c 6c 65 6d ┆må æ der er mellem┆ 0x688c0…688e0 20 75 64 73 6b 72 69 76 6e 69 6e 67 65 6e 20 61 66 20 76 91 72 64 69 65 72 20 70 86 20 68 65 6e ┆ udskrivningen af v rdier p hen┆ 0x688e0…68900 68 6f 6c 64 73 76 69 73 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 20 6f 67 20 79 ┆holdsviså æ x og y┆ 0x68900…68920 2d 61 6b 73 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆-aksen ┆ 0x68920…68940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 7b 67 69 74 74 65 72 3a 20 20 54 72 75 65 ┆ å ægitter: True┆ 0x68940…68960 3a 20 20 67 69 74 74 65 72 20 74 65 67 6e 65 73 20 20 20 46 61 6c 73 65 3a 20 20 67 69 74 74 65 ┆: gitter tegnes False: gitte┆ 0x68960…68980 72 20 74 65 67 6e 65 73 20 69 6b 6b 65 20 20 20 20 20 20 20 20 20 7d 0d 0a 7b 45 6b 73 70 6f 78 ┆r tegnes ikke å æEkspox┆ 0x68980…689a0 78 2f 79 79 3a 20 27 4a 27 20 3a 20 20 78 2f 79 2d 61 6b 73 65 20 76 91 72 64 69 65 72 20 75 64 ┆x/yy: 'J' : x/y-akse v rdier ud┆ 0x689a0…689c0 73 6b 72 69 76 65 73 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 7d 0d 0a ┆skrives eksponentielt å ┆ 0x689c0…689e0 7b 20 20 20 20 20 20 20 20 20 20 20 20 27 4e 27 20 3a 20 20 76 91 72 64 69 65 72 20 75 64 73 6b ┆æ 'N' : v rdier udsk┆ 0x689e0…68a00 72 69 76 65 73 20 69 6b 6b 65 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 ┆rives ikke eksponentielt ┆ 0x68a00…68a20 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 77 61 78 69 73 28 20 78 ┆ å PROCEDURE drawaxis( x┆ 0x68a20…68a40 64 65 6e 73 2c 20 79 64 65 6e 73 3a 20 49 4e 54 45 47 45 52 3b 20 67 69 74 74 65 72 3a 20 62 6f ┆dens, ydens: INTEGER; gitter: bo┆ 0x68a40…68a60 6f 6c 65 61 6e 3b 20 0d 0a 45 6b 73 70 6f 78 78 2c 20 45 6b 73 70 6f 79 79 20 3a 20 73 74 72 31 ┆olean; Ekspoxx, Ekspoyy : str1┆ 0x68a60…68a80 29 3b 0d 0a 56 41 52 0d 0a 20 20 78 6b 30 2c 20 79 6b 30 2c 20 78 6b 31 2c 20 79 6b 31 2c 20 4e ┆); VAR xk0, yk0, xk1, yk1, N┆ 0x68a80…68aa0 64 69 66 66 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 65 6b 73 70 6f 78 2c 20 65 6b 73 70 6f ┆diff : INTEGER; ekspox, ekspo┆ 0x68aa0…68ac0 79 2c 6a 2c 69 2c 20 79 73 2c 20 78 73 2c 20 64 65 6c 74 61 2c 20 6e 70 6f 69 6e 74 73 09 3a 20 ┆y,j,i, ys, xs, delta, npoints : ┆ 0x68ac0…68ae0 49 4e 54 45 47 45 52 3b 0d 0a 20 20 64 69 66 66 2c 20 6e 75 6d 62 65 72 2c 20 73 2c 20 66 72 61 ┆INTEGER; diff, number, s, fra┆ 0x68ae0…68b00 63 74 3a 20 52 45 41 4c 3b 0d 0a 20 20 73 74 3a 20 73 74 72 38 30 3b 0d 0a 0d 0a 7b 4f 6d 66 6f ┆ct: REAL; st: str80; æOmfo┆ 0x68b00…68b20 72 6d 65 72 20 65 74 20 61 6c 6d 69 6e 64 65 6c 69 67 74 20 74 61 6c 20 28 78 31 29 2c 20 76 65 ┆rmer et almindeligt tal (x1), ve┆ 0x68b20…68b40 64 20 68 6a 91 6c 70 20 61 66 20 65 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 20 ┆d hj lp af en opgiven eksponent ┆ 0x68b40…68b60 28 65 78 70 6f 29 7d 0d 0a 7b 74 69 6c 20 65 6e 20 73 74 72 69 6e 67 2c 20 68 76 6f 72 20 74 61 ┆(expo)å ætil en string, hvor ta┆ 0x68b60…68b80 6c 6c 65 74 20 61 6e 67 69 76 65 73 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 ┆llet angives eksponentielt ┆ 0x68b80…68ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 46 55 4e ┆ å FUN┆ 0x68ba0…68bc0 43 54 49 4f 4e 20 73 74 72 69 6e 67 6e 75 6d 62 65 72 28 78 31 3a 20 52 45 41 4c 3b 65 6b 73 70 ┆CTION stringnumber(x1: REAL;eksp┆ 0x68bc0…68be0 6f 09 3a 20 49 4e 54 45 47 45 52 29 3a 20 73 74 72 38 30 3b 0d 0a 56 41 52 20 73 3a 20 73 74 72 ┆o : INTEGER): str80; VAR s: str┆ 0x68be0…68c00 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 28 78 31 2a 65 78 70 28 2d 65 6b 73 70 6f 2a ┆80; BEGIN str(x1*exp(-ekspo*┆ 0x68c00…68c20 (41, 1, 5) 6c 6e 28 31 30 2e 30 29 29 3a 35 3a 32 2c 73 29 3b 0d 0a 20 20 73 74 72 69 6e 67 6e 75 6d 62 65 ┆ln(10.0)):5:2,s); stringnumbe┆ 0x68c20…68c40 72 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 7b 42 65 72 65 67 6e 65 72 20 68 76 6f 72 73 74 6f ┆r:=s; END; æBeregner hvorsto┆ 0x68c40…68c60 72 20 65 6b 73 70 6f 6e 65 6e 74 65 6e 20 73 6b 61 6c 20 76 91 72 65 2c 20 68 76 69 73 20 64 65 ┆r eksponenten skal v re, hvis de┆ 0x68c60…68c80 74 20 73 74 9b 72 73 74 65 20 74 61 6c 20 73 6b 61 6c 20 76 91 72 65 7d 0d 0a 7b 6d 69 6e 64 72 ┆t st rste tal skal v reå æmindr┆ 0x68c80…68ca0 65 20 65 6e 64 20 31 2e 30 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆e end 1.00 ┆ 0x68ca0…68cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x68cc0…68ce0 20 20 7d 20 0d 0a 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 47 65 74 45 78 70 6f 6e 65 6e 74 28 58 ┆ å FUNCTION GetExponent(X┆ 0x68ce0…68d00 31 3a 52 45 41 4c 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 47 65 74 45 78 ┆1:REAL):INTEGER; BEGIN GetEx┆ 0x68d00…68d20 70 6f 6e 65 6e 74 3a 3d 30 3b 0d 0a 20 20 49 46 20 58 31 3c 3e 30 2e 30 20 54 48 45 4e 0d 0a 20 ┆ponent:=0; IF X1<>0.0 THEN ┆ 0x68d20…68d40 20 20 20 49 46 20 61 62 73 28 58 31 29 3e 3d 31 2e 30 20 54 48 45 4e 20 47 65 74 45 78 70 6f 6e ┆ IF abs(X1)>=1.0 THEN GetExpon┆ 0x68d40…68d60 65 6e 74 3a 3d 74 72 75 6e 63 28 6c 6e 28 61 62 73 28 58 31 29 29 2f 6c 6e 28 31 30 2e 30 29 29 ┆ent:=trunc(ln(abs(X1))/ln(10.0))┆ 0x68d60…68d80 0d 0a 20 20 20 20 45 4c 53 45 20 47 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 2d 74 72 75 6e 63 28 61 ┆ ELSE GetExponent:=-trunc(a┆ 0x68d80…68da0 62 73 28 6c 6e 28 61 62 73 28 58 31 29 29 29 2f 6c 6e 28 31 30 2e 30 29 2b 31 2e 30 29 3b 0d 0a ┆bs(ln(abs(X1)))/ln(10.0)+1.0); ┆ 0x68da0…68dc0 45 4e 44 3b 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 68 76 6f 72 73 74 6f 72 20 65 6b 73 70 ┆END; æUdskriver hvorstor eksp┆ 0x68dc0…68de0 6f 6e 65 6e 74 65 6e 20 65 72 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 45 78 70 ┆onenten erå PROCEDURE DrawExp┆ 0x68de0…68e00 6f 6e 65 6e 74 28 78 31 2c 79 31 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 49 4e 54 45 47 45 52 3b ┆onent(x1,y1,MaxExponent:INTEGER;┆ 0x68e00…68e20 73 3a 20 73 74 72 38 30 29 3b 0d 0a 56 41 52 20 69 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 ┆s: str80); VAR i:INTEGER; BEGI┆ 0x68e20…68e40 4e 0d 0a 20 20 57 6e 64 5f 64 72 61 77 74 65 78 74 28 78 31 2c 79 31 2c 73 29 3b 0d 0a 20 20 69 ┆N Wnd_drawtext(x1,y1,s); i┆ 0x68e40…68e60 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 73 74 72 28 4d 61 78 45 78 70 6f 6e 65 6e 74 2c 53 29 3b ┆:=len(s); str(MaxExponent,S);┆ 0x68e60…68e80 0d 0a 20 20 57 6e 64 5f 64 72 61 77 74 65 78 74 28 78 31 2b 69 2a 38 2c 20 79 31 2b 32 2c 20 53 ┆ Wnd_drawtext(x1+i*8, y1+2, S┆ 0x68e80…68ea0 29 3b 20 20 20 20 20 20 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 65 ┆); END; æUdskriver e┆ 0x68ea0…68ec0 6e 20 73 74 72 69 6e 67 20 61 66 20 74 61 6c 20 70 86 20 65 6e 20 67 69 76 65 6e 20 70 6f 73 69 ┆n string af tal p en given posi┆ 0x68ec0…68ee0 74 69 6f 6e 2c 20 6d 65 64 20 65 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 20 20 ┆tion, med en opgiven eksponent ┆ 0x68ee0…68f00 20 7d 0d 0a 7b 78 31 20 6f 67 20 79 31 3a 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 6b 6f 6f 72 64 ┆ å æx1 og y1: udskrivningskoord┆ 0x68f00…68f20 69 6e 61 74 65 72 6e 65 20 20 20 20 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 20 65 78 73 70 6f 6e 65 ┆inaterne MaxExponent: exspone┆ 0x68f20…68f40 6e 74 65 6e 20 64 65 72 20 61 6e 76 65 6e 64 65 73 7d 0d 0a 7b 76 65 64 20 75 64 73 6b 72 69 76 ┆nten der anvendeså æved udskriv┆ 0x68f40…68f60 6e 69 6e 67 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ningen ┆ 0x68f60…68f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x68f80…68fa0 20 7d 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 4e 75 6d 28 78 31 2c 79 31 2c ┆ å PROCEDURE DrawNum(x1,y1,┆ 0x68fa0…68fc0 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 49 4e 54 45 47 45 52 3b 4e 75 6d 62 65 72 3a 52 45 41 4c 29 ┆MaxExponent:INTEGER;Number:REAL)┆ 0x68fc0…68fe0 3b 0d 0a 56 41 52 20 69 3a 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 53 74 72 4e 75 6d 62 65 72 ┆; VAR i:INTEGER; StrNumber┆ 0x68fe0…69000 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 53 74 72 4e 75 6d 62 65 72 3a 3d 53 74 ┆: str80; BEGIN StrNumber:=St┆ 0x69000…69020 (42, 0, 1) 72 69 6e 67 4e 75 6d 62 65 72 28 4e 75 6d 62 65 72 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 29 3b 0d ┆ringNumber(Number,MaxExponent); ┆ 0x69020…69040 0a 20 20 57 6e 64 5f 44 72 61 77 74 65 78 74 28 78 31 2c 79 31 2c 53 74 72 4e 75 6d 62 65 72 29 ┆ Wnd_Drawtext(x1,y1,StrNumber)┆ 0x69040…69060 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 7b 78 64 65 6e 73 20 6f ┆; END; BEGIN æxdens o┆ 0x69060…69080 67 20 79 64 65 6e 73 20 6f 6d 64 61 6e 6e 65 73 20 73 86 20 64 65 20 70 61 73 73 65 20 74 69 6c ┆g ydens omdannes s de passe til┆ 0x69080…690a0 20 70 72 6f 67 72 61 6d 6d 65 74 7d 0d 0a 20 20 0d 0a 20 20 78 64 65 6e 73 20 3a 3d 20 31 30 20 ┆ programmetå xdens := 10 ┆ 0x690a0…690c0 2d 20 78 64 65 6e 73 3b 0d 0a 20 20 79 64 65 6e 73 20 3a 3d 20 31 30 20 2d 20 79 64 65 6e 73 3b ┆- xdens; ydens := 10 - ydens;┆ 0x690c0…690e0 0d 0a 20 20 0d 0a 20 20 63 6c 65 61 72 3b 0d 0a 20 20 0d 0a 20 20 7b 74 65 67 6e 65 72 20 6b 61 ┆ clear; ætegner ka┆ 0x690e0…69100 73 73 65 20 72 75 6e 64 74 20 6f 6d 20 67 72 61 66 65 6e 7d 0d 0a 20 20 0d 0a 20 20 64 72 61 77 ┆sse rundt om grafenå draw┆ 0x69100…69120 66 72 61 6d 65 3b 20 20 20 0d 0a 20 20 78 6b 30 3a 3d 36 2a 38 2b 32 3b 0d 0a 20 20 79 6b 30 3a ┆frame; xk0:=6*8+2; yk0:┆ 0x69120…69140 3d 31 32 3b 0d 0a 20 20 78 6b 31 3a 3d 57 6e 64 5f 2e 6d 61 78 78 2d 32 34 3b 0d 0a 20 20 79 6b ┆=12; xk1:=Wnd_.maxx-24; yk┆ 0x69140…69160 31 3a 3d 57 6e 64 5f 2e 6d 61 78 79 2d 38 3b 0d 0a 20 0d 0a 20 20 7b 74 65 67 6e 65 72 20 61 6b ┆1:=Wnd_.maxy-8; ætegner ak┆ 0x69160…69180 73 65 72 6e 65 2c 69 6b 6b 65 20 64 65 6c 73 74 72 65 67 65 72 6e 65 20 7d 0d 0a 20 0d 0a 20 20 ┆serne,ikke delstregerne å ┆ 0x69180…691a0 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 6b 30 2c 78 6b 30 2c 79 6b 31 29 3b 20 20 20 20 ┆Wnd_Lineto(xk0,yk0,xk0,yk1); ┆ 0x691a0…691c0 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 6b 30 2c 78 6b 31 2c 79 6b 30 29 3b ┆ Wnd_Lineto(xk0,yk0,xk1,yk0);┆ 0x691c0…691e0 20 20 20 20 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 6b 30 2c 78 6b 30 2d 34 ┆ Wnd_Lineto(xk0,yk0,xk0-4┆ 0x691e0…69200 2c 79 6b 30 29 3b 20 20 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 6b 30 2d 34 ┆,yk0); Wnd_Lineto(xk0,yk0-4┆ 0x69200…69220 2c 78 6b 30 2c 79 6b 30 29 3b 20 20 0d 0a 20 20 64 65 6c 74 61 3a 3d 57 6e 64 5f 2e 6d 61 78 79 ┆,xk0,yk0); delta:=Wnd_.maxy┆ 0x69220…69240 2d 79 6b 30 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 65 6c 74 61 20 44 49 56 20 38 2b 31 3b ┆-yk0; npoints:=delta DIV 8+1;┆ 0x69240…69260 20 20 20 20 20 20 20 20 20 20 20 7b 61 6e 74 61 6c 20 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 ┆ æantal delstreger p ┆ 0x69260…69280 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 2d 28 6e 70 6f 69 6e 74 ┆y-aksenå ndiff:=delta-(npoint┆ 0x69280…692a0 73 2a 38 29 3b 0d 0a 0d 0a 20 20 7b 44 65 6e 20 6d 61 6b 73 69 6d 61 6c 65 20 65 6b 73 70 6f 6e ┆s*8); æDen maksimale ekspon┆ 0x692a0…692c0 74 20 62 65 72 65 67 6e 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆t beregnes ┆ 0x692c0…692e0 20 20 20 7d 0d 0a 20 20 7b 48 76 69 73 20 65 6b 73 70 6f 79 20 3a 3d 20 30 20 62 6c 69 76 65 72 ┆ å æHvis ekspoy := 0 bliver┆ 0x692e0…69300 20 74 61 6c 65 6e 65 20 75 64 73 6b 72 65 76 65 74 20 75 64 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 ┆ talene udskrevet uden eksponent┆ 0x69300…69320 7d 0d 0a 20 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 79 79 20 3d 20 27 4a 27 20 74 68 65 6e 20 0d ┆å If ekspoyy = 'J' then ┆ 0x69320…69340 0a 20 20 20 0d 0a 20 20 57 49 54 48 20 57 6c 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆ WITH Wld_ DO BEGIN ┆ 0x69340…69360 49 46 20 61 62 73 28 79 72 61 6e 67 65 2b 79 31 29 3e 61 62 73 28 79 31 29 20 54 48 45 4e 20 65 ┆IF abs(yrange+y1)>abs(y1) THEN e┆ 0x69360…69380 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 79 72 61 6e 67 65 2b 79 31 29 0d 0a 20 ┆kspoy:=getexponent(yrange+y1) ┆ 0x69380…693a0 20 20 20 45 4c 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 79 31 29 3b ┆ ELSE ekspoy:=getexponent(y1);┆ 0x693a0…693c0 0d 0a 20 20 45 4e 44 0d 0a 20 20 0d 0a 20 20 45 6c 73 65 20 65 6b 73 70 6f 79 20 3a 3d 20 30 3b ┆ END Else ekspoy := 0;┆ 0x693c0…693e0 0d 0a 20 20 20 0d 0a 20 20 7b 75 64 73 6b 72 69 76 65 72 20 79 2a 31 30 20 70 86 20 79 2d 61 6b ┆ æudskriver y*10 p y-ak┆ 0x693e0…69400 73 65 6e 7d 0d 0a 20 20 0d 0a 20 20 49 46 20 28 79 64 65 6e 73 3e 30 29 20 61 6e 64 20 28 65 6b ┆senå IF (ydens>0) and (ek┆ 0x69400…69420 (42, 0, 2) 73 70 6f 79 20 3c 3e 20 30 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 61 77 65 78 70 6f 6e 65 ┆spoy <> 0) THEN drawexpone┆ 0x69420…69440 6e 74 28 30 2c 57 6e 64 5f 2e 6d 61 78 79 2d 31 30 2c 65 6b 73 70 6f 79 2c 27 79 2a 31 30 27 29 ┆nt(0,Wnd_.maxy-10,ekspoy,'y*10')┆ 0x69440…69460 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆; ┆ 0x69460…69480 20 20 20 20 20 20 20 0d 0a 20 20 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 6f 69 6e 74 73 3b ┆ Fract:=NDiff/NPoints;┆ 0x69480…694a0 0d 0a 20 20 73 3a 3d 2d 46 72 61 63 74 3b 0d 0a 20 20 79 73 3a 3d 79 6b 30 2d 38 3b 0d 0a 20 20 ┆ s:=-Fract; ys:=yk0-8; ┆ 0x694a0…694c0 44 69 66 66 3a 3d 28 57 6c 64 5f 2e 79 72 61 6e 67 65 29 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 ┆Diff:=(Wld_.yrange)/NPoints; ┆ 0x694c0…694e0 0d 0a 20 20 7b 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 79 2d 61 6b 73 65 6e 20 74 65 67 6e 65 ┆ ædelstreger p y-aksen tegne┆ 0x694e0…69500 73 7d 0d 0a 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 4e 50 6f 69 6e 74 73 2d 31 20 ┆så FOR i:=0 TO NPoints-1 ┆ 0x69500…69520 44 4f 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 79 73 3a 3d ┆DO BEGIN ys:=┆ 0x69520…69540 79 73 2b 38 3b 0d 0a 20 20 20 20 20 4e 75 6d 62 65 72 3a 3d 57 6c 64 5f 2e 59 31 2b 69 2a 44 69 ┆ys+8; Number:=Wld_.Y1+i*Di┆ 0x69540…69560 66 66 3b 0d 0a 20 20 0d 0a 20 20 20 20 20 7b 54 65 67 6e 65 72 20 64 65 6c 73 74 72 65 67 65 72 ┆ff; æTegner delstreger┆ 0x69560…69580 20 70 86 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 0d 0a 20 20 20 20 20 49 46 20 79 64 65 6e 73 3e ┆ p y-aksenå IF ydens>┆ 0x69580…695a0 30 20 54 48 45 4e 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 73 2c 78 6b 30 2d 34 2c 79 ┆0 THEN Wnd_Lineto(xk0,ys,xk0-4,y┆ 0x695a0…695c0 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆s); ┆ 0x695c0…695e0 20 20 20 20 20 0d 0a 20 20 20 20 20 49 46 20 28 79 64 65 6e 73 3e 30 29 20 41 4e 44 20 28 69 20 ┆ IF (ydens>0) AND (i ┆ 0x695e0…69600 4d 4f 44 20 28 31 30 2d 59 44 65 6e 73 29 3d 30 29 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 ┆MOD (10-YDens)=0) THEN BEGIN ┆ 0x69600…69620 20 20 20 20 20 6a 3a 3d 78 6b 30 3b 0d 0a 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 7b 75 ┆ j:=xk0; æu┆ 0x69620…69640 64 73 6b 72 69 76 6e 69 6e 67 20 61 66 20 67 69 74 74 65 72 7d 0d 0a 20 20 20 20 20 20 20 0d 0a ┆dskrivning af gitterå ┆ 0x69640…69660 20 20 20 20 20 20 20 49 46 20 67 69 74 74 65 72 20 54 48 45 4e 20 20 20 20 20 20 20 20 20 20 20 ┆ IF gitter THEN ┆ 0x69660…69680 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 57 48 49 4c 45 20 6a 3c 3d 78 6b 31 20 44 4f ┆ WHILE j<=xk1 DO┆ 0x69680…696a0 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 57 6e 64 5f 53 65 74 64 6f 74 28 6a 2c 79 73 ┆ BEGIN Wnd_Setdot(j,ys┆ 0x696a0…696c0 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 ┆); j:=j+3; END; ┆ 0x696c0…696e0 20 0d 0a 20 20 20 20 20 20 20 7b 75 64 73 6b 72 69 76 65 72 20 76 91 72 64 69 65 72 20 66 6f 72 ┆ æudskriver v rdier for┆ 0x696e0…69700 20 79 2d 61 6b 73 65 6e 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 7b 79 73 3a 20 79 2d ┆ y-aksen å æys: y-┆ 0x69700…69720 76 91 72 64 69 65 6e 20 66 6f 72 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 73 74 65 64 65 74 7d 0d ┆v rdien for udskrivningsstedetå ┆ 0x69720…69740 0a 20 20 20 20 20 20 20 7b 65 6b 73 70 6f 79 3a 20 65 6b 73 70 6f 6e 65 6e 74 65 6e 20 64 65 72 ┆ æekspoy: eksponenten der┆ 0x69740…69760 20 61 6e 76 65 6e 64 65 73 20 20 20 20 7d 20 20 0d 0a 20 20 20 20 20 20 20 7b 6e 75 6d 62 65 72 ┆ anvendes å ænumber┆ 0x69760…69780 3a 20 44 65 74 20 74 61 6c 2c 20 64 65 72 20 73 6b 72 69 76 65 73 20 20 20 20 20 20 20 20 7d 20 ┆: Det tal, der skrives å ┆ 0x69780…697a0 0d 0a 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 49 46 20 28 79 73 3c 57 6e 64 5f 2e ┆ IF (ys<Wnd_.┆ 0x697a0…697c0 6d 61 78 79 2d 32 30 29 20 54 48 45 4e 20 20 20 20 20 20 20 44 72 61 77 4e 75 6d 28 30 2c 79 73 ┆maxy-20) THEN DrawNum(0,ys┆ 0x697c0…697e0 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 3b 20 20 0d 0a 20 20 20 20 20 20 20 45 4e 44 3b 0d ┆,EkspoY,Number); END; ┆ 0x697e0…69800 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 64 65 6c 74 61 3a 3d 57 6e 64 5f 2e 6d 61 78 78 2d 78 6b 30 ┆ END; delta:=Wnd_.maxx-xk0┆ 0x69800…69820 (42, 0, 3) 2d 32 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 65 6c 74 61 20 44 49 56 20 34 30 2b 31 3b 0d ┆-2; npoints:=delta DIV 40+1; ┆ 0x69820…69840 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 2d 28 6e 70 6f 69 6e 74 73 2a 34 30 29 3b 0d 0a 20 ┆ ndiff:=delta-(npoints*40); ┆ 0x69840…69860 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 78 78 20 3d 20 27 4a 27 20 74 68 65 6e 20 0d 0a 20 20 0d ┆ If ekspoxx = 'J' then ┆ 0x69860…69880 0a 20 20 57 49 54 48 20 57 6c 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 61 62 ┆ WITH Wld_ DO BEGIN IF ab┆ 0x69880…698a0 73 28 78 72 61 6e 67 65 2b 78 31 29 3e 61 62 73 28 78 31 29 20 54 48 45 4e 20 65 6b 73 70 6f 79 ┆s(xrange+x1)>abs(x1) THEN ekspoy┆ 0x698a0…698c0 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 72 61 6e 67 65 2b 78 31 29 0d 0a 20 20 20 20 45 4c ┆:=getexponent(xrange+x1) EL┆ 0x698c0…698e0 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 31 29 3b 0d 0a 20 20 45 ┆SE ekspoy:=getexponent(x1); E┆ 0x698e0…69900 4e 44 0d 0a 20 20 0d 0a 20 20 65 6c 73 65 20 65 6b 73 70 6f 79 20 3a 3d 20 30 3b 0d 0a 20 20 0d ┆ND else ekspoy := 0; ┆ 0x69900…69920 0a 20 20 49 46 20 28 78 64 65 6e 73 3e 30 29 20 61 6e 64 20 28 65 6b 73 70 6f 79 20 3c 3e 20 30 ┆ IF (xdens>0) and (ekspoy <> 0┆ 0x69920…69940 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 61 77 65 78 70 6f 6e 65 6e 74 28 57 6e 64 5f 2e 6d ┆) THEN drawexponent(Wnd_.m┆ 0x69940…69960 61 78 78 2d 34 38 2c 30 2c 65 6b 73 70 6f 79 2c 27 78 2a 31 30 27 29 3b 0d 0a 20 20 0d 0a 20 20 ┆axx-48,0,ekspoy,'x*10'); ┆ 0x69960…69980 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 73 3a 3d 2d 46 72 61 ┆Fract:=NDiff/NPoints; s:=-Fra┆ 0x69980…699a0 63 74 3b 0d 0a 20 20 79 73 3a 3d 78 6b 30 2d 34 30 3b 0d 0a 20 20 44 69 66 66 3a 3d 28 57 6c 64 ┆ct; ys:=xk0-40; Diff:=(Wld┆ 0x699a0…699c0 5f 2e 78 72 61 6e 67 65 29 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 ┆_.xrange)/NPoints; FOR i:=0 T┆ 0x699c0…699e0 4f 20 4e 50 6f 69 6e 74 73 2d 31 20 44 4f 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 79 73 ┆O NPoints-1 DO BEGIN ys┆ 0x699e0…69a00 3a 3d 79 73 2b 34 30 3b 0d 0a 20 20 20 20 4e 75 6d 62 65 72 3a 3d 57 6c 64 5f 2e 78 31 2b 69 2a ┆:=ys+40; Number:=Wld_.x1+i*┆ 0x69a00…69a20 44 69 66 66 3b 0d 0a 20 20 20 20 49 46 20 78 64 65 6e 73 3e 30 20 54 48 45 4e 20 57 6e 64 5f 4c ┆Diff; IF xdens>0 THEN Wnd_L┆ 0x69a20…69a40 69 6e 65 74 6f 28 79 73 2c 79 6b 30 2c 79 73 2c 79 6b 30 2d 34 29 3b 0d 0a 20 20 20 20 49 46 20 ┆ineto(ys,yk0,ys,yk0-4); IF ┆ 0x69a40…69a60 28 78 64 65 6e 73 3e 30 29 20 41 4e 44 20 28 69 20 4d 4f 44 20 28 31 30 2d 78 44 65 6e 73 29 3d ┆(xdens>0) AND (i MOD (10-xDens)=┆ 0x69a60…69a80 30 29 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 6a 3a 3d 79 6b 30 3b 0d 0a 20 20 ┆0) THEN BEGIN j:=yk0; ┆ 0x69a80…69aa0 20 20 20 20 49 46 20 67 69 74 74 65 72 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 57 48 49 4c 45 ┆ IF gitter THEN WHILE┆ 0x69aa0…69ac0 20 6a 3c 3d 79 6b 31 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 57 6e 64 5f 53 65 ┆ j<=yk1 DO BEGIN Wnd_Se┆ 0x69ac0…69ae0 74 64 6f 74 28 79 73 2c 6a 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 20 20 20 20 45 4e 44 3b ┆tdot(ys,j); j:=j+3; END;┆ 0x69ae0…69b00 0d 0a 20 20 20 20 20 20 49 46 20 28 79 73 3c 57 6e 64 5f 2e 6d 61 78 78 2d 34 38 29 54 48 45 4e ┆ IF (ys<Wnd_.maxx-48)THEN┆ 0x69b00…69b20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 44 72 61 77 4e 75 6d 28 79 73 2d 34 30 2c 30 2c ┆ BEGIN DrawNum(ys-40,0,┆ 0x69b20…69b40 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 ┆EkspoY,Number); END; ┆ 0x69b40…69b60 20 45 4e 44 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 42 ┆ END; END; WITH Wnd_ DO B┆ 0x69b60…69b80 45 47 49 4e 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 6b 30 3b 0d 0a 20 20 20 20 6d 61 78 78 3a ┆EGIN x1:=x1+xk0; maxx:┆ 0x69b80…69ba0 3d 6d 61 78 78 2d 78 6b 30 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 79 6b 30 3b 0d 0a 20 20 20 ┆=maxx-xk0; y1:=y1+yk0; ┆ 0x69ba0…69bc0 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 79 6b 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a ┆ maxy:=maxy-yk0; END; END; ┆ 0x69bc0…69be0 00 00 00 00 00 00 00 00 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…] 0x69c00…69c20 (42, 0, 4) e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x1f…] 0x6a000…6a020 (42, 0, 5) 28 2a 47 53 56 2d 41 78 65 72 2a 29 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 61 6b 73 65 73 79 73 ┆(*GSV-Axer*) æUdskriver aksesys┆ 0x6a020…6a040 74 65 6d 65 74 20 74 69 6c 20 65 6e 20 78 2c 79 20 67 72 61 66 3a 20 20 20 20 20 20 20 20 20 20 ┆temet til en x,y graf: ┆ 0x6a040…6a060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 7b 78 64 ┆ å æxd┆ 0x6a060…6a080 65 6e 73 2f 79 64 65 6e 73 3a 20 20 65 74 20 74 61 6c 20 6d 65 6c 6c 65 6d 20 30 20 6f 67 20 39 ┆ens/ydens: et tal mellem 0 og 9┆ 0x6a080…6a0a0 2c 20 64 65 72 20 61 6e 67 69 76 65 72 20 68 76 6f 72 6d 61 6e 67 65 20 6d 65 6c 6c 65 6d 72 75 ┆, der angiver hvormange mellemru┆ 0x6a0a0…6a0c0 6d 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 72 20 65 72 20 6d 65 6c 6c 65 6d ┆må æ der er mellem┆ 0x6a0c0…6a0e0 20 75 64 73 6b 72 69 76 6e 69 6e 67 65 6e 20 61 66 20 76 91 72 64 69 65 72 20 70 86 20 68 65 6e ┆ udskrivningen af v rdier p hen┆ 0x6a0e0…6a100 68 6f 6c 64 73 76 69 73 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 20 6f 67 20 79 ┆holdsviså æ x og y┆ 0x6a100…6a120 2d 61 6b 73 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆-aksen ┆ 0x6a120…6a140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 7b 67 69 74 74 65 72 3a 20 20 54 72 75 65 ┆ å ægitter: True┆ 0x6a140…6a160 3a 20 20 67 69 74 74 65 72 20 74 65 67 6e 65 73 20 20 20 46 61 6c 73 65 3a 20 20 67 69 74 74 65 ┆: gitter tegnes False: gitte┆ 0x6a160…6a180 72 20 74 65 67 6e 65 73 20 69 6b 6b 65 20 20 20 20 20 20 20 20 20 7d 0d 0a 7b 45 6b 73 70 6f 78 ┆r tegnes ikke å æEkspox┆ 0x6a180…6a1a0 78 2f 79 79 3a 20 27 4a 27 20 3a 20 20 78 2f 79 2d 61 6b 73 65 20 76 91 72 64 69 65 72 20 75 64 ┆x/yy: 'J' : x/y-akse v rdier ud┆ 0x6a1a0…6a1c0 73 6b 72 69 76 65 73 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 7d 0d 0a ┆skrives eksponentielt å ┆ 0x6a1c0…6a1e0 7b 20 20 20 20 20 20 20 20 20 20 20 20 27 4e 27 20 3a 20 20 76 91 72 64 69 65 72 20 75 64 73 6b ┆æ 'N' : v rdier udsk┆ 0x6a1e0…6a200 72 69 76 65 73 20 69 6b 6b 65 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 ┆rives ikke eksponentielt ┆ 0x6a200…6a220 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 77 61 78 69 73 28 20 78 ┆ å PROCEDURE drawaxis( x┆ 0x6a220…6a240 64 65 6e 73 2c 20 79 64 65 6e 73 3a 20 49 4e 54 45 47 45 52 3b 20 67 69 74 74 65 72 3a 20 62 6f ┆dens, ydens: INTEGER; gitter: bo┆ 0x6a240…6a260 6f 6c 65 61 6e 3b 20 0d 0a 45 6b 73 70 6f 78 78 2c 20 45 6b 73 70 6f 79 79 20 3a 20 73 74 72 31 ┆olean; Ekspoxx, Ekspoyy : str1┆ 0x6a260…6a280 29 3b 0d 0a 56 41 52 0d 0a 20 20 78 6b 30 2c 20 79 6b 30 2c 20 78 6b 31 2c 20 79 6b 31 2c 20 4e ┆); VAR xk0, yk0, xk1, yk1, N┆ 0x6a280…6a2a0 64 69 66 66 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 65 6b 73 70 6f 78 2c 20 65 6b 73 70 6f ┆diff : INTEGER; ekspox, ekspo┆ 0x6a2a0…6a2c0 79 2c 6a 2c 69 2c 20 79 73 2c 20 78 73 2c 20 64 65 6c 74 61 2c 20 6e 70 6f 69 6e 74 73 09 3a 20 ┆y,j,i, ys, xs, delta, npoints : ┆ 0x6a2c0…6a2e0 49 4e 54 45 47 45 52 3b 0d 0a 20 20 64 69 66 66 2c 20 6e 75 6d 62 65 72 2c 20 73 2c 20 66 72 61 ┆INTEGER; diff, number, s, fra┆ 0x6a2e0…6a300 63 74 3a 20 52 45 41 4c 3b 0d 0a 20 20 73 74 3a 20 73 74 72 38 30 3b 0d 0a 0d 0a 7b 4f 6d 66 6f ┆ct: REAL; st: str80; æOmfo┆ 0x6a300…6a320 72 6d 65 72 20 65 74 20 61 6c 6d 69 6e 64 65 6c 69 67 74 20 74 61 6c 20 28 78 31 29 2c 20 76 65 ┆rmer et almindeligt tal (x1), ve┆ 0x6a320…6a340 64 20 68 6a 91 6c 70 20 61 66 20 65 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 20 ┆d hj lp af en opgiven eksponent ┆ 0x6a340…6a360 28 65 78 70 6f 29 7d 0d 0a 7b 74 69 6c 20 65 6e 20 73 74 72 69 6e 67 2c 20 68 76 6f 72 20 74 61 ┆(expo)å ætil en string, hvor ta┆ 0x6a360…6a380 6c 6c 65 74 20 61 6e 67 69 76 65 73 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 ┆llet angives eksponentielt ┆ 0x6a380…6a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 46 55 4e ┆ å FUN┆ 0x6a3a0…6a3c0 43 54 49 4f 4e 20 73 74 72 69 6e 67 6e 75 6d 62 65 72 28 78 31 3a 20 52 45 41 4c 3b 65 6b 73 70 ┆CTION stringnumber(x1: REAL;eksp┆ 0x6a3c0…6a3e0 6f 09 3a 20 49 4e 54 45 47 45 52 29 3a 20 73 74 72 38 30 3b 0d 0a 56 41 52 20 73 3a 20 73 74 72 ┆o : INTEGER): str80; VAR s: str┆ 0x6a3e0…6a400 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 28 78 31 2a 65 78 70 28 2d 65 6b 73 70 6f 2a ┆80; BEGIN str(x1*exp(-ekspo*┆ 0x6a400…6a420 (42, 1, 1) 6c 6e 28 31 30 2e 30 29 29 3a 35 3a 32 2c 73 29 3b 0d 0a 20 20 73 74 72 69 6e 67 6e 75 6d 62 65 ┆ln(10.0)):5:2,s); stringnumbe┆ 0x6a420…6a440 72 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 7b 42 65 72 65 67 6e 65 72 20 68 76 6f 72 73 74 6f ┆r:=s; END; æBeregner hvorsto┆ 0x6a440…6a460 72 20 65 6b 73 70 6f 6e 65 6e 74 65 6e 20 73 6b 61 6c 20 76 91 72 65 2c 20 68 76 69 73 20 64 65 ┆r eksponenten skal v re, hvis de┆ 0x6a460…6a480 74 20 73 74 9b 72 73 74 65 20 74 61 6c 20 73 6b 61 6c 20 76 91 72 65 7d 0d 0a 7b 6d 69 6e 64 72 ┆t st rste tal skal v reå æmindr┆ 0x6a480…6a4a0 65 20 65 6e 64 20 31 2e 30 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆e end 1.00 ┆ 0x6a4a0…6a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x6a4c0…6a4e0 20 20 7d 20 0d 0a 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 47 65 74 45 78 70 6f 6e 65 6e 74 28 58 ┆ å FUNCTION GetExponent(X┆ 0x6a4e0…6a500 31 3a 52 45 41 4c 29 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 47 65 74 45 78 ┆1:REAL):INTEGER; BEGIN GetEx┆ 0x6a500…6a520 70 6f 6e 65 6e 74 3a 3d 30 3b 0d 0a 20 20 49 46 20 58 31 3c 3e 30 2e 30 20 54 48 45 4e 0d 0a 20 ┆ponent:=0; IF X1<>0.0 THEN ┆ 0x6a520…6a540 20 20 20 49 46 20 61 62 73 28 58 31 29 3e 3d 31 2e 30 20 54 48 45 4e 20 47 65 74 45 78 70 6f 6e ┆ IF abs(X1)>=1.0 THEN GetExpon┆ 0x6a540…6a560 65 6e 74 3a 3d 74 72 75 6e 63 28 6c 6e 28 61 62 73 28 58 31 29 29 2f 6c 6e 28 31 30 2e 30 29 29 ┆ent:=trunc(ln(abs(X1))/ln(10.0))┆ 0x6a560…6a580 0d 0a 20 20 20 20 45 4c 53 45 20 47 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 2d 74 72 75 6e 63 28 61 ┆ ELSE GetExponent:=-trunc(a┆ 0x6a580…6a5a0 62 73 28 6c 6e 28 61 62 73 28 58 31 29 29 29 2f 6c 6e 28 31 30 2e 30 29 2b 31 2e 30 29 3b 0d 0a ┆bs(ln(abs(X1)))/ln(10.0)+1.0); ┆ 0x6a5a0…6a5c0 45 4e 44 3b 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 68 76 6f 72 73 74 6f 72 20 65 6b 73 70 ┆END; æUdskriver hvorstor eksp┆ 0x6a5c0…6a5e0 6f 6e 65 6e 74 65 6e 20 65 72 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 45 78 70 ┆onenten erå PROCEDURE DrawExp┆ 0x6a5e0…6a600 6f 6e 65 6e 74 28 78 31 2c 79 31 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 49 4e 54 45 47 45 52 3b ┆onent(x1,y1,MaxExponent:INTEGER;┆ 0x6a600…6a620 73 3a 20 73 74 72 38 30 29 3b 0d 0a 56 41 52 20 69 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 ┆s: str80); VAR i:INTEGER; BEGI┆ 0x6a620…6a640 4e 0d 0a 20 20 57 6e 64 5f 64 72 61 77 74 65 78 74 28 78 31 2c 79 31 2c 73 29 3b 0d 0a 20 20 69 ┆N Wnd_drawtext(x1,y1,s); i┆ 0x6a640…6a660 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 73 74 72 28 4d 61 78 45 78 70 6f 6e 65 6e 74 2c 53 29 3b ┆:=len(s); str(MaxExponent,S);┆ 0x6a660…6a680 0d 0a 20 20 57 6e 64 5f 64 72 61 77 74 65 78 74 28 78 31 2b 69 2a 38 2c 20 79 31 2b 32 2c 20 53 ┆ Wnd_drawtext(x1+i*8, y1+2, S┆ 0x6a680…6a6a0 29 3b 20 20 20 20 20 20 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 65 ┆); END; æUdskriver e┆ 0x6a6a0…6a6c0 6e 20 73 74 72 69 6e 67 20 61 66 20 74 61 6c 20 70 86 20 65 6e 20 67 69 76 65 6e 20 70 6f 73 69 ┆n string af tal p en given posi┆ 0x6a6c0…6a6e0 74 69 6f 6e 2c 20 6d 65 64 20 65 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 20 20 ┆tion, med en opgiven eksponent ┆ 0x6a6e0…6a700 20 7d 0d 0a 7b 78 31 20 6f 67 20 79 31 3a 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 6b 6f 6f 72 64 ┆ å æx1 og y1: udskrivningskoord┆ 0x6a700…6a720 69 6e 61 74 65 72 6e 65 20 20 20 20 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 20 65 78 73 70 6f 6e 65 ┆inaterne MaxExponent: exspone┆ 0x6a720…6a740 6e 74 65 6e 20 64 65 72 20 61 6e 76 65 6e 64 65 73 7d 0d 0a 7b 76 65 64 20 75 64 73 6b 72 69 76 ┆nten der anvendeså æved udskriv┆ 0x6a740…6a760 6e 69 6e 67 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ningen ┆ 0x6a760…6a780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x6a780…6a7a0 20 7d 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 4e 75 6d 28 78 31 2c 79 31 2c ┆ å PROCEDURE DrawNum(x1,y1,┆ 0x6a7a0…6a7c0 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 49 4e 54 45 47 45 52 3b 4e 75 6d 62 65 72 3a 52 45 41 4c 29 ┆MaxExponent:INTEGER;Number:REAL)┆ 0x6a7c0…6a7e0 3b 0d 0a 56 41 52 20 69 3a 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 53 74 72 4e 75 6d 62 65 72 ┆; VAR i:INTEGER; StrNumber┆ 0x6a7e0…6a800 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 53 74 72 4e 75 6d 62 65 72 3a 3d 53 74 ┆: str80; BEGIN StrNumber:=St┆ 0x6a800…6a820 (42, 1, 2) 72 69 6e 67 4e 75 6d 62 65 72 28 4e 75 6d 62 65 72 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 29 3b 0d ┆ringNumber(Number,MaxExponent); ┆ 0x6a820…6a840 0a 20 20 57 6e 64 5f 44 72 61 77 74 65 78 74 28 78 31 2c 79 31 2c 53 74 72 4e 75 6d 62 65 72 29 ┆ Wnd_Drawtext(x1,y1,StrNumber)┆ 0x6a840…6a860 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 7b 78 64 65 6e 73 20 6f ┆; END; BEGIN æxdens o┆ 0x6a860…6a880 67 20 79 64 65 6e 73 20 6f 6d 64 61 6e 6e 65 73 20 73 86 20 64 65 20 70 61 73 73 65 20 74 69 6c ┆g ydens omdannes s de passe til┆ 0x6a880…6a8a0 20 70 72 6f 67 72 61 6d 6d 65 74 7d 0d 0a 20 20 0d 0a 20 20 78 64 65 6e 73 20 3a 3d 20 31 30 20 ┆ programmetå xdens := 10 ┆ 0x6a8a0…6a8c0 2d 20 78 64 65 6e 73 3b 0d 0a 20 20 79 64 65 6e 73 20 3a 3d 20 31 30 20 2d 20 79 64 65 6e 73 3b ┆- xdens; ydens := 10 - ydens;┆ 0x6a8c0…6a8e0 0d 0a 20 20 0d 0a 20 20 43 6c 65 61 72 57 69 6e 64 6f 77 3b 0d 0a 20 20 0d 0a 20 20 7b 74 65 67 ┆ ClearWindow; æteg┆ 0x6a8e0…6a900 6e 65 72 20 6b 61 73 73 65 20 72 75 6e 64 74 20 6f 6d 20 67 72 61 66 65 6e 7d 0d 0a 20 20 0d 0a ┆ner kasse rundt om grafenå ┆ 0x6a900…6a920 20 20 64 72 61 77 66 72 61 6d 65 3b 20 20 20 0d 0a 20 20 78 6b 30 3a 3d 36 2a 38 2b 32 3b 0d 0a ┆ drawframe; xk0:=6*8+2; ┆ 0x6a920…6a940 20 20 79 6b 30 3a 3d 31 32 3b 0d 0a 20 20 78 6b 31 3a 3d 57 6e 64 5f 2e 6d 61 78 78 2d 32 34 3b ┆ yk0:=12; xk1:=Wnd_.maxx-24;┆ 0x6a940…6a960 0d 0a 20 20 79 6b 31 3a 3d 57 6e 64 5f 2e 6d 61 78 79 2d 38 3b 0d 0a 20 0d 0a 20 20 7b 74 65 67 ┆ yk1:=Wnd_.maxy-8; æteg┆ 0x6a960…6a980 6e 65 72 20 61 6b 73 65 72 6e 65 2c 69 6b 6b 65 20 64 65 6c 73 74 72 65 67 65 72 6e 65 20 7d 0d ┆ner akserne,ikke delstregerne å ┆ 0x6a980…6a9a0 0a 20 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 6b 30 2c 78 6b 30 2c 79 6b 31 ┆ Wnd_Lineto(xk0,yk0,xk0,yk1┆ 0x6a9a0…6a9c0 29 3b 20 20 20 20 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 6b 30 2c 78 6b 31 ┆); Wnd_Lineto(xk0,yk0,xk1┆ 0x6a9c0…6a9e0 2c 79 6b 30 29 3b 20 20 20 20 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 6b 30 ┆,yk0); Wnd_Lineto(xk0,yk0┆ 0x6a9e0…6aa00 2c 78 6b 30 2d 34 2c 79 6b 30 29 3b 20 20 0d 0a 20 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 ┆,xk0-4,yk0); Wnd_Lineto(xk0┆ 0x6aa00…6aa20 2c 79 6b 30 2d 34 2c 78 6b 30 2c 79 6b 30 29 3b 20 20 0d 0a 20 20 64 65 6c 74 61 3a 3d 57 6e 64 ┆,yk0-4,xk0,yk0); delta:=Wnd┆ 0x6aa20…6aa40 5f 2e 6d 61 78 79 2d 79 6b 30 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 65 6c 74 61 20 44 49 ┆_.maxy-yk0; npoints:=delta DI┆ 0x6aa40…6aa60 56 20 38 2b 31 3b 20 20 20 20 20 20 20 20 20 20 20 7b 61 6e 74 61 6c 20 64 65 6c 73 74 72 65 67 ┆V 8+1; æantal delstreg┆ 0x6aa60…6aa80 65 72 20 70 86 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 2d 28 ┆er p y-aksenå ndiff:=delta-(┆ 0x6aa80…6aaa0 6e 70 6f 69 6e 74 73 2a 38 29 3b 0d 0a 0d 0a 20 20 7b 44 65 6e 20 6d 61 6b 73 69 6d 61 6c 65 20 ┆npoints*8); æDen maksimale ┆ 0x6aaa0…6aac0 65 6b 73 70 6f 6e 74 20 62 65 72 65 67 6e 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ekspont beregnes ┆ 0x6aac0…6aae0 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 7b 48 76 69 73 20 65 6b 73 70 6f 79 20 3a 3d 20 30 20 ┆ å æHvis ekspoy := 0 ┆ 0x6aae0…6ab00 62 6c 69 76 65 72 20 74 61 6c 65 6e 65 20 75 64 73 6b 72 65 76 65 74 20 75 64 65 6e 20 65 6b 73 ┆bliver talene udskrevet uden eks┆ 0x6ab00…6ab20 70 6f 6e 65 6e 74 7d 0d 0a 20 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 79 79 20 3d 20 27 4a 27 20 ┆ponentå If ekspoyy = 'J' ┆ 0x6ab20…6ab40 74 68 65 6e 20 0d 0a 20 20 20 0d 0a 20 20 57 49 54 48 20 57 6c 64 5f 20 44 4f 20 42 45 47 49 4e ┆then WITH Wld_ DO BEGIN┆ 0x6ab40…6ab60 0d 0a 20 20 20 20 49 46 20 61 62 73 28 79 72 61 6e 67 65 2b 79 31 29 3e 61 62 73 28 79 31 29 20 ┆ IF abs(yrange+y1)>abs(y1) ┆ 0x6ab60…6ab80 54 48 45 4e 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 79 72 61 6e 67 65 2b ┆THEN ekspoy:=getexponent(yrange+┆ 0x6ab80…6aba0 79 31 29 0d 0a 20 20 20 20 45 4c 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e ┆y1) ELSE ekspoy:=getexponen┆ 0x6aba0…6abc0 74 28 79 31 29 3b 0d 0a 20 20 45 4e 44 0d 0a 20 20 0d 0a 20 20 45 6c 73 65 20 65 6b 73 70 6f 79 ┆t(y1); END Else ekspoy┆ 0x6abc0…6abe0 20 3a 3d 20 30 3b 0d 0a 20 20 20 0d 0a 20 20 7b 75 64 73 6b 72 69 76 65 72 20 79 2a 31 30 20 70 ┆ := 0; æudskriver y*10 p┆ 0x6abe0…6ac00 86 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 0d 0a 20 20 49 46 20 28 79 64 65 6e 73 3e 30 29 20 61 ┆ y-aksenå IF (ydens>0) a┆ 0x6ac00…6ac20 (42, 1, 3) 6e 64 20 28 65 6b 73 70 6f 79 20 3c 3e 20 30 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 61 77 ┆nd (ekspoy <> 0) THEN draw┆ 0x6ac20…6ac40 65 78 70 6f 6e 65 6e 74 28 30 2c 57 6e 64 5f 2e 6d 61 78 79 2d 31 30 2c 65 6b 73 70 6f 79 2c 27 ┆exponent(0,Wnd_.maxy-10,ekspoy,'┆ 0x6ac40…6ac60 79 2a 31 30 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆y*10'); ┆ 0x6ac60…6ac80 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 ┆ Fract:=NDiff/NP┆ 0x6ac80…6aca0 6f 69 6e 74 73 3b 0d 0a 20 20 73 3a 3d 2d 46 72 61 63 74 3b 0d 0a 20 20 79 73 3a 3d 79 6b 30 2d ┆oints; s:=-Fract; ys:=yk0-┆ 0x6aca0…6acc0 38 3b 0d 0a 20 20 44 69 66 66 3a 3d 28 57 6c 64 5f 2e 79 72 61 6e 67 65 29 2f 4e 50 6f 69 6e 74 ┆8; Diff:=(Wld_.yrange)/NPoint┆ 0x6acc0…6ace0 73 3b 0d 0a 20 20 0d 0a 20 20 7b 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 79 2d 61 6b 73 65 6e ┆s; ædelstreger p y-aksen┆ 0x6ace0…6ad00 20 74 65 67 6e 65 73 7d 0d 0a 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 4e 50 6f 69 ┆ tegneså FOR i:=0 TO NPoi┆ 0x6ad00…6ad20 6e 74 73 2d 31 20 44 4f 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 ┆nts-1 DO BEGIN ┆ 0x6ad20…6ad40 20 20 79 73 3a 3d 79 73 2b 38 3b 0d 0a 20 20 20 20 20 4e 75 6d 62 65 72 3a 3d 57 6c 64 5f 2e 59 ┆ ys:=ys+8; Number:=Wld_.Y┆ 0x6ad40…6ad60 31 2b 69 2a 44 69 66 66 3b 0d 0a 20 20 0d 0a 20 20 20 20 20 7b 54 65 67 6e 65 72 20 64 65 6c 73 ┆1+i*Diff; æTegner dels┆ 0x6ad60…6ad80 74 72 65 67 65 72 20 70 86 20 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 0d 0a 20 20 20 20 20 49 46 20 ┆treger p y-aksenå IF ┆ 0x6ad80…6ada0 79 64 65 6e 73 3e 30 20 54 48 45 4e 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 78 6b 30 2c 79 73 2c 78 ┆ydens>0 THEN Wnd_Lineto(xk0,ys,x┆ 0x6ada0…6adc0 6b 30 2d 34 2c 79 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆k0-4,ys); ┆ 0x6adc0…6ade0 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 49 46 20 28 79 64 65 6e 73 3e 30 29 20 41 ┆ IF (ydens>0) A┆ 0x6ade0…6ae00 4e 44 20 28 69 20 4d 4f 44 20 28 31 30 2d 59 44 65 6e 73 29 3d 30 29 20 54 48 45 4e 20 42 45 47 ┆ND (i MOD (10-YDens)=0) THEN BEG┆ 0x6ae00…6ae20 49 4e 0d 0a 20 20 20 20 20 20 20 6a 3a 3d 78 6b 30 3b 0d 0a 20 20 20 20 20 20 20 0d 0a 20 20 20 ┆IN j:=xk0; ┆ 0x6ae20…6ae40 20 20 20 20 7b 75 64 73 6b 72 69 76 6e 69 6e 67 20 61 66 20 67 69 74 74 65 72 7d 0d 0a 20 20 20 ┆ æudskrivning af gitterå ┆ 0x6ae40…6ae60 20 20 20 20 0d 0a 20 20 20 20 20 20 20 49 46 20 67 69 74 74 65 72 20 54 48 45 4e 20 20 20 20 20 ┆ IF gitter THEN ┆ 0x6ae60…6ae80 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 57 48 49 4c 45 20 6a 3c 3d ┆ WHILE j<=┆ 0x6ae80…6aea0 78 6b 31 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 57 6e 64 5f 53 65 74 64 6f ┆xk1 DO BEGIN Wnd_Setdo┆ 0x6aea0…6aec0 74 28 6a 2c 79 73 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a ┆t(j,ys); j:=j+3; END; ┆ 0x6aec0…6aee0 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 7b 75 64 73 6b 72 69 76 65 72 20 76 91 72 64 69 ┆ æudskriver v rdi┆ 0x6aee0…6af00 65 72 20 66 6f 72 20 79 2d 61 6b 73 65 6e 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 7b ┆er for y-aksen å æ┆ 0x6af00…6af20 79 73 3a 20 79 2d 76 91 72 64 69 65 6e 20 66 6f 72 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 73 74 ┆ys: y-v rdien for udskrivningsst┆ 0x6af20…6af40 65 64 65 74 7d 0d 0a 20 20 20 20 20 20 20 7b 65 6b 73 70 6f 79 3a 20 65 6b 73 70 6f 6e 65 6e 74 ┆edetå æekspoy: eksponent┆ 0x6af40…6af60 65 6e 20 64 65 72 20 61 6e 76 65 6e 64 65 73 20 20 20 20 7d 20 20 0d 0a 20 20 20 20 20 20 20 7b ┆en der anvendes å æ┆ 0x6af60…6af80 6e 75 6d 62 65 72 3a 20 44 65 74 20 74 61 6c 2c 20 64 65 72 20 73 6b 72 69 76 65 73 20 20 20 20 ┆number: Det tal, der skrives ┆ 0x6af80…6afa0 20 20 20 20 7d 20 0d 0a 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 49 46 20 28 79 73 ┆ å IF (ys┆ 0x6afa0…6afc0 3c 57 6e 64 5f 2e 6d 61 78 79 2d 32 30 29 20 54 48 45 4e 20 20 20 20 20 20 20 44 72 61 77 4e 75 ┆<Wnd_.maxy-20) THEN DrawNu┆ 0x6afc0…6afe0 6d 28 30 2c 79 73 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 3b 20 20 0d 0a 20 20 20 20 20 20 ┆m(0,ys,EkspoY,Number); ┆ 0x6afe0…6b000 20 45 4e 44 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 64 65 6c 74 61 3a 3d 57 6e 64 5f 2e 6d 61 ┆ END; END; delta:=Wnd_.ma┆ 0x6b000…6b020 (42, 1, 4) 78 78 2d 78 6b 30 2d 32 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 65 6c 74 61 20 44 49 56 20 ┆xx-xk0-2; npoints:=delta DIV ┆ 0x6b020…6b040 34 30 2b 31 3b 0d 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 2d 28 6e 70 6f 69 6e 74 73 2a 34 ┆40+1; ndiff:=delta-(npoints*4┆ 0x6b040…6b060 30 29 3b 0d 0a 20 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 78 78 20 3d 20 27 4a 27 20 74 68 65 6e ┆0); If ekspoxx = 'J' then┆ 0x6b060…6b080 20 0d 0a 20 20 0d 0a 20 20 57 49 54 48 20 57 6c 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 ┆ WITH Wld_ DO BEGIN ┆ 0x6b080…6b0a0 20 49 46 20 61 62 73 28 78 72 61 6e 67 65 2b 78 31 29 3e 61 62 73 28 78 31 29 20 54 48 45 4e 20 ┆ IF abs(xrange+x1)>abs(x1) THEN ┆ 0x6b0a0…6b0c0 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 72 61 6e 67 65 2b 78 31 29 0d 0a ┆ekspoy:=getexponent(xrange+x1) ┆ 0x6b0c0…6b0e0 20 20 20 20 45 4c 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 31 29 ┆ ELSE ekspoy:=getexponent(x1)┆ 0x6b0e0…6b100 3b 0d 0a 20 20 45 4e 44 0d 0a 20 20 0d 0a 20 20 65 6c 73 65 20 65 6b 73 70 6f 79 20 3a 3d 20 30 ┆; END else ekspoy := 0┆ 0x6b100…6b120 3b 0d 0a 20 20 0d 0a 20 20 49 46 20 28 78 64 65 6e 73 3e 30 29 20 61 6e 64 20 28 65 6b 73 70 6f ┆; IF (xdens>0) and (ekspo┆ 0x6b120…6b140 79 20 3c 3e 20 30 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 61 77 65 78 70 6f 6e 65 6e 74 28 ┆y <> 0) THEN drawexponent(┆ 0x6b140…6b160 57 6e 64 5f 2e 6d 61 78 78 2d 34 38 2c 30 2c 65 6b 73 70 6f 79 2c 27 78 2a 31 30 27 29 3b 0d 0a ┆Wnd_.maxx-48,0,ekspoy,'x*10'); ┆ 0x6b160…6b180 20 20 0d 0a 20 20 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 73 ┆ Fract:=NDiff/NPoints; s┆ 0x6b180…6b1a0 3a 3d 2d 46 72 61 63 74 3b 0d 0a 20 20 79 73 3a 3d 78 6b 30 2d 34 30 3b 0d 0a 20 20 44 69 66 66 ┆:=-Fract; ys:=xk0-40; Diff┆ 0x6b1a0…6b1c0 3a 3d 28 57 6c 64 5f 2e 78 72 61 6e 67 65 29 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 46 4f 52 20 ┆:=(Wld_.xrange)/NPoints; FOR ┆ 0x6b1c0…6b1e0 69 3a 3d 30 20 54 4f 20 4e 50 6f 69 6e 74 73 2d 31 20 44 4f 0d 0a 20 20 20 42 45 47 49 4e 0d 0a ┆i:=0 TO NPoints-1 DO BEGIN ┆ 0x6b1e0…6b200 20 20 20 20 79 73 3a 3d 79 73 2b 34 30 3b 0d 0a 20 20 20 20 4e 75 6d 62 65 72 3a 3d 57 6c 64 5f ┆ ys:=ys+40; Number:=Wld_┆ 0x6b200…6b220 2e 78 31 2b 69 2a 44 69 66 66 3b 0d 0a 20 20 20 20 49 46 20 78 64 65 6e 73 3e 30 20 54 48 45 4e ┆.x1+i*Diff; IF xdens>0 THEN┆ 0x6b220…6b240 20 57 6e 64 5f 4c 69 6e 65 74 6f 28 79 73 2c 79 6b 30 2c 79 73 2c 79 6b 30 2d 34 29 3b 0d 0a 20 ┆ Wnd_Lineto(ys,yk0,ys,yk0-4); ┆ 0x6b240…6b260 20 20 20 49 46 20 28 78 64 65 6e 73 3e 30 29 20 41 4e 44 20 28 69 20 4d 4f 44 20 28 31 30 2d 78 ┆ IF (xdens>0) AND (i MOD (10-x┆ 0x6b260…6b280 44 65 6e 73 29 3d 30 29 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 6a 3a 3d 79 6b ┆Dens)=0) THEN BEGIN j:=yk┆ 0x6b280…6b2a0 30 3b 0d 0a 20 20 20 20 20 20 49 46 20 67 69 74 74 65 72 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 ┆0; IF gitter THEN ┆ 0x6b2a0…6b2c0 20 57 48 49 4c 45 20 6a 3c 3d 79 6b 31 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 ┆ WHILE j<=yk1 DO BEGIN ┆ 0x6b2c0…6b2e0 57 6e 64 5f 53 65 74 64 6f 74 28 79 73 2c 6a 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 20 20 ┆Wnd_Setdot(ys,j); j:=j+3; ┆ 0x6b2e0…6b300 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 79 73 3c 57 6e 64 5f 2e 6d 61 78 78 2d 34 ┆ END; IF (ys<Wnd_.maxx-4┆ 0x6b300…6b320 38 29 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 44 72 61 77 4e 75 6d 28 79 73 ┆8)THEN BEGIN DrawNum(ys┆ 0x6b320…6b340 2d 34 30 2c 30 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 ┆-40,0,EkspoY,Number); END┆ 0x6b340…6b360 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 ┆; END; END; WITH Wnd┆ 0x6b360…6b380 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 6b 30 3b 0d 0a 20 20 20 ┆_ DO BEGIN x1:=x1+xk0; ┆ 0x6b380…6b3a0 20 6d 61 78 78 3a 3d 6d 61 78 78 2d 78 6b 30 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 79 6b 30 ┆ maxx:=maxx-xk0; y1:=y1+yk0┆ 0x6b3a0…6b3c0 3b 0d 0a 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 79 6b 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a ┆; maxy:=maxy-yk0; END; ┆ 0x6b3c0…6b3e0 45 4e 44 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆END; ┆ 0x6b3e0…6b400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x6b400…6b420 (42, 1, 5) e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x1f…] 0x6b800…6b820 (43, 0, 1) 28 2a 47 53 56 2d 53 63 72 6e 2a 29 0d 0a 63 6f 6e 73 74 0d 0a 20 20 68 65 6c 70 3a 41 52 52 41 ┆(*GSV-Scrn*) const help:ARRA┆ 0x6b820…6b840 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 53 54 52 49 4e 47 28 2e 34 30 2e 29 20 3d 0d 0a 20 20 20 ┆Y(.0..7.) OF STRING(.40.) = ┆ 0x6b840…6b860 20 28 27 3c 48 4f 4d 45 3e 20 20 6d 61 72 6b 9b 72 20 74 69 6c 20 74 65 6b 73 74 73 74 61 72 74 ┆ ('<HOME> mark r til tekststart┆ 0x6b860…6b880 27 2c 0d 0a 20 20 20 20 27 3c 45 4e 44 3e 20 20 20 6d 61 72 6b 9b 72 20 74 69 6c 20 74 65 6b 73 ┆', '<END> mark r til teks┆ 0x6b880…6b8a0 74 73 6c 75 74 27 2c 0d 0a 20 20 20 20 27 3c 44 45 4c 3e 20 20 20 73 6c 65 74 20 74 65 67 6e 20 ┆tslut', '<DEL> slet tegn ┆ 0x6b8a0…6b8c0 70 86 20 6d 61 72 6b 9b 72 65 6e 73 20 70 6c 61 64 73 27 2c 0d 0a 20 20 20 20 27 3c 49 4e 53 3e ┆p mark rens plads', '<INS>┆ 0x6b8c0…6b8e0 20 20 20 73 6b 69 66 74 20 6d 65 6c 6c 65 6d 20 6f 76 65 72 73 6b 72 69 76 20 6f 67 20 69 6e 64 ┆ skift mellem overskriv og ind┆ 0x6b8e0…6b900 73 91 74 27 2c 0d 0a 20 20 20 20 27 3c 46 35 3e 20 20 20 20 73 6c 65 74 20 6c 69 6e 69 65 20 66 ┆s t', '<F5> slet linie f┆ 0x6b900…6b920 72 61 20 6d 61 72 6b 9b 72 65 6e 73 20 70 6c 61 64 73 27 2c 0d 0a 20 20 20 20 27 3c 11 27 40 31 ┆ra mark rens plads', '< '@1┆ 0x6b920…6b940 39 36 27 3e 20 20 20 20 73 6c 65 74 20 74 65 67 6e 20 74 69 6c 20 76 65 6e 73 74 72 65 20 46 4f ┆96'> slet tegn til venstre FO┆ 0x6b940…6b960 52 20 6d 61 72 6b 9b 72 27 2c 0d 0a 20 20 20 20 27 3c 1b 3e 20 20 20 20 20 72 79 6b 20 6d 61 72 ┆R mark r', '< > ryk mar┆ 0x6b960…6b980 6b 9b 72 20 65 6e 20 70 6c 61 64 73 20 74 69 6c 20 76 65 6e 73 74 72 65 27 2c 0d 0a 20 20 20 20 ┆k r en plads til venstre', ┆ 0x6b980…6b9a0 27 3c 27 40 32 36 27 3e 20 20 20 20 20 72 79 6b 20 6d 61 72 6b 9b 72 20 65 6e 20 70 6c 61 64 73 ┆'<'@26'> ryk mark r en plads┆ 0x6b9a0…6b9c0 20 74 69 6c 20 68 9b 6a 72 65 27 29 3b 0d 0a 0d 0a 0d 0a 7b 20 42 45 45 50 20 73 6f 75 6e 64 73 ┆ til h jre'); æ BEEP sounds┆ 0x6b9c0…6b9e0 20 74 68 65 20 74 65 72 6d 69 6e 61 6c 27 73 20 62 65 6c 6c 20 6f 72 20 62 65 65 70 65 72 20 7d ┆ the terminal's bell or beeper å┆ 0x6b9e0…6ba00 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 62 65 65 70 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 77 72 ┆ PROCEDURE beep; BEGIN wr┆ 0x6ba00…6ba20 69 74 65 28 5e 47 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 7b 20 43 41 50 20 63 6f 6e 76 65 72 ┆ite(^G); END; æ CAP conver┆ 0x6ba20…6ba40 74 73 20 61 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 75 70 70 65 72 20 63 61 73 65 20 7d 0d 0a ┆ts a character to upper case å ┆ 0x6ba40…6ba60 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 61 70 28 63 68 3a 20 63 68 61 72 29 3a 20 63 68 61 72 3b 0d ┆ FUNCTION cap(ch: char): char; ┆ 0x6ba60…6ba80 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 28 63 68 3e 3d 27 61 27 29 20 41 4e 44 20 28 63 68 3c 3d ┆ BEGIN IF (ch>='a') AND (ch<=┆ 0x6ba80…6baa0 27 7a 27 29 20 54 48 45 4e 0d 0a 20 20 63 61 70 3a 3d 63 68 72 28 6f 72 64 28 63 68 29 2d 33 32 ┆'z') THEN cap:=chr(ord(ch)-32┆ 0x6baa0…6bac0 29 20 45 4c 53 45 20 63 61 70 3a 3d 63 68 3b 0d 0a 45 4e 44 3b 0d 0a 7b 20 43 4c 52 46 52 41 4d ┆) ELSE cap:=ch; END; æ CLRFRAM┆ 0x6bac0…6bae0 45 20 63 6c 65 61 72 73 20 74 68 65 20 64 69 73 70 6c 61 79 20 66 72 61 6d 65 2c 20 69 2e 65 2e ┆E clears the display frame, i.e.┆ 0x6bae0…6bb00 20 6c 69 6e 65 73 20 33 20 74 6f 20 32 30 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 63 6c ┆ lines 3 to 20 å PROCEDURE cl┆ 0x6bb00…6bb20 72 66 72 61 6d 65 3b 0d 0a 56 41 52 0d 0a 20 20 69 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 ┆rframe; VAR i: integer; BEG┆ 0x6bb20…6bb40 49 4e 0d 0a 20 20 46 4f 52 20 69 3a 3d 34 20 54 4f 20 32 30 20 44 4f 0d 0a 20 20 42 45 47 49 4e ┆IN FOR i:=4 TO 20 DO BEGIN┆ 0x6bb40…6bb60 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 30 2c 69 29 3b 20 77 72 69 74 65 28 63 6c 72 65 6f 6c 29 ┆ gotoxy(0,i); write(clreol)┆ 0x6bb60…6bb80 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 72 6f 63 65 64 75 72 65 20 63 6c 72 ┆; END; END; Procedure clr┆ 0x6bb80…6bba0 66 65 6a 6c 3b 0d 0a 42 65 67 69 6e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 32 34 29 3b 20 57 72 ┆fejl; Begin gotoxy(0,24); Wr┆ 0x6bba0…6bbc0 69 74 65 28 63 6c 72 65 6f 6c 29 3b 0d 0a 45 6e 64 3b 0d 0a 20 20 0d 0a 50 72 6f 63 65 64 75 72 ┆ite(clreol); End; Procedur┆ 0x6bbc0…6bbe0 65 20 72 61 6d 6d 65 3b 0d 0a 42 65 67 69 6e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 30 29 3b 20 ┆e ramme; Begin gotoxy(0,0); ┆ 0x6bbe0…6bc00 77 72 69 74 65 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 57 72 69 74 65 6c ┆writeln(cstr('-',79)); Writel┆ 0x6bc00…6bc20 (43, 0, 2) 6e 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 ┆n; writeln(cstr('-',79)); ┆ 0x6bc20…6bc40 67 6f 74 6f 78 79 28 30 2c 32 31 29 3b 20 77 72 69 74 65 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 ┆gotoxy(0,21); writeln(cstr('-',7┆ 0x6bc40…6bc60 39 29 29 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 3b 20 0d 0a 20 20 77 72 69 74 65 28 63 73 74 72 28 ┆9)); writeln; write(cstr(┆ 0x6bc60…6bc80 27 2d 27 2c 37 39 29 29 3b 0d 0a 45 6e 64 3b 0d 0a 0d 0a 0d 0a 0d 0a 7b 20 53 45 4c 45 43 54 20 ┆'-',79)); End; æ SELECT ┆ 0x6bc80…6bca0 64 69 73 70 6c 61 79 20 74 68 65 20 70 72 6f 6d 70 74 20 73 74 72 69 6e 67 20 50 52 20 6f 6e 20 ┆display the prompt string PR on ┆ 0x6bca0…6bcc0 6c 69 6e 65 20 32 32 2c 20 61 6e 64 20 77 61 69 74 73 20 20 20 20 20 7d 0d 0a 7b 20 75 6e 74 69 ┆line 22, and waits å æ unti┆ 0x6bcc0…6bce0 6c 20 74 68 65 20 75 73 65 72 20 65 6e 74 65 72 73 20 61 20 63 68 61 72 61 63 74 65 72 20 77 68 ┆l the user enters a character wh┆ 0x6bce0…6bd00 69 63 68 20 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 20 20 7d 0d 0a 7b 20 54 ┆ich is contained in the å æ T┆ 0x6bd00…6bd20 45 52 4d 20 63 68 61 72 61 63 74 65 72 20 73 65 74 2e 20 54 68 65 20 63 68 61 72 61 63 74 65 72 ┆ERM character set. The character┆ 0x6bd20…6bd40 20 69 73 20 74 68 65 6e 20 72 65 74 75 72 6e 65 64 20 69 6e 20 54 43 2e 20 20 20 20 20 7d 0d 0a ┆ is then returned in TC. å ┆ 0x6bd40…6bd60 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6c 65 63 74 28 70 72 3a 20 73 74 72 38 30 3b 20 74 65 ┆ PROCEDURE select(pr: str80; te┆ 0x6bd60…6bd80 72 6d 3a 20 63 68 61 72 73 65 74 3b 20 56 41 52 20 74 63 3a 20 63 68 61 72 29 3b 0d 0a 56 41 52 ┆rm: charset; VAR tc: char); VAR┆ 0x6bd80…6bda0 0d 0a 20 20 63 68 3a 20 63 68 61 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 ┆ ch: char; BEGIN gotoxy(0┆ 0x6bda0…6bdc0 2c 32 32 29 3b 20 77 72 69 74 65 28 70 72 2c 27 3f 20 27 2c 63 6c 72 65 6f 6c 29 3b 0d 0a 20 20 ┆,22); write(pr,'? ',clreol); ┆ 0x6bdc0…6bde0 52 45 50 45 41 54 0d 0a 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 20 74 63 3a 3d 63 61 ┆REPEAT read(kbd,ch); tc:=ca┆ 0x6bde0…6be00 70 28 63 68 29 3b 0d 0a 20 20 20 20 49 46 20 4e 4f 54 28 74 63 20 49 4e 20 74 65 72 6d 29 20 54 ┆p(ch); IF NOT(tc IN term) T┆ 0x6be00…6be20 48 45 4e 20 62 65 65 70 3b 0d 0a 20 20 55 4e 54 49 4c 20 74 63 20 49 4e 20 74 65 72 6d 3b 0d 0a ┆HEN beep; UNTIL tc IN term; ┆ 0x6be20…6be40 20 20 77 72 69 74 65 28 63 68 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆ write(ch); END; PROCEDURE ┆ 0x6be40…6be60 73 65 6c 65 63 74 31 28 76 30 3a 20 73 74 72 31 35 3b 20 76 31 2c 76 32 2c 76 33 2c 76 34 2c 76 ┆select1(v0: str15; v1,v2,v3,v4,v┆ 0x6be60…6be80 35 2c 76 36 2c 76 37 3a 20 73 74 72 32 35 3b 20 56 41 52 20 63 68 3a 20 63 68 61 72 29 3b 0d 0a ┆5,v6,v7: str25; VAR ch: char); ┆ 0x6be80…6bea0 0d 0a 56 61 72 0d 0a 20 20 20 20 74 65 72 6d 3a 20 63 68 61 72 73 65 74 3b 0d 0a 20 20 42 65 67 ┆ Var term: charset; Beg┆ 0x6bea0…6bec0 69 6e 0d 0a 20 20 20 20 74 65 72 6d 3a 3d 5b 27 41 27 2c 27 42 27 2c 27 43 27 2c 27 44 27 2c 27 ┆in term:=Æ'A','B','C','D','┆ 0x6bec0…6bee0 45 27 2c 27 46 27 2c 27 47 27 5d 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 32 29 3b ┆E','F','G'Å; gotoxy(20,12);┆ 0x6bee0…6bf00 57 72 69 74 65 28 63 73 74 72 28 27 2d 27 2c 32 39 29 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 ┆Write(cstr('-',29)); gotoxy┆ 0x6bf00…6bf20 28 32 30 2c 31 33 29 3b 57 72 69 74 65 28 27 7c 27 2c 76 30 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 ┆(20,13);Write('ø',v0,clreol);Got┆ 0x6bf20…6bf40 6f 78 79 28 34 38 2c 31 33 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f ┆oxy(48,13);Write('ø'); goto┆ 0x6bf40…6bf60 78 79 28 32 30 2c 31 34 29 3b 57 72 69 74 65 28 27 7c 20 41 29 20 27 2c 76 31 2c 63 6c 72 65 6f ┆xy(20,14);Write('ø A) ',v1,clreo┆ 0x6bf60…6bf80 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 34 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 ┆l);Gotoxy(48,14);Write('ø'); ┆ 0x6bf80…6bfa0 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 35 29 3b 57 72 69 74 65 28 27 7c 20 42 29 20 27 2c 76 32 ┆ gotoxy(20,15);Write('ø B) ',v2┆ 0x6bfa0…6bfc0 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 35 29 3b 57 72 69 74 65 28 27 7c 27 ┆,clreol);Gotoxy(48,15);Write('ø'┆ 0x6bfc0…6bfe0 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 36 29 3b 57 72 69 74 65 28 27 7c 20 43 ┆); gotoxy(20,16);Write('ø C┆ 0x6bfe0…6c000 29 20 27 2c 76 33 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 36 29 3b 57 72 69 ┆) ',v3,clreol);Gotoxy(48,16);Wri┆ 0x6c000…6c020 (43, 0, 3) 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 37 29 3b 57 72 69 74 ┆te('ø'); gotoxy(20,17);Writ┆ 0x6c020…6c040 65 28 27 7c 20 44 29 20 27 2c 76 34 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 ┆e('ø D) ',v4,clreol);Gotoxy(48,1┆ 0x6c040…6c060 37 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 38 ┆7);Write('ø'); gotoxy(20,18┆ 0x6c060…6c080 29 3b 57 72 69 74 65 28 27 7c 20 45 29 20 27 2c 76 35 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 ┆);Write('ø E) ',v5,clreol);Gotox┆ 0x6c080…6c0a0 79 28 34 38 2c 31 38 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 ┆y(48,18);Write('ø'); gotoxy┆ 0x6c0a0…6c0c0 28 32 30 2c 31 39 29 3b 57 72 69 74 65 28 27 7c 20 46 29 20 27 2c 76 36 2c 63 6c 72 65 6f 6c 29 ┆(20,19);Write('ø F) ',v6,clreol)┆ 0x6c0c0…6c0e0 3b 47 6f 74 6f 78 79 28 34 38 2c 31 39 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 ┆;Gotoxy(48,19);Write('ø'); ┆ 0x6c0e0…6c100 67 6f 74 6f 78 79 28 32 30 2c 32 30 29 3b 57 72 69 74 65 28 27 7c 20 47 29 20 27 2c 76 37 2c 63 ┆gotoxy(20,20);Write('ø G) ',v7,c┆ 0x6c100…6c120 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 32 30 29 3b 57 72 69 74 65 28 27 7c 27 29 3b ┆lreol);Gotoxy(48,20);Write('ø');┆ 0x6c120…6c140 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 30 2c 32 32 29 3b 20 57 72 69 74 65 28 27 49 6e 64 74 61 ┆ gotoxy(0,22); Write('Indta┆ 0x6c140…6c160 73 74 20 76 61 6c 67 3a 20 27 2c 63 6c 72 65 6f 6c 29 3b 20 0d 0a 20 20 20 20 52 65 70 65 61 74 ┆st valg: ',clreol); Repeat┆ 0x6c160…6c180 0d 0a 20 20 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 20 63 68 3a 3d 63 61 70 28 63 68 ┆ read(kbd,ch); ch:=cap(ch┆ 0x6c180…6c1a0 29 3b 0d 0a 20 20 20 20 20 20 49 46 20 4e 4f 54 28 63 68 20 49 4e 20 74 65 72 6d 29 20 54 48 45 ┆); IF NOT(ch IN term) THE┆ 0x6c1a0…6c1c0 4e 20 62 65 65 70 3b 0d 0a 20 20 20 20 55 4e 54 49 4c 20 63 68 20 49 4e 20 74 65 72 6d 3b 0d 0a ┆N beep; UNTIL ch IN term; ┆ 0x6c1c0…6c1e0 20 20 20 20 0d 0a 20 20 20 20 77 72 69 74 65 28 63 68 29 3b 0d 0a 0d 0a 20 20 45 6e 64 3b 0d 0a ┆ write(ch); End; ┆ 0x6c1e0…6c200 0d 0a 0d 0a 0d 0a 0d 0a 7b 20 49 4e 50 53 54 52 20 69 73 20 61 20 67 65 6e 65 72 61 6c 69 7a 65 ┆ æ INPSTR is a generalize┆ 0x6c200…6c220 64 20 73 74 72 69 6e 67 20 69 6e 70 75 74 20 72 6f 75 74 69 6e 65 20 77 68 69 63 68 20 73 75 70 ┆d string input routine which sup┆ 0x6c220…6c240 70 6f 72 74 73 20 20 20 7d 0d 0a 7b 20 6f 6e 2d 73 63 72 65 65 6e 20 65 64 69 74 69 6e 67 2e 20 ┆ports å æ on-screen editing. ┆ 0x6c240…6c260 53 20 69 73 20 61 6e 79 20 73 74 72 69 6e 67 20 76 61 72 69 61 62 6c 65 2e 20 4c 20 69 73 20 74 ┆S is any string variable. L is t┆ 0x6c260…6c280 68 65 20 6d 61 78 69 6d 75 6d 20 7d 0d 0a 7b 20 69 6e 70 75 74 20 6c 65 6e 67 74 68 2e 20 58 20 ┆he maximum å æ input length. X ┆ 0x6c280…6c2a0 61 6e 64 20 59 20 61 72 65 20 74 68 65 20 64 69 73 70 6c 61 79 20 63 6f 6f 72 64 69 6e 61 74 65 ┆and Y are the display coordinate┆ 0x6c2a0…6c2c0 73 2e 20 54 45 52 4d 20 69 73 20 61 20 20 7d 0d 0a 7b 20 73 65 74 20 6f 66 20 76 61 6c 69 64 20 ┆s. TERM is a å æ set of valid ┆ 0x6c2c0…6c2e0 74 65 72 6d 69 6e 61 74 6f 72 20 63 68 61 72 61 63 74 65 72 73 2c 20 61 6e 64 20 54 43 20 72 65 ┆terminator characters, and TC re┆ 0x6c2e0…6c300 74 75 72 6e 73 20 74 68 65 20 63 68 61 72 2d 20 20 7d 0d 0a 7b 20 61 63 74 65 72 20 74 68 61 74 ┆turns the char- å æ acter that┆ 0x6c300…6c320 20 74 65 72 6d 69 6e 61 74 65 64 20 74 68 65 20 69 6e 70 75 74 2e 20 4f 6e 20 65 6e 74 72 79 2c ┆ terminated the input. On entry,┆ 0x6c320…6c340 20 53 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 61 74 20 20 7d 0d 0a 7b 20 58 2c 59 20 6f 6e 20 ┆ S is displayed at å æ X,Y on ┆ 0x6c340…6c360 74 68 65 20 73 63 72 65 65 6e 2c 20 70 61 64 64 65 64 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 ┆the screen, padded to the right ┆ 0x6c360…6c380 77 69 74 68 20 75 6e 64 65 72 73 63 6f 72 65 73 2e 20 54 68 65 20 20 7d 0d 0a 7b 20 73 74 72 69 ┆with underscores. The å æ stri┆ 0x6c380…6c3a0 6e 67 20 6d 61 79 20 74 68 65 6e 20 62 65 20 65 64 69 74 65 64 20 75 73 69 6e 67 20 73 74 61 6e ┆ng may then be edited using stan┆ 0x6c3a0…6c3c0 64 61 72 64 20 63 6f 6e 74 72 6f 6c 20 6b 65 79 73 3a 20 5e 53 20 61 6e 64 20 7d 0d 0a 7b 20 5e ┆dard control keys: ^S and å æ ^┆ 0x6c3c0…6c3e0 44 20 66 6f 72 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 2c 20 5e 41 20 61 6e 64 20 5e 46 20 ┆D for left and right, ^A and ^F ┆ 0x6c3e0…6c400 66 6f 72 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 20 6f 66 20 20 20 20 20 7d 0d 0a ┆for beginning and end of å ┆ 0x6c400…6c420 (43, 0, 4) 7b 20 6c 69 6e 65 2c 20 5e 47 20 74 6f 20 64 65 6c 65 74 65 20 74 68 65 20 63 68 61 72 61 63 74 ┆æ line, ^G to delete the charact┆ 0x6c420…6c440 65 72 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 73 6f 72 2c 20 5e 48 20 6f 72 20 44 45 4c 20 20 ┆er under the cursor, ^H or DEL ┆ 0x6c440…6c460 7d 0d 0a 7b 20 74 6f 20 62 61 63 6b 73 70 61 63 65 2c 20 61 6e 64 20 5e 59 20 74 6f 20 64 65 6c ┆å æ to backspace, and ^Y to del┆ 0x6c460…6c480 65 74 65 20 74 6f 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 20 57 68 65 6e 20 61 20 20 ┆ete to end of the line. When a ┆ 0x6c480…6c4a0 20 20 20 7d 0d 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 73 20 74 79 70 65 64 2c 20 69 74 20 69 ┆ å æ character is typed, it i┆ 0x6c4a0…6c4c0 73 20 69 6e 73 65 72 74 65 64 20 61 74 20 74 68 65 20 63 75 72 73 6f 72 20 61 74 20 74 68 65 20 ┆s inserted at the cursor at the ┆ 0x6c4c0…6c4e0 72 65 2d 20 20 20 7d 0d 0a 7b 20 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 69 ┆re- å æ mainder of the line i┆ 0x6c4e0…6c500 73 20 6d 6f 76 65 64 20 74 6f 20 74 68 65 20 72 69 67 68 74 2e 20 57 68 65 6e 20 61 20 74 65 72 ┆s moved to the right. When a ter┆ 0x6c500…6c520 6d 69 6e 61 74 6f 72 20 20 7d 0d 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 73 20 74 79 70 65 64 ┆minator å æ character is typed┆ 0x6c520…6c540 2c 20 74 68 65 20 74 72 61 69 6c 69 6e 67 20 75 6e 64 65 72 73 63 6f 72 73 20 61 72 65 20 72 65 ┆, the trailing underscors are re┆ 0x6c540…6c560 6d 6f 76 65 64 2c 20 61 6e 64 20 20 7d 0d 0a 7b 20 49 4e 50 53 54 52 20 72 65 74 75 72 6e 73 20 ┆moved, and å æ INPSTR returns ┆ 0x6c560…6c580 77 69 74 68 20 74 68 65 20 65 64 69 74 65 64 20 73 74 72 69 6e 67 20 69 6e 20 53 20 61 6e 64 20 ┆with the edited string in S and ┆ 0x6c580…6c5a0 74 68 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 7d 0d 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 6e ┆the terminator å æ character in┆ 0x6c5a0…6c5c0 20 54 43 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ TC. ┆ 0x6c5c0…6c5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ å PROCEDURE┆ 0x6c5e0…6c600 20 69 6e 70 73 74 72 28 56 41 52 20 73 3a 20 61 6e 79 73 74 72 3b 20 6c 2c 78 2c 79 3a 20 69 6e ┆ inpstr(VAR s: anystr; l,x,y: in┆ 0x6c600…6c620 74 65 67 65 72 3b 0d 0a 20 20 74 65 72 6d 20 3a 20 63 68 61 72 73 65 74 3b 20 56 41 52 20 74 63 ┆teger; term : charset; VAR tc┆ 0x6c620…6c640 3a 20 63 68 61 72 29 3b 0d 0a 43 4f 4e 53 54 0d 0a 20 20 66 63 20 3d 20 27 5f 27 3b 0d 0a 4c 61 ┆: char); CONST fc = '_'; La┆ 0x6c640…6c660 62 65 6c 20 6c 6c 3b 0d 0a 56 41 52 0d 0a 20 20 74 65 6b 73 74 3a 20 73 74 72 32 35 3b 0d 0a 20 ┆bel ll; VAR tekst: str25; ┆ 0x6c660…6c680 20 69 2c 74 61 6c 2c 61 6e 74 61 6c 2c 78 78 2c 79 79 2c 70 3a 20 69 6e 74 65 67 65 72 3b 0d 0a ┆ i,tal,antal,xx,yy,p: integer; ┆ 0x6c680…6c6a0 20 20 70 61 61 2c 63 68 3a 20 63 68 61 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 67 6f ┆ paa,ch: char; BEGIN go┆ 0x6c6a0…6c6c0 74 6f 78 79 28 78 2c 79 29 3b 20 77 72 69 74 65 28 73 2c 63 73 74 72 28 66 63 2c 6c 2d 6c 65 6e ┆toxy(x,y); write(s,cstr(fc,l-len┆ 0x6c6c0…6c6e0 28 73 29 29 29 3b 20 70 3a 3d 30 3b 0d 0a 20 20 78 78 3a 3d 78 3b 79 79 3a 3d 79 3b 61 6e 74 61 ┆(s))); p:=0; xx:=x;yy:=y;anta┆ 0x6c6e0…6c700 6c 3a 3d 78 78 3b 0d 0a 20 20 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 67 6f 74 6f 78 79 ┆l:=xx; REPEAT gotoxy┆ 0x6c700…6c720 28 78 78 2c 79 79 29 3b 20 0d 0a 20 20 20 20 6c 6c 3a 0d 0a 20 20 20 20 72 65 61 64 28 6b 62 64 ┆(xx,yy); ll: read(kbd┆ 0x6c720…6c740 2c 63 68 29 3b 0d 0a 20 20 20 20 43 41 53 45 20 63 68 20 4f 46 0d 0a 20 20 20 20 20 20 40 33 32 ┆,ch); CASE ch OF @32┆ 0x6c740…6c760 2e 2e 40 31 32 36 2c 20 40 31 32 38 2e 2e 40 32 35 35 3a 0d 0a 20 20 20 20 20 20 49 46 20 70 3c ┆..@126, @128..@255: IF p<┆ 0x6c760…6c780 6c 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 49 46 20 ┆l THEN BEGIN IF ┆ 0x6c780…6c7a0 6c 65 6e 28 73 29 3d 6c 20 54 48 45 4e 20 64 65 6c 65 74 65 28 73 2c 6c 2c 31 29 3b 0d 0a 20 20 ┆len(s)=l THEN delete(s,l,1); ┆ 0x6c7a0…6c7c0 20 20 20 20 20 20 78 78 3a 3d 78 78 2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 70 3a 3d 70 2b 31 3b ┆ xx:=xx+1; p:=p+1;┆ 0x6c7c0…6c7e0 20 69 6e 73 65 72 74 28 63 68 2c 73 2c 70 29 3b 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 ┆ insert(ch,s,p); write(┆ 0x6c7e0…6c800 63 6f 70 79 28 73 2c 70 2c 6c 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 49 66 20 78 78 3d 38 31 20 ┆copy(s,p,l)); If xx=81 ┆ 0x6c800…6c820 (43, 0, 5) 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 78 78 ┆then begin xx┆ 0x6c820…6c840 3a 3d 31 3b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 79 79 3a 3d 79 79 2b 31 3b 0d 0a 20 20 20 20 ┆:=1; yy:=yy+1; ┆ 0x6c840…6c860 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a ┆ end; END ELSE beep; ┆ 0x6c860…6c880 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 5e 5a 3a 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 ┆ ^Z: Begin ┆ 0x6c880…6c8a0 20 20 20 20 20 49 66 20 70 61 61 3d 27 4a 27 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 ┆ If paa='J' then Begin ┆ 0x6c8a0…6c8c0 20 20 20 20 20 20 20 20 20 20 46 6f 72 20 69 3a 3d 20 35 20 74 6f 20 31 30 20 64 6f 20 42 65 67 ┆ For i:= 5 to 10 do Beg┆ 0x6c8c0…6c8e0 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 69 29 ┆in gotoxy(40,i)┆ 0x6c8e0…6c900 3b 20 57 72 69 74 65 28 63 6c 72 65 6f 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆; Write(clreol); ┆ 0x6c900…6c920 45 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 61 3a 3d 20 27 4e 27 3b 0d 0a ┆End; paa:= 'N'; ┆ 0x6c920…6c940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 20 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 ┆ goto ll; ┆ 0x6c940…6c960 20 20 20 20 45 6e 64 3b 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 ┆ End; gotoxy┆ 0x6c960…6c980 28 34 30 2c 35 29 3b 20 57 72 69 74 65 28 27 5e 41 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 ┆(40,5); Write('^A: Mark r flytte┆ 0x6c980…6c9a0 73 20 68 65 6c 74 20 74 69 6c 20 76 65 6e 73 74 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆s helt til venstre'); ┆ 0x6c9a0…6c9c0 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 36 29 3b 20 57 72 69 74 65 28 27 5e 53 3a 20 4d 61 72 6b ┆ gotoxy(40,6); Write('^S: Mark┆ 0x6c9c0…6c9e0 9b 72 20 66 6c 79 74 74 65 73 20 65 6e 20 20 20 74 69 6c 20 76 65 6e 73 74 72 65 27 29 3b 0d 0a ┆ r flyttes en til venstre'); ┆ 0x6c9e0…6ca00 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 37 29 3b 20 57 72 69 74 65 28 ┆ gotoxy(40,7); Write(┆ 0x6ca00…6ca20 27 5e 44 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 65 6e 20 20 20 74 69 6c 20 68 9b 6a ┆'^D: Mark r flyttes en til h j┆ 0x6ca20…6ca40 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 38 29 3b ┆re'); gotoxy(40,8);┆ 0x6ca40…6ca60 20 57 72 69 74 65 28 27 5e 46 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 68 65 6c 74 20 ┆ Write('^F: Mark r flyttes helt ┆ 0x6ca60…6ca80 74 69 6c 20 68 9b 6a 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 ┆til h jre'); gotoxy┆ 0x6ca80…6caa0 28 34 30 2c 39 29 3b 20 57 72 69 74 65 28 27 5e 47 3a 20 54 65 67 6e 20 6f 76 65 72 20 6d 61 72 ┆(40,9); Write('^G: Tegn over mar┆ 0x6caa0…6cac0 6b 9b 72 20 73 6c 65 74 74 65 73 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f ┆k r slettes'); goto┆ 0x6cac0…6cae0 78 79 28 34 30 2c 31 30 29 3b 20 57 72 69 74 65 28 27 5e 48 3a 20 54 65 67 6e 20 68 65 6c 74 20 ┆xy(40,10); Write('^H: Tegn helt ┆ 0x6cae0…6cb00 74 69 6c 20 68 9b 6a 72 65 20 73 6c 65 74 74 65 73 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆til h jre slettes'); ┆ 0x6cb00…6cb20 20 20 70 61 61 3a 3d 27 4a 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 ┆ paa:='J'; END; ┆ 0x6cb20…6cb40 20 20 20 0d 0a 20 20 20 20 20 20 5e 53 3a 20 49 46 20 70 3e 30 20 54 48 45 4e 20 42 65 67 69 6e ┆ ^S: IF p>0 THEN Begin┆ 0x6cb40…6cb60 0d 0a 20 20 20 20 20 20 20 20 20 20 70 3a 3d 70 2d 31 3b 20 78 78 3a 3d 78 78 2d 31 3b 0d 0a 20 ┆ p:=p-1; xx:=xx-1; ┆ 0x6cb60…6cb80 20 20 20 20 20 20 20 20 20 49 66 20 28 78 78 3d 2d 31 29 20 61 6e 64 20 28 79 79 20 3c 3e 20 79 ┆ If (xx=-1) and (yy <> y┆ 0x6cb80…6cba0 29 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 79 79 3a 3d 79 79 ┆) then Begin yy:=yy┆ 0x6cba0…6cbc0 2d 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 78 3a 3d 37 39 3b 0d 0a 20 20 20 20 20 20 ┆-1; xx:=79; ┆ 0x6cbc0…6cbe0 20 20 20 20 45 6e 64 3b 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 45 4c 53 45 20 62 ┆ End; End ELSE b┆ 0x6cbe0…6cc00 65 65 70 3b 0d 0a 20 20 20 20 20 20 5e 44 3a 20 49 46 20 70 3c 6c 65 6e 28 73 29 20 54 48 45 4e ┆eep; ^D: IF p<len(s) THEN┆ 0x6cc00…6cc20 (43, 1, 1) 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 70 3a 3d 70 2b 31 3b 20 78 78 3a 3d 78 78 ┆ Begin p:=p+1; xx:=xx┆ 0x6cc20…6cc40 2b 31 3b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 78 78 3d 38 30 20 74 68 65 6e 20 42 65 ┆+1; If xx=80 then Be┆ 0x6cc40…6cc60 67 69 6e 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 78 3a 3d 20 30 3b 0d 0a 20 20 20 20 20 ┆gin xx:= 0; ┆ 0x6cc60…6cc80 20 20 20 20 20 20 20 79 79 20 3a 3d 20 79 79 20 2b 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ yy := yy + 1; ┆ 0x6cc80…6cca0 45 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a ┆End; End ELSE beep; ┆ 0x6cca0…6ccc0 20 20 20 20 20 20 5e 41 3a 20 42 65 67 69 6e 20 70 3a 3d 30 3b 20 78 78 3a 3d 78 3b 20 79 79 3a ┆ ^A: Begin p:=0; xx:=x; yy:┆ 0x6ccc0…6cce0 3d 79 3b 20 45 6e 64 3b 0d 0a 20 20 20 20 20 20 5e 46 3a 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 ┆=y; End; ^F: Begin ┆ 0x6cce0…6cd00 20 20 20 20 20 20 20 79 79 3a 3d 79 79 20 2b 74 72 75 6e 63 20 28 28 6c 65 6e 28 73 29 2b 78 29 ┆ yy:=yy +trunc ((len(s)+x)┆ 0x6cd00…6cd20 2f 20 38 31 29 3b 20 78 78 3a 3d 20 28 6c 65 6e 28 73 29 2b 78 29 20 6d 6f 64 20 38 31 20 3b 0d ┆/ 81); xx:= (len(s)+x) mod 81 ; ┆ 0x6cd20…6cd40 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 20 20 20 20 20 ┆ p:=len(s); ┆ 0x6cd40…6cd60 20 20 20 45 6e 64 3b 0d 0a 20 20 20 20 20 20 5e 47 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 49 46 ┆ End; ^G: IF┆ 0x6cd60…6cd80 20 70 3c 6c 65 6e 28 73 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d ┆ p<len(s) THEN BEGIN ┆ 0x6cd80…6cda0 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 28 73 2c 70 2b 31 2c 31 29 3b 20 77 72 ┆ delete(s,p+1,1); wr┆ 0x6cda0…6cdc0 69 74 65 28 63 6f 70 79 28 73 2c 70 2b 31 2c 6c 29 2c 66 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 ┆ite(copy(s,p+1,l),fc); ┆ 0x6cdc0…6cde0 20 20 45 4e 44 20 65 6c 73 65 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 20 5e 48 2c 40 31 32 37 3a ┆ END else beep; ^H,@127:┆ 0x6cde0…6ce00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 49 46 20 ┆ IF ┆ 0x6ce00…6ce20 70 3e 30 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 ┆p>0 THEN BEGIN ┆ 0x6ce20…6ce40 20 20 20 20 20 20 20 64 65 6c 65 74 65 28 73 2c 70 2c 31 29 3b 20 77 72 69 74 65 28 5e 48 2c 63 ┆ delete(s,p,1); write(^H,c┆ 0x6ce40…6ce60 6f 70 79 28 73 2c 70 2c 6c 29 2c 66 63 29 3b 20 70 3a 3d 70 2d 31 3b 78 78 3a 3d 78 78 2d 31 3b ┆opy(s,p,l),fc); p:=p-1;xx:=xx-1;┆ 0x6ce60…6ce80 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a 20 20 20 20 ┆ END ELSE beep; ┆ 0x6ce80…6cea0 20 20 5e 59 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 ┆ ^Y: BEGIN ┆ 0x6cea0…6cec0 20 20 20 20 77 72 69 74 65 28 63 73 74 72 28 66 63 2c 6c 65 6e 28 73 29 2d 70 29 29 3b 20 64 65 ┆ write(cstr(fc,len(s)-p)); de┆ 0x6cec0…6cee0 6c 65 74 65 28 73 2c 70 2b 31 2c 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a ┆lete(s,p+1,l); END; ┆ 0x6cee0…6cf00 20 20 20 20 4f 54 48 45 52 57 49 53 45 0d 0a 20 20 20 20 20 20 49 46 20 4e 4f 54 28 63 68 20 49 ┆ OTHERWISE IF NOT(ch I┆ 0x6cf00…6cf20 4e 20 74 65 72 6d 29 20 54 48 45 4e 20 62 65 65 70 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆N term) THEN beep; END; ┆ 0x6cf20…6cf40 0d 0a 20 20 55 4e 54 49 4c 20 63 68 20 49 4e 20 74 65 72 6d 3b 0d 0a 20 20 69 66 20 70 20 3c 20 ┆ UNTIL ch IN term; if p < ┆ 0x6cf40…6cf60 6c 65 6e 28 73 29 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 79 79 3a 3d 79 79 20 2b 74 ┆len(s) then Begin yy:=yy +t┆ 0x6cf60…6cf80 72 75 6e 63 20 28 28 6c 65 6e 28 73 29 2b 78 29 2f 20 38 31 29 3b 0d 0a 20 20 20 20 78 78 3a 3d ┆runc ((len(s)+x)/ 81); xx:=┆ 0x6cf80…6cfa0 20 28 6c 65 6e 28 73 29 2b 78 29 20 6d 6f 64 20 38 31 20 3b 0d 0a 20 20 45 6e 64 3b 20 20 0d 0a ┆ (len(s)+x) mod 81 ; End; ┆ 0x6cfa0…6cfc0 20 20 70 3a 3d 6c 65 6e 28 73 29 3b 20 67 6f 74 6f 78 79 28 78 78 2c 79 79 29 3b 20 77 72 69 74 ┆ p:=len(s); gotoxy(xx,yy); writ┆ 0x6cfc0…6cfe0 65 28 27 27 3a 6c 2d 70 29 3b 0d 0a 20 20 74 63 3a 3d 63 68 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 ┆e('':l-p); tc:=ch; END; F┆ 0x6cfe0…6d000 55 4e 43 54 49 4f 4e 20 72 65 61 64 73 74 72 74 78 74 28 78 2c 79 2c 6c 3a 20 49 4e 54 45 47 45 ┆UNCTION readstrtxt(x,y,l: INTEGE┆ 0x6d000…6d020 (43, 1, 2) 52 29 3a 20 73 74 72 38 30 3b 0d 0a 56 41 52 0d 0a 20 20 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆R): str80; VAR i: INTEGER; ┆ 0x6d020…6d040 20 20 73 74 72 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 3a 3d 27 27 3b ┆ str: str80; BEGIN str:='';┆ 0x6d040…6d060 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 74 78 74 ┆ WITH Wnd_ DO FOR i:=txt┆ 0x6d060…6d080 78 31 2b 78 20 54 4f 20 74 78 74 78 31 2b 6c 20 44 4f 0d 0a 20 20 20 20 20 20 73 74 72 3a 3d 73 ┆x1+x TO txtx1+l DO str:=s┆ 0x6d080…6d0a0 74 72 2b 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 79 2e 29 5e 28 2e 69 2e 29 2e 63 68 3b 0d 0a 20 ┆tr+txt_lineptr(.y.)^(.i.).ch; ┆ 0x6d0a0…6d0c0 20 72 65 61 64 73 74 72 54 78 74 3a 3d 73 74 72 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 ┆ readstrTxt:=str; END; FUNCT┆ 0x6d0c0…6d0e0 49 4f 4e 20 53 63 72 5f 47 65 74 44 6f 74 28 78 2c 79 3a 49 4e 54 45 47 45 52 29 3a 42 4f 4f 4c ┆ION Scr_GetDot(x,y:INTEGER):BOOL┆ 0x6d0e0…6d100 45 41 4e 3b 0d 0a 56 41 52 20 74 6f 74 61 6c 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e ┆EAN; VAR total: INTEGER; BEGIN┆ 0x6d100…6d120 0d 0a 20 74 6f 74 61 6c 3a 3d 53 63 72 5f 78 61 64 64 72 28 2e 78 2e 29 2b 53 63 72 5f 79 61 64 ┆ total:=Scr_xaddr(.x.)+Scr_yad┆ 0x6d120…6d140 64 72 28 2e 79 2e 29 3b 0d 0a 20 53 63 72 5f 67 65 74 64 6f 74 3a 3d 0d 0a 20 28 57 6e 64 5f 2e ┆dr(.y.); Scr_getdot:= (Wnd_.┆ 0x6d140…6d160 70 65 6e 63 6f 6c 6f 72 3d 62 6c 61 63 6b 29 20 45 58 4f 52 20 28 6d 65 6d 28 2e 53 63 72 5f 73 ┆pencolor=black) EXOR (mem(.Scr_s┆ 0x6d160…6d180 65 67 6d 3a 74 6f 74 61 6c 2e 29 20 41 4e 44 20 28 31 32 38 20 53 48 52 20 28 78 20 41 4e 44 20 ┆egm:total.) AND (128 SHR (x AND ┆ 0x6d180…6d1a0 37 29 29 3c 3e 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 ┆7))<>0); END; PROCEDURE writ┆ 0x6d1a0…6d1c0 65 66 72 61 6d 65 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6c 68 2c 6c 78 2c 6c 79 3a 20 49 4e 54 45 ┆eframe; VAR i,lh,lx,ly: INTE┆ 0x6d1c0…6d1e0 47 45 52 3b 0d 0a 20 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 ┆GER; s: str80; BEGIN WITH┆ 0x6d1e0…6d200 20 57 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 78 3a 3d 74 78 74 6d 61 78 78 3b ┆ Wnd_ DO BEGIN lx:=txtmaxx;┆ 0x6d200…6d220 20 6c 79 3a 3d 74 78 74 6d 61 78 79 3b 20 6c 68 3a 3d 28 28 6c 78 2b 32 29 2d 6c 65 6e 28 68 64 ┆ ly:=txtmaxy; lh:=((lx+2)-len(hd┆ 0x6d220…6d240 72 29 29 20 44 49 56 20 32 2b 31 3b 0d 0a 20 20 20 20 73 3a 3d 27 c9 27 2b 73 70 63 28 6c 78 2d ┆r)) DIV 2+1; s:=' '+spc(lx-┆ 0x6d240…6d260 31 2c 27 cd 27 29 2b 27 bb 27 3b 0d 0a 20 20 20 20 6d 6f 76 65 28 68 64 72 28 2e 31 2e 29 2c 73 ┆1,' ')+' '; move(hdr(.1.),s┆ 0x6d260…6d280 28 2e 6c 68 2e 29 2c 6c 65 6e 28 68 64 72 29 29 3b 0d 0a 20 20 20 20 64 72 61 77 74 65 78 74 28 ┆(.lh.),len(hdr)); drawtext(┆ 0x6d280…6d2a0 30 2c 30 2c 73 29 3b 0d 0a 20 20 20 20 73 3a 3d 27 ba 27 2b 73 70 63 28 6c 78 2d 31 2c 27 20 27 ┆0,0,s); s:=' '+spc(lx-1,' '┆ 0x6d2a0…6d2c0 29 2b 27 ba 27 3b 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6c 79 2d 31 20 44 4f 20 ┆)+' '; FOR i:=1 TO ly-1 DO ┆ 0x6d2c0…6d2e0 64 72 61 77 74 65 78 74 28 30 2c 69 2c 73 29 3b 0d 0a 20 20 20 20 64 72 61 77 74 65 78 74 28 30 ┆drawtext(0,i,s); drawtext(0┆ 0x6d2e0…6d300 2c 6c 79 2c 27 c8 27 2b 73 70 63 28 6c 78 2d 31 2c 27 cd 27 29 2b 27 bc 27 29 3b 0d 0a 20 20 20 ┆,ly,' '+spc(lx-1,' ')+' '); ┆ 0x6d300…6d320 20 74 78 74 78 31 3a 3d 73 75 63 63 28 74 78 74 78 31 29 3b 74 78 74 6d 61 78 78 3a 3d 74 78 74 ┆ txtx1:=succ(txtx1);txtmaxx:=txt┆ 0x6d320…6d340 6d 61 78 78 2d 32 3b 0d 0a 20 20 20 20 74 78 74 79 31 3a 3d 73 75 63 63 28 74 78 74 79 31 29 3b ┆maxx-2; txty1:=succ(txty1);┆ 0x6d340…6d360 74 78 74 6d 61 78 79 3a 3d 74 78 74 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b ┆txtmaxy:=txtmaxy-2; x1:=x1+┆ 0x6d360…6d380 38 3b 6d 61 78 78 3a 3d 6d 61 78 78 2d 31 36 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 38 3b 6d ┆8;maxx:=maxx-16; y1:=y1+8;m┆ 0x6d380…6d3a0 61 78 79 3a 3d 6d 61 78 79 2d 31 36 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆axy:=maxy-16; END; END; P┆ 0x6d3a0…6d3c0 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 68 65 6c 70 28 6e 6f 2c 77 2c 6c 3a 20 49 4e 54 45 47 ┆ROCEDURE writehelp(no,w,l: INTEG┆ 0x6d3c0…6d3e0 45 52 3b 56 41 52 20 73 74 29 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6a 2c 6b 2c 61 63 74 75 61 6c ┆ER;VAR st); VAR i,j,k,actual┆ 0x6d3e0…6d400 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 09 3a 73 74 72 38 30 3b 0d 0a 20 20 73 74 ┆ : INTEGER; str :str80; st┆ 0x6d400…6d420 (43, 1, 3) 72 6c 67 74 3a 62 79 74 65 20 41 54 20 73 74 72 3b 0d 0a 20 20 63 68 3a 20 43 48 41 52 3b 0d 0a ┆rlgt:byte AT str; ch: CHAR; ┆ 0x6d420…6d440 20 20 77 69 6e 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 63 74 75 61 ┆ win: Wnd_TYPE; BEGIN actua┆ 0x6d440…6d460 6c 3a 3d 57 6e 64 5f 61 63 74 75 61 6c 3b 0d 0a 20 20 77 69 6e 3a 3d 57 6e 64 5f 3b 0d 0a 20 20 ┆l:=Wnd_actual; win:=Wnd_; ┆ 0x6d460…6d480 73 65 6c 65 63 74 57 69 6e 64 6f 77 28 6e 6f 29 3b 0d 0a 20 20 73 61 76 65 57 69 6e 64 6f 77 28 ┆selectWindow(no); saveWindow(┆ 0x6d480…6d4a0 6e 6f 29 3b 0d 0a 20 20 77 72 69 74 65 66 72 61 6d 65 3b 0d 0a 20 20 6b 3a 3d 30 3b 0d 0a 20 20 ┆no); writeframe; k:=0; ┆ 0x6d4a0…6d4c0 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6c 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 73 74 72 6c ┆FOR i:=1 TO l DO BEGIN strl┆ 0x6d4c0…6d4e0 67 74 3a 3d 6d 65 6d 28 2e 73 65 67 28 73 74 29 3a 6f 66 73 28 73 74 29 2b 6b 2e 29 3b 0d 0a 20 ┆gt:=mem(.seg(st):ofs(st)+k.); ┆ 0x6d4e0…6d500 20 20 20 46 4f 52 20 6a 3a 3d 31 20 54 4f 20 73 74 72 6c 67 74 20 44 4f 0d 0a 20 20 20 20 20 20 ┆ FOR j:=1 TO strlgt DO ┆ 0x6d500…6d520 73 74 72 28 2e 6a 2e 29 3a 3d 43 48 41 52 28 6d 65 6d 28 2e 73 65 67 28 73 74 29 3a 6f 66 73 28 ┆str(.j.):=CHAR(mem(.seg(st):ofs(┆ 0x6d520…6d540 73 74 29 2b 6b 2b 6a 2e 29 29 3b 0d 0a 20 20 20 20 6b 3a 3d 6b 2b 77 2b 31 3b 0d 0a 20 20 20 20 ┆st)+k+j.)); k:=k+w+1; ┆ 0x6d540…6d560 64 72 61 77 74 65 78 74 28 30 2c 69 2d 31 2c 73 74 72 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 ┆drawtext(0,i-1,str); END; ┆ 0x6d560…6d580 52 45 50 45 41 54 20 72 65 61 64 28 6b 62 64 2c 63 68 29 20 55 4e 54 49 4c 20 63 68 20 69 6e 20 ┆REPEAT read(kbd,ch) UNTIL ch in ┆ 0x6d580…6d5a0 28 2e 40 31 33 2c 40 33 32 2e 29 3b 0d 0a 20 20 6c 6f 61 64 57 69 6e 64 6f 77 28 6e 6f 2c 30 2c ┆(.@13,@32.); loadWindow(no,0,┆ 0x6d5a0…6d5c0 30 29 3b 0d 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 3a 3d 61 63 74 75 61 6c 3b 0d 0a 20 20 57 6e ┆0); Wnd_actual:=actual; Wn┆ 0x6d5c0…6d5e0 64 5f 3a 3d 77 69 6e 3b 0d 0a 45 4e 44 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆d_:=win; END; ┆ 0x6d5e0…6d600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x6d600…6d620 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0xf…] 0x6d800…6d820 (43, 1, 4) 28 2a 47 53 56 2d 53 63 72 6e 2a 29 0d 0a 63 6f 6e 73 74 0d 0a 20 20 68 65 6c 70 3a 41 52 52 41 ┆(*GSV-Scrn*) const help:ARRA┆ 0x6d820…6d840 59 28 2e 30 2e 2e 37 2e 29 20 4f 46 20 53 54 52 49 4e 47 28 2e 34 30 2e 29 20 3d 0d 0a 20 20 20 ┆Y(.0..7.) OF STRING(.40.) = ┆ 0x6d840…6d860 20 28 27 3c 48 4f 4d 45 3e 20 20 6d 61 72 6b 9b 72 20 74 69 6c 20 74 65 6b 73 74 73 74 61 72 74 ┆ ('<HOME> mark r til tekststart┆ 0x6d860…6d880 27 2c 0d 0a 20 20 20 20 27 3c 45 4e 44 3e 20 20 20 6d 61 72 6b 9b 72 20 74 69 6c 20 74 65 6b 73 ┆', '<END> mark r til teks┆ 0x6d880…6d8a0 74 73 6c 75 74 27 2c 0d 0a 20 20 20 20 27 3c 44 45 4c 3e 20 20 20 73 6c 65 74 20 74 65 67 6e 20 ┆tslut', '<DEL> slet tegn ┆ 0x6d8a0…6d8c0 70 86 20 6d 61 72 6b 9b 72 65 6e 73 20 70 6c 61 64 73 27 2c 0d 0a 20 20 20 20 27 3c 49 4e 53 3e ┆p mark rens plads', '<INS>┆ 0x6d8c0…6d8e0 20 20 20 73 6b 69 66 74 20 6d 65 6c 6c 65 6d 20 6f 76 65 72 73 6b 72 69 76 20 6f 67 20 69 6e 64 ┆ skift mellem overskriv og ind┆ 0x6d8e0…6d900 73 91 74 27 2c 0d 0a 20 20 20 20 27 3c 46 35 3e 20 20 20 20 73 6c 65 74 20 6c 69 6e 69 65 20 66 ┆s t', '<F5> slet linie f┆ 0x6d900…6d920 72 61 20 6d 61 72 6b 9b 72 65 6e 73 20 70 6c 61 64 73 27 2c 0d 0a 20 20 20 20 27 3c 11 27 40 31 ┆ra mark rens plads', '< '@1┆ 0x6d920…6d940 39 36 27 3e 20 20 20 20 73 6c 65 74 20 74 65 67 6e 20 74 69 6c 20 76 65 6e 73 74 72 65 20 46 4f ┆96'> slet tegn til venstre FO┆ 0x6d940…6d960 52 20 6d 61 72 6b 9b 72 27 2c 0d 0a 20 20 20 20 27 3c 1b 3e 20 20 20 20 20 72 79 6b 20 6d 61 72 ┆R mark r', '< > ryk mar┆ 0x6d960…6d980 6b 9b 72 20 65 6e 20 70 6c 61 64 73 20 74 69 6c 20 76 65 6e 73 74 72 65 27 2c 0d 0a 20 20 20 20 ┆k r en plads til venstre', ┆ 0x6d980…6d9a0 27 3c 27 40 32 36 27 3e 20 20 20 20 20 72 79 6b 20 6d 61 72 6b 9b 72 20 65 6e 20 70 6c 61 64 73 ┆'<'@26'> ryk mark r en plads┆ 0x6d9a0…6d9c0 20 74 69 6c 20 68 9b 6a 72 65 27 29 3b 0d 0a 0d 0a 0d 0a 7b 20 42 45 45 50 20 73 6f 75 6e 64 73 ┆ til h jre'); æ BEEP sounds┆ 0x6d9c0…6d9e0 20 74 68 65 20 74 65 72 6d 69 6e 61 6c 27 73 20 62 65 6c 6c 20 6f 72 20 62 65 65 70 65 72 20 7d ┆ the terminal's bell or beeper å┆ 0x6d9e0…6da00 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 62 65 65 70 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 77 72 ┆ PROCEDURE beep; BEGIN wr┆ 0x6da00…6da20 69 74 65 28 5e 47 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 7b 20 43 41 50 20 63 6f 6e 76 65 72 ┆ite(^G); END; æ CAP conver┆ 0x6da20…6da40 74 73 20 61 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 75 70 70 65 72 20 63 61 73 65 20 7d 0d 0a ┆ts a character to upper case å ┆ 0x6da40…6da60 0d 0a 46 55 4e 43 54 49 4f 4e 20 63 61 70 28 63 68 3a 20 63 68 61 72 29 3a 20 63 68 61 72 3b 0d ┆ FUNCTION cap(ch: char): char; ┆ 0x6da60…6da80 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 28 63 68 3e 3d 27 61 27 29 20 41 4e 44 20 28 63 68 3c 3d ┆ BEGIN IF (ch>='a') AND (ch<=┆ 0x6da80…6daa0 27 7a 27 29 20 54 48 45 4e 0d 0a 20 20 63 61 70 3a 3d 63 68 72 28 6f 72 64 28 63 68 29 2d 33 32 ┆'z') THEN cap:=chr(ord(ch)-32┆ 0x6daa0…6dac0 29 20 45 4c 53 45 20 63 61 70 3a 3d 63 68 3b 0d 0a 45 4e 44 3b 0d 0a 7b 20 43 4c 52 46 52 41 4d ┆) ELSE cap:=ch; END; æ CLRFRAM┆ 0x6dac0…6dae0 45 20 63 6c 65 61 72 73 20 74 68 65 20 64 69 73 70 6c 61 79 20 66 72 61 6d 65 2c 20 69 2e 65 2e ┆E clears the display frame, i.e.┆ 0x6dae0…6db00 20 6c 69 6e 65 73 20 33 20 74 6f 20 32 30 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 63 6c ┆ lines 3 to 20 å PROCEDURE cl┆ 0x6db00…6db20 72 66 72 61 6d 65 3b 0d 0a 56 41 52 0d 0a 20 20 69 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 42 45 47 ┆rframe; VAR i: integer; BEG┆ 0x6db20…6db40 49 4e 0d 0a 20 20 46 4f 52 20 69 3a 3d 34 20 54 4f 20 32 30 20 44 4f 0d 0a 20 20 42 45 47 49 4e ┆IN FOR i:=4 TO 20 DO BEGIN┆ 0x6db40…6db60 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 30 2c 69 29 3b 20 77 72 69 74 65 28 63 6c 72 65 6f 6c 29 ┆ gotoxy(0,i); write(clreol)┆ 0x6db60…6db80 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 72 6f 63 65 64 75 72 65 20 63 6c 72 ┆; END; END; Procedure clr┆ 0x6db80…6dba0 66 65 6a 6c 3b 0d 0a 42 65 67 69 6e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 32 34 29 3b 20 57 72 ┆fejl; Begin gotoxy(0,24); Wr┆ 0x6dba0…6dbc0 69 74 65 28 63 6c 72 65 6f 6c 29 3b 0d 0a 45 6e 64 3b 0d 0a 20 20 0d 0a 50 72 6f 63 65 64 75 72 ┆ite(clreol); End; Procedur┆ 0x6dbc0…6dbe0 65 20 72 61 6d 6d 65 3b 0d 0a 42 65 67 69 6e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 2c 30 29 3b 20 ┆e ramme; Begin gotoxy(0,0); ┆ 0x6dbe0…6dc00 77 72 69 74 65 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 57 72 69 74 65 6c ┆writeln(cstr('-',79)); Writel┆ 0x6dc00…6dc20 (43, 1, 5) 6e 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 39 29 29 3b 0d 0a 20 20 ┆n; writeln(cstr('-',79)); ┆ 0x6dc20…6dc40 67 6f 74 6f 78 79 28 30 2c 32 31 29 3b 20 77 72 69 74 65 6c 6e 28 63 73 74 72 28 27 2d 27 2c 37 ┆gotoxy(0,21); writeln(cstr('-',7┆ 0x6dc40…6dc60 39 29 29 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 3b 20 0d 0a 20 20 77 72 69 74 65 28 63 73 74 72 28 ┆9)); writeln; write(cstr(┆ 0x6dc60…6dc80 27 2d 27 2c 37 39 29 29 3b 0d 0a 45 6e 64 3b 0d 0a 0d 0a 0d 0a 0d 0a 7b 20 53 45 4c 45 43 54 20 ┆'-',79)); End; æ SELECT ┆ 0x6dc80…6dca0 64 69 73 70 6c 61 79 20 74 68 65 20 70 72 6f 6d 70 74 20 73 74 72 69 6e 67 20 50 52 20 6f 6e 20 ┆display the prompt string PR on ┆ 0x6dca0…6dcc0 6c 69 6e 65 20 32 32 2c 20 61 6e 64 20 77 61 69 74 73 20 20 20 20 20 7d 0d 0a 7b 20 75 6e 74 69 ┆line 22, and waits å æ unti┆ 0x6dcc0…6dce0 6c 20 74 68 65 20 75 73 65 72 20 65 6e 74 65 72 73 20 61 20 63 68 61 72 61 63 74 65 72 20 77 68 ┆l the user enters a character wh┆ 0x6dce0…6dd00 69 63 68 20 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 20 20 7d 0d 0a 7b 20 54 ┆ich is contained in the å æ T┆ 0x6dd00…6dd20 45 52 4d 20 63 68 61 72 61 63 74 65 72 20 73 65 74 2e 20 54 68 65 20 63 68 61 72 61 63 74 65 72 ┆ERM character set. The character┆ 0x6dd20…6dd40 20 69 73 20 74 68 65 6e 20 72 65 74 75 72 6e 65 64 20 69 6e 20 54 43 2e 20 20 20 20 20 7d 0d 0a ┆ is then returned in TC. å ┆ 0x6dd40…6dd60 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 6c 65 63 74 28 70 72 3a 20 73 74 72 38 30 3b 20 74 65 ┆ PROCEDURE select(pr: str80; te┆ 0x6dd60…6dd80 72 6d 3a 20 63 68 61 72 73 65 74 3b 20 56 41 52 20 74 63 3a 20 63 68 61 72 29 3b 0d 0a 56 41 52 ┆rm: charset; VAR tc: char); VAR┆ 0x6dd80…6dda0 0d 0a 20 20 63 68 3a 20 63 68 61 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 67 6f 74 6f 78 79 28 30 ┆ ch: char; BEGIN gotoxy(0┆ 0x6dda0…6ddc0 2c 32 32 29 3b 20 77 72 69 74 65 28 70 72 2c 27 3f 20 27 2c 63 6c 72 65 6f 6c 29 3b 0d 0a 20 20 ┆,22); write(pr,'? ',clreol); ┆ 0x6ddc0…6dde0 52 45 50 45 41 54 0d 0a 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 20 74 63 3a 3d 63 61 ┆REPEAT read(kbd,ch); tc:=ca┆ 0x6dde0…6de00 70 28 63 68 29 3b 0d 0a 20 20 20 20 49 46 20 4e 4f 54 28 74 63 20 49 4e 20 74 65 72 6d 29 20 54 ┆p(ch); IF NOT(tc IN term) T┆ 0x6de00…6de20 48 45 4e 20 62 65 65 70 3b 0d 0a 20 20 55 4e 54 49 4c 20 74 63 20 49 4e 20 74 65 72 6d 3b 0d 0a ┆HEN beep; UNTIL tc IN term; ┆ 0x6de20…6de40 20 20 77 72 69 74 65 28 63 68 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆ write(ch); END; PROCEDURE ┆ 0x6de40…6de60 73 65 6c 65 63 74 31 28 76 30 3a 20 73 74 72 31 35 3b 20 76 31 2c 76 32 2c 76 33 2c 76 34 2c 76 ┆select1(v0: str15; v1,v2,v3,v4,v┆ 0x6de60…6de80 35 2c 76 36 2c 76 37 3a 20 73 74 72 32 35 3b 20 56 41 52 20 63 68 3a 20 63 68 61 72 29 3b 0d 0a ┆5,v6,v7: str25; VAR ch: char); ┆ 0x6de80…6dea0 0d 0a 56 61 72 0d 0a 20 20 20 20 74 65 72 6d 3a 20 63 68 61 72 73 65 74 3b 0d 0a 20 20 42 65 67 ┆ Var term: charset; Beg┆ 0x6dea0…6dec0 69 6e 0d 0a 20 20 20 20 74 65 72 6d 3a 3d 5b 27 41 27 2c 27 42 27 2c 27 43 27 2c 27 44 27 2c 27 ┆in term:=Æ'A','B','C','D','┆ 0x6dec0…6dee0 45 27 2c 27 46 27 2c 27 47 27 5d 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 32 29 3b ┆E','F','G'Å; gotoxy(20,12);┆ 0x6dee0…6df00 57 72 69 74 65 28 63 73 74 72 28 27 2d 27 2c 32 39 29 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 ┆Write(cstr('-',29)); gotoxy┆ 0x6df00…6df20 28 32 30 2c 31 33 29 3b 57 72 69 74 65 28 27 7c 27 2c 76 30 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 ┆(20,13);Write('ø',v0,clreol);Got┆ 0x6df20…6df40 6f 78 79 28 34 38 2c 31 33 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f ┆oxy(48,13);Write('ø'); goto┆ 0x6df40…6df60 78 79 28 32 30 2c 31 34 29 3b 57 72 69 74 65 28 27 7c 20 41 29 20 27 2c 76 31 2c 63 6c 72 65 6f ┆xy(20,14);Write('ø A) ',v1,clreo┆ 0x6df60…6df80 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 34 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 ┆l);Gotoxy(48,14);Write('ø'); ┆ 0x6df80…6dfa0 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 35 29 3b 57 72 69 74 65 28 27 7c 20 42 29 20 27 2c 76 32 ┆ gotoxy(20,15);Write('ø B) ',v2┆ 0x6dfa0…6dfc0 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 35 29 3b 57 72 69 74 65 28 27 7c 27 ┆,clreol);Gotoxy(48,15);Write('ø'┆ 0x6dfc0…6dfe0 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 36 29 3b 57 72 69 74 65 28 27 7c 20 43 ┆); gotoxy(20,16);Write('ø C┆ 0x6dfe0…6e000 29 20 27 2c 76 33 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 36 29 3b 57 72 69 ┆) ',v3,clreol);Gotoxy(48,16);Wri┆ 0x6e000…6e020 (44, 0, 1) 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 37 29 3b 57 72 69 74 ┆te('ø'); gotoxy(20,17);Writ┆ 0x6e020…6e040 65 28 27 7c 20 44 29 20 27 2c 76 34 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 31 ┆e('ø D) ',v4,clreol);Gotoxy(48,1┆ 0x6e040…6e060 37 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 32 30 2c 31 38 ┆7);Write('ø'); gotoxy(20,18┆ 0x6e060…6e080 29 3b 57 72 69 74 65 28 27 7c 20 45 29 20 27 2c 76 35 2c 63 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 ┆);Write('ø E) ',v5,clreol);Gotox┆ 0x6e080…6e0a0 79 28 34 38 2c 31 38 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 67 6f 74 6f 78 79 ┆y(48,18);Write('ø'); gotoxy┆ 0x6e0a0…6e0c0 28 32 30 2c 31 39 29 3b 57 72 69 74 65 28 27 7c 20 46 29 20 27 2c 76 36 2c 63 6c 72 65 6f 6c 29 ┆(20,19);Write('ø F) ',v6,clreol)┆ 0x6e0c0…6e0e0 3b 47 6f 74 6f 78 79 28 34 38 2c 31 39 29 3b 57 72 69 74 65 28 27 7c 27 29 3b 0d 0a 20 20 20 20 ┆;Gotoxy(48,19);Write('ø'); ┆ 0x6e0e0…6e100 67 6f 74 6f 78 79 28 32 30 2c 32 30 29 3b 57 72 69 74 65 28 27 7c 20 47 29 20 27 2c 76 37 2c 63 ┆gotoxy(20,20);Write('ø G) ',v7,c┆ 0x6e100…6e120 6c 72 65 6f 6c 29 3b 47 6f 74 6f 78 79 28 34 38 2c 32 30 29 3b 57 72 69 74 65 28 27 7c 27 29 3b ┆lreol);Gotoxy(48,20);Write('ø');┆ 0x6e120…6e140 0d 0a 20 20 20 20 67 6f 74 6f 78 79 28 30 2c 32 32 29 3b 20 57 72 69 74 65 28 27 49 6e 64 74 61 ┆ gotoxy(0,22); Write('Indta┆ 0x6e140…6e160 73 74 20 76 61 6c 67 3a 20 27 2c 63 6c 72 65 6f 6c 29 3b 20 0d 0a 20 20 20 20 52 65 70 65 61 74 ┆st valg: ',clreol); Repeat┆ 0x6e160…6e180 0d 0a 20 20 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 20 63 68 3a 3d 63 61 70 28 63 68 ┆ read(kbd,ch); ch:=cap(ch┆ 0x6e180…6e1a0 29 3b 0d 0a 20 20 20 20 20 20 49 46 20 4e 4f 54 28 63 68 20 49 4e 20 74 65 72 6d 29 20 54 48 45 ┆); IF NOT(ch IN term) THE┆ 0x6e1a0…6e1c0 4e 20 62 65 65 70 3b 0d 0a 20 20 20 20 55 4e 54 49 4c 20 63 68 20 49 4e 20 74 65 72 6d 3b 0d 0a ┆N beep; UNTIL ch IN term; ┆ 0x6e1c0…6e1e0 20 20 20 20 0d 0a 20 20 20 20 77 72 69 74 65 28 63 68 29 3b 0d 0a 0d 0a 20 20 45 6e 64 3b 0d 0a ┆ write(ch); End; ┆ 0x6e1e0…6e200 0d 0a 0d 0a 0d 0a 0d 0a 7b 20 49 4e 50 53 54 52 20 69 73 20 61 20 67 65 6e 65 72 61 6c 69 7a 65 ┆ æ INPSTR is a generalize┆ 0x6e200…6e220 64 20 73 74 72 69 6e 67 20 69 6e 70 75 74 20 72 6f 75 74 69 6e 65 20 77 68 69 63 68 20 73 75 70 ┆d string input routine which sup┆ 0x6e220…6e240 70 6f 72 74 73 20 20 20 7d 0d 0a 7b 20 6f 6e 2d 73 63 72 65 65 6e 20 65 64 69 74 69 6e 67 2e 20 ┆ports å æ on-screen editing. ┆ 0x6e240…6e260 53 20 69 73 20 61 6e 79 20 73 74 72 69 6e 67 20 76 61 72 69 61 62 6c 65 2e 20 4c 20 69 73 20 74 ┆S is any string variable. L is t┆ 0x6e260…6e280 68 65 20 6d 61 78 69 6d 75 6d 20 7d 0d 0a 7b 20 69 6e 70 75 74 20 6c 65 6e 67 74 68 2e 20 58 20 ┆he maximum å æ input length. X ┆ 0x6e280…6e2a0 61 6e 64 20 59 20 61 72 65 20 74 68 65 20 64 69 73 70 6c 61 79 20 63 6f 6f 72 64 69 6e 61 74 65 ┆and Y are the display coordinate┆ 0x6e2a0…6e2c0 73 2e 20 54 45 52 4d 20 69 73 20 61 20 20 7d 0d 0a 7b 20 73 65 74 20 6f 66 20 76 61 6c 69 64 20 ┆s. TERM is a å æ set of valid ┆ 0x6e2c0…6e2e0 74 65 72 6d 69 6e 61 74 6f 72 20 63 68 61 72 61 63 74 65 72 73 2c 20 61 6e 64 20 54 43 20 72 65 ┆terminator characters, and TC re┆ 0x6e2e0…6e300 74 75 72 6e 73 20 74 68 65 20 63 68 61 72 2d 20 20 7d 0d 0a 7b 20 61 63 74 65 72 20 74 68 61 74 ┆turns the char- å æ acter that┆ 0x6e300…6e320 20 74 65 72 6d 69 6e 61 74 65 64 20 74 68 65 20 69 6e 70 75 74 2e 20 4f 6e 20 65 6e 74 72 79 2c ┆ terminated the input. On entry,┆ 0x6e320…6e340 20 53 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 61 74 20 20 7d 0d 0a 7b 20 58 2c 59 20 6f 6e 20 ┆ S is displayed at å æ X,Y on ┆ 0x6e340…6e360 74 68 65 20 73 63 72 65 65 6e 2c 20 70 61 64 64 65 64 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 ┆the screen, padded to the right ┆ 0x6e360…6e380 77 69 74 68 20 75 6e 64 65 72 73 63 6f 72 65 73 2e 20 54 68 65 20 20 7d 0d 0a 7b 20 73 74 72 69 ┆with underscores. The å æ stri┆ 0x6e380…6e3a0 6e 67 20 6d 61 79 20 74 68 65 6e 20 62 65 20 65 64 69 74 65 64 20 75 73 69 6e 67 20 73 74 61 6e ┆ng may then be edited using stan┆ 0x6e3a0…6e3c0 64 61 72 64 20 63 6f 6e 74 72 6f 6c 20 6b 65 79 73 3a 20 5e 53 20 61 6e 64 20 7d 0d 0a 7b 20 5e ┆dard control keys: ^S and å æ ^┆ 0x6e3c0…6e3e0 44 20 66 6f 72 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 2c 20 5e 41 20 61 6e 64 20 5e 46 20 ┆D for left and right, ^A and ^F ┆ 0x6e3e0…6e400 66 6f 72 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 20 6f 66 20 20 20 20 20 7d 0d 0a ┆for beginning and end of å ┆ 0x6e400…6e420 (44, 0, 2) 7b 20 6c 69 6e 65 2c 20 5e 47 20 74 6f 20 64 65 6c 65 74 65 20 74 68 65 20 63 68 61 72 61 63 74 ┆æ line, ^G to delete the charact┆ 0x6e420…6e440 65 72 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 73 6f 72 2c 20 5e 48 20 6f 72 20 44 45 4c 20 20 ┆er under the cursor, ^H or DEL ┆ 0x6e440…6e460 7d 0d 0a 7b 20 74 6f 20 62 61 63 6b 73 70 61 63 65 2c 20 61 6e 64 20 5e 59 20 74 6f 20 64 65 6c ┆å æ to backspace, and ^Y to del┆ 0x6e460…6e480 65 74 65 20 74 6f 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 20 57 68 65 6e 20 61 20 20 ┆ete to end of the line. When a ┆ 0x6e480…6e4a0 20 20 20 7d 0d 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 73 20 74 79 70 65 64 2c 20 69 74 20 69 ┆ å æ character is typed, it i┆ 0x6e4a0…6e4c0 73 20 69 6e 73 65 72 74 65 64 20 61 74 20 74 68 65 20 63 75 72 73 6f 72 20 61 74 20 74 68 65 20 ┆s inserted at the cursor at the ┆ 0x6e4c0…6e4e0 72 65 2d 20 20 20 7d 0d 0a 7b 20 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 69 ┆re- å æ mainder of the line i┆ 0x6e4e0…6e500 73 20 6d 6f 76 65 64 20 74 6f 20 74 68 65 20 72 69 67 68 74 2e 20 57 68 65 6e 20 61 20 74 65 72 ┆s moved to the right. When a ter┆ 0x6e500…6e520 6d 69 6e 61 74 6f 72 20 20 7d 0d 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 73 20 74 79 70 65 64 ┆minator å æ character is typed┆ 0x6e520…6e540 2c 20 74 68 65 20 74 72 61 69 6c 69 6e 67 20 75 6e 64 65 72 73 63 6f 72 73 20 61 72 65 20 72 65 ┆, the trailing underscors are re┆ 0x6e540…6e560 6d 6f 76 65 64 2c 20 61 6e 64 20 20 7d 0d 0a 7b 20 49 4e 50 53 54 52 20 72 65 74 75 72 6e 73 20 ┆moved, and å æ INPSTR returns ┆ 0x6e560…6e580 77 69 74 68 20 74 68 65 20 65 64 69 74 65 64 20 73 74 72 69 6e 67 20 69 6e 20 53 20 61 6e 64 20 ┆with the edited string in S and ┆ 0x6e580…6e5a0 74 68 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 7d 0d 0a 7b 20 63 68 61 72 61 63 74 65 72 20 69 6e ┆the terminator å æ character in┆ 0x6e5a0…6e5c0 20 54 43 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ TC. ┆ 0x6e5c0…6e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ å PROCEDURE┆ 0x6e5e0…6e600 20 69 6e 70 73 74 72 28 56 41 52 20 73 3a 20 61 6e 79 73 74 72 3b 20 6c 2c 78 2c 79 3a 20 69 6e ┆ inpstr(VAR s: anystr; l,x,y: in┆ 0x6e600…6e620 74 65 67 65 72 3b 0d 0a 20 20 74 65 72 6d 20 3a 20 63 68 61 72 73 65 74 3b 20 56 41 52 20 74 63 ┆teger; term : charset; VAR tc┆ 0x6e620…6e640 3a 20 63 68 61 72 29 3b 0d 0a 43 4f 4e 53 54 0d 0a 20 20 66 63 20 3d 20 27 5f 27 3b 0d 0a 4c 61 ┆: char); CONST fc = '_'; La┆ 0x6e640…6e660 62 65 6c 20 6c 6c 3b 0d 0a 56 41 52 0d 0a 20 20 74 65 6b 73 74 3a 20 73 74 72 32 35 3b 0d 0a 20 ┆bel ll; VAR tekst: str25; ┆ 0x6e660…6e680 20 69 2c 74 61 6c 2c 61 6e 74 61 6c 2c 78 78 2c 79 79 2c 70 3a 20 69 6e 74 65 67 65 72 3b 0d 0a ┆ i,tal,antal,xx,yy,p: integer; ┆ 0x6e680…6e6a0 20 20 70 61 61 2c 63 68 3a 20 63 68 61 72 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 67 6f ┆ paa,ch: char; BEGIN go┆ 0x6e6a0…6e6c0 74 6f 78 79 28 78 2c 79 29 3b 20 77 72 69 74 65 28 73 2c 63 73 74 72 28 66 63 2c 6c 2d 6c 65 6e ┆toxy(x,y); write(s,cstr(fc,l-len┆ 0x6e6c0…6e6e0 28 73 29 29 29 3b 20 70 3a 3d 30 3b 0d 0a 20 20 78 78 3a 3d 78 3b 79 79 3a 3d 79 3b 61 6e 74 61 ┆(s))); p:=0; xx:=x;yy:=y;anta┆ 0x6e6e0…6e700 6c 3a 3d 78 78 3b 0d 0a 20 20 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 67 6f 74 6f 78 79 ┆l:=xx; REPEAT gotoxy┆ 0x6e700…6e720 28 78 78 2c 79 79 29 3b 20 0d 0a 20 20 20 20 6c 6c 3a 0d 0a 20 20 20 20 72 65 61 64 28 6b 62 64 ┆(xx,yy); ll: read(kbd┆ 0x6e720…6e740 2c 63 68 29 3b 0d 0a 20 20 20 20 43 41 53 45 20 63 68 20 4f 46 0d 0a 20 20 20 20 20 20 40 33 32 ┆,ch); CASE ch OF @32┆ 0x6e740…6e760 2e 2e 40 31 32 36 2c 20 40 31 32 38 2e 2e 40 32 35 35 3a 0d 0a 20 20 20 20 20 20 49 46 20 70 3c ┆..@126, @128..@255: IF p<┆ 0x6e760…6e780 6c 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 49 46 20 ┆l THEN BEGIN IF ┆ 0x6e780…6e7a0 6c 65 6e 28 73 29 3d 6c 20 54 48 45 4e 20 64 65 6c 65 74 65 28 73 2c 6c 2c 31 29 3b 0d 0a 20 20 ┆len(s)=l THEN delete(s,l,1); ┆ 0x6e7a0…6e7c0 20 20 20 20 20 20 78 78 3a 3d 78 78 2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 70 3a 3d 70 2b 31 3b ┆ xx:=xx+1; p:=p+1;┆ 0x6e7c0…6e7e0 20 69 6e 73 65 72 74 28 63 68 2c 73 2c 70 29 3b 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 ┆ insert(ch,s,p); write(┆ 0x6e7e0…6e800 63 6f 70 79 28 73 2c 70 2c 6c 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 49 66 20 78 78 3d 38 31 20 ┆copy(s,p,l)); If xx=81 ┆ 0x6e800…6e820 (44, 0, 3) 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 78 78 ┆then begin xx┆ 0x6e820…6e840 3a 3d 31 3b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 79 79 3a 3d 79 79 2b 31 3b 0d 0a 20 20 20 20 ┆:=1; yy:=yy+1; ┆ 0x6e840…6e860 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a ┆ end; END ELSE beep; ┆ 0x6e860…6e880 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 5e 5a 3a 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 ┆ ^Z: Begin ┆ 0x6e880…6e8a0 20 20 20 20 20 49 66 20 70 61 61 3d 27 4a 27 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 ┆ If paa='J' then Begin ┆ 0x6e8a0…6e8c0 20 20 20 20 20 20 20 20 20 20 46 6f 72 20 69 3a 3d 20 35 20 74 6f 20 31 30 20 64 6f 20 42 65 67 ┆ For i:= 5 to 10 do Beg┆ 0x6e8c0…6e8e0 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 69 29 ┆in gotoxy(40,i)┆ 0x6e8e0…6e900 3b 20 57 72 69 74 65 28 63 6c 72 65 6f 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆; Write(clreol); ┆ 0x6e900…6e920 45 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 61 3a 3d 20 27 4e 27 3b 0d 0a ┆End; paa:= 'N'; ┆ 0x6e920…6e940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 20 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 ┆ goto ll; ┆ 0x6e940…6e960 20 20 20 20 45 6e 64 3b 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 ┆ End; gotoxy┆ 0x6e960…6e980 28 34 30 2c 35 29 3b 20 57 72 69 74 65 28 27 5e 41 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 ┆(40,5); Write('^A: Mark r flytte┆ 0x6e980…6e9a0 73 20 68 65 6c 74 20 74 69 6c 20 76 65 6e 73 74 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆s helt til venstre'); ┆ 0x6e9a0…6e9c0 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 36 29 3b 20 57 72 69 74 65 28 27 5e 53 3a 20 4d 61 72 6b ┆ gotoxy(40,6); Write('^S: Mark┆ 0x6e9c0…6e9e0 9b 72 20 66 6c 79 74 74 65 73 20 65 6e 20 20 20 74 69 6c 20 76 65 6e 73 74 72 65 27 29 3b 0d 0a ┆ r flyttes en til venstre'); ┆ 0x6e9e0…6ea00 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 37 29 3b 20 57 72 69 74 65 28 ┆ gotoxy(40,7); Write(┆ 0x6ea00…6ea20 27 5e 44 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 65 6e 20 20 20 74 69 6c 20 68 9b 6a ┆'^D: Mark r flyttes en til h j┆ 0x6ea20…6ea40 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 28 34 30 2c 38 29 3b ┆re'); gotoxy(40,8);┆ 0x6ea40…6ea60 20 57 72 69 74 65 28 27 5e 46 3a 20 4d 61 72 6b 9b 72 20 66 6c 79 74 74 65 73 20 68 65 6c 74 20 ┆ Write('^F: Mark r flyttes helt ┆ 0x6ea60…6ea80 74 69 6c 20 68 9b 6a 72 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 78 79 ┆til h jre'); gotoxy┆ 0x6ea80…6eaa0 28 34 30 2c 39 29 3b 20 57 72 69 74 65 28 27 5e 47 3a 20 54 65 67 6e 20 6f 76 65 72 20 6d 61 72 ┆(40,9); Write('^G: Tegn over mar┆ 0x6eaa0…6eac0 6b 9b 72 20 73 6c 65 74 74 65 73 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f ┆k r slettes'); goto┆ 0x6eac0…6eae0 78 79 28 34 30 2c 31 30 29 3b 20 57 72 69 74 65 28 27 5e 48 3a 20 54 65 67 6e 20 68 65 6c 74 20 ┆xy(40,10); Write('^H: Tegn helt ┆ 0x6eae0…6eb00 74 69 6c 20 68 9b 6a 72 65 20 73 6c 65 74 74 65 73 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆til h jre slettes'); ┆ 0x6eb00…6eb20 20 20 70 61 61 3a 3d 27 4a 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 ┆ paa:='J'; END; ┆ 0x6eb20…6eb40 20 20 20 0d 0a 20 20 20 20 20 20 5e 53 3a 20 49 46 20 70 3e 30 20 54 48 45 4e 20 42 65 67 69 6e ┆ ^S: IF p>0 THEN Begin┆ 0x6eb40…6eb60 0d 0a 20 20 20 20 20 20 20 20 20 20 70 3a 3d 70 2d 31 3b 20 78 78 3a 3d 78 78 2d 31 3b 0d 0a 20 ┆ p:=p-1; xx:=xx-1; ┆ 0x6eb60…6eb80 20 20 20 20 20 20 20 20 20 49 66 20 28 78 78 3d 2d 31 29 20 61 6e 64 20 28 79 79 20 3c 3e 20 79 ┆ If (xx=-1) and (yy <> y┆ 0x6eb80…6eba0 29 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 79 79 3a 3d 79 79 ┆) then Begin yy:=yy┆ 0x6eba0…6ebc0 2d 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 78 3a 3d 37 39 3b 0d 0a 20 20 20 20 20 20 ┆-1; xx:=79; ┆ 0x6ebc0…6ebe0 20 20 20 20 45 6e 64 3b 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 45 4c 53 45 20 62 ┆ End; End ELSE b┆ 0x6ebe0…6ec00 65 65 70 3b 0d 0a 20 20 20 20 20 20 5e 44 3a 20 49 46 20 70 3c 6c 65 6e 28 73 29 20 54 48 45 4e ┆eep; ^D: IF p<len(s) THEN┆ 0x6ec00…6ec20 (44, 0, 4) 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 70 3a 3d 70 2b 31 3b 20 78 78 3a 3d 78 78 ┆ Begin p:=p+1; xx:=xx┆ 0x6ec20…6ec40 2b 31 3b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 78 78 3d 38 30 20 74 68 65 6e 20 42 65 ┆+1; If xx=80 then Be┆ 0x6ec40…6ec60 67 69 6e 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 78 3a 3d 20 30 3b 0d 0a 20 20 20 20 20 ┆gin xx:= 0; ┆ 0x6ec60…6ec80 20 20 20 20 20 20 20 79 79 20 3a 3d 20 79 79 20 2b 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ yy := yy + 1; ┆ 0x6ec80…6eca0 45 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a ┆End; End ELSE beep; ┆ 0x6eca0…6ecc0 20 20 20 20 20 20 5e 41 3a 20 42 65 67 69 6e 20 70 3a 3d 30 3b 20 78 78 3a 3d 78 3b 20 79 79 3a ┆ ^A: Begin p:=0; xx:=x; yy:┆ 0x6ecc0…6ece0 3d 79 3b 20 45 6e 64 3b 0d 0a 20 20 20 20 20 20 5e 46 3a 20 42 65 67 69 6e 0d 0a 20 20 20 20 20 ┆=y; End; ^F: Begin ┆ 0x6ece0…6ed00 20 20 20 20 20 20 20 79 79 3a 3d 79 79 20 2b 74 72 75 6e 63 20 28 28 6c 65 6e 28 73 29 2b 78 29 ┆ yy:=yy +trunc ((len(s)+x)┆ 0x6ed00…6ed20 2f 20 38 31 29 3b 20 78 78 3a 3d 20 28 6c 65 6e 28 73 29 2b 78 29 20 6d 6f 64 20 38 31 20 3b 0d ┆/ 81); xx:= (len(s)+x) mod 81 ; ┆ 0x6ed20…6ed40 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 20 20 20 20 20 20 ┆ p:=len(s); ┆ 0x6ed40…6ed60 20 20 20 45 6e 64 3b 0d 0a 20 20 20 20 20 20 5e 47 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 49 46 ┆ End; ^G: IF┆ 0x6ed60…6ed80 20 70 3c 6c 65 6e 28 73 29 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d ┆ p<len(s) THEN BEGIN ┆ 0x6ed80…6eda0 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 28 73 2c 70 2b 31 2c 31 29 3b 20 77 72 ┆ delete(s,p+1,1); wr┆ 0x6eda0…6edc0 69 74 65 28 63 6f 70 79 28 73 2c 70 2b 31 2c 6c 29 2c 66 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 ┆ite(copy(s,p+1,l),fc); ┆ 0x6edc0…6ede0 20 20 45 4e 44 20 65 6c 73 65 20 62 65 65 70 3b 0d 0a 20 20 20 20 20 20 5e 48 2c 40 31 32 37 3a ┆ END else beep; ^H,@127:┆ 0x6ede0…6ee00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 49 46 20 ┆ IF ┆ 0x6ee00…6ee20 70 3e 30 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 ┆p>0 THEN BEGIN ┆ 0x6ee20…6ee40 20 20 20 20 20 20 20 64 65 6c 65 74 65 28 73 2c 70 2c 31 29 3b 20 77 72 69 74 65 28 5e 48 2c 63 ┆ delete(s,p,1); write(^H,c┆ 0x6ee40…6ee60 6f 70 79 28 73 2c 70 2c 6c 29 2c 66 63 29 3b 20 70 3a 3d 70 2d 31 3b 78 78 3a 3d 78 78 2d 31 3b ┆opy(s,p,l),fc); p:=p-1;xx:=xx-1;┆ 0x6ee60…6ee80 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 20 45 4c 53 45 20 62 65 65 70 3b 0d 0a 20 20 20 20 ┆ END ELSE beep; ┆ 0x6ee80…6eea0 20 20 5e 59 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 ┆ ^Y: BEGIN ┆ 0x6eea0…6eec0 20 20 20 20 77 72 69 74 65 28 63 73 74 72 28 66 63 2c 6c 65 6e 28 73 29 2d 70 29 29 3b 20 64 65 ┆ write(cstr(fc,len(s)-p)); de┆ 0x6eec0…6eee0 6c 65 74 65 28 73 2c 70 2b 31 2c 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a ┆lete(s,p+1,l); END; ┆ 0x6eee0…6ef00 20 20 20 20 4f 54 48 45 52 57 49 53 45 0d 0a 20 20 20 20 20 20 49 46 20 4e 4f 54 28 63 68 20 49 ┆ OTHERWISE IF NOT(ch I┆ 0x6ef00…6ef20 4e 20 74 65 72 6d 29 20 54 48 45 4e 20 62 65 65 70 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 ┆N term) THEN beep; END; ┆ 0x6ef20…6ef40 0d 0a 20 20 55 4e 54 49 4c 20 63 68 20 49 4e 20 74 65 72 6d 3b 0d 0a 20 20 69 66 20 70 20 3c 20 ┆ UNTIL ch IN term; if p < ┆ 0x6ef40…6ef60 6c 65 6e 28 73 29 20 74 68 65 6e 20 42 65 67 69 6e 0d 0a 20 20 20 20 79 79 3a 3d 79 79 20 2b 74 ┆len(s) then Begin yy:=yy +t┆ 0x6ef60…6ef80 72 75 6e 63 20 28 28 6c 65 6e 28 73 29 2b 78 29 2f 20 38 31 29 3b 0d 0a 20 20 20 20 78 78 3a 3d ┆runc ((len(s)+x)/ 81); xx:=┆ 0x6ef80…6efa0 20 28 6c 65 6e 28 73 29 2b 78 29 20 6d 6f 64 20 38 31 20 3b 0d 0a 20 20 45 6e 64 3b 20 20 0d 0a ┆ (len(s)+x) mod 81 ; End; ┆ 0x6efa0…6efc0 20 20 70 3a 3d 6c 65 6e 28 73 29 3b 20 67 6f 74 6f 78 79 28 78 78 2c 79 79 29 3b 20 77 72 69 74 ┆ p:=len(s); gotoxy(xx,yy); writ┆ 0x6efc0…6efe0 65 28 27 27 3a 6c 2d 70 29 3b 0d 0a 20 20 74 63 3a 3d 63 68 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 ┆e('':l-p); tc:=ch; END; F┆ 0x6efe0…6f000 55 4e 43 54 49 4f 4e 20 72 65 61 64 73 74 72 74 78 74 28 78 2c 79 2c 6c 3a 20 49 4e 54 45 47 45 ┆UNCTION readstrtxt(x,y,l: INTEGE┆ 0x6f000…6f020 (44, 0, 5) 52 29 3a 20 73 74 72 38 30 3b 0d 0a 56 41 52 0d 0a 20 20 69 3a 20 49 4e 54 45 47 45 52 3b 0d 0a ┆R): str80; VAR i: INTEGER; ┆ 0x6f020…6f040 20 20 73 74 72 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 3a 3d 27 27 3b ┆ str: str80; BEGIN str:='';┆ 0x6f040…6f060 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 74 78 74 ┆ WITH Wnd_ DO FOR i:=txt┆ 0x6f060…6f080 78 31 2b 78 20 54 4f 20 74 78 74 78 31 2b 6c 20 44 4f 0d 0a 20 20 20 20 20 20 73 74 72 3a 3d 73 ┆x1+x TO txtx1+l DO str:=s┆ 0x6f080…6f0a0 74 72 2b 74 78 74 5f 6c 69 6e 65 70 74 72 28 2e 79 2e 29 5e 28 2e 69 2e 29 2e 63 68 3b 0d 0a 20 ┆tr+txt_lineptr(.y.)^(.i.).ch; ┆ 0x6f0a0…6f0c0 20 72 65 61 64 73 74 72 54 78 74 3a 3d 73 74 72 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆ readstrTxt:=str; END; PROCE┆ 0x6f0c0…6f0e0 44 55 52 45 20 77 72 69 74 65 66 72 61 6d 65 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6c 68 2c 6c 78 ┆DURE writeframe; VAR i,lh,lx┆ 0x6f0e0…6f100 2c 6c 79 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 ┆,ly: INTEGER; s: str80; BEGI┆ 0x6f100…6f120 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 78 3a ┆N WITH Wnd_ DO BEGIN lx:┆ 0x6f120…6f140 3d 74 78 74 6d 61 78 78 3b 20 6c 79 3a 3d 74 78 74 6d 61 78 79 3b 20 6c 68 3a 3d 28 28 6c 78 2b ┆=txtmaxx; ly:=txtmaxy; lh:=((lx+┆ 0x6f140…6f160 32 29 2d 6c 65 6e 28 68 64 72 29 29 20 44 49 56 20 32 2b 31 3b 0d 0a 20 20 20 20 73 3a 3d 27 c9 ┆2)-len(hdr)) DIV 2+1; s:=' ┆ 0x6f160…6f180 27 2b 73 70 63 28 6c 78 2d 31 2c 27 cd 27 29 2b 27 bb 27 3b 0d 0a 20 20 20 20 6d 6f 76 65 28 68 ┆'+spc(lx-1,' ')+' '; move(h┆ 0x6f180…6f1a0 64 72 28 2e 31 2e 29 2c 73 28 2e 6c 68 2e 29 2c 6c 65 6e 28 68 64 72 29 29 3b 0d 0a 20 20 20 20 ┆dr(.1.),s(.lh.),len(hdr)); ┆ 0x6f1a0…6f1c0 64 72 61 77 74 65 78 74 28 30 2c 30 2c 73 29 3b 0d 0a 20 20 20 20 73 3a 3d 27 ba 27 2b 73 70 63 ┆drawtext(0,0,s); s:=' '+spc┆ 0x6f1c0…6f1e0 28 6c 78 2d 31 2c 27 20 27 29 2b 27 ba 27 3b 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f ┆(lx-1,' ')+' '; FOR i:=1 TO┆ 0x6f1e0…6f200 20 6c 79 2d 31 20 44 4f 20 64 72 61 77 74 65 78 74 28 30 2c 69 2c 73 29 3b 0d 0a 20 20 20 20 64 ┆ ly-1 DO drawtext(0,i,s); d┆ 0x6f200…6f220 72 61 77 74 65 78 74 28 30 2c 6c 79 2c 27 c8 27 2b 73 70 63 28 6c 78 2d 31 2c 27 cd 27 29 2b 27 ┆rawtext(0,ly,' '+spc(lx-1,' ')+'┆ 0x6f220…6f240 bc 27 29 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 73 75 63 63 28 74 78 74 78 31 29 3b 74 78 74 ┆ '); txtx1:=succ(txtx1);txt┆ 0x6f240…6f260 6d 61 78 78 3a 3d 74 78 74 6d 61 78 78 2d 32 3b 0d 0a 20 20 20 20 74 78 74 79 31 3a 3d 73 75 63 ┆maxx:=txtmaxx-2; txty1:=suc┆ 0x6f260…6f280 63 28 74 78 74 79 31 29 3b 74 78 74 6d 61 78 79 3a 3d 74 78 74 6d 61 78 79 2d 32 3b 0d 0a 20 20 ┆c(txty1);txtmaxy:=txtmaxy-2; ┆ 0x6f280…6f2a0 20 20 78 31 3a 3d 78 31 2b 38 3b 6d 61 78 78 3a 3d 6d 61 78 78 2d 31 36 3b 0d 0a 20 20 20 20 79 ┆ x1:=x1+8;maxx:=maxx-16; y┆ 0x6f2a0…6f2c0 31 3a 3d 79 31 2b 38 3b 6d 61 78 79 3a 3d 6d 61 78 79 2d 31 36 3b 0d 0a 20 20 45 4e 44 3b 0d 0a ┆1:=y1+8;maxy:=maxy-16; END; ┆ 0x6f2c0…6f2e0 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 68 65 6c 70 28 6e 6f 2c 77 ┆END; PROCEDURE writehelp(no,w┆ 0x6f2e0…6f300 2c 6c 3a 20 49 4e 54 45 47 45 52 3b 56 41 52 20 73 74 29 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6a ┆,l: INTEGER;VAR st); VAR i,j┆ 0x6f300…6f320 2c 6b 2c 61 63 74 75 61 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 09 3a 73 74 72 ┆,k,actual : INTEGER; str :str┆ 0x6f320…6f340 38 30 3b 0d 0a 20 20 73 74 72 6c 67 74 3a 62 79 74 65 20 41 54 20 73 74 72 3b 0d 0a 20 20 63 68 ┆80; strlgt:byte AT str; ch┆ 0x6f340…6f360 3a 20 43 48 41 52 3b 0d 0a 20 20 77 69 6e 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 42 45 47 49 4e ┆: CHAR; win: Wnd_TYPE; BEGIN┆ 0x6f360…6f380 0d 0a 20 20 61 63 74 75 61 6c 3a 3d 57 6e 64 5f 61 63 74 75 61 6c 3b 0d 0a 20 20 77 69 6e 3a 3d ┆ actual:=Wnd_actual; win:=┆ 0x6f380…6f3a0 57 6e 64 5f 3b 0d 0a 20 20 73 65 6c 65 63 74 57 69 6e 64 6f 77 28 6e 6f 29 3b 0d 0a 20 20 73 61 ┆Wnd_; selectWindow(no); sa┆ 0x6f3a0…6f3c0 76 65 57 69 6e 64 6f 77 28 6e 6f 29 3b 0d 0a 20 20 77 72 69 74 65 66 72 61 6d 65 3b 0d 0a 20 20 ┆veWindow(no); writeframe; ┆ 0x6f3c0…6f3e0 6b 3a 3d 30 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6c 20 44 4f 20 42 45 47 49 4e 0d ┆k:=0; FOR i:=1 TO l DO BEGIN ┆ 0x6f3e0…6f400 0a 20 20 20 20 73 74 72 6c 67 74 3a 3d 6d 65 6d 28 2e 73 65 67 28 73 74 29 3a 6f 66 73 28 73 74 ┆ strlgt:=mem(.seg(st):ofs(st┆ 0x6f400…6f420 (44, 1, 1) 29 2b 6b 2e 29 3b 0d 0a 20 20 20 20 46 4f 52 20 6a 3a 3d 31 20 54 4f 20 73 74 72 6c 67 74 20 44 ┆)+k.); FOR j:=1 TO strlgt D┆ 0x6f420…6f440 4f 0d 0a 20 20 20 20 20 20 73 74 72 28 2e 6a 2e 29 3a 3d 43 48 41 52 28 6d 65 6d 28 2e 73 65 67 ┆O str(.j.):=CHAR(mem(.seg┆ 0x6f440…6f460 28 73 74 29 3a 6f 66 73 28 73 74 29 2b 6b 2b 6a 2e 29 29 3b 0d 0a 20 20 20 20 6b 3a 3d 6b 2b 77 ┆(st):ofs(st)+k+j.)); k:=k+w┆ 0x6f460…6f480 2b 31 3b 0d 0a 20 20 20 20 64 72 61 77 74 65 78 74 28 30 2c 69 2d 31 2c 73 74 72 29 3b 0d 0a 20 ┆+1; drawtext(0,i-1,str); ┆ 0x6f480…6f4a0 20 45 4e 44 3b 0d 0a 20 20 52 45 50 45 41 54 20 72 65 61 64 28 6b 62 64 2c 63 68 29 20 55 4e 54 ┆ END; REPEAT read(kbd,ch) UNT┆ 0x6f4a0…6f4c0 49 4c 20 63 68 20 69 6e 20 28 2e 40 31 33 2c 40 33 32 2e 29 3b 0d 0a 20 20 6c 6f 61 64 57 69 6e ┆IL ch in (.@13,@32.); loadWin┆ 0x6f4c0…6f4e0 64 6f 77 28 6e 6f 2c 30 2c 30 29 3b 0d 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 3a 3d 61 63 74 75 ┆dow(no,0,0); Wnd_actual:=actu┆ 0x6f4e0…6f500 61 6c 3b 0d 0a 20 20 57 6e 64 5f 3a 3d 77 69 6e 3b 0d 0a 45 4e 44 3b 0d 0a 00 00 00 00 00 00 00 ┆al; Wnd_:=win; END; ┆ 0x6f500…6f520 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x17…] 0x6f800…6f820 (44, 1, 2) 28 2a 47 53 56 2d 50 4c 30 31 2a 29 0d 0a 28 2a 24 49 20 61 3a 67 73 76 2d 62 61 73 65 2a 29 0d ┆(*GSV-PL01*) (*$I a:gsv-base*) ┆ 0x6f820…6f840 0a 70 72 6f 63 65 64 75 72 65 20 6d 61 6b 65 61 78 65 72 28 78 31 2c 78 32 2c 79 31 2c 79 32 3a ┆ procedure makeaxer(x1,x2,y1,y2:┆ 0x6f840…6f860 20 72 65 61 6c 29 3b 0d 0a 76 61 72 20 6a 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 73 3a ┆ real); var j: integer; s:┆ 0x6f860…6f880 20 73 74 72 69 6e 67 28 2e 32 2e 29 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 6d 6f 76 65 74 6f 28 78 ┆ string(.2.); begin moveto(x┆ 0x6f880…6f8a0 31 2c 79 31 29 3b 20 64 72 61 77 74 6f 28 78 31 2c 79 32 29 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 ┆1,y1); drawto(x1,y2); moveto(┆ 0x6f8a0…6f8c0 78 31 2c 79 31 29 3b 20 64 72 61 77 74 6f 28 78 32 2c 79 31 29 3b 20 64 72 61 77 74 6f 28 78 32 ┆x1,y1); drawto(x2,y1); drawto(x2┆ 0x6f8c0…6f8e0 2c 79 32 29 3b 0d 0a 20 20 6d 6f 76 65 74 6f 28 78 31 2c 30 29 3b 20 64 72 61 77 74 6f 28 78 32 ┆,y2); moveto(x1,0); drawto(x2┆ 0x6f8e0…6f900 2c 30 29 3b 0d 0a 20 20 66 6f 72 20 6a 3a 3d 72 6f 75 6e 64 28 78 31 29 20 74 6f 20 72 6f 75 6e ┆,0); for j:=round(x1) to roun┆ 0x6f900…6f920 64 28 78 32 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 66 20 28 6a 20 6d 6f 64 ┆d(x2) do begin if (j mod┆ 0x6f920…6f940 20 35 29 3d 30 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 73 74 72 ┆ 5)=0 then begin str┆ 0x6f940…6f960 28 6a 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 20 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 6a 2d 30 ┆(j:2,s); plottextsize(j-0┆ 0x6f960…6f980 2e 34 2c 79 31 2d 33 2c 31 2c 31 2c 73 29 3b 20 0d 0a 20 20 20 20 20 20 6d 6f 76 65 74 6f 28 6a ┆.4,y1-3,1,1,s); moveto(j┆ 0x6f980…6f9a0 2c 79 31 2d 31 29 0d 0a 20 20 20 20 65 6e 64 20 20 20 20 20 0d 0a 20 20 20 20 65 6c 73 65 20 6d ┆,y1-1) end else m┆ 0x6f9a0…6f9c0 6f 76 65 74 6f 28 6a 2c 79 31 2b 30 2e 35 29 3b 20 64 72 61 77 74 6f 28 6a 2c 79 31 29 3b 20 20 ┆oveto(j,y1+0.5); drawto(j,y1); ┆ 0x6f9c0…6f9e0 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 6c 6f 74 74 65 78 74 73 69 7a 65 28 78 32 2c 79 31 2d 33 ┆ end; plottextsize(x2,y1-3┆ 0x6f9e0…6fa00 2c 31 2c 31 2c 27 64 61 67 65 27 29 3b 20 0d 0a 20 20 66 6f 72 20 6a 3a 3d 72 6f 75 6e 64 28 79 ┆,1,1,'dage'); for j:=round(y┆ 0x6fa00…6fa20 31 29 20 74 6f 20 72 6f 75 6e 64 28 79 32 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 20 20 0d 0a 20 ┆1) to round(y2) do begin ┆ 0x6fa20…6fa40 20 20 20 69 66 20 28 6a 20 6d 6f 64 20 31 30 29 3d 30 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 ┆ if (j mod 10)=0 then beg┆ 0x6fa40…6fa60 69 6e 0d 0a 20 20 20 20 20 20 73 74 72 28 6a 3a 32 2c 73 29 3b 0d 0a 20 20 20 20 20 20 70 6c 6f ┆in str(j:2,s); plo┆ 0x6fa60…6fa80 74 74 65 78 74 73 69 7a 65 28 78 31 2d 32 2c 6a 2d 30 2e 35 2c 31 2c 31 2c 73 29 3b 20 0d 0a 20 ┆ttextsize(x1-2,j-0.5,1,1,s); ┆ 0x6fa80…6faa0 20 20 20 20 20 6d 6f 76 65 74 6f 28 78 31 2d 30 2e 33 2c 6a 29 0d 0a 20 20 20 20 20 20 0d 0a 20 ┆ moveto(x1-0.3,j) ┆ 0x6faa0…6fac0 20 20 20 65 6e 64 20 65 6c 73 65 20 6d 6f 76 65 74 6f 28 78 31 2d 30 2e 31 35 2c 6a 29 3b 20 64 ┆ end else moveto(x1-0.15,j); d┆ 0x6fac0…6fae0 72 61 77 74 6f 28 78 31 2c 6a 29 3b 0d 0a 20 20 65 6e 64 3b 20 20 20 20 20 20 0d 0a 65 6e 64 3b ┆rawto(x1,j); end; end;┆ 0x6fae0…6fb00 0d 0a 0d 0a 76 61 72 20 63 68 3a 63 68 61 72 3b 0d 0a 20 20 20 20 20 6a 3a 20 69 6e 74 65 67 65 ┆ var ch:char; j: intege┆ 0x6fb00…6fb20 72 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 67 72 61 70 68 69 63 73 63 72 65 65 6e 28 4f 4c 49 5f 68 ┆r; begin graphicscreen(OLI_h┆ 0x6fb20…6fb40 69 67 68 29 3b 0d 0a 20 20 67 72 61 70 68 6d 6f 64 65 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 32 2c ┆igh); graphmode; window(2,┆ 0x6fb40…6fb60 2d 35 2c 33 36 2c 2d 33 35 2c 33 35 29 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 33 2c 2d 31 30 2c 34 ┆-5,36,-35,35); window(3,-10,4┆ 0x6fb60…6fb80 30 2c 2d 34 30 2c 34 30 29 3b 0d 0a 20 20 77 69 6e 64 6f 77 28 34 2c 2d 31 30 30 2c 31 30 30 2c ┆0,-40,40); window(4,-100,100,┆ 0x6fb80…6fba0 2d 31 30 30 2c 31 30 30 29 3b 0d 0a 20 20 76 69 65 77 70 6f 72 74 28 32 2c 31 30 30 2c 35 34 30 ┆-100,100); viewport(2,100,540┆ 0x6fba0…6fbc0 2c 31 30 30 2c 33 30 30 29 3b 0d 0a 20 20 73 65 6c 65 63 74 77 69 6e 64 6f 77 28 32 29 3b 0d 0a ┆,100,300); selectwindow(2); ┆ 0x6fbc0…6fbe0 20 20 73 65 6c 65 63 74 76 69 65 77 70 6f 72 74 28 31 29 3b 0d 0a 20 20 64 72 61 77 66 72 61 6d ┆ selectviewport(1); drawfram┆ 0x6fbe0…6fc00 65 3b 0d 0a 20 20 6d 61 6b 65 61 78 65 72 28 30 2c 33 32 2c 2d 33 30 2c 33 30 29 3b 0d 0a 20 20 ┆e; makeaxer(0,32,-30,30); ┆ 0x6fc00…6fc20 (44, 1, 3) 73 61 76 65 76 69 65 77 70 6f 72 74 28 31 29 3b 0d 0a 20 20 63 6c 65 61 72 3b 0d 0a 20 20 73 65 ┆saveviewport(1); clear; se┆ 0x6fc20…6fc40 6c 65 63 74 77 69 6e 64 6f 77 28 32 29 3b 0d 0a 20 20 73 65 6c 65 63 74 76 69 65 77 70 6f 72 74 ┆lectwindow(2); selectviewport┆ 0x6fc40…6fc60 28 32 29 3b 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b 0d 0a 20 20 6d 61 6b 65 61 78 65 72 28 30 ┆(2); drawframe; makeaxer(0┆ 0x6fc60…6fc80 2c 33 32 2c 2d 33 30 2c 33 30 29 3b 0d 0a 20 20 63 6c 65 61 72 3b 0d 0a 20 20 73 65 6c 65 63 74 ┆,32,-30,30); clear; select┆ 0x6fc80…6fca0 77 69 6e 64 6f 77 28 32 29 3b 0d 0a 20 20 6c 6f 61 64 76 69 65 77 70 6f 72 74 28 31 2c 31 2c 31 ┆window(2); loadviewport(1,1,1┆ 0x6fca0…6fcc0 29 3b 0d 0a 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 20 74 65 78 74 6d 6f 64 65 3b ┆); read(kbd,ch); textmode;┆ 0x6fcc0…6fce0 0d 0a 65 6e 64 2e 20 20 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ end. ┆ 0x6fce0…6fd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x6fd00…6fd20 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x17…] 0x70000…70020 (44, 1, 4) 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 64 75 6d 70 28 6d 6f 64 65 3a 70 72 6e 5f 54 59 ┆ PROCEDURE Scr_dump(mode:prn_TY┆ 0x70020…70040 50 45 29 3b 0d 0a 56 41 52 0d 0a 20 20 70 72 69 6e 74 65 72 3a 20 74 65 78 74 3b 0d 0a 20 20 69 ┆PE); VAR printer: text; i┆ 0x70040…70060 2c 6a 2c 6b 2c 6b 31 2c 73 6d 61 78 2c 74 6d 61 78 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 69 ┆,j,k,k1,smax,tmax: INTEGER; i┆ 0x70060…70080 6e 69 74 5f 63 68 3a 20 53 54 52 49 4e 47 28 2e 36 2e 29 3b 0d 0a 20 20 67 72 5f 73 74 72 3a 20 ┆nit_ch: STRING(.6.); gr_str: ┆ 0x70080…700a0 53 54 52 49 4e 47 28 2e 34 2e 29 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 73 73 69 67 6e 28 70 72 ┆STRING(.4.); BEGIN assign(pr┆ 0x700a0…700c0 69 6e 74 65 72 2c 27 6c 73 74 3a 27 29 3b 0d 0a 20 20 72 65 73 65 74 28 70 72 69 6e 74 65 72 29 ┆inter,'lst:'); reset(printer)┆ 0x700c0…700e0 3b 0d 0a 20 20 49 46 20 69 6f 72 65 73 3c 3e 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 49 ┆; IF iores<>0 THEN exit; I┆ 0x700e0…70100 46 20 67 72 61 70 68 5f 54 59 50 45 20 69 6e 20 28 2e 49 42 4d 5f 68 69 67 68 2c 49 42 4d 5f 65 ┆F graph_TYPE in (.IBM_high,IBM_e┆ 0x70100…70120 6e 68 61 6e 2c 50 69 63 5f 68 69 67 68 2c 4f 4c 49 5f 68 69 67 68 2e 29 20 54 48 45 4e 20 6b 31 ┆nhan,Pic_high,OLI_high.) THEN k1┆ 0x70120…70140 3a 3d 32 20 45 4c 53 45 20 6b 31 3a 3d 31 3b 0d 0a 20 20 73 6d 61 78 3a 3d 28 53 63 72 5f 6d 61 ┆:=2 ELSE k1:=1; smax:=(Scr_ma┆ 0x70140…70160 78 79 2b 31 29 2a 6b 31 3b 0d 0a 20 20 43 41 53 45 20 6d 6f 64 65 20 4f 46 0d 0a 20 20 49 42 4d ┆xy+1)*k1; CASE mode OF IBM┆ 0x70160…70180 5f 67 72 61 70 68 3a 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 70 72 ┆_graph: BEGIN writeln(pr┆ 0x70180…701a0 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b 27 41 27 2b 63 68 72 28 38 29 2c 63 68 72 28 32 37 29 ┆inter,chr(27)+'A'+chr(8),chr(27)┆ 0x701a0…701c0 2b 27 32 27 29 3b 0d 0a 20 20 20 20 69 6e 69 74 5f 63 68 3a 3d 63 68 72 28 32 37 29 2b 27 49 27 ┆+'2'); init_ch:=chr(27)+'I'┆ 0x701c0…701e0 2b 63 68 72 28 6c 6f 28 73 6d 61 78 29 29 2b 63 68 72 28 68 69 28 73 6d 61 78 29 29 3b 20 74 6d ┆+chr(lo(smax))+chr(hi(smax)); tm┆ 0x701e0…70200 61 78 3a 3d 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 52 43 5f 36 30 33 3a 0d 0a 20 20 42 45 47 ┆ax:=0; END; RC_603: BEG┆ 0x70200…70220 49 4e 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b ┆IN writeln(printer,chr(27)+┆ 0x70220…70240 27 54 31 36 27 2b 63 68 72 28 32 37 29 2b 27 3e 27 2b 63 68 72 28 32 37 29 2b 27 4e 27 29 3b 0d ┆'T16'+chr(27)+'>'+chr(27)+'N'); ┆ 0x70240…70260 0a 20 20 20 20 73 74 72 28 73 6d 61 78 3a 34 2c 67 72 5f 73 74 72 29 3b 0d 0a 20 20 20 20 46 4f ┆ str(smax:4,gr_str); FO┆ 0x70260…70280 52 20 69 3a 3d 31 20 54 4f 20 34 20 44 4f 20 49 46 20 67 72 5f 73 74 72 28 2e 69 2e 29 3d 27 20 ┆R i:=1 TO 4 DO IF gr_str(.i.)=' ┆ 0x70280…702a0 27 20 54 48 45 4e 20 67 72 5f 73 74 72 28 2e 69 2e 29 3a 3d 27 30 27 3b 0d 0a 20 20 20 20 69 6e ┆' THEN gr_str(.i.):='0'; in┆ 0x702a0…702c0 69 74 5f 63 68 3a 3d 63 68 72 28 32 37 29 2b 27 53 27 2b 67 72 5f 73 74 72 3b 20 74 6d 61 78 3a ┆it_ch:=chr(27)+'S'+gr_str; tmax:┆ 0x702c0…702e0 3d 74 78 74 5f 6d 61 78 78 3b 0d 0a 20 20 45 4e 44 0d 0a 20 20 4f 54 48 45 52 57 49 53 45 20 65 ┆=txt_maxx; END OTHERWISE e┆ 0x702e0…70300 78 69 74 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 74 78 74 5f ┆xit; END; FOR i:=0 TO txt_┆ 0x70300…70320 6d 61 78 78 20 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 ┆maxx DO BEGIN write(printe┆ 0x70320…70340 72 2c 69 6e 69 74 5f 63 68 29 3b 0d 0a 20 20 20 20 46 4f 52 20 6a 3a 3d 30 20 74 6f 20 53 63 72 ┆r,init_ch); FOR j:=0 to Scr┆ 0x70340…70360 5f 6d 61 78 79 20 64 6f 0d 0a 20 20 20 20 20 20 46 4f 52 20 6b 3a 3d 31 20 54 4f 20 6b 31 20 44 ┆_maxy do FOR k:=1 TO k1 D┆ 0x70360…70380 4f 20 0d 0a 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 63 68 72 28 6d 65 6d 28 2e 53 ┆O write(printer,chr(mem(.S┆ 0x70380…703a0 63 72 5f 73 65 67 6d 3a 53 63 72 5f 79 61 64 64 72 28 2e 6a 2e 29 2b 53 63 72 5f 78 61 64 64 72 ┆cr_segm:Scr_yaddr(.j.)+Scr_xaddr┆ 0x703a0…703c0 28 2e 61 62 73 28 74 6d 61 78 2d 69 29 2a 38 2e 29 2e 29 29 29 3b 0d 0a 20 20 20 20 77 72 69 74 ┆(.abs(tmax-i)*8.).))); writ┆ 0x703c0…703e0 65 6c 6e 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 ┆eln(printer); if keypress th┆ 0x703e0…70400 65 6e 20 65 78 69 74 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e ┆en exit; END; writeln(prin┆ 0x70400…70420 (44, 1, 5) 74 65 72 2c 63 68 72 28 32 37 29 2b 27 63 31 27 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 70 72 69 6e ┆ter,chr(27)+'c1'); close(prin┆ 0x70420…70440 74 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ter); END; ┆ 0x70440…70460 00 00 00 00 00 00 00 00 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…] 0x70480…704a0 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x1b…] 0x70800…70820 (45, 0, 1) 0d 0a 7b 20 43 53 54 52 20 72 65 74 75 72 6e 73 20 61 20 73 74 72 69 6e 67 20 77 69 74 68 20 4e ┆ æ CSTR returns a string with N┆ 0x70820…70840 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 76 61 6c 75 65 20 43 20 7d 0d 0a 0d 0a 46 55 4e 43 ┆ characters of value C å FUNC┆ 0x70840…70860 54 49 4f 4e 20 63 73 74 72 28 63 3a 20 63 68 61 72 3b 20 6e 3a 20 69 6e 74 65 67 65 72 29 3a 20 ┆TION cstr(c: char; n: integer): ┆ 0x70860…70880 61 6e 79 73 74 72 3b 0d 0a 56 41 52 0d 0a 20 20 73 3a 20 53 54 52 49 4e 47 5b 32 35 35 5d 3b 0d ┆anystr; VAR s: STRINGÆ255Å; ┆ 0x70880…708a0 0a 42 45 47 49 4e 0d 0a 20 20 49 46 20 6e 3c 30 20 54 48 45 4e 20 6e 3a 3d 30 3b 20 73 5b 30 5d ┆ BEGIN IF n<0 THEN n:=0; sÆ0Å┆ 0x708a0…708c0 3a 3d 63 68 72 28 6e 29 3b 20 66 69 6c 6c 28 73 5b 31 5d 2c 6e 2c 63 29 3b 0d 0a 20 20 63 73 74 ┆:=chr(n); fill(sÆ1Å,n,c); cst┆ 0x708c0…708e0 72 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 ┆r:=s; END; PROCEDURE write┆ 0x708e0…70900 73 74 72 28 63 6f 6c 2c 72 6f 77 3a 20 49 4e 54 45 47 45 52 3b 20 73 74 72 3a 20 73 74 72 38 30 ┆str(col,row: INTEGER; str: str80┆ 0x70900…70920 29 3b 0d 0a 56 41 52 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆); VAR attrib: BYTE; BEGIN ┆ 0x70920…70940 61 74 74 72 69 62 3a 3d 57 6e 64 5f 70 61 6c 65 74 74 65 28 2e 57 6e 64 5f 61 63 74 75 61 6c 2e ┆attrib:=Wnd_palette(.Wnd_actual.┆ 0x70940…70960 29 3b 0d 0a 20 20 43 4f 44 45 0d 0a 20 20 20 24 31 45 2c 24 31 45 2c 24 38 41 2c 24 38 36 2c 72 ┆); CODE $1E,$1E,$8A,$86,r┆ 0x70960…70980 6f 77 2c 24 42 33 2c 24 35 30 2c 24 46 36 2c 24 45 33 2c 24 32 42 2c 24 44 42 2c 24 38 41 2c 24 ┆ow,$B3,$50,$F6,$E3,$2B,$DB,$8A,$┆ 0x70980…709a0 39 45 2c 63 6f 6c 2c 0d 0a 20 20 20 24 30 33 2c 24 43 33 2c 24 30 33 2c 24 43 30 2c 24 38 42 2c ┆9E,col, $03,$C3,$03,$C0,$8B,┆ 0x709a0…709c0 24 46 38 2c 24 62 65 2c 24 30 30 2c 24 30 30 2c 24 38 41 2c 24 42 45 2c 61 74 74 72 69 62 2c 0d ┆$F8,$be,$00,$00,$8A,$BE,attrib, ┆ 0x709c0…709e0 0a 20 20 20 24 38 61 2c 24 38 65 2c 73 74 72 2c 24 32 32 2c 24 63 39 2c 24 37 34 2c 24 33 65 2c ┆ $8a,$8e,str,$22,$c9,$74,$3e,┆ 0x709e0…70a00 24 32 62 2c 24 63 30 2c 24 38 45 2c 24 44 38 2c 24 41 30 2c 24 34 39 2c 24 30 34 2c 0d 0a 20 20 ┆$2b,$c0,$8E,$D8,$A0,$49,$04, ┆ 0x70a00…70a20 20 24 31 46 2c 24 32 43 2c 24 30 37 2c 24 37 34 2c 24 32 32 2c 24 42 41 2c 24 30 30 2c 24 42 38 ┆ $1F,$2C,$07,$74,$22,$BA,$00,$B8┆ 0x70a20…70a40 2c 24 38 45 2c 24 44 41 2c 24 42 41 2c 24 44 41 2c 24 30 33 2c 24 34 36 2c 0d 0a 20 20 20 24 38 ┆,$8E,$DA,$BA,$DA,$03,$46, $8┆ 0x70a40…70a60 61 2c 24 39 41 2c 73 74 72 2c 24 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 35 2c 24 46 42 2c 24 46 ┆a,$9A,str,$EC,$A8,$01,$75,$FB,$F┆ 0x70a60…70a80 41 2c 24 45 43 2c 24 41 38 2c 24 30 31 2c 24 37 34 2c 24 46 42 2c 0d 0a 20 20 20 24 38 39 2c 24 ┆A,$EC,$A8,$01,$74,$FB, $89,$┆ 0x70a80…70aa0 31 44 2c 24 34 37 2c 24 34 37 2c 24 45 32 2c 24 45 61 2c 24 32 41 2c 24 43 30 2c 24 37 34 2c 24 ┆1D,$47,$47,$E2,$Ea,$2A,$C0,$74,$┆ 0x70aa0…70ac0 31 30 2c 24 42 41 2c 24 30 30 2c 24 42 30 2c 0d 0a 20 20 20 24 38 45 2c 24 44 41 2c 24 34 36 2c ┆10,$BA,$00,$B0, $8E,$DA,$46,┆ 0x70ac0…70ae0 24 38 61 2c 24 39 41 2c 73 74 72 2c 24 38 39 2c 24 31 44 2c 24 34 37 2c 24 34 37 2c 24 45 32 2c ┆$8a,$9A,str,$89,$1D,$47,$47,$E2,┆ 0x70ae0…70b00 24 46 35 2c 24 31 46 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 73 70 63 28 6c ┆$F5,$1F; END; FUNCTION spc(l┆ 0x70b00…70b20 3a 20 49 4e 54 45 47 45 52 3b 20 63 68 3a 20 43 48 41 52 29 3a 73 74 72 38 30 3b 0d 0a 56 41 52 ┆: INTEGER; ch: CHAR):str80; VAR┆ 0x70b20…70b40 20 0d 0a 20 20 73 09 3a 20 73 74 72 38 30 3b 0d 0a 20 20 73 6c 67 74 20 20 3a 20 42 59 54 45 20 ┆ s : str80; slgt : BYTE ┆ 0x70b40…70b60 41 54 20 73 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 6c 67 74 3a 3d 6c 3b 0d 0a 20 20 66 69 6c 6c ┆AT s; BEGIN slgt:=l; fill┆ 0x70b60…70b80 28 73 28 2e 31 2e 29 2c 6c 2c 63 68 29 3b 0d 0a 20 20 73 70 63 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d ┆(s(.1.),l,ch); spc:=s; END; ┆ 0x70b80…70ba0 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 53 63 72 5f 44 72 61 77 63 68 61 72 28 78 2c 79 3a 20 49 ┆ PROCEDURE Scr_Drawchar(x,y: I┆ 0x70ba0…70bc0 4e 54 45 47 45 52 3b 63 68 3a 20 43 48 41 52 29 3b 0d 0a 56 41 52 20 20 74 6f 74 61 6c 2c 69 3a ┆NTEGER;ch: CHAR); VAR total,i:┆ 0x70bc0…70be0 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 ┆ INTEGER; BEGIN FOR i:=0 TO ┆ 0x70be0…70c00 37 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 74 6f 74 61 6c 3a 3d 53 63 72 5f 78 61 64 64 72 ┆7 DO BEGIN total:=Scr_xaddr┆ 0x70c00…70c20 (45, 0, 2) 28 2e 78 2e 29 2b 53 63 72 5f 79 61 64 64 72 28 2e 79 2d 69 2b 37 2e 29 3b 0d 0a 20 20 20 20 43 ┆(.x.)+Scr_yaddr(.y-i+7.); C┆ 0x70c20…70c40 41 53 45 20 57 6e 64 5f 2e 70 65 6e 63 6f 6c 6f 72 20 4f 46 0d 0a 20 20 20 20 77 68 69 74 65 3a ┆ASE Wnd_.pencolor OF white:┆ 0x70c40…70c60 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d 53 ┆ mem(.Scr_segm:total.):=S┆ 0x70c60…70c80 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 3b 0d 0a 20 20 20 20 62 6c 61 63 6b ┆cr_CHAR(.ord(ch),i.); black┆ 0x70c80…70ca0 3a 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d ┆: mem(.Scr_segm:total.):=┆ 0x70ca0…70cc0 20 28 4e 4f 54 20 53 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 63 68 29 2c 69 2e 29 20 41 4e 44 20 ┆ (NOT Scr_CHAR(.ord(ch),i.) AND ┆ 0x70cc0…70ce0 24 46 46 29 3b 0d 0a 20 20 20 20 74 72 61 6e 73 70 3a 0d 0a 20 20 20 20 20 20 6d 65 6d 28 2e 53 ┆$FF); transp: mem(.S┆ 0x70ce0…70d00 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c 2e 29 3a 3d 20 53 63 72 5f 43 48 41 52 28 2e 6f 72 64 28 ┆cr_segm:total.):= Scr_CHAR(.ord(┆ 0x70d00…70d20 63 68 29 2c 69 2e 29 20 45 58 4f 52 20 6d 65 6d 28 2e 53 63 72 5f 73 65 67 6d 3a 74 6f 74 61 6c ┆ch),i.) EXOR mem(.Scr_segm:total┆ 0x70d20…70d40 2e 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 ┆.); END; END; END; P┆ 0x70d40…70d60 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 44 72 61 77 43 68 61 72 28 78 2c 20 79 20 3a 20 49 4e 54 ┆ROCEDURE Wnd_DrawChar(x, y : INT┆ 0x70d60…70d80 45 47 45 52 3b 20 63 20 3a 20 43 48 41 52 29 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 ┆EGER; c : CHAR); BEGIN I┆ 0x70d80…70da0 46 20 78 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 49 46 20 28 78 2b 37 29 ┆F x < 0 THEN exit; IF (x+7)┆ 0x70da0…70dc0 20 3e 20 57 6e 64 5f 2e 4d 61 78 58 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 20 49 46 ┆ > Wnd_.MaxX THEN exit; IF┆ 0x70dc0…70de0 20 79 20 3c 20 30 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 20 49 46 20 28 79 2b 37 29 ┆ y < 0 THEN exit; IF (y+7)┆ 0x70de0…70e00 20 3e 20 57 6e 64 5f 2e 4d 61 78 59 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 20 20 53 63 72 ┆ > Wnd_.MaxY THEN exit; Scr┆ 0x70e00…70e20 5f 44 72 61 77 43 68 61 72 28 28 78 20 2b 20 57 6e 64 5f 2e 58 31 20 2b 20 37 29 20 41 4e 44 20 ┆_DrawChar((x + Wnd_.X1 + 7) AND ┆ 0x70e20…70e40 24 46 46 46 38 2c 20 28 79 20 2b 20 57 6e 64 5f 2e 59 31 29 2c 20 63 29 0d 0a 20 20 45 4e 44 3b ┆$FFF8, (y + Wnd_.Y1), c) END;┆ 0x70e40…70e60 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 57 6e 64 5f 44 72 61 77 54 65 78 74 28 78 2c 20 79 20 ┆ PROCEDURE Wnd_DrawText(x, y ┆ 0x70e60…70e80 3a 20 49 4e 54 45 47 45 52 3b 20 74 20 3a 73 74 72 38 30 20 29 3b 0d 0a 20 20 56 41 52 20 69 20 ┆: INTEGER; t :str80 ); VAR i ┆ 0x70e80…70ea0 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 46 4f 52 20 69 20 3a ┆: INTEGER; BEGIN FOR i :┆ 0x70ea0…70ec0 3d 20 31 20 54 4f 20 6c 65 6e 28 74 29 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 57 6e ┆= 1 TO len(t) DO BEGIN Wn┆ 0x70ec0…70ee0 64 5f 44 72 61 77 43 68 61 72 28 78 2c 20 79 2c 20 74 5b 69 5d 29 3b 0d 0a 20 20 20 20 20 20 78 ┆d_DrawChar(x, y, tÆiÅ); x┆ 0x70ee0…70f00 20 3a 3d 20 78 20 2b 20 38 0d 0a 20 20 20 20 45 4e 44 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 50 52 ┆ := x + 8 END END; PR┆ 0x70f00…70f20 4f 43 45 44 55 52 45 20 64 72 61 77 73 74 72 28 63 6f 6c 2c 72 6f 77 3a 49 4e 54 45 47 45 52 3b ┆OCEDURE drawstr(col,row:INTEGER;┆ 0x70f20…70f40 73 3a 73 74 72 38 30 29 3b 0d 0a 56 41 52 20 61 74 74 72 69 62 3a 20 42 59 54 45 3b 0d 0a 20 6c ┆s:str80); VAR attrib: BYTE; l┆ 0x70f40…70f60 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 ┆ : INTEGER; BEGIN WITH Wnd_ ┆ 0x70f60…70f80 44 4f 0d 0a 20 20 20 20 49 46 20 74 78 74 5f 6d 6f 64 65 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a ┆DO IF txt_mode THEN BEGIN ┆ 0x70f80…70fa0 20 20 20 20 20 20 72 6f 77 3a 3d 72 6f 77 2b 74 78 74 79 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 ┆ row:=row+txty1; IF ┆ 0x70fa0…70fc0 28 63 6f 6c 2b 6c 65 6e 28 73 29 29 3e 28 74 78 74 6d 61 78 78 2b 31 29 20 54 48 45 4e 20 6c 3a ┆(col+len(s))>(txtmaxx+1) THEN l:┆ 0x70fc0…70fe0 3d 74 78 74 6d 61 78 78 2b 31 2d 63 6f 6c 20 45 4c 53 45 20 6c 3a 3d 6c 65 6e 28 73 29 3b 0d 0a ┆=txtmaxx+1-col ELSE l:=len(s); ┆ 0x70fe0…71000 20 20 20 20 20 20 63 6f 6c 3a 3d 63 6f 6c 2b 74 78 74 78 31 3b 0d 0a 20 20 20 20 20 20 49 46 20 ┆ col:=col+txtx1; IF ┆ 0x71000…71020 (45, 0, 3) 72 6f 77 3c 3d 74 78 74 6d 61 78 79 2b 74 78 74 79 31 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 ┆row<=txtmaxy+txty1 THEN ┆ 0x71020…71040 20 77 72 69 74 65 73 74 72 28 63 6f 6c 2c 72 6f 77 2c 63 6f 70 79 28 73 2c 31 2c 6c 29 29 3b 0d ┆ writestr(col,row,copy(s,1,l)); ┆ 0x71040…71060 0a 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 ┆ END ELSE BEGIN ┆ 0x71060…71080 63 6f 6c 3a 3d 20 63 6f 6c 20 53 48 4c 20 33 20 3b 0d 0a 20 20 20 20 20 20 72 6f 77 3a 3d 20 6d ┆col:= col SHL 3 ; row:= m┆ 0x71080…710a0 61 78 79 20 2d 20 37 20 2d 20 28 72 6f 77 20 2a 20 38 29 3b 0d 0a 20 20 20 20 20 20 57 6e 64 5f ┆axy - 7 - (row * 8); Wnd_┆ 0x710a0…710c0 64 72 61 77 74 65 78 74 28 63 6f 6c 2c 72 6f 77 2c 73 29 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a ┆drawtext(col,row,s); END; ┆ 0x710c0…710e0 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 77 72 65 61 6c 28 78 2c 79 3a 49 ┆END; PROCEDURE drawreal(x,y:I┆ 0x710e0…71100 4e 54 45 47 45 52 3b 20 72 3a 52 45 41 4c 3b 20 6c 2c 64 3a 20 49 4e 54 45 47 45 52 29 3b 0d 0a ┆NTEGER; r:REAL; l,d: INTEGER); ┆ 0x71100…71120 56 41 52 0d 0a 20 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 73 74 72 28 72 ┆VAR s: str80; BEGIN str(r┆ 0x71120…71140 3a 6c 3a 64 2c 73 29 3b 0d 0a 20 20 64 72 61 77 73 74 72 28 78 2c 79 2c 73 29 3b 0d 0a 45 4e 44 ┆:l:d,s); drawstr(x,y,s); END┆ 0x71140…71160 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 64 72 61 77 68 65 61 64 65 72 3b 0d 0a 56 41 52 0d ┆; PROCEDURE drawheader; VAR ┆ 0x71160…71180 0a 20 20 69 2c 6f 6c 64 63 6f 6c 6f 72 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a ┆ i,oldcolor: INTEGER; BEGIN ┆ 0x71180…711a0 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 68 64 72 ┆ WITH Wnd_ DO BEGIN IF hdr┆ 0x711a0…711c0 3c 3e 27 27 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 69 3a 3d 28 6d 61 78 78 20 ┆<>'' THEN BEGIN i:=(maxx ┆ 0x711c0…711e0 44 49 56 20 38 20 2d 20 6c 65 6e 28 68 64 72 29 29 20 44 49 56 20 32 3b 0d 0a 20 20 20 20 20 20 ┆DIV 8 - len(hdr)) DIV 2; ┆ 0x711e0…71200 49 46 20 69 3c 30 20 54 48 45 4e 20 69 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 53 63 72 5f 66 69 6c ┆IF i<0 THEN i:=0; Scr_fil┆ 0x71200…71220 6c 28 78 31 2c 79 31 2b 6d 61 78 79 2d 31 30 2c 78 31 2b 6d 61 78 78 2c 79 31 2b 6d 61 78 79 2c ┆l(x1,y1+maxy-10,x1+maxx,y1+maxy,┆ 0x71220…71240 24 46 46 29 3b 0d 0a 20 20 20 20 20 20 6f 6c 64 63 6f 6c 6f 72 3a 3d 70 65 6e 63 6f 6c 6f 72 3b ┆$FF); oldcolor:=pencolor;┆ 0x71240…71260 0d 0a 20 20 20 20 20 20 70 65 6e 63 6f 6c 6f 72 3a 3d 62 6c 61 63 6b 3b 0d 0a 20 20 20 20 20 20 ┆ pencolor:=black; ┆ 0x71260…71280 57 6e 64 5f 64 72 61 77 62 6f 78 28 30 2c 6d 61 78 79 2d 31 30 2c 6d 61 78 78 2c 6d 61 78 79 29 ┆Wnd_drawbox(0,maxy-10,maxx,maxy)┆ 0x71280…712a0 3b 0d 0a 20 20 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 20 20 44 72 ┆; maxy:=maxy-2; Dr┆ 0x712a0…712c0 61 77 53 74 72 28 69 2c 30 2c 68 64 72 29 3b 0d 0a 20 20 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 ┆awStr(i,0,hdr); maxy:=max┆ 0x712c0…712e0 79 2d 38 3b 0d 0a 20 20 20 20 20 20 70 65 6e 63 6f 6c 6f 72 3a 3d 6f 6c 64 63 6f 6c 6f 72 3b 0d ┆y-8; pencolor:=oldcolor; ┆ 0x712e0…71300 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 ┆ END; END; END; PROCE┆ 0x71300…71320 44 55 52 45 20 77 72 69 74 65 66 72 61 6d 65 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6c 68 2c 6c 78 ┆DURE writeframe; VAR i,lh,lx┆ 0x71320…71340 2c 6c 79 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 ┆,ly: INTEGER; s: str80; BEGI┆ 0x71340…71360 4e 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 6c 78 3a ┆N WITH Wnd_ DO BEGIN lx:┆ 0x71360…71380 3d 74 78 74 6d 61 78 78 3b 20 6c 79 3a 3d 74 78 74 6d 61 78 79 3b 20 6c 68 3a 3d 28 28 6c 78 2b ┆=txtmaxx; ly:=txtmaxy; lh:=((lx+┆ 0x71380…713a0 32 29 2d 6c 65 6e 28 68 64 72 29 29 20 44 49 56 20 32 2b 31 3b 0d 0a 20 20 20 20 73 3a 3d 27 c9 ┆2)-len(hdr)) DIV 2+1; s:=' ┆ 0x713a0…713c0 27 2b 73 70 63 28 6c 78 2d 31 2c 27 cd 27 29 2b 27 bb 27 3b 0d 0a 20 20 20 20 6d 6f 76 65 28 68 ┆'+spc(lx-1,' ')+' '; move(h┆ 0x713c0…713e0 64 72 28 2e 31 2e 29 2c 73 28 2e 6c 68 2e 29 2c 6c 65 6e 28 68 64 72 29 29 3b 0d 0a 20 20 20 20 ┆dr(.1.),s(.lh.),len(hdr)); ┆ 0x713e0…71400 64 72 61 77 73 74 72 28 30 2c 30 2c 73 29 3b 0d 0a 20 20 20 20 73 3a 3d 27 ba 27 2b 73 70 63 28 ┆drawstr(0,0,s); s:=' '+spc(┆ 0x71400…71420 (45, 0, 4) 6c 78 2d 31 2c 27 20 27 29 2b 27 ba 27 3b 0d 0a 20 20 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 ┆lx-1,' ')+' '; FOR i:=1 TO ┆ 0x71420…71440 6c 79 2d 31 20 44 4f 20 64 72 61 77 73 74 72 28 30 2c 69 2c 73 29 3b 0d 0a 20 20 20 20 64 72 61 ┆ly-1 DO drawstr(0,i,s); dra┆ 0x71440…71460 77 73 74 72 28 30 2c 6c 79 2c 27 c8 27 2b 73 70 63 28 6c 78 2d 31 2c 27 cd 27 29 2b 27 bc 27 29 ┆wstr(0,ly,' '+spc(lx-1,' ')+' ')┆ 0x71460…71480 3b 0d 0a 20 20 20 20 74 78 74 78 31 3a 3d 73 75 63 63 28 74 78 74 78 31 29 3b 74 78 74 6d 61 78 ┆; txtx1:=succ(txtx1);txtmax┆ 0x71480…714a0 78 3a 3d 74 78 74 6d 61 78 78 2d 32 3b 0d 0a 20 20 20 20 74 78 74 79 31 3a 3d 73 75 63 63 28 74 ┆x:=txtmaxx-2; txty1:=succ(t┆ 0x714a0…714c0 78 74 79 31 29 3b 74 78 74 6d 61 78 79 3a 3d 74 78 74 6d 61 78 79 2d 32 3b 0d 0a 20 20 20 20 78 ┆xty1);txtmaxy:=txtmaxy-2; x┆ 0x714c0…714e0 31 3a 3d 78 31 2b 38 3b 6d 61 78 78 3a 3d 6d 61 78 78 2d 31 36 3b 0d 0a 20 20 20 20 79 31 3a 3d ┆1:=x1+8;maxx:=maxx-16; y1:=┆ 0x714e0…71500 79 31 2b 38 3b 6d 61 78 79 3a 3d 6d 61 78 79 2d 31 36 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e 44 ┆y1+8;maxy:=maxy-16; END; END┆ 0x71500…71520 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 44 55 52 45 20 42 49 54 42 49 54 28 4f 6c 64 42 79 74 65 3a ┆; PROCEDURE BITBIT(OldByte:┆ 0x71520…71540 42 79 74 65 3b 56 41 52 20 4e 65 77 62 79 74 65 3a 20 62 79 74 65 29 3b 0d 0a 76 61 72 20 20 0d ┆Byte;VAR Newbyte: byte); var ┆ 0x71540…71560 0a 20 20 62 69 74 3a 20 62 79 74 65 3b 0d 0a 20 20 6a 2c 69 2c 6e 3a 69 6e 74 65 67 65 72 3b 0d ┆ bit: byte; j,i,n:integer; ┆ 0x71560…71580 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 4e 65 77 42 79 74 65 3a 3d 24 30 30 3b 0d 0a 20 20 66 6f 72 ┆ BEGIN NewByte:=$00; for┆ 0x71580…715a0 20 6a 3a 3d 20 31 20 74 6f 20 34 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 63 61 73 ┆ j:= 1 to 4 do begin cas┆ 0x715a0…715c0 65 20 6a 20 6f 66 0d 0a 20 20 20 20 31 3a 20 6e 3a 3d 31 3b 0d 0a 20 20 20 20 32 3a 20 6e 3a 3d ┆e j of 1: n:=1; 2: n:=┆ 0x715c0…715e0 32 3b 0d 0a 20 20 20 20 33 3a 20 6e 3a 3d 34 3b 0d 0a 20 20 20 20 34 3a 20 6e 3a 3d 38 3b 0d 0a ┆2; 3: n:=4; 4: n:=8; ┆ 0x715e0…71600 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 4f 6c 64 62 79 74 65 20 41 4e 44 20 6e ┆ end; Bit:=Oldbyte AND n┆ 0x71600…71620 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 69 74 20 53 48 4c 20 6a 3b 0d 0a 20 20 20 20 4e 65 77 62 ┆; Bit:=Bit SHL j; Newb┆ 0x71620…71640 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 4f 52 20 42 69 74 3b 0d 0a 20 20 20 20 42 69 74 3a 3d 42 ┆yte:=Newbyte OR Bit; Bit:=B┆ 0x71640…71660 69 74 20 53 48 52 20 31 3b 0d 0a 20 20 20 20 4e 65 77 62 79 74 65 3a 3d 4e 65 77 62 79 74 65 20 ┆it SHR 1; Newbyte:=Newbyte ┆ 0x71660…71680 4f 52 20 42 69 74 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 20 20 0d 0a 50 52 4f 43 45 ┆OR Bit; end; end; PROCE┆ 0x71680…716a0 44 55 52 45 20 53 63 72 5f 64 75 6d 70 28 6d 6f 64 65 3a 70 72 6e 5f 54 59 50 45 29 3b 0d 0a 56 ┆DURE Scr_dump(mode:prn_TYPE); V┆ 0x716a0…716c0 41 52 0d 0a 20 20 70 72 69 6e 74 65 72 3a 20 74 65 78 74 3b 0d 0a 20 20 69 2c 6a 2c 6b 2c 6b 31 ┆AR printer: text; i,j,k,k1┆ 0x716c0…716e0 2c 73 6d 61 78 2c 74 6d 61 78 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 69 6e 69 74 5f 63 68 3a ┆,smax,tmax: INTEGER; init_ch:┆ 0x716e0…71700 20 53 54 52 49 4e 47 28 2e 36 2e 29 3b 0d 0a 20 20 67 72 5f 73 74 72 3a 20 53 54 52 49 4e 47 28 ┆ STRING(.6.); gr_str: STRING(┆ 0x71700…71720 2e 34 2e 29 3b 0d 0a 0d 0a 20 20 63 68 3a 20 63 68 61 72 3b 0d 0a 20 20 48 69 67 68 43 48 2c 4c ┆.4.); ch: char; HighCH,L┆ 0x71720…71740 6f 77 43 48 3a 20 62 79 74 65 3b 0d 0a 20 20 48 69 67 68 42 79 74 65 2c 4c 6f 77 42 79 74 65 3a ┆owCH: byte; HighByte,LowByte:┆ 0x71740…71760 20 62 79 74 65 3b 0d 0a 20 20 62 69 74 6d 6f 64 65 3a 20 63 68 61 72 3b 0d 0a 20 20 0d 0a 42 45 ┆ byte; bitmode: char; BE┆ 0x71760…71780 47 49 4e 0d 0a 20 20 61 73 73 69 67 6e 28 70 72 69 6e 74 65 72 2c 27 6c 73 74 3a 27 29 3b 0d 0a ┆GIN assign(printer,'lst:'); ┆ 0x71780…717a0 20 20 72 65 73 65 74 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 49 46 20 69 6f 72 65 73 3c 3e 30 ┆ reset(printer); IF iores<>0┆ 0x717a0…717c0 20 54 48 45 4e 20 65 78 69 74 3b 0d 0a 20 20 49 46 20 6d 6f 64 65 20 69 6e 20 28 2e 4e 45 43 5f ┆ THEN exit; IF mode in (.NEC_┆ 0x717c0…717e0 31 36 62 69 74 2e 29 20 74 68 65 6e 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6b 31 3a 3d 32 ┆16bit.) then begin k1:=2┆ 0x717e0…71800 3b 0d 0a 20 20 20 20 62 69 74 6d 6f 64 65 3a 3d 27 49 27 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 ┆; bitmode:='I'; writeln(┆ 0x71800…71820 (45, 0, 5) 27 31 36 20 62 69 74 27 29 3b 0d 0a 20 20 65 6e 64 20 65 6c 73 65 0d 0a 20 20 62 65 67 69 6e 0d ┆'16 bit'); end else begin ┆ 0x71820…71840 0a 20 20 20 20 6b 31 3a 3d 32 3b 0d 0a 20 20 20 20 62 69 74 6d 6f 64 65 3a 3d 27 53 27 3b 0d 0a ┆ k1:=2; bitmode:='S'; ┆ 0x71840…71860 20 20 77 72 69 74 65 6c 6e 28 27 20 38 20 62 69 74 27 29 3b 0d 0a 20 20 65 6e 64 3b 20 20 20 20 ┆ writeln(' 8 bit'); end; ┆ 0x71860…71880 0d 0a 20 20 73 6d 61 78 3a 3d 28 53 63 72 5f 6d 61 78 79 2b 31 29 2a 6b 31 3b 0d 0a 20 20 42 45 ┆ smax:=(Scr_maxy+1)*k1; BE┆ 0x71880…718a0 47 49 4e 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 2c 63 68 72 28 32 37 29 ┆GIN writeln(printer,chr(27)┆ 0x718a0…718c0 2b 27 54 31 36 27 2b 63 68 72 28 32 37 29 2b 27 3e 27 2b 63 68 72 28 32 37 29 2b 27 4e 27 29 3b ┆+'T16'+chr(27)+'>'+chr(27)+'N');┆ 0x718c0…718e0 0d 0a 20 20 20 20 73 74 72 28 73 6d 61 78 3a 34 2c 67 72 5f 73 74 72 29 3b 0d 0a 20 20 20 20 46 ┆ str(smax:4,gr_str); F┆ 0x718e0…71900 4f 52 20 69 3a 3d 31 20 54 4f 20 34 20 44 4f 20 49 46 20 67 72 5f 73 74 72 28 2e 69 2e 29 3d 27 ┆OR i:=1 TO 4 DO IF gr_str(.i.)='┆ 0x71900…71920 20 27 20 54 48 45 4e 20 67 72 5f 73 74 72 28 2e 69 2e 29 3a 3d 27 30 27 3b 0d 0a 20 20 20 20 69 ┆ ' THEN gr_str(.i.):='0'; i┆ 0x71920…71940 6e 69 74 5f 63 68 3a 3d 63 68 72 28 32 37 29 2b 62 69 74 6d 6f 64 65 2b 67 72 5f 73 74 72 3b 20 ┆nit_ch:=chr(27)+bitmode+gr_str; ┆ 0x71940…71960 74 6d 61 78 3a 3d 74 78 74 5f 6d 61 78 78 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 46 4f 52 20 69 ┆tmax:=txt_maxx; END; FOR i┆ 0x71960…71980 3a 3d 30 20 54 4f 20 74 78 74 5f 6d 61 78 78 20 20 44 4f 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 ┆:=0 TO txt_maxx DO BEGIN ┆ 0x71980…719a0 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 69 6e 69 74 5f 63 68 29 3b 0d 0a 20 20 20 20 46 ┆ write(printer,init_ch); F┆ 0x719a0…719c0 4f 52 20 6a 3a 3d 53 63 72 5f 6d 61 78 79 20 44 4f 57 4e 54 4f 20 30 20 44 4f 0d 0a 20 20 20 20 ┆OR j:=Scr_maxy DOWNTO 0 DO ┆ 0x719c0…719e0 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 4c 6f 77 62 79 74 65 3a 3d 24 30 30 3b 20 48 69 67 68 62 ┆begin Lowbyte:=$00; Highb┆ 0x719e0…71a00 79 74 65 3a 3d 24 30 30 3b 20 0d 0a 20 20 20 20 20 20 63 68 3a 3d 63 68 72 28 6d 65 6d 28 2e 53 ┆yte:=$00; ch:=chr(mem(.S┆ 0x71a00…71a20 63 72 5f 73 65 67 6d 3a 53 63 72 5f 79 61 64 64 72 28 2e 6a 2e 29 2b 53 63 72 5f 78 61 64 64 72 ┆cr_segm:Scr_yaddr(.j.)+Scr_xaddr┆ 0x71a20…71a40 28 2e 28 74 6d 61 78 2d 69 29 2a 38 2e 29 2e 29 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 62 69 74 ┆(.(tmax-i)*8.).)); if bit┆ 0x71a40…71a60 6d 6f 64 65 3d 27 53 27 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 ┆mode='S' then begin ┆ 0x71a60…71a80 20 20 20 20 77 72 69 74 65 28 70 72 69 6e 74 65 72 2c 63 68 2c 63 68 29 3b 0d 0a 20 20 20 20 20 ┆ write(printer,ch,ch); ┆ 0x71a80…71aa0 20 65 6e 64 20 65 6c 73 65 20 20 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 ┆ end else begin ┆ 0x71aa0…71ac0 20 20 49 46 20 43 48 3e 40 30 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a ┆ IF CH>@0 THEN BEGIN ┆ 0x71ac0…71ae0 20 20 20 20 20 20 20 20 20 20 48 69 67 68 43 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e 64 20 24 66 ┆ HighCH:=ord(ch) and $f┆ 0x71ae0…71b00 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 48 69 67 68 43 48 3a 3d 48 69 67 68 43 48 20 73 68 72 ┆0; HighCH:=HighCH shr┆ 0x71b00…71b20 20 34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 4c 6f 77 43 48 3a 3d 6f 72 64 28 63 68 29 20 61 6e ┆ 4; LowCH:=ord(ch) an┆ 0x71b20…71b40 64 20 24 30 66 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 42 49 54 42 49 54 28 48 69 67 68 43 48 2c ┆d $0f; BITBIT(HighCH,┆ 0x71b40…71b60 48 69 67 68 42 79 74 65 29 3b 20 42 49 54 42 49 54 28 4c 6f 77 43 48 2c 4c 6f 77 42 79 74 65 29 ┆HighByte); BITBIT(LowCH,LowByte)┆ 0x71b60…71b80 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 70 ┆; END; write(p┆ 0x71b80…71ba0 72 69 6e 74 65 72 2c 63 68 72 28 4c 6f 77 42 79 74 65 29 2c 63 68 72 28 48 69 67 68 42 79 74 65 ┆rinter,chr(LowByte),chr(HighByte┆ 0x71ba0…71bc0 29 2c 63 68 72 28 4c 6f 77 42 79 74 65 29 2c 63 68 72 28 48 69 67 68 42 79 74 65 29 29 3b 0d 0a ┆),chr(LowByte),chr(HighByte)); ┆ 0x71bc0…71be0 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 69 66 20 6b 65 79 70 72 65 73 73 20 74 68 ┆ end; if keypress th┆ 0x71be0…71c00 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 72 65 61 64 28 6b 62 ┆en begin read(kb┆ 0x71c00…71c20 (45, 1, 1) 64 2c 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 72 65 61 64 28 6b 62 64 2c 63 68 29 3b 0d 0a 20 ┆d,ch); read(kbd,ch); ┆ 0x71c20…71c40 20 20 20 20 20 20 20 65 78 69 74 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e ┆ exit; end; en┆ 0x71c40…71c60 64 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 29 3b 0d 0a 20 20 45 4e 44 ┆d; writeln(printer); END┆ 0x71c60…71c80 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 70 72 69 6e 74 65 72 2c 63 68 72 28 32 37 29 2b 27 2b 41 ┆; writeln(printer,chr(27)+'+A┆ 0x71c80…71ca0 27 29 3b 0d 0a 20 20 63 6c 6f 73 65 28 70 72 69 6e 74 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a ┆'); close(printer); END; ┆ 0x71ca0…71cc0 50 52 4f 43 45 44 55 52 45 20 77 72 69 74 65 68 65 6c 70 28 6e 6f 2c 77 2c 6c 3a 20 49 4e 54 45 ┆PROCEDURE writehelp(no,w,l: INTE┆ 0x71cc0…71ce0 47 45 52 3b 56 41 52 20 73 74 29 3b 0d 0a 56 41 52 0d 0a 20 20 69 2c 6a 2c 6b 2c 61 63 74 75 61 ┆GER;VAR st); VAR i,j,k,actua┆ 0x71ce0…71d00 6c 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 73 74 72 09 3a 73 74 72 38 30 3b 0d 0a 20 20 73 ┆l : INTEGER; str :str80; s┆ 0x71d00…71d20 74 72 6c 67 74 3a 62 79 74 65 20 41 54 20 73 74 72 3b 0d 0a 20 20 63 68 3a 20 43 48 41 52 3b 0d ┆trlgt:byte AT str; ch: CHAR; ┆ 0x71d20…71d40 0a 20 20 77 69 6e 3a 20 57 6e 64 5f 54 59 50 45 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 61 63 74 75 ┆ win: Wnd_TYPE; BEGIN actu┆ 0x71d40…71d60 61 6c 3a 3d 57 6e 64 5f 61 63 74 75 61 6c 3b 0d 0a 20 20 77 69 6e 3a 3d 57 6e 64 5f 3b 0d 0a 20 ┆al:=Wnd_actual; win:=Wnd_; ┆ 0x71d60…71d80 20 73 65 6c 65 63 74 76 69 65 77 70 6f 72 74 28 6e 6f 29 3b 0d 0a 20 20 73 61 76 65 76 69 65 77 ┆ selectviewport(no); saveview┆ 0x71d80…71da0 70 6f 72 74 28 6e 6f 29 3b 0d 0a 20 20 77 72 69 74 65 66 72 61 6d 65 3b 0d 0a 20 20 6b 3a 3d 30 ┆port(no); writeframe; k:=0┆ 0x71da0…71dc0 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 6c 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 ┆; FOR i:=1 TO l DO BEGIN ┆ 0x71dc0…71de0 20 73 74 72 6c 67 74 3a 3d 6d 65 6d 28 2e 73 65 67 28 73 74 29 3a 6f 66 73 28 73 74 29 2b 6b 2e ┆ strlgt:=mem(.seg(st):ofs(st)+k.┆ 0x71de0…71e00 29 3b 0d 0a 20 20 20 20 46 4f 52 20 6a 3a 3d 31 20 54 4f 20 73 74 72 6c 67 74 20 44 4f 0d 0a 20 ┆); FOR j:=1 TO strlgt DO ┆ 0x71e00…71e20 20 20 20 20 20 73 74 72 28 2e 6a 2e 29 3a 3d 43 48 41 52 28 6d 65 6d 28 2e 73 65 67 28 73 74 29 ┆ str(.j.):=CHAR(mem(.seg(st)┆ 0x71e20…71e40 3a 6f 66 73 28 73 74 29 2b 6b 2b 6a 2e 29 29 3b 0d 0a 20 20 20 20 6b 3a 3d 6b 2b 77 2b 31 3b 0d ┆:ofs(st)+k+j.)); k:=k+w+1; ┆ 0x71e40…71e60 0a 20 20 20 20 64 72 61 77 73 74 72 28 30 2c 69 2d 31 2c 73 74 72 29 3b 0d 0a 20 20 45 4e 44 3b ┆ drawstr(0,i-1,str); END;┆ 0x71e60…71e80 0d 0a 20 20 52 45 50 45 41 54 20 72 65 61 64 28 6b 62 64 2c 63 68 29 20 55 4e 54 49 4c 20 63 68 ┆ REPEAT read(kbd,ch) UNTIL ch┆ 0x71e80…71ea0 20 69 6e 20 28 2e 40 31 33 2c 40 33 32 2e 29 3b 0d 0a 20 20 6c 6f 61 64 76 69 65 77 70 6f 72 74 ┆ in (.@13,@32.); loadviewport┆ 0x71ea0…71ec0 28 6e 6f 2c 30 2c 30 29 3b 0d 0a 20 20 57 6e 64 5f 61 63 74 75 61 6c 3a 3d 61 63 74 75 61 6c 3b ┆(no,0,0); Wnd_actual:=actual;┆ 0x71ec0…71ee0 0d 0a 20 20 57 6e 64 5f 3a 3d 77 69 6e 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a ┆ Wnd_:=win; END; ┆ 0x71ee0…71f00 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 61 6b 73 65 73 79 73 74 65 6d 65 74 20 74 69 6c 20 65 6e ┆ æUdskriver aksesystemet til en┆ 0x71f00…71f20 20 78 2c 79 20 67 72 61 66 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ x,y graf: ┆ 0x71f20…71f40 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 7b 78 64 65 6e 73 2f 79 64 65 6e 73 3a 20 20 ┆ å æxdens/ydens: ┆ 0x71f40…71f60 65 74 20 74 61 6c 20 6d 65 6c 6c 65 6d 20 30 20 6f 67 20 39 2c 20 64 65 72 20 61 6e 67 69 76 65 ┆et tal mellem 0 og 9, der angive┆ 0x71f60…71f80 72 20 68 76 6f 72 6d 61 6e 67 65 20 6d 65 6c 6c 65 6d 72 75 6d 7d 0d 0a 7b 20 20 20 20 20 20 20 ┆r hvormange mellemrumå æ ┆ 0x71f80…71fa0 20 20 20 20 20 20 20 64 65 72 20 65 72 20 6d 65 6c 6c 65 6d 20 75 64 73 6b 72 69 76 6e 69 6e 67 ┆ der er mellem udskrivning┆ 0x71fa0…71fc0 65 6e 20 61 66 20 76 91 72 64 69 65 72 20 70 86 20 68 65 6e 68 6f 6c 64 73 76 69 73 7d 0d 0a 7b ┆en af v rdier p henholdsviså æ┆ 0x71fc0…71fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 20 6f 67 20 79 2d 61 6b 73 65 6e 20 20 20 20 20 20 ┆ x og y-aksen ┆ 0x71fe0…72000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x72000…72020 (45, 1, 2) 20 20 20 7d 0d 0a 7b 67 69 74 74 65 72 3a 20 20 54 72 75 65 3a 20 20 67 69 74 74 65 72 20 74 65 ┆ å ægitter: True: gitter te┆ 0x72020…72040 67 6e 65 73 20 20 20 46 61 6c 73 65 3a 20 20 67 69 74 74 65 72 20 74 65 67 6e 65 73 20 69 6b 6b ┆gnes False: gitter tegnes ikk┆ 0x72040…72060 65 20 20 20 20 20 20 20 20 20 7d 0d 0a 7b 45 6b 73 70 6f 78 78 2f 79 79 3a 20 27 4a 27 20 3a 20 ┆e å æEkspoxx/yy: 'J' : ┆ 0x72060…72080 20 78 2f 79 2d 61 6b 73 65 20 76 91 72 64 69 65 72 20 75 64 73 6b 72 69 76 65 73 20 65 6b 73 70 ┆ x/y-akse v rdier udskrives eksp┆ 0x72080…720a0 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 7d 0d 0a 7b 20 20 20 20 20 20 20 20 20 20 20 ┆onentielt å æ ┆ 0x720a0…720c0 20 27 4e 27 20 3a 20 20 76 91 72 64 69 65 72 20 75 64 73 6b 72 69 76 65 73 20 69 6b 6b 65 20 65 ┆ 'N' : v rdier udskrives ikke e┆ 0x720c0…720e0 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 50 ┆ksponentielt å P┆ 0x720e0…72100 52 4f 43 45 44 55 52 45 20 64 72 61 77 61 78 69 73 28 20 78 64 65 6e 73 2c 20 79 64 65 6e 73 3a ┆ROCEDURE drawaxis( xdens, ydens:┆ 0x72100…72120 20 49 4e 54 45 47 45 52 3b 20 67 69 74 74 65 72 3a 20 62 6f 6f 6c 65 61 6e 3b 20 0d 0a 45 6b 73 ┆ INTEGER; gitter: boolean; Eks┆ 0x72120…72140 70 6f 78 78 2c 20 45 6b 73 70 6f 79 79 20 3a 20 73 74 72 31 29 3b 0d 0a 56 41 52 0d 0a 20 20 78 ┆poxx, Ekspoyy : str1); VAR x┆ 0x72140…72160 6b 30 2c 20 79 6b 30 2c 20 78 6b 31 2c 20 79 6b 31 2c 20 4e 64 69 66 66 09 3a 20 49 4e 54 45 47 ┆k0, yk0, xk1, yk1, Ndiff : INTEG┆ 0x72160…72180 45 52 3b 0d 0a 20 20 65 6b 73 70 6f 78 2c 20 65 6b 73 70 6f 79 2c 6a 2c 69 2c 20 79 73 2c 20 78 ┆ER; ekspox, ekspoy,j,i, ys, x┆ 0x72180…721a0 73 2c 20 64 65 6c 74 61 2c 20 6e 70 6f 69 6e 74 73 09 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 ┆s, delta, npoints : INTEGER; ┆ 0x721a0…721c0 64 69 66 66 2c 20 6e 75 6d 62 65 72 2c 20 73 2c 20 66 72 61 63 74 3a 20 52 45 41 4c 3b 0d 0a 20 ┆diff, number, s, fract: REAL; ┆ 0x721c0…721e0 20 73 74 3a 20 73 74 72 38 30 3b 0d 0a 0d 0a 7b 4f 6d 66 6f 72 6d 65 72 20 65 74 20 61 6c 6d 69 ┆ st: str80; æOmformer et almi┆ 0x721e0…72200 6e 64 65 6c 69 67 74 20 74 61 6c 20 28 78 31 29 2c 20 76 65 64 20 68 6a 91 6c 70 20 61 66 20 65 ┆ndeligt tal (x1), ved hj lp af e┆ 0x72200…72220 6e 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 20 28 65 78 70 6f 29 7d 0d 0a 7b 74 69 ┆n opgiven eksponent (expo)å æti┆ 0x72220…72240 6c 20 65 6e 20 73 74 72 69 6e 67 2c 20 68 76 6f 72 20 74 61 6c 6c 65 74 20 61 6e 67 69 76 65 73 ┆l en string, hvor tallet angives┆ 0x72240…72260 20 65 6b 73 70 6f 6e 65 6e 74 69 65 6c 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ eksponentielt ┆ 0x72260…72280 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 46 55 4e 43 54 49 4f 4e 20 73 74 72 69 6e 67 ┆ å FUNCTION string┆ 0x72280…722a0 6e 75 6d 62 65 72 28 78 31 3a 20 52 45 41 4c 3b 65 6b 73 70 6f 09 3a 20 49 4e 54 45 47 45 52 29 ┆number(x1: REAL;ekspo : INTEGER)┆ 0x722a0…722c0 3a 20 73 74 72 38 30 3b 0d 0a 56 41 52 20 73 3a 20 73 74 72 38 30 3b 0d 0a 42 45 47 49 4e 0d 0a ┆: str80; VAR s: str80; BEGIN ┆ 0x722c0…722e0 20 20 73 74 72 28 78 31 2a 65 78 70 28 2d 65 6b 73 70 6f 2a 6c 6e 28 31 30 2e 30 29 29 3a 35 3a ┆ str(x1*exp(-ekspo*ln(10.0)):5:┆ 0x722e0…72300 32 2c 73 29 3b 0d 0a 20 20 73 74 72 69 6e 67 6e 75 6d 62 65 72 3a 3d 73 3b 0d 0a 45 4e 44 3b 0d ┆2,s); stringnumber:=s; END; ┆ 0x72300…72320 0a 0d 0a 7b 42 65 72 65 67 6e 65 72 20 68 76 6f 72 73 74 6f 72 20 65 6b 73 70 6f 6e 65 6e 74 65 ┆ æBeregner hvorstor eksponente┆ 0x72320…72340 6e 20 73 6b 61 6c 20 76 91 72 65 2c 20 68 76 69 73 20 64 65 74 20 73 74 9b 72 73 74 65 20 74 61 ┆n skal v re, hvis det st rste ta┆ 0x72340…72360 6c 20 73 6b 61 6c 20 76 91 72 65 7d 0d 0a 7b 6d 69 6e 64 72 65 20 65 6e 64 20 31 2e 30 30 20 20 ┆l skal v reå æmindre end 1.00 ┆ 0x72360…72380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x72380…723a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 0d 0a 0d 0a 0d 0a 46 55 ┆ å FU┆ 0x723a0…723c0 4e 43 54 49 4f 4e 20 47 65 74 45 78 70 6f 6e 65 6e 74 28 58 31 3a 52 45 41 4c 29 3a 49 4e 54 45 ┆NCTION GetExponent(X1:REAL):INTE┆ 0x723c0…723e0 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 47 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 30 3b 0d 0a ┆GER; BEGIN GetExponent:=0; ┆ 0x723e0…72400 20 20 49 46 20 58 31 3c 3e 30 2e 30 20 54 48 45 4e 0d 0a 20 20 20 20 49 46 20 61 62 73 28 58 31 ┆ IF X1<>0.0 THEN IF abs(X1┆ 0x72400…72420 (45, 1, 3) 29 3e 3d 31 2e 30 20 54 48 45 4e 20 47 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 74 72 75 6e 63 28 6c ┆)>=1.0 THEN GetExponent:=trunc(l┆ 0x72420…72440 6e 28 61 62 73 28 58 31 29 29 2f 6c 6e 28 31 30 2e 30 29 29 0d 0a 20 20 20 20 45 4c 53 45 20 47 ┆n(abs(X1))/ln(10.0)) ELSE G┆ 0x72440…72460 65 74 45 78 70 6f 6e 65 6e 74 3a 3d 2d 74 72 75 6e 63 28 61 62 73 28 6c 6e 28 61 62 73 28 58 31 ┆etExponent:=-trunc(abs(ln(abs(X1┆ 0x72460…72480 29 29 29 2f 6c 6e 28 31 30 2e 30 29 2b 31 2e 30 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 7b 55 64 73 ┆)))/ln(10.0)+1.0); END; æUds┆ 0x72480…724a0 6b 72 69 76 65 72 20 68 76 6f 72 73 74 6f 72 20 65 6b 73 70 6f 6e 65 6e 74 65 6e 20 65 72 7d 0d ┆kriver hvorstor eksponenten erå ┆ 0x724a0…724c0 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 44 72 61 77 45 78 70 6f 6e 65 6e 74 28 78 31 2c 79 31 2c ┆ PROCEDURE DrawExponent(x1,y1,┆ 0x724c0…724e0 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 49 4e 54 45 47 45 52 3b 73 3a 20 73 74 72 38 30 29 3b 0d 0a ┆MaxExponent:INTEGER;s: str80); ┆ 0x724e0…72500 56 41 52 20 69 3a 49 4e 54 45 47 45 52 3b 0d 0a 42 45 47 49 4e 0d 0a 20 20 57 6e 64 5f 64 72 61 ┆VAR i:INTEGER; BEGIN Wnd_dra┆ 0x72500…72520 77 74 65 78 74 28 78 31 2c 79 31 2c 73 29 3b 0d 0a 20 20 69 3a 3d 6c 65 6e 28 73 29 3b 0d 0a 20 ┆wtext(x1,y1,s); i:=len(s); ┆ 0x72520…72540 20 73 74 72 28 4d 61 78 45 78 70 6f 6e 65 6e 74 2c 53 29 3b 0d 0a 20 20 57 6e 64 5f 64 72 61 77 ┆ str(MaxExponent,S); Wnd_draw┆ 0x72540…72560 74 65 78 74 28 78 31 2b 69 2a 38 2c 20 79 31 2b 32 2c 20 53 29 3b 20 20 20 20 20 20 0d 0a 45 4e ┆text(x1+i*8, y1+2, S); EN┆ 0x72560…72580 44 3b 0d 0a 0d 0a 0d 0a 7b 55 64 73 6b 72 69 76 65 72 20 65 6e 20 73 74 72 69 6e 67 20 61 66 20 ┆D; æUdskriver en string af ┆ 0x72580…725a0 74 61 6c 20 70 86 20 65 6e 20 67 69 76 65 6e 20 70 6f 73 69 74 69 6f 6e 2c 20 6d 65 64 20 65 6e ┆tal p en given position, med en┆ 0x725a0…725c0 20 6f 70 67 69 76 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 20 20 20 7d 0d 0a 7b 78 31 20 6f 67 20 79 ┆ opgiven eksponent å æx1 og y┆ 0x725c0…725e0 31 3a 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 6b 6f 6f 72 64 69 6e 61 74 65 72 6e 65 20 20 20 20 ┆1: udskrivningskoordinaterne ┆ 0x725e0…72600 4d 61 78 45 78 70 6f 6e 65 6e 74 3a 20 65 78 73 70 6f 6e 65 6e 74 65 6e 20 64 65 72 20 61 6e 76 ┆MaxExponent: exsponenten der anv┆ 0x72600…72620 65 6e 64 65 73 7d 0d 0a 7b 76 65 64 20 75 64 73 6b 72 69 76 6e 69 6e 67 65 6e 20 20 20 20 20 20 ┆endeså æved udskrivningen ┆ 0x72620…72640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x72640…72660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 50 52 4f 43 ┆ å PROC┆ 0x72660…72680 45 44 55 52 45 20 44 72 61 77 4e 75 6d 28 78 31 2c 79 31 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 3a ┆EDURE DrawNum(x1,y1,MaxExponent:┆ 0x72680…726a0 49 4e 54 45 47 45 52 3b 4e 75 6d 62 65 72 3a 52 45 41 4c 29 3b 0d 0a 56 41 52 20 69 3a 49 4e 54 ┆INTEGER;Number:REAL); VAR i:INT┆ 0x726a0…726c0 45 47 45 52 3b 0d 0a 20 20 20 20 53 74 72 4e 75 6d 62 65 72 3a 20 73 74 72 38 30 3b 0d 0a 42 45 ┆EGER; StrNumber: str80; BE┆ 0x726c0…726e0 47 49 4e 0d 0a 20 20 53 74 72 4e 75 6d 62 65 72 3a 3d 53 74 72 69 6e 67 4e 75 6d 62 65 72 28 4e ┆GIN StrNumber:=StringNumber(N┆ 0x726e0…72700 75 6d 62 65 72 2c 4d 61 78 45 78 70 6f 6e 65 6e 74 29 3b 0d 0a 20 20 57 6e 64 5f 44 72 61 77 74 ┆umber,MaxExponent); Wnd_Drawt┆ 0x72700…72720 65 78 74 28 78 31 2c 79 31 2c 53 74 72 4e 75 6d 62 65 72 29 3b 0d 0a 45 4e 44 3b 0d 0a 0d 0a 42 ┆ext(x1,y1,StrNumber); END; B┆ 0x72720…72740 45 47 49 4e 0d 0a 20 20 0d 0a 20 20 7b 78 64 65 6e 73 20 6f 67 20 79 64 65 6e 73 20 6f 6d 64 61 ┆EGIN æxdens og ydens omda┆ 0x72740…72760 6e 6e 65 73 20 73 86 20 64 65 20 70 61 73 73 65 20 74 69 6c 20 70 72 6f 67 72 61 6d 6d 65 74 7d ┆nnes s de passe til programmetå┆ 0x72760…72780 0d 0a 20 20 0d 0a 20 20 78 64 65 6e 73 20 3a 3d 20 31 30 20 2d 20 78 64 65 6e 73 3b 0d 0a 20 20 ┆ xdens := 10 - xdens; ┆ 0x72780…727a0 79 64 65 6e 73 20 3a 3d 20 31 30 20 2d 20 79 64 65 6e 73 3b 0d 0a 20 20 0d 0a 20 20 63 6c 65 61 ┆ydens := 10 - ydens; clea┆ 0x727a0…727c0 72 3b 0d 0a 20 20 0d 0a 20 20 7b 74 65 67 6e 65 72 20 6b 61 73 73 65 20 72 75 6e 64 74 20 6f 6d ┆r; ætegner kasse rundt om┆ 0x727c0…727e0 20 67 72 61 66 65 6e 7d 0d 0a 20 20 0d 0a 20 20 64 72 61 77 66 72 61 6d 65 3b 20 20 20 0d 0a 20 ┆ grafenå drawframe; ┆ 0x727e0…72800 20 78 6b 30 3a 3d 36 2a 38 2b 32 3b 0d 0a 20 20 79 6b 30 3a 3d 31 32 3b 0d 0a 20 20 78 6b 31 3a ┆ xk0:=6*8+2; yk0:=12; xk1:┆ 0x72800…72820 (45, 1, 4) 3d 57 6e 64 5f 2e 6d 61 78 78 2d 32 34 3b 0d 0a 20 20 79 6b 31 3a 3d 57 6e 64 5f 2e 6d 61 78 79 ┆=Wnd_.maxx-24; yk1:=Wnd_.maxy┆ 0x72820…72840 2d 38 3b 0d 0a 20 0d 0a 20 20 7b 74 65 67 6e 65 72 20 61 6b 73 65 72 6e 65 2c 69 6b 6b 65 20 64 ┆-8; ætegner akserne,ikke d┆ 0x72840…72860 65 6c 73 74 72 65 67 65 72 6e 65 20 7d 0d 0a 20 0d 0a 20 20 57 6e 64 5f 64 72 61 77 6c 69 6e 65 ┆elstregerne å Wnd_drawline┆ 0x72860…72880 28 78 6b 30 2c 79 6b 30 2c 78 6b 30 2c 79 6b 31 29 3b 20 20 20 20 0d 0a 20 20 57 6e 64 5f 64 72 ┆(xk0,yk0,xk0,yk1); Wnd_dr┆ 0x72880…728a0 61 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2c 78 6b 31 2c 79 6b 30 29 3b 20 20 20 20 0d 0a 20 20 ┆awline(xk0,yk0,xk1,yk0); ┆ 0x728a0…728c0 57 6e 64 5f 64 72 61 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2c 78 6b 30 2d 34 2c 79 6b 30 29 3b ┆Wnd_drawline(xk0,yk0,xk0-4,yk0);┆ 0x728c0…728e0 20 20 0d 0a 20 20 57 6e 64 5f 64 72 61 77 6c 69 6e 65 28 78 6b 30 2c 79 6b 30 2d 34 2c 78 6b 30 ┆ Wnd_drawline(xk0,yk0-4,xk0┆ 0x728e0…72900 2c 79 6b 30 29 3b 20 20 0d 0a 20 20 64 65 6c 74 61 3a 3d 57 6e 64 5f 2e 6d 61 78 79 2d 79 6b 30 ┆,yk0); delta:=Wnd_.maxy-yk0┆ 0x72900…72920 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 65 6c 74 61 20 44 49 56 20 38 2b 31 3b 20 20 20 20 ┆; npoints:=delta DIV 8+1; ┆ 0x72920…72940 20 20 20 20 20 20 20 7b 61 6e 74 61 6c 20 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 79 2d 61 6b ┆ æantal delstreger p y-ak┆ 0x72940…72960 73 65 6e 7d 0d 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 2d 28 6e 70 6f 69 6e 74 73 2a 38 29 ┆senå ndiff:=delta-(npoints*8)┆ 0x72960…72980 3b 0d 0a 0d 0a 20 20 7b 44 65 6e 20 6d 61 6b 73 69 6d 61 6c 65 20 65 6b 73 70 6f 6e 74 20 62 65 ┆; æDen maksimale ekspont be┆ 0x72980…729a0 72 65 67 6e 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 7d ┆regnes å┆ 0x729a0…729c0 0d 0a 20 20 7b 48 76 69 73 20 65 6b 73 70 6f 79 20 3a 3d 20 30 20 62 6c 69 76 65 72 20 74 61 6c ┆ æHvis ekspoy := 0 bliver tal┆ 0x729c0…729e0 65 6e 65 20 75 64 73 6b 72 65 76 65 74 20 75 64 65 6e 20 65 6b 73 70 6f 6e 65 6e 74 7d 0d 0a 20 ┆ene udskrevet uden eksponentå ┆ 0x729e0…72a00 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 79 79 20 3d 20 27 4a 27 20 74 68 65 6e 20 0d 0a 20 20 20 ┆ If ekspoyy = 'J' then ┆ 0x72a00…72a20 0d 0a 20 20 57 49 54 48 20 77 6c 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 61 ┆ WITH wld_ DO BEGIN IF a┆ 0x72a20…72a40 62 73 28 79 72 61 6e 67 65 2b 79 31 29 3e 61 62 73 28 79 31 29 20 54 48 45 4e 20 65 6b 73 70 6f ┆bs(yrange+y1)>abs(y1) THEN ekspo┆ 0x72a40…72a60 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 79 72 61 6e 67 65 2b 79 31 29 0d 0a 20 20 20 20 45 ┆y:=getexponent(yrange+y1) E┆ 0x72a60…72a80 4c 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 79 31 29 3b 0d 0a 20 20 ┆LSE ekspoy:=getexponent(y1); ┆ 0x72a80…72aa0 45 4e 44 0d 0a 20 20 0d 0a 20 20 45 6c 73 65 20 65 6b 73 70 6f 79 20 3a 3d 20 30 3b 0d 0a 20 20 ┆END Else ekspoy := 0; ┆ 0x72aa0…72ac0 20 0d 0a 20 20 7b 75 64 73 6b 72 69 76 65 72 20 79 2a 31 30 20 70 86 20 79 2d 61 6b 73 65 6e 7d ┆ æudskriver y*10 p y-aksenå┆ 0x72ac0…72ae0 0d 0a 20 20 0d 0a 20 20 49 46 20 28 79 64 65 6e 73 3e 30 29 20 61 6e 64 20 28 65 6b 73 70 6f 79 ┆ IF (ydens>0) and (ekspoy┆ 0x72ae0…72b00 20 3c 3e 20 30 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 61 77 65 78 70 6f 6e 65 6e 74 28 30 ┆ <> 0) THEN drawexponent(0┆ 0x72b00…72b20 2c 57 6e 64 5f 2e 6d 61 78 79 2d 31 30 2c 65 6b 73 70 6f 79 2c 27 79 2a 31 30 27 29 3b 0d 0a 20 ┆,Wnd_.maxy-10,ekspoy,'y*10'); ┆ 0x72b20…72b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x72b40…72b60 20 20 20 0d 0a 20 20 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 ┆ Fract:=NDiff/NPoints; ┆ 0x72b60…72b80 73 3a 3d 2d 46 72 61 63 74 3b 0d 0a 20 20 79 73 3a 3d 79 6b 30 2d 38 3b 0d 0a 20 20 44 69 66 66 ┆s:=-Fract; ys:=yk0-8; Diff┆ 0x72b80…72ba0 3a 3d 28 77 6c 64 5f 2e 79 72 61 6e 67 65 29 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 0d 0a 20 20 ┆:=(wld_.yrange)/NPoints; ┆ 0x72ba0…72bc0 7b 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 79 2d 61 6b 73 65 6e 20 74 65 67 6e 65 73 7d 0d 0a ┆ædelstreger p y-aksen tegneså ┆ 0x72bc0…72be0 20 20 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 4f 20 4e 50 6f 69 6e 74 73 2d 31 20 44 4f 20 20 ┆ FOR i:=0 TO NPoints-1 DO ┆ 0x72be0…72c00 20 20 20 20 20 20 20 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 79 73 3a 3d 79 73 2b 38 ┆ BEGIN ys:=ys+8┆ 0x72c00…72c20 (45, 1, 5) 3b 0d 0a 20 20 20 20 20 4e 75 6d 62 65 72 3a 3d 77 6c 64 5f 2e 59 31 2b 69 2a 44 69 66 66 3b 0d ┆; Number:=wld_.Y1+i*Diff; ┆ 0x72c20…72c40 0a 20 20 0d 0a 20 20 20 20 20 7b 54 65 67 6e 65 72 20 64 65 6c 73 74 72 65 67 65 72 20 70 86 20 ┆ æTegner delstreger p ┆ 0x72c40…72c60 79 2d 61 6b 73 65 6e 7d 0d 0a 20 20 0d 0a 20 20 20 20 20 49 46 20 79 64 65 6e 73 3e 30 20 54 48 ┆y-aksenå IF ydens>0 TH┆ 0x72c60…72c80 45 4e 20 57 6e 64 5f 44 72 61 77 4c 69 6e 65 28 78 6b 30 2c 79 73 2c 78 6b 30 2d 34 2c 79 73 29 ┆EN Wnd_DrawLine(xk0,ys,xk0-4,ys)┆ 0x72c80…72ca0 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆; ┆ 0x72ca0…72cc0 20 20 20 0d 0a 20 20 20 20 20 49 46 20 28 79 64 65 6e 73 3e 30 29 20 41 4e 44 20 28 69 20 4d 4f ┆ IF (ydens>0) AND (i MO┆ 0x72cc0…72ce0 44 20 28 31 30 2d 59 44 65 6e 73 29 3d 30 29 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 ┆D (10-YDens)=0) THEN BEGIN ┆ 0x72ce0…72d00 20 20 20 6a 3a 3d 78 6b 30 3b 0d 0a 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 7b 75 64 73 ┆ j:=xk0; æuds┆ 0x72d00…72d20 6b 72 69 76 6e 69 6e 67 20 61 66 20 67 69 74 74 65 72 7d 0d 0a 20 20 20 20 20 20 20 0d 0a 20 20 ┆krivning af gitterå ┆ 0x72d20…72d40 20 20 20 20 20 49 46 20 67 69 74 74 65 72 20 54 48 45 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ IF gitter THEN ┆ 0x72d40…72d60 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 57 48 49 4c 45 20 6a 3c 3d 78 6b 31 20 44 4f 20 42 ┆ WHILE j<=xk1 DO B┆ 0x72d60…72d80 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 57 6e 64 5f 77 72 69 74 65 64 6f 74 28 6a 2c 79 73 ┆EGIN Wnd_writedot(j,ys┆ 0x72d80…72da0 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 ┆); j:=j+3; END; ┆ 0x72da0…72dc0 20 0d 0a 20 20 20 20 20 20 20 7b 75 64 73 6b 72 69 76 65 72 20 76 91 72 64 69 65 72 20 66 6f 72 ┆ æudskriver v rdier for┆ 0x72dc0…72de0 20 79 2d 61 6b 73 65 6e 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 7b 79 73 3a 20 79 2d ┆ y-aksen å æys: y-┆ 0x72de0…72e00 76 91 72 64 69 65 6e 20 66 6f 72 20 75 64 73 6b 72 69 76 6e 69 6e 67 73 73 74 65 64 65 74 7d 0d ┆v rdien for udskrivningsstedetå ┆ 0x72e00…72e20 0a 20 20 20 20 20 20 20 7b 65 6b 73 70 6f 79 3a 20 65 6b 73 70 6f 6e 65 6e 74 65 6e 20 64 65 72 ┆ æekspoy: eksponenten der┆ 0x72e20…72e40 20 61 6e 76 65 6e 64 65 73 20 20 20 20 7d 20 20 0d 0a 20 20 20 20 20 20 20 7b 6e 75 6d 62 65 72 ┆ anvendes å ænumber┆ 0x72e40…72e60 3a 20 44 65 74 20 74 61 6c 2c 20 64 65 72 20 73 6b 72 69 76 65 73 20 20 20 20 20 20 20 20 7d 20 ┆: Det tal, der skrives å ┆ 0x72e60…72e80 0d 0a 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 49 46 20 28 79 73 3c 57 6e 64 5f 2e ┆ IF (ys<Wnd_.┆ 0x72e80…72ea0 6d 61 78 79 2d 32 30 29 20 54 48 45 4e 20 20 20 20 20 20 20 44 72 61 77 4e 75 6d 28 30 2c 79 73 ┆maxy-20) THEN DrawNum(0,ys┆ 0x72ea0…72ec0 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 3b 20 20 0d 0a 20 20 20 20 20 20 20 45 4e 44 3b 0d ┆,EkspoY,Number); END; ┆ 0x72ec0…72ee0 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 64 65 6c 74 61 3a 3d 57 6e 64 5f 2e 6d 61 78 78 2d 78 6b 30 ┆ END; delta:=Wnd_.maxx-xk0┆ 0x72ee0…72f00 2d 32 3b 0d 0a 20 20 6e 70 6f 69 6e 74 73 3a 3d 64 65 6c 74 61 20 44 49 56 20 34 30 2b 31 3b 0d ┆-2; npoints:=delta DIV 40+1; ┆ 0x72f00…72f20 0a 20 20 6e 64 69 66 66 3a 3d 64 65 6c 74 61 2d 28 6e 70 6f 69 6e 74 73 2a 34 30 29 3b 0d 0a 20 ┆ ndiff:=delta-(npoints*40); ┆ 0x72f20…72f40 20 0d 0a 20 20 49 66 20 65 6b 73 70 6f 78 78 20 3d 20 27 4a 27 20 74 68 65 6e 20 0d 0a 20 20 0d ┆ If ekspoxx = 'J' then ┆ 0x72f40…72f60 0a 20 20 57 49 54 48 20 77 6c 64 5f 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 49 46 20 61 62 ┆ WITH wld_ DO BEGIN IF ab┆ 0x72f60…72f80 73 28 78 72 61 6e 67 65 2b 78 31 29 3e 61 62 73 28 78 31 29 20 54 48 45 4e 20 65 6b 73 70 6f 79 ┆s(xrange+x1)>abs(x1) THEN ekspoy┆ 0x72f80…72fa0 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 72 61 6e 67 65 2b 78 31 29 0d 0a 20 20 20 20 45 4c ┆:=getexponent(xrange+x1) EL┆ 0x72fa0…72fc0 53 45 20 65 6b 73 70 6f 79 3a 3d 67 65 74 65 78 70 6f 6e 65 6e 74 28 78 31 29 3b 0d 0a 20 20 45 ┆SE ekspoy:=getexponent(x1); E┆ 0x72fc0…72fe0 4e 44 0d 0a 20 20 0d 0a 20 20 65 6c 73 65 20 65 6b 73 70 6f 79 20 3a 3d 20 30 3b 0d 0a 20 20 0d ┆ND else ekspoy := 0; ┆ 0x72fe0…73000 0a 20 20 49 46 20 28 78 64 65 6e 73 3e 30 29 20 61 6e 64 20 28 65 6b 73 70 6f 79 20 3c 3e 20 30 ┆ IF (xdens>0) and (ekspoy <> 0┆ 0x73000…73020 (46, 0, 1) 29 20 54 48 45 4e 20 0d 0a 20 20 20 20 64 72 61 77 65 78 70 6f 6e 65 6e 74 28 57 6e 64 5f 2e 6d ┆) THEN drawexponent(Wnd_.m┆ 0x73020…73040 61 78 78 2d 34 38 2c 30 2c 65 6b 73 70 6f 79 2c 27 78 2a 31 30 27 29 3b 0d 0a 20 20 0d 0a 20 20 ┆axx-48,0,ekspoy,'x*10'); ┆ 0x73040…73060 46 72 61 63 74 3a 3d 4e 44 69 66 66 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 73 3a 3d 2d 46 72 61 ┆Fract:=NDiff/NPoints; s:=-Fra┆ 0x73060…73080 63 74 3b 0d 0a 20 20 79 73 3a 3d 78 6b 30 2d 34 30 3b 0d 0a 20 20 44 69 66 66 3a 3d 28 77 6c 64 ┆ct; ys:=xk0-40; Diff:=(wld┆ 0x73080…730a0 5f 2e 78 72 61 6e 67 65 29 2f 4e 50 6f 69 6e 74 73 3b 0d 0a 20 20 46 4f 52 20 69 3a 3d 30 20 54 ┆_.xrange)/NPoints; FOR i:=0 T┆ 0x730a0…730c0 4f 20 4e 50 6f 69 6e 74 73 2d 31 20 44 4f 0d 0a 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 79 73 ┆O NPoints-1 DO BEGIN ys┆ 0x730c0…730e0 3a 3d 79 73 2b 34 30 3b 0d 0a 20 20 20 20 4e 75 6d 62 65 72 3a 3d 77 6c 64 5f 2e 78 31 2b 69 2a ┆:=ys+40; Number:=wld_.x1+i*┆ 0x730e0…73100 44 69 66 66 3b 0d 0a 20 20 20 20 49 46 20 78 64 65 6e 73 3e 30 20 54 48 45 4e 20 57 6e 64 5f 44 ┆Diff; IF xdens>0 THEN Wnd_D┆ 0x73100…73120 72 61 77 4c 69 6e 65 28 79 73 2c 79 6b 30 2c 79 73 2c 79 6b 30 2d 34 29 3b 0d 0a 20 20 20 20 49 ┆rawLine(ys,yk0,ys,yk0-4); I┆ 0x73120…73140 46 20 28 78 64 65 6e 73 3e 30 29 20 41 4e 44 20 28 69 20 4d 4f 44 20 28 31 30 2d 78 44 65 6e 73 ┆F (xdens>0) AND (i MOD (10-xDens┆ 0x73140…73160 29 3d 30 29 20 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 6a 3a 3d 79 6b 30 3b 0d 0a ┆)=0) THEN BEGIN j:=yk0; ┆ 0x73160…73180 20 20 20 20 20 20 49 46 20 67 69 74 74 65 72 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 57 48 49 ┆ IF gitter THEN WHI┆ 0x73180…731a0 4c 45 20 6a 3c 3d 79 6b 31 20 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 57 6e 64 5f ┆LE j<=yk1 DO BEGIN Wnd_┆ 0x731a0…731c0 77 72 69 74 65 64 6f 74 28 79 73 2c 6a 29 3b 20 6a 3a 3d 6a 2b 33 3b 0d 0a 20 20 20 20 20 20 20 ┆writedot(ys,j); j:=j+3; ┆ 0x731c0…731e0 45 4e 44 3b 0d 0a 20 20 20 20 20 20 49 46 20 28 79 73 3c 57 6e 64 5f 2e 6d 61 78 78 2d 34 38 29 ┆END; IF (ys<Wnd_.maxx-48)┆ 0x731e0…73200 54 48 45 4e 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 44 72 61 77 4e 75 6d 28 79 73 2d 34 ┆THEN BEGIN DrawNum(ys-4┆ 0x73200…73220 30 2c 30 2c 45 6b 73 70 6f 59 2c 4e 75 6d 62 65 72 29 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d ┆0,0,EkspoY,Number); END; ┆ 0x73220…73240 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 45 4e 44 3b 0d 0a 20 20 57 49 54 48 20 57 6e 64 5f 20 ┆ END; END; WITH Wnd_ ┆ 0x73240…73260 44 4f 20 42 45 47 49 4e 0d 0a 20 20 20 20 78 31 3a 3d 78 31 2b 78 6b 30 3b 0d 0a 20 20 20 20 6d ┆DO BEGIN x1:=x1+xk0; m┆ 0x73260…73280 61 78 78 3a 3d 6d 61 78 78 2d 78 6b 30 3b 0d 0a 20 20 20 20 79 31 3a 3d 79 31 2b 79 6b 30 3b 0d ┆axx:=maxx-xk0; y1:=y1+yk0; ┆ 0x73280…732a0 0a 20 20 20 20 6d 61 78 79 3a 3d 6d 61 78 79 2d 79 6b 30 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 45 4e ┆ maxy:=maxy-yk0; END; EN┆ 0x732a0…732c0 44 3b 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆D; ┆ 0x732c0…732e0 00 00 00 00 00 00 00 00 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…] 0x73300…73320 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x2a67…]