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 |