DEFINITION MODULE STRINGS;
FROM SYSTEM IMPORT ADDRESS;
PROCEDURE LENGTH(S:ARRAY OF CHAR):CARDINAL;
PROCEDURE CONCAT(S1,S2:ARRAY OF CHAR;VAR D:ARRAY OF CHAR);
PROCEDURE SLICE(S:ARRAY OF CHAR;P,L:CARDINAL;VAR R:ARRAY OF CHAR);
PROCEDURE COPY(S:ARRAY OF CHAR;VAR D:ARRAY OF CHAR);
PROCEDURE APPEND(VAR D:ARRAY OF CHAR;S:ARRAY OF CHAR);
PROCEDURE COMPARE(S1,S2:ARRAY OF CHAR):INTEGER;
PROCEDURE INDEX1(S:ARRAY OF CHAR;C:CHAR):CARDINAL;
PROCEDURE INDEX(S,SS:ARRAY OF CHAR):CARDINAL;
PROCEDURE SEARCH(VAR P:ADDRESS;VAR n:CARDINAL;len:CARDINAL;S:ARRAY OF CHAR):BOOL
EAN;
PROCEDURE DELETE(VAR S:ARRAY OF CHAR;p,n:CARDINAL);
PROCEDURE INSERT(VAR S:ARRAY OF CHAR;p:CARDINAL;S1:ARRAY OF CHAR);
PROCEDURE CAPS(S:ARRAY OF CHAR);
END STRINGS.
 
IMPLEMENTATION MODULE STRINGS;
 
PROCEDURE LENGTH(S:ARRAY OF CHAR):CARDINAL;
HEX
03 C5 AF ED B1 E1 C0 37 ED 42 C9
END LENGTH;
 
PROCEDURE CONCAT(S1,S2:ARRAY OF CHAR;VAR D:ARRAY OF CHAR);
HEX DD E1 D1 C1 03 D9 C1 D1 03 D9 E1 D9 E1 23 D9 CD
(@TRANS) 21 F4 FF 39 F9 D9 C5 EB D9 E1 DD E5 18 40
END CONCAT;
 
PROCEDURE SLICE(S:ARRAY OF CHAR;P,L:CARDINAL;VAR R:ARRAY OF CHAR);
HEX DD E1 D1 AF 12 C1 03 D9 E1 C1 D1 E3 23 ED 42 38
18 EB 78 B1 28 04 ED B1 28 0F C1 E5 EB ED 42 09
38 02 60 69 D9 E3 CD (@COPY+16) 21 F6 FF 39 F9 DD E9
END SLICE;
 
PROCEDURE COPY(S:ARRAY OF CHAR;VAR D:ARRAY OF CHAR);
HEX DD E1 D1 C1 03 E1 D9 E1 23 D9 E5 E5 E5 E5 DD E5
CD (@TRANS) 78 B1 C8 AF 12 C9 END COPY;
 
PROCEDURE APPEND(VAR D:ARRAY OF CHAR;S:ARRAY OF CHAR);
HEX DD E1 D1 D9 E1 23 D9 E1 C1 03 C5 C5 C5 C5 DD E5
AF ED B1 C0 2B 03 EB 18 DE END APPEND;
 
PROCEDURE TRANS;
HEX 78 B1 C8 7E A7 C8 D9 7C B5 2B D9 C8 ED A0 18 F0
END TRANS;
 
PROCEDURE COMPARE(S1,S2:ARRAY OF CHAR):INTEGER;
HEX DD E1 E1 D9 E1 23 D9 D1 C1 03 C5 D5 E5 E5 DD E5
CD (@SCOMP) 21 00 00 C8 ED 62 29 23 C9 END COMPARE;
PROCEDURE SCOMP;HEX 
1A BE 23 13 0B C0 A7 C8 78 B1 D9 2B 7C 28 07 B5
D9 20 ED 1A A7 C9 B5 D9 C8 AF BE C9 END SCOMP;
 
PROCEDURE INDEX1(S:ARRAY OF CHAR;C:CHAR):CARDINAL;
HEX DD E1 3B D1 E1 C1 03 C5 E5 3B DD E5 C5 7E BA 28
0E 23 0B A7 28 04 78 B1 20 F3 C1 21 FF FF C9 E1
ED 42 C9 END INDEX1; 
 
PROCEDURE INDEX(S,SS:ARRAY OF CHAR):CARDINAL;
HEX 
DD E1 E1 C1 03 E5 CD (@LENGTH) 44 4D 0B E1 7E 23 C5
D9 D1 E1 C1 03 C5 C5 C5 C5 DD E5 28 36 08 E5 CD
(@LENGTH) ED 52 44 4D E1 C5 38 24 78 B1 28 20 08 ED
B1 20 1B 08 E5 D9 D1 E5 C5 78 B1 28 07 1A BE 13
23 0B 28 F5 C1 E1 D9 20 E1 E1 37 ED 42 C9 C1 21
FF FF C9 21 00 00 C9 END INDEX;
 
PROCEDURE SEARCH(VAR P:ADDRESS;VAR n:CARDINAL;len:CARDINAL;S:ARRAY OF CHAR):BOOL
EAN;
PROCEDURE SCOMP1;HEX
1A ED A1 C0 E0 13 A7 20 F7 C9 END SCOMP1;
HEX DD E1 D1 C1 1A 08 13 D9 D1 E1 4E 23 46 E3 7E 23
E5 66 6F 18 03 08 19 0B 78 B1 28 16 08 BE 20 F5
08 E5 D9 E1 23 C5 D5 78 B1 C4 (@SCOMP1) D1 C1 D9 20
E5 37 D1 EB 72 2B 73 E1 70 2B 71 E5 E5 E5 E5 E5
DD E9 END SEARCH;
 
PROCEDURE DELETE(VAR S:ARRAY OF CHAR;p,n:CARDINAL);HEX
DD E1 D1 F1 E1 C1 E5 F5 CD (@LENGTH) C1 AF ED 42 38
11 ED 52 E3 08 09 EB 19 C1 08 38 04 28 02 ED B0
12 C5 C5 C5 C5 DD E9 END DELETE;
 
PROCEDURE INSERT(VAR S:ARRAY OF CHAR;p:CARDINAL;S1:ARRAY OF CHAR);HEX
DD E1 E1 C1 D9 C1 E1 D1 09 EB A7 ED 42 38 34 E5
EB E5 42 4B D9 E5 C5 CD (@LENGTH) E3 23 D9 CD (@LENGTH)
C1 09 A7 ED 52 19 38 01 EB 54 5D A7 ED 42 44 4D
E1 E3 EB 38 08 19 EB 09 03 ED B8 23 EB E1 C1 03
CD(@TRANS) 21 F6 FF 39 F9 DD E9 END INSERT;

PROCEDURE CAPS(S:ARRAY OF CHAR);HEX
03 7E A7 C8 CD 94 2C 30 02 CB AE ED A1 E0 18 F1
END CAPS;
 
END STRINGS.
