1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
integer function mntoc (buf, p, defalt)
integer buf (100), defalt
integer p
integer i, tp
integer equal
integer c, tmp (128)
integer text (170)
data text / 6, 97, 99, 107, -2, 7, 98, 101, 108, -2, 8, 98, 115,
*-2, -2, 24, 99, 97, 110, -2, 13, 99, 114, -2, -2, 17, 100, 99, 49,
* -2, 18, 100, 99, 50, -2, 19, 100, 99, 51, -2, 20, 100, 99, 52, -2
*, 127, 100, 101, 108, -2, 16, 100, 108, 101, -2, 25, 101, 109, -2,
* -2, 5, 101, 110, 113, -2, 4, 101, 111, 116, -2, 27, 101, 115, 99,
* -2, 23, 101, 116, 98, -2, 3, 101, 116, 120, -2, 12, 102, 102, -2,
* -2, 28, 102, 115, -2, -2, 29, 103, 115, -2, -2, 9, 104, 116, -2,
*-2, 10, 108, 102, -2, -2, 21, 110, 97, 107, -2, 0, 110, 117, 108,
*-2, 30, 114, 115, -2, -2, 15, 115, 105, -2, -2, 14, 115, 111, -2,
*-2, 1, 115, 111, 104, -2, 32, 115, 112, -2, -2, 2, 115, 116, 120,
*-2, 26, 115, 117, 98, -2, 22, 115, 121, 110, -2, 31, 117, 115, -2,
* -2, 11, 118, 116, -2, -2/
tp = 1
23000 continue
tmp (tp) = buf (p)
tp = tp + 1
p = p + 1
23001 if (.not.(.not. (((65.le.buf (p).and.buf (p).le.90).or.(97.le.buf
*(p).and.buf (p).le.122)) .or. (48.le.buf (p).and.buf (p).le.57)) .
*or. tp .ge. 128))goto 23000
23002 continue
tmp (tp) = -2
if (.not.(tp .eq. 2))goto 23003
c = tmp (1)
goto 23004
23003 continue
call lower (tmp)
i = 1
23005 if (.not.(i .lt. 170))goto 23007
if (.not.(equal (tmp, text (i + 1)) .eq. 1))goto 23008
goto 23007
23008 continue
23006 i = i + 5
goto 23005
23007 continue
if (.not.(i .lt. 170))goto 23010
c = text (i)
goto 23011
23010 continue
c = defalt
23011 continue
23004 continue
mntoc=(c)
return
end
|