Subversion Repositories Kolibri OS

Rev

Rev 6613 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6613 Rev 6647
Line 32... Line 32...
32
PROCEDURE [stdcall] zeromem*(size, adr: INTEGER);
32
PROCEDURE [stdcall] zeromem*(size, adr: INTEGER);
33
BEGIN
33
BEGIN
34
  sys.CODE("578B7D0C8B4D0833C09CFCF3AB9D5F")
34
  sys.CODE("578B7D0C8B4D0833C09CFCF3AB9D5F")
35
END zeromem;
35
END zeromem;
Line -... Line 36...
-
 
36
 
-
 
37
PROCEDURE mem_commit*(adr, size: INTEGER);
-
 
38
VAR tmp: INTEGER;
-
 
39
BEGIN
-
 
40
  FOR tmp := adr TO adr + size - 1 BY 4096 DO
-
 
41
    sys.PUT(tmp, 0)
-
 
42
  END
-
 
43
END mem_commit;
36
 
44
 
37
PROCEDURE strncmp*(a, b, n: INTEGER): INTEGER;
45
PROCEDURE strncmp*(a, b, n: INTEGER): INTEGER;
38
VAR A, B: CHAR; Res: INTEGER;
46
VAR A, B: CHAR; Res: INTEGER;
39
BEGIN
47
BEGIN
40
  Res := 0;
48
  Res := 0;
Line 95... Line 103...
95
    IF res # 0 THEN
103
    IF res # 0 THEN
96
      sys.GET(res, pockets[idx]);
104
      sys.GET(res, pockets[idx]);
97
      sys.PUT(res, size);
105
      sys.PUT(res, size);
98
      INC(res, 4)
106
      INC(res, 4)
99
    ELSE
107
    ELSE
-
 
108
      temp := 0;
100
      IF heap + size >= endheap THEN
109
      IF heap + size >= endheap THEN
101
	IF sysfunc2(18, 16) > ASR(HEAP_SIZE, 10) THEN
110
	IF sysfunc2(18, 16) > ASR(HEAP_SIZE, 10) THEN
102
	  heap := sysfunc3(68, 12, HEAP_SIZE);
111
	  temp := sysfunc3(68, 12, HEAP_SIZE)
-
 
112
	ELSE
-
 
113
	  temp := 0
-
 
114
	END;
-
 
115
	IF temp # 0 THEN
-
 
116
	  mem_commit(temp, HEAP_SIZE);
-
 
117
	  heap := temp;
103
	  endheap := heap + HEAP_SIZE
118
	  endheap := heap + HEAP_SIZE
104
	ELSE
119
	ELSE
105
	  heap := 0
120
	  temp := -1
106
	END
121
	END
107
      END;
122
      END;
108
      IF heap # 0 THEN
123
      IF (heap # 0) & (temp # -1) THEN
109
	sys.PUT(heap, size);
124
	sys.PUT(heap, size);
110
	res := heap + 4;
125
	res := heap + 4;
111
	heap := heap + size
126
	heap := heap + size
112
      ELSE
127
      ELSE
113
	endheap := 0;
-
 
114
	res := 0
128
	res := 0
115
      END
129
      END
116
    END
130
    END
117
  ELSE
131
  ELSE
118
    IF sysfunc2(18, 16) > ASR(size, 10) THEN
132
    IF sysfunc2(18, 16) > ASR(size, 10) THEN
119
      res := sysfunc3(68, 12, size);
133
      res := sysfunc3(68, 12, size);
-
 
134
      IF res # 0 THEN
-
 
135
	mem_commit(res, size);
120
      sys.PUT(res, size);
136
	sys.PUT(res, size);
121
      INC(res, 4)
137
	INC(res, 4)
-
 
138
      END
122
    ELSE
139
    ELSE
123
      res := 0
140
      res := 0
124
    END
141
    END
125
  END;
142
  END;
126
  IF res # 0 THEN
143
  IF res # 0 THEN